@cuby-ui/core 0.0.265 → 0.0.267

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -16,6 +16,7 @@ export declare class CuiContextMenuComponent implements OnInit, AfterViewInit, O
16
16
  protected node?: HTMLDivElement;
17
17
  items: CuiContextMenuItem[];
18
18
  target: HTMLElement;
19
+ width: string;
19
20
  protected readonly list: TemplateRef<any>;
20
21
  protected readonly backdrop: TemplateRef<any>;
21
22
  ngOnInit(): void;
@@ -35,5 +36,5 @@ export declare class CuiContextMenuComponent implements OnInit, AfterViewInit, O
35
36
  private changePosition;
36
37
  private clearViewContainerRef;
37
38
  static ɵfac: i0.ɵɵFactoryDeclaration<CuiContextMenuComponent, never>;
38
- static ɵcmp: i0.ɵɵComponentDeclaration<CuiContextMenuComponent, "cui-context-menu[items][target]", never, { "items": { "alias": "items"; "required": false; }; "target": { "alias": "target"; "required": false; }; }, {}, never, never, false, [{ directive: typeof i1.CuiClickOutsideDirective; inputs: {}; outputs: {}; }, { directive: typeof i1.CuiTargetDirective; inputs: { "ccTarget": "target"; }; outputs: {}; }]>;
39
+ static ɵcmp: i0.ɵɵComponentDeclaration<CuiContextMenuComponent, "cui-context-menu[items][target]", never, { "items": { "alias": "items"; "required": false; }; "target": { "alias": "target"; "required": false; }; "width": { "alias": "width"; "required": false; }; }, {}, never, never, false, [{ directive: typeof i1.CuiClickOutsideDirective; inputs: {}; outputs: {}; }, { directive: typeof i1.CuiTargetDirective; inputs: { "ccTarget": "target"; }; outputs: {}; }]>;
39
40
  }
@@ -4,7 +4,7 @@ export declare class CuiSidebarHeaderComponent {
4
4
  private readonly document;
5
5
  private readonly sidebarService;
6
6
  protected readonly isOpened: import("@angular/core").Signal<boolean>;
7
- protected readonly buttonIcon: import("@angular/core").Signal<"cuiIconLoading" | "cuiIconCheck" | "cuiIconCheckSm" | "cuiIconCheckCircle" | "cuiIconCheckCircleSm" | "cuiIconCheckCircleV2" | "cuiIconMoreVertical" | "cuiIconMoreVerticalSm" | "cuiIconTrash" | "cuiIconTrashSm" | "cuiIconEdit" | "cuiIconEditSm" | "cuiIconArrowSortSm" | "cuiIconX" | "cuiIconXSm" | "cuiIconXCircle" | "cuiIconXCircleSm" | "cuiIconClear" | "cuiIconClearSm" | "cuiIconEye" | "cuiIconEyeSm" | "cuiIconEyeOff" | "cuiIconEyeOffSm" | "cuiIconChevronUp" | "cuiIconChevronUpSm" | "cuiIconChevronRight" | "cuiIconChevronRightSm" | "cuiIconChevronDown" | "cuiIconChevronDownSm" | "cuiIconChevronLeft" | "cuiIconChevronLeftSm" | "cuiIconChevronsRight" | "cuiIconChevronsRightSm" | "cuiIconChevronsLeft" | "cuiIconChevronsLeftSm" | "cuiIconChevronsSwitch" | "cuiIconDatabase" | "cuiIconDatabaseSm" | "cuiIconHome" | "cuiIconHomeSm" | "cuiIconUser" | "cuiIconUserSm" | "cuiIconUsers" | "cuiIconUsersBg" | "cuiIconUsersSm" | "cuiIconUserPlus" | "cuiIconUserPlusSm" | "cuiIconFormula" | "cuiIconSettings" | "cuiIconSettingsSm" | "cuiIconSettingsBold" | "cuiIconCopy" | "cuiIconCopySm" | "cuiIconSidebar" | "cuiIconSidebarSm" | "cuiIconChart" | "cuiIconFolder" | "cuiIconFolderSm" | "cuiIconFolderOpen" | "cuiIconFolderOpenSm" | "cuiIconPlus" | "cuiIconPlusSm" | "cuiIconPlusCircle" | "cuiIconFiltersLines" | "cuiIconFiltersLinesSm" | "cuiIconSearch" | "cuiIconSearchSm" | "cuiIconGrid" | "cuiIconGridSm" | "cuiIconList" | "cuiIconListSm" | "cuiIconProgress" | "cuiIconSortAZSm" | "cuiIconFlagBold" | "cuiIconFileText" | "cuiIconFileTextSm" | "cuiIconLink" | "cuiIconExternalLinkSm" | "cuiIconLinkBroken" | "cuiIconLinkBrokenSm" | "cuiIconClock" | "cuiIconClockSm" | "cuiIconInfo" | "cuiIconInfoSm" | "cuiIconInfoCircle" | "cuiIconInfoCircleBg" | "cuiIconAlertTriangle" | "cuiIconAlertTriangleSm" | "cuiIconAlertCircle" | "cuiIcon2Layers" | "cuiIcon2LayersSm" | "cuiIcon3Layers" | "cuiIcon3LayersSm" | "cuiIconLearningSm" | "cuiIconBellSm" | "cuiIconMessageCircle" | "cuiIconMessageCircleSm" | "cuiIconSlashDivider" | "cuiIconCaretDownFillXxs" | "cuiIconCaretDownFill" | "cuiIconDragHandleDots" | "cuiIconPlayCircle" | "cuiIconPlayCircleSm" | "cuiIconClipBoard" | "cuiIconUpload" | "cuiIconUploadSm" | "cuiIconMaximize" | "cuiIconMaximizeSm" | "cuiIconArrowUpRight" | "cuiIconArrowUpRightSm" | "cuiIconAddBranchSm" | "cuiIconBranch" | "cuiIconBranchSm" | "cuiIconPaperclip" | "cuiIconPaperclipSm" | "cuiIconToolsSm" | "cuiIconPartsSm" | "cuiIconEquipmentSm" | "cuiIconPrimitive" | "cuiIconPrimitiveSm" | "cuiIconSpool" | "cuiIconSpoolSm" | "cuiIconTank" | "cuiIconTankSm" | "cuiIconAssembly" | "cuiIconAssemblySm" | "cuiIconVariant" | "cuiIconVariantSm" | "cuiIconRichText" | "cuiIconRichTextSm" | "cuiIconChecklist" | "cuiIconRefreshCcwSm" | "cuiIconRefreshCcw" | "cuiIconBarChartSm" | "cuiIconBarChart" | "cuiIconCurvedArrow" | "cuiIconBulletFillSm" | "cuiIconBulletSm" | "cuiIconArrowRight" | "cuiIconArrowRightSm" | "cuiIconImage" | "cuiIconCutLinearSm" | "cuiIconCutLinear" | "cuiIconForkLift" | "cuiIconForkLiftSm" | "cuiIconPartPrimitive" | "cuiIconPartPrimitiveSm" | "cuiIconChecklistsSm" | "cuiIconViewInAr" | "cuiIconViewInArSm" | "cuiIconFloorplanSolid" | "cuiIconFloorplanSolidSm" | "cuiIconMoon" | "cuiIconMoonSm" | "cuiIconSunSm" | "cuiIconTool" | "cuiIconToolSm" | "cuiIconCamera" | "cuiIconPanModeSm">;
7
+ protected readonly buttonIcon: import("@angular/core").Signal<"cuiIconLoading" | "cuiIconCheck" | "cuiIconCheckSm" | "cuiIconCheckCircle" | "cuiIconCheckCircleSm" | "cuiIconCheckCircleV2" | "cuiIconMoreVertical" | "cuiIconMoreVerticalSm" | "cuiIconTrash" | "cuiIconTrashSm" | "cuiIconEdit" | "cuiIconEditSm" | "cuiIconArrowSortSm" | "cuiIconX" | "cuiIconXSm" | "cuiIconXCircle" | "cuiIconXCircleSm" | "cuiIconClear" | "cuiIconClearSm" | "cuiIconEye" | "cuiIconEyeSm" | "cuiIconEyeOff" | "cuiIconEyeOffSm" | "cuiIconChevronUp" | "cuiIconChevronUpSm" | "cuiIconChevronRight" | "cuiIconChevronRightSm" | "cuiIconChevronDown" | "cuiIconChevronDownSm" | "cuiIconChevronLeft" | "cuiIconChevronLeftSm" | "cuiIconChevronsRight" | "cuiIconChevronsRightSm" | "cuiIconChevronsLeft" | "cuiIconChevronsLeftSm" | "cuiIconChevronsSwitch" | "cuiIconDatabase" | "cuiIconDatabaseSm" | "cuiIconHome" | "cuiIconHomeSm" | "cuiIconUser" | "cuiIconUserSm" | "cuiIconUsers" | "cuiIconUsersBg" | "cuiIconUsersSm" | "cuiIconUserPlus" | "cuiIconUserPlusSm" | "cuiIconFormula" | "cuiIconSettings" | "cuiIconSettingsSm" | "cuiIconSettingsBold" | "cuiIconCopy" | "cuiIconCopySm" | "cuiIconSidebar" | "cuiIconSidebarSm" | "cuiIconChart" | "cuiIconFolder" | "cuiIconFolderSm" | "cuiIconFolderOpen" | "cuiIconFolderOpenSm" | "cuiIconPlus" | "cuiIconPlusSm" | "cuiIconPlusCircle" | "cuiIconFiltersLines" | "cuiIconFiltersLinesSm" | "cuiIconSearch" | "cuiIconSearchSm" | "cuiIconGrid" | "cuiIconGridSm" | "cuiIconList" | "cuiIconListSm" | "cuiIconProgress" | "cuiIconSortAZSm" | "cuiIconFlagBold" | "cuiIconFileText" | "cuiIconFileTextSm" | "cuiIconLink" | "cuiIconExternalLinkSm" | "cuiIconLinkBroken" | "cuiIconLinkBrokenSm" | "cuiIconClock" | "cuiIconClockSm" | "cuiIconInfo" | "cuiIconInfoSm" | "cuiIconInfoCircle" | "cuiIconInfoCircleBg" | "cuiIconAlertTriangle" | "cuiIconAlertTriangleSm" | "cuiIconAlertCircle" | "cuiIcon2Layers" | "cuiIcon2LayersSm" | "cuiIcon3Layers" | "cuiIcon3LayersSm" | "cuiIconLearningSm" | "cuiIconBellSm" | "cuiIconMessageCircle" | "cuiIconMessageCircleSm" | "cuiIconSlashDivider" | "cuiIconCaretDownFillXxs" | "cuiIconCaretDownFill" | "cuiIconDragHandleDots" | "cuiIconPlayCircle" | "cuiIconPlayCircleSm" | "cuiIconClipBoard" | "cuiIconUpload" | "cuiIconUploadSm" | "cuiIconMaximize" | "cuiIconMaximizeSm" | "cuiIconArrowUpRight" | "cuiIconArrowUpRightSm" | "cuiIconAddBranchSm" | "cuiIconBranch" | "cuiIconBranchSm" | "cuiIconPaperclip" | "cuiIconPaperclipSm" | "cuiIconToolsSm" | "cuiIconPartsSm" | "cuiIconEquipmentSm" | "cuiIconPrimitive" | "cuiIconPrimitiveSm" | "cuiIconSpool" | "cuiIconSpoolSm" | "cuiIconTank" | "cuiIconTankSm" | "cuiIconAssembly" | "cuiIconAssemblySm" | "cuiIconVariant" | "cuiIconVariantSm" | "cuiIconRichText" | "cuiIconRichTextSm" | "cuiIconChecklist" | "cuiIconRefreshCcwSm" | "cuiIconRefreshCcw" | "cuiIconBarChartSm" | "cuiIconBarChart" | "cuiIconCurvedArrow" | "cuiIconBulletFillSm" | "cuiIconBulletSm" | "cuiIconArrowRight" | "cuiIconArrowRightSm" | "cuiIconImage" | "cuiIconCutLinearSm" | "cuiIconCutLinear" | "cuiIconForkLift" | "cuiIconForkLiftSm" | "cuiIconPartPrimitive" | "cuiIconPartPrimitiveSm" | "cuiIconChecklistsSm" | "cuiIconViewInAr" | "cuiIconViewInArSm" | "cuiIconFloorplanSolid" | "cuiIconFloorplanSolidSm" | "cuiIconMoon" | "cuiIconMoonSm" | "cuiIconSunSm" | "cuiIconTool" | "cuiIconToolSm" | "cuiIconCamera" | "cuiIconPanModeSm" | "cuiIconCrane" | "cuiIconCraneSm" | "cuiIconBin" | "cuiIconBinSm" | "cuiIconAuxSm" | "cuiIcon5sSm" | "cuiIconRackSm" | "cuiIconAccessories" | "cuiIconAccessoriesSm" | "cuiIconLogisticVehicle" | "cuiIconLogisticVehicleSm" | "cuiIconComputerChipSm" | "cuiIconRack">;
8
8
  readonly headerSlot: import("@angular/core").InputSignal<TemplateRef<unknown>>;
9
9
  protected onSwitch(event: MouseEvent): void;
10
10
  static ɵfac: i0.ɵɵFactoryDeclaration<CuiSidebarHeaderComponent, never>;
@@ -1,7 +1,7 @@
1
1
  import * as i0 from "@angular/core";
2
2
  export declare class CuiSidebarNavigationItemComponent {
3
3
  readonly text: import("@angular/core").InputSignal<string>;
4
- readonly icon: import("@angular/core").InputSignal<"cuiIconLoading" | "cuiIconCheck" | "cuiIconCheckSm" | "cuiIconCheckCircle" | "cuiIconCheckCircleSm" | "cuiIconCheckCircleV2" | "cuiIconMoreVertical" | "cuiIconMoreVerticalSm" | "cuiIconTrash" | "cuiIconTrashSm" | "cuiIconEdit" | "cuiIconEditSm" | "cuiIconArrowSortSm" | "cuiIconX" | "cuiIconXSm" | "cuiIconXCircle" | "cuiIconXCircleSm" | "cuiIconClear" | "cuiIconClearSm" | "cuiIconEye" | "cuiIconEyeSm" | "cuiIconEyeOff" | "cuiIconEyeOffSm" | "cuiIconChevronUp" | "cuiIconChevronUpSm" | "cuiIconChevronRight" | "cuiIconChevronRightSm" | "cuiIconChevronDown" | "cuiIconChevronDownSm" | "cuiIconChevronLeft" | "cuiIconChevronLeftSm" | "cuiIconChevronsRight" | "cuiIconChevronsRightSm" | "cuiIconChevronsLeft" | "cuiIconChevronsLeftSm" | "cuiIconChevronsSwitch" | "cuiIconDatabase" | "cuiIconDatabaseSm" | "cuiIconHome" | "cuiIconHomeSm" | "cuiIconUser" | "cuiIconUserSm" | "cuiIconUsers" | "cuiIconUsersBg" | "cuiIconUsersSm" | "cuiIconUserPlus" | "cuiIconUserPlusSm" | "cuiIconFormula" | "cuiIconSettings" | "cuiIconSettingsSm" | "cuiIconSettingsBold" | "cuiIconCopy" | "cuiIconCopySm" | "cuiIconSidebar" | "cuiIconSidebarSm" | "cuiIconChart" | "cuiIconFolder" | "cuiIconFolderSm" | "cuiIconFolderOpen" | "cuiIconFolderOpenSm" | "cuiIconPlus" | "cuiIconPlusSm" | "cuiIconPlusCircle" | "cuiIconFiltersLines" | "cuiIconFiltersLinesSm" | "cuiIconSearch" | "cuiIconSearchSm" | "cuiIconGrid" | "cuiIconGridSm" | "cuiIconList" | "cuiIconListSm" | "cuiIconProgress" | "cuiIconSortAZSm" | "cuiIconFlagBold" | "cuiIconFileText" | "cuiIconFileTextSm" | "cuiIconLink" | "cuiIconExternalLinkSm" | "cuiIconLinkBroken" | "cuiIconLinkBrokenSm" | "cuiIconClock" | "cuiIconClockSm" | "cuiIconInfo" | "cuiIconInfoSm" | "cuiIconInfoCircle" | "cuiIconInfoCircleBg" | "cuiIconAlertTriangle" | "cuiIconAlertTriangleSm" | "cuiIconAlertCircle" | "cuiIcon2Layers" | "cuiIcon2LayersSm" | "cuiIcon3Layers" | "cuiIcon3LayersSm" | "cuiIconLearningSm" | "cuiIconBellSm" | "cuiIconMessageCircle" | "cuiIconMessageCircleSm" | "cuiIconSlashDivider" | "cuiIconCaretDownFillXxs" | "cuiIconCaretDownFill" | "cuiIconDragHandleDots" | "cuiIconPlayCircle" | "cuiIconPlayCircleSm" | "cuiIconClipBoard" | "cuiIconUpload" | "cuiIconUploadSm" | "cuiIconMaximize" | "cuiIconMaximizeSm" | "cuiIconArrowUpRight" | "cuiIconArrowUpRightSm" | "cuiIconAddBranchSm" | "cuiIconBranch" | "cuiIconBranchSm" | "cuiIconPaperclip" | "cuiIconPaperclipSm" | "cuiIconToolsSm" | "cuiIconPartsSm" | "cuiIconEquipmentSm" | "cuiIconPrimitive" | "cuiIconPrimitiveSm" | "cuiIconSpool" | "cuiIconSpoolSm" | "cuiIconTank" | "cuiIconTankSm" | "cuiIconAssembly" | "cuiIconAssemblySm" | "cuiIconVariant" | "cuiIconVariantSm" | "cuiIconRichText" | "cuiIconRichTextSm" | "cuiIconChecklist" | "cuiIconRefreshCcwSm" | "cuiIconRefreshCcw" | "cuiIconBarChartSm" | "cuiIconBarChart" | "cuiIconCurvedArrow" | "cuiIconBulletFillSm" | "cuiIconBulletSm" | "cuiIconArrowRight" | "cuiIconArrowRightSm" | "cuiIconImage" | "cuiIconCutLinearSm" | "cuiIconCutLinear" | "cuiIconForkLift" | "cuiIconForkLiftSm" | "cuiIconPartPrimitive" | "cuiIconPartPrimitiveSm" | "cuiIconChecklistsSm" | "cuiIconViewInAr" | "cuiIconViewInArSm" | "cuiIconFloorplanSolid" | "cuiIconFloorplanSolidSm" | "cuiIconMoon" | "cuiIconMoonSm" | "cuiIconSunSm" | "cuiIconTool" | "cuiIconToolSm" | "cuiIconCamera" | "cuiIconPanModeSm" | undefined>;
4
+ readonly icon: import("@angular/core").InputSignal<"cuiIconLoading" | "cuiIconCheck" | "cuiIconCheckSm" | "cuiIconCheckCircle" | "cuiIconCheckCircleSm" | "cuiIconCheckCircleV2" | "cuiIconMoreVertical" | "cuiIconMoreVerticalSm" | "cuiIconTrash" | "cuiIconTrashSm" | "cuiIconEdit" | "cuiIconEditSm" | "cuiIconArrowSortSm" | "cuiIconX" | "cuiIconXSm" | "cuiIconXCircle" | "cuiIconXCircleSm" | "cuiIconClear" | "cuiIconClearSm" | "cuiIconEye" | "cuiIconEyeSm" | "cuiIconEyeOff" | "cuiIconEyeOffSm" | "cuiIconChevronUp" | "cuiIconChevronUpSm" | "cuiIconChevronRight" | "cuiIconChevronRightSm" | "cuiIconChevronDown" | "cuiIconChevronDownSm" | "cuiIconChevronLeft" | "cuiIconChevronLeftSm" | "cuiIconChevronsRight" | "cuiIconChevronsRightSm" | "cuiIconChevronsLeft" | "cuiIconChevronsLeftSm" | "cuiIconChevronsSwitch" | "cuiIconDatabase" | "cuiIconDatabaseSm" | "cuiIconHome" | "cuiIconHomeSm" | "cuiIconUser" | "cuiIconUserSm" | "cuiIconUsers" | "cuiIconUsersBg" | "cuiIconUsersSm" | "cuiIconUserPlus" | "cuiIconUserPlusSm" | "cuiIconFormula" | "cuiIconSettings" | "cuiIconSettingsSm" | "cuiIconSettingsBold" | "cuiIconCopy" | "cuiIconCopySm" | "cuiIconSidebar" | "cuiIconSidebarSm" | "cuiIconChart" | "cuiIconFolder" | "cuiIconFolderSm" | "cuiIconFolderOpen" | "cuiIconFolderOpenSm" | "cuiIconPlus" | "cuiIconPlusSm" | "cuiIconPlusCircle" | "cuiIconFiltersLines" | "cuiIconFiltersLinesSm" | "cuiIconSearch" | "cuiIconSearchSm" | "cuiIconGrid" | "cuiIconGridSm" | "cuiIconList" | "cuiIconListSm" | "cuiIconProgress" | "cuiIconSortAZSm" | "cuiIconFlagBold" | "cuiIconFileText" | "cuiIconFileTextSm" | "cuiIconLink" | "cuiIconExternalLinkSm" | "cuiIconLinkBroken" | "cuiIconLinkBrokenSm" | "cuiIconClock" | "cuiIconClockSm" | "cuiIconInfo" | "cuiIconInfoSm" | "cuiIconInfoCircle" | "cuiIconInfoCircleBg" | "cuiIconAlertTriangle" | "cuiIconAlertTriangleSm" | "cuiIconAlertCircle" | "cuiIcon2Layers" | "cuiIcon2LayersSm" | "cuiIcon3Layers" | "cuiIcon3LayersSm" | "cuiIconLearningSm" | "cuiIconBellSm" | "cuiIconMessageCircle" | "cuiIconMessageCircleSm" | "cuiIconSlashDivider" | "cuiIconCaretDownFillXxs" | "cuiIconCaretDownFill" | "cuiIconDragHandleDots" | "cuiIconPlayCircle" | "cuiIconPlayCircleSm" | "cuiIconClipBoard" | "cuiIconUpload" | "cuiIconUploadSm" | "cuiIconMaximize" | "cuiIconMaximizeSm" | "cuiIconArrowUpRight" | "cuiIconArrowUpRightSm" | "cuiIconAddBranchSm" | "cuiIconBranch" | "cuiIconBranchSm" | "cuiIconPaperclip" | "cuiIconPaperclipSm" | "cuiIconToolsSm" | "cuiIconPartsSm" | "cuiIconEquipmentSm" | "cuiIconPrimitive" | "cuiIconPrimitiveSm" | "cuiIconSpool" | "cuiIconSpoolSm" | "cuiIconTank" | "cuiIconTankSm" | "cuiIconAssembly" | "cuiIconAssemblySm" | "cuiIconVariant" | "cuiIconVariantSm" | "cuiIconRichText" | "cuiIconRichTextSm" | "cuiIconChecklist" | "cuiIconRefreshCcwSm" | "cuiIconRefreshCcw" | "cuiIconBarChartSm" | "cuiIconBarChart" | "cuiIconCurvedArrow" | "cuiIconBulletFillSm" | "cuiIconBulletSm" | "cuiIconArrowRight" | "cuiIconArrowRightSm" | "cuiIconImage" | "cuiIconCutLinearSm" | "cuiIconCutLinear" | "cuiIconForkLift" | "cuiIconForkLiftSm" | "cuiIconPartPrimitive" | "cuiIconPartPrimitiveSm" | "cuiIconChecklistsSm" | "cuiIconViewInAr" | "cuiIconViewInArSm" | "cuiIconFloorplanSolid" | "cuiIconFloorplanSolidSm" | "cuiIconMoon" | "cuiIconMoonSm" | "cuiIconSunSm" | "cuiIconTool" | "cuiIconToolSm" | "cuiIconCamera" | "cuiIconPanModeSm" | "cuiIconCrane" | "cuiIconCraneSm" | "cuiIconBin" | "cuiIconBinSm" | "cuiIconAuxSm" | "cuiIcon5sSm" | "cuiIconRackSm" | "cuiIconAccessories" | "cuiIconAccessoriesSm" | "cuiIconLogisticVehicle" | "cuiIconLogisticVehicleSm" | "cuiIconComputerChipSm" | "cuiIconRack" | undefined>;
5
5
  readonly active: import("@angular/core").InputSignal<boolean | undefined>;
6
6
  readonly isOpen: import("@angular/core").InputSignal<boolean | undefined>;
7
7
  static ɵfac: i0.ɵɵFactoryDeclaration<CuiSidebarNavigationItemComponent, never>;
@@ -16,7 +16,7 @@ export declare class EditorToolComponent {
16
16
  protected get isCaptionShown(): boolean;
17
17
  protected onSelectFile(): void;
18
18
  protected onTitleChange(event: KeyboardEvent): void;
19
- protected onTitlePaste(event: Event): Promise<void>;
19
+ protected onTitlePaste(event: ClipboardEvent): void;
20
20
  static ɵfac: i0.ɵɵFactoryDeclaration<EditorToolComponent, never>;
21
21
  static ɵcmp: i0.ɵɵComponentDeclaration<EditorToolComponent, "ng-component", never, { "api": { "alias": "api"; "required": true; }; "preview": { "alias": "preview"; "required": true; }; "caption": { "alias": "caption"; "required": true; }; "buttonContent": { "alias": "buttonContent"; "required": true; }; "readOnly": { "alias": "readOnly"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; }, { "fileSelected": "fileSelected"; "captionChanged": "captionChanged"; }, never, never, false, never>;
22
22
  }
@@ -47,7 +47,7 @@ export declare class MarkerModalComponent implements OnInit, OnDestroy {
47
47
  protected onCancel(): void;
48
48
  protected onClearTitle(titleElement: HTMLElement): void;
49
49
  protected onTitleChange(event: KeyboardEvent): void;
50
- protected onTitlePaste(event: Event): Promise<void>;
50
+ protected onTitlePaste(event: ClipboardEvent): void;
51
51
  private initTargetElementListener;
52
52
  private initClickOutsideSubscription;
53
53
  private initOnCloseWhenEditorScroll;
@@ -117,7 +117,7 @@ export class CuiContextMenuComponent {
117
117
  this.viewContainerRef.clear();
118
118
  }
119
119
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiContextMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
120
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CuiContextMenuComponent, selector: "cui-context-menu[items][target]", inputs: { items: "items", target: "target" }, host: { listeners: { "window:resize": "onClose()", "click": "onStopClickPropagation($event)" } }, providers: [CuiDestroyService], viewQueries: [{ propertyName: "list", first: true, predicate: ["list"], descendants: true }, { propertyName: "backdrop", first: true, predicate: ["backdrop"], descendants: true }], hostDirectives: [{ directive: i1.CuiClickOutsideDirective }, { directive: i1.CuiTargetDirective, inputs: ["ccTarget", "target"] }], ngImport: i0, template: "<ng-template #backdrop>\n <div class=\"c-backdrop\"></div>\n</ng-template>\n\n<ng-template #list>\n <div class=\"c-container\">\n <ul class=\"c-ul\">\n <li\n *ngFor=\"let item of items; trackBy: trackByFn\"\n [style.color]=\"item.color\"\n >\n <button\n type=\"button\"\n class=\"c-button\"\n (click)=\"onSelect(item)\"\n >\n <cui-svg\n *ngIf=\"item.icon\"\n [icon]=\"item.icon\"\n [color]=\"item.color\"\n ></cui-svg>\n <span>{{ item.label }}</span>\n </button>\n </li>\n </ul>\n </div>\n</ng-template>\n", styles: [":host{display:none}.c-container{position:fixed;width:268px;border-radius:8px;z-index:1}.c-backdrop{position:fixed;inset:0}.c-ul{padding:7px 0;margin:0;list-style:none;font-weight:400;font-size:14px;line-height:20px;box-shadow:0 1px 4px #0000000a,0 1px 4px #0000000a;border:1px solid var(--cui-base-200);border-radius:inherit;background:var(--cui-base-0);color:var(--cui-base-900);font-family:var(--cui-main-font)}.c-button{padding:8px 11px 8px 0;border:0;flex-shrink:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;padding:8px 11px;width:100%;display:flex;align-items:center;gap:12px}.c-button:active{background:var(--cui-base-50)}@media (hover: hover){.c-button:hover{background:var(--cui-base-50)}}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
120
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CuiContextMenuComponent, selector: "cui-context-menu[items][target]", inputs: { items: "items", target: "target", width: "width" }, host: { listeners: { "window:resize": "onClose()", "click": "onStopClickPropagation($event)" } }, providers: [CuiDestroyService], viewQueries: [{ propertyName: "list", first: true, predicate: ["list"], descendants: true }, { propertyName: "backdrop", first: true, predicate: ["backdrop"], descendants: true }], hostDirectives: [{ directive: i1.CuiClickOutsideDirective }, { directive: i1.CuiTargetDirective, inputs: ["ccTarget", "target"] }], ngImport: i0, template: "<ng-template #backdrop>\n <div class=\"c-backdrop\"></div>\n</ng-template>\n\n<ng-template #list>\n <div class=\"c-container\" [style.width]=\"width\">\n <ul class=\"c-ul\">\n <li\n *ngFor=\"let item of items; trackBy: trackByFn\"\n [style.color]=\"item.color\"\n >\n <button\n type=\"button\"\n class=\"c-button\"\n (click)=\"onSelect(item)\"\n >\n <cui-svg\n *ngIf=\"item.icon\"\n [icon]=\"item.icon\"\n [color]=\"item.color\"\n ></cui-svg>\n <span>{{ item.label }}</span>\n </button>\n </li>\n </ul>\n </div>\n</ng-template>\n", styles: [":host{display:none}.c-container{position:fixed;width:268px;border-radius:8px;z-index:1}.c-backdrop{position:fixed;inset:0}.c-ul{padding:7px 0;margin:0;list-style:none;font-weight:400;font-size:14px;line-height:20px;box-shadow:0 1px 4px #0000000a,0 1px 4px #0000000a;border:1px solid var(--cui-base-200);border-radius:inherit;width:100%;background:var(--cui-base-0);color:var(--cui-base-900);font-family:var(--cui-main-font)}.c-button{padding:8px 11px 8px 0;border:0;flex-shrink:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;padding:8px 11px;width:100%;display:flex;align-items:center;gap:12px}.c-button:active{background:var(--cui-base-50)}@media (hover: hover){.c-button:hover{background:var(--cui-base-50)}}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
121
121
  }
122
122
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiContextMenuComponent, decorators: [{
123
123
  type: Component,
@@ -127,11 +127,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
127
127
  directive: CuiTargetDirective,
128
128
  inputs: ['ccTarget: target']
129
129
  }
130
- ], template: "<ng-template #backdrop>\n <div class=\"c-backdrop\"></div>\n</ng-template>\n\n<ng-template #list>\n <div class=\"c-container\">\n <ul class=\"c-ul\">\n <li\n *ngFor=\"let item of items; trackBy: trackByFn\"\n [style.color]=\"item.color\"\n >\n <button\n type=\"button\"\n class=\"c-button\"\n (click)=\"onSelect(item)\"\n >\n <cui-svg\n *ngIf=\"item.icon\"\n [icon]=\"item.icon\"\n [color]=\"item.color\"\n ></cui-svg>\n <span>{{ item.label }}</span>\n </button>\n </li>\n </ul>\n </div>\n</ng-template>\n", styles: [":host{display:none}.c-container{position:fixed;width:268px;border-radius:8px;z-index:1}.c-backdrop{position:fixed;inset:0}.c-ul{padding:7px 0;margin:0;list-style:none;font-weight:400;font-size:14px;line-height:20px;box-shadow:0 1px 4px #0000000a,0 1px 4px #0000000a;border:1px solid var(--cui-base-200);border-radius:inherit;background:var(--cui-base-0);color:var(--cui-base-900);font-family:var(--cui-main-font)}.c-button{padding:8px 11px 8px 0;border:0;flex-shrink:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;padding:8px 11px;width:100%;display:flex;align-items:center;gap:12px}.c-button:active{background:var(--cui-base-50)}@media (hover: hover){.c-button:hover{background:var(--cui-base-50)}}\n"] }]
130
+ ], template: "<ng-template #backdrop>\n <div class=\"c-backdrop\"></div>\n</ng-template>\n\n<ng-template #list>\n <div class=\"c-container\" [style.width]=\"width\">\n <ul class=\"c-ul\">\n <li\n *ngFor=\"let item of items; trackBy: trackByFn\"\n [style.color]=\"item.color\"\n >\n <button\n type=\"button\"\n class=\"c-button\"\n (click)=\"onSelect(item)\"\n >\n <cui-svg\n *ngIf=\"item.icon\"\n [icon]=\"item.icon\"\n [color]=\"item.color\"\n ></cui-svg>\n <span>{{ item.label }}</span>\n </button>\n </li>\n </ul>\n </div>\n</ng-template>\n", styles: [":host{display:none}.c-container{position:fixed;width:268px;border-radius:8px;z-index:1}.c-backdrop{position:fixed;inset:0}.c-ul{padding:7px 0;margin:0;list-style:none;font-weight:400;font-size:14px;line-height:20px;box-shadow:0 1px 4px #0000000a,0 1px 4px #0000000a;border:1px solid var(--cui-base-200);border-radius:inherit;width:100%;background:var(--cui-base-0);color:var(--cui-base-900);font-family:var(--cui-main-font)}.c-button{padding:8px 11px 8px 0;border:0;flex-shrink:0;outline:none;cursor:pointer;appearance:none;color:inherit;font:inherit;background:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;padding:8px 11px;width:100%;display:flex;align-items:center;gap:12px}.c-button:active{background:var(--cui-base-50)}@media (hover: hover){.c-button:hover{background:var(--cui-base-50)}}\n"] }]
131
131
  }], propDecorators: { items: [{
132
132
  type: Input
133
133
  }], target: [{
134
134
  type: Input
135
+ }], width: [{
136
+ type: Input
135
137
  }], list: [{
136
138
  type: ViewChild,
137
139
  args: ['list']
@@ -145,4 +147,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
145
147
  type: HostListener,
146
148
  args: ['click', ['$event']]
147
149
  }] } });
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9jb250ZXh0LW1lbnUvY29udGV4dC1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9jb250ZXh0LW1lbnUvY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLGdCQUFnQixFQUNoQixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSx3QkFBd0IsRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbkksT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7Ozs7QUFnQjVDLE1BQU0sT0FBTyx1QkFBdUI7SUFkcEM7UUFlbUIscUJBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDNUMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixvQkFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDO1FBQ2hELFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDNUIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELDZCQUF3QixHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzVFLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRTlELHNCQUFpQixHQUFHLENBQUMsQ0FBQztRQUN0QixxQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFFOUIsY0FBUyxHQUFHLEtBQUssQ0FBQztLQThJN0I7SUEvSFEsUUFBUTtRQUNiLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFTSxlQUFlO1FBQ3BCLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFUyxRQUFRLENBQUMsSUFBd0I7UUFDekMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRWIsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUdTLE9BQU87UUFDZixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0lBR1Msc0JBQXNCLENBQUMsS0FBaUI7UUFDaEQsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFUyxTQUFTLENBQUMsQ0FBUyxFQUFFLElBQXdCO1FBQ3JELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRU8sNEJBQTRCO1FBQ2xDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxlQUFlO2FBQzFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzlCLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ3BCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDakMsT0FBTztZQUNULENBQUM7WUFFRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZixDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFTyx5QkFBeUI7UUFDL0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU87YUFDNUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDOUIsU0FBUyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRU8sc0JBQXNCO1FBQzVCLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMseUJBQXlCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVPLHlCQUF5QixDQUFDLFNBQStCO1FBQy9ELFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQzthQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2IsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxLQUFpQjtRQUMzQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsb0NBQW9DO1FBQ3BDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRTNCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBRWpDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBRTdCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDcEIsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBQUEsQ0FBQztJQUVNLEtBQUs7UUFDWCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUV2QixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRU8sVUFBVTtRQUNoQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBRSxDQUFDO1FBQzdELE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEYsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV4RSxJQUFJLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFLLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRU8sY0FBYyxDQUFDLENBQVMsRUFBRSxDQUFTO1FBQ3pDLElBQUksQ0FBQyxJQUFLLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUM7UUFFdkMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLE1BQU0sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztZQUMzRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSyxDQUFDLFdBQVcsQ0FBQztZQUNyQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSyxDQUFDLFlBQVksQ0FBQztZQUN2QyxJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7WUFDYixJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7WUFFWixJQUFJLElBQUksR0FBRyxLQUFLLEdBQUcsV0FBVyxFQUFFLENBQUM7Z0JBQy9CLElBQUksSUFBSSxLQUFLLENBQUM7WUFDaEIsQ0FBQztZQUVELElBQUksR0FBRyxHQUFHLE1BQU0sR0FBRyxZQUFZLEVBQUUsQ0FBQztnQkFDaEMsR0FBRyxJQUFJLE1BQU0sQ0FBQztZQUNoQixDQUFDO1lBRUQsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQzlDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUUzQyxJQUFJLENBQUMsSUFBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztZQUNwQyxJQUFJLENBQUMsSUFBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQztZQUNsQyxJQUFJLENBQUMsSUFBSyxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1lBRWpDLHNCQUFzQixDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQzdFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLHFCQUFxQjtRQUMzQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDaEMsQ0FBQzsrR0F6SlUsdUJBQXVCO21HQUF2Qix1QkFBdUIsME1BVHZCLENBQUMsaUJBQWlCLENBQUMsbVZDdkJoQyx1ckJBMkJBOzs0RkRLYSx1QkFBdUI7a0JBZG5DLFNBQVM7K0JBQ0UsaUNBQWlDLG1CQUcxQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsaUJBQWlCLENBQUMsa0JBQ2Q7d0JBQ2Qsd0JBQXdCO3dCQUN4Qjs0QkFDRSxTQUFTLEVBQUUsa0JBQWtCOzRCQUM3QixNQUFNLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQzt5QkFDN0I7cUJBQ0Y7OEJBa0JNLEtBQUs7c0JBRFgsS0FBSztnQkFJQyxNQUFNO3NCQURaLEtBQUs7Z0JBSWEsSUFBSTtzQkFEdEIsU0FBUzt1QkFBQyxNQUFNO2dCQUlFLFFBQVE7c0JBRDFCLFNBQVM7dUJBQUMsVUFBVTtnQkFzQlgsT0FBTztzQkFEaEIsWUFBWTt1QkFBQyxlQUFlO2dCQU1uQixzQkFBc0I7c0JBRC9CLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBPbkluaXQsIEFmdGVyVmlld0luaXQsIFRlbXBsYXRlUmVmLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDdWlEZXN0cm95U2VydmljZSwgQ3VpQ2xpY2tPdXRzaWRlRGlyZWN0aXZlLCBDdWlUYXJnZXREaXJlY3RpdmUsIENVSV9XSU5ET1csIGN1aUdldENsb3Nlc3RGb2N1c2FibGUgfSBmcm9tICdAY3VieS11aS9jZGsnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHR5cGUgeyBDdWlDb250ZXh0TWVudUl0ZW0gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IENVSV9ST09UX1NFTEVDVE9SIH0gZnJvbSAnLi4vcm9vdCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2N1aS1jb250ZXh0LW1lbnVbaXRlbXNdW3RhcmdldF0nLFxuICB0ZW1wbGF0ZVVybDogJy4vY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29udGV4dC1tZW51LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtDdWlEZXN0cm95U2VydmljZV0sXG4gIGhvc3REaXJlY3RpdmVzOiBbXG4gICAgQ3VpQ2xpY2tPdXRzaWRlRGlyZWN0aXZlLFxuICAgIHtcbiAgICAgIGRpcmVjdGl2ZTogQ3VpVGFyZ2V0RGlyZWN0aXZlLFxuICAgICAgaW5wdXRzOiBbJ2NjVGFyZ2V0OiB0YXJnZXQnXVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBDdWlDb250ZXh0TWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSB2aWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudEVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgcHJpdmF0ZSByZWFkb25seSB3aW5kb3cgPSBpbmplY3QoQ1VJX1dJTkRPVyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBpbmplY3QoQ3VpRGVzdHJveVNlcnZpY2UsIHsgc2VsZjogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBjdWlDbGlja091dHNpZGVEaXJlY3RpdmUgPSBpbmplY3QoQ3VpQ2xpY2tPdXRzaWRlRGlyZWN0aXZlLCB7IHNlbGY6IHRydWUgfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY3VpVGFyZ2V0RGlyZWN0aXZlID0gaW5qZWN0KEN1aVRhcmdldERpcmVjdGl2ZSwgeyBzZWxmOiB0cnVlIH0pO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBFWFRSQV9PRkZTRVRfTEVGVCA9IDA7XG4gIHByb3RlY3RlZCByZWFkb25seSBFWFRSQV9PRkZTRVRfVE9QID0gMDtcblxuICBwcm90ZWN0ZWQgaXNWaXNpYmxlID0gZmFsc2U7XG4gIHByb3RlY3RlZCBub2RlPzogSFRNTERpdkVsZW1lbnQ7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGl0ZW1zITogQ3VpQ29udGV4dE1lbnVJdGVtW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIHRhcmdldCE6IEhUTUxFbGVtZW50O1xuXG4gIEBWaWV3Q2hpbGQoJ2xpc3QnKVxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbGlzdCE6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQFZpZXdDaGlsZCgnYmFja2Ryb3AnKVxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYmFja2Ryb3AhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRDbGlja091dHNpZGVTdWJzY3JpcHRpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyVmlld0NvbnRhaW5lclJlZigpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRUYXJnZXRFbGVtZW50TGlzdGVuZXIoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvblNlbGVjdChpdGVtOiBDdWlDb250ZXh0TWVudUl0ZW0pOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlKCk7XG5cbiAgICBpdGVtLmNvbW1hbmQ/LigpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXG4gIHByb3RlY3RlZCBvbkNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgcHJvdGVjdGVkIG9uU3RvcENsaWNrUHJvcGFnYXRpb24oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0cmFja0J5Rm4oXzogbnVtYmVyLCBpdGVtOiBDdWlDb250ZXh0TWVudUl0ZW0pOiBzdHJpbmcge1xuICAgIHJldHVybiBpdGVtLmxhYmVsO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0Q2xpY2tPdXRzaWRlU3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuY3VpQ2xpY2tPdXRzaWRlRGlyZWN0aXZlLmN1aUNsaWNrT3V0c2lkZVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgodGFyZ2V0KSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnRhcmdldC5jb250YWlucyh0YXJnZXQpKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFRhcmdldEVsZW1lbnRMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICB0aGlzLmN1aVRhcmdldERpcmVjdGl2ZS5jbGlja2VkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKHRoaXMudGFyZ2V0RXZlbnRMaXN0ZW5lci5iaW5kKHRoaXMpKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdEhpZGluZ1N1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRIaWRpbmdGcm9tV2luZG93RXZlbnQoJ3Njcm9sbCcpO1xuICAgIHRoaXMuaW5pdEhpZGluZ0Zyb21XaW5kb3dFdmVudCgncmVzaXplJyk7XG4gIH1cblxuICBwcml2YXRlIGluaXRIaWRpbmdGcm9tV2luZG93RXZlbnQoZXZlbnROYW1lOiBrZXlvZiBXaW5kb3dFdmVudE1hcCk6IHZvaWQge1xuICAgIGZyb21FdmVudCh0aGlzLndpbmRvdywgZXZlbnROYW1lKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbG9zZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgdGFyZ2V0RXZlbnRMaXN0ZW5lcihldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIC8vIFRPRE86INC90YPQttC10L0g0LTQu9GPINC/0LXRgNC10YDQuNGB0L7QstC60LggbmdGb3JcbiAgICB0aGlzLmRvY3VtZW50LmJvZHkuY2xpY2soKTtcblxuICAgIHRoaXMuaXNWaXNpYmxlID0gIXRoaXMuaXNWaXNpYmxlO1xuXG4gICAgdGhpcy5jbGVhclZpZXdDb250YWluZXJSZWYoKTtcblxuICAgIGlmICghdGhpcy5pc1Zpc2libGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnJlbmRlckxpc3QoKTtcbiAgICB0aGlzLmNoYW5nZVBvc2l0aW9uKGV2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFkpO1xuICAgIHRoaXMuaW5pdEhpZGluZ1N1YnNjcmlwdGlvbigpO1xuICB9O1xuXG4gIHByaXZhdGUgY2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5pc1Zpc2libGUgPSBmYWxzZTtcblxuICAgIHRoaXMuY2xlYXJWaWV3Q29udGFpbmVyUmVmKCk7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlckxpc3QoKTogdm9pZCB7XG4gICAgY29uc3Qgcm9vdCA9IHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvcihDVUlfUk9PVF9TRUxFQ1RPUikhO1xuICAgIGNvbnN0IGJhY2tkcm9wVmlld1JlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5iYWNrZHJvcCk7XG4gICAgY29uc3QgbGlzdFZpZXdSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMubGlzdCk7XG5cbiAgICB0aGlzLm5vZGUgPSBsaXN0Vmlld1JlZi5yb290Tm9kZXNbMF07XG5cbiAgICByb290LmFwcGVuZChiYWNrZHJvcFZpZXdSZWYucm9vdE5vZGVzWzBdLCB0aGlzLm5vZGUhKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hhbmdlUG9zaXRpb24oeDogbnVtYmVyLCB5OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLm5vZGUhLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgeyBjbGllbnRXaWR0aCwgY2xpZW50SGVpZ2h0IH0gPSB0aGlzLmRvY3VtZW50RWxlbWVudDtcbiAgICAgIGNvbnN0IHdpZHRoID0gdGhpcy5ub2RlIS5vZmZzZXRXaWR0aDtcbiAgICAgIGNvbnN0IGhlaWdodCA9IHRoaXMubm9kZSEub2Zmc2V0SGVpZ2h0O1xuICAgICAgbGV0IGxlZnQgPSB4O1xuICAgICAgbGV0IHRvcCA9IHk7XG5cbiAgICAgIGlmIChsZWZ0ICsgd2lkdGggPiBjbGllbnRXaWR0aCkge1xuICAgICAgICBsZWZ0IC09IHdpZHRoO1xuICAgICAgfVxuXG4gICAgICBpZiAodG9wICsgaGVpZ2h0ID4gY2xpZW50SGVpZ2h0KSB7XG4gICAgICAgIHRvcCAtPSBoZWlnaHQ7XG4gICAgICB9XG5cbiAgICAgIGxlZnQgPSBNYXRoLm1heChsZWZ0LCB0aGlzLkVYVFJBX09GRlNFVF9MRUZUKTtcbiAgICAgIHRvcCA9IE1hdGgubWF4KHRvcCwgdGhpcy5FWFRSQV9PRkZTRVRfVE9QKTtcblxuICAgICAgdGhpcy5ub2RlIS5zdHlsZS5sZWZ0ID0gbGVmdCArICdweCc7XG4gICAgICB0aGlzLm5vZGUhLnN0eWxlLnRvcCA9IHRvcCArICdweCc7XG4gICAgICB0aGlzLm5vZGUhLnN0eWxlLnZpc2liaWxpdHkgPSAnJztcblxuICAgICAgY3VpR2V0Q2xvc2VzdEZvY3VzYWJsZSh7IGluaXRpYWw6IHRoaXMubm9kZSEsIHJvb3Q6IHRoaXMubm9kZSEgfSk/LmZvY3VzKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyVmlld0NvbnRhaW5lclJlZigpOiB2b2lkIHtcbiAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcbiAgfVxufVxuIiwiPG5nLXRlbXBsYXRlICNiYWNrZHJvcD5cbiAgPGRpdiBjbGFzcz1cImMtYmFja2Ryb3BcIj48L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbGlzdD5cbiAgICA8ZGl2IGNsYXNzPVwiYy1jb250YWluZXJcIj5cbiAgICAgIDx1bCBjbGFzcz1cImMtdWxcIj5cbiAgICAgICAgPGxpXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXM7IHRyYWNrQnk6IHRyYWNrQnlGblwiXG4gICAgICAgICAgW3N0eWxlLmNvbG9yXT1cIml0ZW0uY29sb3JcIlxuICAgICAgICA+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cImMtYnV0dG9uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdChpdGVtKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGN1aS1zdmdcbiAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtLmljb25cIlxuICAgICAgICAgICAgICBbaWNvbl09XCJpdGVtLmljb25cIlxuICAgICAgICAgICAgICBbY29sb3JdPVwiaXRlbS5jb2xvclwiXG4gICAgICAgICAgICA+PC9jdWktc3ZnPlxuICAgICAgICAgICAgPHNwYW4+e3sgaXRlbS5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9saT5cbiAgICAgIDwvdWw+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9jb250ZXh0LW1lbnUvY29udGV4dC1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvY29tcG9uZW50cy9jb250ZXh0LW1lbnUvY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDSCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLGdCQUFnQixFQUNoQixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSx3QkFBd0IsRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbkksT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7Ozs7QUFnQjVDLE1BQU0sT0FBTyx1QkFBdUI7SUFkcEM7UUFlcUIscUJBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDNUMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixvQkFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDO1FBQ2hELFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDNUIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELDZCQUF3QixH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cUJBQ0o7OEJBa0JNLEtBQUs7c0JBRFgsS0FBSztnQkFJQyxNQUFNO3NCQURaLEtBQUs7Z0JBSUMsS0FBSztzQkFEWCxLQUFLO2dCQUlhLElBQUk7c0JBRHRCLFNBQVM7dUJBQUMsTUFBTTtnQkFJRSxRQUFRO3NCQUQxQixTQUFTO3VCQUFDLFVBQVU7Z0JBc0JYLE9BQU87c0JBRGhCLFlBQVk7dUJBQUMsZUFBZTtnQkFNbkIsc0JBQXNCO3NCQUQvQixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgT25Jbml0LCBBZnRlclZpZXdJbml0LCBUZW1wbGF0ZVJlZiwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIFZpZXdDb250YWluZXJSZWYsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEN1aURlc3Ryb3lTZXJ2aWNlLCBDdWlDbGlja091dHNpZGVEaXJlY3RpdmUsIEN1aVRhcmdldERpcmVjdGl2ZSwgQ1VJX1dJTkRPVywgY3VpR2V0Q2xvc2VzdEZvY3VzYWJsZSB9IGZyb20gJ0BjdWJ5LXVpL2Nkayc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgdHlwZSB7IEN1aUNvbnRleHRNZW51SXRlbSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ1VJX1JPT1RfU0VMRUNUT1IgfSBmcm9tICcuLi9yb290JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdjdWktY29udGV4dC1tZW51W2l0ZW1zXVt0YXJnZXRdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jb250ZXh0LW1lbnUuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtDdWlEZXN0cm95U2VydmljZV0sXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtcbiAgICAgICAgQ3VpQ2xpY2tPdXRzaWRlRGlyZWN0aXZlLFxuICAgICAgICB7XG4gICAgICAgICAgICBkaXJlY3RpdmU6IEN1aVRhcmdldERpcmVjdGl2ZSxcbiAgICAgICAgICAgIGlucHV0czogWydjY1RhcmdldDogdGFyZ2V0J11cbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgQ3VpQ29udGV4dE1lbnVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSB2aWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRFbGVtZW50ID0gdGhpcy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG4gICAgcHJpdmF0ZSByZWFkb25seSB3aW5kb3cgPSBpbmplY3QoQ1VJX1dJTkRPVyk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IGluamVjdChDdWlEZXN0cm95U2VydmljZSwgeyBzZWxmOiB0cnVlIH0pO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY3VpQ2xpY2tPdXRzaWRlRGlyZWN0aXZlID0gaW5qZWN0KEN1aUNsaWNrT3V0c2lkZURpcmVjdGl2ZSwgeyBzZWxmOiB0cnVlIH0pO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY3VpVGFyZ2V0RGlyZWN0aXZlID0gaW5qZWN0KEN1aVRhcmdldERpcmVjdGl2ZSwgeyBzZWxmOiB0cnVlIH0pO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IEVYVFJBX09GRlNFVF9MRUZUID0gMDtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgRVhUUkFfT0ZGU0VUX1RPUCA9IDA7XG5cbiAgICBwcm90ZWN0ZWQgaXNWaXNpYmxlID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIG5vZGU/OiBIVE1MRGl2RWxlbWVudDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGl0ZW1zITogQ3VpQ29udGV4dE1lbnVJdGVtW107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0YXJnZXQhOiBIVE1MRWxlbWVudDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHdpZHRoITogc3RyaW5nO1xuXG4gICAgQFZpZXdDaGlsZCgnbGlzdCcpXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGxpc3QhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQFZpZXdDaGlsZCgnYmFja2Ryb3AnKVxuICAgIHByb3RlY3RlZCByZWFkb25seSBiYWNrZHJvcCE6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5pdENsaWNrT3V0c2lkZVN1YnNjcmlwdGlvbigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbGVhclZpZXdDb250YWluZXJSZWYoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmluaXRUYXJnZXRFbGVtZW50TGlzdGVuZXIoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25TZWxlY3QoaXRlbTogQ3VpQ29udGV4dE1lbnVJdGVtKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcblxuICAgICAgICBpdGVtLmNvbW1hbmQ/LigpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxuICAgIHByb3RlY3RlZCBvbkNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICAgIHByb3RlY3RlZCBvblN0b3BDbGlja1Byb3BhZ2F0aW9uKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB0cmFja0J5Rm4oXzogbnVtYmVyLCBpdGVtOiBDdWlDb250ZXh0TWVudUl0ZW0pOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gaXRlbS5sYWJlbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRDbGlja091dHNpZGVTdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VpQ2xpY2tPdXRzaWRlRGlyZWN0aXZlLmN1aUNsaWNrT3V0c2lkZVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgodGFyZ2V0KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudGFyZ2V0LmNvbnRhaW5zKHRhcmdldCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICAgIH0pXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0VGFyZ2V0RWxlbWVudExpc3RlbmVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1aVRhcmdldERpcmVjdGl2ZS5jbGlja2VkXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHRoaXMudGFyZ2V0RXZlbnRMaXN0ZW5lci5iaW5kKHRoaXMpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRIaWRpbmdTdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5pdEhpZGluZ0Zyb21XaW5kb3dFdmVudCgnc2Nyb2xsJyk7XG4gICAgICAgIHRoaXMuaW5pdEhpZGluZ0Zyb21XaW5kb3dFdmVudCgncmVzaXplJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0SGlkaW5nRnJvbVdpbmRvd0V2ZW50KGV2ZW50TmFtZToga2V5b2YgV2luZG93RXZlbnRNYXApOiB2b2lkIHtcbiAgICAgICAgZnJvbUV2ZW50KHRoaXMud2luZG93LCBldmVudE5hbWUpXG4gICAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsb3NlKCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdGFyZ2V0RXZlbnRMaXN0ZW5lcihldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgLy8gVE9ETzog0L3Rg9C20LXQvSDQtNC70Y8g0L/QtdGA0LXRgNC40YHQvtCy0LrQuCBuZ0ZvclxuICAgICAgICB0aGlzLmRvY3VtZW50LmJvZHkuY2xpY2soKTtcblxuICAgICAgICB0aGlzLmlzVmlzaWJsZSA9ICF0aGlzLmlzVmlzaWJsZTtcblxuICAgICAgICB0aGlzLmNsZWFyVmlld0NvbnRhaW5lclJlZigpO1xuXG4gICAgICAgIGlmICghdGhpcy5pc1Zpc2libGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucmVuZGVyTGlzdCgpO1xuICAgICAgICB0aGlzLmNoYW5nZVBvc2l0aW9uKGV2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFkpO1xuICAgICAgICB0aGlzLmluaXRIaWRpbmdTdWJzY3JpcHRpb24oKTtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBjbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc1Zpc2libGUgPSBmYWxzZTtcblxuICAgICAgICB0aGlzLmNsZWFyVmlld0NvbnRhaW5lclJlZigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVuZGVyTGlzdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IHRoaXMuZG9jdW1lbnQucXVlcnlTZWxlY3RvcihDVUlfUk9PVF9TRUxFQ1RPUikhO1xuICAgICAgICBjb25zdCBiYWNrZHJvcFZpZXdSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuYmFja2Ryb3ApO1xuICAgICAgICBjb25zdCBsaXN0Vmlld1JlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5saXN0KTtcblxuICAgICAgICB0aGlzLm5vZGUgPSBsaXN0Vmlld1JlZi5yb290Tm9kZXNbMF07XG5cbiAgICAgICAgcm9vdC5hcHBlbmQoYmFja2Ryb3BWaWV3UmVmLnJvb3ROb2Rlc1swXSwgdGhpcy5ub2RlISk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGFuZ2VQb3NpdGlvbih4OiBudW1iZXIsIHk6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLm5vZGUhLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgY2xpZW50V2lkdGgsIGNsaWVudEhlaWdodCB9ID0gdGhpcy5kb2N1bWVudEVsZW1lbnQ7XG4gICAgICAgICAgICBjb25zdCB3aWR0aCA9IHRoaXMubm9kZSEub2Zmc2V0V2lkdGg7XG4gICAgICAgICAgICBjb25zdCBoZWlnaHQgPSB0aGlzLm5vZGUhLm9mZnNldEhlaWdodDtcbiAgICAgICAgICAgIGxldCBsZWZ0ID0geDtcbiAgICAgICAgICAgIGxldCB0b3AgPSB5O1xuXG4gICAgICAgICAgICBpZiAobGVmdCArIHdpZHRoID4gY2xpZW50V2lkdGgpIHtcbiAgICAgICAgICAgICAgICBsZWZ0IC09IHdpZHRoO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodG9wICsgaGVpZ2h0ID4gY2xpZW50SGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgdG9wIC09IGhlaWdodDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGVmdCA9IE1hdGgubWF4KGxlZnQsIHRoaXMuRVhUUkFfT0ZGU0VUX0xFRlQpO1xuICAgICAgICAgICAgdG9wID0gTWF0aC5tYXgodG9wLCB0aGlzLkVYVFJBX09GRlNFVF9UT1ApO1xuXG4gICAgICAgICAgICB0aGlzLm5vZGUhLnN0eWxlLmxlZnQgPSBsZWZ0ICsgJ3B4JztcbiAgICAgICAgICAgIHRoaXMubm9kZSEuc3R5bGUudG9wID0gdG9wICsgJ3B4JztcbiAgICAgICAgICAgIHRoaXMubm9kZSEuc3R5bGUudmlzaWJpbGl0eSA9ICcnO1xuXG4gICAgICAgICAgICBjdWlHZXRDbG9zZXN0Rm9jdXNhYmxlKHsgaW5pdGlhbDogdGhpcy5ub2RlISwgcm9vdDogdGhpcy5ub2RlISB9KT8uZm9jdXMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGVhclZpZXdDb250YWluZXJSZWYoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjYmFja2Ryb3A+XG4gIDxkaXYgY2xhc3M9XCJjLWJhY2tkcm9wXCI+PC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2xpc3Q+XG4gICAgPGRpdiBjbGFzcz1cImMtY29udGFpbmVyXCIgW3N0eWxlLndpZHRoXT1cIndpZHRoXCI+XG4gICAgICA8dWwgY2xhc3M9XCJjLXVsXCI+XG4gICAgICAgIDxsaVxuICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zOyB0cmFja0J5OiB0cmFja0J5Rm5cIlxuICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJpdGVtLmNvbG9yXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCJjLWJ1dHRvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3QoaXRlbSlcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxjdWktc3ZnXG4gICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5pY29uXCJcbiAgICAgICAgICAgICAgW2ljb25dPVwiaXRlbS5pY29uXCJcbiAgICAgICAgICAgICAgW2NvbG9yXT1cIml0ZW0uY29sb3JcIlxuICAgICAgICAgICAgPjwvY3VpLXN2Zz5cbiAgICAgICAgICAgIDxzcGFuPnt7IGl0ZW0ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbGk+XG4gICAgICA8L3VsPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -30,13 +30,13 @@ export class EditorToolComponent {
30
30
  this.previousValue = value;
31
31
  this.captionChanged.emit(value);
32
32
  }
33
- async onTitlePaste(event) {
33
+ onTitlePaste(event) {
34
34
  event.stopPropagation();
35
35
  event.preventDefault();
36
36
  if (!this.document) {
37
37
  return;
38
38
  }
39
- const value = await this.window.navigator.clipboard.readText();
39
+ const value = event.clipboardData?.getData('text/plain');
40
40
  const target = event.target;
41
41
  this.document.execCommand('insertText', false, value);
42
42
  setTimeout(() => this.captionChanged.emit(target.textContent));
@@ -71,4 +71,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
71
71
  }], captionChanged: [{
72
72
  type: Output
73
73
  }] } });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLXRvb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9lZGl0b3IvY29tcG9uZW50cy9lZGl0b3ItdG9vbC9lZGl0b3ItdG9vbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBTzFDLE1BQU0sT0FBTyxtQkFBbUI7SUFKaEM7UUFLcUIsV0FBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM1QixhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBZXRDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFHakIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUdsQixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFHeEMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRTNDLGtCQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztLQXlDeEM7SUF2Q0csSUFBYyxjQUFjO1FBQ3hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQzVDLENBQUM7SUFFUyxZQUFZO1FBQ2xCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVTLGFBQWEsQ0FBQyxLQUFvQjtRQUN4QyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsYUFBNEIsQ0FBQztRQUVsRCxJQUFJLE1BQU0sQ0FBQyxTQUFTLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDOUIsTUFBTSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDMUIsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxTQUFVLENBQUM7UUFFaEMsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQy9CLE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVTLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBWTtRQUNyQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXZCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDakIsT0FBTztRQUNYLENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMvRCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBcUIsQ0FBQztRQUUzQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3RELFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBWSxDQUFDLENBQUMsQ0FBQztJQUNwRSxDQUFDOytHQXBFUSxtQkFBbUI7bUdBQW5CLG1CQUFtQiwrUUFIbEIsRUFBRTs7NEZBR0gsbUJBQW1CO2tCQUovQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxFQUFFO29CQUNaLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRDs4QkFNVSxHQUFHO3NCQURULEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUlsQixPQUFPO3NCQURiLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUlsQixPQUFPO3NCQURiLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUlsQixhQUFhO3NCQURuQixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFJbEIsUUFBUTtzQkFEZCxLQUFLO2dCQUlDLFNBQVM7c0JBRGYsS0FBSztnQkFJQyxZQUFZO3NCQURsQixNQUFNO2dCQUlBLGNBQWM7c0JBRHBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENVSV9XSU5ET1cgfSBmcm9tICdAY3VieS11aS9jZGsnO1xyXG5pbXBvcnQgdHlwZSB7IEFQSSB9IGZyb20gJ0BlZGl0b3Jqcy9lZGl0b3Jqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHRlbXBsYXRlOiAnJyxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sQ29tcG9uZW50IHtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgd2luZG93ID0gaW5qZWN0KENVSV9XSU5ET1cpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XHJcblxyXG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcclxuICAgIHB1YmxpYyBhcGkhOiBBUEk7XHJcblxyXG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcclxuICAgIHB1YmxpYyBwcmV2aWV3ITogc3RyaW5nO1xyXG5cclxuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXHJcbiAgICBwdWJsaWMgY2FwdGlvbiE6IHN0cmluZztcclxuXHJcbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxyXG4gICAgcHVibGljIGJ1dHRvbkNvbnRlbnQhOiBzdHJpbmc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyByZWFkT25seSA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgaXNMb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgZmlsZVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGNhcHRpb25DaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gICAgcHJpdmF0ZSBwcmV2aW91c1ZhbHVlID0gdGhpcy5jYXB0aW9uO1xyXG5cclxuICAgIHByb3RlY3RlZCBnZXQgaXNDYXB0aW9uU2hvd24oKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICF0aGlzLnJlYWRPbmx5IHx8ICEhdGhpcy5jYXB0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBvblNlbGVjdEZpbGUoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5maWxlU2VsZWN0ZWQuZW1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBvblRpdGxlQ2hhbmdlKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQuY3VycmVudFRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuXHJcbiAgICAgICAgaWYgKHRhcmdldC5pbm5lckhUTUwgPT09ICc8YnI+Jykge1xyXG4gICAgICAgICAgICB0YXJnZXQuaW5uZXJIVE1MID0gJyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCB2YWx1ZSA9IHRhcmdldC5pbm5lckhUTUwhO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5wcmV2aW91c1ZhbHVlID09PSB2YWx1ZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnByZXZpb3VzVmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmNhcHRpb25DaGFuZ2VkLmVtaXQodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBhc3luYyBvblRpdGxlUGFzdGUoZXZlbnQ6IEV2ZW50KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmRvY3VtZW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gYXdhaXQgdGhpcy53aW5kb3cubmF2aWdhdG9yLmNsaXBib2FyZC5yZWFkVGV4dCgpO1xyXG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuXHJcbiAgICAgICAgdGhpcy5kb2N1bWVudC5leGVjQ29tbWFuZCgnaW5zZXJ0VGV4dCcsIGZhbHNlLCB2YWx1ZSk7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmNhcHRpb25DaGFuZ2VkLmVtaXQodGFyZ2V0LnRleHRDb250ZW50ISkpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLXRvb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9lZGl0b3IvY29tcG9uZW50cy9lZGl0b3ItdG9vbC9lZGl0b3ItdG9vbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBTzFDLE1BQU0sT0FBTyxtQkFBbUI7SUFKaEM7UUFLcUIsV0FBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM1QixhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBZXRDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFHakIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUdsQixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFHeEMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRTNDLGtCQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztLQXlDeEM7SUF2Q0csSUFBYyxjQUFjO1FBQ3hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQzVDLENBQUM7SUFFUyxZQUFZO1FBQ2xCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVTLGFBQWEsQ0FBQyxLQUFvQjtRQUN4QyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsYUFBNEIsQ0FBQztRQUVsRCxJQUFJLE1BQU0sQ0FBQyxTQUFTLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDOUIsTUFBTSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDMUIsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxTQUFVLENBQUM7UUFFaEMsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQy9CLE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVTLFlBQVksQ0FBQyxLQUFxQjtRQUN4QyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXZCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDakIsT0FBTztRQUNYLENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN6RCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBcUIsQ0FBQztRQUUzQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3RELFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBWSxDQUFDLENBQUMsQ0FBQztJQUNwRSxDQUFDOytHQXBFUSxtQkFBbUI7bUdBQW5CLG1CQUFtQiwrUUFIbEIsRUFBRTs7NEZBR0gsbUJBQW1CO2tCQUovQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxFQUFFO29CQUNaLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRDs4QkFNVSxHQUFHO3NCQURULEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUlsQixPQUFPO3NCQURiLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUlsQixPQUFPO3NCQURiLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUlsQixhQUFhO3NCQURuQixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFJbEIsUUFBUTtzQkFEZCxLQUFLO2dCQUlDLFNBQVM7c0JBRGYsS0FBSztnQkFJQyxZQUFZO3NCQURsQixNQUFNO2dCQUlBLGNBQWM7c0JBRHBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENVSV9XSU5ET1cgfSBmcm9tICdAY3VieS11aS9jZGsnO1xyXG5pbXBvcnQgdHlwZSB7IEFQSSB9IGZyb20gJ0BlZGl0b3Jqcy9lZGl0b3Jqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHRlbXBsYXRlOiAnJyxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFZGl0b3JUb29sQ29tcG9uZW50IHtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgd2luZG93ID0gaW5qZWN0KENVSV9XSU5ET1cpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XHJcblxyXG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcclxuICAgIHB1YmxpYyBhcGkhOiBBUEk7XHJcblxyXG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcclxuICAgIHB1YmxpYyBwcmV2aWV3ITogc3RyaW5nO1xyXG5cclxuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXHJcbiAgICBwdWJsaWMgY2FwdGlvbiE6IHN0cmluZztcclxuXHJcbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxyXG4gICAgcHVibGljIGJ1dHRvbkNvbnRlbnQhOiBzdHJpbmc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyByZWFkT25seSA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgaXNMb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgZmlsZVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGNhcHRpb25DaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gICAgcHJpdmF0ZSBwcmV2aW91c1ZhbHVlID0gdGhpcy5jYXB0aW9uO1xyXG5cclxuICAgIHByb3RlY3RlZCBnZXQgaXNDYXB0aW9uU2hvd24oKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICF0aGlzLnJlYWRPbmx5IHx8ICEhdGhpcy5jYXB0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBvblNlbGVjdEZpbGUoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5maWxlU2VsZWN0ZWQuZW1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBvblRpdGxlQ2hhbmdlKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQuY3VycmVudFRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuXHJcbiAgICAgICAgaWYgKHRhcmdldC5pbm5lckhUTUwgPT09ICc8YnI+Jykge1xyXG4gICAgICAgICAgICB0YXJnZXQuaW5uZXJIVE1MID0gJyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCB2YWx1ZSA9IHRhcmdldC5pbm5lckhUTUwhO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5wcmV2aW91c1ZhbHVlID09PSB2YWx1ZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnByZXZpb3VzVmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmNhcHRpb25DaGFuZ2VkLmVtaXQodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBvblRpdGxlUGFzdGUoZXZlbnQ6IENsaXBib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmRvY3VtZW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gZXZlbnQuY2xpcGJvYXJkRGF0YT8uZ2V0RGF0YSgndGV4dC9wbGFpbicpO1xyXG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuXHJcbiAgICAgICAgdGhpcy5kb2N1bWVudC5leGVjQ29tbWFuZCgnaW5zZXJ0VGV4dCcsIGZhbHNlLCB2YWx1ZSk7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmNhcHRpb25DaGFuZ2VkLmVtaXQodGFyZ2V0LnRleHRDb250ZW50ISkpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -128,13 +128,13 @@ export class MarkerModalComponent {
128
128
  const value = target.textContent;
129
129
  this.formTitle.set(value);
130
130
  }
131
- async onTitlePaste(event) {
131
+ onTitlePaste(event) {
132
132
  event.stopPropagation();
133
133
  event.preventDefault();
134
134
  if (!this.document) {
135
135
  return;
136
136
  }
137
- const value = await window.navigator.clipboard.readText();
137
+ const value = event.clipboardData?.getData('text/plain');
138
138
  const target = event.target;
139
139
  this.document.execCommand('insertText', false, value);
140
140
  setTimeout(() => this.formTitle.set(target.textContent));
@@ -258,4 +258,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
258
258
  type: HostBinding,
259
259
  args: ['class._fixed']
260
260
  }] } });
261
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2VyLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZWRpdG9yL2NvbXBvbmVudHMvbWFya2VyLW1vZGFsL21hcmtlci1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci9jb21wb25lbnRzL21hcmtlci1tb2RhbC9tYXJrZXItbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUNMLE1BQU0sRUFDTixRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFDSCxlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYixjQUFjLEVBQ2QsY0FBYyxFQUNkLFlBQVksRUFDZixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FB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QUFNLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQztJQUM1RSxDQUFDOytHQTdRUSxvQkFBb0I7bUdBQXBCLG9CQUFvQixxYUMxRGpDLG9vSkE0SEEsdTRDRHBGUSxlQUFlLDJOQUNmLG1CQUFtQixrRkFDbkIsa0JBQWtCLGlIQUNsQixhQUFhLDRIQUNiLGNBQWMsb2ZBQ2QsY0FBYyxzSUFDZCxZQUFZLHdLQUNaLFdBQVcsb2tCQUNYLHFCQUFxQix5RkFDckIsbUJBQW1CLG1OQUNuQixrQkFBa0IsZ01BQ2xCLElBQUk7OzRGQU9DLG9CQUFvQjtrQkFyQmhDLFNBQVM7aUNBQ00sSUFBSSxXQUNQO3dCQUNMLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxjQUFjO3dCQUNkLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxxQkFBcUI7d0JBQ3JCLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixJQUFJO3FCQUNQLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNLGtCQUMvQixDQUFDLHdCQUF3QixDQUFDOzhCQXdCL0IsS0FBSztzQkFEZixLQUFLO2dCQU9LLEdBQUc7c0JBRGIsS0FBSztnQkFTSyxJQUFJO3NCQURkLEtBQUs7Z0JBVUMsUUFBUTtzQkFEZCxLQUFLO2dCQUlDLE1BQU07c0JBRFosS0FBSztnQkFJQyxNQUFNO3NCQURaLEtBQUs7Z0JBSUssS0FBSztzQkFEZixLQUFLO2dCQU1DLFdBQVc7c0JBRGpCLE1BQU07Z0JBSUEsYUFBYTtzQkFEbkIsTUFBTTtnQkEwQk8sSUFBSTtzQkFEakIsV0FBVzt1QkFBQyxlQUFlO2dCQU1kLEtBQUs7c0JBRGxCLFdBQVc7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5ULCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB0eXBlIHsgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIGNvbXB1dGVkLFxuICAgIGluamVjdCxcbiAgICBzaWduYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDdWlDbGlja091dHNpZGVEaXJlY3RpdmUsIEN1aUVsZW1lbnREaXJlY3RpdmUsIEN1aUlkU2VydmljZSB9IGZyb20gJ0BjdWJ5LXVpL2Nkayc7XG5pbXBvcnQgeyBUcmFuc2xvY29EaXJlY3RpdmUgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xuaW1wb3J0IHtcbiAgICBDdWlCdXR0b25Nb2R1bGUsXG4gICAgQ3VpRm9ybUZpZWxkTW9kdWxlLFxuICAgIEN1aUhpbnRNb2R1bGUsXG4gICAgQ3VpSW5wdXRNb2R1bGUsXG4gICAgQ3VpTGFiZWxNb2R1bGUsXG4gICAgQ3VpU3ZnTW9kdWxlXG59IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMnO1xuXG5pbXBvcnQgeyB1cmxWYWxpZGF0b3IgfSBmcm9tICcuLi8uLi91dGlscy91cmwudmFsaWRhdG9yJztcblxuaW1wb3J0IHsgRURJVE9SX1NFTEVDVE9SIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IEN1aU1hcmtlcnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHR5cGUgeyBUb29sIH0gZnJvbSAnLi4vZWRpdG9yLXRvb2wtbW9kYWwnO1xuaW1wb3J0IHsgTWFya2VyU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vbWFya2VyLXNlbGVjdCc7XG5cbmltcG9ydCB0eXBlIHsgTWFya2VyRGF0YSwgTWFya2VyRGF0YUNvbnRyb2wgfSBmcm9tICcuL21hcmtlci1tb2RhbC5pbnRlcmZhY2VzJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIEN1aUJ1dHRvbk1vZHVsZSxcbiAgICAgICAgQ3VpRWxlbWVudERpcmVjdGl2ZSxcbiAgICAgICAgQ3VpRm9ybUZpZWxkTW9kdWxlLFxuICAgICAgICBDdWlIaW50TW9kdWxlLFxuICAgICAgICBDdWlJbnB1dE1vZHVsZSxcbiAgICAgICAgQ3VpTGFiZWxNb2R1bGUsXG4gICAgICAgIEN1aVN2Z01vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIE1hcmtlclNlbGVjdENvbXBvbmVudCxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgVHJhbnNsb2NvRGlyZWN0aXZlLFxuICAgICAgICBOZ0lmXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbWFya2VyLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9tYXJrZXItbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0RGlyZWN0aXZlczogW0N1aUNsaWNrT3V0c2lkZURpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgTWFya2VyTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50ID0gaW5qZWN0KEVsZW1lbnRSZWYpLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY3VpQ2xpY2tPdXRzaWRlRGlyZWN0aXZlID0gaW5qZWN0KEN1aUNsaWNrT3V0c2lkZURpcmVjdGl2ZSwgeyBzZWxmOiB0cnVlIH0pO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY3VpSWRTZXJ2aWNlID0gaW5qZWN0KEN1aUlkU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBtYXJrZXJzU2VydmljZSA9IGluamVjdChDdWlNYXJrZXJzU2VydmljZSk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgVElUTEVfTUFYX0xFTkdUSCA9IDEwMDtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBmb3JtVGl0bGUgPSBzaWduYWwoJycpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBpc1RpdGxlRW1wdHkgPSBjb21wdXRlZCgoKSA9PiAhdGhpcy5mb3JtVGl0bGUoKS5sZW5ndGgpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBpc1RpdGxlTW9yZVRoYW5NYXhMZW5ndGggPSBjb21wdXRlZCgoKSA9PiB0aGlzLmZvcm1UaXRsZSgpLmxlbmd0aCA+IHRoaXMuVElUTEVfTUFYX0xFTkdUSCk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzVGl0bGVJbnZhbGlkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5pc1RpdGxlRW1wdHkoKSB8fCB0aGlzLmlzVGl0bGVNb3JlVGhhbk1heExlbmd0aCgpKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGl0bGVJZCA9IHRoaXMuY3VpSWRTZXJ2aWNlLmdlbmVyYXRlKCk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRhdGFJZCA9IHRoaXMuY3VpSWRTZXJ2aWNlLmdlbmVyYXRlKCk7XG5cbiAgICBwcm90ZWN0ZWQgZHluYW1pY0RhdGFDb250cm9sITogTWFya2VyRGF0YUNvbnRyb2w7XG4gICAgcHJvdGVjdGVkIHNwYWNlQmV0d2VlblRhcmdldEFuZExpc3QgPSA1O1xuICAgIHByb3RlY3RlZCBzdGFydFRpdGxlID0gJyc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgdGl0bGUodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnN0YXJ0VGl0bGUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5mb3JtVGl0bGUuc2V0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgdXJsKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5keW5hbWljRGF0YUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2wodmFsdWUsIHtcbiAgICAgICAgICAgIG5vbk51bGxhYmxlOiB0cnVlLFxuICAgICAgICAgICAgdmFsaWRhdG9yczogW1ZhbGlkYXRvcnMucmVxdWlyZWQsIHVybFZhbGlkYXRvcigpXVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgdG9vbCh2YWx1ZTogVG9vbCkge1xuICAgICAgICBjb25zdCB0b29sID0gdGhpcy5tYXJrZXJzU2VydmljZS5nZXRNYXJrZXJPYmplY3RCeVR5cGUodmFsdWUudHlwZSEsIHZhbHVlLmlkKTtcbiAgICAgICAgdGhpcy5keW5hbWljRGF0YUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2wodG9vbCwge1xuICAgICAgICAgICAgbm9uTnVsbGFibGU6IHRydWUsXG4gICAgICAgICAgICB2YWxpZGF0b3JzOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaXNHbG9iYWwgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGlzVG9vbCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdGFyZ2V0ITogSFRNTEJ1dHRvbkVsZW1lbnQ7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgc3BhY2UodmFsdWU6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNwYWNlQmV0d2VlblRhcmdldEFuZExpc3QgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgc2F2ZUNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE1hcmtlckRhdGE+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgY2FuY2VsQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHByb3RlY3RlZCBpc1Zpc2libGUgPSBzaWduYWwoZmFsc2UpO1xuICAgIHByb3RlY3RlZCBpc0hpZGRlbiA9IHNpZ25hbCh0cnVlKTtcbiAgICBwcm90ZWN0ZWQgZWRpdG9yITogSFRNTEVsZW1lbnQ7XG4gICAgcHJvdGVjdGVkIGN1cnJlbnRUb29sPzogVG9vbDtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGFyZ2V0VG9nZ2xlRXZlbnRMaXN0ZW5lciA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5pc1Zpc2libGUudXBkYXRlKChwcmV2KSA9PiAhcHJldik7XG5cbiAgICAgICAgaWYgKCF0aGlzLmlzVmlzaWJsZSgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNhbGN1bGF0ZURyb3Bkb3duUG9zaXRpb24oKTtcbiAgICB9O1xuXG4gICAgcHJvdGVjdGVkIGdldCBpc0Zvcm1JbnZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5keW5hbWljRGF0YUNvbnRyb2wuaW52YWxpZCB8fCB0aGlzLmlzVGl0bGVJbnZhbGlkKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBpc0R5bmFtaWNEYXRhRXJyb3JTaG93bigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZHluYW1pY0RhdGFDb250cm9sLmludmFsaWQgJiYgdGhpcy5keW5hbWljRGF0YUNvbnRyb2wuZGlydHk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5faGlkZGVuJylcbiAgICBwcm90ZWN0ZWQgZ2V0IGhpZGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzSGlkZGVuKCk7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5fZml4ZWQnKVxuICAgIHByb3RlY3RlZCBnZXQgZml4ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzR2xvYmFsO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbml0VGFyZ2V0RWxlbWVudExpc3RlbmVyKCk7XG4gICAgICAgIHRoaXMuaW5pdENsaWNrT3V0c2lkZVN1YnNjcmlwdGlvbigpO1xuICAgICAgICB0aGlzLmluaXRPbkNsb3NlV2hlbkVkaXRvclNjcm9sbCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95RXZlbnRMaXN0ZW5lcnMoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25UaXRsZUxhYmVsQ2xpY2soZWxlbWVudDogSFRNTERpdkVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpO1xuICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG5cbiAgICAgICAgcmFuZ2Uuc2VsZWN0Tm9kZUNvbnRlbnRzKGVsZW1lbnQpO1xuICAgICAgICByYW5nZS5jb2xsYXBzZShmYWxzZSk7XG4gICAgICAgIHNlbGVjdGlvbj8ucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgICAgIHNlbGVjdGlvbj8uYWRkUmFuZ2UocmFuZ2UpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvblNhdmUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRm9ybUludmFsaWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaXNWaXNpYmxlLnNldChmYWxzZSk7XG4gICAgICAgIHRoaXMuc2F2ZUNsaWNrZWQuZW1pdCh7IHRpdGxlOiB0aGlzLmZvcm1UaXRsZSgpLCBkYXRhOiB0aGlzLmR5bmFtaWNEYXRhQ29udHJvbC52YWx1ZSB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25TY3JvbGwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNWaXNpYmxlLnNldChmYWxzZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uQ2FuY2VsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzVmlzaWJsZS5zZXQoZmFsc2UpO1xuICAgICAgICB0aGlzLmNhbmNlbENsaWNrZWQuZW1pdCgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkNsZWFyVGl0bGUodGl0bGVFbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm1UaXRsZS5zZXQoJycpO1xuXG4gICAgICAgIHRpdGxlRWxlbWVudC50ZXh0Q29udGVudCA9ICcnO1xuICAgICAgICB0aXRsZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25UaXRsZUNoYW5nZShldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0YXJnZXQudGV4dENvbnRlbnQhO1xuXG4gICAgICAgIHRoaXMuZm9ybVRpdGxlLnNldCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFzeW5jIG9uVGl0bGVQYXN0ZShldmVudDogRXZlbnQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmRvY3VtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB2YWx1ZSA9IGF3YWl0IHdpbmRvdy5uYXZpZ2F0b3IuY2xpcGJvYXJkLnJlYWRUZXh0KCk7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgICB0aGlzLmRvY3VtZW50LmV4ZWNDb21tYW5kKCdpbnNlcnRUZXh0JywgZmFsc2UsIHZhbHVlKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmZvcm1UaXRsZS5zZXQodGFyZ2V0LnRleHRDb250ZW50ISkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdFRhcmdldEVsZW1lbnRMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLnRhcmdldFRvZ2dsZUV2ZW50TGlzdGVuZXIpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdENsaWNrT3V0c2lkZVN1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jdWlDbGlja091dHNpZGVEaXJlY3RpdmUuY3VpQ2xpY2tPdXRzaWRlLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZSgodGFyZ2V0KSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5lbGVtZW50LmNvbnRhaW5zKHRhcmdldCkgfHwgdGhpcy50YXJnZXQuY29udGFpbnModGFyZ2V0KSB8fCAhdGhpcy5pc1Zpc2libGUoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5pc1Zpc2libGUuc2V0KGZhbHNlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0T25DbG9zZVdoZW5FZGl0b3JTY3JvbGwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWRpdG9yID0gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKEVESVRPUl9TRUxFQ1RPUikgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAgICAgdGhpcy5lZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5vblNjcm9sbC5iaW5kKHRoaXMpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlc3Ryb3lFdmVudExpc3RlbmVycygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lZGl0b3IucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5vblNjcm9sbC5iaW5kKHRoaXMpKTtcbiAgICAgICAgdGhpcy50YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLnRhcmdldFRvZ2dsZUV2ZW50TGlzdGVuZXIpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlRHJvcGRvd25Qb3NpdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0hpZGRlbi5zZXQodHJ1ZSk7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSB0aGlzLnRhcmdldDtcbiAgICAgICAgICAgIGNvbnN0IHsgYm90dG9tOiB0YXJnZXRSZWN0Qm90dG9tLCBsZWZ0OiB0YXJnZXRSZWN0TGVmdCB9ID0gdGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgY29uc3QgeyBjbGllbnRIZWlnaHQ6IGRvY3VtZW50Q2xpZW50SGVpZ2h0LCBjbGllbnRXaWR0aDogZG9jdW1lbnRDbGllbnRXaWR0aCB9ID1cbiAgICAgICAgICAgICAgICB0aGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgICAgICAgICAgIGNvbnN0IGRpc3RhbmNlVG9Cb3R0b20gPSBkb2N1bWVudENsaWVudEhlaWdodCAtICh0YXJnZXRSZWN0Qm90dG9tICsgdGhpcy5zcGFjZUJldHdlZW5UYXJnZXRBbmRMaXN0KTtcbiAgICAgICAgICAgIGNvbnN0IGRpc3RhbmNlVG9SaWdodCA9IGRvY3VtZW50Q2xpZW50V2lkdGggLSB0YXJnZXRSZWN0TGVmdDtcbiAgICAgICAgICAgIGNvbnN0IGlzTGlzdFJpZ2h0ID0gZGlzdGFuY2VUb1JpZ2h0IDwgdGhpcy5lbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgICAgICAgY29uc3QgaXNMaXN0QWJvdmUgPSBkaXN0YW5jZVRvQm90dG9tIDwgdGhpcy5lbGVtZW50Lm9mZnNldEhlaWdodDtcblxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VQb3NpdGlvblkoaXNMaXN0QWJvdmUsIHRhcmdldC5vZmZzZXRIZWlnaHQsIHRhcmdldFJlY3RCb3R0b20pO1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VQb3NpdGlvblgoaXNMaXN0UmlnaHQsIHRhcmdldC5vZmZzZXRXaWR0aCwgdGFyZ2V0UmVjdExlZnQpO1xuXG4gICAgICAgICAgICB0aGlzLmlzSGlkZGVuLnNldChmYWxzZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hhbmdlUG9zaXRpb25YKGlzTGlzdFJpZ2h0OiBib29sZWFuLCB3aWR0aDogbnVtYmVyLCBsZWZ0OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNHbG9iYWwpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlR2xvYmFsUG9zaXRpb25YKGlzTGlzdFJpZ2h0LCB3aWR0aCwgbGVmdCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0xpc3RSaWdodCkge1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLnJpZ2h0ID0gJzAnO1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLmxlZnQgPSAnYXV0byc7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS5yaWdodCA9ICdhdXRvJztcbiAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLmxlZnQgPSAnMCc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGFuZ2VQb3NpdGlvblkoaXNMaXN0QWJvdmU6IGJvb2xlYW4sIGhlaWdodDogbnVtYmVyLCBib3R0b206IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0dsb2JhbCkge1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VHbG9iYWxQb3NpdGlvblkoaXNMaXN0QWJvdmUsIGhlaWdodCwgYm90dG9tKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzTGlzdEFib3ZlKSB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUuYm90dG9tID0gaGVpZ2h0ICsgdGhpcy5zcGFjZUJldHdlZW5UYXJnZXRBbmRMaXN0ICsgJ3B4JztcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS50b3AgPSAnYXV0byc7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS50b3AgPSBoZWlnaHQgKyB0aGlzLnNwYWNlQmV0d2VlblRhcmdldEFuZExpc3QgKyAncHgnO1xuICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUuYm90dG9tID0gJ2F1dG8nO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hhbmdlR2xvYmFsUG9zaXRpb25YKGlzTGlzdFJpZ2h0OiBib29sZWFuLCB3aWR0aDogbnVtYmVyLCBsZWZ0OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzTGlzdFJpZ2h0KSB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUubGVmdCA9IGxlZnQgLSB0aGlzLmVsZW1lbnQub2Zmc2V0V2lkdGggKyB3aWR0aCArICdweCc7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS5sZWZ0ID0gbGVmdCArICdweCc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGFuZ2VHbG9iYWxQb3NpdGlvblkoaXNMaXN0QWJvdmU6IGJvb2xlYW4sIGhlaWdodDogbnVtYmVyLCBib3R0b206IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAoaXNMaXN0QWJvdmUpIHtcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS50b3AgPVxuICAgICAgICAgICAgICAgIGJvdHRvbSAtIHRoaXMuZWxlbWVudC5vZmZzZXRIZWlnaHQgLSBoZWlnaHQgLSB0aGlzLnNwYWNlQmV0d2VlblRhcmdldEFuZExpc3QgKyAncHgnO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUudG9wID0gYm90dG9tICsgdGhpcy5zcGFjZUJldHdlZW5UYXJnZXRBbmRMaXN0ICsgJ3B4JztcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICp0cmFuc2xvY289XCJsZXQgdFwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNWaXNpYmxlKClcIj5cbiAgICA8Zm9ybVxuICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICBjbGFzcz1cIndyYXBwZXJcIlxuICAgID5cbiAgICAgICAgPGN1aS1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPCEtLSBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgLS0+XG4gICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICBbZm9yXT1cInRpdGxlSWRcIlxuICAgICAgICAgICAgICAgIGN1aUxhYmVsXG4gICAgICAgICAgICAgICAgW2lzUmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uVGl0bGVMYWJlbENsaWNrKHRpdGxlRWxlbWVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IHQoJ1RJVExFJykgfX1cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8IS0tIFRPRE86INC10YHQu9C4INC90LDQudC00LXRgtGB0Y8g0LLQsNGA0LjQuiDRgdC00LXQu9Cw0YLRjCDRh9C10YDQtdC3INGE0L7RgNC80YMgLS0+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0aXRsZVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLnRpdGxlX2ludmFsaWRdPVwiaXNUaXRsZUludmFsaWQoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAjdGl0bGVFbGVtZW50XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGl0bGVfX3RleHRcIlxuICAgICAgICAgICAgICAgICAgICBjb250ZW50ZWRpdGFibGVcbiAgICAgICAgICAgICAgICAgICAgYXR0ci5kYXRhLXBsYWNlaG9sZGVyPVwie3sgdCgnVElUTEUnKSB9fS4uLlwiXG4gICAgICAgICAgICAgICAgICAgIChwYXN0ZSk9XCJvblRpdGxlUGFzdGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIChrZXl1cCk9XCJvblRpdGxlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cInN0YXJ0VGl0bGVcIlxuICAgICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRpdGxlX19jbGVhclwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNsZWFyVGl0bGUodGl0bGVFbGVtZW50KVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8Y3VpLXN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj1cImN1aUljb25DbGVhclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInZhcigtLWN1aS1iYXNlLTMwMClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0aXRsZV9faWNvblwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGN1aS1oaW50ICpuZ0lmPVwiaXNUaXRsZUludmFsaWQoKVwiIGhpbnRUeXBlPVwiZXJyb3JcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNUaXRsZUVtcHR5KClcIj5cbiAgICAgICAgICAgICAgICAgIHt7IHQoJ0ZJRUxEX0lTX1JFUVVJUkVEJykgfX1cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNUaXRsZU1vcmVUaGFuTWF4TGVuZ3RoKClcIj5cbiAgICAgICAgICAgICAgICAgIHt7IHQoJ1BMRUFTRV9LRUVQX0ZJRUxEX1VOREVSX0NIQVJBQ1RFUlMnKSB9fVxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9jdWktaGludD5cbiAgICAgICAgPC9jdWktZm9ybS1maWVsZD5cbiAgICAgICAgPGN1aS1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgW2Zvcl09XCJkYXRhSWRcIlxuICAgICAgICAgICAgICAgIGN1aUxhYmVsXG4gICAgICAgICAgICAgICAgW2lzUmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgaXNUb29sID8gdCgnVE9PTCcpIDogdCgnVVJMJykgfX1cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZHluYW1pY0RhdGFDb250cm9sXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1Rvb2w7IGVsc2UgaW5wdXRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAjdGFyZ2V0PVwiZWxlbWVudFJlZlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ1dHRvbiB0b29sLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjdWlCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY3VpRWxlbWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwZWFyYW5jZT1cIm91dGxpbmVkLWdyYXlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJGFueShkeW5hbWljRGF0YUNvbnRyb2wudmFsdWUpPy50aXRsZSB8fCB0KCdTRUxFQ1RfVE9PTCcpIH19XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxjYy1tYXJrZXItc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJkeW5hbWljRGF0YUNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICBbdGFyZ2V0XT1cInRhcmdldC5uYXRpdmVFbGVtZW50XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNpbnB1dD5cbiAgICAgICAgICAgICAgICA8Y3VpLWlucHV0LXRleHRcbiAgICAgICAgICAgICAgICAgICAgW2N1aVRleHRGaWVsZElkXT1cImRhdGFJZFwiXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJkeW5hbWljRGF0YUNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgICAgICBbY3VpVGV4dEZpZWxkSXNFcnJvcl09XCJpc0R5bmFtaWNEYXRhRXJyb3JTaG93blwiXG4gICAgICAgICAgICAgICAgICAgIGN1aVRleHRGaWVsZFBsYWNlaG9sZGVyPVwie3sgdCgnTElOSycpIH19Li4uXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxjdWktaGludCAqbmdJZj1cImlzRHluYW1pY0RhdGFFcnJvclNob3duXCIgaGludFR5cGU9XCJlcnJvclwiPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImR5bmFtaWNEYXRhQ29udHJvbC5lcnJvcnM/LlsncmVxdWlyZWQnXVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyB0KCdGSUVMRF9JU19SRVFVSVJFRCcpIH19XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkeW5hbWljRGF0YUNvbnRyb2wuZXJyb3JzPy5bJ3VybCddXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IHQoJ0lOVkFMSURfVVJMJykgfX1cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvY3VpLWhpbnQ+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9jdWktZm9ybS1maWVsZD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbnNcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjdWlCdXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBhcHBlYXJhbmNlPVwib3V0bGluZWQtZ3JheVwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DYW5jZWwoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgdCgnQ0FOQ0VMJykgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGN1aUJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJhY3Rpb25cIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzRm9ybUludmFsaWRcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNhdmUoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgdCgnU0FWRScpIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9mb3JtPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuXG4iXX0=
261
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2VyLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZWRpdG9yL2NvbXBvbmVudHMvbWFya2VyLW1vZGFsL21hcmtlci1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci9jb21wb25lbnRzL21hcmtlci1tb2RhbC9tYXJrZXItbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUNMLE1BQU0sRUFDTixRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFDSCxlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYixjQUFjLEVBQ2QsY0FBYyxFQUNkLFlBQVksRUFDZixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FB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Q0FBQyx5QkFBeUIsR0FBRyxJQUFJLENBQUM7SUFDNUUsQ0FBQzsrR0E3UVEsb0JBQW9CO21HQUFwQixvQkFBb0IscWFDMURqQyxvb0pBNEhBLHU0Q0RwRlEsZUFBZSwyTkFDZixtQkFBbUIsa0ZBQ25CLGtCQUFrQixpSEFDbEIsYUFBYSw0SEFDYixjQUFjLG9mQUNkLGNBQWMsc0lBQ2QsWUFBWSx3S0FDWixXQUFXLG9rQkFDWCxxQkFBcUIseUZBQ3JCLG1CQUFtQixtTkFDbkIsa0JBQWtCLGdNQUNsQixJQUFJOzs0RkFPQyxvQkFBb0I7a0JBckJoQyxTQUFTO2lDQUNNLElBQUksV0FDUDt3QkFDTCxlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixhQUFhO3dCQUNiLGNBQWM7d0JBQ2QsY0FBYzt3QkFDZCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gscUJBQXFCO3dCQUNyQixtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsSUFBSTtxQkFDUCxtQkFHZ0IsdUJBQXVCLENBQUMsTUFBTSxrQkFDL0IsQ0FBQyx3QkFBd0IsQ0FBQzs4QkF3Qi9CLEtBQUs7c0JBRGYsS0FBSztnQkFPSyxHQUFHO3NCQURiLEtBQUs7Z0JBU0ssSUFBSTtzQkFEZCxLQUFLO2dCQVVDLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxNQUFNO3NCQURaLEtBQUs7Z0JBSUMsTUFBTTtzQkFEWixLQUFLO2dCQUlLLEtBQUs7c0JBRGYsS0FBSztnQkFNQyxXQUFXO3NCQURqQixNQUFNO2dCQUlBLGFBQWE7c0JBRG5CLE1BQU07Z0JBMEJPLElBQUk7c0JBRGpCLFdBQVc7dUJBQUMsZUFBZTtnQkFNZCxLQUFLO3NCQURsQixXQUFXO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgdHlwZSB7IE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBEZXN0cm95UmVmLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBjb21wdXRlZCxcbiAgICBpbmplY3QsXG4gICAgc2lnbmFsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ3VpQ2xpY2tPdXRzaWRlRGlyZWN0aXZlLCBDdWlFbGVtZW50RGlyZWN0aXZlLCBDdWlJZFNlcnZpY2UgfSBmcm9tICdAY3VieS11aS9jZGsnO1xuaW1wb3J0IHsgVHJhbnNsb2NvRGlyZWN0aXZlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJztcbmltcG9ydCB7XG4gICAgQ3VpQnV0dG9uTW9kdWxlLFxuICAgIEN1aUZvcm1GaWVsZE1vZHVsZSxcbiAgICBDdWlIaW50TW9kdWxlLFxuICAgIEN1aUlucHV0TW9kdWxlLFxuICAgIEN1aUxhYmVsTW9kdWxlLFxuICAgIEN1aVN2Z01vZHVsZVxufSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzJztcblxuaW1wb3J0IHsgdXJsVmFsaWRhdG9yIH0gZnJvbSAnLi4vLi4vdXRpbHMvdXJsLnZhbGlkYXRvcic7XG5cbmltcG9ydCB7IEVESVRPUl9TRUxFQ1RPUiB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBDdWlNYXJrZXJzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB0eXBlIHsgVG9vbCB9IGZyb20gJy4uL2VkaXRvci10b29sLW1vZGFsJztcbmltcG9ydCB7IE1hcmtlclNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4uL21hcmtlci1zZWxlY3QnO1xuXG5pbXBvcnQgdHlwZSB7IE1hcmtlckRhdGEsIE1hcmtlckRhdGFDb250cm9sIH0gZnJvbSAnLi9tYXJrZXItbW9kYWwuaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDdWlCdXR0b25Nb2R1bGUsXG4gICAgICAgIEN1aUVsZW1lbnREaXJlY3RpdmUsXG4gICAgICAgIEN1aUZvcm1GaWVsZE1vZHVsZSxcbiAgICAgICAgQ3VpSGludE1vZHVsZSxcbiAgICAgICAgQ3VpSW5wdXRNb2R1bGUsXG4gICAgICAgIEN1aUxhYmVsTW9kdWxlLFxuICAgICAgICBDdWlTdmdNb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBNYXJrZXJTZWxlY3RDb21wb25lbnQsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIFRyYW5zbG9jb0RpcmVjdGl2ZSxcbiAgICAgICAgTmdJZlxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL21hcmtlci1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbWFya2VyLW1vZGFsLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtDdWlDbGlja091dHNpZGVEaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIE1hcmtlck1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdChFbGVtZW50UmVmKS5uYXRpdmVFbGVtZW50O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGN1aUNsaWNrT3V0c2lkZURpcmVjdGl2ZSA9IGluamVjdChDdWlDbGlja091dHNpZGVEaXJlY3RpdmUsIHsgc2VsZjogdHJ1ZSB9KTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGN1aUlkU2VydmljZSA9IGluamVjdChDdWlJZFNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbWFya2Vyc1NlcnZpY2UgPSBpbmplY3QoQ3VpTWFya2Vyc1NlcnZpY2UpO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IFRJVExFX01BWF9MRU5HVEggPSAxMDA7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZm9ybVRpdGxlID0gc2lnbmFsKCcnKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNUaXRsZUVtcHR5ID0gY29tcHV0ZWQoKCkgPT4gIXRoaXMuZm9ybVRpdGxlKCkubGVuZ3RoKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNUaXRsZU1vcmVUaGFuTWF4TGVuZ3RoID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5mb3JtVGl0bGUoKS5sZW5ndGggPiB0aGlzLlRJVExFX01BWF9MRU5HVEgpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBpc1RpdGxlSW52YWxpZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaXNUaXRsZUVtcHR5KCkgfHwgdGhpcy5pc1RpdGxlTW9yZVRoYW5NYXhMZW5ndGgoKSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRpdGxlSWQgPSB0aGlzLmN1aUlkU2VydmljZS5nZW5lcmF0ZSgpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBkYXRhSWQgPSB0aGlzLmN1aUlkU2VydmljZS5nZW5lcmF0ZSgpO1xuXG4gICAgcHJvdGVjdGVkIGR5bmFtaWNEYXRhQ29udHJvbCE6IE1hcmtlckRhdGFDb250cm9sO1xuICAgIHByb3RlY3RlZCBzcGFjZUJldHdlZW5UYXJnZXRBbmRMaXN0ID0gNTtcbiAgICBwcm90ZWN0ZWQgc3RhcnRUaXRsZSA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHRpdGxlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zdGFydFRpdGxlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuZm9ybVRpdGxlLnNldCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHVybCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZHluYW1pY0RhdGFDb250cm9sID0gbmV3IEZvcm1Db250cm9sKHZhbHVlLCB7XG4gICAgICAgICAgICBub25OdWxsYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkLCB1cmxWYWxpZGF0b3IoKV1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHRvb2wodmFsdWU6IFRvb2wpIHtcbiAgICAgICAgY29uc3QgdG9vbCA9IHRoaXMubWFya2Vyc1NlcnZpY2UuZ2V0TWFya2VyT2JqZWN0QnlUeXBlKHZhbHVlLnR5cGUhLCB2YWx1ZS5pZCk7XG4gICAgICAgIHRoaXMuZHluYW1pY0RhdGFDb250cm9sID0gbmV3IEZvcm1Db250cm9sKHRvb2wsIHtcbiAgICAgICAgICAgIG5vbk51bGxhYmxlOiB0cnVlLFxuICAgICAgICAgICAgdmFsaWRhdG9yczogW1ZhbGlkYXRvcnMucmVxdWlyZWRdXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGlzR2xvYmFsID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpc1Rvb2wgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHRhcmdldCE6IEhUTUxCdXR0b25FbGVtZW50O1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHNwYWNlKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zcGFjZUJldHdlZW5UYXJnZXRBbmRMaXN0ID0gdmFsdWU7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHNhdmVDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxNYXJrZXJEYXRhPigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGNhbmNlbENsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwcm90ZWN0ZWQgaXNWaXNpYmxlID0gc2lnbmFsKGZhbHNlKTtcbiAgICBwcm90ZWN0ZWQgaXNIaWRkZW4gPSBzaWduYWwodHJ1ZSk7XG4gICAgcHJvdGVjdGVkIGVkaXRvciE6IEhUTUxFbGVtZW50O1xuICAgIHByb3RlY3RlZCBjdXJyZW50VG9vbD86IFRvb2w7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRhcmdldFRvZ2dsZUV2ZW50TGlzdGVuZXIgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuaXNWaXNpYmxlLnVwZGF0ZSgocHJldikgPT4gIXByZXYpO1xuXG4gICAgICAgIGlmICghdGhpcy5pc1Zpc2libGUoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jYWxjdWxhdGVEcm9wZG93blBvc2l0aW9uKCk7XG4gICAgfTtcblxuICAgIHByb3RlY3RlZCBnZXQgaXNGb3JtSW52YWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZHluYW1pY0RhdGFDb250cm9sLmludmFsaWQgfHwgdGhpcy5pc1RpdGxlSW52YWxpZCgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgaXNEeW5hbWljRGF0YUVycm9yU2hvd24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmR5bmFtaWNEYXRhQ29udHJvbC5pbnZhbGlkICYmIHRoaXMuZHluYW1pY0RhdGFDb250cm9sLmRpcnR5O1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX2hpZGRlbicpXG4gICAgcHJvdGVjdGVkIGdldCBoaWRlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0hpZGRlbigpO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuX2ZpeGVkJylcbiAgICBwcm90ZWN0ZWQgZ2V0IGZpeGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0dsb2JhbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5pdFRhcmdldEVsZW1lbnRMaXN0ZW5lcigpO1xuICAgICAgICB0aGlzLmluaXRDbGlja091dHNpZGVTdWJzY3JpcHRpb24oKTtcbiAgICAgICAgdGhpcy5pbml0T25DbG9zZVdoZW5FZGl0b3JTY3JvbGwoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveUV2ZW50TGlzdGVuZXJzKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uVGl0bGVMYWJlbENsaWNrKGVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuXG4gICAgICAgIHJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyhlbGVtZW50KTtcbiAgICAgICAgcmFuZ2UuY29sbGFwc2UoZmFsc2UpO1xuICAgICAgICBzZWxlY3Rpb24/LnJlbW92ZUFsbFJhbmdlcygpO1xuICAgICAgICBzZWxlY3Rpb24/LmFkZFJhbmdlKHJhbmdlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25TYXZlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0Zvcm1JbnZhbGlkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmlzVmlzaWJsZS5zZXQoZmFsc2UpO1xuICAgICAgICB0aGlzLnNhdmVDbGlja2VkLmVtaXQoeyB0aXRsZTogdGhpcy5mb3JtVGl0bGUoKSwgZGF0YTogdGhpcy5keW5hbWljRGF0YUNvbnRyb2wudmFsdWUgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uU2Nyb2xsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzVmlzaWJsZS5zZXQoZmFsc2UpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkNhbmNlbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc1Zpc2libGUuc2V0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5jYW5jZWxDbGlja2VkLmVtaXQoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25DbGVhclRpdGxlKHRpdGxlRWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb3JtVGl0bGUuc2V0KCcnKTtcblxuICAgICAgICB0aXRsZUVsZW1lbnQudGV4dENvbnRlbnQgPSAnJztcbiAgICAgICAgdGl0bGVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uVGl0bGVDaGFuZ2UoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGFyZ2V0LnRleHRDb250ZW50ITtcblxuICAgICAgICB0aGlzLmZvcm1UaXRsZS5zZXQodmFsdWUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvblRpdGxlUGFzdGUoZXZlbnQ6IENsaXBib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgIGlmICghdGhpcy5kb2N1bWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdmFsdWUgPSBldmVudC5jbGlwYm9hcmREYXRhPy5nZXREYXRhKCd0ZXh0L3BsYWluJyk7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgICB0aGlzLmRvY3VtZW50LmV4ZWNDb21tYW5kKCdpbnNlcnRUZXh0JywgZmFsc2UsIHZhbHVlKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmZvcm1UaXRsZS5zZXQodGFyZ2V0LnRleHRDb250ZW50ISkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdFRhcmdldEVsZW1lbnRMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLnRhcmdldFRvZ2dsZUV2ZW50TGlzdGVuZXIpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdENsaWNrT3V0c2lkZVN1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jdWlDbGlja091dHNpZGVEaXJlY3RpdmUuY3VpQ2xpY2tPdXRzaWRlLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZSgodGFyZ2V0KSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5lbGVtZW50LmNvbnRhaW5zKHRhcmdldCkgfHwgdGhpcy50YXJnZXQuY29udGFpbnModGFyZ2V0KSB8fCAhdGhpcy5pc1Zpc2libGUoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5pc1Zpc2libGUuc2V0KGZhbHNlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0T25DbG9zZVdoZW5FZGl0b3JTY3JvbGwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWRpdG9yID0gdGhpcy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKEVESVRPUl9TRUxFQ1RPUikgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICAgICAgdGhpcy5lZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5vblNjcm9sbC5iaW5kKHRoaXMpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlc3Ryb3lFdmVudExpc3RlbmVycygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lZGl0b3IucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5vblNjcm9sbC5iaW5kKHRoaXMpKTtcbiAgICAgICAgdGhpcy50YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLnRhcmdldFRvZ2dsZUV2ZW50TGlzdGVuZXIpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlRHJvcGRvd25Qb3NpdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0hpZGRlbi5zZXQodHJ1ZSk7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSB0aGlzLnRhcmdldDtcbiAgICAgICAgICAgIGNvbnN0IHsgYm90dG9tOiB0YXJnZXRSZWN0Qm90dG9tLCBsZWZ0OiB0YXJnZXRSZWN0TGVmdCB9ID0gdGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgY29uc3QgeyBjbGllbnRIZWlnaHQ6IGRvY3VtZW50Q2xpZW50SGVpZ2h0LCBjbGllbnRXaWR0aDogZG9jdW1lbnRDbGllbnRXaWR0aCB9ID1cbiAgICAgICAgICAgICAgICB0aGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgICAgICAgICAgIGNvbnN0IGRpc3RhbmNlVG9Cb3R0b20gPSBkb2N1bWVudENsaWVudEhlaWdodCAtICh0YXJnZXRSZWN0Qm90dG9tICsgdGhpcy5zcGFjZUJldHdlZW5UYXJnZXRBbmRMaXN0KTtcbiAgICAgICAgICAgIGNvbnN0IGRpc3RhbmNlVG9SaWdodCA9IGRvY3VtZW50Q2xpZW50V2lkdGggLSB0YXJnZXRSZWN0TGVmdDtcbiAgICAgICAgICAgIGNvbnN0IGlzTGlzdFJpZ2h0ID0gZGlzdGFuY2VUb1JpZ2h0IDwgdGhpcy5lbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgICAgICAgY29uc3QgaXNMaXN0QWJvdmUgPSBkaXN0YW5jZVRvQm90dG9tIDwgdGhpcy5lbGVtZW50Lm9mZnNldEhlaWdodDtcblxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VQb3NpdGlvblkoaXNMaXN0QWJvdmUsIHRhcmdldC5vZmZzZXRIZWlnaHQsIHRhcmdldFJlY3RCb3R0b20pO1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VQb3NpdGlvblgoaXNMaXN0UmlnaHQsIHRhcmdldC5vZmZzZXRXaWR0aCwgdGFyZ2V0UmVjdExlZnQpO1xuXG4gICAgICAgICAgICB0aGlzLmlzSGlkZGVuLnNldChmYWxzZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hhbmdlUG9zaXRpb25YKGlzTGlzdFJpZ2h0OiBib29sZWFuLCB3aWR0aDogbnVtYmVyLCBsZWZ0OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNHbG9iYWwpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlR2xvYmFsUG9zaXRpb25YKGlzTGlzdFJpZ2h0LCB3aWR0aCwgbGVmdCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0xpc3RSaWdodCkge1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLnJpZ2h0ID0gJzAnO1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLmxlZnQgPSAnYXV0byc7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS5yaWdodCA9ICdhdXRvJztcbiAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLmxlZnQgPSAnMCc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGFuZ2VQb3NpdGlvblkoaXNMaXN0QWJvdmU6IGJvb2xlYW4sIGhlaWdodDogbnVtYmVyLCBib3R0b206IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0dsb2JhbCkge1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VHbG9iYWxQb3NpdGlvblkoaXNMaXN0QWJvdmUsIGhlaWdodCwgYm90dG9tKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzTGlzdEFib3ZlKSB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUuYm90dG9tID0gaGVpZ2h0ICsgdGhpcy5zcGFjZUJldHdlZW5UYXJnZXRBbmRMaXN0ICsgJ3B4JztcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS50b3AgPSAnYXV0byc7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS50b3AgPSBoZWlnaHQgKyB0aGlzLnNwYWNlQmV0d2VlblRhcmdldEFuZExpc3QgKyAncHgnO1xuICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUuYm90dG9tID0gJ2F1dG8nO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hhbmdlR2xvYmFsUG9zaXRpb25YKGlzTGlzdFJpZ2h0OiBib29sZWFuLCB3aWR0aDogbnVtYmVyLCBsZWZ0OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzTGlzdFJpZ2h0KSB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUubGVmdCA9IGxlZnQgLSB0aGlzLmVsZW1lbnQub2Zmc2V0V2lkdGggKyB3aWR0aCArICdweCc7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS5sZWZ0ID0gbGVmdCArICdweCc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGFuZ2VHbG9iYWxQb3NpdGlvblkoaXNMaXN0QWJvdmU6IGJvb2xlYW4sIGhlaWdodDogbnVtYmVyLCBib3R0b206IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAoaXNMaXN0QWJvdmUpIHtcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS50b3AgPVxuICAgICAgICAgICAgICAgIGJvdHRvbSAtIHRoaXMuZWxlbWVudC5vZmZzZXRIZWlnaHQgLSBoZWlnaHQgLSB0aGlzLnNwYWNlQmV0d2VlblRhcmdldEFuZExpc3QgKyAncHgnO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUudG9wID0gYm90dG9tICsgdGhpcy5zcGFjZUJldHdlZW5UYXJnZXRBbmRMaXN0ICsgJ3B4JztcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICp0cmFuc2xvY289XCJsZXQgdFwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNWaXNpYmxlKClcIj5cbiAgICA8Zm9ybVxuICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICBjbGFzcz1cIndyYXBwZXJcIlxuICAgID5cbiAgICAgICAgPGN1aS1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPCEtLSBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgLS0+XG4gICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICBbZm9yXT1cInRpdGxlSWRcIlxuICAgICAgICAgICAgICAgIGN1aUxhYmVsXG4gICAgICAgICAgICAgICAgW2lzUmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uVGl0bGVMYWJlbENsaWNrKHRpdGxlRWxlbWVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IHQoJ1RJVExFJykgfX1cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8IS0tIFRPRE86INC10YHQu9C4INC90LDQudC00LXRgtGB0Y8g0LLQsNGA0LjQuiDRgdC00LXQu9Cw0YLRjCDRh9C10YDQtdC3INGE0L7RgNC80YMgLS0+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0aXRsZVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLnRpdGxlX2ludmFsaWRdPVwiaXNUaXRsZUludmFsaWQoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAjdGl0bGVFbGVtZW50XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGl0bGVfX3RleHRcIlxuICAgICAgICAgICAgICAgICAgICBjb250ZW50ZWRpdGFibGVcbiAgICAgICAgICAgICAgICAgICAgYXR0ci5kYXRhLXBsYWNlaG9sZGVyPVwie3sgdCgnVElUTEUnKSB9fS4uLlwiXG4gICAgICAgICAgICAgICAgICAgIChwYXN0ZSk9XCJvblRpdGxlUGFzdGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIChrZXl1cCk9XCJvblRpdGxlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cInN0YXJ0VGl0bGVcIlxuICAgICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRpdGxlX19jbGVhclwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNsZWFyVGl0bGUodGl0bGVFbGVtZW50KVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8Y3VpLXN2Z1xuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj1cImN1aUljb25DbGVhclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInZhcigtLWN1aS1iYXNlLTMwMClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0aXRsZV9faWNvblwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGN1aS1oaW50ICpuZ0lmPVwiaXNUaXRsZUludmFsaWQoKVwiIGhpbnRUeXBlPVwiZXJyb3JcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNUaXRsZUVtcHR5KClcIj5cbiAgICAgICAgICAgICAgICAgIHt7IHQoJ0ZJRUxEX0lTX1JFUVVJUkVEJykgfX1cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNUaXRsZU1vcmVUaGFuTWF4TGVuZ3RoKClcIj5cbiAgICAgICAgICAgICAgICAgIHt7IHQoJ1BMRUFTRV9LRUVQX0ZJRUxEX1VOREVSX0NIQVJBQ1RFUlMnKSB9fVxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9jdWktaGludD5cbiAgICAgICAgPC9jdWktZm9ybS1maWVsZD5cbiAgICAgICAgPGN1aS1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgW2Zvcl09XCJkYXRhSWRcIlxuICAgICAgICAgICAgICAgIGN1aUxhYmVsXG4gICAgICAgICAgICAgICAgW2lzUmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgaXNUb29sID8gdCgnVE9PTCcpIDogdCgnVVJMJykgfX1cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZHluYW1pY0RhdGFDb250cm9sXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1Rvb2w7IGVsc2UgaW5wdXRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAjdGFyZ2V0PVwiZWxlbWVudFJlZlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ1dHRvbiB0b29sLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjdWlCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY3VpRWxlbWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwZWFyYW5jZT1cIm91dGxpbmVkLWdyYXlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJGFueShkeW5hbWljRGF0YUNvbnRyb2wudmFsdWUpPy50aXRsZSB8fCB0KCdTRUxFQ1RfVE9PTCcpIH19XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxjYy1tYXJrZXItc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJkeW5hbWljRGF0YUNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICBbdGFyZ2V0XT1cInRhcmdldC5uYXRpdmVFbGVtZW50XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNpbnB1dD5cbiAgICAgICAgICAgICAgICA8Y3VpLWlucHV0LXRleHRcbiAgICAgICAgICAgICAgICAgICAgW2N1aVRleHRGaWVsZElkXT1cImRhdGFJZFwiXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJkeW5hbWljRGF0YUNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgICAgICBbY3VpVGV4dEZpZWxkSXNFcnJvcl09XCJpc0R5bmFtaWNEYXRhRXJyb3JTaG93blwiXG4gICAgICAgICAgICAgICAgICAgIGN1aVRleHRGaWVsZFBsYWNlaG9sZGVyPVwie3sgdCgnTElOSycpIH19Li4uXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxjdWktaGludCAqbmdJZj1cImlzRHluYW1pY0RhdGFFcnJvclNob3duXCIgaGludFR5cGU9XCJlcnJvclwiPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImR5bmFtaWNEYXRhQ29udHJvbC5lcnJvcnM/LlsncmVxdWlyZWQnXVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyB0KCdGSUVMRF9JU19SRVFVSVJFRCcpIH19XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkeW5hbWljRGF0YUNvbnRyb2wuZXJyb3JzPy5bJ3VybCddXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IHQoJ0lOVkFMSURfVVJMJykgfX1cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvY3VpLWhpbnQ+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9jdWktZm9ybS1maWVsZD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbnNcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjdWlCdXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBhcHBlYXJhbmNlPVwib3V0bGluZWQtZ3JheVwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DYW5jZWwoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgdCgnQ0FOQ0VMJykgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGN1aUJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJhY3Rpb25cIlxuICAgICAgICAgICAgICAgIHNpemU9XCJzbVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzRm9ybUludmFsaWRcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblNhdmUoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgdCgnU0FWRScpIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9mb3JtPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuXG4iXX0=
@@ -58,7 +58,7 @@ export class CuiChecklistBlockComponent {
58
58
  .subscribe((checkListItem) => this.checkListBlockService.addCheckListItem(checkListItem));
59
59
  }
60
60
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiChecklistBlockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
61
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CuiChecklistBlockComponent, isStandalone: true, selector: "cui-checklist-block, [cuiCheckListBlock]", inputs: { componentId: { classPropertyName: "componentId", publicName: "componentId", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, providers: [CuiCheckListBlockService], ngImport: i0, template: "<cui-content-wrapper\n *transloco=\"let t\"\n backgroundColor=\"var(--cui-base-10)\"\n [gap]=\"16\"\n>\n <ng-container *cuiLet=\"checkListItems() as checkListItems\">\n <header class=\"header\">\n <h2 class=\"heading\">{{ t('CHECKLIST') }}</h2>\n\n @if (checkListItems) {\n <span class=\"item\">{{ checkListItems?.length }} {{ t('ITEM_VARIANT') }}</span>\n }\n </header>\n <cui-content-wrapper>\n <cui-checklist-block-list [config]=\"config()\" />\n </cui-content-wrapper>\n <div>\n <button\n #actionButton=\"elementRef\"\n cuiElement\n cuiButton\n type=\"button\"\n appearance=\"flat\"\n size=\"xxs\"\n icon=\"cuiIconPlus\"\n >\n {{ t('ADD_NEW_ITEM') }}\n </button>\n <cui-context-menu\n [items]=\"CHECKLIST_BLOCK_SELECT_OPTIONS\"\n [target]=\"actionButton.nativeElement\"\n />\n </div>\n </ng-container>\n</cui-content-wrapper>\n", styles: [".header{display:flex;gap:12px;align-items:center;justify-content:space-between}.heading{font-weight:500;font-size:16px;line-height:24px}.item{font-weight:400;font-size:12px;line-height:14px;color:var(--cui-base-500)}\n"], dependencies: [{ kind: "component", type: CuiChecklistBlockListComponent, selector: "cui-checklist-block-list", inputs: ["config"] }, { kind: "component", type: CuiContentWrapperComponent, selector: "cui-content-wrapper, [cuiContentWrapper]", inputs: ["backgroundColor", "gap"] }, { kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: i1.CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "size"] }, { kind: "ngmodule", type: CuiContextMenuModule }, { kind: "component", type: i2.CuiContextMenuComponent, selector: "cui-context-menu[items][target]", inputs: ["items", "target"] }, { kind: "directive", type: CuiElementDirective, selector: "[cuiElement]", exportAs: ["elementRef"] }, { kind: "directive", type: CuiLetDirective, selector: "[cuiLet]", inputs: ["cuiLet"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
61
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CuiChecklistBlockComponent, isStandalone: true, selector: "cui-checklist-block, [cuiCheckListBlock]", inputs: { componentId: { classPropertyName: "componentId", publicName: "componentId", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, providers: [CuiCheckListBlockService], ngImport: i0, template: "<cui-content-wrapper\n *transloco=\"let t\"\n backgroundColor=\"var(--cui-base-10)\"\n [gap]=\"16\"\n>\n <ng-container *cuiLet=\"checkListItems() as checkListItems\">\n <header class=\"header\">\n <h2 class=\"heading\">{{ t('CHECKLIST') }}</h2>\n\n @if (checkListItems) {\n <span class=\"item\">{{ checkListItems?.length }} {{ t('ITEM_VARIANT') }}</span>\n }\n </header>\n <cui-content-wrapper>\n <cui-checklist-block-list [config]=\"config()\" />\n </cui-content-wrapper>\n <div>\n <button\n #actionButton=\"elementRef\"\n cuiElement\n cuiButton\n type=\"button\"\n appearance=\"flat\"\n size=\"xxs\"\n icon=\"cuiIconPlus\"\n >\n {{ t('ADD_NEW_ITEM') }}\n </button>\n <cui-context-menu\n [items]=\"CHECKLIST_BLOCK_SELECT_OPTIONS\"\n [target]=\"actionButton.nativeElement\"\n />\n </div>\n </ng-container>\n</cui-content-wrapper>\n", styles: [".header{display:flex;gap:12px;align-items:center;justify-content:space-between}.heading{font-weight:500;font-size:16px;line-height:24px}.item{font-weight:400;font-size:12px;line-height:14px;color:var(--cui-base-500)}\n"], dependencies: [{ kind: "component", type: CuiChecklistBlockListComponent, selector: "cui-checklist-block-list", inputs: ["config"] }, { kind: "component", type: CuiContentWrapperComponent, selector: "cui-content-wrapper, [cuiContentWrapper]", inputs: ["backgroundColor", "gap"] }, { kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: i1.CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "size"] }, { kind: "ngmodule", type: CuiContextMenuModule }, { kind: "component", type: i2.CuiContextMenuComponent, selector: "cui-context-menu[items][target]", inputs: ["items", "target", "width"] }, { kind: "directive", type: CuiElementDirective, selector: "[cuiElement]", exportAs: ["elementRef"] }, { kind: "directive", type: CuiLetDirective, selector: "[cuiLet]", inputs: ["cuiLet"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
62
62
  }
63
63
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiChecklistBlockComponent, decorators: [{
64
64
  type: Component,
@@ -72,4 +72,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
72
72
  TranslocoDirective
73
73
  ], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, providers: [CuiCheckListBlockService], template: "<cui-content-wrapper\n *transloco=\"let t\"\n backgroundColor=\"var(--cui-base-10)\"\n [gap]=\"16\"\n>\n <ng-container *cuiLet=\"checkListItems() as checkListItems\">\n <header class=\"header\">\n <h2 class=\"heading\">{{ t('CHECKLIST') }}</h2>\n\n @if (checkListItems) {\n <span class=\"item\">{{ checkListItems?.length }} {{ t('ITEM_VARIANT') }}</span>\n }\n </header>\n <cui-content-wrapper>\n <cui-checklist-block-list [config]=\"config()\" />\n </cui-content-wrapper>\n <div>\n <button\n #actionButton=\"elementRef\"\n cuiElement\n cuiButton\n type=\"button\"\n appearance=\"flat\"\n size=\"xxs\"\n icon=\"cuiIconPlus\"\n >\n {{ t('ADD_NEW_ITEM') }}\n </button>\n <cui-context-menu\n [items]=\"CHECKLIST_BLOCK_SELECT_OPTIONS\"\n [target]=\"actionButton.nativeElement\"\n />\n </div>\n </ng-container>\n</cui-content-wrapper>\n", styles: [".header{display:flex;gap:12px;align-items:center;justify-content:space-between}.heading{font-weight:500;font-size:16px;line-height:24px}.item{font-weight:400;font-size:12px;line-height:14px;color:var(--cui-base-500)}\n"] }]
74
74
  }], ctorParameters: () => [] });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tsaXN0LWJsb2NrLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy9jaGVja2xpc3QtYmxvY2svY2hlY2tsaXN0LWJsb2NrLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy9jaGVja2xpc3QtYmxvY2svY2hlY2tsaXN0LWJsb2NrLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFaEMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLHVCQUF1QixFQUFtRCxNQUFNLGNBQWMsQ0FBQztBQUVwSSxPQUFPLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFckcsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzlELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLFlBQVksQ0FBQzs7OztBQXFCdEQsTUFBTSxPQUFPLDBCQUEwQjtJQTRCbkM7UUEzQmlCLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMseUJBQW9CLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7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V0FDM0M7d0JBQ0wsOEJBQThCO3dCQUM5QiwwQkFBMEI7d0JBQzFCLGVBQWU7d0JBQ2Ysb0JBQW9CO3dCQUNwQixtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2Ysa0JBQWtCO3FCQUNyQixjQUNXLElBQUksbUJBR0MsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRGVzdHJveVJlZiwgZWZmZWN0LCBpbmplY3QsIGlucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEN1aUVsZW1lbnREaXJlY3RpdmUsIEN1aUxldERpcmVjdGl2ZSB9IGZyb20gJ0BjdWJ5LXVpL2Nkayc7XG5pbXBvcnQgeyBUcmFuc2xvY29EaXJlY3RpdmUsIFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xuaW1wb3J0IHsgZmluYWxpemUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IH0gZnJvbSAnQGN1YnktdWkvYXBpJztcbmltcG9ydCB7IEN1aU5vZGVDaGVja2xpc3RBcGlTZXJ2aWNlLCBDdWlUcmVlU3RydWN0QXBpU2VydmljZSwgTm9kZUNoZWNrTGlzdEl0ZW0sIE5vZGVDaGVja0xpc3RJdGVtQ29udGVudFR5cGUgfSBmcm9tICdAY3VieS11aS9hcGknO1xuXG5pbXBvcnQgeyBDdWlCdXR0b25Nb2R1bGUsIEN1aUNvbnRleHRNZW51TW9kdWxlLCBDdWlDb250ZW50V3JhcHBlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQ3VpQ2hlY2tMaXN0QmxvY2tJdGVtVHlwZSB9IGZyb20gJy4vY2hlY2tsaXN0LWJsb2NrLm9wdGlvbnMnO1xuaW1wb3J0IHsgQ3VpQ2hlY2tsaXN0QmxvY2tMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzJztcbmltcG9ydCB7IEN1aUNoZWNrTGlzdEJsb2NrU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMnO1xuaW1wb3J0IHsgQ3VpQ29udGV4dE1lbnVJdGVtIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDdWlFZGl0b3JDb25maWcgfSBmcm9tICcuLi8uLi9lZGl0b3IvaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnY3VpLWNoZWNrbGlzdC1ibG9jaywgW2N1aUNoZWNrTGlzdEJsb2NrXScsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDdWlDaGVja2xpc3RCbG9ja0xpc3RDb21wb25lbnQsXG4gICAgICAgIEN1aUNvbnRlbnRXcmFwcGVyQ29tcG9uZW50LFxuICAgICAgICBDdWlCdXR0b25Nb2R1bGUsXG4gICAgICAgIEN1aUNvbnRleHRNZW51TW9kdWxlLFxuICAgICAgICBDdWlFbGVtZW50RGlyZWN0aXZlLFxuICAgICAgICBDdWlMZXREaXJlY3RpdmUsXG4gICAgICAgIFRyYW5zbG9jb0RpcmVjdGl2ZVxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tsaXN0LWJsb2NrLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jaGVja2xpc3QtYmxvY2suY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtDdWlDaGVja0xpc3RCbG9ja1NlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIEN1aUNoZWNrbGlzdEJsb2NrQ29tcG9uZW50IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmVlU3RydWN0QXBpU2VydmljZSA9IGluamVjdChDdWlUcmVlU3RydWN0QXBpU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xvY29TZXJ2aWNlID0gaW5qZWN0KFRyYW5zbG9jb1NlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbm9kZUNoZWNrTGlzdEFwaVNlcnZpY2UgPSBpbmplY3QoQ3VpTm9kZUNoZWNrbGlzdEFwaVNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY2hlY2tMaXN0QmxvY2tTZXJ2aWNlID0gaW5qZWN0KEN1aUNoZWNrTGlzdEJsb2NrU2VydmljZSk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgQ0hFQ0tMSVNUX0JMT0NLX1NFTEVDVF9PUFRJT05TOiBDdWlDb250ZXh0TWVudUl0ZW1bXSA9IFtcbiAgICAgICAge1xuICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ0FTU0lHTkVFX0FQUFJPVkFMJyksXG4gICAgICAgICAgICBjb21tYW5kOiAoKSA9PiB0aGlzLmFkZENoZWNrTGlzdEl0ZW0oQ3VpQ2hlY2tMaXN0QmxvY2tJdGVtVHlwZS5XSVRIT1VUX1ZFUklGSUNBVElPTilcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ0RPVUJMRV9DSEVDS19BUFBST1ZBTCcpLFxuICAgICAgICAgICAgY29tbWFuZDogKCkgPT4gdGhpcy5hZGRDaGVja0xpc3RJdGVtKEN1aUNoZWNrTGlzdEJsb2NrSXRlbVR5cGUuV0lUSF9WRVJJRklDQVRJT04pXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdFVkFMVUFUSU9OX09QVElPTlMnKSxcbiAgICAgICAgICAgIGNvbW1hbmQ6ICgpID0+IHRoaXMuYWRkQ2hlY2tMaXN0SXRlbShDdWlDaGVja0xpc3RCbG9ja0l0ZW1UeXBlLkVWQUxVQVRJT04pXG4gICAgICAgIH1cbiAgICBdO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNoZWNrTGlzdEl0ZW1zID0gdGhpcy5jaGVja0xpc3RCbG9ja1NlcnZpY2UuY2hlY2tMaXN0SXRlbXM7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzTG9hZGluZyA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgY29tcG9uZW50SWQgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG4gICAgcHVibGljIHJlYWRvbmx5IGNvbmZpZyA9IGlucHV0LnJlcXVpcmVkPEN1aUVkaXRvckNvbmZpZz4oKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmluaXROb2RlQ2hlY2tMaXN0QmxvY2soKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXROb2RlQ2hlY2tMaXN0QmxvY2soKTogdm9pZCB7XG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrTGlzdEJsb2NrU2VydmljZS5zZXRDb21wb25lbnRJZCh0aGlzLmNvbXBvbmVudElkKCkpO1xuICAgICAgICAgICAgdGhpcy50cmVlU3RydWN0QXBpU2VydmljZVxuICAgICAgICAgICAgICAgIC5nZXRCeUlkPE5vZGVDaGVja0xpc3RJdGVtPE5vZGVDaGVja0xpc3RJdGVtQ29udGVudFR5cGU+Pih0aGlzLmNvbXBvbmVudElkKCkpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgodHJlZVN0cnVjdCkgPT4gdGhpcy5jaGVja0xpc3RCbG9ja1NlcnZpY2Uuc2V0Q2hlY2tMaXN0SXRlbXModHJlZVN0cnVjdC5lbGVtZW50cykpO1xuICAgICAgICB9LCB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkQ2hlY2tMaXN0SXRlbSh0eXBlOiBDdWlDaGVja0xpc3RCbG9ja0l0ZW1UeXBlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nLnNldCh0cnVlKTtcbiAgICAgICAgdGhpcy5ub2RlQ2hlY2tMaXN0QXBpU2VydmljZVxuICAgICAgICAgICAgLmFkZE5vZGVDaGVja0xpc3RJdGVtKHtcbiAgICAgICAgICAgICAgICB0cmVlU3RydWN0Q29udGFpbmVyQ2hlY2tMaXN0SWQ6IHRoaXMuY29tcG9uZW50SWQoKSxcbiAgICAgICAgICAgICAgICB0aXRsZTogJ05ldyBjaGVja2xpc3QgaXRlbScsXG4gICAgICAgICAgICAgICAgdHlwZV9vcGVyYXRpb25zOiB0eXBlXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZiksIGZpbmFsaXplKCgpID0+IHRoaXMuaXNMb2FkaW5nLnNldChmYWxzZSkpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoY2hlY2tMaXN0SXRlbSkgPT4gdGhpcy5jaGVja0xpc3RCbG9ja1NlcnZpY2UuYWRkQ2hlY2tMaXN0SXRlbShjaGVja0xpc3RJdGVtKSk7XG4gICAgfVxufVxuIiwiPGN1aS1jb250ZW50LXdyYXBwZXJcbiAgICAqdHJhbnNsb2NvPVwibGV0IHRcIlxuICAgIGJhY2tncm91bmRDb2xvcj1cInZhcigtLWN1aS1iYXNlLTEwKVwiXG4gICAgW2dhcF09XCIxNlwiXG4+XG4gICAgPG5nLWNvbnRhaW5lciAqY3VpTGV0PVwiY2hlY2tMaXN0SXRlbXMoKSBhcyBjaGVja0xpc3RJdGVtc1wiPlxuICAgICAgICA8aGVhZGVyIGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICA8aDIgY2xhc3M9XCJoZWFkaW5nXCI+e3sgdCgnQ0hFQ0tMSVNUJykgfX08L2gyPlxuXG4gICAgICAgICAgICBAaWYgKGNoZWNrTGlzdEl0ZW1zKSB7XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpdGVtXCI+e3sgY2hlY2tMaXN0SXRlbXM/Lmxlbmd0aCB9fSB7eyB0KCdJVEVNX1ZBUklBTlQnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9oZWFkZXI+XG4gICAgICAgIDxjdWktY29udGVudC13cmFwcGVyPlxuICAgICAgICAgICAgPGN1aS1jaGVja2xpc3QtYmxvY2stbGlzdCBbY29uZmlnXT1cImNvbmZpZygpXCIgLz5cbiAgICAgICAgPC9jdWktY29udGVudC13cmFwcGVyPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICNhY3Rpb25CdXR0b249XCJlbGVtZW50UmVmXCJcbiAgICAgICAgICAgICAgICBjdWlFbGVtZW50XG4gICAgICAgICAgICAgICAgY3VpQnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgYXBwZWFyYW5jZT1cImZsYXRcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJ4eHNcIlxuICAgICAgICAgICAgICAgIGljb249XCJjdWlJY29uUGx1c1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgdCgnQUREX05FV19JVEVNJykgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGN1aS1jb250ZXh0LW1lbnVcbiAgICAgICAgICAgICAgICBbaXRlbXNdPVwiQ0hFQ0tMSVNUX0JMT0NLX1NFTEVDVF9PUFRJT05TXCJcbiAgICAgICAgICAgICAgICBbdGFyZ2V0XT1cImFjdGlvbkJ1dHRvbi5uYXRpdmVFbGVtZW50XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9jdWktY29udGVudC13cmFwcGVyPlxuIl19
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tsaXN0LWJsb2NrLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy9jaGVja2xpc3QtYmxvY2svY2hlY2tsaXN0LWJsb2NrLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy9jaGVja2xpc3QtYmxvY2svY2hlY2tsaXN0LWJsb2NrLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFaEMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLHVCQUF1QixFQUFtRCxNQUFNLGNBQWMsQ0FBQztBQUVwSSxPQUFPLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFckcsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzlELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLFlBQVksQ0FBQzs7OztBQXFCdEQsTUFBTSxPQUFPLDBCQUEwQjtJQTRCbkM7UUEzQmlCLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMseUJBQW9CLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7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V0FDM0M7d0JBQ0wsOEJBQThCO3dCQUM5QiwwQkFBMEI7d0JBQzFCLGVBQWU7d0JBQ2Ysb0JBQW9CO3dCQUNwQixtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2Ysa0JBQWtCO3FCQUNyQixjQUNXLElBQUksbUJBR0MsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRGVzdHJveVJlZiwgZWZmZWN0LCBpbmplY3QsIGlucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEN1aUVsZW1lbnREaXJlY3RpdmUsIEN1aUxldERpcmVjdGl2ZSB9IGZyb20gJ0BjdWJ5LXVpL2Nkayc7XG5pbXBvcnQgeyBUcmFuc2xvY29EaXJlY3RpdmUsIFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xuaW1wb3J0IHsgZmluYWxpemUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IH0gZnJvbSAnQGN1YnktdWkvYXBpJztcbmltcG9ydCB7IEN1aU5vZGVDaGVja2xpc3RBcGlTZXJ2aWNlLCBDdWlUcmVlU3RydWN0QXBpU2VydmljZSwgTm9kZUNoZWNrTGlzdEl0ZW0sIE5vZGVDaGVja0xpc3RJdGVtQ29udGVudFR5cGUgfSBmcm9tICdAY3VieS11aS9hcGknO1xuXG5pbXBvcnQgeyBDdWlCdXR0b25Nb2R1bGUsIEN1aUNvbnRleHRNZW51TW9kdWxlLCBDdWlDb250ZW50V3JhcHBlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQ3VpQ2hlY2tMaXN0QmxvY2tJdGVtVHlwZSB9IGZyb20gJy4vY2hlY2tsaXN0LWJsb2NrLm9wdGlvbnMnO1xuaW1wb3J0IHsgQ3VpQ2hlY2tsaXN0QmxvY2tMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzJztcbmltcG9ydCB7IEN1aUNoZWNrTGlzdEJsb2NrU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMnO1xuaW1wb3J0IHsgQ3VpQ29udGV4dE1lbnVJdGVtIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDdWlFZGl0b3JDb25maWcgfSBmcm9tICcuLi8uLi9lZGl0b3IvaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnY3VpLWNoZWNrbGlzdC1ibG9jaywgW2N1aUNoZWNrTGlzdEJsb2NrXScsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDdWlDaGVja2xpc3RCbG9ja0xpc3RDb21wb25lbnQsXG4gICAgICAgIEN1aUNvbnRlbnRXcmFwcGVyQ29tcG9uZW50LFxuICAgICAgICBDdWlCdXR0b25Nb2R1bGUsXG4gICAgICAgIEN1aUNvbnRleHRNZW51TW9kdWxlLFxuICAgICAgICBDdWlFbGVtZW50RGlyZWN0aXZlLFxuICAgICAgICBDdWlMZXREaXJlY3RpdmUsXG4gICAgICAgIFRyYW5zbG9jb0RpcmVjdGl2ZVxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tsaXN0LWJsb2NrLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jaGVja2xpc3QtYmxvY2suY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtDdWlDaGVja0xpc3RCbG9ja1NlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIEN1aUNoZWNrbGlzdEJsb2NrQ29tcG9uZW50IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmVlU3RydWN0QXBpU2VydmljZSA9IGluamVjdChDdWlUcmVlU3RydWN0QXBpU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xvY29TZXJ2aWNlID0gaW5qZWN0KFRyYW5zbG9jb1NlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbm9kZUNoZWNrTGlzdEFwaVNlcnZpY2UgPSBpbmplY3QoQ3VpTm9kZUNoZWNrbGlzdEFwaVNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY2hlY2tMaXN0QmxvY2tTZXJ2aWNlID0gaW5qZWN0KEN1aUNoZWNrTGlzdEJsb2NrU2VydmljZSk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgQ0hFQ0tMSVNUX0JMT0NLX1NFTEVDVF9PUFRJT05TOiBDdWlDb250ZXh0TWVudUl0ZW1bXSA9IFtcbiAgICAgICAge1xuICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ0FTU0lHTkVFX0FQUFJPVkFMJyksXG4gICAgICAgICAgICBjb21tYW5kOiAoKSA9PiB0aGlzLmFkZENoZWNrTGlzdEl0ZW0oQ3VpQ2hlY2tMaXN0QmxvY2tJdGVtVHlwZS5XSVRIT1VUX1ZFUklGSUNBVElPTilcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ0RPVUJMRV9DSEVDS19BUFBST1ZBTCcpLFxuICAgICAgICAgICAgY29tbWFuZDogKCkgPT4gdGhpcy5hZGRDaGVja0xpc3RJdGVtKEN1aUNoZWNrTGlzdEJsb2NrSXRlbVR5cGUuV0lUSF9WRVJJRklDQVRJT04pXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdFVkFMVUFUSU9OX09QVElPTlMnKSxcbiAgICAgICAgICAgIGNvbW1hbmQ6ICgpID0+IHRoaXMuYWRkQ2hlY2tMaXN0SXRlbShDdWlDaGVja0xpc3RCbG9ja0l0ZW1UeXBlLkVWQUxVQVRJT04pXG4gICAgICAgIH1cbiAgICBdO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNoZWNrTGlzdEl0ZW1zID0gdGhpcy5jaGVja0xpc3RCbG9ja1NlcnZpY2UuY2hlY2tMaXN0SXRlbXM7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzTG9hZGluZyA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgY29tcG9uZW50SWQgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG4gICAgcHVibGljIHJlYWRvbmx5IGNvbmZpZyA9IGlucHV0LnJlcXVpcmVkPEN1aUVkaXRvckNvbmZpZz4oKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmluaXROb2RlQ2hlY2tMaXN0QmxvY2soKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXROb2RlQ2hlY2tMaXN0QmxvY2soKTogdm9pZCB7XG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrTGlzdEJsb2NrU2VydmljZS5zZXRDb21wb25lbnRJZCh0aGlzLmNvbXBvbmVudElkKCkpO1xuICAgICAgICAgICAgdGhpcy50cmVlU3RydWN0QXBpU2VydmljZVxuICAgICAgICAgICAgICAgIC5nZXRCeUlkPE5vZGVDaGVja0xpc3RJdGVtPE5vZGVDaGVja0xpc3RJdGVtQ29udGVudFR5cGU+Pih0aGlzLmNvbXBvbmVudElkKCkpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgodHJlZVN0cnVjdCkgPT4gdGhpcy5jaGVja0xpc3RCbG9ja1NlcnZpY2Uuc2V0Q2hlY2tMaXN0SXRlbXModHJlZVN0cnVjdC5lbGVtZW50cykpO1xuICAgICAgICB9LCB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkQ2hlY2tMaXN0SXRlbSh0eXBlOiBDdWlDaGVja0xpc3RCbG9ja0l0ZW1UeXBlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nLnNldCh0cnVlKTtcbiAgICAgICAgdGhpcy5ub2RlQ2hlY2tMaXN0QXBpU2VydmljZVxuICAgICAgICAgICAgLmFkZE5vZGVDaGVja0xpc3RJdGVtKHtcbiAgICAgICAgICAgICAgICB0cmVlU3RydWN0Q29udGFpbmVyQ2hlY2tMaXN0SWQ6IHRoaXMuY29tcG9uZW50SWQoKSxcbiAgICAgICAgICAgICAgICB0aXRsZTogJ05ldyBjaGVja2xpc3QgaXRlbScsXG4gICAgICAgICAgICAgICAgdHlwZV9vcGVyYXRpb25zOiB0eXBlXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZiksIGZpbmFsaXplKCgpID0+IHRoaXMuaXNMb2FkaW5nLnNldChmYWxzZSkpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoY2hlY2tMaXN0SXRlbSkgPT4gdGhpcy5jaGVja0xpc3RCbG9ja1NlcnZpY2UuYWRkQ2hlY2tMaXN0SXRlbShjaGVja0xpc3RJdGVtKSk7XG4gICAgfVxufVxuIiwiPGN1aS1jb250ZW50LXdyYXBwZXJcbiAgICAqdHJhbnNsb2NvPVwibGV0IHRcIlxuICAgIGJhY2tncm91bmRDb2xvcj1cInZhcigtLWN1aS1iYXNlLTEwKVwiXG4gICAgW2dhcF09XCIxNlwiXG4+XG4gICAgPG5nLWNvbnRhaW5lciAqY3VpTGV0PVwiY2hlY2tMaXN0SXRlbXMoKSBhcyBjaGVja0xpc3RJdGVtc1wiPlxuICAgICAgICA8aGVhZGVyIGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICA8aDIgY2xhc3M9XCJoZWFkaW5nXCI+e3sgdCgnQ0hFQ0tMSVNUJykgfX08L2gyPlxuXG4gICAgICAgICAgICBAaWYgKGNoZWNrTGlzdEl0ZW1zKSB7XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpdGVtXCI+e3sgY2hlY2tMaXN0SXRlbXM/Lmxlbmd0aCB9fSB7eyB0KCdJVEVNX1ZBUklBTlQnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9oZWFkZXI+XG4gICAgICAgIDxjdWktY29udGVudC13cmFwcGVyPlxuICAgICAgICAgICAgPGN1aS1jaGVja2xpc3QtYmxvY2stbGlzdCBbY29uZmlnXT1cImNvbmZpZygpXCIgLz5cbiAgICAgICAgPC9jdWktY29udGVudC13cmFwcGVyPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICNhY3Rpb25CdXR0b249XCJlbGVtZW50UmVmXCJcbiAgICAgICAgICAgICAgICBjdWlFbGVtZW50XG4gICAgICAgICAgICAgICAgY3VpQnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgYXBwZWFyYW5jZT1cImZsYXRcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJ4eHNcIlxuICAgICAgICAgICAgICAgIGljb249XCJjdWlJY29uUGx1c1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgdCgnQUREX05FV19JVEVNJykgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGN1aS1jb250ZXh0LW1lbnVcbiAgICAgICAgICAgICAgICBbaXRlbXNdPVwiQ0hFQ0tMSVNUX0JMT0NLX1NFTEVDVF9PUFRJT05TXCJcbiAgICAgICAgICAgICAgICBbdGFyZ2V0XT1cImFjdGlvbkJ1dHRvbi5uYXRpdmVFbGVtZW50XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9jdWktY29udGVudC13cmFwcGVyPlxuIl19