@fundamental-ngx/platform 0.46.2-rc.2 → 0.46.2-rc.21

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.
Files changed (105) hide show
  1. package/esm2022/approval-flow/approval-flow-add-node/approval-flow-add-node.component.mjs +2 -2
  2. package/esm2022/approval-flow/approval-flow-approver-details/approval-flow-approver-details.component.mjs +2 -2
  3. package/esm2022/approval-flow/approval-flow-node/approval-flow-node.component.mjs +2 -2
  4. package/esm2022/approval-flow/approval-flow-team-list/approval-flow-team-list.component.mjs +1 -1
  5. package/esm2022/approval-flow/approval-flow.component.mjs +3 -3
  6. package/esm2022/dynamic-page/dynamic-page.component.mjs +2 -2
  7. package/esm2022/feed-input/feed-input.component.mjs +2 -2
  8. package/esm2022/form/combobox/combobox/combobox.component.mjs +3 -3
  9. package/esm2022/form/combobox/combobox-mobile/combobox/combobox-mobile.component.mjs +3 -3
  10. package/esm2022/form/combobox/combobox.module.mjs +20 -4
  11. package/esm2022/form/combobox/commons/base-combobox.mjs +36 -28
  12. package/esm2022/form/combobox/directives/combobox-item.directive.mjs +148 -0
  13. package/esm2022/form/combobox/index.mjs +4 -3
  14. package/esm2022/form/form-group/form-field/form-field.component.mjs +2 -2
  15. package/esm2022/form/form-group/form-field-group/form-field-group.component.mjs +2 -2
  16. package/esm2022/form/form-group/form-group-header/form-group-header.component.mjs +2 -2
  17. package/esm2022/form/form-group/form-group.component.mjs +3 -3
  18. package/esm2022/form/index.mjs +37 -36
  19. package/esm2022/form/input-group/input-group.component.mjs +2 -2
  20. package/esm2022/form/multi-combobox/commons/base-multi-combobox.mjs +4 -2
  21. package/esm2022/form/multi-combobox/multi-combobox/multi-combobox.component.mjs +7 -5
  22. package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox/multi-combobox-mobile.component.mjs +3 -3
  23. package/esm2022/form/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +3 -3
  24. package/esm2022/form/multi-input/multi-input.component.mjs +6 -4
  25. package/esm2022/form/select/select/select.component.mjs +3 -3
  26. package/esm2022/form/step-input/number/number-step-input.component.mjs +2 -2
  27. package/esm2022/icon-tab-bar/components/icon-tab-bar-filter-type/icon-tab-bar-filter-type.component.mjs +2 -2
  28. package/esm2022/icon-tab-bar/components/icon-tab-bar-icon-type/icon-tab-bar-icon-type.component.mjs +2 -2
  29. package/esm2022/icon-tab-bar/components/icon-tab-bar-process-type/icon-tab-bar-process-type.component.mjs +2 -2
  30. package/esm2022/icon-tab-bar/components/icon-tab-bar-text-type/icon-tab-bar-text-type.component.mjs +1 -1
  31. package/esm2022/icon-tab-bar/components/popovers/icon-tab-bar-popover/icon-tab-bar-popover.component.mjs +2 -2
  32. package/esm2022/icon-tab-bar/components/popovers/text-type-popover/text-type-popover.component.mjs +1 -1
  33. package/esm2022/icon-tab-bar/icon-tab-bar.component.mjs +2 -2
  34. package/esm2022/link/link.component.mjs +3 -3
  35. package/esm2022/list/list.component.mjs +2 -2
  36. package/esm2022/list/object-list-item/object-list-item-row.component.mjs +2 -2
  37. package/esm2022/list/object-list-item/object-list-item.component.mjs +2 -2
  38. package/esm2022/list/standard-list-item/standard-list-item.component.mjs +2 -2
  39. package/esm2022/menu/menu-item.component.mjs +2 -2
  40. package/esm2022/menu/menu.component.mjs +2 -2
  41. package/esm2022/message-popover/components/message-view/message-view.component.mjs +3 -3
  42. package/esm2022/message-popover/message-popover.component.mjs +2 -2
  43. package/esm2022/object-attribute/object-attribute.component.mjs +2 -2
  44. package/esm2022/page-footer/page-footer.component.mjs +2 -2
  45. package/esm2022/search-field/search-field-mobile/search-field/search-field-mobile.component.mjs +3 -3
  46. package/esm2022/search-field/search-field.component.mjs +3 -3
  47. package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-icon/settings-generator-sidebar-icon.component.mjs +2 -2
  48. package/esm2022/shared/domain/data-source.mjs +3 -2
  49. package/esm2022/smart-filter-bar/components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component.mjs +2 -2
  50. package/esm2022/split-menu-button/split-menu-button.component.mjs +2 -2
  51. package/esm2022/table/components/table-header-cell-content/table-header-cell-content.component.mjs +2 -2
  52. package/esm2022/table/table.component.mjs +13 -12
  53. package/esm2022/upload-collection/dialogs/move-to/move-to.component.mjs +2 -2
  54. package/esm2022/upload-collection/upload-collection/upload-collection.component.mjs +2 -2
  55. package/esm2022/value-help-dialog/components/select-tab/select-tab.component.mjs +2 -2
  56. package/esm2022/value-help-dialog/value-help-dialog/value-help-dialog.component.mjs +3 -3
  57. package/esm2022/variant-management/components/manage-variants-dialog/manage-variants-dialog.component.mjs +2 -2
  58. package/esm2022/variant-management/variant-management.component.mjs +2 -2
  59. package/esm2022/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.mjs +3 -3
  60. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs +6 -6
  61. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
  62. package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs +2 -2
  63. package/fesm2022/fundamental-ngx-platform-feed-input.mjs +2 -2
  64. package/fesm2022/fundamental-ngx-platform-form.mjs +484 -311
  65. package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
  66. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs +8 -8
  67. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs.map +1 -1
  68. package/fesm2022/fundamental-ngx-platform-link.mjs +2 -2
  69. package/fesm2022/fundamental-ngx-platform-link.mjs.map +1 -1
  70. package/fesm2022/fundamental-ngx-platform-list.mjs +7 -7
  71. package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
  72. package/fesm2022/fundamental-ngx-platform-menu.mjs +4 -4
  73. package/fesm2022/fundamental-ngx-platform-message-popover.mjs +4 -4
  74. package/fesm2022/fundamental-ngx-platform-message-popover.mjs.map +1 -1
  75. package/fesm2022/fundamental-ngx-platform-object-attribute.mjs +2 -2
  76. package/fesm2022/fundamental-ngx-platform-page-footer.mjs +2 -2
  77. package/fesm2022/fundamental-ngx-platform-search-field.mjs +4 -4
  78. package/fesm2022/fundamental-ngx-platform-search-field.mjs.map +1 -1
  79. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs +1 -1
  80. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
  81. package/fesm2022/fundamental-ngx-platform-shared.mjs +2 -1
  82. package/fesm2022/fundamental-ngx-platform-shared.mjs.map +1 -1
  83. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs +1 -1
  84. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
  85. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs +2 -2
  86. package/fesm2022/fundamental-ngx-platform-table.mjs +12 -11
  87. package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
  88. package/fesm2022/fundamental-ngx-platform-upload-collection.mjs +2 -2
  89. package/fesm2022/fundamental-ngx-platform-upload-collection.mjs.map +1 -1
  90. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +3 -3
  91. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
  92. package/fesm2022/fundamental-ngx-platform-variant-management.mjs +3 -3
  93. package/fesm2022/fundamental-ngx-platform-variant-management.mjs.map +1 -1
  94. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs +2 -2
  95. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs.map +1 -1
  96. package/form/combobox/combobox.module.d.ts +2 -1
  97. package/form/combobox/commons/base-combobox.d.ts +6 -4
  98. package/form/combobox/directives/combobox-item.directive.d.ts +86 -0
  99. package/form/combobox/index.d.ts +3 -2
  100. package/form/index.d.ts +36 -35
  101. package/fundamental-ngx-platform-v0.46.2-rc.21.tgz +0 -0
  102. package/package.json +4 -4
  103. package/schematics/ng-add/index.js +1 -1
  104. package/table/table.component.d.ts +4 -3
  105. package/fundamental-ngx-platform-v0.46.2-rc.2.tgz +0 -0
@@ -47,7 +47,7 @@ export class ManageVariantsDialogComponent {
47
47
  this.dialog.close(this._variants);
48
48
  }
49
49
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ManageVariantsDialogComponent, deps: [{ token: i1.DialogRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
50
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: ManageVariantsDialogComponent, isStandalone: true, selector: "fdp-manage-variants-dialog", ngImport: i0, template: "<fd-dialog>\n <fd-dialog-header>\n <h1 id=\"fd-dialog-header-1\" fd-title>\n {{ 'platformVariantManagement.manageViews' | fdTranslate }}\n </h1>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <fdp-table [dataSource]=\"_source\" [noVerticalBorders]=\"true\" class=\"fd-variant-management__table\">\n <fdp-column name=\"favourite\" key=\"favourite\">\n <fdp-table-cell *fdpCellDef=\"let item; as: _variantModel\">\n <fd-icon\n class=\"fd-variant-management__favourite-state\"\n [class.fd-variant-management__favourite-state--active]=\"item.favourite\"\n [ariaLabel]=\"'platformVariantManagement.markAsFavourite' | fdTranslate\"\n tabindex=\"0\"\n (click)=\"_markAsFavourite(item)\"\n glyph=\"favorite\"\n ></fd-icon>\n </fdp-table-cell>\n </fdp-column>\n <fdp-column [label]=\"'platformVariantManagement.view' | fdTranslate\" name=\"name\" key=\"name\">\n <fdp-table-cell *fdpCellDef=\"let item; as: _variantModel\">\n <fdp-input *ngIf=\"!item.readonly\" [(ngModel)]=\"item.name\"></fdp-input>\n <ng-container *ngIf=\"item.readonly\">{{ item.name }}</ng-container>\n </fdp-table-cell>\n </fdp-column>\n <fdp-column [label]=\"'platformVariantManagement.sharing' | fdTranslate\" name=\"access\" key=\"access\">\n <fdp-table-cell *fdpCellDef=\"let item; as: _variantModel\">\n {{\n (item.access === 'public'\n ? 'platformVariantManagement.access.public'\n : 'platformVariantManagement.access.private'\n ) | fdTranslate\n }}\n </fdp-table-cell>\n </fdp-column>\n <fdp-column\n [label]=\"'platformVariantManagement.default' | fdTranslate\"\n name=\"isDefault\"\n key=\"isDefault\"\n align=\"center\"\n >\n <fdp-table-cell *fdpCellDef=\"let item; as: _variantModel\">\n <fd-radio-button\n [value]=\"true\"\n [id]=\"'radio-' + item.id\"\n name=\"is-variant-default\"\n [(ngModel)]=\"item.isDefault\"\n ></fd-radio-button>\n </fdp-table-cell>\n </fdp-column>\n <fdp-column\n [label]=\"'platformVariantManagement.applyAutomatically' | fdTranslate\"\n name=\"applyAutomatically\"\n key=\"applyAutomatically\"\n align=\"center\"\n >\n <fdp-table-cell *fdpCellDef=\"let item; as: _variantModel\">\n <fdp-checkbox\n class=\"fd-variant-management__centered-checkbox\"\n [standalone]=\"true\"\n name=\"applyAutomatically\"\n [(ngModel)]=\"item.applyAutomatically\"\n ></fdp-checkbox>\n </fdp-table-cell>\n </fdp-column>\n <fdp-column\n [label]=\"'platformVariantManagement.createdBy' | fdTranslate\"\n name=\"createdBy\"\n key=\"createdBy\"\n ></fdp-column>\n <fdp-column name=\"actions\">\n <fdp-table-cell *fdpCellDef=\"let item; as: _variantModel\">\n <fdp-button\n *ngIf=\"!item.readonly\"\n buttonType=\"transparent\"\n glyph=\"decline\"\n [title]=\"'platformVariantManagement.removeVariant' | fdTranslate\"\n (click)=\"_removeVariant(item)\"\n ></fdp-button>\n </fdp-table-cell>\n </fdp-column>\n </fdp-table>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'platformVariantManagement.save' | fdTranslate\"\n (click)=\"_saveVariants()\"\n ariaLabel=\"Interested Emphasized\"\n ></fd-button-bar>\n\n <fd-button-bar\n [label]=\"'platformVariantManagement.cancel' | fdTranslate\"\n (click)=\"dialog.dismiss('Cancel')\"\n [ariaLabel]=\"'platformVariantManagement.cancel' | fdTranslate\"\n ></fd-button-bar>\n </fd-dialog-footer>\n</fd-dialog>\n", dependencies: [{ kind: "component", type: DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: TableComponent, selector: "fdp-table", inputs: ["name", "id", "enableDragResize", "fixed", "freezeColumnsTo", "freezeEndColumnsTo", "pageScrolling", "pageSize", "pageScrollingThreshold", "bodyHeight", "emptyTableMessage", "noVisibleColumnsMessage", "noHorizontalBorders", "noVerticalBorders", "noBorders", "noBodyBorders", "noOuterBorders", "noBorderX", "noBorderY", "relationKey", "expandedStateKey", "hasChildrenKey", "rowNavigatable", "highlightNavigatedRow", "rowsActivable", "selectedKey", "selectableKey", "trackBy", "rowComparator", "rowsClass", "editableRowSkeleton", "expandOnInit", "rowHeight", "loadPagesBefore", "selectionMode", "enableTristateMode", "semanticHighlighting", "forceCheckedAllState", "ariaLabelledBy", "loading"], outputs: ["presetChanged", "rowSelectionChange", "sortChange", "filterChange", "groupChange", "columnsChange", "pageChange", "columnFreeze", "rowToggleOpenState", "rowActivate", "rowNavigate", "emptyRowAdded", "save", "cancel", "tableScrolled", "tableRowsSet", "allRowsExpanded", "allRowsCollapsed"] }, { kind: "directive", type: TableInitialStateDirective, selector: "[fdpTableInitialState], fdp-table", inputs: ["initialVisibleColumns", "initialSortBy", "initialFilterBy", "initialGroupBy", "initialPage", "state"] }, { kind: "component", type: TableColumnComponent, selector: "fdp-column", inputs: ["name", "key", "label", "align", "sortable", "filterable", "visible", "dataType", "groupable", "freezable", "endFreezable", "width", "noWrap", "applyText", "role"] }, { kind: "directive", type: FdpCellDef, selector: "[fdpCellDef]", inputs: ["fdpCellDefAs"] }, { kind: "directive", type: FdpTableCell, selector: "fdp-table-cell" }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel", "ariaHidden"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: InputComponent, selector: "fdp-input", inputs: ["type", "required", "value"], outputs: ["focusChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: RadioButtonComponent, selector: "fd-radio-button", inputs: ["ariaLabel", "ariaLabelledBy", "ariaDescribedBy", "title", "tabIndex", "state", "disabled", "selectedValue", "name", "id", "value", "required", "standalone"] }, { kind: "component", type: CheckboxComponent, selector: "fdp-checkbox", inputs: ["title", "label", "tristate", "checked", "tristateSelectable", "values", "standalone", "displayOnly"], outputs: ["checkedChange"] }, { kind: "component", type: ButtonComponent, selector: "fdp-button", inputs: ["glyphPosition", "label", "glyph", "buttonType", "toggled", "title", "ariaSelected", "ariaDisabled", "ariaExpanded", "ariaControlsId", "ariaPressed", "name", "type", "value"], outputs: ["buttonClicked"] }, { kind: "component", type: DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
50
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: ManageVariantsDialogComponent, isStandalone: true, selector: "fdp-manage-variants-dialog", ngImport: i0, template: "<fd-dialog>\n <fd-dialog-header>\n <h1 id=\"fd-dialog-header-1\" fd-title>\n {{ 'platformVariantManagement.manageViews' | fdTranslate }}\n </h1>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <fdp-table [dataSource]=\"_source\" [noVerticalBorders]=\"true\" class=\"fd-variant-management__table\">\n <fdp-column name=\"favourite\" key=\"favourite\">\n <fdp-table-cell *fdpCellDef=\"let item; as: _variantModel\">\n <fd-icon\n class=\"fd-variant-management__favourite-state\"\n [class.fd-variant-management__favourite-state--active]=\"item.favourite\"\n [ariaLabel]=\"'platformVariantManagement.markAsFavourite' | fdTranslate\"\n tabindex=\"0\"\n (click)=\"_markAsFavourite(item)\"\n glyph=\"favorite\"\n ></fd-icon>\n </fdp-table-cell>\n </fdp-column>\n <fdp-column [label]=\"'platformVariantManagement.view' | fdTranslate\" name=\"name\" key=\"name\">\n <fdp-table-cell *fdpCellDef=\"let item; as: _variantModel\">\n <fdp-input *ngIf=\"!item.readonly\" [(ngModel)]=\"item.name\"></fdp-input>\n <ng-container *ngIf=\"item.readonly\">{{ item.name }}</ng-container>\n </fdp-table-cell>\n </fdp-column>\n <fdp-column [label]=\"'platformVariantManagement.sharing' | fdTranslate\" name=\"access\" key=\"access\">\n <fdp-table-cell *fdpCellDef=\"let item; as: _variantModel\">\n {{\n (item.access === 'public'\n ? 'platformVariantManagement.access.public'\n : 'platformVariantManagement.access.private'\n ) | fdTranslate\n }}\n </fdp-table-cell>\n </fdp-column>\n <fdp-column\n [label]=\"'platformVariantManagement.default' | fdTranslate\"\n name=\"isDefault\"\n key=\"isDefault\"\n align=\"center\"\n >\n <fdp-table-cell *fdpCellDef=\"let item; as: _variantModel\">\n <fd-radio-button\n [value]=\"true\"\n [id]=\"'radio-' + item.id\"\n name=\"is-variant-default\"\n [(ngModel)]=\"item.isDefault\"\n ></fd-radio-button>\n </fdp-table-cell>\n </fdp-column>\n <fdp-column\n [label]=\"'platformVariantManagement.applyAutomatically' | fdTranslate\"\n name=\"applyAutomatically\"\n key=\"applyAutomatically\"\n align=\"center\"\n >\n <fdp-table-cell *fdpCellDef=\"let item; as: _variantModel\">\n <fdp-checkbox\n class=\"fd-variant-management__centered-checkbox\"\n [standalone]=\"true\"\n name=\"applyAutomatically\"\n [(ngModel)]=\"item.applyAutomatically\"\n ></fdp-checkbox>\n </fdp-table-cell>\n </fdp-column>\n <fdp-column\n [label]=\"'platformVariantManagement.createdBy' | fdTranslate\"\n name=\"createdBy\"\n key=\"createdBy\"\n ></fdp-column>\n <fdp-column name=\"actions\">\n <fdp-table-cell *fdpCellDef=\"let item; as: _variantModel\">\n <fdp-button\n *ngIf=\"!item.readonly\"\n buttonType=\"transparent\"\n glyph=\"decline\"\n [title]=\"'platformVariantManagement.removeVariant' | fdTranslate\"\n (click)=\"_removeVariant(item)\"\n ></fdp-button>\n </fdp-table-cell>\n </fdp-column>\n </fdp-table>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'platformVariantManagement.save' | fdTranslate\"\n (click)=\"_saveVariants()\"\n ariaLabel=\"Interested Emphasized\"\n ></fd-button-bar>\n\n <fd-button-bar\n [label]=\"'platformVariantManagement.cancel' | fdTranslate\"\n (click)=\"dialog.dismiss('Cancel')\"\n [ariaLabel]=\"'platformVariantManagement.cancel' | fdTranslate\"\n ></fd-button-bar>\n </fd-dialog-footer>\n</fd-dialog>\n", dependencies: [{ kind: "component", type: DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: TableComponent, selector: "fdp-table", inputs: ["name", "id", "enableDragResize", "fixed", "freezeColumnsTo", "freezeEndColumnsTo", "pageScrolling", "pageSize", "pageScrollingThreshold", "bodyHeight", "emptyTableMessage", "noVisibleColumnsMessage", "noHorizontalBorders", "noVerticalBorders", "noBorders", "noBodyBorders", "noOuterBorders", "noBorderX", "noBorderY", "relationKey", "expandedStateKey", "hasChildrenKey", "rowNavigatable", "highlightNavigatedRow", "rowsActivable", "selectedKey", "selectableKey", "trackBy", "rowComparator", "rowsClass", "editableRowSkeleton", "expandOnInit", "rowHeight", "loadPagesBefore", "selectionMode", "enableTristateMode", "semanticHighlighting", "forceCheckedAllState", "ariaLabelledBy", "loading"], outputs: ["presetChanged", "rowSelectionChange", "sortChange", "filterChange", "groupChange", "columnsChange", "pageChange", "columnFreeze", "rowToggleOpenState", "rowActivate", "rowNavigate", "emptyRowAdded", "save", "cancel", "tableScrolled", "tableRowsSet", "allRowsExpanded", "allRowsCollapsed"] }, { kind: "directive", type: TableInitialStateDirective, selector: "[fdpTableInitialState], fdp-table", inputs: ["initialVisibleColumns", "initialSortBy", "initialFilterBy", "initialGroupBy", "initialPage", "state"] }, { kind: "component", type: TableColumnComponent, selector: "fdp-column", inputs: ["name", "key", "label", "align", "sortable", "filterable", "visible", "dataType", "groupable", "freezable", "endFreezable", "width", "noWrap", "applyText", "role"] }, { kind: "directive", type: FdpCellDef, selector: "[fdpCellDef]", inputs: ["fdpCellDefAs"] }, { kind: "directive", type: FdpTableCell, selector: "fdp-table-cell" }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: InputComponent, selector: "fdp-input", inputs: ["type", "required", "value"], outputs: ["focusChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: RadioButtonComponent, selector: "fd-radio-button", inputs: ["ariaLabel", "ariaLabelledBy", "ariaDescribedBy", "title", "tabIndex", "state", "disabled", "selectedValue", "name", "id", "value", "required", "standalone"] }, { kind: "component", type: CheckboxComponent, selector: "fdp-checkbox", inputs: ["title", "label", "tristate", "checked", "tristateSelectable", "values", "standalone", "displayOnly"], outputs: ["checkedChange"] }, { kind: "component", type: ButtonComponent, selector: "fdp-button", inputs: ["glyphPosition", "label", "glyph", "buttonType", "toggled", "title", "ariaSelected", "ariaDisabled", "ariaExpanded", "ariaControlsId", "ariaPressed", "name", "type", "value"], outputs: ["buttonClicked"] }, { kind: "component", type: DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
51
51
  }
52
52
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ManageVariantsDialogComponent, decorators: [{
53
53
  type: Component,
@@ -77,4 +77,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
77
77
  FdTranslatePipe
78
78
  ], template: "<fd-dialog>\n <fd-dialog-header>\n <h1 id=\"fd-dialog-header-1\" fd-title>\n {{ 'platformVariantManagement.manageViews' | fdTranslate }}\n </h1>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <fdp-table [dataSource]=\"_source\" [noVerticalBorders]=\"true\" class=\"fd-variant-management__table\">\n <fdp-column name=\"favourite\" key=\"favourite\">\n <fdp-table-cell *fdpCellDef=\"let item; as: _variantModel\">\n <fd-icon\n class=\"fd-variant-management__favourite-state\"\n [class.fd-variant-management__favourite-state--active]=\"item.favourite\"\n [ariaLabel]=\"'platformVariantManagement.markAsFavourite' | fdTranslate\"\n tabindex=\"0\"\n (click)=\"_markAsFavourite(item)\"\n glyph=\"favorite\"\n ></fd-icon>\n </fdp-table-cell>\n </fdp-column>\n <fdp-column [label]=\"'platformVariantManagement.view' | fdTranslate\" name=\"name\" key=\"name\">\n <fdp-table-cell *fdpCellDef=\"let item; as: _variantModel\">\n <fdp-input *ngIf=\"!item.readonly\" [(ngModel)]=\"item.name\"></fdp-input>\n <ng-container *ngIf=\"item.readonly\">{{ item.name }}</ng-container>\n </fdp-table-cell>\n </fdp-column>\n <fdp-column [label]=\"'platformVariantManagement.sharing' | fdTranslate\" name=\"access\" key=\"access\">\n <fdp-table-cell *fdpCellDef=\"let item; as: _variantModel\">\n {{\n (item.access === 'public'\n ? 'platformVariantManagement.access.public'\n : 'platformVariantManagement.access.private'\n ) | fdTranslate\n }}\n </fdp-table-cell>\n </fdp-column>\n <fdp-column\n [label]=\"'platformVariantManagement.default' | fdTranslate\"\n name=\"isDefault\"\n key=\"isDefault\"\n align=\"center\"\n >\n <fdp-table-cell *fdpCellDef=\"let item; as: _variantModel\">\n <fd-radio-button\n [value]=\"true\"\n [id]=\"'radio-' + item.id\"\n name=\"is-variant-default\"\n [(ngModel)]=\"item.isDefault\"\n ></fd-radio-button>\n </fdp-table-cell>\n </fdp-column>\n <fdp-column\n [label]=\"'platformVariantManagement.applyAutomatically' | fdTranslate\"\n name=\"applyAutomatically\"\n key=\"applyAutomatically\"\n align=\"center\"\n >\n <fdp-table-cell *fdpCellDef=\"let item; as: _variantModel\">\n <fdp-checkbox\n class=\"fd-variant-management__centered-checkbox\"\n [standalone]=\"true\"\n name=\"applyAutomatically\"\n [(ngModel)]=\"item.applyAutomatically\"\n ></fdp-checkbox>\n </fdp-table-cell>\n </fdp-column>\n <fdp-column\n [label]=\"'platformVariantManagement.createdBy' | fdTranslate\"\n name=\"createdBy\"\n key=\"createdBy\"\n ></fdp-column>\n <fdp-column name=\"actions\">\n <fdp-table-cell *fdpCellDef=\"let item; as: _variantModel\">\n <fdp-button\n *ngIf=\"!item.readonly\"\n buttonType=\"transparent\"\n glyph=\"decline\"\n [title]=\"'platformVariantManagement.removeVariant' | fdTranslate\"\n (click)=\"_removeVariant(item)\"\n ></fdp-button>\n </fdp-table-cell>\n </fdp-column>\n </fdp-table>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'platformVariantManagement.save' | fdTranslate\"\n (click)=\"_saveVariants()\"\n ariaLabel=\"Interested Emphasized\"\n ></fd-button-bar>\n\n <fd-button-bar\n [label]=\"'platformVariantManagement.cancel' | fdTranslate\"\n (click)=\"dialog.dismiss('Cancel')\"\n [ariaLabel]=\"'platformVariantManagement.cancel' | fdTranslate\"\n ></fd-button-bar>\n </fd-dialog-footer>\n</fd-dialog>\n" }]
79
79
  }], ctorParameters: function () { return [{ type: i1.DialogRef }, { type: i0.ChangeDetectorRef }]; } });
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlLXZhcmlhbnRzLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvdmFyaWFudC1tYW5hZ2VtZW50L2NvbXBvbmVudHMvbWFuYWdlLXZhcmlhbnRzLWRpYWxvZy9tYW5hZ2UtdmFyaWFudHMtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi92YXJpYW50LW1hbmFnZW1lbnQvY29tcG9uZW50cy9tYW5hZ2UtdmFyaWFudHMtZGlhbG9nL21hbmFnZS12YXJpYW50cy1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQ0gsbUJBQW1CLEVBQ25CLGVBQWUsRUFDZixxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLFNBQVMsRUFDWixNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFD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QkFBb0I7d0JBQ3BCLFVBQVU7d0JBQ1YsWUFBWTt3QkFDWixhQUFhO3dCQUNiLElBQUk7d0JBQ0osY0FBYzt3QkFDZCxXQUFXO3dCQUNYLG9CQUFvQjt3QkFDcEIsaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLHFCQUFxQjt3QkFDckIsa0JBQWtCO3dCQUNsQixlQUFlO3FCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka1Njcm9sbGFibGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCdXR0b25CYXJDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvYmFyJztcbmltcG9ydCB7XG4gICAgRGlhbG9nQm9keUNvbXBvbmVudCxcbiAgICBEaWFsb2dDb21wb25lbnQsXG4gICAgRGlhbG9nRm9vdGVyQ29tcG9uZW50LFxuICAgIERpYWxvZ0hlYWRlckNvbXBvbmVudCxcbiAgICBEaWFsb2dSZWZcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2RpYWxvZyc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2ljb24nO1xuaW1wb3J0IHsgUmFkaW9CdXR0b25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvcmFkaW8nO1xuaW1wb3J0IHsgU2Nyb2xsYmFyRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3Njcm9sbGJhcic7XG5pbXBvcnQgeyBUaXRsZUNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS90aXRsZSc7XG5pbXBvcnQgeyBGZFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2kxOG4nO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9idXR0b24nO1xuaW1wb3J0IHsgQ2hlY2tib3hDb21wb25lbnQsIElucHV0Q29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9mb3JtJztcbmltcG9ydCB7IFRhYmxlQ29sdW1uQ29tcG9uZW50LCBUYWJsZUNvbXBvbmVudCwgVGFibGVEYXRhU291cmNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS90YWJsZSc7XG5pbXBvcnQge1xuICAgIEZkcENlbGxEZWYsXG4gICAgRmRwVGFibGVDZWxsLFxuICAgIFRhYmxlRGF0YVNvdXJjZURpcmVjdGl2ZSxcbiAgICBUYWJsZUhlYWRlclJlc2l6ZXJEaXJlY3RpdmUsXG4gICAgVGFibGVJbml0aWFsU3RhdGVEaXJlY3RpdmVcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS90YWJsZS1oZWxwZXJzJztcbmltcG9ydCB7IFZhcmlhbnRJdGVtIH0gZnJvbSAnLi4vLi4vdmFyaWFudC1pdGVtLmNsYXNzJztcbmltcG9ydCB7IFZhcmlhbnRNYW5hZ2VtZW50RGF0YVByb3ZpZGVyIH0gZnJvbSAnLi9kYXRhLXByb3ZpZGVyJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtbWFuYWdlLXZhcmlhbnRzLWRpYWxvZycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL21hbmFnZS12YXJpYW50cy1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIERpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgRGlhbG9nSGVhZGVyQ29tcG9uZW50LFxuICAgICAgICBUaXRsZUNvbXBvbmVudCxcbiAgICAgICAgQ2RrU2Nyb2xsYWJsZSxcbiAgICAgICAgU2Nyb2xsYmFyRGlyZWN0aXZlLFxuICAgICAgICBEaWFsb2dCb2R5Q29tcG9uZW50LFxuICAgICAgICBUYWJsZURhdGFTb3VyY2VEaXJlY3RpdmUsXG4gICAgICAgIFRhYmxlSGVhZGVyUmVzaXplckRpcmVjdGl2ZSxcbiAgICAgICAgVGFibGVDb21wb25lbnQsXG4gICAgICAgIFRhYmxlSW5pdGlhbFN0YXRlRGlyZWN0aXZlLFxuICAgICAgICBUYWJsZUNvbHVtbkNvbXBvbmVudCxcbiAgICAgICAgRmRwQ2VsbERlZixcbiAgICAgICAgRmRwVGFibGVDZWxsLFxuICAgICAgICBJY29uQ29tcG9uZW50LFxuICAgICAgICBOZ0lmLFxuICAgICAgICBJbnB1dENvbXBvbmVudCxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFJhZGlvQnV0dG9uQ29tcG9uZW50LFxuICAgICAgICBDaGVja2JveENvbXBvbmVudCxcbiAgICAgICAgQnV0dG9uQ29tcG9uZW50LFxuICAgICAgICBEaWFsb2dGb290ZXJDb21wb25lbnQsXG4gICAgICAgIEJ1dHRvbkJhckNvbXBvbmVudCxcbiAgICAgICAgRmRUcmFuc2xhdGVQaXBlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBNYW5hZ2VWYXJpYW50c0RpYWxvZ0NvbXBvbmVudCB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc291cmNlOiBUYWJsZURhdGFTb3VyY2U8VmFyaWFudEl0ZW0+O1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFVzZWQgdG8gYXBwbHkgdHlwaW5ncyBpbiB0ZW1wbGF0ZS5cbiAgICAgKi9cbiAgICBfdmFyaWFudE1vZGVsITogVmFyaWFudEl0ZW07XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3ZhcmlhbnRzOiBWYXJpYW50SXRlbVtdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2RhdGFQcm92aWRlcjogVmFyaWFudE1hbmFnZW1lbnREYXRhUHJvdmlkZXI7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2c6IERpYWxvZ1JlZjxWYXJpYW50SXRlbVtdPiwgcHJpdmF0ZSByZWFkb25seSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgICAgICAvLyBXZSBjbG9uZSBhbGwgdmFyaWFudHMsIHNvIHdlIGRvbid0IGNoYW5nZSBvcmlnaW5hbCBpbnN0YW5jZXMgaW1tZWRpYXRlbHkuXG4gICAgICAgIHRoaXMuX3ZhcmlhbnRzID0gdGhpcy5kaWFsb2cuZGF0YS5tYXAoKG9sZFZhcmlhbnQpID0+IG9sZFZhcmlhbnQuY2xvbmUoe30sIGZhbHNlKSk7XG4gICAgICAgIHRoaXMuX2RhdGFQcm92aWRlciA9IG5ldyBWYXJpYW50TWFuYWdlbWVudERhdGFQcm92aWRlcih0aGlzLl92YXJpYW50cyk7XG4gICAgICAgIHRoaXMuX3NvdXJjZSA9IG5ldyBUYWJsZURhdGFTb3VyY2UodGhpcy5fZGF0YVByb3ZpZGVyKTtcbiAgICB9XG5cbiAgICAvKiogQEhpZGRlbiAqL1xuICAgIF9tYXJrQXNGYXZvdXJpdGUoaXRlbTogVmFyaWFudEl0ZW0pOiB2b2lkIHtcbiAgICAgICAgaXRlbS5mYXZvdXJpdGUgPSAhaXRlbS5mYXZvdXJpdGU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfcmVtb3ZlVmFyaWFudChpdGVtOiBWYXJpYW50SXRlbSk6IHZvaWQge1xuICAgICAgICB0aGlzLl92YXJpYW50cy5zcGxpY2UoXG4gICAgICAgICAgICB0aGlzLl92YXJpYW50cy5maW5kSW5kZXgoKHZhcmlhbnQpID0+IGl0ZW0uaWQgPT09IHZhcmlhbnQuaWQpLFxuICAgICAgICAgICAgMVxuICAgICAgICApO1xuICAgICAgICB0aGlzLl9kYXRhUHJvdmlkZXIudXBkYXRlKHRoaXMuX3ZhcmlhbnRzKTtcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQ2xvc2VzIGRpYWxvZyB3aXRoIHVwZGF0ZWQgdmFyaWFudHMgYXJyYXkuXG4gICAgICovXG4gICAgX3NhdmVWYXJpYW50cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaWFsb2cuY2xvc2UodGhpcy5fdmFyaWFudHMpO1xuICAgIH1cbn1cbiIsIjxmZC1kaWFsb2c+XG4gICAgPGZkLWRpYWxvZy1oZWFkZXI+XG4gICAgICAgIDxoMSBpZD1cImZkLWRpYWxvZy1oZWFkZXItMVwiIGZkLXRpdGxlPlxuICAgICAgICAgICAge3sgJ3BsYXRmb3JtVmFyaWFudE1hbmFnZW1lbnQubWFuYWdlVmlld3MnIHwgZmRUcmFuc2xhdGUgfX1cbiAgICAgICAgPC9oMT5cbiAgICA8L2ZkLWRpYWxvZy1oZWFkZXI+XG5cbiAgICA8ZmQtZGlhbG9nLWJvZHk+XG4gICAgICAgIDxmZHAtdGFibGUgW2RhdGFTb3VyY2VdPVwiX3NvdXJjZVwiIFtub1ZlcnRpY2FsQm9yZGVyc109XCJ0cnVlXCIgY2xhc3M9XCJmZC12YXJpYW50LW1hbmFnZW1lbnRfX3RhYmxlXCI+XG4gICAgICAgICAgICA8ZmRwLWNvbHVtbiBuYW1lPVwiZmF2b3VyaXRlXCIga2V5PVwiZmF2b3VyaXRlXCI+XG4gICAgICAgICAgICAgICAgPGZkcC10YWJsZS1jZWxsICpmZHBDZWxsRGVmPVwibGV0IGl0ZW07IGFzOiBfdmFyaWFudE1vZGVsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxmZC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkLXZhcmlhbnQtbWFuYWdlbWVudF9fZmF2b3VyaXRlLXN0YXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5mZC12YXJpYW50LW1hbmFnZW1lbnRfX2Zhdm91cml0ZS1zdGF0ZS0tYWN0aXZlXT1cIml0ZW0uZmF2b3VyaXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiJ3BsYXRmb3JtVmFyaWFudE1hbmFnZW1lbnQubWFya0FzRmF2b3VyaXRlJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiX21hcmtBc0Zhdm91cml0ZShpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBnbHlwaD1cImZhdm9yaXRlXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvZmQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2ZkcC10YWJsZS1jZWxsPlxuICAgICAgICAgICAgPC9mZHAtY29sdW1uPlxuICAgICAgICAgICAgPGZkcC1jb2x1bW4gW2xhYmVsXT1cIidwbGF0Zm9ybVZhcmlhbnRNYW5hZ2VtZW50LnZpZXcnIHwgZmRUcmFuc2xhdGVcIiBuYW1lPVwibmFtZVwiIGtleT1cIm5hbWVcIj5cbiAgICAgICAgICAgICAgICA8ZmRwLXRhYmxlLWNlbGwgKmZkcENlbGxEZWY9XCJsZXQgaXRlbTsgYXM6IF92YXJpYW50TW9kZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgPGZkcC1pbnB1dCAqbmdJZj1cIiFpdGVtLnJlYWRvbmx5XCIgWyhuZ01vZGVsKV09XCJpdGVtLm5hbWVcIj48L2ZkcC1pbnB1dD5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0ucmVhZG9ubHlcIj57eyBpdGVtLm5hbWUgfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2ZkcC10YWJsZS1jZWxsPlxuICAgICAgICAgICAgPC9mZHAtY29sdW1uPlxuICAgICAgICAgICAgPGZkcC1jb2x1bW4gW2xhYmVsXT1cIidwbGF0Zm9ybVZhcmlhbnRNYW5hZ2VtZW50LnNoYXJpbmcnIHwgZmRUcmFuc2xhdGVcIiBuYW1lPVwiYWNjZXNzXCIga2V5PVwiYWNjZXNzXCI+XG4gICAgICAgICAgICAgICAgPGZkcC10YWJsZS1jZWxsICpmZHBDZWxsRGVmPVwibGV0IGl0ZW07IGFzOiBfdmFyaWFudE1vZGVsXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAoaXRlbS5hY2Nlc3MgPT09ICdwdWJsaWMnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAncGxhdGZvcm1WYXJpYW50TWFuYWdlbWVudC5hY2Nlc3MucHVibGljJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ3BsYXRmb3JtVmFyaWFudE1hbmFnZW1lbnQuYWNjZXNzLnByaXZhdGUnXG4gICAgICAgICAgICAgICAgICAgICAgICApIHwgZmRUcmFuc2xhdGVcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA8L2ZkcC10YWJsZS1jZWxsPlxuICAgICAgICAgICAgPC9mZHAtY29sdW1uPlxuICAgICAgICAgICAgPGZkcC1jb2x1bW5cbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ3BsYXRmb3JtVmFyaWFudE1hbmFnZW1lbnQuZGVmYXVsdCcgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgbmFtZT1cImlzRGVmYXVsdFwiXG4gICAgICAgICAgICAgICAga2V5PVwiaXNEZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBhbGlnbj1cImNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGZkcC10YWJsZS1jZWxsICpmZHBDZWxsRGVmPVwibGV0IGl0ZW07IGFzOiBfdmFyaWFudE1vZGVsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxmZC1yYWRpby1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCIncmFkaW8tJyArIGl0ZW0uaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImlzLXZhcmlhbnQtZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIml0ZW0uaXNEZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvZmQtcmFkaW8tYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZmRwLXRhYmxlLWNlbGw+XG4gICAgICAgICAgICA8L2ZkcC1jb2x1bW4+XG4gICAgICAgICAgICA8ZmRwLWNvbHVtblxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCIncGxhdGZvcm1WYXJpYW50TWFuYWdlbWVudC5hcHBseUF1dG9tYXRpY2FsbHknIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIG5hbWU9XCJhcHBseUF1dG9tYXRpY2FsbHlcIlxuICAgICAgICAgICAgICAgIGtleT1cImFwcGx5QXV0b21hdGljYWxseVwiXG4gICAgICAgICAgICAgICAgYWxpZ249XCJjZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxmZHAtdGFibGUtY2VsbCAqZmRwQ2VsbERlZj1cImxldCBpdGVtOyBhczogX3ZhcmlhbnRNb2RlbFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZmRwLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkLXZhcmlhbnQtbWFuYWdlbWVudF9fY2VudGVyZWQtY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0YW5kYWxvbmVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiYXBwbHlBdXRvbWF0aWNhbGx5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaXRlbS5hcHBseUF1dG9tYXRpY2FsbHlcIlxuICAgICAgICAgICAgICAgICAgICA+PC9mZHAtY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgPC9mZHAtdGFibGUtY2VsbD5cbiAgICAgICAgICAgIDwvZmRwLWNvbHVtbj5cbiAgICAgICAgICAgIDxmZHAtY29sdW1uXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidwbGF0Zm9ybVZhcmlhbnRNYW5hZ2VtZW50LmNyZWF0ZWRCeScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgbmFtZT1cImNyZWF0ZWRCeVwiXG4gICAgICAgICAgICAgICAga2V5PVwiY3JlYXRlZEJ5XCJcbiAgICAgICAgICAgID48L2ZkcC1jb2x1bW4+XG4gICAgICAgICAgICA8ZmRwLWNvbHVtbiBuYW1lPVwiYWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgIDxmZHAtdGFibGUtY2VsbCAqZmRwQ2VsbERlZj1cImxldCBpdGVtOyBhczogX3ZhcmlhbnRNb2RlbFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZmRwLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhaXRlbS5yZWFkb25seVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBidXR0b25UeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZ2x5cGg9XCJkZWNsaW5lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCIncGxhdGZvcm1WYXJpYW50TWFuYWdlbWVudC5yZW1vdmVWYXJpYW50JyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJfcmVtb3ZlVmFyaWFudChpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgID48L2ZkcC1idXR0b24+XG4gICAgICAgICAgICAgICAgPC9mZHAtdGFibGUtY2VsbD5cbiAgICAgICAgICAgIDwvZmRwLWNvbHVtbj5cbiAgICAgICAgPC9mZHAtdGFibGU+XG4gICAgPC9mZC1kaWFsb2ctYm9keT5cblxuICAgIDxmZC1kaWFsb2ctZm9vdGVyPlxuICAgICAgICA8ZmQtYnV0dG9uLWJhclxuICAgICAgICAgICAgZmRUeXBlPVwiZW1waGFzaXplZFwiXG4gICAgICAgICAgICBbbGFiZWxdPVwiJ3BsYXRmb3JtVmFyaWFudE1hbmFnZW1lbnQuc2F2ZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiX3NhdmVWYXJpYW50cygpXCJcbiAgICAgICAgICAgIGFyaWFMYWJlbD1cIkludGVyZXN0ZWQgRW1waGFzaXplZFwiXG4gICAgICAgID48L2ZkLWJ1dHRvbi1iYXI+XG5cbiAgICAgICAgPGZkLWJ1dHRvbi1iYXJcbiAgICAgICAgICAgIFtsYWJlbF09XCIncGxhdGZvcm1WYXJpYW50TWFuYWdlbWVudC5jYW5jZWwnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImRpYWxvZy5kaXNtaXNzKCdDYW5jZWwnKVwiXG4gICAgICAgICAgICBbYXJpYUxhYmVsXT1cIidwbGF0Zm9ybVZhcmlhbnRNYW5hZ2VtZW50LmNhbmNlbCcgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgID48L2ZkLWJ1dHRvbi1iYXI+XG4gICAgPC9mZC1kaWFsb2ctZm9vdGVyPlxuPC9mZC1kaWFsb2c+XG4iXX0=
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlLXZhcmlhbnRzLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvdmFyaWFudC1tYW5hZ2VtZW50L2NvbXBvbmVudHMvbWFuYWdlLXZhcmlhbnRzLWRpYWxvZy9tYW5hZ2UtdmFyaWFudHMtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi92YXJpYW50LW1hbmFnZW1lbnQvY29tcG9uZW50cy9tYW5hZ2UtdmFyaWFudHMtZGlhbG9nL21hbmFnZS12YXJpYW50cy1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQ0gsbUJBQW1CLEVBQ25CLGVBQWUsRUFDZixxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLFNBQVMsRUFDWixNQUFNLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFD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QkFBb0I7d0JBQ3BCLFVBQVU7d0JBQ1YsWUFBWTt3QkFDWixhQUFhO3dCQUNiLElBQUk7d0JBQ0osY0FBYzt3QkFDZCxXQUFXO3dCQUNYLG9CQUFvQjt3QkFDcEIsaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLHFCQUFxQjt3QkFDckIsa0JBQWtCO3dCQUNsQixlQUFlO3FCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka1Njcm9sbGFibGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCdXR0b25CYXJDb21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvYmFyJztcbmltcG9ydCB7XG4gICAgRGlhbG9nQm9keUNvbXBvbmVudCxcbiAgICBEaWFsb2dDb21wb25lbnQsXG4gICAgRGlhbG9nRm9vdGVyQ29tcG9uZW50LFxuICAgIERpYWxvZ0hlYWRlckNvbXBvbmVudCxcbiAgICBEaWFsb2dSZWZcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2RpYWxvZyc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2ljb24nO1xuaW1wb3J0IHsgUmFkaW9CdXR0b25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvcmFkaW8nO1xuaW1wb3J0IHsgU2Nyb2xsYmFyRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3Njcm9sbGJhcic7XG5pbXBvcnQgeyBUaXRsZUNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS90aXRsZSc7XG5pbXBvcnQgeyBGZFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2kxOG4nO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9idXR0b24nO1xuaW1wb3J0IHsgQ2hlY2tib3hDb21wb25lbnQsIElucHV0Q29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9mb3JtJztcbmltcG9ydCB7IFRhYmxlQ29sdW1uQ29tcG9uZW50LCBUYWJsZUNvbXBvbmVudCwgVGFibGVEYXRhU291cmNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS90YWJsZSc7XG5pbXBvcnQge1xuICAgIEZkcENlbGxEZWYsXG4gICAgRmRwVGFibGVDZWxsLFxuICAgIFRhYmxlRGF0YVNvdXJjZURpcmVjdGl2ZSxcbiAgICBUYWJsZUhlYWRlclJlc2l6ZXJEaXJlY3RpdmUsXG4gICAgVGFibGVJbml0aWFsU3RhdGVEaXJlY3RpdmVcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS90YWJsZS1oZWxwZXJzJztcbmltcG9ydCB7IFZhcmlhbnRJdGVtIH0gZnJvbSAnLi4vLi4vdmFyaWFudC1pdGVtLmNsYXNzJztcbmltcG9ydCB7IFZhcmlhbnRNYW5hZ2VtZW50RGF0YVByb3ZpZGVyIH0gZnJvbSAnLi9kYXRhLXByb3ZpZGVyJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtbWFuYWdlLXZhcmlhbnRzLWRpYWxvZycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL21hbmFnZS12YXJpYW50cy1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIERpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgRGlhbG9nSGVhZGVyQ29tcG9uZW50LFxuICAgICAgICBUaXRsZUNvbXBvbmVudCxcbiAgICAgICAgQ2RrU2Nyb2xsYWJsZSxcbiAgICAgICAgU2Nyb2xsYmFyRGlyZWN0aXZlLFxuICAgICAgICBEaWFsb2dCb2R5Q29tcG9uZW50LFxuICAgICAgICBUYWJsZURhdGFTb3VyY2VEaXJlY3RpdmUsXG4gICAgICAgIFRhYmxlSGVhZGVyUmVzaXplckRpcmVjdGl2ZSxcbiAgICAgICAgVGFibGVDb21wb25lbnQsXG4gICAgICAgIFRhYmxlSW5pdGlhbFN0YXRlRGlyZWN0aXZlLFxuICAgICAgICBUYWJsZUNvbHVtbkNvbXBvbmVudCxcbiAgICAgICAgRmRwQ2VsbERlZixcbiAgICAgICAgRmRwVGFibGVDZWxsLFxuICAgICAgICBJY29uQ29tcG9uZW50LFxuICAgICAgICBOZ0lmLFxuICAgICAgICBJbnB1dENvbXBvbmVudCxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFJhZGlvQnV0dG9uQ29tcG9uZW50LFxuICAgICAgICBDaGVja2JveENvbXBvbmVudCxcbiAgICAgICAgQnV0dG9uQ29tcG9uZW50LFxuICAgICAgICBEaWFsb2dGb290ZXJDb21wb25lbnQsXG4gICAgICAgIEJ1dHRvbkJhckNvbXBvbmVudCxcbiAgICAgICAgRmRUcmFuc2xhdGVQaXBlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBNYW5hZ2VWYXJpYW50c0RpYWxvZ0NvbXBvbmVudCB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc291cmNlOiBUYWJsZURhdGFTb3VyY2U8VmFyaWFudEl0ZW0+O1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFVzZWQgdG8gYXBwbHkgdHlwaW5ncyBpbiB0ZW1wbGF0ZS5cbiAgICAgKi9cbiAgICBfdmFyaWFudE1vZGVsITogVmFyaWFudEl0ZW07XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3ZhcmlhbnRzOiBWYXJpYW50SXRlbVtdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2RhdGFQcm92aWRlcjogVmFyaWFudE1hbmFnZW1lbnREYXRhUHJvdmlkZXI7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2c6IERpYWxvZ1JlZjxWYXJpYW50SXRlbVtdPiwgcHJpdmF0ZSByZWFkb25seSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgICAgICAvLyBXZSBjbG9uZSBhbGwgdmFyaWFudHMsIHNvIHdlIGRvbid0IGNoYW5nZSBvcmlnaW5hbCBpbnN0YW5jZXMgaW1tZWRpYXRlbHkuXG4gICAgICAgIHRoaXMuX3ZhcmlhbnRzID0gdGhpcy5kaWFsb2cuZGF0YS5tYXAoKG9sZFZhcmlhbnQpID0+IG9sZFZhcmlhbnQuY2xvbmUoe30sIGZhbHNlKSk7XG4gICAgICAgIHRoaXMuX2RhdGFQcm92aWRlciA9IG5ldyBWYXJpYW50TWFuYWdlbWVudERhdGFQcm92aWRlcih0aGlzLl92YXJpYW50cyk7XG4gICAgICAgIHRoaXMuX3NvdXJjZSA9IG5ldyBUYWJsZURhdGFTb3VyY2UodGhpcy5fZGF0YVByb3ZpZGVyKTtcbiAgICB9XG5cbiAgICAvKiogQEhpZGRlbiAqL1xuICAgIF9tYXJrQXNGYXZvdXJpdGUoaXRlbTogVmFyaWFudEl0ZW0pOiB2b2lkIHtcbiAgICAgICAgaXRlbS5mYXZvdXJpdGUgPSAhaXRlbS5mYXZvdXJpdGU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfcmVtb3ZlVmFyaWFudChpdGVtOiBWYXJpYW50SXRlbSk6IHZvaWQge1xuICAgICAgICB0aGlzLl92YXJpYW50cy5zcGxpY2UoXG4gICAgICAgICAgICB0aGlzLl92YXJpYW50cy5maW5kSW5kZXgoKHZhcmlhbnQpID0+IGl0ZW0uaWQgPT09IHZhcmlhbnQuaWQpLFxuICAgICAgICAgICAgMVxuICAgICAgICApO1xuICAgICAgICB0aGlzLl9kYXRhUHJvdmlkZXIudXBkYXRlKHRoaXMuX3ZhcmlhbnRzKTtcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQ2xvc2VzIGRpYWxvZyB3aXRoIHVwZGF0ZWQgdmFyaWFudHMgYXJyYXkuXG4gICAgICovXG4gICAgX3NhdmVWYXJpYW50cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaWFsb2cuY2xvc2UodGhpcy5fdmFyaWFudHMpO1xuICAgIH1cbn1cbiIsIjxmZC1kaWFsb2c+XG4gICAgPGZkLWRpYWxvZy1oZWFkZXI+XG4gICAgICAgIDxoMSBpZD1cImZkLWRpYWxvZy1oZWFkZXItMVwiIGZkLXRpdGxlPlxuICAgICAgICAgICAge3sgJ3BsYXRmb3JtVmFyaWFudE1hbmFnZW1lbnQubWFuYWdlVmlld3MnIHwgZmRUcmFuc2xhdGUgfX1cbiAgICAgICAgPC9oMT5cbiAgICA8L2ZkLWRpYWxvZy1oZWFkZXI+XG5cbiAgICA8ZmQtZGlhbG9nLWJvZHk+XG4gICAgICAgIDxmZHAtdGFibGUgW2RhdGFTb3VyY2VdPVwiX3NvdXJjZVwiIFtub1ZlcnRpY2FsQm9yZGVyc109XCJ0cnVlXCIgY2xhc3M9XCJmZC12YXJpYW50LW1hbmFnZW1lbnRfX3RhYmxlXCI+XG4gICAgICAgICAgICA8ZmRwLWNvbHVtbiBuYW1lPVwiZmF2b3VyaXRlXCIga2V5PVwiZmF2b3VyaXRlXCI+XG4gICAgICAgICAgICAgICAgPGZkcC10YWJsZS1jZWxsICpmZHBDZWxsRGVmPVwibGV0IGl0ZW07IGFzOiBfdmFyaWFudE1vZGVsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxmZC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkLXZhcmlhbnQtbWFuYWdlbWVudF9fZmF2b3VyaXRlLXN0YXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5mZC12YXJpYW50LW1hbmFnZW1lbnRfX2Zhdm91cml0ZS1zdGF0ZS0tYWN0aXZlXT1cIml0ZW0uZmF2b3VyaXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiJ3BsYXRmb3JtVmFyaWFudE1hbmFnZW1lbnQubWFya0FzRmF2b3VyaXRlJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiX21hcmtBc0Zhdm91cml0ZShpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBnbHlwaD1cImZhdm9yaXRlXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvZmQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2ZkcC10YWJsZS1jZWxsPlxuICAgICAgICAgICAgPC9mZHAtY29sdW1uPlxuICAgICAgICAgICAgPGZkcC1jb2x1bW4gW2xhYmVsXT1cIidwbGF0Zm9ybVZhcmlhbnRNYW5hZ2VtZW50LnZpZXcnIHwgZmRUcmFuc2xhdGVcIiBuYW1lPVwibmFtZVwiIGtleT1cIm5hbWVcIj5cbiAgICAgICAgICAgICAgICA8ZmRwLXRhYmxlLWNlbGwgKmZkcENlbGxEZWY9XCJsZXQgaXRlbTsgYXM6IF92YXJpYW50TW9kZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgPGZkcC1pbnB1dCAqbmdJZj1cIiFpdGVtLnJlYWRvbmx5XCIgWyhuZ01vZGVsKV09XCJpdGVtLm5hbWVcIj48L2ZkcC1pbnB1dD5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0ucmVhZG9ubHlcIj57eyBpdGVtLm5hbWUgfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2ZkcC10YWJsZS1jZWxsPlxuICAgICAgICAgICAgPC9mZHAtY29sdW1uPlxuICAgICAgICAgICAgPGZkcC1jb2x1bW4gW2xhYmVsXT1cIidwbGF0Zm9ybVZhcmlhbnRNYW5hZ2VtZW50LnNoYXJpbmcnIHwgZmRUcmFuc2xhdGVcIiBuYW1lPVwiYWNjZXNzXCIga2V5PVwiYWNjZXNzXCI+XG4gICAgICAgICAgICAgICAgPGZkcC10YWJsZS1jZWxsICpmZHBDZWxsRGVmPVwibGV0IGl0ZW07IGFzOiBfdmFyaWFudE1vZGVsXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAoaXRlbS5hY2Nlc3MgPT09ICdwdWJsaWMnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAncGxhdGZvcm1WYXJpYW50TWFuYWdlbWVudC5hY2Nlc3MucHVibGljJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ3BsYXRmb3JtVmFyaWFudE1hbmFnZW1lbnQuYWNjZXNzLnByaXZhdGUnXG4gICAgICAgICAgICAgICAgICAgICAgICApIHwgZmRUcmFuc2xhdGVcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA8L2ZkcC10YWJsZS1jZWxsPlxuICAgICAgICAgICAgPC9mZHAtY29sdW1uPlxuICAgICAgICAgICAgPGZkcC1jb2x1bW5cbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ3BsYXRmb3JtVmFyaWFudE1hbmFnZW1lbnQuZGVmYXVsdCcgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgbmFtZT1cImlzRGVmYXVsdFwiXG4gICAgICAgICAgICAgICAga2V5PVwiaXNEZWZhdWx0XCJcbiAgICAgICAgICAgICAgICBhbGlnbj1cImNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGZkcC10YWJsZS1jZWxsICpmZHBDZWxsRGVmPVwibGV0IGl0ZW07IGFzOiBfdmFyaWFudE1vZGVsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxmZC1yYWRpby1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCIncmFkaW8tJyArIGl0ZW0uaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImlzLXZhcmlhbnQtZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIml0ZW0uaXNEZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvZmQtcmFkaW8tYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZmRwLXRhYmxlLWNlbGw+XG4gICAgICAgICAgICA8L2ZkcC1jb2x1bW4+XG4gICAgICAgICAgICA8ZmRwLWNvbHVtblxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCIncGxhdGZvcm1WYXJpYW50TWFuYWdlbWVudC5hcHBseUF1dG9tYXRpY2FsbHknIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIG5hbWU9XCJhcHBseUF1dG9tYXRpY2FsbHlcIlxuICAgICAgICAgICAgICAgIGtleT1cImFwcGx5QXV0b21hdGljYWxseVwiXG4gICAgICAgICAgICAgICAgYWxpZ249XCJjZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxmZHAtdGFibGUtY2VsbCAqZmRwQ2VsbERlZj1cImxldCBpdGVtOyBhczogX3ZhcmlhbnRNb2RlbFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZmRwLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkLXZhcmlhbnQtbWFuYWdlbWVudF9fY2VudGVyZWQtY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0YW5kYWxvbmVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiYXBwbHlBdXRvbWF0aWNhbGx5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaXRlbS5hcHBseUF1dG9tYXRpY2FsbHlcIlxuICAgICAgICAgICAgICAgICAgICA+PC9mZHAtY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgPC9mZHAtdGFibGUtY2VsbD5cbiAgICAgICAgICAgIDwvZmRwLWNvbHVtbj5cbiAgICAgICAgICAgIDxmZHAtY29sdW1uXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidwbGF0Zm9ybVZhcmlhbnRNYW5hZ2VtZW50LmNyZWF0ZWRCeScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgbmFtZT1cImNyZWF0ZWRCeVwiXG4gICAgICAgICAgICAgICAga2V5PVwiY3JlYXRlZEJ5XCJcbiAgICAgICAgICAgID48L2ZkcC1jb2x1bW4+XG4gICAgICAgICAgICA8ZmRwLWNvbHVtbiBuYW1lPVwiYWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgIDxmZHAtdGFibGUtY2VsbCAqZmRwQ2VsbERlZj1cImxldCBpdGVtOyBhczogX3ZhcmlhbnRNb2RlbFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZmRwLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhaXRlbS5yZWFkb25seVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBidXR0b25UeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZ2x5cGg9XCJkZWNsaW5lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCIncGxhdGZvcm1WYXJpYW50TWFuYWdlbWVudC5yZW1vdmVWYXJpYW50JyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJfcmVtb3ZlVmFyaWFudChpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgID48L2ZkcC1idXR0b24+XG4gICAgICAgICAgICAgICAgPC9mZHAtdGFibGUtY2VsbD5cbiAgICAgICAgICAgIDwvZmRwLWNvbHVtbj5cbiAgICAgICAgPC9mZHAtdGFibGU+XG4gICAgPC9mZC1kaWFsb2ctYm9keT5cblxuICAgIDxmZC1kaWFsb2ctZm9vdGVyPlxuICAgICAgICA8ZmQtYnV0dG9uLWJhclxuICAgICAgICAgICAgZmRUeXBlPVwiZW1waGFzaXplZFwiXG4gICAgICAgICAgICBbbGFiZWxdPVwiJ3BsYXRmb3JtVmFyaWFudE1hbmFnZW1lbnQuc2F2ZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiX3NhdmVWYXJpYW50cygpXCJcbiAgICAgICAgICAgIGFyaWFMYWJlbD1cIkludGVyZXN0ZWQgRW1waGFzaXplZFwiXG4gICAgICAgID48L2ZkLWJ1dHRvbi1iYXI+XG5cbiAgICAgICAgPGZkLWJ1dHRvbi1iYXJcbiAgICAgICAgICAgIFtsYWJlbF09XCIncGxhdGZvcm1WYXJpYW50TWFuYWdlbWVudC5jYW5jZWwnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImRpYWxvZy5kaXNtaXNzKCdDYW5jZWwnKVwiXG4gICAgICAgICAgICBbYXJpYUxhYmVsXT1cIidwbGF0Zm9ybVZhcmlhbnRNYW5hZ2VtZW50LmNhbmNlbCcgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgID48L2ZkLWJ1dHRvbi1iYXI+XG4gICAgPC9mZC1kaWFsb2ctZm9vdGVyPlxuPC9mZC1kaWFsb2c+XG4iXX0=
@@ -155,7 +155,7 @@ export class VariantManagementComponent {
155
155
  provide: FDP_VARIANT_MANAGEMENT,
156
156
  useExisting: VariantManagementComponent
157
157
  }
158
- ], queries: [{ propertyName: "dirtyLabel", first: true, predicate: VariantManagementDirtyLabelDirective, descendants: true }], viewQueries: [{ propertyName: "_popover", first: true, predicate: ["popover"], descendants: true }], ngImport: i0, template: "<fd-popover\n #popover\n *ngIf=\"activeVariant\"\n placement=\"bottom\"\n [noArrow]=\"false\"\n [focusAutoCapture]=\"true\"\n [focusTrapped]=\"true\"\n additionalBodyClass=\"fd-variant-management__popover-body\"\n [triggers]=\"popoverTriggers\"\n>\n <fd-popover-control>\n <div class=\"fd-variant-management__header\">\n <h4 fd-title class=\"fd-variant-management__title\" [headerSize]=\"headerSize\">\n {{ activeVariant.name }}\n </h4>\n <ng-container *ngIf=\"_variantChanged\">\n <span\n class=\"fd-variant-management__dirty-indicator\"\n [class.fd-variant-management__dirty-indicator--custom]=\"!!dirtyLabel\"\n >\n <ng-template #defaultDirtyIndicator>*</ng-template>\n <ng-template\n *ngTemplateOutlet=\"dirtyLabel ? dirtyLabel.templateRef : defaultDirtyIndicator\"\n ></ng-template>\n </span>\n </ng-container>\n <fdp-menu-button type=\"transparent\"> </fdp-menu-button>\n </div>\n </fd-popover-control>\n <fd-popover-body>\n <div fd-popover-body-header>\n <div fd-bar [barDesign]=\"displaySearch ? 'header-with-subheader' : 'header'\">\n <div fd-bar-left>\n <fd-bar-element>\n <h5 fd-title>{{ 'platformVariantManagement.myViews' | fdTranslate }}</h5>\n </fd-bar-element>\n </div>\n </div>\n <div fd-bar barDesign=\"header\" *ngIf=\"displaySearch\">\n <div fd-bar-left>\n <fd-bar-element>\n <fdp-search-field\n [placeholder]=\"'platformVariantManagement.search' | fdTranslate\"\n (searchSubmit)=\"_onSearchSubmit($event)\"\n (cancelSearch)=\"_cancelSearch()\"\n [disableRefresh]=\"true\"\n ></fdp-search-field>\n </fd-bar-element>\n </div>\n </div>\n </div>\n <ul fd-list>\n <ng-container\n *ngFor=\"\n let variant of _variants | fdFilterStrings : { searchTerm: _filterPhrase, key: 'name' };\n trackBy: _trackFn\n \"\n >\n <li fd-list-item (click)=\"selectVariant(variant)\">\n <span fd-list-link>\n <span fd-list-title>{{ variant.name }}</span>\n </span>\n </li>\n </ng-container>\n </ul>\n <div fd-popover-body-footer>\n <div fd-bar barDesign=\"footer\">\n <div fd-bar-right>\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'platformVariantManagement.save' | fdTranslate\"\n *ngIf=\"!activeVariant.readonly && _variantChanged\"\n (click)=\"saveCurrentVariant()\"\n >\n </fd-button-bar>\n <fd-button-bar\n [fdType]=\"activeVariant.readonly || !_variantChanged ? 'emphasized' : 'transparent'\"\n [label]=\"'platformVariantManagement.saveAs' | fdTranslate\"\n (click)=\"_openSaveDialog()\"\n ></fd-button-bar>\n <fd-button-bar\n [label]=\"'platformVariantManagement.manage' | fdTranslate\"\n (click)=\"_openManageDialog()\"\n ></fd-button-bar>\n </div>\n </div>\n </div>\n </fd-popover-body>\n</fd-popover>\n", styles: ["/*!\n * Fundamental Library Styles v0.30.2\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-variant-management{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-variant-management:after,.fd-variant-management:before{box-sizing:inherit;font-size:inherit}.fd-variant-management__header{-webkit-box-sizing:border-box;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;gap:.125rem;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-variant-management__header:after,.fd-variant-management__header:before{box-sizing:inherit;font-size:inherit}.fd-variant-management .fd-variant-management__title{color:var(--fdVariantManagementHeadingColor)}.fd-variant-management .fd-variant-management__title.is-hover,.fd-variant-management .fd-variant-management__title:hover{color:var(--fdVariantManagementHeadingHoverColor)}.fd-variant-management .fd-variant-management__title.is-active,.fd-variant-management .fd-variant-management__title:active{color:var(--fdVariantManagementHeadingActiveColor)}.fd-variant-management__dirty-indicator{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapGroup_TitleTextColor);display:inline-block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;font-weight:700;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-variant-management__dirty-indicator:after,.fd-variant-management__dirty-indicator:before{box-sizing:inherit;font-size:inherit}.fd-variant-management__dirty-indicator--custom{font-size:var(--sapFontSmallSize)}.fd-variant-management__favourite-state{color:var(--sapContent_NonInteractiveIconColor);cursor:pointer}.fd-variant-management__favourite-state--active{color:var(--sapContent_MarkerIconColor)}.fd-variant-management__centered-checkbox{-webkit-box-pack:center;-ms-flex-pack:center;display:flex;justify-content:center}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "component", type: PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MenuButtonComponent, selector: "fdp-menu-button", inputs: ["label", "title", "icon", "type"], outputs: ["buttonClicked"] }, { kind: "component", type: PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "directive", type: PopoverBodyHeaderDirective, selector: "[fdPopoverBodyHeader], [fd-popover-body-header]" }, { kind: "component", type: BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "component", type: SearchFieldComponent, selector: "fdp-search-field", inputs: ["categoryMode", "appearance", "placeholder", "mobile", "mobileConfig", "disableRefresh", "disableSearch", "suggestions", "dataSource", "inputText", "categories", "currentCategory", "categoryLabel", "hideCategoryLabel", "isLoading", "ariaLabel", "ariaLabelledby", "forceSearchButton", "disableSuggestionsFoundAnnouncer"], outputs: ["inputChange", "searchSubmit", "cancelSearch", "isOpenChange"] }, { kind: "component", type: ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline"], outputs: ["keyDown"] }, { kind: "directive", type: ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "directive", type: ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: PopoverBodyFooterDirective, selector: "[fdPopoverBodyFooter], [fd-popover-body-footer]" }, { kind: "directive", type: BarRightDirective, selector: "[fd-bar-right]" }, { kind: "component", type: ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }, { kind: "pipe", type: FilterStringsPipe, name: "fdFilterStrings" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
158
+ ], queries: [{ propertyName: "dirtyLabel", first: true, predicate: VariantManagementDirtyLabelDirective, descendants: true }], viewQueries: [{ propertyName: "_popover", first: true, predicate: ["popover"], descendants: true }], ngImport: i0, template: "<fd-popover\n #popover\n *ngIf=\"activeVariant\"\n placement=\"bottom\"\n [noArrow]=\"false\"\n [focusAutoCapture]=\"true\"\n [focusTrapped]=\"true\"\n additionalBodyClass=\"fd-variant-management__popover-body\"\n [triggers]=\"popoverTriggers\"\n>\n <fd-popover-control>\n <div class=\"fd-variant-management__header\">\n <h4 fd-title class=\"fd-variant-management__title\" [headerSize]=\"headerSize\">\n {{ activeVariant.name }}\n </h4>\n <ng-container *ngIf=\"_variantChanged\">\n <span\n class=\"fd-variant-management__dirty-indicator\"\n [class.fd-variant-management__dirty-indicator--custom]=\"!!dirtyLabel\"\n >\n <ng-template #defaultDirtyIndicator>*</ng-template>\n <ng-template\n *ngTemplateOutlet=\"dirtyLabel ? dirtyLabel.templateRef : defaultDirtyIndicator\"\n ></ng-template>\n </span>\n </ng-container>\n <fdp-menu-button type=\"transparent\"> </fdp-menu-button>\n </div>\n </fd-popover-control>\n <fd-popover-body>\n <div fd-popover-body-header>\n <div fd-bar [barDesign]=\"displaySearch ? 'header-with-subheader' : 'header'\">\n <div fd-bar-left>\n <fd-bar-element>\n <h5 fd-title>{{ 'platformVariantManagement.myViews' | fdTranslate }}</h5>\n </fd-bar-element>\n </div>\n </div>\n <div fd-bar barDesign=\"header\" *ngIf=\"displaySearch\">\n <div fd-bar-left>\n <fd-bar-element>\n <fdp-search-field\n [placeholder]=\"'platformVariantManagement.search' | fdTranslate\"\n (searchSubmit)=\"_onSearchSubmit($event)\"\n (cancelSearch)=\"_cancelSearch()\"\n [disableRefresh]=\"true\"\n ></fdp-search-field>\n </fd-bar-element>\n </div>\n </div>\n </div>\n <ul fd-list>\n <ng-container\n *ngFor=\"\n let variant of _variants | fdFilterStrings : { searchTerm: _filterPhrase, key: 'name' };\n trackBy: _trackFn\n \"\n >\n <li fd-list-item (click)=\"selectVariant(variant)\">\n <span fd-list-link>\n <span fd-list-title>{{ variant.name }}</span>\n </span>\n </li>\n </ng-container>\n </ul>\n <div fd-popover-body-footer>\n <div fd-bar barDesign=\"footer\">\n <div fd-bar-right>\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'platformVariantManagement.save' | fdTranslate\"\n *ngIf=\"!activeVariant.readonly && _variantChanged\"\n (click)=\"saveCurrentVariant()\"\n >\n </fd-button-bar>\n <fd-button-bar\n [fdType]=\"activeVariant.readonly || !_variantChanged ? 'emphasized' : 'transparent'\"\n [label]=\"'platformVariantManagement.saveAs' | fdTranslate\"\n (click)=\"_openSaveDialog()\"\n ></fd-button-bar>\n <fd-button-bar\n [label]=\"'platformVariantManagement.manage' | fdTranslate\"\n (click)=\"_openManageDialog()\"\n ></fd-button-bar>\n </div>\n </div>\n </div>\n </fd-popover-body>\n</fd-popover>\n", styles: ["/*!\n * Fundamental Library Styles v0.31.0\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-variant-management{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-variant-management:after,.fd-variant-management:before{box-sizing:inherit;font-size:inherit}.fd-variant-management__header{-webkit-box-sizing:border-box;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;gap:.125rem;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-variant-management__header:after,.fd-variant-management__header:before{box-sizing:inherit;font-size:inherit}.fd-variant-management .fd-variant-management__title{color:var(--fdVariantManagementHeadingColor)}.fd-variant-management .fd-variant-management__title.is-hover,.fd-variant-management .fd-variant-management__title:hover{color:var(--fdVariantManagementHeadingHoverColor)}.fd-variant-management .fd-variant-management__title.is-active,.fd-variant-management .fd-variant-management__title:active{color:var(--fdVariantManagementHeadingActiveColor)}.fd-variant-management__dirty-indicator{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapGroup_TitleTextColor);display:inline-block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;font-weight:700;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-variant-management__dirty-indicator:after,.fd-variant-management__dirty-indicator:before{box-sizing:inherit;font-size:inherit}.fd-variant-management__dirty-indicator--custom{font-size:var(--sapFontSmallSize)}.fd-variant-management__favourite-state{color:var(--sapContent_NonInteractiveIconColor);cursor:pointer}.fd-variant-management__favourite-state--active{color:var(--sapContent_MarkerIconColor)}.fd-variant-management__centered-checkbox{-webkit-box-pack:center;-ms-flex-pack:center;display:flex;justify-content:center}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { kind: "component", type: PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MenuButtonComponent, selector: "fdp-menu-button", inputs: ["label", "title", "icon", "type"], outputs: ["buttonClicked"] }, { kind: "component", type: PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "directive", type: PopoverBodyHeaderDirective, selector: "[fdPopoverBodyHeader], [fd-popover-body-header]" }, { kind: "component", type: BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "component", type: SearchFieldComponent, selector: "fdp-search-field", inputs: ["categoryMode", "appearance", "placeholder", "mobile", "mobileConfig", "disableRefresh", "disableSearch", "suggestions", "dataSource", "inputText", "categories", "currentCategory", "categoryLabel", "hideCategoryLabel", "isLoading", "ariaLabel", "ariaLabelledby", "forceSearchButton", "disableSuggestionsFoundAnnouncer"], outputs: ["inputChange", "searchSubmit", "cancelSearch", "isOpenChange"] }, { kind: "component", type: ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline"], outputs: ["keyDown"] }, { kind: "directive", type: ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "directive", type: ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: PopoverBodyFooterDirective, selector: "[fdPopoverBodyFooter], [fd-popover-body-footer]" }, { kind: "directive", type: BarRightDirective, selector: "[fd-bar-right]" }, { kind: "component", type: ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }, { kind: "pipe", type: FilterStringsPipe, name: "fdFilterStrings" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
159
159
  }
160
160
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: VariantManagementComponent, decorators: [{
161
161
  type: Component,
@@ -187,7 +187,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
187
187
  ButtonBarComponent,
188
188
  FdTranslatePipe,
189
189
  FilterStringsPipe
190
- ], template: "<fd-popover\n #popover\n *ngIf=\"activeVariant\"\n placement=\"bottom\"\n [noArrow]=\"false\"\n [focusAutoCapture]=\"true\"\n [focusTrapped]=\"true\"\n additionalBodyClass=\"fd-variant-management__popover-body\"\n [triggers]=\"popoverTriggers\"\n>\n <fd-popover-control>\n <div class=\"fd-variant-management__header\">\n <h4 fd-title class=\"fd-variant-management__title\" [headerSize]=\"headerSize\">\n {{ activeVariant.name }}\n </h4>\n <ng-container *ngIf=\"_variantChanged\">\n <span\n class=\"fd-variant-management__dirty-indicator\"\n [class.fd-variant-management__dirty-indicator--custom]=\"!!dirtyLabel\"\n >\n <ng-template #defaultDirtyIndicator>*</ng-template>\n <ng-template\n *ngTemplateOutlet=\"dirtyLabel ? dirtyLabel.templateRef : defaultDirtyIndicator\"\n ></ng-template>\n </span>\n </ng-container>\n <fdp-menu-button type=\"transparent\"> </fdp-menu-button>\n </div>\n </fd-popover-control>\n <fd-popover-body>\n <div fd-popover-body-header>\n <div fd-bar [barDesign]=\"displaySearch ? 'header-with-subheader' : 'header'\">\n <div fd-bar-left>\n <fd-bar-element>\n <h5 fd-title>{{ 'platformVariantManagement.myViews' | fdTranslate }}</h5>\n </fd-bar-element>\n </div>\n </div>\n <div fd-bar barDesign=\"header\" *ngIf=\"displaySearch\">\n <div fd-bar-left>\n <fd-bar-element>\n <fdp-search-field\n [placeholder]=\"'platformVariantManagement.search' | fdTranslate\"\n (searchSubmit)=\"_onSearchSubmit($event)\"\n (cancelSearch)=\"_cancelSearch()\"\n [disableRefresh]=\"true\"\n ></fdp-search-field>\n </fd-bar-element>\n </div>\n </div>\n </div>\n <ul fd-list>\n <ng-container\n *ngFor=\"\n let variant of _variants | fdFilterStrings : { searchTerm: _filterPhrase, key: 'name' };\n trackBy: _trackFn\n \"\n >\n <li fd-list-item (click)=\"selectVariant(variant)\">\n <span fd-list-link>\n <span fd-list-title>{{ variant.name }}</span>\n </span>\n </li>\n </ng-container>\n </ul>\n <div fd-popover-body-footer>\n <div fd-bar barDesign=\"footer\">\n <div fd-bar-right>\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'platformVariantManagement.save' | fdTranslate\"\n *ngIf=\"!activeVariant.readonly && _variantChanged\"\n (click)=\"saveCurrentVariant()\"\n >\n </fd-button-bar>\n <fd-button-bar\n [fdType]=\"activeVariant.readonly || !_variantChanged ? 'emphasized' : 'transparent'\"\n [label]=\"'platformVariantManagement.saveAs' | fdTranslate\"\n (click)=\"_openSaveDialog()\"\n ></fd-button-bar>\n <fd-button-bar\n [label]=\"'platformVariantManagement.manage' | fdTranslate\"\n (click)=\"_openManageDialog()\"\n ></fd-button-bar>\n </div>\n </div>\n </div>\n </fd-popover-body>\n</fd-popover>\n", styles: ["/*!\n * Fundamental Library Styles v0.30.2\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-variant-management{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-variant-management:after,.fd-variant-management:before{box-sizing:inherit;font-size:inherit}.fd-variant-management__header{-webkit-box-sizing:border-box;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;gap:.125rem;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-variant-management__header:after,.fd-variant-management__header:before{box-sizing:inherit;font-size:inherit}.fd-variant-management .fd-variant-management__title{color:var(--fdVariantManagementHeadingColor)}.fd-variant-management .fd-variant-management__title.is-hover,.fd-variant-management .fd-variant-management__title:hover{color:var(--fdVariantManagementHeadingHoverColor)}.fd-variant-management .fd-variant-management__title.is-active,.fd-variant-management .fd-variant-management__title:active{color:var(--fdVariantManagementHeadingActiveColor)}.fd-variant-management__dirty-indicator{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapGroup_TitleTextColor);display:inline-block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;font-weight:700;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-variant-management__dirty-indicator:after,.fd-variant-management__dirty-indicator:before{box-sizing:inherit;font-size:inherit}.fd-variant-management__dirty-indicator--custom{font-size:var(--sapFontSmallSize)}.fd-variant-management__favourite-state{color:var(--sapContent_NonInteractiveIconColor);cursor:pointer}.fd-variant-management__favourite-state--active{color:var(--sapContent_MarkerIconColor)}.fd-variant-management__centered-checkbox{-webkit-box-pack:center;-ms-flex-pack:center;display:flex;justify-content:center}\n"] }]
190
+ ], template: "<fd-popover\n #popover\n *ngIf=\"activeVariant\"\n placement=\"bottom\"\n [noArrow]=\"false\"\n [focusAutoCapture]=\"true\"\n [focusTrapped]=\"true\"\n additionalBodyClass=\"fd-variant-management__popover-body\"\n [triggers]=\"popoverTriggers\"\n>\n <fd-popover-control>\n <div class=\"fd-variant-management__header\">\n <h4 fd-title class=\"fd-variant-management__title\" [headerSize]=\"headerSize\">\n {{ activeVariant.name }}\n </h4>\n <ng-container *ngIf=\"_variantChanged\">\n <span\n class=\"fd-variant-management__dirty-indicator\"\n [class.fd-variant-management__dirty-indicator--custom]=\"!!dirtyLabel\"\n >\n <ng-template #defaultDirtyIndicator>*</ng-template>\n <ng-template\n *ngTemplateOutlet=\"dirtyLabel ? dirtyLabel.templateRef : defaultDirtyIndicator\"\n ></ng-template>\n </span>\n </ng-container>\n <fdp-menu-button type=\"transparent\"> </fdp-menu-button>\n </div>\n </fd-popover-control>\n <fd-popover-body>\n <div fd-popover-body-header>\n <div fd-bar [barDesign]=\"displaySearch ? 'header-with-subheader' : 'header'\">\n <div fd-bar-left>\n <fd-bar-element>\n <h5 fd-title>{{ 'platformVariantManagement.myViews' | fdTranslate }}</h5>\n </fd-bar-element>\n </div>\n </div>\n <div fd-bar barDesign=\"header\" *ngIf=\"displaySearch\">\n <div fd-bar-left>\n <fd-bar-element>\n <fdp-search-field\n [placeholder]=\"'platformVariantManagement.search' | fdTranslate\"\n (searchSubmit)=\"_onSearchSubmit($event)\"\n (cancelSearch)=\"_cancelSearch()\"\n [disableRefresh]=\"true\"\n ></fdp-search-field>\n </fd-bar-element>\n </div>\n </div>\n </div>\n <ul fd-list>\n <ng-container\n *ngFor=\"\n let variant of _variants | fdFilterStrings : { searchTerm: _filterPhrase, key: 'name' };\n trackBy: _trackFn\n \"\n >\n <li fd-list-item (click)=\"selectVariant(variant)\">\n <span fd-list-link>\n <span fd-list-title>{{ variant.name }}</span>\n </span>\n </li>\n </ng-container>\n </ul>\n <div fd-popover-body-footer>\n <div fd-bar barDesign=\"footer\">\n <div fd-bar-right>\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'platformVariantManagement.save' | fdTranslate\"\n *ngIf=\"!activeVariant.readonly && _variantChanged\"\n (click)=\"saveCurrentVariant()\"\n >\n </fd-button-bar>\n <fd-button-bar\n [fdType]=\"activeVariant.readonly || !_variantChanged ? 'emphasized' : 'transparent'\"\n [label]=\"'platformVariantManagement.saveAs' | fdTranslate\"\n (click)=\"_openSaveDialog()\"\n ></fd-button-bar>\n <fd-button-bar\n [label]=\"'platformVariantManagement.manage' | fdTranslate\"\n (click)=\"_openManageDialog()\"\n ></fd-button-bar>\n </div>\n </div>\n </div>\n </fd-popover-body>\n</fd-popover>\n", styles: ["/*!\n * Fundamental Library Styles v0.31.0\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-variant-management{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-variant-management:after,.fd-variant-management:before{box-sizing:inherit;font-size:inherit}.fd-variant-management__header{-webkit-box-sizing:border-box;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;gap:.125rem;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-variant-management__header:after,.fd-variant-management__header:before{box-sizing:inherit;font-size:inherit}.fd-variant-management .fd-variant-management__title{color:var(--fdVariantManagementHeadingColor)}.fd-variant-management .fd-variant-management__title.is-hover,.fd-variant-management .fd-variant-management__title:hover{color:var(--fdVariantManagementHeadingHoverColor)}.fd-variant-management .fd-variant-management__title.is-active,.fd-variant-management .fd-variant-management__title:active{color:var(--fdVariantManagementHeadingActiveColor)}.fd-variant-management__dirty-indicator{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);color:var(--sapGroup_TitleTextColor);display:inline-block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;font-weight:700;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-variant-management__dirty-indicator:after,.fd-variant-management__dirty-indicator:before{box-sizing:inherit;font-size:inherit}.fd-variant-management__dirty-indicator--custom{font-size:var(--sapFontSmallSize)}.fd-variant-management__favourite-state{color:var(--sapContent_NonInteractiveIconColor);cursor:pointer}.fd-variant-management__favourite-state--active{color:var(--sapContent_MarkerIconColor)}.fd-variant-management__centered-checkbox{-webkit-box-pack:center;-ms-flex-pack:center;display:flex;justify-content:center}\n"] }]
191
191
  }], ctorParameters: function () { return [{ type: i1.DialogService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { variants: [{
192
192
  type: Input
193
193
  }], headerSize: [{
@@ -125,7 +125,7 @@ export class DialogWizardGeneratorComponent extends BaseWizardGenerator {
125
125
  });
126
126
  }
127
127
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: DialogWizardGeneratorComponent, deps: [{ token: i1.WizardGeneratorService }, { token: i0.ChangeDetectorRef }, { token: i2.DialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
128
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: DialogWizardGeneratorComponent, isStandalone: true, selector: "fdp-dialog-wizard-generator", providers: [WizardGeneratorService, FormGeneratorService], viewQueries: [{ propertyName: "defaultConfirmationDialogTemplate", first: true, predicate: ["defaultConfirmationDialogTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<fd-dialog>\n <fd-dialog-header>\n <h2 fd-title [headerSize]=\"title.size\">{{ title.text }}</h2>\n </fd-dialog-header>\n <fd-dialog-body>\n <fdp-wizard-body\n [navigationButtons]=\"false\"\n [displaySummaryStep]=\"displaySummaryStep\"\n [responsivePaddings]=\"responsivePaddings\"\n [navigationButtonLabels]=\"_navigationButtonLabels\"\n [customSummaryStepTemplate]=\"summaryStepTemplate\"\n [reviewButtonTemplate]=\"reviewButtonTemplate\"\n [hidden]=\"!wizardCreated\"\n [appendToWizard]=\"appendToWizard\"\n [unifiedLayout]=\"unifiedLayout\"\n [contentHeight]=\"contentHeight\"\n (statusChange)=\"stepStatusChanged($event.id, $event.status)\"\n ></fdp-wizard-body>\n <div\n fd-bar\n barDesign=\"floating-footer\"\n [class.fd-bar--responsive-paddings]=\"responsivePaddings\"\n *ngIf=\"wizardCreated\"\n >\n <div fd-bar-right>\n <ng-container *ngIf=\"!isFirstStep\">\n <ng-template #defaultGoBackButtonTemplate>\n <fdp-button\n class=\"fd-bar__element\"\n [fdContentDensity]=\"_navigationButtonLabels.goBack.contentDensity\"\n [buttonType]=\"_navigationButtonLabels.goBack.type\"\n [label]=\"_navigationButtonLabels.goBack.label\"\n (click)=\"goBack()\"\n ></fdp-button>\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"goBackButtonTemplate || defaultGoBackButtonTemplate\"\n [ngTemplateOutletContext]=\"{ goBack: _goBackFn }\"\n ></ng-template>\n </ng-container>\n <ng-container *ngIf=\"!isLastStep\">\n <ng-template #defaultGoNextButtonTemplate>\n <fdp-button\n class=\"fd-bar__element\"\n [fdContentDensity]=\"_navigationButtonLabels.goNext.contentDensity\"\n [buttonType]=\"_navigationButtonLabels.goNext.type\"\n [label]=\"_navigationButtonLabels.goNext.label\"\n (click)=\"goNext()\"\n ></fdp-button>\n </ng-template>\n <ng-template #defaultReviewButtonTemplate>\n <fdp-button\n class=\"fd-bar__element\"\n [fdContentDensity]=\"_navigationButtonLabels.review.contentDensity\"\n [buttonType]=\"_navigationButtonLabels.review.type\"\n [label]=\"_navigationButtonLabels.review.label\"\n (click)=\"goNext()\"\n ></fdp-button>\n </ng-template>\n <ng-template\n [ngIf]=\"\n (isBranchingStep && (!isCurrentStepCompleted || _stepsOrderChanged)) || !isNextStepSummary\n \"\n [ngIfElse]=\"reviewButton\"\n >\n <ng-template\n [ngTemplateOutlet]=\"goNextButtonTemplate || defaultGoNextButtonTemplate\"\n [ngTemplateOutletContext]=\"{ goNext: _goNextFn }\"\n ></ng-template>\n </ng-template>\n <ng-template #reviewButton>\n <ng-template\n [ngTemplateOutlet]=\"reviewButtonTemplate || defaultReviewButtonTemplate\"\n [ngTemplateOutletContext]=\"{ goNext: _goNextFn }\"\n ></ng-template>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"isLastStep\">\n <ng-template #defaultFinishButtonTemplate>\n <fdp-button\n class=\"fd-bar__element\"\n [fdContentDensity]=\"_navigationButtonLabels.finish.contentDensity\"\n [buttonType]=\"_navigationButtonLabels.finish.type\"\n [label]=\"_navigationButtonLabels.finish.label\"\n (click)=\"finish()\"\n ></fdp-button>\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"finishButtonTemplate || defaultFinishButtonTemplate\"\n [ngTemplateOutletContext]=\"{ finish: _finishFn }\"\n ></ng-template>\n </ng-container>\n <ng-container>\n <ng-template #defaultCancelButtonTemplate>\n <fdp-button\n class=\"fd-bar__element\"\n [fdContentDensity]=\"_navigationButtonLabels.cancel.contentDensity\"\n [buttonType]=\"_navigationButtonLabels.cancel.type\"\n [label]=\"_navigationButtonLabels.cancel.label\"\n (click)=\"cancel()\"\n ></fdp-button>\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"cancelButtonTemplate || defaultCancelButtonTemplate\"\n [ngTemplateOutletContext]=\"{ cancel: _cancelFn }\"\n ></ng-template>\n </ng-container>\n </div>\n </div>\n </fd-dialog-body>\n</fd-dialog>\n\n<ng-template let-messageBox let-messageBoxConfig=\"messageBoxConfig\" #defaultConfirmationDialogTemplate>\n <fd-message-box [messageBoxConfig]=\"messageBoxConfig\" [messageBoxRef]=\"messageBox\">\n <fd-message-box-body>\n {{ confirmationDialogText }}\n </fd-message-box-body>\n <fd-message-box-footer>\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"confirmationDialogCloseText\"\n type=\"submit\"\n (click)=\"messageBox.close(true)\"\n >\n </fd-button-bar>\n <fd-button-bar fdkInitialFocus [label]=\"confirmationDialogCancelText\" (click)=\"messageBox.dismiss()\">\n </fd-button-bar>\n </fd-message-box-footer>\n </fd-message-box>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: DialogModule }, { kind: "component", type: i2.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i2.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i2.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i3.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i3.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "component", type: i3.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "component", type: i4.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: WizardBodyComponent, selector: "fdp-wizard-body", inputs: ["responsivePaddings", "navigationButtonLabels", "appendToWizard", "contentHeight", "isFirstStep", "isLastStep", "isNextStepSummary", "displaySummaryStep", "goNextButtonTemplate", "finishButtonTemplate", "customSummaryStepTemplate", "reviewButtonTemplate", "isSummaryStep", "navigationButtons", "unifiedLayout", "isBranchingStep", "isCurrentStepCompleted", "stepsOrderChanged"], outputs: ["statusChange", "goNext", "finish"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: BarModule }, { kind: "ngmodule", type: PlatformButtonModule }, { kind: "component", type: i5.ButtonComponent, selector: "fdp-button", inputs: ["glyphPosition", "label", "glyph", "buttonType", "toggled", "title", "ariaSelected", "ariaDisabled", "ariaExpanded", "ariaControlsId", "ariaPressed", "name", "type", "value"], outputs: ["buttonClicked"] }, { kind: "directive", type: i6.ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MessageBoxModule }, { kind: "component", type: i7.MessageBoxFooterComponent, selector: "fd-message-box-footer" }, { kind: "component", type: i7.MessageBoxBodyComponent, selector: "fd-message-box-body" }, { kind: "component", type: i7.MessageBoxComponent, selector: "fd-message-box", inputs: ["class", "messageBoxRef", "messageBoxConfig"] }, { kind: "directive", type: i8.InitialFocusDirective, selector: "[fdkInitialFocus]", inputs: ["fdkInitialFocus", "enabled", "focusLastElement"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
128
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: DialogWizardGeneratorComponent, isStandalone: true, selector: "fdp-dialog-wizard-generator", providers: [WizardGeneratorService, FormGeneratorService], viewQueries: [{ propertyName: "defaultConfirmationDialogTemplate", first: true, predicate: ["defaultConfirmationDialogTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<fd-dialog>\n <fd-dialog-header>\n <h2 fd-title [headerSize]=\"title.size\">{{ title.text }}</h2>\n </fd-dialog-header>\n <fd-dialog-body>\n <fdp-wizard-body\n [navigationButtons]=\"false\"\n [displaySummaryStep]=\"displaySummaryStep\"\n [responsivePaddings]=\"responsivePaddings\"\n [navigationButtonLabels]=\"_navigationButtonLabels\"\n [customSummaryStepTemplate]=\"summaryStepTemplate\"\n [reviewButtonTemplate]=\"reviewButtonTemplate\"\n [hidden]=\"!wizardCreated\"\n [appendToWizard]=\"appendToWizard\"\n [unifiedLayout]=\"unifiedLayout\"\n [contentHeight]=\"contentHeight\"\n (statusChange)=\"stepStatusChanged($event.id, $event.status)\"\n ></fdp-wizard-body>\n <div\n fd-bar\n barDesign=\"floating-footer\"\n [class.fd-bar--responsive-paddings]=\"responsivePaddings\"\n *ngIf=\"wizardCreated\"\n >\n <div fd-bar-right>\n <ng-container *ngIf=\"!isFirstStep\">\n <ng-template #defaultGoBackButtonTemplate>\n <fdp-button\n class=\"fd-bar__element\"\n [fdContentDensity]=\"_navigationButtonLabels.goBack.contentDensity\"\n [buttonType]=\"_navigationButtonLabels.goBack.type\"\n [label]=\"_navigationButtonLabels.goBack.label\"\n (click)=\"goBack()\"\n ></fdp-button>\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"goBackButtonTemplate || defaultGoBackButtonTemplate\"\n [ngTemplateOutletContext]=\"{ goBack: _goBackFn }\"\n ></ng-template>\n </ng-container>\n <ng-container *ngIf=\"!isLastStep\">\n <ng-template #defaultGoNextButtonTemplate>\n <fdp-button\n class=\"fd-bar__element\"\n [fdContentDensity]=\"_navigationButtonLabels.goNext.contentDensity\"\n [buttonType]=\"_navigationButtonLabels.goNext.type\"\n [label]=\"_navigationButtonLabels.goNext.label\"\n (click)=\"goNext()\"\n ></fdp-button>\n </ng-template>\n <ng-template #defaultReviewButtonTemplate>\n <fdp-button\n class=\"fd-bar__element\"\n [fdContentDensity]=\"_navigationButtonLabels.review.contentDensity\"\n [buttonType]=\"_navigationButtonLabels.review.type\"\n [label]=\"_navigationButtonLabels.review.label\"\n (click)=\"goNext()\"\n ></fdp-button>\n </ng-template>\n <ng-template\n [ngIf]=\"\n (isBranchingStep && (!isCurrentStepCompleted || _stepsOrderChanged)) || !isNextStepSummary\n \"\n [ngIfElse]=\"reviewButton\"\n >\n <ng-template\n [ngTemplateOutlet]=\"goNextButtonTemplate || defaultGoNextButtonTemplate\"\n [ngTemplateOutletContext]=\"{ goNext: _goNextFn }\"\n ></ng-template>\n </ng-template>\n <ng-template #reviewButton>\n <ng-template\n [ngTemplateOutlet]=\"reviewButtonTemplate || defaultReviewButtonTemplate\"\n [ngTemplateOutletContext]=\"{ goNext: _goNextFn }\"\n ></ng-template>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"isLastStep\">\n <ng-template #defaultFinishButtonTemplate>\n <fdp-button\n class=\"fd-bar__element\"\n [fdContentDensity]=\"_navigationButtonLabels.finish.contentDensity\"\n [buttonType]=\"_navigationButtonLabels.finish.type\"\n [label]=\"_navigationButtonLabels.finish.label\"\n (click)=\"finish()\"\n ></fdp-button>\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"finishButtonTemplate || defaultFinishButtonTemplate\"\n [ngTemplateOutletContext]=\"{ finish: _finishFn }\"\n ></ng-template>\n </ng-container>\n <ng-container>\n <ng-template #defaultCancelButtonTemplate>\n <fdp-button\n class=\"fd-bar__element\"\n [fdContentDensity]=\"_navigationButtonLabels.cancel.contentDensity\"\n [buttonType]=\"_navigationButtonLabels.cancel.type\"\n [label]=\"_navigationButtonLabels.cancel.label\"\n (click)=\"cancel()\"\n ></fdp-button>\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"cancelButtonTemplate || defaultCancelButtonTemplate\"\n [ngTemplateOutletContext]=\"{ cancel: _cancelFn }\"\n ></ng-template>\n </ng-container>\n </div>\n </div>\n </fd-dialog-body>\n</fd-dialog>\n\n<ng-template\n [fdMessageBoxTemplate]\n let-messageBox\n let-messageBoxConfig=\"messageBoxConfig\"\n #defaultConfirmationDialogTemplate\n>\n <fd-message-box [messageBoxConfig]=\"messageBoxConfig\" [messageBoxRef]=\"messageBox\">\n <fd-message-box-body>\n {{ confirmationDialogText }}\n </fd-message-box-body>\n <fd-message-box-footer>\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"confirmationDialogCloseText\"\n type=\"submit\"\n (click)=\"messageBox.close(true)\"\n >\n </fd-button-bar>\n <fd-button-bar fdkInitialFocus [label]=\"confirmationDialogCancelText\" (click)=\"messageBox.dismiss()\">\n </fd-button-bar>\n </fd-message-box-footer>\n </fd-message-box>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: DialogModule }, { kind: "component", type: i2.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i2.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i2.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i3.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i3.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "component", type: i3.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "component", type: i4.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: WizardBodyComponent, selector: "fdp-wizard-body", inputs: ["responsivePaddings", "navigationButtonLabels", "appendToWizard", "contentHeight", "isFirstStep", "isLastStep", "isNextStepSummary", "displaySummaryStep", "goNextButtonTemplate", "finishButtonTemplate", "customSummaryStepTemplate", "reviewButtonTemplate", "isSummaryStep", "navigationButtons", "unifiedLayout", "isBranchingStep", "isCurrentStepCompleted", "stepsOrderChanged"], outputs: ["statusChange", "goNext", "finish"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: BarModule }, { kind: "ngmodule", type: PlatformButtonModule }, { kind: "component", type: i5.ButtonComponent, selector: "fdp-button", inputs: ["glyphPosition", "label", "glyph", "buttonType", "toggled", "title", "ariaSelected", "ariaDisabled", "ariaExpanded", "ariaControlsId", "ariaPressed", "name", "type", "value"], outputs: ["buttonClicked"] }, { kind: "directive", type: i6.ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MessageBoxModule }, { kind: "component", type: i7.MessageBoxFooterComponent, selector: "fd-message-box-footer" }, { kind: "component", type: i7.MessageBoxBodyComponent, selector: "fd-message-box-body" }, { kind: "component", type: i7.MessageBoxComponent, selector: "fd-message-box", inputs: ["class", "messageBoxRef", "messageBoxConfig"] }, { kind: "directive", type: i7.MessageBoxTemplateDirective, selector: "[fdMessageBoxTemplate]", inputs: ["fdDialogTemplateConfig"] }, { kind: "directive", type: i8.InitialFocusDirective, selector: "[fdkInitialFocus]", inputs: ["fdkInitialFocus", "enabled", "focusLastElement"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
129
129
  }
130
130
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: DialogWizardGeneratorComponent, decorators: [{
131
131
  type: Component,
@@ -142,9 +142,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
142
142
  NgTemplateOutlet,
143
143
  MessageBoxModule,
144
144
  InitialFocusDirective
145
- ], template: "<fd-dialog>\n <fd-dialog-header>\n <h2 fd-title [headerSize]=\"title.size\">{{ title.text }}</h2>\n </fd-dialog-header>\n <fd-dialog-body>\n <fdp-wizard-body\n [navigationButtons]=\"false\"\n [displaySummaryStep]=\"displaySummaryStep\"\n [responsivePaddings]=\"responsivePaddings\"\n [navigationButtonLabels]=\"_navigationButtonLabels\"\n [customSummaryStepTemplate]=\"summaryStepTemplate\"\n [reviewButtonTemplate]=\"reviewButtonTemplate\"\n [hidden]=\"!wizardCreated\"\n [appendToWizard]=\"appendToWizard\"\n [unifiedLayout]=\"unifiedLayout\"\n [contentHeight]=\"contentHeight\"\n (statusChange)=\"stepStatusChanged($event.id, $event.status)\"\n ></fdp-wizard-body>\n <div\n fd-bar\n barDesign=\"floating-footer\"\n [class.fd-bar--responsive-paddings]=\"responsivePaddings\"\n *ngIf=\"wizardCreated\"\n >\n <div fd-bar-right>\n <ng-container *ngIf=\"!isFirstStep\">\n <ng-template #defaultGoBackButtonTemplate>\n <fdp-button\n class=\"fd-bar__element\"\n [fdContentDensity]=\"_navigationButtonLabels.goBack.contentDensity\"\n [buttonType]=\"_navigationButtonLabels.goBack.type\"\n [label]=\"_navigationButtonLabels.goBack.label\"\n (click)=\"goBack()\"\n ></fdp-button>\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"goBackButtonTemplate || defaultGoBackButtonTemplate\"\n [ngTemplateOutletContext]=\"{ goBack: _goBackFn }\"\n ></ng-template>\n </ng-container>\n <ng-container *ngIf=\"!isLastStep\">\n <ng-template #defaultGoNextButtonTemplate>\n <fdp-button\n class=\"fd-bar__element\"\n [fdContentDensity]=\"_navigationButtonLabels.goNext.contentDensity\"\n [buttonType]=\"_navigationButtonLabels.goNext.type\"\n [label]=\"_navigationButtonLabels.goNext.label\"\n (click)=\"goNext()\"\n ></fdp-button>\n </ng-template>\n <ng-template #defaultReviewButtonTemplate>\n <fdp-button\n class=\"fd-bar__element\"\n [fdContentDensity]=\"_navigationButtonLabels.review.contentDensity\"\n [buttonType]=\"_navigationButtonLabels.review.type\"\n [label]=\"_navigationButtonLabels.review.label\"\n (click)=\"goNext()\"\n ></fdp-button>\n </ng-template>\n <ng-template\n [ngIf]=\"\n (isBranchingStep && (!isCurrentStepCompleted || _stepsOrderChanged)) || !isNextStepSummary\n \"\n [ngIfElse]=\"reviewButton\"\n >\n <ng-template\n [ngTemplateOutlet]=\"goNextButtonTemplate || defaultGoNextButtonTemplate\"\n [ngTemplateOutletContext]=\"{ goNext: _goNextFn }\"\n ></ng-template>\n </ng-template>\n <ng-template #reviewButton>\n <ng-template\n [ngTemplateOutlet]=\"reviewButtonTemplate || defaultReviewButtonTemplate\"\n [ngTemplateOutletContext]=\"{ goNext: _goNextFn }\"\n ></ng-template>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"isLastStep\">\n <ng-template #defaultFinishButtonTemplate>\n <fdp-button\n class=\"fd-bar__element\"\n [fdContentDensity]=\"_navigationButtonLabels.finish.contentDensity\"\n [buttonType]=\"_navigationButtonLabels.finish.type\"\n [label]=\"_navigationButtonLabels.finish.label\"\n (click)=\"finish()\"\n ></fdp-button>\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"finishButtonTemplate || defaultFinishButtonTemplate\"\n [ngTemplateOutletContext]=\"{ finish: _finishFn }\"\n ></ng-template>\n </ng-container>\n <ng-container>\n <ng-template #defaultCancelButtonTemplate>\n <fdp-button\n class=\"fd-bar__element\"\n [fdContentDensity]=\"_navigationButtonLabels.cancel.contentDensity\"\n [buttonType]=\"_navigationButtonLabels.cancel.type\"\n [label]=\"_navigationButtonLabels.cancel.label\"\n (click)=\"cancel()\"\n ></fdp-button>\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"cancelButtonTemplate || defaultCancelButtonTemplate\"\n [ngTemplateOutletContext]=\"{ cancel: _cancelFn }\"\n ></ng-template>\n </ng-container>\n </div>\n </div>\n </fd-dialog-body>\n</fd-dialog>\n\n<ng-template let-messageBox let-messageBoxConfig=\"messageBoxConfig\" #defaultConfirmationDialogTemplate>\n <fd-message-box [messageBoxConfig]=\"messageBoxConfig\" [messageBoxRef]=\"messageBox\">\n <fd-message-box-body>\n {{ confirmationDialogText }}\n </fd-message-box-body>\n <fd-message-box-footer>\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"confirmationDialogCloseText\"\n type=\"submit\"\n (click)=\"messageBox.close(true)\"\n >\n </fd-button-bar>\n <fd-button-bar fdkInitialFocus [label]=\"confirmationDialogCancelText\" (click)=\"messageBox.dismiss()\">\n </fd-button-bar>\n </fd-message-box-footer>\n </fd-message-box>\n</ng-template>\n" }]
145
+ ], template: "<fd-dialog>\n <fd-dialog-header>\n <h2 fd-title [headerSize]=\"title.size\">{{ title.text }}</h2>\n </fd-dialog-header>\n <fd-dialog-body>\n <fdp-wizard-body\n [navigationButtons]=\"false\"\n [displaySummaryStep]=\"displaySummaryStep\"\n [responsivePaddings]=\"responsivePaddings\"\n [navigationButtonLabels]=\"_navigationButtonLabels\"\n [customSummaryStepTemplate]=\"summaryStepTemplate\"\n [reviewButtonTemplate]=\"reviewButtonTemplate\"\n [hidden]=\"!wizardCreated\"\n [appendToWizard]=\"appendToWizard\"\n [unifiedLayout]=\"unifiedLayout\"\n [contentHeight]=\"contentHeight\"\n (statusChange)=\"stepStatusChanged($event.id, $event.status)\"\n ></fdp-wizard-body>\n <div\n fd-bar\n barDesign=\"floating-footer\"\n [class.fd-bar--responsive-paddings]=\"responsivePaddings\"\n *ngIf=\"wizardCreated\"\n >\n <div fd-bar-right>\n <ng-container *ngIf=\"!isFirstStep\">\n <ng-template #defaultGoBackButtonTemplate>\n <fdp-button\n class=\"fd-bar__element\"\n [fdContentDensity]=\"_navigationButtonLabels.goBack.contentDensity\"\n [buttonType]=\"_navigationButtonLabels.goBack.type\"\n [label]=\"_navigationButtonLabels.goBack.label\"\n (click)=\"goBack()\"\n ></fdp-button>\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"goBackButtonTemplate || defaultGoBackButtonTemplate\"\n [ngTemplateOutletContext]=\"{ goBack: _goBackFn }\"\n ></ng-template>\n </ng-container>\n <ng-container *ngIf=\"!isLastStep\">\n <ng-template #defaultGoNextButtonTemplate>\n <fdp-button\n class=\"fd-bar__element\"\n [fdContentDensity]=\"_navigationButtonLabels.goNext.contentDensity\"\n [buttonType]=\"_navigationButtonLabels.goNext.type\"\n [label]=\"_navigationButtonLabels.goNext.label\"\n (click)=\"goNext()\"\n ></fdp-button>\n </ng-template>\n <ng-template #defaultReviewButtonTemplate>\n <fdp-button\n class=\"fd-bar__element\"\n [fdContentDensity]=\"_navigationButtonLabels.review.contentDensity\"\n [buttonType]=\"_navigationButtonLabels.review.type\"\n [label]=\"_navigationButtonLabels.review.label\"\n (click)=\"goNext()\"\n ></fdp-button>\n </ng-template>\n <ng-template\n [ngIf]=\"\n (isBranchingStep && (!isCurrentStepCompleted || _stepsOrderChanged)) || !isNextStepSummary\n \"\n [ngIfElse]=\"reviewButton\"\n >\n <ng-template\n [ngTemplateOutlet]=\"goNextButtonTemplate || defaultGoNextButtonTemplate\"\n [ngTemplateOutletContext]=\"{ goNext: _goNextFn }\"\n ></ng-template>\n </ng-template>\n <ng-template #reviewButton>\n <ng-template\n [ngTemplateOutlet]=\"reviewButtonTemplate || defaultReviewButtonTemplate\"\n [ngTemplateOutletContext]=\"{ goNext: _goNextFn }\"\n ></ng-template>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"isLastStep\">\n <ng-template #defaultFinishButtonTemplate>\n <fdp-button\n class=\"fd-bar__element\"\n [fdContentDensity]=\"_navigationButtonLabels.finish.contentDensity\"\n [buttonType]=\"_navigationButtonLabels.finish.type\"\n [label]=\"_navigationButtonLabels.finish.label\"\n (click)=\"finish()\"\n ></fdp-button>\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"finishButtonTemplate || defaultFinishButtonTemplate\"\n [ngTemplateOutletContext]=\"{ finish: _finishFn }\"\n ></ng-template>\n </ng-container>\n <ng-container>\n <ng-template #defaultCancelButtonTemplate>\n <fdp-button\n class=\"fd-bar__element\"\n [fdContentDensity]=\"_navigationButtonLabels.cancel.contentDensity\"\n [buttonType]=\"_navigationButtonLabels.cancel.type\"\n [label]=\"_navigationButtonLabels.cancel.label\"\n (click)=\"cancel()\"\n ></fdp-button>\n </ng-template>\n <ng-template\n [ngTemplateOutlet]=\"cancelButtonTemplate || defaultCancelButtonTemplate\"\n [ngTemplateOutletContext]=\"{ cancel: _cancelFn }\"\n ></ng-template>\n </ng-container>\n </div>\n </div>\n </fd-dialog-body>\n</fd-dialog>\n\n<ng-template\n [fdMessageBoxTemplate]\n let-messageBox\n let-messageBoxConfig=\"messageBoxConfig\"\n #defaultConfirmationDialogTemplate\n>\n <fd-message-box [messageBoxConfig]=\"messageBoxConfig\" [messageBoxRef]=\"messageBox\">\n <fd-message-box-body>\n {{ confirmationDialogText }}\n </fd-message-box-body>\n <fd-message-box-footer>\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"confirmationDialogCloseText\"\n type=\"submit\"\n (click)=\"messageBox.close(true)\"\n >\n </fd-button-bar>\n <fd-button-bar fdkInitialFocus [label]=\"confirmationDialogCancelText\" (click)=\"messageBox.dismiss()\">\n </fd-button-bar>\n </fd-message-box-footer>\n </fd-message-box>\n</ng-template>\n" }]
146
146
  }], ctorParameters: function () { return [{ type: i1.WizardGeneratorService }, { type: i0.ChangeDetectorRef }, { type: i2.DialogRef }]; }, propDecorators: { defaultConfirmationDialogTemplate: [{
147
147
  type: ViewChild,
148
148
  args: ['defaultConfirmationDialogTemplate']
149
149
  }] } });
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXdpemFyZC1nZW5lcmF0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL3dpemFyZC1nZW5lcmF0b3IvY29tcG9uZW50cy9kaWFsb2ctd2l6YXJkLWdlbmVyYXRvci9kaWFsb2ctd2l6YXJkLWdlbmVyYXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvd2l6YXJkLWdlbmVyYXRvci9jb21wb25lbnRzL2RpYWxvZy13aXphcmQtZ2VuZXJhdG9yL2RpYWxvZy13aXphcmQtZ2VuZXJhdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsU0FBUyxFQUNULGlCQUFpQixFQUNqQixNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBR2xFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVB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QUVELE1BQU0sWUFBWSxHQUFHLE1BQU0sSUFBSSxDQUFDLHVCQUF1QixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pGLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQzs4R0FuSlEsOEJBQThCO2tHQUE5Qiw4QkFBOEIsMEVBakI1QixDQUFDLHNCQUFzQixFQUFFLG9CQUFvQixDQUFDLHlNQ2pDN0QsNC9NQWtJQSwyQ0Q5RlEsWUFBWSxzM0JBSVosbUJBQW1CLDhlQUNuQixJQUFJLDRGQUNKLFNBQVMsOEJBQ1Qsb0JBQW9CLDJ5QkFFcEIsZ0JBQWdCLG1KQUNoQixnQkFBZ0I7OzJGQUlYLDhCQUE4QjtrQkF0QjFDLFNBQVM7K0JBQ0ksNkJBQTZCLGlCQUV4QixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsc0JBQXNCLEVBQUUsb0JBQW9CLENBQUMsY0FDN0MsSUFBSSxXQUNQO3dCQUNMLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixJQUFJO3dCQUNKLFNBQVM7d0JBQ1Qsb0JBQW9CO3dCQUNwQix1QkFBdUI7d0JBQ3ZCLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUNoQixxQkFBcUI7cUJBQ3hCO3FLQUkrQyxpQ0FBaUM7c0JBQWhGLFNBQVM7dUJBQUMsbUNBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1HZW5lcmF0b3JTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9mb3JtJztcbmltcG9ydCB7IGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBEaWFsb2dNb2R1bGUsIERpYWxvZ1JlZiB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kaWFsb2cnO1xuaW1wb3J0IHsgQmFzZVdpemFyZEdlbmVyYXRvciB9IGZyb20gJy4uLy4uL2Jhc2Utd2l6YXJkLWdlbmVyYXRvcic7XG5pbXBvcnQgeyBXaXphcmREaWFsb2dEYXRhIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy93aXphcmQtZGlhbG9nLWRhdGEuaW50ZXJmYWNlJztcbmltcG9ydCB7IFdpemFyZFRpdGxlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy93aXphcmQtdGl0bGUuaW50ZXJmYWNlJztcbmltcG9ydCB7IFdpemFyZEdlbmVyYXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi93aXphcmQtZ2VuZXJhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWVzc2FnZUJveE1vZHVsZSwgTWVzc2FnZUJveFNlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvbWVzc2FnZS1ib3gnO1xuaW1wb3J0IHsgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBXaXphcmRCb2R5Q29tcG9uZW50IH0gZnJvbSAnLi4vd2l6YXJkLWJvZHkvd2l6YXJkLWJvZHkuY29tcG9uZW50JztcbmltcG9ydCB7IENka1Njcm9sbGFibGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBUaXRsZUNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS90aXRsZSc7XG5pbXBvcnQgeyBTY3JvbGxiYXJEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvc2Nyb2xsYmFyJztcbmltcG9ydCB7IEJhck1vZHVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9iYXInO1xuaW1wb3J0IHsgUGxhdGZvcm1CdXR0b25Nb2R1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL2J1dHRvbic7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eURpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9jb250ZW50LWRlbnNpdHknO1xuaW1wb3J0IHsgSW5pdGlhbEZvY3VzRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC1kaWFsb2ctd2l6YXJkLWdlbmVyYXRvcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RpYWxvZy13aXphcmQtZ2VuZXJhdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1dpemFyZEdlbmVyYXRvclNlcnZpY2UsIEZvcm1HZW5lcmF0b3JTZXJ2aWNlXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgRGlhbG9nTW9kdWxlLFxuICAgICAgICBUaXRsZUNvbXBvbmVudCxcbiAgICAgICAgQ2RrU2Nyb2xsYWJsZSxcbiAgICAgICAgU2Nyb2xsYmFyRGlyZWN0aXZlLFxuICAgICAgICBXaXphcmRCb2R5Q29tcG9uZW50LFxuICAgICAgICBOZ0lmLFxuICAgICAgICBCYXJNb2R1bGUsXG4gICAgICAgIFBsYXRmb3JtQnV0dG9uTW9kdWxlLFxuICAgICAgICBDb250ZW50RGVuc2l0eURpcmVjdGl2ZSxcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgTWVzc2FnZUJveE1vZHVsZSxcbiAgICAgICAgSW5pdGlhbEZvY3VzRGlyZWN0aXZlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBEaWFsb2dXaXphcmRHZW5lcmF0b3JDb21wb25lbnQgZXh0ZW5kcyBCYXNlV2l6YXJkR2VuZXJhdG9yIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ2RlZmF1bHRDb25maXJtYXRpb25EaWFsb2dUZW1wbGF0ZScpIGRlZmF1bHRDb25maXJtYXRpb25EaWFsb2dUZW1wbGF0ZTogVGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFdpemFyZHMgZGlhbG9nIHRpdGxlIGNvbmZpZ3VyYXRpb24uXG4gICAgICovXG4gICAgdGl0bGU6IFdpemFyZFRpdGxlO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENvbmZpcm1hdGlvbiBtZXNzYWdlIHdoZW4gd2l6YXJkIGRpYWxvZyBjbG9zZSBidXR0b24gaGFzIGJlZW4gY2xpY2tlZC5cbiAgICAgKi9cbiAgICBjb25maXJtYXRpb25EaWFsb2dUZXh0ID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkaXNjYXJkIHlvdXIgcHJvZ3Jlc3M/JztcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ29uZmlybSBidXR0b24gdGV4dCBmb3IgY2xvc2UgY29uZmlybWF0aW9uIGRpYWxvZy5cbiAgICAgKi9cbiAgICBjb25maXJtYXRpb25EaWFsb2dDbG9zZVRleHQgPSAnQ29uZmlybSc7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENhbmNlbCBidXR0b24gdGV4dCBmb3IgY2xvc2UgY29uZmlybWF0aW9uIGRpYWxvZy5cbiAgICAgKi9cbiAgICBjb25maXJtYXRpb25EaWFsb2dDYW5jZWxUZXh0ID0gJ0NhbmNlbCc7XG5cbiAgICAvKipcbiAgICAgKiBVc2VyLWRlZmluZWQgdGVtcGxhdGUgZm9yIFwiR28gTmV4dFwiIGJ1dHRvbi5cbiAgICAgKi9cbiAgICBnb05leHRCdXR0b25UZW1wbGF0ZT86IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKlxuICAgICAqIFVzZXItZGVmaW5lZCB0ZW1wbGF0ZSBmb3IgXCJHbyBCYWNrXCIgYnV0dG9uLlxuICAgICAqL1xuICAgIGdvQmFja0J1dHRvblRlbXBsYXRlPzogVGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqXG4gICAgICogVXNlci1kZWZpbmVkIHRlbXBsYXRlIGZvciBcIkZpbmlzaFwiIGJ1dHRvbi5cbiAgICAgKi9cbiAgICBmaW5pc2hCdXR0b25UZW1wbGF0ZT86IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKlxuICAgICAqIFVzZXItZGVmaW5lZCB0ZW1wbGF0ZSBmb3IgXCJDYW5jZWxcIiBidXR0b24uXG4gICAgICovXG4gICAgY2FuY2VsQnV0dG9uVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiBVc2VyLWRlZmluZWQgdGVtcGxhdGUgZm9yIGNhbmNlbGxhdGlvbiBjb25maXJtYXRpb24gZGlhbG9nLlxuICAgICAqL1xuICAgIGNvbmZpcm1hdGlvbkRpYWxvZ1RlbXBsYXRlPzogVGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqXG4gICAgICogVXNlci1kZWZpbmVkIHRlbXBsYXRlIGZvciBzdW1tYXJ5IHN0ZXAuXG4gICAgICovXG4gICAgc3VtbWFyeVN0ZXBUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKiBVc2VyLWRlZmluZWQgdGVtcGxhdGUgZm9yIFwiUmV2aWV3XCIgYnV0dG9uICovXG4gICAgcmV2aWV3QnV0dG9uVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX21lc3NhZ2VCb3hTZXJ2aWNlID0gaW5qZWN0KE1lc3NhZ2VCb3hTZXJ2aWNlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIF93aXphcmRHZW5lcmF0b3JTZXJ2aWNlOiBXaXphcmRHZW5lcmF0b3JTZXJ2aWNlLFxuICAgICAgICBfY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIF9kaWFsb2dSZWY6IERpYWxvZ1JlZjxXaXphcmREaWFsb2dEYXRhPlxuICAgICkge1xuICAgICAgICBzdXBlcihfd2l6YXJkR2VuZXJhdG9yU2VydmljZSwgX2NkKTtcblxuICAgICAgICB0aGlzLml0ZW1zID0gdGhpcy5fZGlhbG9nUmVmLmRhdGEuaXRlbXM7XG4gICAgICAgIHRoaXMudGl0bGUgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS50aXRsZTtcbiAgICAgICAgdGhpcy5hcHBlbmRUb1dpemFyZCA9IHRoaXMuX2RpYWxvZ1JlZi5kYXRhLmFwcGVuZFRvV2l6YXJkO1xuICAgICAgICB0aGlzLm5hdmlnYXRpb25CdXR0b25MYWJlbHMgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS5uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzID8/IHt9O1xuICAgICAgICB0aGlzLmNvbnRlbnRIZWlnaHQgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS5jb250ZW50SGVpZ2h0O1xuICAgICAgICB0aGlzLnJlc3BvbnNpdmVQYWRkaW5ncyA9IHRoaXMuX2RpYWxvZ1JlZi5kYXRhLnJlc3BvbnNpdmVQYWRkaW5ncztcbiAgICAgICAgdGhpcy5nb05leHRCdXR0b25UZW1wbGF0ZSA9IHRoaXMuX2RpYWxvZ1JlZi5kYXRhLmdvTmV4dEJ1dHRvblRlbXBsYXRlO1xuICAgICAgICB0aGlzLmdvQmFja0J1dHRvblRlbXBsYXRlID0gdGhpcy5fZGlhbG9nUmVmLmRhdGEuZ29CYWNrQnV0dG9uVGVtcGxhdGU7XG4gICAgICAgIHRoaXMuZmluaXNoQnV0dG9uVGVtcGxhdGUgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS5maW5pc2hCdXR0b25UZW1wbGF0ZTtcbiAgICAgICAgdGhpcy5jYW5jZWxCdXR0b25UZW1wbGF0ZSA9IHRoaXMuX2RpYWxvZ1JlZi5kYXRhLmNhbmNlbEJ1dHRvblRlbXBsYXRlO1xuICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbkRpYWxvZ1RlbXBsYXRlID0gdGhpcy5fZGlhbG9nUmVmLmRhdGEuY29uZmlybWF0aW9uRGlhbG9nVGVtcGxhdGU7XG4gICAgICAgIHRoaXMuZGlzcGxheVN1bW1hcnlTdGVwID0gdGhpcy5fZGlhbG9nUmVmLmRhdGEuZGlzcGxheVN1bW1hcnlTdGVwIHx8IGZhbHNlO1xuICAgICAgICB0aGlzLnN1bW1hcnlTdGVwVGVtcGxhdGUgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS5zdW1tYXJ5U3RlcFRlbXBsYXRlO1xuICAgICAgICB0aGlzLnJldmlld0J1dHRvblRlbXBsYXRlID0gdGhpcy5fZGlhbG9nUmVmLmRhdGEucmV2aWV3QnV0dG9uVGVtcGxhdGU7XG5cbiAgICAgICAgaWYgKHRoaXMuX2RpYWxvZ1JlZi5kYXRhLnVuaWZpZWRMYXlvdXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy51bmlmaWVkTGF5b3V0ID0gdGhpcy5fZGlhbG9nUmVmLmRhdGEudW5pZmllZExheW91dDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9kaWFsb2dSZWYuZGF0YS5uYXZpZ2F0aW9uQnV0dG9ucyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLm5hdmlnYXRpb25CdXR0b25zID0gdGhpcy5fZGlhbG9nUmVmLmRhdGEubmF2aWdhdGlvbkJ1dHRvbnM7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5fZGlhbG9nUmVmLmRhdGEuY29uZmlybWF0aW9uRGlhbG9nVGV4dCkge1xuICAgICAgICAgICAgdGhpcy5jb25maXJtYXRpb25EaWFsb2dUZXh0ID0gdGhpcy5fZGlhbG9nUmVmLmRhdGEuY29uZmlybWF0aW9uRGlhbG9nVGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9kaWFsb2dSZWYuZGF0YS5jb25maXJtYXRpb25EaWFsb2dDYW5jZWxUZXh0KSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbkRpYWxvZ0NhbmNlbFRleHQgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS5jb25maXJtYXRpb25EaWFsb2dDYW5jZWxUZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX2RpYWxvZ1JlZi5kYXRhLmNvbmZpcm1hdGlvbkRpYWxvZ0Nsb3NlVGV4dCkge1xuICAgICAgICAgICAgdGhpcy5jb25maXJtYXRpb25EaWFsb2dDbG9zZVRleHQgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS5jb25maXJtYXRpb25EaWFsb2dDbG9zZVRleHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ2FuY2VscyBXaXphcmQgcHJvZ3Jlc3MgYW5kIGNsb3NlcyB0aGUgZGlhbG9nLlxuICAgICAqL1xuICAgIGNhbmNlbCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2UuaXNTdGVwc1VudG91Y2hlZCgpKSB7XG4gICAgICAgICAgICB0aGlzLl9kaWFsb2dSZWYuZGlzbWlzcygpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0ZW1wbGF0ZSA9IHRoaXMuY29uZmlybWF0aW9uRGlhbG9nVGVtcGxhdGUgfHwgdGhpcy5kZWZhdWx0Q29uZmlybWF0aW9uRGlhbG9nVGVtcGxhdGU7XG5cbiAgICAgICAgY29uc3QgbWVzc2FnZUJveFJlZiA9IHRoaXMuX21lc3NhZ2VCb3hTZXJ2aWNlLm9wZW4odGVtcGxhdGUsIHsgcmVzcG9uc2l2ZVBhZGRpbmc6IHRydWUgfSk7XG5cbiAgICAgICAgbWVzc2FnZUJveFJlZi5hZnRlckNsb3NlZFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKChyZXN1bHQpID0+IHJlc3VsdCksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kaWFsb2dSZWYuZGlzbWlzcygpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENvbXBsZXRlcyBXaXphcmQgcHJvY2VzcywgZW1pdHMgV2l6YXJkIHJlc3VsdCBhbmQgY2xvc2VzIHRoZSBkaWFsb2cuXG4gICAgICovXG4gICAgYXN5bmMgZmluaXNoKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy5pc1N1bW1hcnlTdGVwKSB7XG4gICAgICAgICAgICBjb25zdCB3aXphcmRSZXN1bHQgPSBhd2FpdCB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLmdldFdpemFyZEZvcm1WYWx1ZSh0cnVlKTtcbiAgICAgICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5jbG9zZSh3aXphcmRSZXN1bHQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY3VycmVudFN0ZXBJZCA9IHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2UuZ2V0Q3VycmVudFN0ZXBJZCgpO1xuICAgICAgICB0aGlzLnN1Ym1pdFN0ZXBGb3JtcyhjdXJyZW50U3RlcElkKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZShhc3luYyAocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAmJiBPYmplY3QudmFsdWVzKHJlc3VsdCkuc29tZSgocikgPT4gIXIuc3VjY2VzcykpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IHdpemFyZFJlc3VsdCA9IGF3YWl0IHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2UuZ2V0V2l6YXJkRm9ybVZhbHVlKHRydWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5jbG9zZSh3aXphcmRSZXN1bHQpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIF9nb0JhY2tGbjogKCkgPT4gdm9pZCA9ICgpID0+IHRoaXMuZ29CYWNrKCk7XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIF9nb05leHRGbjogKCkgPT4gUHJvbWlzZTx2b2lkPiA9ICgpID0+IHRoaXMuZ29OZXh0KCk7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgX2ZpbmlzaEZuOiAoKSA9PiBQcm9taXNlPHZvaWQ+ID0gKCkgPT4gdGhpcy5maW5pc2goKTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBfY2FuY2VsRm46ICgpID0+IHZvaWQgPSAoKSA9PiB0aGlzLmNhbmNlbCgpO1xufVxuIiwiPGZkLWRpYWxvZz5cbiAgICA8ZmQtZGlhbG9nLWhlYWRlcj5cbiAgICAgICAgPGgyIGZkLXRpdGxlIFtoZWFkZXJTaXplXT1cInRpdGxlLnNpemVcIj57eyB0aXRsZS50ZXh0IH19PC9oMj5cbiAgICA8L2ZkLWRpYWxvZy1oZWFkZXI+XG4gICAgPGZkLWRpYWxvZy1ib2R5PlxuICAgICAgICA8ZmRwLXdpemFyZC1ib2R5XG4gICAgICAgICAgICBbbmF2aWdhdGlvbkJ1dHRvbnNdPVwiZmFsc2VcIlxuICAgICAgICAgICAgW2Rpc3BsYXlTdW1tYXJ5U3RlcF09XCJkaXNwbGF5U3VtbWFyeVN0ZXBcIlxuICAgICAgICAgICAgW3Jlc3BvbnNpdmVQYWRkaW5nc109XCJyZXNwb25zaXZlUGFkZGluZ3NcIlxuICAgICAgICAgICAgW25hdmlnYXRpb25CdXR0b25MYWJlbHNdPVwiX25hdmlnYXRpb25CdXR0b25MYWJlbHNcIlxuICAgICAgICAgICAgW2N1c3RvbVN1bW1hcnlTdGVwVGVtcGxhdGVdPVwic3VtbWFyeVN0ZXBUZW1wbGF0ZVwiXG4gICAgICAgICAgICBbcmV2aWV3QnV0dG9uVGVtcGxhdGVdPVwicmV2aWV3QnV0dG9uVGVtcGxhdGVcIlxuICAgICAgICAgICAgW2hpZGRlbl09XCIhd2l6YXJkQ3JlYXRlZFwiXG4gICAgICAgICAgICBbYXBwZW5kVG9XaXphcmRdPVwiYXBwZW5kVG9XaXphcmRcIlxuICAgICAgICAgICAgW3VuaWZpZWRMYXlvdXRdPVwidW5pZmllZExheW91dFwiXG4gICAgICAgICAgICBbY29udGVudEhlaWdodF09XCJjb250ZW50SGVpZ2h0XCJcbiAgICAgICAgICAgIChzdGF0dXNDaGFuZ2UpPVwic3RlcFN0YXR1c0NoYW5nZWQoJGV2ZW50LmlkLCAkZXZlbnQuc3RhdHVzKVwiXG4gICAgICAgID48L2ZkcC13aXphcmQtYm9keT5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgZmQtYmFyXG4gICAgICAgICAgICBiYXJEZXNpZ249XCJmbG9hdGluZy1mb290ZXJcIlxuICAgICAgICAgICAgW2NsYXNzLmZkLWJhci0tcmVzcG9uc2l2ZS1wYWRkaW5nc109XCJyZXNwb25zaXZlUGFkZGluZ3NcIlxuICAgICAgICAgICAgKm5nSWY9XCJ3aXphcmRDcmVhdGVkXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBmZC1iYXItcmlnaHQ+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0ZpcnN0U3RlcFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRHb0JhY2tCdXR0b25UZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZHAtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1iYXJfX2VsZW1lbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmZENvbnRlbnREZW5zaXR5XT1cIl9uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzLmdvQmFjay5jb250ZW50RGVuc2l0eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2J1dHRvblR5cGVdPVwiX25hdmlnYXRpb25CdXR0b25MYWJlbHMuZ29CYWNrLnR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJfbmF2aWdhdGlvbkJ1dHRvbkxhYmVscy5nb0JhY2subGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJnb0JhY2soKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9mZHAtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImdvQmFja0J1dHRvblRlbXBsYXRlIHx8IGRlZmF1bHRHb0JhY2tCdXR0b25UZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBnb0JhY2s6IF9nb0JhY2tGbiB9XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0xhc3RTdGVwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEdvTmV4dEJ1dHRvblRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkcC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkLWJhcl9fZWxlbWVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZkQ29udGVudERlbnNpdHldPVwiX25hdmlnYXRpb25CdXR0b25MYWJlbHMuZ29OZXh0LmNvbnRlbnREZW5zaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYnV0dG9uVHlwZV09XCJfbmF2aWdhdGlvbkJ1dHRvbkxhYmVscy5nb05leHQudHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIl9uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzLmdvTmV4dC5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImdvTmV4dCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2ZkcC1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFJldmlld0J1dHRvblRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkcC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkLWJhcl9fZWxlbWVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZkQ29udGVudERlbnNpdHldPVwiX25hdmlnYXRpb25CdXR0b25MYWJlbHMucmV2aWV3LmNvbnRlbnREZW5zaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYnV0dG9uVHlwZV09XCJfbmF2aWdhdGlvbkJ1dHRvbkxhYmVscy5yZXZpZXcudHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIl9uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzLnJldmlldy5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImdvTmV4dCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2ZkcC1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgW25nSWZdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlzQnJhbmNoaW5nU3RlcCAmJiAoIWlzQ3VycmVudFN0ZXBDb21wbGV0ZWQgfHwgX3N0ZXBzT3JkZXJDaGFuZ2VkKSkgfHwgIWlzTmV4dFN0ZXBTdW1tYXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nSWZFbHNlXT1cInJldmlld0J1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImdvTmV4dEJ1dHRvblRlbXBsYXRlIHx8IGRlZmF1bHRHb05leHRCdXR0b25UZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgZ29OZXh0OiBfZ29OZXh0Rm4gfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNyZXZpZXdCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJyZXZpZXdCdXR0b25UZW1wbGF0ZSB8fCBkZWZhdWx0UmV2aWV3QnV0dG9uVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGdvTmV4dDogX2dvTmV4dEZuIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTGFzdFN0ZXBcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0RmluaXNoQnV0dG9uVGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmRwLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtYmFyX19lbGVtZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmRDb250ZW50RGVuc2l0eV09XCJfbmF2aWdhdGlvbkJ1dHRvbkxhYmVscy5maW5pc2guY29udGVudERlbnNpdHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtidXR0b25UeXBlXT1cIl9uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzLmZpbmlzaC50eXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiX25hdmlnYXRpb25CdXR0b25MYWJlbHMuZmluaXNoLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZmluaXNoKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvZmRwLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJmaW5pc2hCdXR0b25UZW1wbGF0ZSB8fCBkZWZhdWx0RmluaXNoQnV0dG9uVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgZmluaXNoOiBfZmluaXNoRm4gfVwiXG4gICAgICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdENhbmNlbEJ1dHRvblRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkcC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkLWJhcl9fZWxlbWVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZkQ29udGVudERlbnNpdHldPVwiX25hdmlnYXRpb25CdXR0b25MYWJlbHMuY2FuY2VsLmNvbnRlbnREZW5zaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYnV0dG9uVHlwZV09XCJfbmF2aWdhdGlvbkJ1dHRvbkxhYmVscy5jYW5jZWwudHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIl9uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzLmNhbmNlbC5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNhbmNlbCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2ZkcC1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2FuY2VsQnV0dG9uVGVtcGxhdGUgfHwgZGVmYXVsdENhbmNlbEJ1dHRvblRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGNhbmNlbDogX2NhbmNlbEZuIH1cIlxuICAgICAgICAgICAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2ZkLWRpYWxvZy1ib2R5PlxuPC9mZC1kaWFsb2c+XG5cbjxuZy10ZW1wbGF0ZSBsZXQtbWVzc2FnZUJveCBsZXQtbWVzc2FnZUJveENvbmZpZz1cIm1lc3NhZ2VCb3hDb25maWdcIiAjZGVmYXVsdENvbmZpcm1hdGlvbkRpYWxvZ1RlbXBsYXRlPlxuICAgIDxmZC1tZXNzYWdlLWJveCBbbWVzc2FnZUJveENvbmZpZ109XCJtZXNzYWdlQm94Q29uZmlnXCIgW21lc3NhZ2VCb3hSZWZdPVwibWVzc2FnZUJveFwiPlxuICAgICAgICA8ZmQtbWVzc2FnZS1ib3gtYm9keT5cbiAgICAgICAgICAgIHt7IGNvbmZpcm1hdGlvbkRpYWxvZ1RleHQgfX1cbiAgICAgICAgPC9mZC1tZXNzYWdlLWJveC1ib2R5PlxuICAgICAgICA8ZmQtbWVzc2FnZS1ib3gtZm9vdGVyPlxuICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXJcbiAgICAgICAgICAgICAgICBmZFR5cGU9XCJlbXBoYXNpemVkXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiY29uZmlybWF0aW9uRGlhbG9nQ2xvc2VUZXh0XCJcbiAgICAgICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwibWVzc2FnZUJveC5jbG9zZSh0cnVlKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L2ZkLWJ1dHRvbi1iYXI+XG4gICAgICAgICAgICA8ZmQtYnV0dG9uLWJhciBmZGtJbml0aWFsRm9jdXMgW2xhYmVsXT1cImNvbmZpcm1hdGlvbkRpYWxvZ0NhbmNlbFRleHRcIiAoY2xpY2spPVwibWVzc2FnZUJveC5kaXNtaXNzKClcIj5cbiAgICAgICAgICAgIDwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgPC9mZC1tZXNzYWdlLWJveC1mb290ZXI+XG4gICAgPC9mZC1tZXNzYWdlLWJveD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXdpemFyZC1nZW5lcmF0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL3dpemFyZC1nZW5lcmF0b3IvY29tcG9uZW50cy9kaWFsb2ctd2l6YXJkLWdlbmVyYXRvci9kaWFsb2ctd2l6YXJkLWdlbmVyYXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvd2l6YXJkLWdlbmVyYXRvci9jb21wb25lbnRzL2RpYWxvZy13aXphcmQtZ2VuZXJhdG9yL2RpYWxvZy13aXphcmQtZ2VuZXJhdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsU0FBUyxFQUNULGlCQUFpQixFQUNqQixNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBR2xFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVB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QUVELE1BQU0sWUFBWSxHQUFHLE1BQU0sSUFBSSxDQUFDLHVCQUF1QixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pGLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQzs4R0FuSlEsOEJBQThCO2tHQUE5Qiw4QkFBOEIsMEVBakI1QixDQUFDLHNCQUFzQixFQUFFLG9CQUFvQixDQUFDLHlNQ2pDN0QseWlOQXVJQSwyQ0RuR1EsWUFBWSxzM0JBSVosbUJBQW1CLDhlQUNuQixJQUFJLDRGQUNKLFNBQVMsOEJBQ1Qsb0JBQW9CLDJ5QkFFcEIsZ0JBQWdCLG1KQUNoQixnQkFBZ0I7OzJGQUlYLDhCQUE4QjtrQkF0QjFDLFNBQVM7K0JBQ0ksNkJBQTZCLGlCQUV4QixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsc0JBQXNCLEVBQUUsb0JBQW9CLENBQUMsY0FDN0MsSUFBSSxXQUNQO3dCQUNMLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixJQUFJO3dCQUNKLFNBQVM7d0JBQ1Qsb0JBQW9CO3dCQUNwQix1QkFBdUI7d0JBQ3ZCLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUNoQixxQkFBcUI7cUJBQ3hCO3FLQUkrQyxpQ0FBaUM7c0JBQWhGLFNBQVM7dUJBQUMsbUNBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1HZW5lcmF0b3JTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9mb3JtJztcbmltcG9ydCB7IGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBEaWFsb2dNb2R1bGUsIERpYWxvZ1JlZiB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kaWFsb2cnO1xuaW1wb3J0IHsgQmFzZVdpemFyZEdlbmVyYXRvciB9IGZyb20gJy4uLy4uL2Jhc2Utd2l6YXJkLWdlbmVyYXRvcic7XG5pbXBvcnQgeyBXaXphcmREaWFsb2dEYXRhIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy93aXphcmQtZGlhbG9nLWRhdGEuaW50ZXJmYWNlJztcbmltcG9ydCB7IFdpemFyZFRpdGxlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy93aXphcmQtdGl0bGUuaW50ZXJmYWNlJztcbmltcG9ydCB7IFdpemFyZEdlbmVyYXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi93aXphcmQtZ2VuZXJhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWVzc2FnZUJveE1vZHVsZSwgTWVzc2FnZUJveFNlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvbWVzc2FnZS1ib3gnO1xuaW1wb3J0IHsgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBXaXphcmRCb2R5Q29tcG9uZW50IH0gZnJvbSAnLi4vd2l6YXJkLWJvZHkvd2l6YXJkLWJvZHkuY29tcG9uZW50JztcbmltcG9ydCB7IENka1Njcm9sbGFibGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBUaXRsZUNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS90aXRsZSc7XG5pbXBvcnQgeyBTY3JvbGxiYXJEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvc2Nyb2xsYmFyJztcbmltcG9ydCB7IEJhck1vZHVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9iYXInO1xuaW1wb3J0IHsgUGxhdGZvcm1CdXR0b25Nb2R1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL2J1dHRvbic7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eURpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9jb250ZW50LWRlbnNpdHknO1xuaW1wb3J0IHsgSW5pdGlhbEZvY3VzRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC1kaWFsb2ctd2l6YXJkLWdlbmVyYXRvcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RpYWxvZy13aXphcmQtZ2VuZXJhdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1dpemFyZEdlbmVyYXRvclNlcnZpY2UsIEZvcm1HZW5lcmF0b3JTZXJ2aWNlXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgRGlhbG9nTW9kdWxlLFxuICAgICAgICBUaXRsZUNvbXBvbmVudCxcbiAgICAgICAgQ2RrU2Nyb2xsYWJsZSxcbiAgICAgICAgU2Nyb2xsYmFyRGlyZWN0aXZlLFxuICAgICAgICBXaXphcmRCb2R5Q29tcG9uZW50LFxuICAgICAgICBOZ0lmLFxuICAgICAgICBCYXJNb2R1bGUsXG4gICAgICAgIFBsYXRmb3JtQnV0dG9uTW9kdWxlLFxuICAgICAgICBDb250ZW50RGVuc2l0eURpcmVjdGl2ZSxcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgTWVzc2FnZUJveE1vZHVsZSxcbiAgICAgICAgSW5pdGlhbEZvY3VzRGlyZWN0aXZlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBEaWFsb2dXaXphcmRHZW5lcmF0b3JDb21wb25lbnQgZXh0ZW5kcyBCYXNlV2l6YXJkR2VuZXJhdG9yIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoJ2RlZmF1bHRDb25maXJtYXRpb25EaWFsb2dUZW1wbGF0ZScpIGRlZmF1bHRDb25maXJtYXRpb25EaWFsb2dUZW1wbGF0ZTogVGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFdpemFyZHMgZGlhbG9nIHRpdGxlIGNvbmZpZ3VyYXRpb24uXG4gICAgICovXG4gICAgdGl0bGU6IFdpemFyZFRpdGxlO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENvbmZpcm1hdGlvbiBtZXNzYWdlIHdoZW4gd2l6YXJkIGRpYWxvZyBjbG9zZSBidXR0b24gaGFzIGJlZW4gY2xpY2tlZC5cbiAgICAgKi9cbiAgICBjb25maXJtYXRpb25EaWFsb2dUZXh0ID0gJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkaXNjYXJkIHlvdXIgcHJvZ3Jlc3M/JztcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ29uZmlybSBidXR0b24gdGV4dCBmb3IgY2xvc2UgY29uZmlybWF0aW9uIGRpYWxvZy5cbiAgICAgKi9cbiAgICBjb25maXJtYXRpb25EaWFsb2dDbG9zZVRleHQgPSAnQ29uZmlybSc7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENhbmNlbCBidXR0b24gdGV4dCBmb3IgY2xvc2UgY29uZmlybWF0aW9uIGRpYWxvZy5cbiAgICAgKi9cbiAgICBjb25maXJtYXRpb25EaWFsb2dDYW5jZWxUZXh0ID0gJ0NhbmNlbCc7XG5cbiAgICAvKipcbiAgICAgKiBVc2VyLWRlZmluZWQgdGVtcGxhdGUgZm9yIFwiR28gTmV4dFwiIGJ1dHRvbi5cbiAgICAgKi9cbiAgICBnb05leHRCdXR0b25UZW1wbGF0ZT86IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKlxuICAgICAqIFVzZXItZGVmaW5lZCB0ZW1wbGF0ZSBmb3IgXCJHbyBCYWNrXCIgYnV0dG9uLlxuICAgICAqL1xuICAgIGdvQmFja0J1dHRvblRlbXBsYXRlPzogVGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqXG4gICAgICogVXNlci1kZWZpbmVkIHRlbXBsYXRlIGZvciBcIkZpbmlzaFwiIGJ1dHRvbi5cbiAgICAgKi9cbiAgICBmaW5pc2hCdXR0b25UZW1wbGF0ZT86IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKlxuICAgICAqIFVzZXItZGVmaW5lZCB0ZW1wbGF0ZSBmb3IgXCJDYW5jZWxcIiBidXR0b24uXG4gICAgICovXG4gICAgY2FuY2VsQnV0dG9uVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiBVc2VyLWRlZmluZWQgdGVtcGxhdGUgZm9yIGNhbmNlbGxhdGlvbiBjb25maXJtYXRpb24gZGlhbG9nLlxuICAgICAqL1xuICAgIGNvbmZpcm1hdGlvbkRpYWxvZ1RlbXBsYXRlPzogVGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqXG4gICAgICogVXNlci1kZWZpbmVkIHRlbXBsYXRlIGZvciBzdW1tYXJ5IHN0ZXAuXG4gICAgICovXG4gICAgc3VtbWFyeVN0ZXBUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKiBVc2VyLWRlZmluZWQgdGVtcGxhdGUgZm9yIFwiUmV2aWV3XCIgYnV0dG9uICovXG4gICAgcmV2aWV3QnV0dG9uVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX21lc3NhZ2VCb3hTZXJ2aWNlID0gaW5qZWN0KE1lc3NhZ2VCb3hTZXJ2aWNlKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIF93aXphcmRHZW5lcmF0b3JTZXJ2aWNlOiBXaXphcmRHZW5lcmF0b3JTZXJ2aWNlLFxuICAgICAgICBfY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIF9kaWFsb2dSZWY6IERpYWxvZ1JlZjxXaXphcmREaWFsb2dEYXRhPlxuICAgICkge1xuICAgICAgICBzdXBlcihfd2l6YXJkR2VuZXJhdG9yU2VydmljZSwgX2NkKTtcblxuICAgICAgICB0aGlzLml0ZW1zID0gdGhpcy5fZGlhbG9nUmVmLmRhdGEuaXRlbXM7XG4gICAgICAgIHRoaXMudGl0bGUgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS50aXRsZTtcbiAgICAgICAgdGhpcy5hcHBlbmRUb1dpemFyZCA9IHRoaXMuX2RpYWxvZ1JlZi5kYXRhLmFwcGVuZFRvV2l6YXJkO1xuICAgICAgICB0aGlzLm5hdmlnYXRpb25CdXR0b25MYWJlbHMgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS5uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzID8/IHt9O1xuICAgICAgICB0aGlzLmNvbnRlbnRIZWlnaHQgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS5jb250ZW50SGVpZ2h0O1xuICAgICAgICB0aGlzLnJlc3BvbnNpdmVQYWRkaW5ncyA9IHRoaXMuX2RpYWxvZ1JlZi5kYXRhLnJlc3BvbnNpdmVQYWRkaW5ncztcbiAgICAgICAgdGhpcy5nb05leHRCdXR0b25UZW1wbGF0ZSA9IHRoaXMuX2RpYWxvZ1JlZi5kYXRhLmdvTmV4dEJ1dHRvblRlbXBsYXRlO1xuICAgICAgICB0aGlzLmdvQmFja0J1dHRvblRlbXBsYXRlID0gdGhpcy5fZGlhbG9nUmVmLmRhdGEuZ29CYWNrQnV0dG9uVGVtcGxhdGU7XG4gICAgICAgIHRoaXMuZmluaXNoQnV0dG9uVGVtcGxhdGUgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS5maW5pc2hCdXR0b25UZW1wbGF0ZTtcbiAgICAgICAgdGhpcy5jYW5jZWxCdXR0b25UZW1wbGF0ZSA9IHRoaXMuX2RpYWxvZ1JlZi5kYXRhLmNhbmNlbEJ1dHRvblRlbXBsYXRlO1xuICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbkRpYWxvZ1RlbXBsYXRlID0gdGhpcy5fZGlhbG9nUmVmLmRhdGEuY29uZmlybWF0aW9uRGlhbG9nVGVtcGxhdGU7XG4gICAgICAgIHRoaXMuZGlzcGxheVN1bW1hcnlTdGVwID0gdGhpcy5fZGlhbG9nUmVmLmRhdGEuZGlzcGxheVN1bW1hcnlTdGVwIHx8IGZhbHNlO1xuICAgICAgICB0aGlzLnN1bW1hcnlTdGVwVGVtcGxhdGUgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS5zdW1tYXJ5U3RlcFRlbXBsYXRlO1xuICAgICAgICB0aGlzLnJldmlld0J1dHRvblRlbXBsYXRlID0gdGhpcy5fZGlhbG9nUmVmLmRhdGEucmV2aWV3QnV0dG9uVGVtcGxhdGU7XG5cbiAgICAgICAgaWYgKHRoaXMuX2RpYWxvZ1JlZi5kYXRhLnVuaWZpZWRMYXlvdXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy51bmlmaWVkTGF5b3V0ID0gdGhpcy5fZGlhbG9nUmVmLmRhdGEudW5pZmllZExheW91dDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9kaWFsb2dSZWYuZGF0YS5uYXZpZ2F0aW9uQnV0dG9ucyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLm5hdmlnYXRpb25CdXR0b25zID0gdGhpcy5fZGlhbG9nUmVmLmRhdGEubmF2aWdhdGlvbkJ1dHRvbnM7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5fZGlhbG9nUmVmLmRhdGEuY29uZmlybWF0aW9uRGlhbG9nVGV4dCkge1xuICAgICAgICAgICAgdGhpcy5jb25maXJtYXRpb25EaWFsb2dUZXh0ID0gdGhpcy5fZGlhbG9nUmVmLmRhdGEuY29uZmlybWF0aW9uRGlhbG9nVGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9kaWFsb2dSZWYuZGF0YS5jb25maXJtYXRpb25EaWFsb2dDYW5jZWxUZXh0KSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbkRpYWxvZ0NhbmNlbFRleHQgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS5jb25maXJtYXRpb25EaWFsb2dDYW5jZWxUZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX2RpYWxvZ1JlZi5kYXRhLmNvbmZpcm1hdGlvbkRpYWxvZ0Nsb3NlVGV4dCkge1xuICAgICAgICAgICAgdGhpcy5jb25maXJtYXRpb25EaWFsb2dDbG9zZVRleHQgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS5jb25maXJtYXRpb25EaWFsb2dDbG9zZVRleHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ2FuY2VscyBXaXphcmQgcHJvZ3Jlc3MgYW5kIGNsb3NlcyB0aGUgZGlhbG9nLlxuICAgICAqL1xuICAgIGNhbmNlbCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2UuaXNTdGVwc1VudG91Y2hlZCgpKSB7XG4gICAgICAgICAgICB0aGlzLl9kaWFsb2dSZWYuZGlzbWlzcygpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0ZW1wbGF0ZSA9IHRoaXMuY29uZmlybWF0aW9uRGlhbG9nVGVtcGxhdGUgfHwgdGhpcy5kZWZhdWx0Q29uZmlybWF0aW9uRGlhbG9nVGVtcGxhdGU7XG5cbiAgICAgICAgY29uc3QgbWVzc2FnZUJveFJlZiA9IHRoaXMuX21lc3NhZ2VCb3hTZXJ2aWNlLm9wZW4odGVtcGxhdGUsIHsgcmVzcG9uc2l2ZVBhZGRpbmc6IHRydWUgfSk7XG5cbiAgICAgICAgbWVzc2FnZUJveFJlZi5hZnRlckNsb3NlZFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKChyZXN1bHQpID0+IHJlc3VsdCksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kaWFsb2dSZWYuZGlzbWlzcygpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENvbXBsZXRlcyBXaXphcmQgcHJvY2VzcywgZW1pdHMgV2l6YXJkIHJlc3VsdCBhbmQgY2xvc2VzIHRoZSBkaWFsb2cuXG4gICAgICovXG4gICAgYXN5bmMgZmluaXNoKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy5pc1N1bW1hcnlTdGVwKSB7XG4gICAgICAgICAgICBjb25zdCB3aXphcmRSZXN1bHQgPSBhd2FpdCB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLmdldFdpemFyZEZvcm1WYWx1ZSh0cnVlKTtcbiAgICAgICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5jbG9zZSh3aXphcmRSZXN1bHQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY3VycmVudFN0ZXBJZCA9IHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2UuZ2V0Q3VycmVudFN0ZXBJZCgpO1xuICAgICAgICB0aGlzLnN1Ym1pdFN0ZXBGb3JtcyhjdXJyZW50U3RlcElkKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZShhc3luYyAocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAmJiBPYmplY3QudmFsdWVzKHJlc3VsdCkuc29tZSgocikgPT4gIXIuc3VjY2VzcykpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNvbnN0IHdpemFyZFJlc3VsdCA9IGF3YWl0IHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2UuZ2V0V2l6YXJkRm9ybVZhbHVlKHRydWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5jbG9zZSh3aXphcmRSZXN1bHQpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIF9nb0JhY2tGbjogKCkgPT4gdm9pZCA9ICgpID0+IHRoaXMuZ29CYWNrKCk7XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIF9nb05leHRGbjogKCkgPT4gUHJvbWlzZTx2b2lkPiA9ICgpID0+IHRoaXMuZ29OZXh0KCk7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgX2ZpbmlzaEZuOiAoKSA9PiBQcm9taXNlPHZvaWQ+ID0gKCkgPT4gdGhpcy5maW5pc2goKTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBfY2FuY2VsRm46ICgpID0+IHZvaWQgPSAoKSA9PiB0aGlzLmNhbmNlbCgpO1xufVxuIiwiPGZkLWRpYWxvZz5cbiAgICA8ZmQtZGlhbG9nLWhlYWRlcj5cbiAgICAgICAgPGgyIGZkLXRpdGxlIFtoZWFkZXJTaXplXT1cInRpdGxlLnNpemVcIj57eyB0aXRsZS50ZXh0IH19PC9oMj5cbiAgICA8L2ZkLWRpYWxvZy1oZWFkZXI+XG4gICAgPGZkLWRpYWxvZy1ib2R5PlxuICAgICAgICA8ZmRwLXdpemFyZC1ib2R5XG4gICAgICAgICAgICBbbmF2aWdhdGlvbkJ1dHRvbnNdPVwiZmFsc2VcIlxuICAgICAgICAgICAgW2Rpc3BsYXlTdW1tYXJ5U3RlcF09XCJkaXNwbGF5U3VtbWFyeVN0ZXBcIlxuICAgICAgICAgICAgW3Jlc3BvbnNpdmVQYWRkaW5nc109XCJyZXNwb25zaXZlUGFkZGluZ3NcIlxuICAgICAgICAgICAgW25hdmlnYXRpb25CdXR0b25MYWJlbHNdPVwiX25hdmlnYXRpb25CdXR0b25MYWJlbHNcIlxuICAgICAgICAgICAgW2N1c3RvbVN1bW1hcnlTdGVwVGVtcGxhdGVdPVwic3VtbWFyeVN0ZXBUZW1wbGF0ZVwiXG4gICAgICAgICAgICBbcmV2aWV3QnV0dG9uVGVtcGxhdGVdPVwicmV2aWV3QnV0dG9uVGVtcGxhdGVcIlxuICAgICAgICAgICAgW2hpZGRlbl09XCIhd2l6YXJkQ3JlYXRlZFwiXG4gICAgICAgICAgICBbYXBwZW5kVG9XaXphcmRdPVwiYXBwZW5kVG9XaXphcmRcIlxuICAgICAgICAgICAgW3VuaWZpZWRMYXlvdXRdPVwidW5pZmllZExheW91dFwiXG4gICAgICAgICAgICBbY29udGVudEhlaWdodF09XCJjb250ZW50SGVpZ2h0XCJcbiAgICAgICAgICAgIChzdGF0dXNDaGFuZ2UpPVwic3RlcFN0YXR1c0NoYW5nZWQoJGV2ZW50LmlkLCAkZXZlbnQuc3RhdHVzKVwiXG4gICAgICAgID48L2ZkcC13aXphcmQtYm9keT5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgZmQtYmFyXG4gICAgICAgICAgICBiYXJEZXNpZ249XCJmbG9hdGluZy1mb290ZXJcIlxuICAgICAgICAgICAgW2NsYXNzLmZkLWJhci0tcmVzcG9uc2l2ZS1wYWRkaW5nc109XCJyZXNwb25zaXZlUGFkZGluZ3NcIlxuICAgICAgICAgICAgKm5nSWY9XCJ3aXphcmRDcmVhdGVkXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBmZC1iYXItcmlnaHQ+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0ZpcnN0U3RlcFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRHb0JhY2tCdXR0b25UZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZHAtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmZC1iYXJfX2VsZW1lbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmZENvbnRlbnREZW5zaXR5XT1cIl9uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzLmdvQmFjay5jb250ZW50RGVuc2l0eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2J1dHRvblR5cGVdPVwiX25hdmlnYXRpb25CdXR0b25MYWJlbHMuZ29CYWNrLnR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJfbmF2aWdhdGlvbkJ1dHRvbkxhYmVscy5nb0JhY2subGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJnb0JhY2soKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9mZHAtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImdvQmFja0J1dHRvblRlbXBsYXRlIHx8IGRlZmF1bHRHb0JhY2tCdXR0b25UZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBnb0JhY2s6IF9nb0JhY2tGbiB9XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0xhc3RTdGVwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEdvTmV4dEJ1dHRvblRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkcC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkLWJhcl9fZWxlbWVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZkQ29udGVudERlbnNpdHldPVwiX25hdmlnYXRpb25CdXR0b25MYWJlbHMuZ29OZXh0LmNvbnRlbnREZW5zaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYnV0dG9uVHlwZV09XCJfbmF2aWdhdGlvbkJ1dHRvbkxhYmVscy5nb05leHQudHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIl9uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzLmdvTmV4dC5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImdvTmV4dCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2ZkcC1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFJldmlld0J1dHRvblRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkcC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkLWJhcl9fZWxlbWVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZkQ29udGVudERlbnNpdHldPVwiX25hdmlnYXRpb25CdXR0b25MYWJlbHMucmV2aWV3LmNvbnRlbnREZW5zaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYnV0dG9uVHlwZV09XCJfbmF2aWdhdGlvbkJ1dHRvbkxhYmVscy5yZXZpZXcudHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIl9uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzLnJldmlldy5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImdvTmV4dCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2ZkcC1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgW25nSWZdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlzQnJhbmNoaW5nU3RlcCAmJiAoIWlzQ3VycmVudFN0ZXBDb21wbGV0ZWQgfHwgX3N0ZXBzT3JkZXJDaGFuZ2VkKSkgfHwgIWlzTmV4dFN0ZXBTdW1tYXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nSWZFbHNlXT1cInJldmlld0J1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImdvTmV4dEJ1dHRvblRlbXBsYXRlIHx8IGRlZmF1bHRHb05leHRCdXR0b25UZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgZ29OZXh0OiBfZ29OZXh0Rm4gfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNyZXZpZXdCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJyZXZpZXdCdXR0b25UZW1wbGF0ZSB8fCBkZWZhdWx0UmV2aWV3QnV0dG9uVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGdvTmV4dDogX2dvTmV4dEZuIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTGFzdFN0ZXBcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0RmluaXNoQnV0dG9uVGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmRwLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmQtYmFyX19lbGVtZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmRDb250ZW50RGVuc2l0eV09XCJfbmF2aWdhdGlvbkJ1dHRvbkxhYmVscy5maW5pc2guY29udGVudERlbnNpdHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtidXR0b25UeXBlXT1cIl9uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzLmZpbmlzaC50eXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiX25hdmlnYXRpb25CdXR0b25MYWJlbHMuZmluaXNoLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZmluaXNoKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvZmRwLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJmaW5pc2hCdXR0b25UZW1wbGF0ZSB8fCBkZWZhdWx0RmluaXNoQnV0dG9uVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgZmluaXNoOiBfZmluaXNoRm4gfVwiXG4gICAgICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdENhbmNlbEJ1dHRvblRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkcC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZkLWJhcl9fZWxlbWVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZkQ29udGVudERlbnNpdHldPVwiX25hdmlnYXRpb25CdXR0b25MYWJlbHMuY2FuY2VsLmNvbnRlbnREZW5zaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYnV0dG9uVHlwZV09XCJfbmF2aWdhdGlvbkJ1dHRvbkxhYmVscy5jYW5jZWwudHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIl9uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzLmNhbmNlbC5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNhbmNlbCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2ZkcC1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2FuY2VsQnV0dG9uVGVtcGxhdGUgfHwgZGVmYXVsdENhbmNlbEJ1dHRvblRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGNhbmNlbDogX2NhbmNlbEZuIH1cIlxuICAgICAgICAgICAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2ZkLWRpYWxvZy1ib2R5PlxuPC9mZC1kaWFsb2c+XG5cbjxuZy10ZW1wbGF0ZVxuICAgIFtmZE1lc3NhZ2VCb3hUZW1wbGF0ZV1cbiAgICBsZXQtbWVzc2FnZUJveFxuICAgIGxldC1tZXNzYWdlQm94Q29uZmlnPVwibWVzc2FnZUJveENvbmZpZ1wiXG4gICAgI2RlZmF1bHRDb25maXJtYXRpb25EaWFsb2dUZW1wbGF0ZVxuPlxuICAgIDxmZC1tZXNzYWdlLWJveCBbbWVzc2FnZUJveENvbmZpZ109XCJtZXNzYWdlQm94Q29uZmlnXCIgW21lc3NhZ2VCb3hSZWZdPVwibWVzc2FnZUJveFwiPlxuICAgICAgICA8ZmQtbWVzc2FnZS1ib3gtYm9keT5cbiAgICAgICAgICAgIHt7IGNvbmZpcm1hdGlvbkRpYWxvZ1RleHQgfX1cbiAgICAgICAgPC9mZC1tZXNzYWdlLWJveC1ib2R5PlxuICAgICAgICA8ZmQtbWVzc2FnZS1ib3gtZm9vdGVyPlxuICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXJcbiAgICAgICAgICAgICAgICBmZFR5cGU9XCJlbXBoYXNpemVkXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiY29uZmlybWF0aW9uRGlhbG9nQ2xvc2VUZXh0XCJcbiAgICAgICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwibWVzc2FnZUJveC5jbG9zZSh0cnVlKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L2ZkLWJ1dHRvbi1iYXI+XG4gICAgICAgICAgICA8ZmQtYnV0dG9uLWJhciBmZGtJbml0aWFsRm9jdXMgW2xhYmVsXT1cImNvbmZpcm1hdGlvbkRpYWxvZ0NhbmNlbFRleHRcIiAoY2xpY2spPVwibWVzc2FnZUJveC5kaXNtaXNzKClcIj5cbiAgICAgICAgICAgIDwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgPC9mZC1tZXNzYWdlLWJveC1mb290ZXI+XG4gICAgPC9mZC1tZXNzYWdlLWJveD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=