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.
Files changed (70) hide show
  1. package/esm2022/lib/components/cps-autocomplete/cps-autocomplete.component.mjs +3 -3
  2. package/esm2022/lib/components/cps-button/cps-button.component.mjs +3 -3
  3. package/esm2022/lib/components/cps-button-toggle/cps-button-toggle.component.mjs +3 -3
  4. package/esm2022/lib/components/cps-checkbox/cps-checkbox.component.mjs +3 -3
  5. package/esm2022/lib/components/cps-chip/cps-chip.component.mjs +3 -3
  6. package/esm2022/lib/components/cps-datepicker/cps-datepicker.component.mjs +4 -4
  7. package/esm2022/lib/components/cps-divider/cps-divider.component.mjs +3 -3
  8. package/esm2022/lib/components/cps-expansion-panel/cps-expansion-panel.component.mjs +3 -3
  9. package/esm2022/lib/components/cps-file-upload/cps-file-upload.component.mjs +3 -3
  10. package/esm2022/lib/components/cps-icon/cps-icon.component.mjs +3 -3
  11. package/esm2022/lib/components/cps-info-circle/cps-info-circle.component.mjs +3 -3
  12. package/esm2022/lib/components/cps-input/cps-input.component.mjs +3 -3
  13. package/esm2022/lib/components/cps-loader/cps-loader.component.mjs +3 -3
  14. package/esm2022/lib/components/cps-menu/cps-menu.component.mjs +3 -3
  15. package/esm2022/lib/components/cps-paginator/cps-paginator.component.mjs +4 -4
  16. package/esm2022/lib/components/cps-paginator/pipes/cps-paginate.pipe.mjs +3 -3
  17. package/esm2022/lib/components/cps-progress-circular/cps-progress-circular.component.mjs +3 -3
  18. package/esm2022/lib/components/cps-progress-linear/cps-progress-linear.component.mjs +3 -3
  19. package/esm2022/lib/components/cps-radio-group/cps-radio/cps-radio.component.mjs +3 -3
  20. package/esm2022/lib/components/cps-radio-group/cps-radio-button/cps-radio-button.component.mjs +3 -3
  21. package/esm2022/lib/components/cps-radio-group/cps-radio-group.component.mjs +3 -3
  22. package/esm2022/lib/components/cps-scheduler/cps-scheduler.component.mjs +3 -3
  23. package/esm2022/lib/components/cps-select/cps-select.component.mjs +3 -3
  24. package/esm2022/lib/components/cps-sidebar-menu/cps-sidebar-menu.component.mjs +3 -3
  25. package/esm2022/lib/components/cps-switch/cps-switch.component.mjs +3 -3
  26. package/esm2022/lib/components/cps-tab-group/cps-tab/cps-tab.component.mjs +3 -3
  27. package/esm2022/lib/components/cps-tab-group/cps-tab-group.component.mjs +3 -3
  28. package/esm2022/lib/components/cps-table/components/internal/cps-sort-icon/cps-sort-icon.component.mjs +3 -3
  29. package/esm2022/lib/components/cps-table/components/internal/table-column-filter/table-column-filter.component.mjs +3 -3
  30. package/esm2022/lib/components/cps-table/components/internal/table-column-filter-constraint/table-column-filter-constraint.component.mjs +3 -3
  31. package/esm2022/lib/components/cps-table/components/internal/table-row-menu/table-row-menu.component.mjs +39 -21
  32. package/esm2022/lib/components/cps-table/cps-table.component.mjs +10 -8
  33. package/esm2022/lib/components/cps-table/directives/cps-table-column-filter.directive.mjs +3 -3
  34. package/esm2022/lib/components/cps-table/directives/cps-table-column-sortable.directive.mjs +3 -3
  35. package/esm2022/lib/components/cps-table/directives/cps-table-header-selectable.directive.mjs +3 -3
  36. package/esm2022/lib/components/cps-table/directives/cps-table-row-selectable.directive.mjs +3 -3
  37. package/esm2022/lib/components/cps-table/directives/internal/table-unsort.directive.mjs +3 -3
  38. package/esm2022/lib/components/cps-table/pipes/cps-table-detect-filter-type.pipe.mjs +3 -3
  39. package/esm2022/lib/components/cps-tag/cps-tag.component.mjs +3 -3
  40. package/esm2022/lib/components/cps-textarea/cps-textarea.component.mjs +3 -3
  41. package/esm2022/lib/components/cps-timepicker/cps-timepicker.component.mjs +3 -3
  42. package/esm2022/lib/components/cps-tree-autocomplete/cps-tree-autocomplete.component.mjs +4 -4
  43. package/esm2022/lib/components/cps-tree-select/cps-tree-select.component.mjs +4 -4
  44. package/esm2022/lib/components/cps-tree-table/cps-tree-table.component.mjs +10 -8
  45. package/esm2022/lib/components/cps-tree-table/directives/cps-tree-table-column-filter.directive.mjs +3 -3
  46. package/esm2022/lib/components/cps-tree-table/directives/cps-tree-table-column-sortable.directive.mjs +3 -3
  47. package/esm2022/lib/components/cps-tree-table/directives/cps-tree-table-header-selectable.directive.mjs +3 -3
  48. package/esm2022/lib/components/cps-tree-table/directives/cps-tree-table-row-selectable.directive.mjs +3 -3
  49. package/esm2022/lib/components/cps-tree-table/directives/cps-tree-table-row-toggler.directive.mjs +3 -3
  50. package/esm2022/lib/components/cps-tree-table/directives/internal/tree-table-unsort.directive.mjs +3 -3
  51. package/esm2022/lib/components/cps-tree-table/pipes/cps-tree-table-detect-filter-type.pipe.mjs +3 -3
  52. package/esm2022/lib/components/internal/cps-base-tree-dropdown/cps-base-tree-dropdown.component.mjs +3 -3
  53. package/esm2022/lib/directives/cps-tooltip/cps-tooltip.directive.mjs +3 -3
  54. package/esm2022/lib/pipes/internal/check-option-selected.pipe.mjs +3 -3
  55. package/esm2022/lib/pipes/internal/combine-labels.pipe.mjs +3 -3
  56. package/esm2022/lib/pipes/internal/label-by-value.pipe.mjs +3 -3
  57. package/esm2022/lib/services/cps-dialog/cps-dialog.service.mjs +3 -3
  58. package/esm2022/lib/services/cps-dialog/internal/components/cps-confirmation/cps-confirmation.component.mjs +3 -3
  59. package/esm2022/lib/services/cps-dialog/internal/components/cps-dialog/cps-dialog.component.mjs +3 -3
  60. package/esm2022/lib/services/cps-dialog/internal/directives/cps-dialog-content.directive.mjs +3 -3
  61. package/esm2022/lib/services/cps-notification/cps-notification.service.mjs +3 -3
  62. package/esm2022/lib/services/cps-notification/internal/components/cps-notification-container/cps-notification-container.component.mjs +3 -3
  63. package/esm2022/lib/services/cps-notification/internal/components/cps-toast/cps-toast.component.mjs +3 -3
  64. package/fesm2022/cps-ui-kit.mjs +236 -214
  65. package/fesm2022/cps-ui-kit.mjs.map +1 -1
  66. package/lib/components/cps-table/components/internal/table-row-menu/table-row-menu.component.d.ts +8 -1
  67. package/lib/components/cps-table/cps-table.component.d.ts +9 -3
  68. package/lib/components/cps-tree-table/cps-tree-table.component.d.ts +10 -4
  69. package/lib/utils/colors-utils.d.ts +1 -4
  70. 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: "17.3.0", 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: "17.3.0", 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"] }] }); }
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: "17.3.0", ngImport: i0, type: TableColumnFilterConstraintComponent, decorators: [{
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.items = [];
53
- if (this.showRowEditButton) {
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
- if (this.showRowRemoveButton) {
63
- this.items.push({
64
- title: 'Remove',
65
- icon: 'remove',
66
- action: (event) => {
67
- this.removeRowBtnClicked.emit(event);
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: "17.3.0", ngImport: i0, type: TableRowMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
73
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: TableRowMenuComponent, isStandalone: true, selector: "table-row-menu", inputs: { showRowRemoveButton: "showRowRemoveButton", 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"] }] }); }
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: "17.3.0", ngImport: i0, type: TableRowMenuComponent, decorators: [{
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtcm93LW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLXRhYmxlL2NvbXBvbmVudHMvaW50ZXJuYWwvdGFibGUtcm93LW1lbnUvdGFibGUtcm93LW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLXRhYmxlL2NvbXBvbmVudHMvaW50ZXJuYWwvdGFibGUtcm93LW1lbnUvdGFibGUtcm93LW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMzRSxPQUFPLEVBQ0wsZ0JBQWdCLEVBRWpCLE1BQU0seUNBQXlDLENBQUM7O0FBRWpEOztHQUVHO0FBUUgsTUFBTSxPQUFPLHFCQUFxQjtJQVBsQztRQVFFOzs7O1dBSUc7UUFDTyxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRXREOzs7O1dBSUc7UUFDTyx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBOEJoRCx5QkFBb0IsR0FBRyxJQUFJLENBQUM7UUFDNUIsdUJBQWtCLEdBQUcsSUFBSSxDQUFDO1FBRWxDLFVBQUssR0FBa0IsRUFBRSxDQUFDO0tBNkIzQjtJQTVEQzs7O09BR0c7SUFDSCxJQUNJLG1CQUFtQixDQUFDLEtBQWM7UUFDcEMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztRQUNsQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ25DLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUNJLGlCQUFpQixDQUFDLEtBQWM7UUFDbEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztRQUNoQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ2pDLENBQUM7SUFPRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFFaEIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztnQkFDZCxLQUFLLEVBQUUsTUFBTTtnQkFDYixJQUFJLEVBQUUsTUFBTTtnQkFDWixNQUFNLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRTtvQkFDckIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDckMsQ0FBQzthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO2dCQUNkLEtBQUssRUFBRSxRQUFRO2dCQUNmLElBQUksRUFBRSxRQUFRO2dCQUNkLE1BQU0sRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFO29CQUNyQixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN2QyxDQUFDO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7OEdBMUVVLHFCQUFxQjtrR0FBckIscUJBQXFCLDJRQ2pCbEMsK09BUUEsMk1ES1ksZ0JBQWdCLHdGQUFFLGdCQUFnQjs7MkZBSWpDLHFCQUFxQjtrQkFQakMsU0FBUzsrQkFDRSxnQkFBZ0IsY0FDZCxJQUFJLFdBQ1AsQ0FBQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQzs4QkFVbkMsaUJBQWlCO3NCQUExQixNQUFNO2dCQU9HLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFPSCxtQkFBbUI7c0JBRHRCLEtBQUs7Z0JBZUYsaUJBQWlCO3NCQURwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ3BzSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2Nwcy1pY29uL2Nwcy1pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBDcHNNZW51Q29tcG9uZW50LFxuICBDcHNNZW51SXRlbVxufSBmcm9tICcuLi8uLi8uLi8uLi9jcHMtbWVudS9jcHMtbWVudS5jb21wb25lbnQnO1xuXG4vKipcbiAqIFRhYmxlUm93TWVudUNvbXBvbmVudCBpcyBhbiBpbnRlcm5hbCBjb21wb25lbnQgd2hpY2ggYXBwbGllcyB0aGUgbWVudSB0byBlYWNoIHJvdy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGFibGUtcm93LW1lbnUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ3BzSWNvbkNvbXBvbmVudCwgQ3BzTWVudUNvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1yb3ctbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLXJvdy1tZW51LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVGFibGVSb3dNZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLyoqXG4gICAqIENhbGxiYWNrIHRvIGludm9rZSB3aGVuIGVkaXQtcm93IGJ1dHRvbiBpcyBjbGlja2VkLlxuICAgKiBAcGFyYW0ge2FueX0gYW55IC0gYnV0dG9uIGNsaWNrZWQuXG4gICAqIEBncm91cCBFbWl0c1xuICAgKi9cbiAgQE91dHB1dCgpIGVkaXRSb3dCdG5DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIHRvIGludm9rZSB3aGVuIHJlbW92ZS1yb3cgYnV0dG9uIGlzIGNsaWNrZWQuXG4gICAqIEBwYXJhbSB7YW55fSBhbnkgLSBidXR0b24gY2xpY2tlZC5cbiAgICogQGdyb3VwIEVtaXRzXG4gICAqL1xuICBAT3V0cHV0KCkgcmVtb3ZlUm93QnRuQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlICdSZW1vdmUnIGJ1dHRvbiBzaG91bGQgYmUgZGlzcGxheWVkIGluIHRoZSBtZW51LlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBzaG93Um93UmVtb3ZlQnV0dG9uKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2hvd1Jvd1JlbW92ZUJ1dHRvbiA9IHZhbHVlO1xuICAgIHRoaXMuaW5pdGlhbGl6ZUl0ZW1zKCk7XG4gIH1cblxuICBnZXQgc2hvd1Jvd1JlbW92ZUJ1dHRvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc2hvd1Jvd1JlbW92ZUJ1dHRvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlICdFZGl0JyBidXR0b24gc2hvdWxkIGJlIGRpc3BsYXllZCBpbiB0aGUgbWVudS5cbiAgICogQGdyb3VwIFByb3BzXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgc2hvd1Jvd0VkaXRCdXR0b24odmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zaG93Um93RWRpdEJ1dHRvbiA9IHZhbHVlO1xuICAgIHRoaXMuaW5pdGlhbGl6ZUl0ZW1zKCk7XG4gIH1cblxuICBnZXQgc2hvd1Jvd0VkaXRCdXR0b24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Nob3dSb3dFZGl0QnV0dG9uO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2hvd1Jvd1JlbW92ZUJ1dHRvbiA9IHRydWU7XG4gIHByaXZhdGUgX3Nob3dSb3dFZGl0QnV0dG9uID0gdHJ1ZTtcblxuICBpdGVtczogQ3BzTWVudUl0ZW1bXSA9IFtdO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdGlhbGl6ZUl0ZW1zKCk7XG4gIH1cblxuICBpbml0aWFsaXplSXRlbXMoKSB7XG4gICAgdGhpcy5pdGVtcyA9IFtdO1xuXG4gICAgaWYgKHRoaXMuc2hvd1Jvd0VkaXRCdXR0b24pIHtcbiAgICAgIHRoaXMuaXRlbXMucHVzaCh7XG4gICAgICAgIHRpdGxlOiAnRWRpdCcsXG4gICAgICAgIGljb246ICdlZGl0JyxcbiAgICAgICAgYWN0aW9uOiAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMuZWRpdFJvd0J0bkNsaWNrZWQuZW1pdChldmVudCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNob3dSb3dSZW1vdmVCdXR0b24pIHtcbiAgICAgIHRoaXMuaXRlbXMucHVzaCh7XG4gICAgICAgIHRpdGxlOiAnUmVtb3ZlJyxcbiAgICAgICAgaWNvbjogJ3JlbW92ZScsXG4gICAgICAgIGFjdGlvbjogKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLnJlbW92ZVJvd0J0bkNsaWNrZWQuZW1pdChldmVudCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPGNwcy1tZW51ICNyb3dNZW51IFtpdGVtc109XCJpdGVtc1wiIFtjb21wcmVzc2VkXT1cInRydWVcIiBbd2l0aEFycm93XT1cImZhbHNlXCI+XG48L2Nwcy1tZW51PlxuPGNwcy1pY29uXG4gIGljb249XCJkcm9wZG93bi1tZW51XCJcbiAgc2l6ZT1cIjIyXCJcbiAgKGNsaWNrKT1cInJvd01lbnUudG9nZ2xlKCRldmVudClcIlxuICBjbGFzcz1cImNwcy10YWJsZS1yb3ctbWVudS1pY29uXCI+XG48L2Nwcy1pY29uPlxuIl19
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtcm93LW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLXRhYmxlL2NvbXBvbmVudHMvaW50ZXJuYWwvdGFibGUtcm93LW1lbnUvdGFibGUtcm93LW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLXRhYmxlL2NvbXBvbmVudHMvaW50ZXJuYWwvdGFibGUtcm93LW1lbnUvdGFibGUtcm93LW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMzRSxPQUFPLEVBQ0wsZ0JBQWdCLEVBRWpCLE1BQU0seUNBQXlDLENBQUM7O0FBRWpEOztHQUVHO0FBUUgsTUFBTSxPQUFPLHFCQUFxQjtJQVBsQztRQVFFOzs7O1dBSUc7UUFDTyxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRXREOzs7O1dBSUc7UUFDTyx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBNENoRCx5QkFBb0IsR0FBRyxJQUFJLENBQUM7UUFDNUIsdUJBQWtCLEdBQUcsSUFBSSxDQUFDO1FBR2xDLFVBQUssR0FBa0IsRUFBRSxDQUFDO0tBZ0MzQjtJQTlFQzs7O09BR0c7SUFDSCxJQUNJLG1CQUFtQixDQUFDLEtBQWM7UUFDcEMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztRQUNsQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ25DLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUNJLFdBQVcsQ0FBQyxLQUFnQztRQUM5QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQ0ksaUJBQWlCLENBQUMsS0FBYztRQUNsQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDakMsQ0FBQztJQVFELFFBQVE7UUFDTixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1FBQ3hDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDaEIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7b0JBQ2QsS0FBSyxFQUFFLE1BQU07b0JBQ2IsSUFBSSxFQUFFLE1BQU07b0JBQ1osTUFBTSxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUU7d0JBQ3JCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3JDLENBQUM7aUJBQ0YsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUVELElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO29CQUNkLEtBQUssRUFBRSxRQUFRO29CQUNmLElBQUksRUFBRSxRQUFRO29CQUNkLE1BQU0sRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFO3dCQUNyQixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUN2QyxDQUFDO2lCQUNGLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzs4R0E1RlUscUJBQXFCO2tHQUFyQixxQkFBcUIsdVNDakJsQywrT0FRQSwyTURLWSxnQkFBZ0Isd0ZBQUUsZ0JBQWdCOzsyRkFJakMscUJBQXFCO2tCQVBqQyxTQUFTOytCQUNFLGdCQUFnQixjQUNkLElBQUksV0FDUCxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDOzhCQVVuQyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBT0csbUJBQW1CO3NCQUE1QixNQUFNO2dCQU9ILG1CQUFtQjtzQkFEdEIsS0FBSztnQkFlRixXQUFXO3NCQURkLEtBQUs7Z0JBZUYsaUJBQWlCO3NCQURwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ3BzSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2Nwcy1pY29uL2Nwcy1pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBDcHNNZW51Q29tcG9uZW50LFxuICBDcHNNZW51SXRlbVxufSBmcm9tICcuLi8uLi8uLi8uLi9jcHMtbWVudS9jcHMtbWVudS5jb21wb25lbnQnO1xuXG4vKipcbiAqIFRhYmxlUm93TWVudUNvbXBvbmVudCBpcyBhbiBpbnRlcm5hbCBjb21wb25lbnQgd2hpY2ggYXBwbGllcyB0aGUgbWVudSB0byBlYWNoIHJvdy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGFibGUtcm93LW1lbnUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ3BzSWNvbkNvbXBvbmVudCwgQ3BzTWVudUNvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1yb3ctbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLXJvdy1tZW51LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVGFibGVSb3dNZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLyoqXG4gICAqIENhbGxiYWNrIHRvIGludm9rZSB3aGVuIGVkaXQtcm93IGJ1dHRvbiBpcyBjbGlja2VkLlxuICAgKiBAcGFyYW0ge2FueX0gYW55IC0gYnV0dG9uIGNsaWNrZWQuXG4gICAqIEBncm91cCBFbWl0c1xuICAgKi9cbiAgQE91dHB1dCgpIGVkaXRSb3dCdG5DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIHRvIGludm9rZSB3aGVuIHJlbW92ZS1yb3cgYnV0dG9uIGlzIGNsaWNrZWQuXG4gICAqIEBwYXJhbSB7YW55fSBhbnkgLSBidXR0b24gY2xpY2tlZC5cbiAgICogQGdyb3VwIEVtaXRzXG4gICAqL1xuICBAT3V0cHV0KCkgcmVtb3ZlUm93QnRuQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlICdSZW1vdmUnIGJ1dHRvbiBzaG91bGQgYmUgZGlzcGxheWVkIGluIHRoZSBtZW51LlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBzaG93Um93UmVtb3ZlQnV0dG9uKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2hvd1Jvd1JlbW92ZUJ1dHRvbiA9IHZhbHVlO1xuICAgIHRoaXMuaW5pdGlhbGl6ZUl0ZW1zKCk7XG4gIH1cblxuICBnZXQgc2hvd1Jvd1JlbW92ZUJ1dHRvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc2hvd1Jvd1JlbW92ZUJ1dHRvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDdXN0b20gaXRlbXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBtZW51LlxuICAgKiBAZ3JvdXAgUHJvcHNcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBjdXN0b21JdGVtcyh2YWx1ZTogQ3BzTWVudUl0ZW1bXSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2N1c3RvbVJvd01lbnVJdGVtcyA9IHZhbHVlO1xuICAgIHRoaXMuaW5pdGlhbGl6ZUl0ZW1zKCk7XG4gIH1cblxuICBnZXQgY3VzdG9tSXRlbXMoKTogQ3BzTWVudUl0ZW1bXSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2N1c3RvbVJvd01lbnVJdGVtcztcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlICdFZGl0JyBidXR0b24gc2hvdWxkIGJlIGRpc3BsYXllZCBpbiB0aGUgbWVudS5cbiAgICogQGdyb3VwIFByb3BzXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgc2hvd1Jvd0VkaXRCdXR0b24odmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9zaG93Um93RWRpdEJ1dHRvbiA9IHZhbHVlO1xuICAgIHRoaXMuaW5pdGlhbGl6ZUl0ZW1zKCk7XG4gIH1cblxuICBnZXQgc2hvd1Jvd0VkaXRCdXR0b24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Nob3dSb3dFZGl0QnV0dG9uO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2hvd1Jvd1JlbW92ZUJ1dHRvbiA9IHRydWU7XG4gIHByaXZhdGUgX3Nob3dSb3dFZGl0QnV0dG9uID0gdHJ1ZTtcbiAgcHJpdmF0ZSBfY3VzdG9tUm93TWVudUl0ZW1zPzogQ3BzTWVudUl0ZW1bXTtcblxuICBpdGVtczogQ3BzTWVudUl0ZW1bXSA9IFtdO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdGlhbGl6ZUl0ZW1zKCk7XG4gIH1cblxuICBpbml0aWFsaXplSXRlbXMoKSB7XG4gICAgaWYgKHRoaXMuX2N1c3RvbVJvd01lbnVJdGVtcykge1xuICAgICAgdGhpcy5pdGVtcyA9IHRoaXMuX2N1c3RvbVJvd01lbnVJdGVtcztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pdGVtcyA9IFtdO1xuICAgICAgaWYgKHRoaXMuc2hvd1Jvd0VkaXRCdXR0b24pIHtcbiAgICAgICAgdGhpcy5pdGVtcy5wdXNoKHtcbiAgICAgICAgICB0aXRsZTogJ0VkaXQnLFxuICAgICAgICAgIGljb246ICdlZGl0JyxcbiAgICAgICAgICBhY3Rpb246IChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmVkaXRSb3dCdG5DbGlja2VkLmVtaXQoZXZlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnNob3dSb3dSZW1vdmVCdXR0b24pIHtcbiAgICAgICAgdGhpcy5pdGVtcy5wdXNoKHtcbiAgICAgICAgICB0aXRsZTogJ1JlbW92ZScsXG4gICAgICAgICAgaWNvbjogJ3JlbW92ZScsXG4gICAgICAgICAgYWN0aW9uOiAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVSb3dCdG5DbGlja2VkLmVtaXQoZXZlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCI8Y3BzLW1lbnUgI3Jvd01lbnUgW2l0ZW1zXT1cIml0ZW1zXCIgW2NvbXByZXNzZWRdPVwidHJ1ZVwiIFt3aXRoQXJyb3ddPVwiZmFsc2VcIj5cbjwvY3BzLW1lbnU+XG48Y3BzLWljb25cbiAgaWNvbj1cImRyb3Bkb3duLW1lbnVcIlxuICBzaXplPVwiMjJcIlxuICAoY2xpY2spPVwicm93TWVudS50b2dnbGUoJGV2ZW50KVwiXG4gIGNsYXNzPVwiY3BzLXRhYmxlLXJvdy1tZW51LWljb25cIj5cbjwvY3BzLWljb24+XG4iXX0=