@fundamental-ngx/platform 0.52.2-rc.7 → 0.52.2-rc.8
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.
|
@@ -183,7 +183,7 @@ export class VariantManagementComponent {
|
|
|
183
183
|
provide: FDP_VARIANT_MANAGEMENT,
|
|
184
184
|
useExisting: VariantManagementComponent
|
|
185
185
|
}
|
|
186
|
-
], queries: [{ propertyName: "dirtyLabel", first: true, predicate: VariantManagementDirtyLabelDirective, descendants: true }], viewQueries: [{ propertyName: "_popover", first: true, predicate: ["popover"], descendants: true }], ngImport: i0, template: "@if (activeVariant) {\n <fd-popover\n #popover\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\n fd-title\n [ngClass]=\"{\n 'fd-variant-management__title': true,\n 'fd-variant-management__title--dynamic-page': _dynamicPage,\n 'fd-variant-management__title--dynamic-page--collapsed': _dynamicPageCollapsed$ | async\n }\"\n [headerSize]=\"headerSize\"\n >\n {{ activeVariant.name }}\n </h4>\n @if (_variantChanged && !readonly) {\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 }\n <button fd-button [fdMenu]=\"true\" fdType=\"transparent\" [attr.aria-haspopup]=\"true\"></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 @if (displaySearch) {\n <div fd-bar barDesign=\"header\">\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 }\n </div>\n <ul fd-list>\n @for (\n variant of _variants | fdFilterStrings: { searchTerm: _filterPhrase, key: 'name' };\n track variant.id\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 }\n </ul>\n @if (!readonly) {\n <div fd-popover-body-footer>\n <div fd-bar barDesign=\"footer\">\n <div fd-bar-right>\n @if (!activeVariant.readonly && _variantChanged) {\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'platformVariantManagement.save' | fdTranslate\"\n (click)=\"saveCurrentVariant()\"\n >\n </fd-button-bar>\n }\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 }\n </fd-popover-body>\n </fd-popover>\n}\n", styles: [".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:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-variant-management:after,.fd-variant-management:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-variant-management__header{-webkit-box-sizing:border-box;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;gap:.125rem;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-variant-management__header:after,.fd-variant-management__header:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-variant-management .fd-variant-management__title{--fdTitle_Color:var(--fdVariantManagementHeadingColor)}.fd-variant-management .fd-variant-management__title.is-hover,.fd-variant-management .fd-variant-management__title:hover{--fdTitle_Color:var(--fdVariantManagementHeadingHoverColor)}.fd-variant-management .fd-variant-management__title.is-active,.fd-variant-management .fd-variant-management__title:active{--fdTitle_Color:var(--fdVariantManagementHeadingActiveColor)}.fd-variant-management .fd-variant-management__title.is-disabled,.fd-variant-management .fd-variant-management__title:disabled,.fd-variant-management .fd-variant-management__title[aria-disabled=true]{--fdTitle_Color:var(--sapGroup_TitleTextColor);cursor:default}.fd-variant-management .fd-variant-management__title--object-header{--fdTitle_Font_Size:var(--sapObjectHeader_Title_FontSize);--fdTitle_Font_Family:var(--sapObjectHeader_Title_FontFamily)}.fd-variant-management .fd-variant-management__title--snapped-object-header{--fdTitle_Font_Size:var(--sapObjectHeader_Title_SnappedFontSize);--fdTitle_Font_Family:var(--sapObjectHeader_Title_FontFamily)}.fd-variant-management .fd-variant-management__title--table{--fdTitle_Font_Size:var(--sapGroup_Title_FontSize)}.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:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-variant-management__dirty-indicator:after,.fd-variant-management__dirty-indicator:before{-webkit-box-sizing:inherit;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:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center}\n/*!\n * Fundamental Library Styles v0.37.7\n * Copyright (c) 2024 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */\n"], dependencies: [{ kind: "component", type: PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "component", type: PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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", "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: "component", type: ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id"], 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", "ariaLabelledby", "id"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }, { kind: "pipe", type: FilterStringsPipe, name: "fdFilterStrings" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
186
|
+
], queries: [{ propertyName: "dirtyLabel", first: true, predicate: VariantManagementDirtyLabelDirective, descendants: true }], viewQueries: [{ propertyName: "_popover", first: true, predicate: ["popover"], descendants: true }], ngImport: i0, template: "@if (activeVariant) {\n <fd-popover\n #popover\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\n fd-title\n [ngClass]=\"{\n 'fd-variant-management__title': true,\n 'fd-variant-management__title--dynamic-page': _dynamicPage,\n 'fd-variant-management__title--dynamic-page--collapsed': _dynamicPageCollapsed$ | async\n }\"\n [headerSize]=\"headerSize\"\n >\n {{ activeVariant.name }}\n </h4>\n @if (_variantChanged && !readonly) {\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 }\n <button fd-button [fdMenu]=\"true\" fdType=\"transparent\" [attr.aria-haspopup]=\"true\"></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 @if (displaySearch) {\n <div fd-bar barDesign=\"header\">\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 }\n </div>\n <ul fd-list>\n @for (\n variant of _variants | fdFilterStrings: { searchTerm: _filterPhrase, key: 'name' };\n track variant.id\n ) {\n <li fd-list-item [selected]=\"variant.name === activeVariant.name\" (click)=\"selectVariant(variant)\">\n <span fd-list-link>\n <span fd-list-title>{{ variant.name }}</span>\n </span>\n </li>\n }\n </ul>\n @if (!readonly) {\n <div fd-popover-body-footer>\n <div fd-bar barDesign=\"footer\">\n <div fd-bar-right>\n @if (!activeVariant.readonly && _variantChanged) {\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'platformVariantManagement.save' | fdTranslate\"\n (click)=\"saveCurrentVariant()\"\n >\n </fd-button-bar>\n }\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 }\n </fd-popover-body>\n </fd-popover>\n}\n", styles: [".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:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-variant-management:after,.fd-variant-management:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-variant-management__header{-webkit-box-sizing:border-box;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;gap:.125rem;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-variant-management__header:after,.fd-variant-management__header:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-variant-management .fd-variant-management__title{--fdTitle_Color:var(--fdVariantManagementHeadingColor)}.fd-variant-management .fd-variant-management__title.is-hover,.fd-variant-management .fd-variant-management__title:hover{--fdTitle_Color:var(--fdVariantManagementHeadingHoverColor)}.fd-variant-management .fd-variant-management__title.is-active,.fd-variant-management .fd-variant-management__title:active{--fdTitle_Color:var(--fdVariantManagementHeadingActiveColor)}.fd-variant-management .fd-variant-management__title.is-disabled,.fd-variant-management .fd-variant-management__title:disabled,.fd-variant-management .fd-variant-management__title[aria-disabled=true]{--fdTitle_Color:var(--sapGroup_TitleTextColor);cursor:default}.fd-variant-management .fd-variant-management__title--object-header{--fdTitle_Font_Size:var(--sapObjectHeader_Title_FontSize);--fdTitle_Font_Family:var(--sapObjectHeader_Title_FontFamily)}.fd-variant-management .fd-variant-management__title--snapped-object-header{--fdTitle_Font_Size:var(--sapObjectHeader_Title_SnappedFontSize);--fdTitle_Font_Family:var(--sapObjectHeader_Title_FontFamily)}.fd-variant-management .fd-variant-management__title--table{--fdTitle_Font_Size:var(--sapGroup_Title_FontSize)}.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:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-variant-management__dirty-indicator:after,.fd-variant-management__dirty-indicator:before{-webkit-box-sizing:inherit;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:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center}\n/*!\n * Fundamental Library Styles v0.37.7\n * Copyright (c) 2024 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */\n"], dependencies: [{ kind: "component", type: PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "component", type: PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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", "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: "component", type: ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id"], 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", "ariaLabelledby", "id"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }, { kind: "pipe", type: FilterStringsPipe, name: "fdFilterStrings" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
187
187
|
}
|
|
188
188
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: VariantManagementComponent, decorators: [{
|
|
189
189
|
type: Component,
|
|
@@ -215,7 +215,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
|
|
|
215
215
|
AsyncPipe,
|
|
216
216
|
NgClass,
|
|
217
217
|
ButtonComponent
|
|
218
|
-
], template: "@if (activeVariant) {\n <fd-popover\n #popover\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\n fd-title\n [ngClass]=\"{\n 'fd-variant-management__title': true,\n 'fd-variant-management__title--dynamic-page': _dynamicPage,\n 'fd-variant-management__title--dynamic-page--collapsed': _dynamicPageCollapsed$ | async\n }\"\n [headerSize]=\"headerSize\"\n >\n {{ activeVariant.name }}\n </h4>\n @if (_variantChanged && !readonly) {\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 }\n <button fd-button [fdMenu]=\"true\" fdType=\"transparent\" [attr.aria-haspopup]=\"true\"></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 @if (displaySearch) {\n <div fd-bar barDesign=\"header\">\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 }\n </div>\n <ul fd-list>\n @for (\n variant of _variants | fdFilterStrings: { searchTerm: _filterPhrase, key: 'name' };\n track variant.id\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 }\n </ul>\n @if (!readonly) {\n <div fd-popover-body-footer>\n <div fd-bar barDesign=\"footer\">\n <div fd-bar-right>\n @if (!activeVariant.readonly && _variantChanged) {\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'platformVariantManagement.save' | fdTranslate\"\n (click)=\"saveCurrentVariant()\"\n >\n </fd-button-bar>\n }\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 }\n </fd-popover-body>\n </fd-popover>\n}\n", styles: [".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:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-variant-management:after,.fd-variant-management:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-variant-management__header{-webkit-box-sizing:border-box;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;gap:.125rem;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-variant-management__header:after,.fd-variant-management__header:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-variant-management .fd-variant-management__title{--fdTitle_Color:var(--fdVariantManagementHeadingColor)}.fd-variant-management .fd-variant-management__title.is-hover,.fd-variant-management .fd-variant-management__title:hover{--fdTitle_Color:var(--fdVariantManagementHeadingHoverColor)}.fd-variant-management .fd-variant-management__title.is-active,.fd-variant-management .fd-variant-management__title:active{--fdTitle_Color:var(--fdVariantManagementHeadingActiveColor)}.fd-variant-management .fd-variant-management__title.is-disabled,.fd-variant-management .fd-variant-management__title:disabled,.fd-variant-management .fd-variant-management__title[aria-disabled=true]{--fdTitle_Color:var(--sapGroup_TitleTextColor);cursor:default}.fd-variant-management .fd-variant-management__title--object-header{--fdTitle_Font_Size:var(--sapObjectHeader_Title_FontSize);--fdTitle_Font_Family:var(--sapObjectHeader_Title_FontFamily)}.fd-variant-management .fd-variant-management__title--snapped-object-header{--fdTitle_Font_Size:var(--sapObjectHeader_Title_SnappedFontSize);--fdTitle_Font_Family:var(--sapObjectHeader_Title_FontFamily)}.fd-variant-management .fd-variant-management__title--table{--fdTitle_Font_Size:var(--sapGroup_Title_FontSize)}.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:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-variant-management__dirty-indicator:after,.fd-variant-management__dirty-indicator:before{-webkit-box-sizing:inherit;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:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center}\n/*!\n * Fundamental Library Styles v0.37.7\n * Copyright (c) 2024 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */\n"] }]
|
|
218
|
+
], template: "@if (activeVariant) {\n <fd-popover\n #popover\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\n fd-title\n [ngClass]=\"{\n 'fd-variant-management__title': true,\n 'fd-variant-management__title--dynamic-page': _dynamicPage,\n 'fd-variant-management__title--dynamic-page--collapsed': _dynamicPageCollapsed$ | async\n }\"\n [headerSize]=\"headerSize\"\n >\n {{ activeVariant.name }}\n </h4>\n @if (_variantChanged && !readonly) {\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 }\n <button fd-button [fdMenu]=\"true\" fdType=\"transparent\" [attr.aria-haspopup]=\"true\"></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 @if (displaySearch) {\n <div fd-bar barDesign=\"header\">\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 }\n </div>\n <ul fd-list>\n @for (\n variant of _variants | fdFilterStrings: { searchTerm: _filterPhrase, key: 'name' };\n track variant.id\n ) {\n <li fd-list-item [selected]=\"variant.name === activeVariant.name\" (click)=\"selectVariant(variant)\">\n <span fd-list-link>\n <span fd-list-title>{{ variant.name }}</span>\n </span>\n </li>\n }\n </ul>\n @if (!readonly) {\n <div fd-popover-body-footer>\n <div fd-bar barDesign=\"footer\">\n <div fd-bar-right>\n @if (!activeVariant.readonly && _variantChanged) {\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'platformVariantManagement.save' | fdTranslate\"\n (click)=\"saveCurrentVariant()\"\n >\n </fd-button-bar>\n }\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 }\n </fd-popover-body>\n </fd-popover>\n}\n", styles: [".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:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-variant-management:after,.fd-variant-management:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-variant-management__header{-webkit-box-sizing:border-box;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;gap:.125rem;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-variant-management__header:after,.fd-variant-management__header:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-variant-management .fd-variant-management__title{--fdTitle_Color:var(--fdVariantManagementHeadingColor)}.fd-variant-management .fd-variant-management__title.is-hover,.fd-variant-management .fd-variant-management__title:hover{--fdTitle_Color:var(--fdVariantManagementHeadingHoverColor)}.fd-variant-management .fd-variant-management__title.is-active,.fd-variant-management .fd-variant-management__title:active{--fdTitle_Color:var(--fdVariantManagementHeadingActiveColor)}.fd-variant-management .fd-variant-management__title.is-disabled,.fd-variant-management .fd-variant-management__title:disabled,.fd-variant-management .fd-variant-management__title[aria-disabled=true]{--fdTitle_Color:var(--sapGroup_TitleTextColor);cursor:default}.fd-variant-management .fd-variant-management__title--object-header{--fdTitle_Font_Size:var(--sapObjectHeader_Title_FontSize);--fdTitle_Font_Family:var(--sapObjectHeader_Title_FontFamily)}.fd-variant-management .fd-variant-management__title--snapped-object-header{--fdTitle_Font_Size:var(--sapObjectHeader_Title_SnappedFontSize);--fdTitle_Font_Family:var(--sapObjectHeader_Title_FontFamily)}.fd-variant-management .fd-variant-management__title--table{--fdTitle_Font_Size:var(--sapGroup_Title_FontSize)}.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:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-variant-management__dirty-indicator:after,.fd-variant-management__dirty-indicator:before{-webkit-box-sizing:inherit;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:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center}\n/*!\n * Fundamental Library Styles v0.37.7\n * Copyright (c) 2024 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */\n"] }]
|
|
219
219
|
}], ctorParameters: () => [{ type: i1.DialogService }, { type: i0.ChangeDetectorRef }], propDecorators: { variants: [{
|
|
220
220
|
type: Input
|
|
221
221
|
}], headerSize: [{
|
|
@@ -244,4 +244,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
|
|
|
244
244
|
type: HostBinding,
|
|
245
245
|
args: ['class']
|
|
246
246
|
}] } });
|
|
247
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFudC1tYW5hZ2VtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vdmFyaWFudC1tYW5hZ2VtZW50L3ZhcmlhbnQtbWFuYWdlbWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3ZhcmlhbnQtbWFuYWdlbWVudC92YXJpYW50LW1hbmFnZW1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBWSxNQUFNLDRCQUE0QixDQUFDO0FBQ3pFLE9BQU8sRUFDSCxZQUFZLEVBQ1osbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ3JCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQWUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JILE9BQU8sRUFDSCxvQkFBb0IsRUFDcEIsMEJBQTBCLEVBQzFCLDBC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VUFBVTtzQkFEVCxZQUFZO3VCQUFDLG9DQUFvQztnQkFLbEQsUUFBUTtzQkFEUCxTQUFTO3VCQUFDLFNBQVM7Z0JBS0gsYUFBYTtzQkFEN0IsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIGVmZmVjdCxcbiAgICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaWx0ZXJTdHJpbmdzUGlwZSwgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQge1xuICAgIEJhckNvbXBvbmVudCxcbiAgICBCYXJFbGVtZW50RGlyZWN0aXZlLFxuICAgIEJhckxlZnREaXJlY3RpdmUsXG4gICAgQmFyUmlnaHREaXJlY3RpdmUsXG4gICAgQnV0dG9uQmFyQ29tcG9uZW50XG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9iYXInO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2J1dHRvbic7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2RpYWxvZyc7XG5pbXBvcnQgeyBEeW5hbWljUGFnZSwgRkRfRFlOQU1JQ19QQUdFIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2R5bmFtaWMtcGFnZSc7XG5pbXBvcnQgeyBMaXN0Q29tcG9uZW50LCBMaXN0SXRlbUNvbXBvbmVudCwgTGlzdExpbmtEaXJlY3RpdmUsIExpc3RUaXRsZURpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9saXN0JztcbmltcG9ydCB7XG4gICAgUG9wb3ZlckJvZHlDb21wb25lbnQsXG4gICAgUG9wb3ZlckJvZHlGb290ZXJEaXJlY3RpdmUsXG4gICAgUG9wb3ZlckJvZHlIZWFkZXJEaXJlY3RpdmUsXG4gICAgUG9wb3ZlckNvbXBvbmVudCxcbiAgICBQb3BvdmVyQ29udHJvbENvbXBvbmVudCxcbiAgICBUcmlnZ2VyQ29uZmlnXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9wb3BvdmVyJztcbmltcG9ydCB7IEhlYWRlclNpemVzLCBUaXRsZUNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS90aXRsZSc7XG5pbXBvcnQgeyBGZFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2kxOG4nO1xuaW1wb3J0IHsgRkRQX0RZTkFNSUNfUEFHRSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vZHluYW1pYy1wYWdlJztcbmltcG9ydCB7IFNlYXJjaEZpZWxkQ29tcG9uZW50LCBTZWFyY2hJbnB1dCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vc2VhcmNoLWZpZWxkJztcbmltcG9ydCBlcXVhbCBmcm9tICdmYXN0LWRlZXAtZXF1YWwnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNYW5hZ2VWYXJpYW50SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tYW5hZ2UtdmFyaWFudC1pdGVtL21hbmFnZS12YXJpYW50LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IE1hbmFnZVZhcmlhbnRzRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL21hbmFnZS12YXJpYW50cy1kaWFsb2cvbWFuYWdlLXZhcmlhbnRzLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVmFyaWFudE1hbmFnZW1lbnREaXJ0eUxhYmVsRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3ZhcmlhbnQtbWFuYWdlbWVudC1kaXJ0eS1sYWJlbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU2F2ZURpYWxvZ0NvbnRleHQgfSBmcm9tICcuL21vZGVscy9zYXZlLWRpYWxvZy5tb2RlbCc7XG5pbXBvcnQgeyBWYXJpYW50TWFuYWdlbWVudCB9IGZyb20gJy4vbW9kZWxzL3ZhcmlhbnQtbWFuYWdlbWVudCc7XG5pbXBvcnQgeyBOZXdWYXJpYW50LCBWYXJpYW50IH0gZnJvbSAnLi9tb2RlbHMvdmFyaWFudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRkRQX1ZBUklBTlRfTUFOQUdFTUVOVCB9IGZyb20gJy4vdG9rZW5zJztcbmltcG9ydCB7IFZhcmlhbnRJdGVtIH0gZnJvbSAnLi92YXJpYW50LWl0ZW0uY2xhc3MnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC12YXJpYW50LW1hbmFnZW1lbnQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi92YXJpYW50LW1hbmFnZW1lbnQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi92YXJpYW50LW1hbmFnZW1lbnQuY29tcG9uZW50LnNjc3MnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZEUF9WQVJJQU5UX01BTkFHRU1FTlQsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogVmFyaWFudE1hbmFnZW1lbnRDb21wb25lbnRcbiAgICAgICAgfVxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIFBvcG92ZXJDb21wb25lbnQsXG4gICAgICAgIFBvcG92ZXJDb250cm9sQ29tcG9uZW50LFxuICAgICAgICBUaXRsZUNvbXBvbmVudCxcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgUG9wb3ZlckJvZHlDb21wb25lbnQsXG4gICAgICAgIFBvcG92ZXJCb2R5SGVhZGVyRGlyZWN0aXZlLFxuICAgICAgICBCYXJDb21wb25lbnQsXG4gICAgICAgIEJhckxlZnREaXJlY3RpdmUsXG4gICAgICAgIEJhckVsZW1lbnREaXJlY3RpdmUsXG4gICAgICAgIFNlYXJjaEZpZWxkQ29tcG9uZW50LFxuICAgICAgICBMaXN0Q29tcG9uZW50LFxuICAgICAgICBMaXN0SXRlbUNvbXBvbmVudCxcbiAgICAgICAgTGlzdExpbmtEaXJlY3RpdmUsXG4gICAgICAgIExpc3RUaXRsZURpcmVjdGl2ZSxcbiAgICAgICAgUG9wb3ZlckJvZHlGb290ZXJEaXJlY3RpdmUsXG4gICAgICAgIEJhclJpZ2h0RGlyZWN0aXZlLFxuICAgICAgICBCdXR0b25CYXJDb21wb25lbnQsXG4gICAgICAgIEZkVHJhbnNsYXRlUGlwZSxcbiAgICAgICAgRmlsdGVyU3RyaW5nc1BpcGUsXG4gICAgICAgIEFzeW5jUGlwZSxcbiAgICAgICAgTmdDbGFzcyxcbiAgICAgICAgQnV0dG9uQ29tcG9uZW50XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBWYXJpYW50TWFuYWdlbWVudENvbXBvbmVudDxUID0gYW55PiBpbXBsZW1lbnRzIFZhcmlhbnRNYW5hZ2VtZW50PFQ+IHtcbiAgICAvKiogSW5pdGlhbCB2YXJpYW50cyBhcnJheS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB2YXJpYW50cyhpdGVtczogVmFyaWFudDxUPltdKSB7XG4gICAgICAgIHRoaXMuX3ZhcmlhbnRzID0gdGhpcy5fdHJhbnNmb3JtVmFyaWFudHMoaXRlbXMpO1xuXG4gICAgICAgIGxldCBjdXJyZW50VmFyaWFudEluZGV4ID0gdGhpcy5fdmFyaWFudHMuZmluZEluZGV4KCh2YXJpYW50KSA9PiB2YXJpYW50LmlzRGVmYXVsdCk7XG4gICAgICAgIGN1cnJlbnRWYXJpYW50SW5kZXggPSBjdXJyZW50VmFyaWFudEluZGV4ID4gLTEgPyBjdXJyZW50VmFyaWFudEluZGV4IDogMDtcbiAgICAgICAgY29uc3QgY3VycmVudFZhcmlhbnQgPSB0aGlzLl92YXJpYW50c1tjdXJyZW50VmFyaWFudEluZGV4XTtcbiAgICAgICAgdGhpcy5zZWxlY3RWYXJpYW50KGN1cnJlbnRWYXJpYW50IGFzIFZhcmlhbnRJdGVtKTtcbiAgICB9XG5cbiAgICAvKiogSGVhZGVyIHNpemUuICovXG4gICAgQElucHV0KClcbiAgICBoZWFkZXJTaXplOiBIZWFkZXJTaXplcyA9IDQ7XG5cbiAgICAvKiogUG9wb3ZlciB0cmlnZ2VyIGV2ZW50cy4gKi9cbiAgICBASW5wdXQoKVxuICAgIHBvcG92ZXJUcmlnZ2VyczogKHN0cmluZyB8IFRyaWdnZXJDb25maWcpW10gPSBbXG4gICAgICAgIHsgdHJpZ2dlcjogJ2NsaWNrJywgc3RvcFByb3BhZ2F0aW9uOiB0cnVlLCBjbG9zZUFjdGlvbjogdHJ1ZSwgb3BlbkFjdGlvbjogdHJ1ZSB9XG4gICAgXTtcblxuICAgIC8qKiBVc2VyJ3MgbmFtZSB3aGljaCB3aWxsIGJlIGFwcGxpZWQgdG8gYWxsIG5ldyB2YXJpYW50cyB1c2VyIGNyZWF0ZXMuICovXG4gICAgQElucHV0KClcbiAgICB1c2VyTmFtZTogc3RyaW5nO1xuXG4gICAgLyoqIFdoZXRoZXIgdG8gZGlzcGxheSBzZWFyY2ggZmllbGQgZm9yIHZhcmlhbnRzIGxpc3QuICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgZGlzcGxheVNlYXJjaCA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIHZhcmlhbnQgbWFuYWdlbWVudCBjb21wb25lbnQgaXMgaW4gcmVhZG9ubHkgbW9kZS4gKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICByZWFkb25seSA9IGZhbHNlO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB2YXJpYW50cyBkYXRhIGhhcyBiZWVuIHVwZGF0ZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgdmFyaWFudHNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFZhcmlhbnQ8VD5bXT4oKTtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gbmV3IHZhcmlhbnQgc2VsZWN0ZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgYWN0aXZlVmFyaWFudENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VmFyaWFudDxUPj4oKTtcblxuICAgIC8qKlxuICAgICAqIEN1c3RvbSBkaXJ0eSBsYWJlbCBkaXJlY3RpdmUuXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZChWYXJpYW50TWFuYWdlbWVudERpcnR5TGFiZWxEaXJlY3RpdmUpXG4gICAgZGlydHlMYWJlbDogVmFyaWFudE1hbmFnZW1lbnREaXJ0eUxhYmVsRGlyZWN0aXZlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdwb3BvdmVyJylcbiAgICBfcG9wb3ZlcjogUG9wb3ZlckNvbXBvbmVudDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgcHJpdmF0ZSByZWFkb25seSBfaW5pdGlhbENsYXNzID0gJ2ZkLXZhcmlhbnQtbWFuYWdlbWVudCc7XG5cbiAgICAvKipcbiAgICAgKiBVc2VkIGludGVybmFsbHkgZm9yIGNvbW11bmljYXRpbmcgd2l0aCB3cmFwcGVyIGNvbXBvbmVudC5cbiAgICAgKi9cbiAgICBhY3RpdmVWYXJpYW50Q2hhbmdlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VmFyaWFudDxUPiB8IG51bGw+KG51bGwpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfdmFyaWFudENoYW5nZWQgPSBmYWxzZTtcblxuICAgIC8qKiBTZWxlY3RlZCB2YXJpYW50LiAqL1xuICAgIGFjdGl2ZVZhcmlhbnQhOiBWYXJpYW50SXRlbTxUPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3ZhcmlhbnRzOiBWYXJpYW50SXRlbTxUPltdID0gW107XG5cbiAgICAvKiogQEhpZGRlbiAqL1xuICAgIF9maWx0ZXJQaHJhc2U6IE51bGxhYmxlPHN0cmluZz4gPSBudWxsO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgX2R5bmFtaWNQYWdlKCk6IER5bmFtaWNQYWdlIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb3JlRHluYW1pY1BhZ2UgfHwgdGhpcy5fcGxhdGZvcm1EeW5hbWljUGFnZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfZHluYW1pY1BhZ2VDb2xsYXBzZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfY29yZUR5bmFtaWNQYWdlID0gaW5qZWN0KEZEX0RZTkFNSUNfUEFHRSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfcGxhdGZvcm1EeW5hbWljUGFnZSA9IGluamVjdChGRFBfRFlOQU1JQ19QQUdFLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICAgIC8qKiBASGlkZGVuICovXG4gICAgcHJpdmF0ZSBfb3JpZ2luYWxBY3RpdmVWYXJpYW50OiBWYXJpYW50SXRlbTxUPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2RpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHtcbiAgICAgICAgaWYgKHRoaXMuX2R5bmFtaWNQYWdlKSB7XG4gICAgICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2R5bmFtaWNQYWdlQ29sbGFwc2VkJC5uZXh0KHRoaXMuX2R5bmFtaWNQYWdlIS5jb2xsYXBzZWQoKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1hbnVhbGx5IHNlbGVjdCB2YXJpYW50LlxuICAgICAqIEBwYXJhbSB2YXJpYW50IFZhcmlhbnQgdG8gc2VsZWN0LlxuICAgICAqL1xuICAgIHNlbGVjdFZhcmlhbnQodmFyaWFudDogVmFyaWFudEl0ZW08VD4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdmFyaWFudENoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5hY3RpdmVWYXJpYW50ID0gdmFyaWFudDtcbiAgICAgICAgdGhpcy5fb3JpZ2luYWxBY3RpdmVWYXJpYW50ID0gdmFyaWFudC5jbG9uZSh7fSwgZmFsc2UpO1xuICAgICAgICB0aGlzLmFjdGl2ZVZhcmlhbnRDaGFuZ2UuZW1pdCh2YXJpYW50KTtcbiAgICAgICAgdGhpcy5hY3RpdmVWYXJpYW50Q2hhbmdlU3ViamVjdC5uZXh0KHZhcmlhbnQpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIG9yaWdpbmFsIHZhcmlhbnQgZGF0YS4gKi9cbiAgICBnZXRPcmlnaW5hbEFjdGl2ZVZhcmlhbnREYXRhKCk6IFZhcmlhbnQ8VD5bJ2RhdGEnXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vcmlnaW5hbEFjdGl2ZVZhcmlhbnQuZGF0YTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyBjdXJyZW50IGFjdGl2ZSB2YXJpYW50IGRhdGEgd2l0aCBhcHBsaWVkIGNoYW5nZXMuICovXG4gICAgZ2V0QWN0aXZlVmFyaWFudERhdGEoKTogVmFyaWFudDxUPlsnZGF0YSddIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlVmFyaWFudC5kYXRhO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNhdmVzIGN1cnJlbnQgdmFyaWFudCB3aXRoIGl0cyBjb25maWd1cmF0aW9uLlxuICAgICAqL1xuICAgIHNhdmVDdXJyZW50VmFyaWFudCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucmVhZG9ubHkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjdXJyZW50VmFyaWFudEluZGV4ID0gdGhpcy5fdmFyaWFudHMuZmluZEluZGV4KCh2YXJpYW50KSA9PiB2YXJpYW50LmlkID09PSB0aGlzLmFjdGl2ZVZhcmlhbnQuaWQpO1xuICAgICAgICB0aGlzLl92YXJpYW50c1tjdXJyZW50VmFyaWFudEluZGV4XSA9IHRoaXMuYWN0aXZlVmFyaWFudDtcbiAgICAgICAgdGhpcy5fb3JpZ2luYWxBY3RpdmVWYXJpYW50ID0gdGhpcy5hY3RpdmVWYXJpYW50LmNsb25lKHt9LCBmYWxzZSk7XG4gICAgICAgIHRoaXMuX3ZhcmlhbnRDaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMudmFyaWFudHNDaGFuZ2UuZW1pdCh0aGlzLl92YXJpYW50cyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb3BlblNhdmVEaWFsb2coKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnJlYWRvbmx5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fcG9wb3Zlcj8uY2xvc2UoZmFsc2UpO1xuICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLl9kaWFsb2dTZXJ2aWNlLm9wZW48U2F2ZURpYWxvZ0NvbnRleHQ+KE1hbmFnZVZhcmlhbnRJdGVtQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgZXhpc3RpbmdWYXJpYW50TmFtZXM6IHRoaXMuX3ZhcmlhbnRzLm1hcCgodmFyaWFudCkgPT4gdmFyaWFudC5uYW1lKSxcbiAgICAgICAgICAgICAgICBjdXJyZW50VmFyaWFudE5hbWU6IHRoaXMuYWN0aXZlVmFyaWFudC5uYW1lXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6IChyZXN1bHQ6IE5ld1ZhcmlhbnQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdWYXJpYW50ID0gdGhpcy5hY3RpdmVWYXJpYW50LmNsb25lKHsgLi4ucmVzdWx0LCAuLi57IGNyZWF0ZWRCeTogdGhpcy51c2VyTmFtZSB9IH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuX3ZhcmlhbnRzLnB1c2gobmV3VmFyaWFudCk7XG4gICAgICAgICAgICAgICAgdGhpcy52YXJpYW50c0NoYW5nZS5lbWl0KHRoaXMuX3ZhcmlhbnRzKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZVZhcmlhbnQgPSBuZXdWYXJpYW50O1xuICAgICAgICAgICAgICAgIHRoaXMuX3ZhcmlhbnRDaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvcjogKCkgPT4ge31cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXBkYXRlcyBjdXJyZW50IGFjdGl2ZSBwcmVzZXQgd2l0aCBuZXcgY29uZmlndXJhdGlvbi5cbiAgICAgKiBAcGFyYW0gcHJlc2V0IFByZXNldCBjb25maWd1cmF0aW9uLlxuICAgICAqIEBwYXJhbSBjb21wb25lbnROYW1lIGNvbXBvbmVudCB0byB3aGljaCB0aGlzIHByZXNldCBiZWxvbmdzIHRvLlxuICAgICAqL1xuICAgIHVwZGF0ZUFjdGl2ZVByZXNldChwcmVzZXQ6IFQsIGNvbXBvbmVudE5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBhY3RpdmVWYXJpYW50RGF0YSA9IHRoaXMuX29yaWdpbmFsQWN0aXZlVmFyaWFudC5kYXRhW2NvbXBvbmVudE5hbWVdO1xuICAgICAgICB0aGlzLl92YXJpYW50Q2hhbmdlZCA9IGFjdGl2ZVZhcmlhbnREYXRhICYmICFlcXVhbChwcmVzZXQsIGFjdGl2ZVZhcmlhbnREYXRhKTtcbiAgICAgICAgdGhpcy5hY3RpdmVWYXJpYW50LmRhdGFbY29tcG9uZW50TmFtZV0gPSBwcmVzZXQ7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb3Blbk1hbmFnZURpYWxvZygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucmVhZG9ubHkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9wb3BvdmVyPy5jbG9zZShmYWxzZSk7XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3BlbjxWYXJpYW50SXRlbVtdPihNYW5hZ2VWYXJpYW50c0RpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgICAgICAgZGF0YTogdGhpcy5fdmFyaWFudHNcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiAodmFyaWFudHM6IFZhcmlhbnRJdGVtW10pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl92YXJpYW50cyA9IHZhcmlhbnRzO1xuICAgICAgICAgICAgICAgIHRoaXMudmFyaWFudHNDaGFuZ2UuZW1pdCh0aGlzLl92YXJpYW50cyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXJyb3I6ICgpID0+IHt9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uU2VhcmNoU3VibWl0KHNlYXJjaDogU2VhcmNoSW5wdXQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZmlsdGVyUGhyYXNlID0gc2VhcmNoLnRleHQ7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY2FuY2VsU2VhcmNoKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9maWx0ZXJQaHJhc2UgPSBudWxsO1xuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBASGlkZGVuICovXG4gICAgX3RyYWNrRm4oaW5kZXg6IG51bWJlciwgaXRlbTogVmFyaWFudEl0ZW08VD4pOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gaXRlbS5pZDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RyYW5zZm9ybVZhcmlhbnRzKGl0ZW1zOiBWYXJpYW50PFQ+W10pOiBWYXJpYW50SXRlbVtdIHtcbiAgICAgICAgcmV0dXJuIGl0ZW1zLm1hcCgodmFyaWFudCkgPT4gbmV3IFZhcmlhbnRJdGVtKHZhcmlhbnQpKTtcbiAgICB9XG59XG4iLCJAaWYgKGFjdGl2ZVZhcmlhbnQpIHtcbiAgICA8ZmQtcG9wb3ZlclxuICAgICAgICAjcG9wb3ZlclxuICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxuICAgICAgICBbbm9BcnJvd109XCJmYWxzZVwiXG4gICAgICAgIFtmb2N1c0F1dG9DYXB0dXJlXT1cInRydWVcIlxuICAgICAgICBbZm9jdXNUcmFwcGVkXT1cInRydWVcIlxuICAgICAgICBhZGRpdGlvbmFsQm9keUNsYXNzPVwiZmQtdmFyaWFudC1tYW5hZ2VtZW50X19wb3BvdmVyLWJvZHlcIlxuICAgICAgICBbdHJpZ2dlcnNdPVwicG9wb3ZlclRyaWdnZXJzXCJcbiAgICA+XG4gICAgICAgIDxmZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmQtdmFyaWFudC1tYW5hZ2VtZW50X19oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICA8aDRcbiAgICAgICAgICAgICAgICAgICAgZmQtdGl0bGVcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgJ2ZkLXZhcmlhbnQtbWFuYWdlbWVudF9fdGl0bGUnOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2ZkLXZhcmlhbnQtbWFuYWdlbWVudF9fdGl0bGUtLWR5bmFtaWMtcGFnZSc6IF9keW5hbWljUGFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdmZC12YXJpYW50LW1hbmFnZW1lbnRfX3RpdGxlLS1keW5hbWljLXBhZ2UtLWNvbGxhcHNlZCc6IF9keW5hbWljUGFnZUNvbGxhcHNlZCQgfCBhc3luY1xuICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgW2hlYWRlclNpemVdPVwiaGVhZGVyU2l6ZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBhY3RpdmVWYXJpYW50Lm5hbWUgfX1cbiAgICAgICAgICAgICAgICA8L2g0PlxuICAgICAgICAgICAgICAgIEBpZiAoX3ZhcmlhbnRDaGFuZ2VkICYmICFyZWFkb25seSkge1xuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmZC12YXJpYW50LW1hbmFnZW1lbnRfX2RpcnR5LWluZGljYXRvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZmQtdmFyaWFudC1tYW5hZ2VtZW50X19kaXJ0eS1pbmRpY2F0b3ItLWN1c3RvbV09XCIhIWRpcnR5TGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHREaXJ0eUluZGljYXRvcj4qPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRpcnR5TGFiZWwgPyBkaXJ0eUxhYmVsLnRlbXBsYXRlUmVmIDogZGVmYXVsdERpcnR5SW5kaWNhdG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDxidXR0b24gZmQtYnV0dG9uIFtmZE1lbnVdPVwidHJ1ZVwiIGZkVHlwZT1cInRyYW5zcGFyZW50XCIgW2F0dHIuYXJpYS1oYXNwb3B1cF09XCJ0cnVlXCI+PC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgIDxmZC1wb3BvdmVyLWJvZHk+XG4gICAgICAgICAgICA8ZGl2IGZkLXBvcG92ZXItYm9keS1oZWFkZXI+XG4gICAgICAgICAgICAgICAgPGRpdiBmZC1iYXIgW2JhckRlc2lnbl09XCJkaXNwbGF5U2VhcmNoID8gJ2hlYWRlci13aXRoLXN1YmhlYWRlcicgOiAnaGVhZGVyJ1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1sZWZ0PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWJhci1lbGVtZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNSBmZC10aXRsZT57eyAncGxhdGZvcm1WYXJpYW50TWFuYWdlbWVudC5teVZpZXdzJyB8IGZkVHJhbnNsYXRlIH19PC9oNT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIEBpZiAoZGlzcGxheVNlYXJjaCkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhciBiYXJEZXNpZ249XCJoZWFkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyLWxlZnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWJhci1lbGVtZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmRwLXNlYXJjaC1maWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidwbGF0Zm9ybVZhcmlhbnRNYW5hZ2VtZW50LnNlYXJjaCcgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VhcmNoU3VibWl0KT1cIl9vblNlYXJjaFN1Ym1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYW5jZWxTZWFyY2gpPVwiX2NhbmNlbFNlYXJjaCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlUmVmcmVzaF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZmRwLXNlYXJjaC1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLWJhci1lbGVtZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHVsIGZkLWxpc3Q+XG4gICAgICAgICAgICAgICAgQGZvciAoXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQgb2YgX3ZhcmlhbnRzIHwgZmRGaWx0ZXJTdHJpbmdzOiB7IHNlYXJjaFRlcm06IF9maWx0ZXJQaHJhc2UsIGtleTogJ25hbWUnIH07XG4gICAgICAgICAgICAgICAgICAgIHRyYWNrIHZhcmlhbnQuaWRcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgPGxpIGZkLWxpc3QtaXRlbSAoY2xpY2spPVwic2VsZWN0VmFyaWFudCh2YXJpYW50KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC1saW5rPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGU+e3sgdmFyaWFudC5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICBAaWYgKCFyZWFkb25seSkge1xuICAgICAgICAgICAgICAgIDxkaXYgZmQtcG9wb3Zlci1ib2R5LWZvb3Rlcj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1iYXIgYmFyRGVzaWduPVwiZm9vdGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1yaWdodD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKCFhY3RpdmVWYXJpYW50LnJlYWRvbmx5ICYmIF92YXJpYW50Q2hhbmdlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtYnV0dG9uLWJhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwiZW1waGFzaXplZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ3BsYXRmb3JtVmFyaWFudE1hbmFnZW1lbnQuc2F2ZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2F2ZUN1cnJlbnRWYXJpYW50KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZkVHlwZV09XCJhY3RpdmVWYXJpYW50LnJlYWRvbmx5IHx8ICFfdmFyaWFudENoYW5nZWQgPyAnZW1waGFzaXplZCcgOiAndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidwbGF0Zm9ybVZhcmlhbnRNYW5hZ2VtZW50LnNhdmVBcycgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJfb3BlblNhdmVEaWFsb2coKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtYnV0dG9uLWJhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ3BsYXRmb3JtVmFyaWFudE1hbmFnZW1lbnQubWFuYWdlJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9vcGVuTWFuYWdlRGlhbG9nKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2ZkLWJ1dHRvbi1iYXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZmQtcG9wb3Zlci1ib2R5PlxuICAgIDwvZmQtcG9wb3Zlcj5cbn1cbiJdfQ==
|
|
247
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFudC1tYW5hZ2VtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vdmFyaWFudC1tYW5hZ2VtZW50L3ZhcmlhbnQtbWFuYWdlbWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3ZhcmlhbnQtbWFuYWdlbWVudC92YXJpYW50LW1hbmFnZW1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBWSxNQUFNLDRCQUE0QixDQUFDO0FBQ3pFLE9BQU8sRUFDSCxZQUFZLEVBQ1osbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ3JCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQWUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JILE9BQU8sRUFDSCxvQkFBb0IsRUFDcEIsMEJBQTBCLEVBQzFCLDBCQUEwQixFQUMxQixnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBRTFCLE1BQU0sK0JBQStCLENBQUM7QUFDdkMsT0FBTyxFQUFlLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsb0JBQW9CLEVBQWUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMzRixPQUFPLEtBQUssTUFBTSxpQkFBaUIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQzVHLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQ3JILE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBSTdHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQXdDbkQsTUFBTSxPQUFPLDBCQUEwQjtJQUNuQyw4QkFBOEI7SUFDOUIsSUFDSSxRQUFRLENBQUMsS0FBbUI7UUFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFaEQsSUFBSSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25GLG1CQUFtQixHQUFHLG1CQUFtQixHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQTZCLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBK0RELGNBQWM7SUFDZCxJQUFJLFlBQVk7UUFDWixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUM7SUFDOUQsQ0FBQztJQVlELGNBQWM7SUFDZCxZQUNxQixjQUE2QixFQUM3QixJQUF1QjtRQUR2QixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QixTQUFJLEdBQUosSUFBSSxDQUFtQjtRQS9FNUMsbUJBQW1CO1FBRW5CLGVBQVUsR0FBZ0IsQ0FBQyxDQUFDO1FBRTVCLDhCQUE4QjtRQUU5QixvQkFBZSxHQUErQjtZQUMxQyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUU7U0FDbkYsQ0FBQztRQU1GLHlEQUF5RDtRQUV6RCxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUV0QixvRUFBb0U7UUFFcEUsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQix5REFBeUQ7UUFFekQsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUVsRCwrQ0FBK0M7UUFFL0Msd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztRQVlyRCxjQUFjO1FBRUcsa0JBQWEsR0FBRyx1QkFBdUIsQ0FBQztRQUV6RDs7V0FFRztRQUNILCtCQUEwQixHQUFHLElBQUksZUFBZSxDQUFvQixJQUFJLENBQUMsQ0FBQztRQUUxRSxjQUFjO1FBQ2Qsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFLeEIsY0FBYztRQUNkLGNBQVMsR0FBcUIsRUFBRSxDQUFDO1FBRWpDLGNBQWM7UUFDZCxrQkFBYSxHQUFxQixJQUFJLENBQUM7UUFPdkMsY0FBYztRQUNKLDJCQUFzQixHQUFHLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTlELGNBQWM7UUFDSixxQkFBZ0IsR0FBRyxNQUFNLENBQUMsZUFBZSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDekUsY0FBYztRQUNKLHlCQUFvQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBUzFFLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BCLE1BQU0sQ0FBQyxHQUFHLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBYSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7WUFDckUsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNILGFBQWEsQ0FBQyxPQUF1QjtRQUNqQyxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUM3QixJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQztRQUM3QixJQUFJLENBQUMsc0JBQXNCLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxxQ0FBcUM7SUFDckMsNEJBQTRCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQztJQUM1QyxDQUFDO0lBRUQsZ0VBQWdFO0lBQ2hFLG9CQUFvQjtRQUNoQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO0lBQ25DLENBQUM7SUFFRDs7T0FFRztJQUNILGtCQUFrQjtRQUNkLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hCLE9BQU87UUFDWCxDQUFDO1FBQ0QsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hHLElBQUksQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ3pELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDN0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxjQUFjO0lBQ2QsZUFBZTtRQUNYLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hCLE9BQU87UUFDWCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQW9CLDBCQUEwQixFQUFFO1lBQ3RGLElBQUksRUFBRTtnQkFDRixvQkFBb0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDbkUsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJO2FBQzlDO1NBQ0osQ0FBQyxDQUFDO1FBQ0gsU0FBUyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUM7WUFDNUIsSUFBSSxFQUFFLENBQUMsTUFBa0IsRUFBRSxFQUFFO2dCQUN6QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDNUYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDekMsSUFBSSxDQUFDLGFBQWEsR0FBRyxVQUFVLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO2dCQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzlCLENBQUM7WUFDRCxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUUsQ0FBQztTQUNsQixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGtCQUFrQixDQUFDLE1BQVMsRUFBRSxhQUFxQjtRQUMvQyxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLGVBQWUsR0FBRyxpQkFBaUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUM5RSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDaEQsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsY0FBYztJQUNkLGlCQUFpQjtRQUNiLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hCLE9BQU87UUFDWCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQWdCLDZCQUE2QixFQUFFO1lBQ3JGLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUztTQUN2QixDQUFDLENBQUM7UUFFSCxTQUFTLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQztZQUM1QixJQUFJLEVBQUUsQ0FBQyxRQUF1QixFQUFFLEVBQUU7Z0JBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO2dCQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDN0MsQ0FBQztZQUNELEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRSxDQUFDO1NBQ2xCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxjQUFjO0lBQ2QsZUFBZSxDQUFDLE1BQW1CO1FBQy9CLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxjQUFjO0lBQ2QsYUFBYTtRQUNULElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELGNBQWM7SUFDZCxRQUFRLENBQUMsS0FBYSxFQUFFLElBQW9CO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsY0FBYztJQUNOLGtCQUFrQixDQUFDLEtBQW1CO1FBQzFDLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDOzhHQXBOUSwwQkFBMEI7a0dBQTFCLDBCQUEwQixnT0EyQmYsZ0JBQWdCLHNDQUloQixnQkFBZ0Isb0tBL0R6QjtZQUNQO2dCQUNJLE9BQU8sRUFBRSxzQkFBc0I7Z0JBQy9CLFdBQVcsRUFBRSwwQkFBMEI7YUFDMUM7U0FDSixrRUF3RWEsb0NBQW9DLHFKQ3RJdEQsNHRKQXFHQSxxNkdEcENRLGdCQUFnQiwrSkFDaEIsdUJBQXVCLG1GQUN2QixjQUFjLDBIQUNkLGdCQUFnQixvSkFDaEIsb0JBQW9CLHdIQUNwQiwwQkFBMEIsNEZBQzFCLFlBQVkscUhBQ1osZ0JBQWdCLDBEQUNoQixtQkFBbUIsa0ZBQ25CLG9CQUFvQixrYkFDcEIsYUFBYSw4UUFDYixpQkFBaUIsb05BQ2pCLGlCQUFpQixvSUFDakIsa0JBQWtCLDZGQUNsQiwwQkFBMEIsNEZBQzFCLGlCQUFpQiwyREFDakIsa0JBQWtCLHVIQUNsQixlQUFlLCtDQUNmLGlCQUFpQixtREFDakIsU0FBUyw4Q0FDVCxPQUFPLG9GQUNQLGVBQWU7OzJGQUdWLDBCQUEwQjtrQkF0Q3RDLFNBQVM7K0JBQ0ksd0JBQXdCLGlCQUduQixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxzQkFBc0I7NEJBQy9CLFdBQVcsNEJBQTRCO3lCQUMxQztxQkFDSixjQUNXLElBQUksV0FDUDt3QkFDTCxnQkFBZ0I7d0JBQ2hCLHVCQUF1Qjt3QkFDdkIsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLG9CQUFvQjt3QkFDcEIsMEJBQTBCO3dCQUMxQixZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLGFBQWE7d0JBQ2IsaUJBQWlCO3dCQUNqQixpQkFBaUI7d0JBQ2pCLGtCQUFrQjt3QkFDbEIsMEJBQTBCO3dCQUMxQixpQkFBaUI7d0JBQ2pCLGtCQUFrQjt3QkFDbEIsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLFNBQVM7d0JBQ1QsT0FBTzt3QkFDUCxlQUFlO3FCQUNsQjtrSEFLRyxRQUFRO3NCQURYLEtBQUs7Z0JBWU4sVUFBVTtzQkFEVCxLQUFLO2dCQUtOLGVBQWU7c0JBRGQsS0FBSztnQkFPTixRQUFRO3NCQURQLEtBQUs7Z0JBS04sYUFBYTtzQkFEWixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUt0QyxRQUFRO3NCQURQLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBS3RDLGNBQWM7c0JBRGIsTUFBTTtnQkFLUCxtQkFBbUI7c0JBRGxCLE1BQU07Z0JBT1AsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLG9DQUFvQztnQkFLbEQsUUFBUTtzQkFEUCxTQUFTO3VCQUFDLFNBQVM7Z0JBS0gsYUFBYTtzQkFEN0IsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIGVmZmVjdCxcbiAgICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaWx0ZXJTdHJpbmdzUGlwZSwgTnVsbGFibGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQge1xuICAgIEJhckNvbXBvbmVudCxcbiAgICBCYXJFbGVtZW50RGlyZWN0aXZlLFxuICAgIEJhckxlZnREaXJlY3RpdmUsXG4gICAgQmFyUmlnaHREaXJlY3RpdmUsXG4gICAgQnV0dG9uQmFyQ29tcG9uZW50XG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9iYXInO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2J1dHRvbic7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2RpYWxvZyc7XG5pbXBvcnQgeyBEeW5hbWljUGFnZSwgRkRfRFlOQU1JQ19QQUdFIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2R5bmFtaWMtcGFnZSc7XG5pbXBvcnQgeyBMaXN0Q29tcG9uZW50LCBMaXN0SXRlbUNvbXBvbmVudCwgTGlzdExpbmtEaXJlY3RpdmUsIExpc3RUaXRsZURpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9saXN0JztcbmltcG9ydCB7XG4gICAgUG9wb3ZlckJvZHlDb21wb25lbnQsXG4gICAgUG9wb3ZlckJvZHlGb290ZXJEaXJlY3RpdmUsXG4gICAgUG9wb3ZlckJvZHlIZWFkZXJEaXJlY3RpdmUsXG4gICAgUG9wb3ZlckNvbXBvbmVudCxcbiAgICBQb3BvdmVyQ29udHJvbENvbXBvbmVudCxcbiAgICBUcmlnZ2VyQ29uZmlnXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9wb3BvdmVyJztcbmltcG9ydCB7IEhlYWRlclNpemVzLCBUaXRsZUNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS90aXRsZSc7XG5pbXBvcnQgeyBGZFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2kxOG4nO1xuaW1wb3J0IHsgRkRQX0RZTkFNSUNfUEFHRSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vZHluYW1pYy1wYWdlJztcbmltcG9ydCB7IFNlYXJjaEZpZWxkQ29tcG9uZW50LCBTZWFyY2hJbnB1dCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vc2VhcmNoLWZpZWxkJztcbmltcG9ydCBlcXVhbCBmcm9tICdmYXN0LWRlZXAtZXF1YWwnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNYW5hZ2VWYXJpYW50SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tYW5hZ2UtdmFyaWFudC1pdGVtL21hbmFnZS12YXJpYW50LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IE1hbmFnZVZhcmlhbnRzRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL21hbmFnZS12YXJpYW50cy1kaWFsb2cvbWFuYWdlLXZhcmlhbnRzLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVmFyaWFudE1hbmFnZW1lbnREaXJ0eUxhYmVsRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3ZhcmlhbnQtbWFuYWdlbWVudC1kaXJ0eS1sYWJlbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU2F2ZURpYWxvZ0NvbnRleHQgfSBmcm9tICcuL21vZGVscy9zYXZlLWRpYWxvZy5tb2RlbCc7XG5pbXBvcnQgeyBWYXJpYW50TWFuYWdlbWVudCB9IGZyb20gJy4vbW9kZWxzL3ZhcmlhbnQtbWFuYWdlbWVudCc7XG5pbXBvcnQgeyBOZXdWYXJpYW50LCBWYXJpYW50IH0gZnJvbSAnLi9tb2RlbHMvdmFyaWFudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRkRQX1ZBUklBTlRfTUFOQUdFTUVOVCB9IGZyb20gJy4vdG9rZW5zJztcbmltcG9ydCB7IFZhcmlhbnRJdGVtIH0gZnJvbSAnLi92YXJpYW50LWl0ZW0uY2xhc3MnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC12YXJpYW50LW1hbmFnZW1lbnQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi92YXJpYW50LW1hbmFnZW1lbnQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi92YXJpYW50LW1hbmFnZW1lbnQuY29tcG9uZW50LnNjc3MnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZEUF9WQVJJQU5UX01BTkFHRU1FTlQsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogVmFyaWFudE1hbmFnZW1lbnRDb21wb25lbnRcbiAgICAgICAgfVxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIFBvcG92ZXJDb21wb25lbnQsXG4gICAgICAgIFBvcG92ZXJDb250cm9sQ29tcG9uZW50LFxuICAgICAgICBUaXRsZUNvbXBvbmVudCxcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgUG9wb3ZlckJvZHlDb21wb25lbnQsXG4gICAgICAgIFBvcG92ZXJCb2R5SGVhZGVyRGlyZWN0aXZlLFxuICAgICAgICBCYXJDb21wb25lbnQsXG4gICAgICAgIEJhckxlZnREaXJlY3RpdmUsXG4gICAgICAgIEJhckVsZW1lbnREaXJlY3RpdmUsXG4gICAgICAgIFNlYXJjaEZpZWxkQ29tcG9uZW50LFxuICAgICAgICBMaXN0Q29tcG9uZW50LFxuICAgICAgICBMaXN0SXRlbUNvbXBvbmVudCxcbiAgICAgICAgTGlzdExpbmtEaXJlY3RpdmUsXG4gICAgICAgIExpc3RUaXRsZURpcmVjdGl2ZSxcbiAgICAgICAgUG9wb3ZlckJvZHlGb290ZXJEaXJlY3RpdmUsXG4gICAgICAgIEJhclJpZ2h0RGlyZWN0aXZlLFxuICAgICAgICBCdXR0b25CYXJDb21wb25lbnQsXG4gICAgICAgIEZkVHJhbnNsYXRlUGlwZSxcbiAgICAgICAgRmlsdGVyU3RyaW5nc1BpcGUsXG4gICAgICAgIEFzeW5jUGlwZSxcbiAgICAgICAgTmdDbGFzcyxcbiAgICAgICAgQnV0dG9uQ29tcG9uZW50XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBWYXJpYW50TWFuYWdlbWVudENvbXBvbmVudDxUID0gYW55PiBpbXBsZW1lbnRzIFZhcmlhbnRNYW5hZ2VtZW50PFQ+IHtcbiAgICAvKiogSW5pdGlhbCB2YXJpYW50cyBhcnJheS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCB2YXJpYW50cyhpdGVtczogVmFyaWFudDxUPltdKSB7XG4gICAgICAgIHRoaXMuX3ZhcmlhbnRzID0gdGhpcy5fdHJhbnNmb3JtVmFyaWFudHMoaXRlbXMpO1xuXG4gICAgICAgIGxldCBjdXJyZW50VmFyaWFudEluZGV4ID0gdGhpcy5fdmFyaWFudHMuZmluZEluZGV4KCh2YXJpYW50KSA9PiB2YXJpYW50LmlzRGVmYXVsdCk7XG4gICAgICAgIGN1cnJlbnRWYXJpYW50SW5kZXggPSBjdXJyZW50VmFyaWFudEluZGV4ID4gLTEgPyBjdXJyZW50VmFyaWFudEluZGV4IDogMDtcbiAgICAgICAgY29uc3QgY3VycmVudFZhcmlhbnQgPSB0aGlzLl92YXJpYW50c1tjdXJyZW50VmFyaWFudEluZGV4XTtcbiAgICAgICAgdGhpcy5zZWxlY3RWYXJpYW50KGN1cnJlbnRWYXJpYW50IGFzIFZhcmlhbnRJdGVtKTtcbiAgICB9XG5cbiAgICAvKiogSGVhZGVyIHNpemUuICovXG4gICAgQElucHV0KClcbiAgICBoZWFkZXJTaXplOiBIZWFkZXJTaXplcyA9IDQ7XG5cbiAgICAvKiogUG9wb3ZlciB0cmlnZ2VyIGV2ZW50cy4gKi9cbiAgICBASW5wdXQoKVxuICAgIHBvcG92ZXJUcmlnZ2VyczogKHN0cmluZyB8IFRyaWdnZXJDb25maWcpW10gPSBbXG4gICAgICAgIHsgdHJpZ2dlcjogJ2NsaWNrJywgc3RvcFByb3BhZ2F0aW9uOiB0cnVlLCBjbG9zZUFjdGlvbjogdHJ1ZSwgb3BlbkFjdGlvbjogdHJ1ZSB9XG4gICAgXTtcblxuICAgIC8qKiBVc2VyJ3MgbmFtZSB3aGljaCB3aWxsIGJlIGFwcGxpZWQgdG8gYWxsIG5ldyB2YXJpYW50cyB1c2VyIGNyZWF0ZXMuICovXG4gICAgQElucHV0KClcbiAgICB1c2VyTmFtZTogc3RyaW5nO1xuXG4gICAgLyoqIFdoZXRoZXIgdG8gZGlzcGxheSBzZWFyY2ggZmllbGQgZm9yIHZhcmlhbnRzIGxpc3QuICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgZGlzcGxheVNlYXJjaCA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIHZhcmlhbnQgbWFuYWdlbWVudCBjb21wb25lbnQgaXMgaW4gcmVhZG9ubHkgbW9kZS4gKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICByZWFkb25seSA9IGZhbHNlO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB2YXJpYW50cyBkYXRhIGhhcyBiZWVuIHVwZGF0ZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgdmFyaWFudHNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFZhcmlhbnQ8VD5bXT4oKTtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gbmV3IHZhcmlhbnQgc2VsZWN0ZWQuICovXG4gICAgQE91dHB1dCgpXG4gICAgYWN0aXZlVmFyaWFudENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VmFyaWFudDxUPj4oKTtcblxuICAgIC8qKlxuICAgICAqIEN1c3RvbSBkaXJ0eSBsYWJlbCBkaXJlY3RpdmUuXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZChWYXJpYW50TWFuYWdlbWVudERpcnR5TGFiZWxEaXJlY3RpdmUpXG4gICAgZGlydHlMYWJlbDogVmFyaWFudE1hbmFnZW1lbnREaXJ0eUxhYmVsRGlyZWN0aXZlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdwb3BvdmVyJylcbiAgICBfcG9wb3ZlcjogUG9wb3ZlckNvbXBvbmVudDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgcHJpdmF0ZSByZWFkb25seSBfaW5pdGlhbENsYXNzID0gJ2ZkLXZhcmlhbnQtbWFuYWdlbWVudCc7XG5cbiAgICAvKipcbiAgICAgKiBVc2VkIGludGVybmFsbHkgZm9yIGNvbW11bmljYXRpbmcgd2l0aCB3cmFwcGVyIGNvbXBvbmVudC5cbiAgICAgKi9cbiAgICBhY3RpdmVWYXJpYW50Q2hhbmdlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VmFyaWFudDxUPiB8IG51bGw+KG51bGwpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfdmFyaWFudENoYW5nZWQgPSBmYWxzZTtcblxuICAgIC8qKiBTZWxlY3RlZCB2YXJpYW50LiAqL1xuICAgIGFjdGl2ZVZhcmlhbnQhOiBWYXJpYW50SXRlbTxUPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3ZhcmlhbnRzOiBWYXJpYW50SXRlbTxUPltdID0gW107XG5cbiAgICAvKiogQEhpZGRlbiAqL1xuICAgIF9maWx0ZXJQaHJhc2U6IE51bGxhYmxlPHN0cmluZz4gPSBudWxsO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgX2R5bmFtaWNQYWdlKCk6IER5bmFtaWNQYWdlIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb3JlRHluYW1pY1BhZ2UgfHwgdGhpcy5fcGxhdGZvcm1EeW5hbWljUGFnZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfZHluYW1pY1BhZ2VDb2xsYXBzZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfY29yZUR5bmFtaWNQYWdlID0gaW5qZWN0KEZEX0RZTkFNSUNfUEFHRSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfcGxhdGZvcm1EeW5hbWljUGFnZSA9IGluamVjdChGRFBfRFlOQU1JQ19QQUdFLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICAgIC8qKiBASGlkZGVuICovXG4gICAgcHJpdmF0ZSBfb3JpZ2luYWxBY3RpdmVWYXJpYW50OiBWYXJpYW50SXRlbTxUPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2RpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHtcbiAgICAgICAgaWYgKHRoaXMuX2R5bmFtaWNQYWdlKSB7XG4gICAgICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2R5bmFtaWNQYWdlQ29sbGFwc2VkJC5uZXh0KHRoaXMuX2R5bmFtaWNQYWdlIS5jb2xsYXBzZWQoKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1hbnVhbGx5IHNlbGVjdCB2YXJpYW50LlxuICAgICAqIEBwYXJhbSB2YXJpYW50IFZhcmlhbnQgdG8gc2VsZWN0LlxuICAgICAqL1xuICAgIHNlbGVjdFZhcmlhbnQodmFyaWFudDogVmFyaWFudEl0ZW08VD4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdmFyaWFudENoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5hY3RpdmVWYXJpYW50ID0gdmFyaWFudDtcbiAgICAgICAgdGhpcy5fb3JpZ2luYWxBY3RpdmVWYXJpYW50ID0gdmFyaWFudC5jbG9uZSh7fSwgZmFsc2UpO1xuICAgICAgICB0aGlzLmFjdGl2ZVZhcmlhbnRDaGFuZ2UuZW1pdCh2YXJpYW50KTtcbiAgICAgICAgdGhpcy5hY3RpdmVWYXJpYW50Q2hhbmdlU3ViamVjdC5uZXh0KHZhcmlhbnQpO1xuICAgIH1cblxuICAgIC8qKiBSZXR1cm5zIG9yaWdpbmFsIHZhcmlhbnQgZGF0YS4gKi9cbiAgICBnZXRPcmlnaW5hbEFjdGl2ZVZhcmlhbnREYXRhKCk6IFZhcmlhbnQ8VD5bJ2RhdGEnXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vcmlnaW5hbEFjdGl2ZVZhcmlhbnQuZGF0YTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyBjdXJyZW50IGFjdGl2ZSB2YXJpYW50IGRhdGEgd2l0aCBhcHBsaWVkIGNoYW5nZXMuICovXG4gICAgZ2V0QWN0aXZlVmFyaWFudERhdGEoKTogVmFyaWFudDxUPlsnZGF0YSddIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZlVmFyaWFudC5kYXRhO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNhdmVzIGN1cnJlbnQgdmFyaWFudCB3aXRoIGl0cyBjb25maWd1cmF0aW9uLlxuICAgICAqL1xuICAgIHNhdmVDdXJyZW50VmFyaWFudCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucmVhZG9ubHkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjdXJyZW50VmFyaWFudEluZGV4ID0gdGhpcy5fdmFyaWFudHMuZmluZEluZGV4KCh2YXJpYW50KSA9PiB2YXJpYW50LmlkID09PSB0aGlzLmFjdGl2ZVZhcmlhbnQuaWQpO1xuICAgICAgICB0aGlzLl92YXJpYW50c1tjdXJyZW50VmFyaWFudEluZGV4XSA9IHRoaXMuYWN0aXZlVmFyaWFudDtcbiAgICAgICAgdGhpcy5fb3JpZ2luYWxBY3RpdmVWYXJpYW50ID0gdGhpcy5hY3RpdmVWYXJpYW50LmNsb25lKHt9LCBmYWxzZSk7XG4gICAgICAgIHRoaXMuX3ZhcmlhbnRDaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMudmFyaWFudHNDaGFuZ2UuZW1pdCh0aGlzLl92YXJpYW50cyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb3BlblNhdmVEaWFsb2coKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnJlYWRvbmx5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fcG9wb3Zlcj8uY2xvc2UoZmFsc2UpO1xuICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLl9kaWFsb2dTZXJ2aWNlLm9wZW48U2F2ZURpYWxvZ0NvbnRleHQ+KE1hbmFnZVZhcmlhbnRJdGVtQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgZXhpc3RpbmdWYXJpYW50TmFtZXM6IHRoaXMuX3ZhcmlhbnRzLm1hcCgodmFyaWFudCkgPT4gdmFyaWFudC5uYW1lKSxcbiAgICAgICAgICAgICAgICBjdXJyZW50VmFyaWFudE5hbWU6IHRoaXMuYWN0aXZlVmFyaWFudC5uYW1lXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6IChyZXN1bHQ6IE5ld1ZhcmlhbnQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdWYXJpYW50ID0gdGhpcy5hY3RpdmVWYXJpYW50LmNsb25lKHsgLi4ucmVzdWx0LCAuLi57IGNyZWF0ZWRCeTogdGhpcy51c2VyTmFtZSB9IH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuX3ZhcmlhbnRzLnB1c2gobmV3VmFyaWFudCk7XG4gICAgICAgICAgICAgICAgdGhpcy52YXJpYW50c0NoYW5nZS5lbWl0KHRoaXMuX3ZhcmlhbnRzKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZVZhcmlhbnQgPSBuZXdWYXJpYW50O1xuICAgICAgICAgICAgICAgIHRoaXMuX3ZhcmlhbnRDaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvcjogKCkgPT4ge31cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXBkYXRlcyBjdXJyZW50IGFjdGl2ZSBwcmVzZXQgd2l0aCBuZXcgY29uZmlndXJhdGlvbi5cbiAgICAgKiBAcGFyYW0gcHJlc2V0IFByZXNldCBjb25maWd1cmF0aW9uLlxuICAgICAqIEBwYXJhbSBjb21wb25lbnROYW1lIGNvbXBvbmVudCB0byB3aGljaCB0aGlzIHByZXNldCBiZWxvbmdzIHRvLlxuICAgICAqL1xuICAgIHVwZGF0ZUFjdGl2ZVByZXNldChwcmVzZXQ6IFQsIGNvbXBvbmVudE5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBhY3RpdmVWYXJpYW50RGF0YSA9IHRoaXMuX29yaWdpbmFsQWN0aXZlVmFyaWFudC5kYXRhW2NvbXBvbmVudE5hbWVdO1xuICAgICAgICB0aGlzLl92YXJpYW50Q2hhbmdlZCA9IGFjdGl2ZVZhcmlhbnREYXRhICYmICFlcXVhbChwcmVzZXQsIGFjdGl2ZVZhcmlhbnREYXRhKTtcbiAgICAgICAgdGhpcy5hY3RpdmVWYXJpYW50LmRhdGFbY29tcG9uZW50TmFtZV0gPSBwcmVzZXQ7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb3Blbk1hbmFnZURpYWxvZygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucmVhZG9ubHkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9wb3BvdmVyPy5jbG9zZShmYWxzZSk7XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3BlbjxWYXJpYW50SXRlbVtdPihNYW5hZ2VWYXJpYW50c0RpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgICAgICAgZGF0YTogdGhpcy5fdmFyaWFudHNcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBuZXh0OiAodmFyaWFudHM6IFZhcmlhbnRJdGVtW10pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl92YXJpYW50cyA9IHZhcmlhbnRzO1xuICAgICAgICAgICAgICAgIHRoaXMudmFyaWFudHNDaGFuZ2UuZW1pdCh0aGlzLl92YXJpYW50cyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXJyb3I6ICgpID0+IHt9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uU2VhcmNoU3VibWl0KHNlYXJjaDogU2VhcmNoSW5wdXQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZmlsdGVyUGhyYXNlID0gc2VhcmNoLnRleHQ7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY2FuY2VsU2VhcmNoKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9maWx0ZXJQaHJhc2UgPSBudWxsO1xuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBASGlkZGVuICovXG4gICAgX3RyYWNrRm4oaW5kZXg6IG51bWJlciwgaXRlbTogVmFyaWFudEl0ZW08VD4pOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gaXRlbS5pZDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RyYW5zZm9ybVZhcmlhbnRzKGl0ZW1zOiBWYXJpYW50PFQ+W10pOiBWYXJpYW50SXRlbVtdIHtcbiAgICAgICAgcmV0dXJuIGl0ZW1zLm1hcCgodmFyaWFudCkgPT4gbmV3IFZhcmlhbnRJdGVtKHZhcmlhbnQpKTtcbiAgICB9XG59XG4iLCJAaWYgKGFjdGl2ZVZhcmlhbnQpIHtcbiAgICA8ZmQtcG9wb3ZlclxuICAgICAgICAjcG9wb3ZlclxuICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxuICAgICAgICBbbm9BcnJvd109XCJmYWxzZVwiXG4gICAgICAgIFtmb2N1c0F1dG9DYXB0dXJlXT1cInRydWVcIlxuICAgICAgICBbZm9jdXNUcmFwcGVkXT1cInRydWVcIlxuICAgICAgICBhZGRpdGlvbmFsQm9keUNsYXNzPVwiZmQtdmFyaWFudC1tYW5hZ2VtZW50X19wb3BvdmVyLWJvZHlcIlxuICAgICAgICBbdHJpZ2dlcnNdPVwicG9wb3ZlclRyaWdnZXJzXCJcbiAgICA+XG4gICAgICAgIDxmZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmQtdmFyaWFudC1tYW5hZ2VtZW50X19oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICA8aDRcbiAgICAgICAgICAgICAgICAgICAgZmQtdGl0bGVcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgJ2ZkLXZhcmlhbnQtbWFuYWdlbWVudF9fdGl0bGUnOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2ZkLXZhcmlhbnQtbWFuYWdlbWVudF9fdGl0bGUtLWR5bmFtaWMtcGFnZSc6IF9keW5hbWljUGFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdmZC12YXJpYW50LW1hbmFnZW1lbnRfX3RpdGxlLS1keW5hbWljLXBhZ2UtLWNvbGxhcHNlZCc6IF9keW5hbWljUGFnZUNvbGxhcHNlZCQgfCBhc3luY1xuICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgW2hlYWRlclNpemVdPVwiaGVhZGVyU2l6ZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBhY3RpdmVWYXJpYW50Lm5hbWUgfX1cbiAgICAgICAgICAgICAgICA8L2g0PlxuICAgICAgICAgICAgICAgIEBpZiAoX3ZhcmlhbnRDaGFuZ2VkICYmICFyZWFkb25seSkge1xuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmZC12YXJpYW50LW1hbmFnZW1lbnRfX2RpcnR5LWluZGljYXRvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZmQtdmFyaWFudC1tYW5hZ2VtZW50X19kaXJ0eS1pbmRpY2F0b3ItLWN1c3RvbV09XCIhIWRpcnR5TGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHREaXJ0eUluZGljYXRvcj4qPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRpcnR5TGFiZWwgPyBkaXJ0eUxhYmVsLnRlbXBsYXRlUmVmIDogZGVmYXVsdERpcnR5SW5kaWNhdG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDxidXR0b24gZmQtYnV0dG9uIFtmZE1lbnVdPVwidHJ1ZVwiIGZkVHlwZT1cInRyYW5zcGFyZW50XCIgW2F0dHIuYXJpYS1oYXNwb3B1cF09XCJ0cnVlXCI+PC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mZC1wb3BvdmVyLWNvbnRyb2w+XG4gICAgICAgIDxmZC1wb3BvdmVyLWJvZHk+XG4gICAgICAgICAgICA8ZGl2IGZkLXBvcG92ZXItYm9keS1oZWFkZXI+XG4gICAgICAgICAgICAgICAgPGRpdiBmZC1iYXIgW2JhckRlc2lnbl09XCJkaXNwbGF5U2VhcmNoID8gJ2hlYWRlci13aXRoLXN1YmhlYWRlcicgOiAnaGVhZGVyJ1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1sZWZ0PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWJhci1lbGVtZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNSBmZC10aXRsZT57eyAncGxhdGZvcm1WYXJpYW50TWFuYWdlbWVudC5teVZpZXdzJyB8IGZkVHJhbnNsYXRlIH19PC9oNT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIEBpZiAoZGlzcGxheVNlYXJjaCkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhciBiYXJEZXNpZ249XCJoZWFkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyLWxlZnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWJhci1lbGVtZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmRwLXNlYXJjaC1maWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidwbGF0Zm9ybVZhcmlhbnRNYW5hZ2VtZW50LnNlYXJjaCcgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VhcmNoU3VibWl0KT1cIl9vblNlYXJjaFN1Ym1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYW5jZWxTZWFyY2gpPVwiX2NhbmNlbFNlYXJjaCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlUmVmcmVzaF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZmRwLXNlYXJjaC1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLWJhci1lbGVtZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHVsIGZkLWxpc3Q+XG4gICAgICAgICAgICAgICAgQGZvciAoXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQgb2YgX3ZhcmlhbnRzIHwgZmRGaWx0ZXJTdHJpbmdzOiB7IHNlYXJjaFRlcm06IF9maWx0ZXJQaHJhc2UsIGtleTogJ25hbWUnIH07XG4gICAgICAgICAgICAgICAgICAgIHRyYWNrIHZhcmlhbnQuaWRcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgPGxpIGZkLWxpc3QtaXRlbSBbc2VsZWN0ZWRdPVwidmFyaWFudC5uYW1lID09PSBhY3RpdmVWYXJpYW50Lm5hbWVcIiAoY2xpY2spPVwic2VsZWN0VmFyaWFudCh2YXJpYW50KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC1saW5rPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGU+e3sgdmFyaWFudC5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICBAaWYgKCFyZWFkb25seSkge1xuICAgICAgICAgICAgICAgIDxkaXYgZmQtcG9wb3Zlci1ib2R5LWZvb3Rlcj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBmZC1iYXIgYmFyRGVzaWduPVwiZm9vdGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhci1yaWdodD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKCFhY3RpdmVWYXJpYW50LnJlYWRvbmx5ICYmIF92YXJpYW50Q2hhbmdlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtYnV0dG9uLWJhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwiZW1waGFzaXplZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ3BsYXRmb3JtVmFyaWFudE1hbmFnZW1lbnQuc2F2ZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2F2ZUN1cnJlbnRWYXJpYW50KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZkVHlwZV09XCJhY3RpdmVWYXJpYW50LnJlYWRvbmx5IHx8ICFfdmFyaWFudENoYW5nZWQgPyAnZW1waGFzaXplZCcgOiAndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidwbGF0Zm9ybVZhcmlhbnRNYW5hZ2VtZW50LnNhdmVBcycgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJfb3BlblNhdmVEaWFsb2coKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZmQtYnV0dG9uLWJhcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtYnV0dG9uLWJhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ3BsYXRmb3JtVmFyaWFudE1hbmFnZW1lbnQubWFuYWdlJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9vcGVuTWFuYWdlRGlhbG9nKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2ZkLWJ1dHRvbi1iYXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZmQtcG9wb3Zlci1ib2R5PlxuICAgIDwvZmQtcG9wb3Zlcj5cbn1cbiJdfQ==
|
|
@@ -388,7 +388,7 @@ class VariantManagementComponent {
|
|
|
388
388
|
provide: FDP_VARIANT_MANAGEMENT,
|
|
389
389
|
useExisting: VariantManagementComponent
|
|
390
390
|
}
|
|
391
|
-
], queries: [{ propertyName: "dirtyLabel", first: true, predicate: VariantManagementDirtyLabelDirective, descendants: true }], viewQueries: [{ propertyName: "_popover", first: true, predicate: ["popover"], descendants: true }], ngImport: i0, template: "@if (activeVariant) {\n <fd-popover\n #popover\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\n fd-title\n [ngClass]=\"{\n 'fd-variant-management__title': true,\n 'fd-variant-management__title--dynamic-page': _dynamicPage,\n 'fd-variant-management__title--dynamic-page--collapsed': _dynamicPageCollapsed$ | async\n }\"\n [headerSize]=\"headerSize\"\n >\n {{ activeVariant.name }}\n </h4>\n @if (_variantChanged && !readonly) {\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 }\n <button fd-button [fdMenu]=\"true\" fdType=\"transparent\" [attr.aria-haspopup]=\"true\"></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 @if (displaySearch) {\n <div fd-bar barDesign=\"header\">\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 }\n </div>\n <ul fd-list>\n @for (\n variant of _variants | fdFilterStrings: { searchTerm: _filterPhrase, key: 'name' };\n track variant.id\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 }\n </ul>\n @if (!readonly) {\n <div fd-popover-body-footer>\n <div fd-bar barDesign=\"footer\">\n <div fd-bar-right>\n @if (!activeVariant.readonly && _variantChanged) {\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'platformVariantManagement.save' | fdTranslate\"\n (click)=\"saveCurrentVariant()\"\n >\n </fd-button-bar>\n }\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 }\n </fd-popover-body>\n </fd-popover>\n}\n", styles: [".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:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-variant-management:after,.fd-variant-management:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-variant-management__header{-webkit-box-sizing:border-box;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;gap:.125rem;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-variant-management__header:after,.fd-variant-management__header:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-variant-management .fd-variant-management__title{--fdTitle_Color:var(--fdVariantManagementHeadingColor)}.fd-variant-management .fd-variant-management__title.is-hover,.fd-variant-management .fd-variant-management__title:hover{--fdTitle_Color:var(--fdVariantManagementHeadingHoverColor)}.fd-variant-management .fd-variant-management__title.is-active,.fd-variant-management .fd-variant-management__title:active{--fdTitle_Color:var(--fdVariantManagementHeadingActiveColor)}.fd-variant-management .fd-variant-management__title.is-disabled,.fd-variant-management .fd-variant-management__title:disabled,.fd-variant-management .fd-variant-management__title[aria-disabled=true]{--fdTitle_Color:var(--sapGroup_TitleTextColor);cursor:default}.fd-variant-management .fd-variant-management__title--object-header{--fdTitle_Font_Size:var(--sapObjectHeader_Title_FontSize);--fdTitle_Font_Family:var(--sapObjectHeader_Title_FontFamily)}.fd-variant-management .fd-variant-management__title--snapped-object-header{--fdTitle_Font_Size:var(--sapObjectHeader_Title_SnappedFontSize);--fdTitle_Font_Family:var(--sapObjectHeader_Title_FontFamily)}.fd-variant-management .fd-variant-management__title--table{--fdTitle_Font_Size:var(--sapGroup_Title_FontSize)}.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:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-variant-management__dirty-indicator:after,.fd-variant-management__dirty-indicator:before{-webkit-box-sizing:inherit;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:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center}\n/*!\n * Fundamental Library Styles v0.37.7\n * Copyright (c) 2024 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */\n"], dependencies: [{ kind: "component", type: PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "component", type: PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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", "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: "component", type: ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id"], 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", "ariaLabelledby", "id"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }, { kind: "pipe", type: FilterStringsPipe, name: "fdFilterStrings" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
391
|
+
], queries: [{ propertyName: "dirtyLabel", first: true, predicate: VariantManagementDirtyLabelDirective, descendants: true }], viewQueries: [{ propertyName: "_popover", first: true, predicate: ["popover"], descendants: true }], ngImport: i0, template: "@if (activeVariant) {\n <fd-popover\n #popover\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\n fd-title\n [ngClass]=\"{\n 'fd-variant-management__title': true,\n 'fd-variant-management__title--dynamic-page': _dynamicPage,\n 'fd-variant-management__title--dynamic-page--collapsed': _dynamicPageCollapsed$ | async\n }\"\n [headerSize]=\"headerSize\"\n >\n {{ activeVariant.name }}\n </h4>\n @if (_variantChanged && !readonly) {\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 }\n <button fd-button [fdMenu]=\"true\" fdType=\"transparent\" [attr.aria-haspopup]=\"true\"></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 @if (displaySearch) {\n <div fd-bar barDesign=\"header\">\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 }\n </div>\n <ul fd-list>\n @for (\n variant of _variants | fdFilterStrings: { searchTerm: _filterPhrase, key: 'name' };\n track variant.id\n ) {\n <li fd-list-item [selected]=\"variant.name === activeVariant.name\" (click)=\"selectVariant(variant)\">\n <span fd-list-link>\n <span fd-list-title>{{ variant.name }}</span>\n </span>\n </li>\n }\n </ul>\n @if (!readonly) {\n <div fd-popover-body-footer>\n <div fd-bar barDesign=\"footer\">\n <div fd-bar-right>\n @if (!activeVariant.readonly && _variantChanged) {\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'platformVariantManagement.save' | fdTranslate\"\n (click)=\"saveCurrentVariant()\"\n >\n </fd-button-bar>\n }\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 }\n </fd-popover-body>\n </fd-popover>\n}\n", styles: [".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:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-variant-management:after,.fd-variant-management:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-variant-management__header{-webkit-box-sizing:border-box;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;gap:.125rem;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-variant-management__header:after,.fd-variant-management__header:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-variant-management .fd-variant-management__title{--fdTitle_Color:var(--fdVariantManagementHeadingColor)}.fd-variant-management .fd-variant-management__title.is-hover,.fd-variant-management .fd-variant-management__title:hover{--fdTitle_Color:var(--fdVariantManagementHeadingHoverColor)}.fd-variant-management .fd-variant-management__title.is-active,.fd-variant-management .fd-variant-management__title:active{--fdTitle_Color:var(--fdVariantManagementHeadingActiveColor)}.fd-variant-management .fd-variant-management__title.is-disabled,.fd-variant-management .fd-variant-management__title:disabled,.fd-variant-management .fd-variant-management__title[aria-disabled=true]{--fdTitle_Color:var(--sapGroup_TitleTextColor);cursor:default}.fd-variant-management .fd-variant-management__title--object-header{--fdTitle_Font_Size:var(--sapObjectHeader_Title_FontSize);--fdTitle_Font_Family:var(--sapObjectHeader_Title_FontFamily)}.fd-variant-management .fd-variant-management__title--snapped-object-header{--fdTitle_Font_Size:var(--sapObjectHeader_Title_SnappedFontSize);--fdTitle_Font_Family:var(--sapObjectHeader_Title_FontFamily)}.fd-variant-management .fd-variant-management__title--table{--fdTitle_Font_Size:var(--sapGroup_Title_FontSize)}.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:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-variant-management__dirty-indicator:after,.fd-variant-management__dirty-indicator:before{-webkit-box-sizing:inherit;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:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center}\n/*!\n * Fundamental Library Styles v0.37.7\n * Copyright (c) 2024 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */\n"], dependencies: [{ kind: "component", type: PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "component", type: PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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", "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: "component", type: ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id"], 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", "ariaLabelledby", "id"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }, { kind: "pipe", type: FilterStringsPipe, name: "fdFilterStrings" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
392
392
|
}
|
|
393
393
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: VariantManagementComponent, decorators: [{
|
|
394
394
|
type: Component,
|
|
@@ -420,7 +420,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
|
|
|
420
420
|
AsyncPipe,
|
|
421
421
|
NgClass,
|
|
422
422
|
ButtonComponent
|
|
423
|
-
], template: "@if (activeVariant) {\n <fd-popover\n #popover\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\n fd-title\n [ngClass]=\"{\n 'fd-variant-management__title': true,\n 'fd-variant-management__title--dynamic-page': _dynamicPage,\n 'fd-variant-management__title--dynamic-page--collapsed': _dynamicPageCollapsed$ | async\n }\"\n [headerSize]=\"headerSize\"\n >\n {{ activeVariant.name }}\n </h4>\n @if (_variantChanged && !readonly) {\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 }\n <button fd-button [fdMenu]=\"true\" fdType=\"transparent\" [attr.aria-haspopup]=\"true\"></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 @if (displaySearch) {\n <div fd-bar barDesign=\"header\">\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 }\n </div>\n <ul fd-list>\n @for (\n variant of _variants | fdFilterStrings: { searchTerm: _filterPhrase, key: 'name' };\n track variant.id\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 }\n </ul>\n @if (!readonly) {\n <div fd-popover-body-footer>\n <div fd-bar barDesign=\"footer\">\n <div fd-bar-right>\n @if (!activeVariant.readonly && _variantChanged) {\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'platformVariantManagement.save' | fdTranslate\"\n (click)=\"saveCurrentVariant()\"\n >\n </fd-button-bar>\n }\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 }\n </fd-popover-body>\n </fd-popover>\n}\n", styles: [".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:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-variant-management:after,.fd-variant-management:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-variant-management__header{-webkit-box-sizing:border-box;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;gap:.125rem;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-variant-management__header:after,.fd-variant-management__header:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-variant-management .fd-variant-management__title{--fdTitle_Color:var(--fdVariantManagementHeadingColor)}.fd-variant-management .fd-variant-management__title.is-hover,.fd-variant-management .fd-variant-management__title:hover{--fdTitle_Color:var(--fdVariantManagementHeadingHoverColor)}.fd-variant-management .fd-variant-management__title.is-active,.fd-variant-management .fd-variant-management__title:active{--fdTitle_Color:var(--fdVariantManagementHeadingActiveColor)}.fd-variant-management .fd-variant-management__title.is-disabled,.fd-variant-management .fd-variant-management__title:disabled,.fd-variant-management .fd-variant-management__title[aria-disabled=true]{--fdTitle_Color:var(--sapGroup_TitleTextColor);cursor:default}.fd-variant-management .fd-variant-management__title--object-header{--fdTitle_Font_Size:var(--sapObjectHeader_Title_FontSize);--fdTitle_Font_Family:var(--sapObjectHeader_Title_FontFamily)}.fd-variant-management .fd-variant-management__title--snapped-object-header{--fdTitle_Font_Size:var(--sapObjectHeader_Title_SnappedFontSize);--fdTitle_Font_Family:var(--sapObjectHeader_Title_FontFamily)}.fd-variant-management .fd-variant-management__title--table{--fdTitle_Font_Size:var(--sapGroup_Title_FontSize)}.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:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-variant-management__dirty-indicator:after,.fd-variant-management__dirty-indicator:before{-webkit-box-sizing:inherit;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:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center}\n/*!\n * Fundamental Library Styles v0.37.7\n * Copyright (c) 2024 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */\n"] }]
|
|
423
|
+
], template: "@if (activeVariant) {\n <fd-popover\n #popover\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\n fd-title\n [ngClass]=\"{\n 'fd-variant-management__title': true,\n 'fd-variant-management__title--dynamic-page': _dynamicPage,\n 'fd-variant-management__title--dynamic-page--collapsed': _dynamicPageCollapsed$ | async\n }\"\n [headerSize]=\"headerSize\"\n >\n {{ activeVariant.name }}\n </h4>\n @if (_variantChanged && !readonly) {\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 }\n <button fd-button [fdMenu]=\"true\" fdType=\"transparent\" [attr.aria-haspopup]=\"true\"></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 @if (displaySearch) {\n <div fd-bar barDesign=\"header\">\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 }\n </div>\n <ul fd-list>\n @for (\n variant of _variants | fdFilterStrings: { searchTerm: _filterPhrase, key: 'name' };\n track variant.id\n ) {\n <li fd-list-item [selected]=\"variant.name === activeVariant.name\" (click)=\"selectVariant(variant)\">\n <span fd-list-link>\n <span fd-list-title>{{ variant.name }}</span>\n </span>\n </li>\n }\n </ul>\n @if (!readonly) {\n <div fd-popover-body-footer>\n <div fd-bar barDesign=\"footer\">\n <div fd-bar-right>\n @if (!activeVariant.readonly && _variantChanged) {\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'platformVariantManagement.save' | fdTranslate\"\n (click)=\"saveCurrentVariant()\"\n >\n </fd-button-bar>\n }\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 }\n </fd-popover-body>\n </fd-popover>\n}\n", styles: [".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:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-variant-management:after,.fd-variant-management:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-variant-management__header{-webkit-box-sizing:border-box;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;gap:.125rem;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-variant-management__header:after,.fd-variant-management__header:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-variant-management .fd-variant-management__title{--fdTitle_Color:var(--fdVariantManagementHeadingColor)}.fd-variant-management .fd-variant-management__title.is-hover,.fd-variant-management .fd-variant-management__title:hover{--fdTitle_Color:var(--fdVariantManagementHeadingHoverColor)}.fd-variant-management .fd-variant-management__title.is-active,.fd-variant-management .fd-variant-management__title:active{--fdTitle_Color:var(--fdVariantManagementHeadingActiveColor)}.fd-variant-management .fd-variant-management__title.is-disabled,.fd-variant-management .fd-variant-management__title:disabled,.fd-variant-management .fd-variant-management__title[aria-disabled=true]{--fdTitle_Color:var(--sapGroup_TitleTextColor);cursor:default}.fd-variant-management .fd-variant-management__title--object-header{--fdTitle_Font_Size:var(--sapObjectHeader_Title_FontSize);--fdTitle_Font_Family:var(--sapObjectHeader_Title_FontFamily)}.fd-variant-management .fd-variant-management__title--snapped-object-header{--fdTitle_Font_Size:var(--sapObjectHeader_Title_SnappedFontSize);--fdTitle_Font_Family:var(--sapObjectHeader_Title_FontFamily)}.fd-variant-management .fd-variant-management__title--table{--fdTitle_Font_Size:var(--sapGroup_Title_FontSize)}.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:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0}.fd-variant-management__dirty-indicator:after,.fd-variant-management__dirty-indicator:before{-webkit-box-sizing:inherit;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:-webkit-box;display:-ms-flexbox;display:flex;justify-content:center}\n/*!\n * Fundamental Library Styles v0.37.7\n * Copyright (c) 2024 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */\n"] }]
|
|
424
424
|
}], ctorParameters: () => [{ type: i1.DialogService }, { type: i0.ChangeDetectorRef }], propDecorators: { variants: [{
|
|
425
425
|
type: Input
|
|
426
426
|
}], headerSize: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-platform-variant-management.mjs","sources":["../../../../libs/platform/variant-management/directives/variant-management-dirty-label.directive.ts","../../../../libs/platform/variant-management/components/manage-variant-item/manage-variant-item.component.ts","../../../../libs/platform/variant-management/components/manage-variant-item/manage-variant-item.component.html","../../../../libs/platform/variant-management/components/manage-variants-dialog/data-provider.ts","../../../../libs/platform/variant-management/components/manage-variants-dialog/manage-variants-dialog.component.ts","../../../../libs/platform/variant-management/components/manage-variants-dialog/manage-variants-dialog.component.html","../../../../libs/platform/variant-management/tokens.ts","../../../../libs/platform/variant-management/variant-item.class.ts","../../../../libs/platform/variant-management/variant-management.component.ts","../../../../libs/platform/variant-management/variant-management.component.html","../../../../libs/platform/variant-management/components/variant-management-wrapper/variant-management-wrapper.component.ts","../../../../libs/platform/variant-management/variant-management.module.ts","../../../../libs/platform/variant-management/fundamental-ngx-platform-variant-management.ts"],"sourcesContent":["import { Directive, TemplateRef } from '@angular/core';\n\n/**\n * Directive used to change dirty label of Variant Management component.\n *\n * Usage:\n *\n * ```\n * html\n * <fdp-variant-management>\n * <span *fdpVariantManagementDirtyLabel>I'm dirty</span>\n * </fdp-variant-management>\n * ```\n */\n@Directive({\n selector: '[fdpVariantManagementDirtyLabel]',\n standalone: true\n})\nexport class VariantManagementDirtyLabelDirective {\n /** @hidden */\n constructor(public templateRef: TemplateRef<any>) {}\n}\n","import { CdkScrollable } from '@angular/cdk/overlay';\nimport { ChangeDetectionStrategy, Component, ViewChild, ViewEncapsulation } from '@angular/core';\nimport {\n FormBuilder,\n FormGroup,\n FormGroupDirective,\n FormsModule,\n ReactiveFormsModule,\n ValidationErrors,\n ValidatorFn,\n Validators\n} from '@angular/forms';\nimport { ButtonBarComponent } from '@fundamental-ngx/core/bar';\nimport {\n DialogBodyComponent,\n DialogComponent,\n DialogFooterComponent,\n DialogHeaderComponent,\n DialogRef\n} from '@fundamental-ngx/core/dialog';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\nimport { TitleComponent } from '@fundamental-ngx/core/title';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport {\n CheckboxComponent,\n FormFieldComponent,\n FormFieldErrorDirective,\n FormGroupComponent,\n InputComponent\n} from '@fundamental-ngx/platform/form';\nimport { SaveDialogContext } from '../../models/save-dialog.model';\n\n@Component({\n selector: 'fdp-manage-variant-item',\n templateUrl: './manage-variant-item.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n DialogComponent,\n DialogHeaderComponent,\n TitleComponent,\n CdkScrollable,\n ScrollbarDirective,\n DialogBodyComponent,\n FormGroupComponent,\n FormsModule,\n ReactiveFormsModule,\n FormFieldComponent,\n InputComponent,\n CheckboxComponent,\n FormFieldErrorDirective,\n DialogFooterComponent,\n ButtonBarComponent,\n FdTranslatePipe\n ]\n})\nexport class ManageVariantItemComponent {\n /** @hidden */\n @ViewChild('formContainer', { read: FormGroupDirective })\n private readonly _formContainer: FormGroupDirective;\n\n /** @Hidden */\n _form: FormGroup;\n /** @hidden */\n _nameValidator: ValidatorFn[];\n\n /** @hidden */\n private readonly _dialogConfig: SaveDialogContext;\n\n /** @hidden */\n constructor(\n public dialog: DialogRef<SaveDialogContext>,\n private readonly _formBuilder: FormBuilder\n ) {\n this._dialogConfig = this.dialog.data;\n this._nameValidator = [this._variantNameValidator(this._dialogConfig)];\n this._form = this._formBuilder.group({\n name: [\n this._dialogConfig.currentVariantName,\n [Validators.required, this._variantNameValidator(this._dialogConfig)]\n ],\n isDefault: false,\n access: 'private',\n applyAutomatically: false,\n readonly: false,\n favourite: false\n });\n }\n /** @Hidden */\n _submitForm(): void {\n this._formContainer.onSubmit(new Event('submit'));\n\n if (!this._form.valid) {\n return;\n }\n\n this.dialog.close(this._form.value);\n }\n\n /** @hidden */\n private _variantNameValidator(data: SaveDialogContext): ValidatorFn {\n return (control): ValidationErrors | null =>\n data.existingVariantNames.includes(control.value) ? { nameTaken: true } : null;\n }\n}\n","<fd-dialog>\n <fd-dialog-header>\n <h1 fd-title>{{ 'platformVariantManagement.saveView' | fdTranslate }}</h1>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <fdp-form-group #formContainer [formGroup]=\"_form\" [unifiedLayout]=\"false\" [useForm]=\"true\">\n <fdp-form-field\n id=\"name\"\n [label]=\"'platformVariantManagement.view' | fdTranslate\"\n [column]=\"1\"\n [rank]=\"1\"\n [required]=\"true\"\n [validators]=\"_nameValidator\"\n [labelColumnLayout]=\"{ S: 12 }\"\n [fieldColumnLayout]=\"{ S: 12 }\"\n [gapColumnLayout]=\"{ S: 12 }\"\n >\n <fdp-input name=\"name\" formControlName=\"name\"></fdp-input>\n </fdp-form-field>\n <fdp-form-field\n id=\"isDefault\"\n [noLabelLayout]=\"true\"\n [labelColumnLayout]=\"{ S: 12 }\"\n [fieldColumnLayout]=\"{ S: 12 }\"\n [gapColumnLayout]=\"{ S: 12 }\"\n >\n <fdp-checkbox\n name=\"isDefault\"\n formControlName=\"isDefault\"\n [label]=\"'platformVariantManagement.setAsDefault' | fdTranslate\"\n ></fdp-checkbox>\n </fdp-form-field>\n <fdp-form-field\n id=\"access\"\n [noLabelLayout]=\"true\"\n [labelColumnLayout]=\"{ S: 12 }\"\n [fieldColumnLayout]=\"{ S: 12 }\"\n [gapColumnLayout]=\"{ S: 12 }\"\n >\n <fdp-checkbox\n [values]=\"{ trueValue: 'public', falseValue: 'private' }\"\n name=\"access\"\n formControlName=\"access\"\n [label]=\"'platformVariantManagement.public' | fdTranslate\"\n ></fdp-checkbox>\n </fdp-form-field>\n <fdp-form-field\n id=\"applyAutomatically\"\n [noLabelLayout]=\"true\"\n [labelColumnLayout]=\"{ S: 12 }\"\n [fieldColumnLayout]=\"{ S: 12 }\"\n [gapColumnLayout]=\"{ S: 12 }\"\n >\n <fdp-checkbox\n name=\"applyAutomatically\"\n formControlName=\"applyAutomatically\"\n [label]=\"'platformVariantManagement.applyAutomatically' | fdTranslate\"\n ></fdp-checkbox>\n </fdp-form-field>\n <span *fdpFormFieldError=\"'required'\">\n {{ 'platformVariantManagement.requiredFieldError' | fdTranslate }}\n </span>\n <span *fdpFormFieldError=\"'nameTaken'\">\n {{ 'platformVariantManagement.nameTakenFieldError' | fdTranslate }}\n </span>\n </fdp-form-group>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'platformVariantManagement.save' | fdTranslate\"\n (click)=\"_submitForm()\"\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=\"Cancel\"\n ></fd-button-bar>\n </fd-dialog-footer>\n</fd-dialog>\n","import { ArrayTableDataProvider } from '@fundamental-ngx/platform/table';\nimport { VariantItem } from '../../variant-item.class';\n\nexport class VariantManagementDataProvider extends ArrayTableDataProvider<VariantItem> {\n /** @hidden */\n constructor(items: VariantItem[]) {\n super(items);\n }\n\n /** Updates items list. */\n update(items: VariantItem[]): void {\n this.items$.next(items);\n }\n}\n","import { CdkScrollable } from '@angular/cdk/overlay';\n\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ButtonBarComponent } from '@fundamental-ngx/core/bar';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport {\n DialogBodyComponent,\n DialogComponent,\n DialogFooterComponent,\n DialogHeaderComponent,\n DialogRef\n} from '@fundamental-ngx/core/dialog';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { RadioButtonComponent } from '@fundamental-ngx/core/radio';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\nimport { TitleComponent } from '@fundamental-ngx/core/title';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { CheckboxComponent, InputComponent } from '@fundamental-ngx/platform/form';\nimport { TableColumnComponent, TableComponent, TableDataSource } from '@fundamental-ngx/platform/table';\nimport {\n FdpCellDef,\n FdpTableCell,\n TableDataSourceDirective,\n TableHeaderResizerDirective,\n TableInitialStateDirective\n} from '@fundamental-ngx/platform/table-helpers';\nimport { VariantItem } from '../../variant-item.class';\nimport { VariantManagementDataProvider } from './data-provider';\n\n@Component({\n selector: 'fdp-manage-variants-dialog',\n templateUrl: './manage-variants-dialog.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n DialogComponent,\n DialogHeaderComponent,\n TitleComponent,\n CdkScrollable,\n ScrollbarDirective,\n DialogBodyComponent,\n TableDataSourceDirective,\n TableHeaderResizerDirective,\n TableComponent,\n TableInitialStateDirective,\n TableColumnComponent,\n FdpCellDef,\n FdpTableCell,\n IconComponent,\n InputComponent,\n FormsModule,\n RadioButtonComponent,\n CheckboxComponent,\n ButtonComponent,\n DialogFooterComponent,\n ButtonBarComponent,\n FdTranslatePipe\n ]\n})\nexport class ManageVariantsDialogComponent {\n /** @hidden */\n _source: TableDataSource<VariantItem>;\n\n /**\n * @hidden\n * Used to apply typings in template.\n */\n _variantModel!: VariantItem;\n\n /** @hidden */\n private readonly _variants: VariantItem[] = [];\n\n /** @hidden */\n private readonly _dataProvider: VariantManagementDataProvider;\n\n /** @hidden */\n constructor(\n public dialog: DialogRef<VariantItem[]>,\n private readonly _cdr: ChangeDetectorRef\n ) {\n // We clone all variants, so we don't change original instances immediately.\n this._variants = this.dialog.data.map((oldVariant) => oldVariant.clone({}, false));\n this._dataProvider = new VariantManagementDataProvider(this._variants);\n this._source = new TableDataSource(this._dataProvider);\n }\n\n /** @Hidden */\n _markAsFavourite(item: VariantItem): void {\n item.favourite = !item.favourite;\n }\n\n /** @hidden */\n _removeVariant(item: VariantItem): void {\n this._variants.splice(\n this._variants.findIndex((variant) => item.id === variant.id),\n 1\n );\n this._dataProvider.update(this._variants);\n this._cdr.detectChanges();\n }\n\n /**\n * @hidden\n * Closes dialog with updated variants array.\n */\n _saveVariants(): void {\n this.dialog.close(this._variants);\n }\n}\n","<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 <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 @if (!item.readonly) {\n <fdp-input [(ngModel)]=\"item.name\"></fdp-input>\n } @else {\n {{ item.name }}\n }\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 @if (!item.readonly) {\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n [title]=\"'platformVariantManagement.removeVariant' | fdTranslate\"\n (click)=\"_removeVariant(item)\"\n ></button>\n }\n </fdp-table-cell>\n </fdp-column>\n </fdp-table>\n </fd-dialog-body>\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 <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","import { InjectionToken } from '@angular/core';\n\nexport const FDP_VARIANT_MANAGEMENT_WRAPPER = new InjectionToken('FdpVariantManagementWrapper');\nexport const FDP_VARIANT_MANAGEMENT = new InjectionToken('FdpVariantManagement');\n","import { cloneDeep } from 'lodash-es';\nimport { NewVariant, Variant, VariantAccess } from './models/variant.interface';\n\nlet defaultVariantId = 0;\n\nexport class VariantItem<T = any> implements Variant<T> {\n /** Visibility of the variant. If public, available for everyone. */\n access: VariantAccess = 'public';\n /** Whether to automatically apply changes in preset managed component. */\n applyAutomatically? = false;\n /** Variant's author name. */\n createdBy: string;\n /** Variant data. Can contain any type of data. */\n data: T;\n /** Whether variant is marked as favourite. */\n favourite = false;\n /** Variant ID. */\n id = `variant-item-${++defaultVariantId}`;\n /** Whether to apply variant automatically. */\n isDefault = false;\n /** Variant name to be displayed in popover list. */\n name: string;\n /** Whether variant is editable. */\n readonly = false;\n\n /** @hidden */\n constructor(config: Partial<Variant>) {\n Object.keys(config).forEach((configKey) => {\n this[configKey] = config[configKey];\n });\n }\n\n /**\n * Clones current variant and applies new config on top of it.\n * @param newVariantData New config.\n * @param refreshId Whether to assign new ID to the new variant.\n */\n clone(newVariantData: NewVariant = {}, refreshId = true): VariantItem {\n const currentVariantData: Variant = Object.assign({}, this, newVariantData);\n\n currentVariantData.data = cloneDeep(currentVariantData.data);\n\n if (refreshId) {\n delete currentVariantData.id;\n }\n const newVariant = new VariantItem(currentVariantData);\n return newVariant;\n }\n}\n","import { AsyncPipe, NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute,\n effect,\n inject\n} from '@angular/core';\nimport { FilterStringsPipe, Nullable } from '@fundamental-ngx/cdk/utils';\nimport {\n BarComponent,\n BarElementDirective,\n BarLeftDirective,\n BarRightDirective,\n ButtonBarComponent\n} from '@fundamental-ngx/core/bar';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { DialogService } from '@fundamental-ngx/core/dialog';\nimport { DynamicPage, FD_DYNAMIC_PAGE } from '@fundamental-ngx/core/dynamic-page';\nimport { ListComponent, ListItemComponent, ListLinkDirective, ListTitleDirective } from '@fundamental-ngx/core/list';\nimport {\n PopoverBodyComponent,\n PopoverBodyFooterDirective,\n PopoverBodyHeaderDirective,\n PopoverComponent,\n PopoverControlComponent,\n TriggerConfig\n} from '@fundamental-ngx/core/popover';\nimport { HeaderSizes, TitleComponent } from '@fundamental-ngx/core/title';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { FDP_DYNAMIC_PAGE } from '@fundamental-ngx/platform/dynamic-page';\nimport { SearchFieldComponent, SearchInput } from '@fundamental-ngx/platform/search-field';\nimport equal from 'fast-deep-equal';\nimport { BehaviorSubject } from 'rxjs';\nimport { ManageVariantItemComponent } from './components/manage-variant-item/manage-variant-item.component';\nimport { ManageVariantsDialogComponent } from './components/manage-variants-dialog/manage-variants-dialog.component';\nimport { VariantManagementDirtyLabelDirective } from './directives/variant-management-dirty-label.directive';\nimport { SaveDialogContext } from './models/save-dialog.model';\nimport { VariantManagement } from './models/variant-management';\nimport { NewVariant, Variant } from './models/variant.interface';\nimport { FDP_VARIANT_MANAGEMENT } from './tokens';\nimport { VariantItem } from './variant-item.class';\n\n@Component({\n selector: 'fdp-variant-management',\n templateUrl: './variant-management.component.html',\n styleUrl: './variant-management.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: FDP_VARIANT_MANAGEMENT,\n useExisting: VariantManagementComponent\n }\n ],\n standalone: true,\n imports: [\n PopoverComponent,\n PopoverControlComponent,\n TitleComponent,\n NgTemplateOutlet,\n PopoverBodyComponent,\n PopoverBodyHeaderDirective,\n BarComponent,\n BarLeftDirective,\n BarElementDirective,\n SearchFieldComponent,\n ListComponent,\n ListItemComponent,\n ListLinkDirective,\n ListTitleDirective,\n PopoverBodyFooterDirective,\n BarRightDirective,\n ButtonBarComponent,\n FdTranslatePipe,\n FilterStringsPipe,\n AsyncPipe,\n NgClass,\n ButtonComponent\n ]\n})\nexport class VariantManagementComponent<T = any> implements VariantManagement<T> {\n /** Initial variants array. */\n @Input()\n set variants(items: Variant<T>[]) {\n this._variants = this._transformVariants(items);\n\n let currentVariantIndex = this._variants.findIndex((variant) => variant.isDefault);\n currentVariantIndex = currentVariantIndex > -1 ? currentVariantIndex : 0;\n const currentVariant = this._variants[currentVariantIndex];\n this.selectVariant(currentVariant as VariantItem);\n }\n\n /** Header size. */\n @Input()\n headerSize: HeaderSizes = 4;\n\n /** Popover trigger events. */\n @Input()\n popoverTriggers: (string | TriggerConfig)[] = [\n { trigger: 'click', stopPropagation: true, closeAction: true, openAction: true }\n ];\n\n /** User's name which will be applied to all new variants user creates. */\n @Input()\n userName: string;\n\n /** Whether to display search field for variants list. */\n @Input({ transform: booleanAttribute })\n displaySearch = false;\n\n /** Whether the variant management component is in readonly mode. */\n @Input({ transform: booleanAttribute })\n readonly = false;\n\n /** Event emitted when variants data has been updated. */\n @Output()\n variantsChange = new EventEmitter<Variant<T>[]>();\n\n /** Event emitted when new variant selected. */\n @Output()\n activeVariantChange = new EventEmitter<Variant<T>>();\n\n /**\n * Custom dirty label directive.\n */\n @ContentChild(VariantManagementDirtyLabelDirective)\n dirtyLabel: VariantManagementDirtyLabelDirective;\n\n /** @hidden */\n @ViewChild('popover')\n _popover: PopoverComponent;\n\n /** @hidden */\n @HostBinding('class')\n private readonly _initialClass = 'fd-variant-management';\n\n /**\n * Used internally for communicating with wrapper component.\n */\n activeVariantChangeSubject = new BehaviorSubject<Variant<T> | null>(null);\n\n /** @hidden */\n _variantChanged = false;\n\n /** Selected variant. */\n activeVariant!: VariantItem<T>;\n\n /** @hidden */\n _variants: VariantItem<T>[] = [];\n\n /** @Hidden */\n _filterPhrase: Nullable<string> = null;\n\n /** @hidden */\n get _dynamicPage(): DynamicPage | null {\n return this._coreDynamicPage || this._platformDynamicPage;\n }\n\n /** @hidden */\n protected _dynamicPageCollapsed$ = new BehaviorSubject(false);\n\n /** @hidden */\n protected _coreDynamicPage = inject(FD_DYNAMIC_PAGE, { optional: true });\n /** @hidden */\n protected _platformDynamicPage = inject(FDP_DYNAMIC_PAGE, { optional: true });\n /** @Hidden */\n private _originalActiveVariant: VariantItem<T>;\n\n /** @hidden */\n constructor(\n private readonly _dialogService: DialogService,\n private readonly _cdr: ChangeDetectorRef\n ) {\n if (this._dynamicPage) {\n effect(() => {\n this._dynamicPageCollapsed$.next(this._dynamicPage!.collapsed());\n });\n }\n }\n\n /**\n * Manually select variant.\n * @param variant Variant to select.\n */\n selectVariant(variant: VariantItem<T>): void {\n this._variantChanged = false;\n this.activeVariant = variant;\n this._originalActiveVariant = variant.clone({}, false);\n this.activeVariantChange.emit(variant);\n this.activeVariantChangeSubject.next(variant);\n }\n\n /** Returns original variant data. */\n getOriginalActiveVariantData(): Variant<T>['data'] {\n return this._originalActiveVariant.data;\n }\n\n /** Returns current active variant data with applied changes. */\n getActiveVariantData(): Variant<T>['data'] {\n return this.activeVariant.data;\n }\n\n /**\n * Saves current variant with its configuration.\n */\n saveCurrentVariant(): void {\n if (this.readonly) {\n return;\n }\n const currentVariantIndex = this._variants.findIndex((variant) => variant.id === this.activeVariant.id);\n this._variants[currentVariantIndex] = this.activeVariant;\n this._originalActiveVariant = this.activeVariant.clone({}, false);\n this._variantChanged = false;\n this.variantsChange.emit(this._variants);\n }\n\n /** @hidden */\n _openSaveDialog(): void {\n if (this.readonly) {\n return;\n }\n this._popover?.close(false);\n const dialogRef = this._dialogService.open<SaveDialogContext>(ManageVariantItemComponent, {\n data: {\n existingVariantNames: this._variants.map((variant) => variant.name),\n currentVariantName: this.activeVariant.name\n }\n });\n dialogRef.afterClosed.subscribe({\n next: (result: NewVariant) => {\n const newVariant = this.activeVariant.clone({ ...result, ...{ createdBy: this.userName } });\n this._variants.push(newVariant);\n this.variantsChange.emit(this._variants);\n this.activeVariant = newVariant;\n this._variantChanged = false;\n this._cdr.detectChanges();\n },\n error: () => {}\n });\n }\n\n /**\n * Updates current active preset with new configuration.\n * @param preset Preset configuration.\n * @param componentName component to which this preset belongs to.\n */\n updateActivePreset(preset: T, componentName: string): void {\n const activeVariantData = this._originalActiveVariant.data[componentName];\n this._variantChanged = activeVariantData && !equal(preset, activeVariantData);\n this.activeVariant.data[componentName] = preset;\n this._cdr.detectChanges();\n }\n\n /** @hidden */\n _openManageDialog(): void {\n if (this.readonly) {\n return;\n }\n this._popover?.close(false);\n const dialogRef = this._dialogService.open<VariantItem[]>(ManageVariantsDialogComponent, {\n data: this._variants\n });\n\n dialogRef.afterClosed.subscribe({\n next: (variants: VariantItem[]) => {\n this._variants = variants;\n this.variantsChange.emit(this._variants);\n },\n error: () => {}\n });\n }\n\n /** @hidden */\n _onSearchSubmit(search: SearchInput): void {\n this._filterPhrase = search.text;\n this._cdr.detectChanges();\n }\n\n /** @hidden */\n _cancelSearch(): void {\n this._filterPhrase = null;\n this._cdr.detectChanges();\n }\n\n /** @Hidden */\n _trackFn(index: number, item: VariantItem<T>): string {\n return item.id;\n }\n\n /** @hidden */\n private _transformVariants(items: Variant<T>[]): VariantItem[] {\n return items.map((variant) => new VariantItem(variant));\n }\n}\n","@if (activeVariant) {\n <fd-popover\n #popover\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\n fd-title\n [ngClass]=\"{\n 'fd-variant-management__title': true,\n 'fd-variant-management__title--dynamic-page': _dynamicPage,\n 'fd-variant-management__title--dynamic-page--collapsed': _dynamicPageCollapsed$ | async\n }\"\n [headerSize]=\"headerSize\"\n >\n {{ activeVariant.name }}\n </h4>\n @if (_variantChanged && !readonly) {\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 }\n <button fd-button [fdMenu]=\"true\" fdType=\"transparent\" [attr.aria-haspopup]=\"true\"></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 @if (displaySearch) {\n <div fd-bar barDesign=\"header\">\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 }\n </div>\n <ul fd-list>\n @for (\n variant of _variants | fdFilterStrings: { searchTerm: _filterPhrase, key: 'name' };\n track variant.id\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 }\n </ul>\n @if (!readonly) {\n <div fd-popover-body-footer>\n <div fd-bar barDesign=\"footer\">\n <div fd-bar-right>\n @if (!activeVariant.readonly && _variantChanged) {\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'platformVariantManagement.save' | fdTranslate\"\n (click)=\"saveCurrentVariant()\"\n >\n </fd-button-bar>\n }\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 }\n </fd-popover-body>\n </fd-popover>\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n DestroyRef,\n inject,\n Input,\n OnDestroy,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FDP_PRESET_MANAGED_COMPONENT, PresetManagedComponent } from '@fundamental-ngx/platform/shared';\nimport equal from 'fast-deep-equal';\nimport { filter, startWith, Subscription } from 'rxjs';\nimport { VariantManagement } from '../../models/variant-management';\nimport { FDP_VARIANT_MANAGEMENT, FDP_VARIANT_MANAGEMENT_WRAPPER } from '../../tokens';\n\n/**\n * Wrapper component used to wrap components that implement `PresetManagedComponent`.\n * It automatically bounds existing presets from `Variant Management` component to `PresetManagedComponent`.\n * Wrapper component supports two ways of providing Variant Management component.\n * First one is to pass reference via Input property.\n * Second one is to put Variant Management component inside wrapper component so it would be accessible via @ContentChild.\n * Usage example:\n *\n * ```html\n * Usage outside wrapper component:\n * <fdp-variant-management #variantManagement [variants]=\"...\"></fdp-variant-management>\n * <fdp-variant-management-wrapper [variantManager]=\"variantManagement\">\n * <fdp-smart-filter-bar>...</fdp-smart-filter-bar>\n * <fdp-table>...</fdp-table>\n * </fdp-variant-management-wrapper>\n *\n * Usage inside wrapper component:\n * <fdp-variant-management-wrapper>\n * <fdp-variant-management [variants]=\"...\"></fdp-variant-management>\n * <fdp-smart-filter-bar>...</fdp-smart-filter-bar>\n * <fdp-table>...</fdp-table>\n * </fdp-variant-management-wrapper>\n * ```\n */\n@Component({\n selector: 'fdp-variant-management-wrapper',\n template: `<ng-content></ng-content>`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: FDP_VARIANT_MANAGEMENT_WRAPPER,\n useExisting: VariantManagementWrapperComponent\n }\n ],\n standalone: true\n})\nexport class VariantManagementWrapperComponent implements AfterViewInit, OnDestroy {\n /** Variant management component. */\n @Input()\n variantManager: VariantManagement;\n\n /** @hidden */\n @ContentChildren(FDP_PRESET_MANAGED_COMPONENT, { descendants: true })\n private readonly _managedComponents: QueryList<PresetManagedComponent<any>>;\n\n /** @hidden */\n @ContentChild(FDP_VARIANT_MANAGEMENT, { descendants: true })\n private set _projectedVariantManager(variantManager: VariantManagement) {\n this._variantManager = variantManager;\n this._setPresets();\n }\n\n private get _projectedVariantManager(): VariantManagement {\n return this._variantManager;\n }\n\n /** @hidden */\n private get _variantManagement(): VariantManagement {\n return this._projectedVariantManager || this.variantManager;\n }\n\n /** @hidden */\n private _variantManager: VariantManagement;\n\n /** @hidden */\n private _activeVariantSubscription: Subscription;\n\n /** @hidden */\n private _componentsPresetChangeSubscription: Subscription;\n\n /** @hidden */\n private _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._setPresets();\n\n this._managedComponents?.changes\n .pipe(startWith(this._managedComponents), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this._listenToPresetChanges();\n });\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._activeVariantSubscription?.unsubscribe();\n this._componentsPresetChangeSubscription?.unsubscribe();\n }\n\n /**\n * @hidden\n * Listens to the preset change in Variant Management component and applies new configuration across projected components..\n */\n private _setPresets(): void {\n this._activeVariantSubscription?.unsubscribe();\n this._activeVariantSubscription = this._variantManagement?.activeVariantChangeSubject\n .pipe(\n filter((variant) => !!variant && !!this._managedComponents),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe(() => {\n const components = this._managedComponents.toArray();\n\n components.forEach((component) => {\n const data = this._variantManagement.activeVariant.data[component.name];\n component.setPreset(data);\n });\n });\n }\n\n /**\n * @hidden\n * Listens to preset configuration changes in projected components and sends updated config to Variant Management component.\n */\n private _listenToPresetChanges(): void {\n this._componentsPresetChangeSubscription?.unsubscribe();\n this._componentsPresetChangeSubscription = new Subscription();\n const components = this._managedComponents.toArray();\n\n components.forEach((component) => {\n this._componentsPresetChangeSubscription.add(\n component.presetChanged\n .pipe(\n filter((preset) => {\n const prevPreset = this._getComponentPreset().get(component);\n return !equal(preset, prevPreset);\n }),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((preset) => {\n this._variantManagement?.updateActivePreset(preset, component.name);\n })\n );\n });\n }\n\n /** @hidden */\n private _getComponentPreset(): Map<PresetManagedComponent<any>, any> {\n const components = this._managedComponents.toArray();\n const data = this._variantManagement.getActiveVariantData();\n const componentsMap = new Map<PresetManagedComponent<any>, any>();\n\n components.forEach((component) => {\n componentsMap.set(component, data[component.name]);\n });\n\n return componentsMap;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ManageVariantItemComponent } from './components/manage-variant-item/manage-variant-item.component';\nimport { ManageVariantsDialogComponent } from './components/manage-variants-dialog/manage-variants-dialog.component';\nimport { VariantManagementWrapperComponent } from './components/variant-management-wrapper/variant-management-wrapper.component';\nimport { VariantManagementDirtyLabelDirective } from './directives/variant-management-dirty-label.directive';\nimport { VariantManagementComponent } from './variant-management.component';\n\n@NgModule({\n imports: [\n VariantManagementComponent,\n VariantManagementDirtyLabelDirective,\n ManageVariantItemComponent,\n VariantManagementWrapperComponent,\n ManageVariantsDialogComponent\n ],\n exports: [\n VariantManagementComponent,\n VariantManagementDirtyLabelDirective,\n ManageVariantItemComponent,\n VariantManagementWrapperComponent,\n ManageVariantsDialogComponent\n ]\n})\nexport class VariantManagementModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-platform-variant-management.mjs","sources":["../../../../libs/platform/variant-management/directives/variant-management-dirty-label.directive.ts","../../../../libs/platform/variant-management/components/manage-variant-item/manage-variant-item.component.ts","../../../../libs/platform/variant-management/components/manage-variant-item/manage-variant-item.component.html","../../../../libs/platform/variant-management/components/manage-variants-dialog/data-provider.ts","../../../../libs/platform/variant-management/components/manage-variants-dialog/manage-variants-dialog.component.ts","../../../../libs/platform/variant-management/components/manage-variants-dialog/manage-variants-dialog.component.html","../../../../libs/platform/variant-management/tokens.ts","../../../../libs/platform/variant-management/variant-item.class.ts","../../../../libs/platform/variant-management/variant-management.component.ts","../../../../libs/platform/variant-management/variant-management.component.html","../../../../libs/platform/variant-management/components/variant-management-wrapper/variant-management-wrapper.component.ts","../../../../libs/platform/variant-management/variant-management.module.ts","../../../../libs/platform/variant-management/fundamental-ngx-platform-variant-management.ts"],"sourcesContent":["import { Directive, TemplateRef } from '@angular/core';\n\n/**\n * Directive used to change dirty label of Variant Management component.\n *\n * Usage:\n *\n * ```\n * html\n * <fdp-variant-management>\n * <span *fdpVariantManagementDirtyLabel>I'm dirty</span>\n * </fdp-variant-management>\n * ```\n */\n@Directive({\n selector: '[fdpVariantManagementDirtyLabel]',\n standalone: true\n})\nexport class VariantManagementDirtyLabelDirective {\n /** @hidden */\n constructor(public templateRef: TemplateRef<any>) {}\n}\n","import { CdkScrollable } from '@angular/cdk/overlay';\nimport { ChangeDetectionStrategy, Component, ViewChild, ViewEncapsulation } from '@angular/core';\nimport {\n FormBuilder,\n FormGroup,\n FormGroupDirective,\n FormsModule,\n ReactiveFormsModule,\n ValidationErrors,\n ValidatorFn,\n Validators\n} from '@angular/forms';\nimport { ButtonBarComponent } from '@fundamental-ngx/core/bar';\nimport {\n DialogBodyComponent,\n DialogComponent,\n DialogFooterComponent,\n DialogHeaderComponent,\n DialogRef\n} from '@fundamental-ngx/core/dialog';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\nimport { TitleComponent } from '@fundamental-ngx/core/title';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport {\n CheckboxComponent,\n FormFieldComponent,\n FormFieldErrorDirective,\n FormGroupComponent,\n InputComponent\n} from '@fundamental-ngx/platform/form';\nimport { SaveDialogContext } from '../../models/save-dialog.model';\n\n@Component({\n selector: 'fdp-manage-variant-item',\n templateUrl: './manage-variant-item.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n DialogComponent,\n DialogHeaderComponent,\n TitleComponent,\n CdkScrollable,\n ScrollbarDirective,\n DialogBodyComponent,\n FormGroupComponent,\n FormsModule,\n ReactiveFormsModule,\n FormFieldComponent,\n InputComponent,\n CheckboxComponent,\n FormFieldErrorDirective,\n DialogFooterComponent,\n ButtonBarComponent,\n FdTranslatePipe\n ]\n})\nexport class ManageVariantItemComponent {\n /** @hidden */\n @ViewChild('formContainer', { read: FormGroupDirective })\n private readonly _formContainer: FormGroupDirective;\n\n /** @Hidden */\n _form: FormGroup;\n /** @hidden */\n _nameValidator: ValidatorFn[];\n\n /** @hidden */\n private readonly _dialogConfig: SaveDialogContext;\n\n /** @hidden */\n constructor(\n public dialog: DialogRef<SaveDialogContext>,\n private readonly _formBuilder: FormBuilder\n ) {\n this._dialogConfig = this.dialog.data;\n this._nameValidator = [this._variantNameValidator(this._dialogConfig)];\n this._form = this._formBuilder.group({\n name: [\n this._dialogConfig.currentVariantName,\n [Validators.required, this._variantNameValidator(this._dialogConfig)]\n ],\n isDefault: false,\n access: 'private',\n applyAutomatically: false,\n readonly: false,\n favourite: false\n });\n }\n /** @Hidden */\n _submitForm(): void {\n this._formContainer.onSubmit(new Event('submit'));\n\n if (!this._form.valid) {\n return;\n }\n\n this.dialog.close(this._form.value);\n }\n\n /** @hidden */\n private _variantNameValidator(data: SaveDialogContext): ValidatorFn {\n return (control): ValidationErrors | null =>\n data.existingVariantNames.includes(control.value) ? { nameTaken: true } : null;\n }\n}\n","<fd-dialog>\n <fd-dialog-header>\n <h1 fd-title>{{ 'platformVariantManagement.saveView' | fdTranslate }}</h1>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <fdp-form-group #formContainer [formGroup]=\"_form\" [unifiedLayout]=\"false\" [useForm]=\"true\">\n <fdp-form-field\n id=\"name\"\n [label]=\"'platformVariantManagement.view' | fdTranslate\"\n [column]=\"1\"\n [rank]=\"1\"\n [required]=\"true\"\n [validators]=\"_nameValidator\"\n [labelColumnLayout]=\"{ S: 12 }\"\n [fieldColumnLayout]=\"{ S: 12 }\"\n [gapColumnLayout]=\"{ S: 12 }\"\n >\n <fdp-input name=\"name\" formControlName=\"name\"></fdp-input>\n </fdp-form-field>\n <fdp-form-field\n id=\"isDefault\"\n [noLabelLayout]=\"true\"\n [labelColumnLayout]=\"{ S: 12 }\"\n [fieldColumnLayout]=\"{ S: 12 }\"\n [gapColumnLayout]=\"{ S: 12 }\"\n >\n <fdp-checkbox\n name=\"isDefault\"\n formControlName=\"isDefault\"\n [label]=\"'platformVariantManagement.setAsDefault' | fdTranslate\"\n ></fdp-checkbox>\n </fdp-form-field>\n <fdp-form-field\n id=\"access\"\n [noLabelLayout]=\"true\"\n [labelColumnLayout]=\"{ S: 12 }\"\n [fieldColumnLayout]=\"{ S: 12 }\"\n [gapColumnLayout]=\"{ S: 12 }\"\n >\n <fdp-checkbox\n [values]=\"{ trueValue: 'public', falseValue: 'private' }\"\n name=\"access\"\n formControlName=\"access\"\n [label]=\"'platformVariantManagement.public' | fdTranslate\"\n ></fdp-checkbox>\n </fdp-form-field>\n <fdp-form-field\n id=\"applyAutomatically\"\n [noLabelLayout]=\"true\"\n [labelColumnLayout]=\"{ S: 12 }\"\n [fieldColumnLayout]=\"{ S: 12 }\"\n [gapColumnLayout]=\"{ S: 12 }\"\n >\n <fdp-checkbox\n name=\"applyAutomatically\"\n formControlName=\"applyAutomatically\"\n [label]=\"'platformVariantManagement.applyAutomatically' | fdTranslate\"\n ></fdp-checkbox>\n </fdp-form-field>\n <span *fdpFormFieldError=\"'required'\">\n {{ 'platformVariantManagement.requiredFieldError' | fdTranslate }}\n </span>\n <span *fdpFormFieldError=\"'nameTaken'\">\n {{ 'platformVariantManagement.nameTakenFieldError' | fdTranslate }}\n </span>\n </fdp-form-group>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'platformVariantManagement.save' | fdTranslate\"\n (click)=\"_submitForm()\"\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=\"Cancel\"\n ></fd-button-bar>\n </fd-dialog-footer>\n</fd-dialog>\n","import { ArrayTableDataProvider } from '@fundamental-ngx/platform/table';\nimport { VariantItem } from '../../variant-item.class';\n\nexport class VariantManagementDataProvider extends ArrayTableDataProvider<VariantItem> {\n /** @hidden */\n constructor(items: VariantItem[]) {\n super(items);\n }\n\n /** Updates items list. */\n update(items: VariantItem[]): void {\n this.items$.next(items);\n }\n}\n","import { CdkScrollable } from '@angular/cdk/overlay';\n\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ButtonBarComponent } from '@fundamental-ngx/core/bar';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport {\n DialogBodyComponent,\n DialogComponent,\n DialogFooterComponent,\n DialogHeaderComponent,\n DialogRef\n} from '@fundamental-ngx/core/dialog';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { RadioButtonComponent } from '@fundamental-ngx/core/radio';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\nimport { TitleComponent } from '@fundamental-ngx/core/title';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { CheckboxComponent, InputComponent } from '@fundamental-ngx/platform/form';\nimport { TableColumnComponent, TableComponent, TableDataSource } from '@fundamental-ngx/platform/table';\nimport {\n FdpCellDef,\n FdpTableCell,\n TableDataSourceDirective,\n TableHeaderResizerDirective,\n TableInitialStateDirective\n} from '@fundamental-ngx/platform/table-helpers';\nimport { VariantItem } from '../../variant-item.class';\nimport { VariantManagementDataProvider } from './data-provider';\n\n@Component({\n selector: 'fdp-manage-variants-dialog',\n templateUrl: './manage-variants-dialog.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n DialogComponent,\n DialogHeaderComponent,\n TitleComponent,\n CdkScrollable,\n ScrollbarDirective,\n DialogBodyComponent,\n TableDataSourceDirective,\n TableHeaderResizerDirective,\n TableComponent,\n TableInitialStateDirective,\n TableColumnComponent,\n FdpCellDef,\n FdpTableCell,\n IconComponent,\n InputComponent,\n FormsModule,\n RadioButtonComponent,\n CheckboxComponent,\n ButtonComponent,\n DialogFooterComponent,\n ButtonBarComponent,\n FdTranslatePipe\n ]\n})\nexport class ManageVariantsDialogComponent {\n /** @hidden */\n _source: TableDataSource<VariantItem>;\n\n /**\n * @hidden\n * Used to apply typings in template.\n */\n _variantModel!: VariantItem;\n\n /** @hidden */\n private readonly _variants: VariantItem[] = [];\n\n /** @hidden */\n private readonly _dataProvider: VariantManagementDataProvider;\n\n /** @hidden */\n constructor(\n public dialog: DialogRef<VariantItem[]>,\n private readonly _cdr: ChangeDetectorRef\n ) {\n // We clone all variants, so we don't change original instances immediately.\n this._variants = this.dialog.data.map((oldVariant) => oldVariant.clone({}, false));\n this._dataProvider = new VariantManagementDataProvider(this._variants);\n this._source = new TableDataSource(this._dataProvider);\n }\n\n /** @Hidden */\n _markAsFavourite(item: VariantItem): void {\n item.favourite = !item.favourite;\n }\n\n /** @hidden */\n _removeVariant(item: VariantItem): void {\n this._variants.splice(\n this._variants.findIndex((variant) => item.id === variant.id),\n 1\n );\n this._dataProvider.update(this._variants);\n this._cdr.detectChanges();\n }\n\n /**\n * @hidden\n * Closes dialog with updated variants array.\n */\n _saveVariants(): void {\n this.dialog.close(this._variants);\n }\n}\n","<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 <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 @if (!item.readonly) {\n <fdp-input [(ngModel)]=\"item.name\"></fdp-input>\n } @else {\n {{ item.name }}\n }\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 @if (!item.readonly) {\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n [title]=\"'platformVariantManagement.removeVariant' | fdTranslate\"\n (click)=\"_removeVariant(item)\"\n ></button>\n }\n </fdp-table-cell>\n </fdp-column>\n </fdp-table>\n </fd-dialog-body>\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 <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","import { InjectionToken } from '@angular/core';\n\nexport const FDP_VARIANT_MANAGEMENT_WRAPPER = new InjectionToken('FdpVariantManagementWrapper');\nexport const FDP_VARIANT_MANAGEMENT = new InjectionToken('FdpVariantManagement');\n","import { cloneDeep } from 'lodash-es';\nimport { NewVariant, Variant, VariantAccess } from './models/variant.interface';\n\nlet defaultVariantId = 0;\n\nexport class VariantItem<T = any> implements Variant<T> {\n /** Visibility of the variant. If public, available for everyone. */\n access: VariantAccess = 'public';\n /** Whether to automatically apply changes in preset managed component. */\n applyAutomatically? = false;\n /** Variant's author name. */\n createdBy: string;\n /** Variant data. Can contain any type of data. */\n data: T;\n /** Whether variant is marked as favourite. */\n favourite = false;\n /** Variant ID. */\n id = `variant-item-${++defaultVariantId}`;\n /** Whether to apply variant automatically. */\n isDefault = false;\n /** Variant name to be displayed in popover list. */\n name: string;\n /** Whether variant is editable. */\n readonly = false;\n\n /** @hidden */\n constructor(config: Partial<Variant>) {\n Object.keys(config).forEach((configKey) => {\n this[configKey] = config[configKey];\n });\n }\n\n /**\n * Clones current variant and applies new config on top of it.\n * @param newVariantData New config.\n * @param refreshId Whether to assign new ID to the new variant.\n */\n clone(newVariantData: NewVariant = {}, refreshId = true): VariantItem {\n const currentVariantData: Variant = Object.assign({}, this, newVariantData);\n\n currentVariantData.data = cloneDeep(currentVariantData.data);\n\n if (refreshId) {\n delete currentVariantData.id;\n }\n const newVariant = new VariantItem(currentVariantData);\n return newVariant;\n }\n}\n","import { AsyncPipe, NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute,\n effect,\n inject\n} from '@angular/core';\nimport { FilterStringsPipe, Nullable } from '@fundamental-ngx/cdk/utils';\nimport {\n BarComponent,\n BarElementDirective,\n BarLeftDirective,\n BarRightDirective,\n ButtonBarComponent\n} from '@fundamental-ngx/core/bar';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { DialogService } from '@fundamental-ngx/core/dialog';\nimport { DynamicPage, FD_DYNAMIC_PAGE } from '@fundamental-ngx/core/dynamic-page';\nimport { ListComponent, ListItemComponent, ListLinkDirective, ListTitleDirective } from '@fundamental-ngx/core/list';\nimport {\n PopoverBodyComponent,\n PopoverBodyFooterDirective,\n PopoverBodyHeaderDirective,\n PopoverComponent,\n PopoverControlComponent,\n TriggerConfig\n} from '@fundamental-ngx/core/popover';\nimport { HeaderSizes, TitleComponent } from '@fundamental-ngx/core/title';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { FDP_DYNAMIC_PAGE } from '@fundamental-ngx/platform/dynamic-page';\nimport { SearchFieldComponent, SearchInput } from '@fundamental-ngx/platform/search-field';\nimport equal from 'fast-deep-equal';\nimport { BehaviorSubject } from 'rxjs';\nimport { ManageVariantItemComponent } from './components/manage-variant-item/manage-variant-item.component';\nimport { ManageVariantsDialogComponent } from './components/manage-variants-dialog/manage-variants-dialog.component';\nimport { VariantManagementDirtyLabelDirective } from './directives/variant-management-dirty-label.directive';\nimport { SaveDialogContext } from './models/save-dialog.model';\nimport { VariantManagement } from './models/variant-management';\nimport { NewVariant, Variant } from './models/variant.interface';\nimport { FDP_VARIANT_MANAGEMENT } from './tokens';\nimport { VariantItem } from './variant-item.class';\n\n@Component({\n selector: 'fdp-variant-management',\n templateUrl: './variant-management.component.html',\n styleUrl: './variant-management.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: FDP_VARIANT_MANAGEMENT,\n useExisting: VariantManagementComponent\n }\n ],\n standalone: true,\n imports: [\n PopoverComponent,\n PopoverControlComponent,\n TitleComponent,\n NgTemplateOutlet,\n PopoverBodyComponent,\n PopoverBodyHeaderDirective,\n BarComponent,\n BarLeftDirective,\n BarElementDirective,\n SearchFieldComponent,\n ListComponent,\n ListItemComponent,\n ListLinkDirective,\n ListTitleDirective,\n PopoverBodyFooterDirective,\n BarRightDirective,\n ButtonBarComponent,\n FdTranslatePipe,\n FilterStringsPipe,\n AsyncPipe,\n NgClass,\n ButtonComponent\n ]\n})\nexport class VariantManagementComponent<T = any> implements VariantManagement<T> {\n /** Initial variants array. */\n @Input()\n set variants(items: Variant<T>[]) {\n this._variants = this._transformVariants(items);\n\n let currentVariantIndex = this._variants.findIndex((variant) => variant.isDefault);\n currentVariantIndex = currentVariantIndex > -1 ? currentVariantIndex : 0;\n const currentVariant = this._variants[currentVariantIndex];\n this.selectVariant(currentVariant as VariantItem);\n }\n\n /** Header size. */\n @Input()\n headerSize: HeaderSizes = 4;\n\n /** Popover trigger events. */\n @Input()\n popoverTriggers: (string | TriggerConfig)[] = [\n { trigger: 'click', stopPropagation: true, closeAction: true, openAction: true }\n ];\n\n /** User's name which will be applied to all new variants user creates. */\n @Input()\n userName: string;\n\n /** Whether to display search field for variants list. */\n @Input({ transform: booleanAttribute })\n displaySearch = false;\n\n /** Whether the variant management component is in readonly mode. */\n @Input({ transform: booleanAttribute })\n readonly = false;\n\n /** Event emitted when variants data has been updated. */\n @Output()\n variantsChange = new EventEmitter<Variant<T>[]>();\n\n /** Event emitted when new variant selected. */\n @Output()\n activeVariantChange = new EventEmitter<Variant<T>>();\n\n /**\n * Custom dirty label directive.\n */\n @ContentChild(VariantManagementDirtyLabelDirective)\n dirtyLabel: VariantManagementDirtyLabelDirective;\n\n /** @hidden */\n @ViewChild('popover')\n _popover: PopoverComponent;\n\n /** @hidden */\n @HostBinding('class')\n private readonly _initialClass = 'fd-variant-management';\n\n /**\n * Used internally for communicating with wrapper component.\n */\n activeVariantChangeSubject = new BehaviorSubject<Variant<T> | null>(null);\n\n /** @hidden */\n _variantChanged = false;\n\n /** Selected variant. */\n activeVariant!: VariantItem<T>;\n\n /** @hidden */\n _variants: VariantItem<T>[] = [];\n\n /** @Hidden */\n _filterPhrase: Nullable<string> = null;\n\n /** @hidden */\n get _dynamicPage(): DynamicPage | null {\n return this._coreDynamicPage || this._platformDynamicPage;\n }\n\n /** @hidden */\n protected _dynamicPageCollapsed$ = new BehaviorSubject(false);\n\n /** @hidden */\n protected _coreDynamicPage = inject(FD_DYNAMIC_PAGE, { optional: true });\n /** @hidden */\n protected _platformDynamicPage = inject(FDP_DYNAMIC_PAGE, { optional: true });\n /** @Hidden */\n private _originalActiveVariant: VariantItem<T>;\n\n /** @hidden */\n constructor(\n private readonly _dialogService: DialogService,\n private readonly _cdr: ChangeDetectorRef\n ) {\n if (this._dynamicPage) {\n effect(() => {\n this._dynamicPageCollapsed$.next(this._dynamicPage!.collapsed());\n });\n }\n }\n\n /**\n * Manually select variant.\n * @param variant Variant to select.\n */\n selectVariant(variant: VariantItem<T>): void {\n this._variantChanged = false;\n this.activeVariant = variant;\n this._originalActiveVariant = variant.clone({}, false);\n this.activeVariantChange.emit(variant);\n this.activeVariantChangeSubject.next(variant);\n }\n\n /** Returns original variant data. */\n getOriginalActiveVariantData(): Variant<T>['data'] {\n return this._originalActiveVariant.data;\n }\n\n /** Returns current active variant data with applied changes. */\n getActiveVariantData(): Variant<T>['data'] {\n return this.activeVariant.data;\n }\n\n /**\n * Saves current variant with its configuration.\n */\n saveCurrentVariant(): void {\n if (this.readonly) {\n return;\n }\n const currentVariantIndex = this._variants.findIndex((variant) => variant.id === this.activeVariant.id);\n this._variants[currentVariantIndex] = this.activeVariant;\n this._originalActiveVariant = this.activeVariant.clone({}, false);\n this._variantChanged = false;\n this.variantsChange.emit(this._variants);\n }\n\n /** @hidden */\n _openSaveDialog(): void {\n if (this.readonly) {\n return;\n }\n this._popover?.close(false);\n const dialogRef = this._dialogService.open<SaveDialogContext>(ManageVariantItemComponent, {\n data: {\n existingVariantNames: this._variants.map((variant) => variant.name),\n currentVariantName: this.activeVariant.name\n }\n });\n dialogRef.afterClosed.subscribe({\n next: (result: NewVariant) => {\n const newVariant = this.activeVariant.clone({ ...result, ...{ createdBy: this.userName } });\n this._variants.push(newVariant);\n this.variantsChange.emit(this._variants);\n this.activeVariant = newVariant;\n this._variantChanged = false;\n this._cdr.detectChanges();\n },\n error: () => {}\n });\n }\n\n /**\n * Updates current active preset with new configuration.\n * @param preset Preset configuration.\n * @param componentName component to which this preset belongs to.\n */\n updateActivePreset(preset: T, componentName: string): void {\n const activeVariantData = this._originalActiveVariant.data[componentName];\n this._variantChanged = activeVariantData && !equal(preset, activeVariantData);\n this.activeVariant.data[componentName] = preset;\n this._cdr.detectChanges();\n }\n\n /** @hidden */\n _openManageDialog(): void {\n if (this.readonly) {\n return;\n }\n this._popover?.close(false);\n const dialogRef = this._dialogService.open<VariantItem[]>(ManageVariantsDialogComponent, {\n data: this._variants\n });\n\n dialogRef.afterClosed.subscribe({\n next: (variants: VariantItem[]) => {\n this._variants = variants;\n this.variantsChange.emit(this._variants);\n },\n error: () => {}\n });\n }\n\n /** @hidden */\n _onSearchSubmit(search: SearchInput): void {\n this._filterPhrase = search.text;\n this._cdr.detectChanges();\n }\n\n /** @hidden */\n _cancelSearch(): void {\n this._filterPhrase = null;\n this._cdr.detectChanges();\n }\n\n /** @Hidden */\n _trackFn(index: number, item: VariantItem<T>): string {\n return item.id;\n }\n\n /** @hidden */\n private _transformVariants(items: Variant<T>[]): VariantItem[] {\n return items.map((variant) => new VariantItem(variant));\n }\n}\n","@if (activeVariant) {\n <fd-popover\n #popover\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\n fd-title\n [ngClass]=\"{\n 'fd-variant-management__title': true,\n 'fd-variant-management__title--dynamic-page': _dynamicPage,\n 'fd-variant-management__title--dynamic-page--collapsed': _dynamicPageCollapsed$ | async\n }\"\n [headerSize]=\"headerSize\"\n >\n {{ activeVariant.name }}\n </h4>\n @if (_variantChanged && !readonly) {\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 }\n <button fd-button [fdMenu]=\"true\" fdType=\"transparent\" [attr.aria-haspopup]=\"true\"></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 @if (displaySearch) {\n <div fd-bar barDesign=\"header\">\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 }\n </div>\n <ul fd-list>\n @for (\n variant of _variants | fdFilterStrings: { searchTerm: _filterPhrase, key: 'name' };\n track variant.id\n ) {\n <li fd-list-item [selected]=\"variant.name === activeVariant.name\" (click)=\"selectVariant(variant)\">\n <span fd-list-link>\n <span fd-list-title>{{ variant.name }}</span>\n </span>\n </li>\n }\n </ul>\n @if (!readonly) {\n <div fd-popover-body-footer>\n <div fd-bar barDesign=\"footer\">\n <div fd-bar-right>\n @if (!activeVariant.readonly && _variantChanged) {\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'platformVariantManagement.save' | fdTranslate\"\n (click)=\"saveCurrentVariant()\"\n >\n </fd-button-bar>\n }\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 }\n </fd-popover-body>\n </fd-popover>\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n DestroyRef,\n inject,\n Input,\n OnDestroy,\n QueryList,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FDP_PRESET_MANAGED_COMPONENT, PresetManagedComponent } from '@fundamental-ngx/platform/shared';\nimport equal from 'fast-deep-equal';\nimport { filter, startWith, Subscription } from 'rxjs';\nimport { VariantManagement } from '../../models/variant-management';\nimport { FDP_VARIANT_MANAGEMENT, FDP_VARIANT_MANAGEMENT_WRAPPER } from '../../tokens';\n\n/**\n * Wrapper component used to wrap components that implement `PresetManagedComponent`.\n * It automatically bounds existing presets from `Variant Management` component to `PresetManagedComponent`.\n * Wrapper component supports two ways of providing Variant Management component.\n * First one is to pass reference via Input property.\n * Second one is to put Variant Management component inside wrapper component so it would be accessible via @ContentChild.\n * Usage example:\n *\n * ```html\n * Usage outside wrapper component:\n * <fdp-variant-management #variantManagement [variants]=\"...\"></fdp-variant-management>\n * <fdp-variant-management-wrapper [variantManager]=\"variantManagement\">\n * <fdp-smart-filter-bar>...</fdp-smart-filter-bar>\n * <fdp-table>...</fdp-table>\n * </fdp-variant-management-wrapper>\n *\n * Usage inside wrapper component:\n * <fdp-variant-management-wrapper>\n * <fdp-variant-management [variants]=\"...\"></fdp-variant-management>\n * <fdp-smart-filter-bar>...</fdp-smart-filter-bar>\n * <fdp-table>...</fdp-table>\n * </fdp-variant-management-wrapper>\n * ```\n */\n@Component({\n selector: 'fdp-variant-management-wrapper',\n template: `<ng-content></ng-content>`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: FDP_VARIANT_MANAGEMENT_WRAPPER,\n useExisting: VariantManagementWrapperComponent\n }\n ],\n standalone: true\n})\nexport class VariantManagementWrapperComponent implements AfterViewInit, OnDestroy {\n /** Variant management component. */\n @Input()\n variantManager: VariantManagement;\n\n /** @hidden */\n @ContentChildren(FDP_PRESET_MANAGED_COMPONENT, { descendants: true })\n private readonly _managedComponents: QueryList<PresetManagedComponent<any>>;\n\n /** @hidden */\n @ContentChild(FDP_VARIANT_MANAGEMENT, { descendants: true })\n private set _projectedVariantManager(variantManager: VariantManagement) {\n this._variantManager = variantManager;\n this._setPresets();\n }\n\n private get _projectedVariantManager(): VariantManagement {\n return this._variantManager;\n }\n\n /** @hidden */\n private get _variantManagement(): VariantManagement {\n return this._projectedVariantManager || this.variantManager;\n }\n\n /** @hidden */\n private _variantManager: VariantManagement;\n\n /** @hidden */\n private _activeVariantSubscription: Subscription;\n\n /** @hidden */\n private _componentsPresetChangeSubscription: Subscription;\n\n /** @hidden */\n private _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._setPresets();\n\n this._managedComponents?.changes\n .pipe(startWith(this._managedComponents), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this._listenToPresetChanges();\n });\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._activeVariantSubscription?.unsubscribe();\n this._componentsPresetChangeSubscription?.unsubscribe();\n }\n\n /**\n * @hidden\n * Listens to the preset change in Variant Management component and applies new configuration across projected components..\n */\n private _setPresets(): void {\n this._activeVariantSubscription?.unsubscribe();\n this._activeVariantSubscription = this._variantManagement?.activeVariantChangeSubject\n .pipe(\n filter((variant) => !!variant && !!this._managedComponents),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe(() => {\n const components = this._managedComponents.toArray();\n\n components.forEach((component) => {\n const data = this._variantManagement.activeVariant.data[component.name];\n component.setPreset(data);\n });\n });\n }\n\n /**\n * @hidden\n * Listens to preset configuration changes in projected components and sends updated config to Variant Management component.\n */\n private _listenToPresetChanges(): void {\n this._componentsPresetChangeSubscription?.unsubscribe();\n this._componentsPresetChangeSubscription = new Subscription();\n const components = this._managedComponents.toArray();\n\n components.forEach((component) => {\n this._componentsPresetChangeSubscription.add(\n component.presetChanged\n .pipe(\n filter((preset) => {\n const prevPreset = this._getComponentPreset().get(component);\n return !equal(preset, prevPreset);\n }),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((preset) => {\n this._variantManagement?.updateActivePreset(preset, component.name);\n })\n );\n });\n }\n\n /** @hidden */\n private _getComponentPreset(): Map<PresetManagedComponent<any>, any> {\n const components = this._managedComponents.toArray();\n const data = this._variantManagement.getActiveVariantData();\n const componentsMap = new Map<PresetManagedComponent<any>, any>();\n\n components.forEach((component) => {\n componentsMap.set(component, data[component.name]);\n });\n\n return componentsMap;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ManageVariantItemComponent } from './components/manage-variant-item/manage-variant-item.component';\nimport { ManageVariantsDialogComponent } from './components/manage-variants-dialog/manage-variants-dialog.component';\nimport { VariantManagementWrapperComponent } from './components/variant-management-wrapper/variant-management-wrapper.component';\nimport { VariantManagementDirtyLabelDirective } from './directives/variant-management-dirty-label.directive';\nimport { VariantManagementComponent } from './variant-management.component';\n\n@NgModule({\n imports: [\n VariantManagementComponent,\n VariantManagementDirtyLabelDirective,\n ManageVariantItemComponent,\n VariantManagementWrapperComponent,\n ManageVariantsDialogComponent\n ],\n exports: [\n VariantManagementComponent,\n VariantManagementDirtyLabelDirective,\n ManageVariantItemComponent,\n VariantManagementWrapperComponent,\n ManageVariantsDialogComponent\n ]\n})\nexport class VariantManagementModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fundamental-ngx/platform",
|
|
3
|
-
"version": "0.52.2-rc.
|
|
3
|
+
"version": "0.52.2-rc.8",
|
|
4
4
|
"schematics": "./schematics/collection.json",
|
|
5
5
|
"description": "Fundamental Library for Angular - platform",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -13,9 +13,9 @@
|
|
|
13
13
|
"node": ">= 10"
|
|
14
14
|
},
|
|
15
15
|
"peerDependencies": {
|
|
16
|
-
"@fundamental-ngx/cdk": "0.52.2-rc.
|
|
17
|
-
"@fundamental-ngx/core": "0.52.2-rc.
|
|
18
|
-
"@fundamental-ngx/i18n": "0.52.2-rc.
|
|
16
|
+
"@fundamental-ngx/cdk": "0.52.2-rc.8",
|
|
17
|
+
"@fundamental-ngx/core": "0.52.2-rc.8",
|
|
18
|
+
"@fundamental-ngx/i18n": "0.52.2-rc.8"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"fast-deep-equal": "3.1.3",
|
|
@@ -32,7 +32,7 @@ function callCoreSchematic(options) {
|
|
|
32
32
|
(0, dependencies_1.addPackageJsonDependency)(tree, {
|
|
33
33
|
type: dependencies_1.NodeDependencyType.Default,
|
|
34
34
|
// Will be replaced with the real version during sync-version script run
|
|
35
|
-
version: `0.52.2-rc.
|
|
35
|
+
version: `0.52.2-rc.8`,
|
|
36
36
|
name: '@fundamental-ngx/core'
|
|
37
37
|
});
|
|
38
38
|
const installTaskId = context.addTask(new tasks_1.NodePackageInstallTask({
|