cps-ui-kit 17.34.0 → 18.0.0
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.
- package/esm2022/lib/components/cps-autocomplete/cps-autocomplete.component.mjs +3 -3
- package/esm2022/lib/components/cps-button/cps-button.component.mjs +3 -3
- package/esm2022/lib/components/cps-button-toggle/cps-button-toggle.component.mjs +3 -3
- package/esm2022/lib/components/cps-checkbox/cps-checkbox.component.mjs +3 -3
- package/esm2022/lib/components/cps-chip/cps-chip.component.mjs +3 -3
- package/esm2022/lib/components/cps-datepicker/cps-datepicker.component.mjs +4 -4
- package/esm2022/lib/components/cps-divider/cps-divider.component.mjs +3 -3
- package/esm2022/lib/components/cps-expansion-panel/cps-expansion-panel.component.mjs +3 -3
- package/esm2022/lib/components/cps-file-upload/cps-file-upload.component.mjs +3 -3
- package/esm2022/lib/components/cps-icon/cps-icon.component.mjs +3 -3
- package/esm2022/lib/components/cps-info-circle/cps-info-circle.component.mjs +3 -3
- package/esm2022/lib/components/cps-input/cps-input.component.mjs +3 -3
- package/esm2022/lib/components/cps-loader/cps-loader.component.mjs +3 -3
- package/esm2022/lib/components/cps-menu/cps-menu.component.mjs +3 -3
- package/esm2022/lib/components/cps-paginator/cps-paginator.component.mjs +4 -4
- package/esm2022/lib/components/cps-paginator/pipes/cps-paginate.pipe.mjs +3 -3
- package/esm2022/lib/components/cps-progress-circular/cps-progress-circular.component.mjs +3 -3
- package/esm2022/lib/components/cps-progress-linear/cps-progress-linear.component.mjs +3 -3
- package/esm2022/lib/components/cps-radio-group/cps-radio/cps-radio.component.mjs +3 -3
- package/esm2022/lib/components/cps-radio-group/cps-radio-button/cps-radio-button.component.mjs +3 -3
- package/esm2022/lib/components/cps-radio-group/cps-radio-group.component.mjs +3 -3
- package/esm2022/lib/components/cps-scheduler/cps-scheduler.component.mjs +3 -3
- package/esm2022/lib/components/cps-select/cps-select.component.mjs +3 -3
- package/esm2022/lib/components/cps-sidebar-menu/cps-sidebar-menu.component.mjs +3 -3
- package/esm2022/lib/components/cps-switch/cps-switch.component.mjs +3 -3
- package/esm2022/lib/components/cps-tab-group/cps-tab/cps-tab.component.mjs +3 -3
- package/esm2022/lib/components/cps-tab-group/cps-tab-group.component.mjs +3 -3
- package/esm2022/lib/components/cps-table/components/internal/cps-sort-icon/cps-sort-icon.component.mjs +3 -3
- package/esm2022/lib/components/cps-table/components/internal/table-column-filter/table-column-filter.component.mjs +3 -3
- package/esm2022/lib/components/cps-table/components/internal/table-column-filter-constraint/table-column-filter-constraint.component.mjs +3 -3
- package/esm2022/lib/components/cps-table/components/internal/table-row-menu/table-row-menu.component.mjs +39 -21
- package/esm2022/lib/components/cps-table/cps-table.component.mjs +10 -8
- package/esm2022/lib/components/cps-table/directives/cps-table-column-filter.directive.mjs +3 -3
- package/esm2022/lib/components/cps-table/directives/cps-table-column-sortable.directive.mjs +3 -3
- package/esm2022/lib/components/cps-table/directives/cps-table-header-selectable.directive.mjs +3 -3
- package/esm2022/lib/components/cps-table/directives/cps-table-row-selectable.directive.mjs +3 -3
- package/esm2022/lib/components/cps-table/directives/internal/table-unsort.directive.mjs +3 -3
- package/esm2022/lib/components/cps-table/pipes/cps-table-detect-filter-type.pipe.mjs +3 -3
- package/esm2022/lib/components/cps-tag/cps-tag.component.mjs +3 -3
- package/esm2022/lib/components/cps-textarea/cps-textarea.component.mjs +3 -3
- package/esm2022/lib/components/cps-timepicker/cps-timepicker.component.mjs +3 -3
- package/esm2022/lib/components/cps-tree-autocomplete/cps-tree-autocomplete.component.mjs +4 -4
- package/esm2022/lib/components/cps-tree-select/cps-tree-select.component.mjs +4 -4
- package/esm2022/lib/components/cps-tree-table/cps-tree-table.component.mjs +10 -8
- package/esm2022/lib/components/cps-tree-table/directives/cps-tree-table-column-filter.directive.mjs +3 -3
- package/esm2022/lib/components/cps-tree-table/directives/cps-tree-table-column-sortable.directive.mjs +3 -3
- package/esm2022/lib/components/cps-tree-table/directives/cps-tree-table-header-selectable.directive.mjs +3 -3
- package/esm2022/lib/components/cps-tree-table/directives/cps-tree-table-row-selectable.directive.mjs +3 -3
- package/esm2022/lib/components/cps-tree-table/directives/cps-tree-table-row-toggler.directive.mjs +3 -3
- package/esm2022/lib/components/cps-tree-table/directives/internal/tree-table-unsort.directive.mjs +3 -3
- package/esm2022/lib/components/cps-tree-table/pipes/cps-tree-table-detect-filter-type.pipe.mjs +3 -3
- package/esm2022/lib/components/internal/cps-base-tree-dropdown/cps-base-tree-dropdown.component.mjs +3 -3
- package/esm2022/lib/directives/cps-tooltip/cps-tooltip.directive.mjs +3 -3
- package/esm2022/lib/pipes/internal/check-option-selected.pipe.mjs +3 -3
- package/esm2022/lib/pipes/internal/combine-labels.pipe.mjs +3 -3
- package/esm2022/lib/pipes/internal/label-by-value.pipe.mjs +3 -3
- package/esm2022/lib/services/cps-dialog/cps-dialog.service.mjs +3 -3
- package/esm2022/lib/services/cps-dialog/internal/components/cps-confirmation/cps-confirmation.component.mjs +3 -3
- package/esm2022/lib/services/cps-dialog/internal/components/cps-dialog/cps-dialog.component.mjs +3 -3
- package/esm2022/lib/services/cps-dialog/internal/directives/cps-dialog-content.directive.mjs +3 -3
- package/esm2022/lib/services/cps-notification/cps-notification.service.mjs +3 -3
- package/esm2022/lib/services/cps-notification/internal/components/cps-notification-container/cps-notification-container.component.mjs +3 -3
- package/esm2022/lib/services/cps-notification/internal/components/cps-toast/cps-toast.component.mjs +3 -3
- package/fesm2022/cps-ui-kit.mjs +236 -214
- package/fesm2022/cps-ui-kit.mjs.map +1 -1
- package/lib/components/cps-table/components/internal/table-row-menu/table-row-menu.component.d.ts +8 -1
- package/lib/components/cps-table/cps-table.component.d.ts +9 -3
- package/lib/components/cps-tree-table/cps-tree-table.component.d.ts +10 -4
- package/lib/utils/colors-utils.d.ts +1 -4
- package/package.json +6 -6
|
@@ -107,10 +107,10 @@ export class TableColumnFilterConstraintComponent {
|
|
|
107
107
|
this._tableInstance._filter();
|
|
108
108
|
event.preventDefault();
|
|
109
109
|
}
|
|
110
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
111
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
110
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: TableColumnFilterConstraintComponent, deps: [{ token: i1.Table, optional: true }, { token: i2.TreeTable, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
111
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.3", type: TableColumnFilterConstraintComponent, isStandalone: true, selector: "table-column-filter-constraint", inputs: { type: "type", field: "field", filterConstraint: "filterConstraint", categoryOptions: "categoryOptions", asButtonToggle: "asButtonToggle", singleSelection: "singleSelection", placeholder: "placeholder", hasApplyButton: "hasApplyButton" }, viewQueries: [{ propertyName: "categoryAutocompleteComponent", first: true, predicate: ["categoryAutocompleteComponent"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container [ngSwitch]=\"type\">\n <cps-input\n *ngSwitchCase=\"'text'\"\n [placeholder]=\"placeholder\"\n [hideDetails]=\"true\"\n (keydown.enter)=\"onEnterKeyDown($event)\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n type=\"text\"></cps-input>\n\n <cps-input\n *ngSwitchCase=\"'number'\"\n [hideDetails]=\"true\"\n [placeholder]=\"placeholder\"\n (keydown.enter)=\"onEnterKeyDown($event)\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n type=\"number\"></cps-input>\n\n <div\n class=\"cps-table-col-filter-constraint-btn-toggles\"\n *ngSwitchCase=\"'boolean'\">\n <cps-button-toggle\n [options]=\"booleanOptions\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n [mandatory]=\"false\">\n </cps-button-toggle>\n </div>\n\n <cps-datepicker\n *ngSwitchCase=\"'date'\"\n [openOnInputFocus]=\"true\"\n [hideDetails]=\"true\"\n [placeholder]=\"placeholder\"\n [value]=\"filterConstraint?.value\"\n (keydown.enter)=\"onEnterKeyDown($event)\"\n (valueChanged)=\"onValueChange($event)\">\n </cps-datepicker>\n\n <ng-container *ngSwitchCase=\"'category'\">\n <cps-autocomplete\n #categoryAutocompleteComponent\n *ngIf=\"!asButtonToggle\"\n class=\"cps-table-col-filter-category-autocomplete\"\n [placeholder]=\"placeholder\"\n [options]=\"categories\"\n [hideDetails]=\"true\"\n [clearable]=\"true\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n [returnObject]=\"false\"\n [multiple]=\"!singleSelection\">\n </cps-autocomplete>\n <div class=\"cps-table-col-filter-constraint-btn-toggles\">\n <cps-button-toggle\n *ngIf=\"asButtonToggle\"\n [options]=\"categories\"\n [value]=\"filterConstraint?.value\"\n (valueChanged)=\"onValueChange($event)\"\n [mandatory]=\"false\"\n [multiple]=\"!singleSelection\">\n </cps-button-toggle>\n </div>\n </ng-container>\n</ng-container>\n", styles: [":host .cps-table-col-filter-constraint-btn-toggles{display:flex;justify-content:center}:host .cps-table-col-filter-category-autocomplete{min-width:200px;max-width:400px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: CpsInputComponent, selector: "cps-input", inputs: ["label", "hint", "placeholder", "disabled", "readonly", "width", "type", "loading", "clearable", "prefixIcon", "prefixIconClickable", "prefixIconSize", "prefixText", "hideDetails", "persistentClear", "error", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "appearance", "valueToDisplay", "value"], outputs: ["valueChanged", "focused", "prefixIconClicked", "blurred", "cleared", "enterClicked"] }, { kind: "component", type: CpsDatepickerComponent, selector: "cps-datepicker", inputs: ["label", "disabled", "width", "placeholder", "hint", "clearable", "hideDetails", "persistentClear", "showTodayButton", "openOnInputFocus", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "appearance", "minDate", "maxDate", "value"], outputs: ["valueChanged"] }, { kind: "component", type: CpsButtonToggleComponent, selector: "cps-button-toggle", inputs: ["label", "options", "multiple", "disabled", "mandatory", "equalWidths", "optionTooltipPosition", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "value"], outputs: ["valueChanged"] }, { kind: "component", type: CpsAutocompleteComponent, selector: "cps-autocomplete", inputs: ["label", "placeholder", "hint", "returnObject", "multiple", "disabled", "width", "selectAll", "showChevron", "withOptionsAliases", "useOptionsAliasesWhenNoMatch", "optionAlias", "chips", "closableChips", "clearable", "openOnClear", "keepInitialOrder", "optionLabel", "optionValue", "optionInfo", "hideDetails", "persistentClear", "prefixIcon", "prefixIconSize", "loading", "loadingMessage", "showLoadingMessage", "emptyMessage", "showEmptyMessage", "virtualScroll", "numToleratedItems", "externalError", "infoTooltip", "infoTooltipClass", "infoTooltipMaxWidth", "infoTooltipPersistent", "infoTooltipPosition", "appearance", "emptyOptionIndex", "inputChangeDebounceTime", "value", "options"], outputs: ["valueChanged", "inputChanged", "focused", "blurred"] }] }); }
|
|
112
112
|
}
|
|
113
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
113
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: TableColumnFilterConstraintComponent, decorators: [{
|
|
114
114
|
type: Component,
|
|
115
115
|
args: [{ selector: 'table-column-filter-constraint', standalone: true, imports: [
|
|
116
116
|
CommonModule,
|
|
@@ -34,6 +34,17 @@ export class TableRowMenuComponent {
|
|
|
34
34
|
get showRowRemoveButton() {
|
|
35
35
|
return this._showRowRemoveButton;
|
|
36
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Custom items to be displayed in the menu.
|
|
39
|
+
* @group Props
|
|
40
|
+
*/
|
|
41
|
+
set customItems(value) {
|
|
42
|
+
this._customRowMenuItems = value;
|
|
43
|
+
this.initializeItems();
|
|
44
|
+
}
|
|
45
|
+
get customItems() {
|
|
46
|
+
return this._customRowMenuItems;
|
|
47
|
+
}
|
|
37
48
|
/**
|
|
38
49
|
* Determines whether the 'Edit' button should be displayed in the menu.
|
|
39
50
|
* @group Props
|
|
@@ -49,30 +60,35 @@ export class TableRowMenuComponent {
|
|
|
49
60
|
this.initializeItems();
|
|
50
61
|
}
|
|
51
62
|
initializeItems() {
|
|
52
|
-
this.
|
|
53
|
-
|
|
54
|
-
this.items.push({
|
|
55
|
-
title: 'Edit',
|
|
56
|
-
icon: 'edit',
|
|
57
|
-
action: (event) => {
|
|
58
|
-
this.editRowBtnClicked.emit(event);
|
|
59
|
-
}
|
|
60
|
-
});
|
|
63
|
+
if (this._customRowMenuItems) {
|
|
64
|
+
this.items = this._customRowMenuItems;
|
|
61
65
|
}
|
|
62
|
-
|
|
63
|
-
this.items
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
66
|
+
else {
|
|
67
|
+
this.items = [];
|
|
68
|
+
if (this.showRowEditButton) {
|
|
69
|
+
this.items.push({
|
|
70
|
+
title: 'Edit',
|
|
71
|
+
icon: 'edit',
|
|
72
|
+
action: (event) => {
|
|
73
|
+
this.editRowBtnClicked.emit(event);
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
if (this.showRowRemoveButton) {
|
|
78
|
+
this.items.push({
|
|
79
|
+
title: 'Remove',
|
|
80
|
+
icon: 'remove',
|
|
81
|
+
action: (event) => {
|
|
82
|
+
this.removeRowBtnClicked.emit(event);
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
}
|
|
70
86
|
}
|
|
71
87
|
}
|
|
72
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
73
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
88
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: TableRowMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
89
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.3", type: TableRowMenuComponent, isStandalone: true, selector: "table-row-menu", inputs: { showRowRemoveButton: "showRowRemoveButton", customItems: "customItems", showRowEditButton: "showRowEditButton" }, outputs: { editRowBtnClicked: "editRowBtnClicked", removeRowBtnClicked: "removeRowBtnClicked" }, ngImport: i0, template: "<cps-menu #rowMenu [items]=\"items\" [compressed]=\"true\" [withArrow]=\"false\">\n</cps-menu>\n<cps-icon\n icon=\"dropdown-menu\"\n size=\"22\"\n (click)=\"rowMenu.toggle($event)\"\n class=\"cps-table-row-menu-icon\">\n</cps-icon>\n", styles: [":host{height:22px;display:block}:host .cps-table-row-menu-icon{cursor:pointer}:host .cps-table-row-menu-icon:hover{color:var(--cps-color-calm)}\n"], dependencies: [{ kind: "component", type: CpsIconComponent, selector: "cps-icon", inputs: ["icon", "size", "color"] }, { kind: "component", type: CpsMenuComponent, selector: "cps-menu", inputs: ["header", "items", "withArrow", "compressed", "focusOnShow", "persistent", "containerClass", "showTransitionOptions", "hideTransitionOptions"], outputs: ["menuShown", "menuHidden", "beforeMenuHidden", "contentClicked"] }] }); }
|
|
74
90
|
}
|
|
75
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
91
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: TableRowMenuComponent, decorators: [{
|
|
76
92
|
type: Component,
|
|
77
93
|
args: [{ selector: 'table-row-menu', standalone: true, imports: [CpsIconComponent, CpsMenuComponent], template: "<cps-menu #rowMenu [items]=\"items\" [compressed]=\"true\" [withArrow]=\"false\">\n</cps-menu>\n<cps-icon\n icon=\"dropdown-menu\"\n size=\"22\"\n (click)=\"rowMenu.toggle($event)\"\n class=\"cps-table-row-menu-icon\">\n</cps-icon>\n", styles: [":host{height:22px;display:block}:host .cps-table-row-menu-icon{cursor:pointer}:host .cps-table-row-menu-icon:hover{color:var(--cps-color-calm)}\n"] }]
|
|
78
94
|
}], propDecorators: { editRowBtnClicked: [{
|
|
@@ -81,7 +97,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
|
|
|
81
97
|
type: Output
|
|
82
98
|
}], showRowRemoveButton: [{
|
|
83
99
|
type: Input
|
|
100
|
+
}], customItems: [{
|
|
101
|
+
type: Input
|
|
84
102
|
}], showRowEditButton: [{
|
|
85
103
|
type: Input
|
|
86
104
|
}] } });
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtcm93LW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLXRhYmxlL2NvbXBvbmVudHMvaW50ZXJuYWwvdGFibGUtcm93LW1lbnUvdGFibGUtcm93LW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLXRhYmxlL2NvbXBvbmVudHMvaW50ZXJuYWwvdGFibGUtcm93LW1lbnUvdGFibGUtcm93LW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMzRSxPQUFPLEVBQ0wsZ0JBQWdCLEVBRWpCLE1BQU0seUNBQXlDLENBQUM7O0FBRWpEOztHQUVHO0FBUUgsTUFBTSxPQUFPLHFCQUFxQjtJQVBsQztRQVFFOzs7O1dBSUc7UUFDTyxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRXREOzs7O1dBSUc7UUFDTyx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBNENoRCx5QkFBb0IsR0FBRyxJQUFJLENBQUM7UUFDNUIsdUJBQWtCLEdBQUcsSUFBSSxDQUFDO1FBR2xDLFVBQUssR0FBa0IsRUFBRSxDQUFDO0tBZ0MzQjtJQTlFQzs7O09BR0c7SUFDSCxJQUNJLG1CQUFtQixDQUFDLEtBQWM7UUFDcEMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztRQUNsQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ25DLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUNJLFdBQVcsQ0FBQyxLQUFnQztRQUM5QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQ0ksaUJBQWlCLENBQUMsS0FBYztRQUNsQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDakMsQ0FBQztJQVFELFFBQVE7UUFDTixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1FBQ3hDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDaEIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7b0JBQ2QsS0FBSyxFQUFFLE1BQU07b0JBQ2IsSUFBSSxFQUFFLE1BQU07b0JBQ1osTUFBTSxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUU7d0JBQ3JCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3JDLENBQUM7aUJBQ0YsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUVELElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO29CQUNkLEtBQUssRUFBRSxRQUFRO29CQUNmLElBQUksRUFBRSxRQUFRO29CQUNkLE1BQU0sRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFO3dCQUNyQixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUN2QyxDQUFDO2lCQUNGLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzs4R0E1RlUscUJBQXFCO2tHQUFyQixxQkFBcUIsdVNDakJsQywrT0FRQSwyTURLWSxnQkFBZ0Isd0ZBQUUsZ0JBQWdCOzsyRkFJakMscUJBQXFCO2tCQVBqQyxTQUFTOytCQUNFLGdCQUFnQixjQUNkLElBQUksV0FDUCxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDOzhCQVVuQyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBT0csbUJBQW1CO3NCQUE1QixNQUFNO2dCQU9ILG1CQUFtQjtzQkFEdEIsS0FBSztnQkFlRixXQUFXO3NCQURkLEtBQUs7Z0JBZUYsaUJBQWlCO3NCQURwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ3BzSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2Nwcy1pY29uL2Nwcy1pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBDcHNNZW51Q29tcG9uZW50LFxuICBDcHNNZW51SXRlbVxufSBmcm9tICcuLi8uLi8uLi8uLi9jcHMtbWVudS9jcHMtbWVudS5jb21wb25lbnQnO1xuXG4vKipcbiAqIFRhYmxlUm93TWVudUNvbXBvbmVudCBpcyBhbiBpbnRlcm5hbCBjb21wb25lbnQgd2hpY2ggYXBwbGllcyB0aGUgbWVudSB0byBlYWNoIHJvdy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGFibGUtcm93LW1lbnUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ3BzSWNvbkNvbXBvbmVudCwgQ3BzTWVudUNvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1yb3ctbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLXJvdy1tZW51LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVGFibGVSb3dNZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLyoqXG4gICAqIENhbGxiYWNrIHRvIGludm9rZSB3aGVuIGVkaXQtcm93IGJ1dHRvbiBpcyBjbGlja2VkLlxuICAgKiBAcGFyYW0ge2FueX0gYW55IC0gYnV0dG9uIGNsaWNrZWQuXG4gICAqIEBncm91cCBFbWl0c1xuICAgKi9cbiAgQE91dHB1dCgpIGVkaXRSb3dCdG5DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIHRvIGludm9rZSB3aGVuIHJlbW92ZS1yb3cgYnV0dG9uIGlzIGNsaWNrZWQuXG4gICAqIEBwYXJhbSB7YW55fSBhbnkgLSBidXR0b24gY2xpY2tlZC5cbiAgICogQGdyb3VwIEVtaXRzXG4gICAqL1xuICBAT3V0cHV0KCkgcmVtb3ZlUm93QnRuQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlICdSZW1vdmUnIGJ1dHRvbiBzaG91bGQgYmUgZGlzcGxheWVkIGluIHRoZSBtZW51LlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBzaG93Um93UmVtb3ZlQnV0dG9uKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2hvd1Jvd1JlbW92ZUJ1dHRvbiA9IHZhbHVlO1xuICAgIHRoaXMuaW5pdGlhbGl6ZUl0ZW1zKCk7XG4gIH1cblxuICBnZXQgc2hvd1Jvd1JlbW92ZUJ1dHRvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc2hvd1Jvd1JlbW92ZUJ1dHRvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDdXN0b20gaXRlbXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBtZW51LlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBjdXN0b21JdGVtcyh2YWx1ZTogQ3BzTWVudUl0ZW1bXSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2N1c3RvbVJvd01lbnVJdGVtcyA9IHZhbHVlO1xuICAgIHRoaXMuaW5pdGlhbGl6ZUl0ZW1zKCk7XG4gIH1cblxuICBnZXQgY3VzdG9tSXRlbXMoKTogQ3BzTWVudUl0ZW1bXSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2N1c3RvbVJvd01lbnVJdGVtcztcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlICdFZGl0JyBidXR0b24gc2hvdWxkIGJlIGRpc3BsYXllZCBpbiB0aGUgbWVudS5cbiAgICogQGdyb3VwIFByb3BzXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgc2hvd1Jvd0VkaXRCdXR0b24odmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zaG93Um93RWRpdEJ1dHRvbiA9IHZhbHVlO1xuICAgIHRoaXMuaW5pdGlhbGl6ZUl0ZW1zKCk7XG4gIH1cblxuICBnZXQgc2hvd1Jvd0VkaXRCdXR0b24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Nob3dSb3dFZGl0QnV0dG9uO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2hvd1Jvd1JlbW92ZUJ1dHRvbiA9IHRydWU7XG4gIHByaXZhdGUgX3Nob3dSb3dFZGl0QnV0dG9uID0gdHJ1ZTtcbiAgcHJpdmF0ZSBfY3VzdG9tUm93TWVudUl0ZW1zPzogQ3BzTWVudUl0ZW1bXTtcblxuICBpdGVtczogQ3BzTWVudUl0ZW1bXSA9IFtdO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdGlhbGl6ZUl0ZW1zKCk7XG4gIH1cblxuICBpbml0aWFsaXplSXRlbXMoKSB7XG4gICAgaWYgKHRoaXMuX2N1c3RvbVJvd01lbnVJdGVtcykge1xuICAgICAgdGhpcy5pdGVtcyA9IHRoaXMuX2N1c3RvbVJvd01lbnVJdGVtcztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pdGVtcyA9IFtdO1xuICAgICAgaWYgKHRoaXMuc2hvd1Jvd0VkaXRCdXR0b24pIHtcbiAgICAgICAgdGhpcy5pdGVtcy5wdXNoKHtcbiAgICAgICAgICB0aXRsZTogJ0VkaXQnLFxuICAgICAgICAgIGljb246ICdlZGl0JyxcbiAgICAgICAgICBhY3Rpb246IChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmVkaXRSb3dCdG5DbGlja2VkLmVtaXQoZXZlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnNob3dSb3dSZW1vdmVCdXR0b24pIHtcbiAgICAgICAgdGhpcy5pdGVtcy5wdXNoKHtcbiAgICAgICAgICB0aXRsZTogJ1JlbW92ZScsXG4gICAgICAgICAgaWNvbjogJ3JlbW92ZScsXG4gICAgICAgICAgYWN0aW9uOiAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVSb3dCdG5DbGlja2VkLmVtaXQoZXZlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCI8Y3BzLW1lbnUgI3Jvd01lbnUgW2l0ZW1zXT1cIml0ZW1zXCIgW2NvbXByZXNzZWRdPVwidHJ1ZVwiIFt3aXRoQXJyb3ddPVwiZmFsc2VcIj5cbjwvY3BzLW1lbnU+XG48Y3BzLWljb25cbiAgaWNvbj1cImRyb3Bkb3duLW1lbnVcIlxuICBzaXplPVwiMjJcIlxuICAoY2xpY2spPVwicm93TWVudS50b2dnbGUoJGV2ZW50KVwiXG4gIGNsYXNzPVwiY3BzLXRhYmxlLXJvdy1tZW51LWljb25cIj5cbjwvY3BzLWljb24+XG4iXX0=
|