@aquera/ngx-smart-table 0.0.17-alpha → 0.0.19-alpha
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/{fesm2020 → fesm2022}/aquera-ngx-smart-table.mjs +1579 -2101
- package/fesm2022/aquera-ngx-smart-table.mjs.map +1 -0
- package/package.json +8 -16
- package/types/aquera-ngx-smart-table.d.ts +5909 -0
- package/aquera-ngx-smart-table.d.ts +0 -5
- package/esm2020/aquera-ngx-smart-table.mjs +0 -5
- package/esm2020/lib/builder/components/builder-preview/builder-preview.component.mjs +0 -63
- package/esm2020/lib/builder/components/builder-toolbar/builder-toolbar.component.mjs +0 -115
- package/esm2020/lib/builder/components/column-editor/column-editor.component.mjs +0 -206
- package/esm2020/lib/builder/components/column-list/column-list.component.mjs +0 -125
- package/esm2020/lib/builder/components/definition-builder/definition-builder.component.mjs +0 -105
- package/esm2020/lib/builder/components/table-config-editor/table-config-editor.component.mjs +0 -132
- package/esm2020/lib/builder/definition-builder.module.mjs +0 -70
- package/esm2020/lib/builder/models/builder-state.interface.mjs +0 -5
- package/esm2020/lib/builder/services/definition-builder.service.mjs +0 -251
- package/esm2020/lib/builder/services/definition-export.service.mjs +0 -167
- package/esm2020/lib/builder/services/definition-import.service.mjs +0 -193
- package/esm2020/lib/builder/services/sample-data-generator.service.mjs +0 -126
- package/esm2020/lib/builder/utils/config-validator.util.mjs +0 -165
- package/esm2020/lib/builder/utils/typescript-generator.util.mjs +0 -206
- package/esm2020/lib/editors/index.mjs +0 -9
- package/esm2020/lib/editors/nile-autocomplete-editor.mjs +0 -228
- package/esm2020/lib/editors/nile-calendar-editor.mjs +0 -211
- package/esm2020/lib/editors/nile-date-picker-editor.mjs +0 -188
- package/esm2020/lib/editors/nile-input-editor.mjs +0 -235
- package/esm2020/lib/editors/nile-select-editor.mjs +0 -498
- package/esm2020/lib/factories/column-config.factory.mjs +0 -231
- package/esm2020/lib/models/autosave-config.interface.mjs +0 -8
- package/esm2020/lib/models/base-column-config.class.mjs +0 -253
- package/esm2020/lib/models/cell-strategies.interface.mjs +0 -6
- package/esm2020/lib/models/cell-types.mjs +0 -147
- package/esm2020/lib/models/column-action.interface.mjs +0 -6
- package/esm2020/lib/models/column-config.interface.mjs +0 -43
- package/esm2020/lib/models/column-config.utils.mjs +0 -101
- package/esm2020/lib/models/row-action.interface.mjs +0 -5
- package/esm2020/lib/models/row-validator.interface.mjs +0 -2
- package/esm2020/lib/models/schema-validation.interface.mjs +0 -2
- package/esm2020/lib/models/sheet-action.interface.mjs +0 -5
- package/esm2020/lib/models/sheet-config.interface.mjs +0 -5
- package/esm2020/lib/models/table-config.interface.mjs +0 -107
- package/esm2020/lib/models/table-validator.interface.mjs +0 -2
- package/esm2020/lib/models/workbook-action.interface.mjs +0 -5
- package/esm2020/lib/models/workbook-config.interface.mjs +0 -5
- package/esm2020/lib/renderer/components/st-add-column-button/st-add-column-button.component.mjs +0 -24
- package/esm2020/lib/renderer/components/st-cell/st-cell.component.mjs +0 -397
- package/esm2020/lib/renderer/components/st-column-editor-modal/st-column-editor-modal.component.mjs +0 -103
- package/esm2020/lib/renderer/components/st-column-filter/st-column-filter.component.mjs +0 -383
- package/esm2020/lib/renderer/components/st-column-menu/st-column-menu.component.mjs +0 -232
- package/esm2020/lib/renderer/components/st-column-visibility/st-column-visibility.component.mjs +0 -97
- package/esm2020/lib/renderer/components/st-header/st-header.component.mjs +0 -157
- package/esm2020/lib/renderer/components/st-pagination/st-pagination.component.mjs +0 -87
- package/esm2020/lib/renderer/components/st-row-actions-dropdown/st-row-actions-dropdown.component.mjs +0 -167
- package/esm2020/lib/renderer/components/st-sheet/st-sheet.component.mjs +0 -165
- package/esm2020/lib/renderer/components/st-sheet-actions/st-sheet-actions.component.mjs +0 -112
- package/esm2020/lib/renderer/components/st-table/st-table.component.mjs +0 -1453
- package/esm2020/lib/renderer/components/st-table-actions/st-table-actions.component.mjs +0 -169
- package/esm2020/lib/renderer/components/st-workbook/st-workbook.component.mjs +0 -581
- package/esm2020/lib/renderer/directives/click-outside.directive.mjs +0 -28
- package/esm2020/lib/renderer/directives/st-column-resize.directive.mjs +0 -108
- package/esm2020/lib/renderer/directives/st-keyboard-navigation.directive.mjs +0 -83
- package/esm2020/lib/renderer/models/cell-state.interface.mjs +0 -66
- package/esm2020/lib/renderer/models/cell.class.mjs +0 -389
- package/esm2020/lib/renderer/models/row-validation-state.interface.mjs +0 -7
- package/esm2020/lib/renderer/models/sheet-state.class.mjs +0 -90
- package/esm2020/lib/renderer/models/sheet-state.interface.mjs +0 -5
- package/esm2020/lib/renderer/models/table-state.class.mjs +0 -871
- package/esm2020/lib/renderer/models/table-state.interface.mjs +0 -5
- package/esm2020/lib/renderer/models/table-types.mjs +0 -29
- package/esm2020/lib/renderer/models/table-validation-state.interface.mjs +0 -7
- package/esm2020/lib/renderer/models/workbook-state.class.mjs +0 -174
- package/esm2020/lib/renderer/models/workbook-state.interface.mjs +0 -5
- package/esm2020/lib/renderer/models/z-index.enum.mjs +0 -55
- package/esm2020/lib/schemas/table-config.schema.mjs +0 -472
- package/esm2020/lib/services/autosave.service.mjs +0 -92
- package/esm2020/lib/services/custom-validation-rules.util.mjs +0 -124
- package/esm2020/lib/services/json-schema-validator.service.mjs +0 -216
- package/esm2020/lib/services/row-validation.service.mjs +0 -42
- package/esm2020/lib/services/validation-logger.service.mjs +0 -177
- package/esm2020/lib/services/virtual-scroll.service.mjs +0 -52
- package/esm2020/lib/shared/shared-table-components.module.mjs +0 -35
- package/esm2020/lib/smart-table.module.mjs +0 -124
- package/esm2020/lib/strategies/default-editors.mjs +0 -433
- package/esm2020/lib/strategies/default-formatters.mjs +0 -238
- package/esm2020/lib/strategies/default-validators.mjs +0 -327
- package/esm2020/public-api.mjs +0 -146
- package/fesm2015/aquera-ngx-smart-table.mjs +0 -12347
- package/fesm2015/aquera-ngx-smart-table.mjs.map +0 -1
- package/fesm2020/aquera-ngx-smart-table.mjs.map +0 -1
- package/lib/builder/components/builder-preview/builder-preview.component.d.ts +0 -31
- package/lib/builder/components/builder-toolbar/builder-toolbar.component.d.ts +0 -53
- package/lib/builder/components/column-editor/column-editor.component.d.ts +0 -69
- package/lib/builder/components/column-list/column-list.component.d.ts +0 -65
- package/lib/builder/components/definition-builder/definition-builder.component.d.ts +0 -58
- package/lib/builder/components/table-config-editor/table-config-editor.component.d.ts +0 -32
- package/lib/builder/definition-builder.module.d.ts +0 -15
- package/lib/builder/models/builder-state.interface.d.ts +0 -93
- package/lib/builder/services/definition-builder.service.d.ts +0 -80
- package/lib/builder/services/definition-export.service.d.ts +0 -59
- package/lib/builder/services/definition-import.service.d.ts +0 -31
- package/lib/builder/services/sample-data-generator.service.d.ts +0 -41
- package/lib/builder/utils/config-validator.util.d.ts +0 -32
- package/lib/builder/utils/typescript-generator.util.d.ts +0 -29
- package/lib/editors/index.d.ts +0 -8
- package/lib/editors/nile-autocomplete-editor.d.ts +0 -102
- package/lib/editors/nile-calendar-editor.d.ts +0 -88
- package/lib/editors/nile-date-picker-editor.d.ts +0 -97
- package/lib/editors/nile-input-editor.d.ts +0 -67
- package/lib/editors/nile-select-editor.d.ts +0 -113
- package/lib/factories/column-config.factory.d.ts +0 -73
- package/lib/models/autosave-config.interface.d.ts +0 -23
- package/lib/models/base-column-config.class.d.ts +0 -115
- package/lib/models/cell-strategies.interface.d.ts +0 -188
- package/lib/models/cell-types.d.ts +0 -337
- package/lib/models/column-action.interface.d.ts +0 -86
- package/lib/models/column-config.interface.d.ts +0 -272
- package/lib/models/column-config.utils.d.ts +0 -37
- package/lib/models/row-action.interface.d.ts +0 -86
- package/lib/models/row-validator.interface.d.ts +0 -37
- package/lib/models/schema-validation.interface.d.ts +0 -42
- package/lib/models/sheet-action.interface.d.ts +0 -59
- package/lib/models/sheet-config.interface.d.ts +0 -41
- package/lib/models/table-config.interface.d.ts +0 -251
- package/lib/models/table-validator.interface.d.ts +0 -40
- package/lib/models/workbook-action.interface.d.ts +0 -95
- package/lib/models/workbook-config.interface.d.ts +0 -107
- package/lib/renderer/components/st-add-column-button/st-add-column-button.component.d.ts +0 -9
- package/lib/renderer/components/st-cell/st-cell.component.d.ts +0 -69
- package/lib/renderer/components/st-column-editor-modal/st-column-editor-modal.component.d.ts +0 -39
- package/lib/renderer/components/st-column-filter/st-column-filter.component.d.ts +0 -139
- package/lib/renderer/components/st-column-menu/st-column-menu.component.d.ts +0 -81
- package/lib/renderer/components/st-column-visibility/st-column-visibility.component.d.ts +0 -44
- package/lib/renderer/components/st-header/st-header.component.d.ts +0 -93
- package/lib/renderer/components/st-pagination/st-pagination.component.d.ts +0 -42
- package/lib/renderer/components/st-row-actions-dropdown/st-row-actions-dropdown.component.d.ts +0 -67
- package/lib/renderer/components/st-sheet/st-sheet.component.d.ts +0 -98
- package/lib/renderer/components/st-sheet-actions/st-sheet-actions.component.d.ts +0 -58
- package/lib/renderer/components/st-table/st-table.component.d.ts +0 -380
- package/lib/renderer/components/st-table-actions/st-table-actions.component.d.ts +0 -77
- package/lib/renderer/components/st-workbook/st-workbook.component.d.ts +0 -275
- package/lib/renderer/directives/click-outside.directive.d.ts +0 -10
- package/lib/renderer/directives/st-column-resize.directive.d.ts +0 -44
- package/lib/renderer/directives/st-keyboard-navigation.directive.d.ts +0 -19
- package/lib/renderer/models/cell-state.interface.d.ts +0 -118
- package/lib/renderer/models/cell.class.d.ts +0 -174
- package/lib/renderer/models/row-validation-state.interface.d.ts +0 -27
- package/lib/renderer/models/sheet-state.class.d.ts +0 -67
- package/lib/renderer/models/sheet-state.interface.d.ts +0 -55
- package/lib/renderer/models/table-state.class.d.ts +0 -320
- package/lib/renderer/models/table-state.interface.d.ts +0 -18
- package/lib/renderer/models/table-types.d.ts +0 -228
- package/lib/renderer/models/table-validation-state.interface.d.ts +0 -34
- package/lib/renderer/models/workbook-state.class.d.ts +0 -117
- package/lib/renderer/models/workbook-state.interface.d.ts +0 -71
- package/lib/renderer/models/z-index.enum.d.ts +0 -44
- package/lib/schemas/table-config.schema.d.ts +0 -455
- package/lib/services/autosave.service.d.ts +0 -73
- package/lib/services/custom-validation-rules.util.d.ts +0 -12
- package/lib/services/json-schema-validator.service.d.ts +0 -49
- package/lib/services/row-validation.service.d.ts +0 -17
- package/lib/services/validation-logger.service.d.ts +0 -87
- package/lib/services/virtual-scroll.service.d.ts +0 -44
- package/lib/shared/shared-table-components.module.d.ts +0 -9
- package/lib/smart-table.module.d.ts +0 -26
- package/lib/strategies/default-editors.d.ts +0 -109
- package/lib/strategies/default-formatters.d.ts +0 -116
- package/lib/strategies/default-validators.d.ts +0 -113
- package/public-api.d.ts +0 -70
- package/src/lib/builder/README.md +0 -30
- package/src/lib/editors/README.md +0 -303
- package/src/lib/renderer/components/st-column-filter/README.md +0 -286
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
2
|
-
import { TableZIndex } from '../../models/z-index.enum';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/common";
|
|
5
|
-
export class StTableActionsComponent {
|
|
6
|
-
constructor() {
|
|
7
|
-
this.allowAddColumn = false;
|
|
8
|
-
this.addColumnClicked = new EventEmitter();
|
|
9
|
-
this.isOpen = false;
|
|
10
|
-
this.currentView = 'main';
|
|
11
|
-
this.columnsVisibility = [];
|
|
12
|
-
/**
|
|
13
|
-
* Dropdown positioning style
|
|
14
|
-
*/
|
|
15
|
-
this.dropdownStyle = {};
|
|
16
|
-
}
|
|
17
|
-
ngOnInit() {
|
|
18
|
-
if (!this.tableState) {
|
|
19
|
-
console.warn('tableState is required for st-table-actions component');
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
// Initialize with current state
|
|
23
|
-
this.updateColumnsVisibility();
|
|
24
|
-
// Subscribe to state changes to update visibility list
|
|
25
|
-
this.subscribeToStateChanges();
|
|
26
|
-
}
|
|
27
|
-
ngOnDestroy() {
|
|
28
|
-
this.stateSubscription?.unsubscribe();
|
|
29
|
-
// Re-enable body scroll if component is destroyed while menu is open
|
|
30
|
-
if (this.isOpen) {
|
|
31
|
-
document.body.style.overflow = '';
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Update columns visibility list from current table state
|
|
36
|
-
*/
|
|
37
|
-
updateColumnsVisibility() {
|
|
38
|
-
if (this.tableState) {
|
|
39
|
-
this.columnsVisibility = this.tableState.getAllColumnsVisibility();
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Subscribe to table state changes
|
|
44
|
-
*/
|
|
45
|
-
subscribeToStateChanges() {
|
|
46
|
-
if (!this.tableState)
|
|
47
|
-
return;
|
|
48
|
-
this.stateSubscription = this.tableState.stateChange$
|
|
49
|
-
.subscribe(event => {
|
|
50
|
-
if (event.type === 'column-visibility' || event.type === 'column-config') {
|
|
51
|
-
this.updateColumnsVisibility();
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Toggle menu open/close
|
|
57
|
-
*/
|
|
58
|
-
toggleMenu(event) {
|
|
59
|
-
event.stopPropagation();
|
|
60
|
-
this.isOpen = !this.isOpen;
|
|
61
|
-
if (this.isOpen) {
|
|
62
|
-
this.currentView = 'main';
|
|
63
|
-
this.updateDropdownPosition(event);
|
|
64
|
-
// Disable body scroll when menu opens
|
|
65
|
-
document.body.style.overflow = 'hidden';
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
// Re-enable body scroll when menu closes
|
|
69
|
-
document.body.style.overflow = '';
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Update dropdown position based on trigger button
|
|
74
|
-
*/
|
|
75
|
-
updateDropdownPosition(event) {
|
|
76
|
-
const button = event.currentTarget;
|
|
77
|
-
const rect = button.getBoundingClientRect();
|
|
78
|
-
const dropdownWidth = 220;
|
|
79
|
-
let x = rect.right;
|
|
80
|
-
let y = rect.bottom + 5;
|
|
81
|
-
// // Adjust horizontal position if dropdown would overflow
|
|
82
|
-
// if (x + dropdownWidth > viewportWidth) {
|
|
83
|
-
// x = Math.max(10, viewportWidth - dropdownWidth - 10);
|
|
84
|
-
// }
|
|
85
|
-
// // Adjust vertical position if dropdown would overflow
|
|
86
|
-
// if (y + dropdownHeight > viewportHeight) {
|
|
87
|
-
// y = rect.top - dropdownHeight - 5;
|
|
88
|
-
// }
|
|
89
|
-
this.dropdownStyle = {
|
|
90
|
-
position: 'absolute',
|
|
91
|
-
left: `${x - dropdownWidth}px`,
|
|
92
|
-
top: `${y}px`,
|
|
93
|
-
'z-index': TableZIndex.TABLE_ACTIONS_DROPDOWN
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Close menu
|
|
98
|
-
*/
|
|
99
|
-
closeMenu() {
|
|
100
|
-
this.isOpen = false;
|
|
101
|
-
this.currentView = 'main';
|
|
102
|
-
// Re-enable body scroll when menu closes
|
|
103
|
-
document.body.style.overflow = '';
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Handle add column action
|
|
107
|
-
*/
|
|
108
|
-
onAddColumn(event) {
|
|
109
|
-
event.stopPropagation();
|
|
110
|
-
this.addColumnClicked.emit();
|
|
111
|
-
this.closeMenu();
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* Open column visibility submenu
|
|
115
|
-
*/
|
|
116
|
-
openColumnsSubmenu(event) {
|
|
117
|
-
event.stopPropagation();
|
|
118
|
-
this.currentView = 'columns';
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* Go back to main menu
|
|
122
|
-
*/
|
|
123
|
-
backToMain(event) {
|
|
124
|
-
event.stopPropagation();
|
|
125
|
-
this.currentView = 'main';
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Toggle column visibility
|
|
129
|
-
*/
|
|
130
|
-
onToggleColumn(columnKey, event) {
|
|
131
|
-
event.stopPropagation();
|
|
132
|
-
// Check if column is hideable before toggling
|
|
133
|
-
const column = this.columnsVisibility.find(col => col.key === columnKey);
|
|
134
|
-
if (column && column.hideable !== false) {
|
|
135
|
-
if (this.tableState) {
|
|
136
|
-
this.tableState.toggleColumnVisibility(columnKey);
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Check if column is visible
|
|
142
|
-
*/
|
|
143
|
-
isColumnVisible(columnKey) {
|
|
144
|
-
if (!this.tableState) {
|
|
145
|
-
return true;
|
|
146
|
-
}
|
|
147
|
-
const column = this.tableState.getColumns().find(col => col.key === columnKey);
|
|
148
|
-
return column ? (column.visible !== false) : true;
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* Check if column is hideable
|
|
152
|
-
*/
|
|
153
|
-
isColumnHideable(column) {
|
|
154
|
-
return column.hideable !== false; // Default to true if not set
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
StTableActionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: StTableActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
158
|
-
StTableActionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: StTableActionsComponent, selector: "st-table-actions", inputs: { tableState: "tableState", allowAddColumn: "allowAddColumn" }, outputs: { addColumnClicked: "addColumnClicked" }, ngImport: i0, template: "<button \n class=\"table-actions-button\"\n (click)=\"toggleMenu($event)\"\n type=\"button\"\n title=\"Table Actions\"\n aria-label=\"Table actions menu\"\n [class.active]=\"isOpen\">\n <nile-icon name=\"settings\"></nile-icon>\n</button>\n\n<!-- Dropdown container with shared pattern -->\n<div class=\"dropdown-container\" *ngIf=\"isOpen\">\n <!-- Backdrop -->\n <div class=\"dropdown-backdrop\" (click)=\"closeMenu()\"></div>\n \n <!-- Main Menu -->\n <div class=\"dropdown-menu\" *ngIf=\"currentView === 'main'\" [ngStyle]=\"dropdownStyle\">\n <nile-menu>\n <!-- Add Column -->\n <nile-menu-item *ngIf=\"allowAddColumn\" (click)=\"onAddColumn($event)\">\n <nile-icon slot=\"prefix\" name=\"plus\" size=\"12\"></nile-icon>\n Add Column\n </nile-menu-item>\n \n <!-- Show/Hide Columns -->\n <nile-menu-item (click)=\"openColumnsSubmenu($event)\">\n <nile-icon size=\"12\" slot=\"prefix\" name=\"eye\"></nile-icon>\n Show/Hide Columns\n </nile-menu-item>\n </nile-menu>\n </div>\n \n <!-- Column Visibility Submenu -->\n <div class=\"dropdown-menu\" *ngIf=\"currentView === 'columns'\" [ngStyle]=\"dropdownStyle\">\n <nile-menu>\n <!-- Back button -->\n <nile-menu-item (click)=\"backToMain($event)\" class=\"back-item\">\n <nile-icon size=\"12\" slot=\"prefix\" name=\"chevron-left\"></nile-icon>\n Back\n </nile-menu-item>\n \n <nile-divider></nile-divider>\n \n <!-- Column checkboxes -->\n <nile-menu-item \n *ngFor=\"let column of columnsVisibility\"\n [class.disabled]=\"!isColumnHideable(column)\"\n (click)=\"onToggleColumn(column.key, $event)\">\n <nile-checkbox \n [checked]=\"isColumnVisible(column.key)\" \n [disabled]=\"!isColumnHideable(column)\" \n [label]=\"column.header || column.key\" \n (nile-change)=\"onToggleColumn(column.key, $event)\">\n </nile-checkbox>\n </nile-menu-item>\n </nile-menu>\n </div>\n</div>\n\n", styles: [".table-actions-button{display:flex;align-items:center;justify-content:center;padding:6px;background:transparent;border:none;cursor:pointer;transition:background-color .15s}.table-actions-button:hover{background-color:#0000000d}.table-actions-button.active{background-color:#0000001a}.table-actions-button:focus{outline:none}.dropdown-container{position:fixed;inset:0;z-index:9996}.dropdown-backdrop{position:absolute;inset:0;background:transparent;pointer-events:auto;z-index:9996}.dropdown-menu{position:fixed;pointer-events:auto;z-index:9997;min-width:15rem}nile-menu{max-height:30rem;overflow-y:auto}nile-menu::part(base){width:fit-content;min-height:auto}nile-menu nile-menu-item::part(base){min-height:2.5rem}nile-menu nile-menu-item::part(label){font-size:12px}nile-menu nile-menu-item.back-item{font-weight:500}nile-menu nile-menu-item.disabled{opacity:.5;cursor:not-allowed}nile-menu nile-menu-item nile-checkbox::part(base){display:flex;align-items:center}nile-menu nile-menu-item nile-checkbox::part(label){font-size:12px;margin-top:0}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
159
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: StTableActionsComponent, decorators: [{
|
|
160
|
-
type: Component,
|
|
161
|
-
args: [{ selector: 'st-table-actions', template: "<button \n class=\"table-actions-button\"\n (click)=\"toggleMenu($event)\"\n type=\"button\"\n title=\"Table Actions\"\n aria-label=\"Table actions menu\"\n [class.active]=\"isOpen\">\n <nile-icon name=\"settings\"></nile-icon>\n</button>\n\n<!-- Dropdown container with shared pattern -->\n<div class=\"dropdown-container\" *ngIf=\"isOpen\">\n <!-- Backdrop -->\n <div class=\"dropdown-backdrop\" (click)=\"closeMenu()\"></div>\n \n <!-- Main Menu -->\n <div class=\"dropdown-menu\" *ngIf=\"currentView === 'main'\" [ngStyle]=\"dropdownStyle\">\n <nile-menu>\n <!-- Add Column -->\n <nile-menu-item *ngIf=\"allowAddColumn\" (click)=\"onAddColumn($event)\">\n <nile-icon slot=\"prefix\" name=\"plus\" size=\"12\"></nile-icon>\n Add Column\n </nile-menu-item>\n \n <!-- Show/Hide Columns -->\n <nile-menu-item (click)=\"openColumnsSubmenu($event)\">\n <nile-icon size=\"12\" slot=\"prefix\" name=\"eye\"></nile-icon>\n Show/Hide Columns\n </nile-menu-item>\n </nile-menu>\n </div>\n \n <!-- Column Visibility Submenu -->\n <div class=\"dropdown-menu\" *ngIf=\"currentView === 'columns'\" [ngStyle]=\"dropdownStyle\">\n <nile-menu>\n <!-- Back button -->\n <nile-menu-item (click)=\"backToMain($event)\" class=\"back-item\">\n <nile-icon size=\"12\" slot=\"prefix\" name=\"chevron-left\"></nile-icon>\n Back\n </nile-menu-item>\n \n <nile-divider></nile-divider>\n \n <!-- Column checkboxes -->\n <nile-menu-item \n *ngFor=\"let column of columnsVisibility\"\n [class.disabled]=\"!isColumnHideable(column)\"\n (click)=\"onToggleColumn(column.key, $event)\">\n <nile-checkbox \n [checked]=\"isColumnVisible(column.key)\" \n [disabled]=\"!isColumnHideable(column)\" \n [label]=\"column.header || column.key\" \n (nile-change)=\"onToggleColumn(column.key, $event)\">\n </nile-checkbox>\n </nile-menu-item>\n </nile-menu>\n </div>\n</div>\n\n", styles: [".table-actions-button{display:flex;align-items:center;justify-content:center;padding:6px;background:transparent;border:none;cursor:pointer;transition:background-color .15s}.table-actions-button:hover{background-color:#0000000d}.table-actions-button.active{background-color:#0000001a}.table-actions-button:focus{outline:none}.dropdown-container{position:fixed;inset:0;z-index:9996}.dropdown-backdrop{position:absolute;inset:0;background:transparent;pointer-events:auto;z-index:9996}.dropdown-menu{position:fixed;pointer-events:auto;z-index:9997;min-width:15rem}nile-menu{max-height:30rem;overflow-y:auto}nile-menu::part(base){width:fit-content;min-height:auto}nile-menu nile-menu-item::part(base){min-height:2.5rem}nile-menu nile-menu-item::part(label){font-size:12px}nile-menu nile-menu-item.back-item{font-weight:500}nile-menu nile-menu-item.disabled{opacity:.5;cursor:not-allowed}nile-menu nile-menu-item nile-checkbox::part(base){display:flex;align-items:center}nile-menu nile-menu-item nile-checkbox::part(label){font-size:12px;margin-top:0}\n"] }]
|
|
162
|
-
}], ctorParameters: function () { return []; }, propDecorators: { tableState: [{
|
|
163
|
-
type: Input
|
|
164
|
-
}], allowAddColumn: [{
|
|
165
|
-
type: Input
|
|
166
|
-
}], addColumnClicked: [{
|
|
167
|
-
type: Output
|
|
168
|
-
}] } });
|
|
169
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3QtdGFibGUtYWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC10YWJsZS9zcmMvbGliL3JlbmRlcmVyL2NvbXBvbmVudHMvc3QtdGFibGUtYWN0aW9ucy9zdC10YWJsZS1hY3Rpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LXRhYmxlL3NyYy9saWIvcmVuZGVyZXIvY29tcG9uZW50cy9zdC10YWJsZS1hY3Rpb25zL3N0LXRhYmxlLWFjdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFHMUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7QUFTeEQsTUFBTSxPQUFPLHVCQUF1QjtJQWlCbEM7UUFmUyxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUUvQixxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXRELFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixnQkFBVyxHQUFhLE1BQU0sQ0FBQztRQUMvQixzQkFBaUIsR0FBMkUsRUFBRSxDQUFDO1FBRS9GOztXQUVHO1FBQ0gsa0JBQWEsR0FBUSxFQUFFLENBQUM7SUFJVCxDQUFDO0lBRWhCLFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNwQixPQUFPLENBQUMsSUFBSSxDQUFDLHVEQUF1RCxDQUFDLENBQUM7WUFDdEUsT0FBTztTQUNSO1FBRUQsZ0NBQWdDO1FBQ2hDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBRS9CLHVEQUF1RDtRQUN2RCxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsV0FBVztR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RUc7SUFDSCxnQkFBZ0IsQ0FBQyxNQUE0RTtRQUMzRixPQUFPLE1BQU0sQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDLENBQUMsNkJBQTZCO0lBQ2pFLENBQUM7O29IQWpMVSx1QkFBdUI7d0dBQXZCLHVCQUF1QixtTENacEMsa2dFQTJEQTsyRkQvQ2EsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLGtCQUFrQjswRUFLbkIsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVJLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGFibGVTdGF0ZSB9IGZyb20gJy4uLy4uL21vZGVscy90YWJsZS1zdGF0ZS5jbGFzcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRhYmxlWkluZGV4IH0gZnJvbSAnLi4vLi4vbW9kZWxzL3otaW5kZXguZW51bSc7XG5cbnR5cGUgTWVudVZpZXcgPSAnbWFpbicgfCAnY29sdW1ucyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0LXRhYmxlLWFjdGlvbnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vc3QtdGFibGUtYWN0aW9ucy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N0LXRhYmxlLWFjdGlvbnMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTdFRhYmxlQWN0aW9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgdGFibGVTdGF0ZSE6IFRhYmxlU3RhdGU7XG4gIEBJbnB1dCgpIGFsbG93QWRkQ29sdW1uOiBib29sZWFuID0gZmFsc2U7XG4gIFxuICBAT3V0cHV0KCkgYWRkQ29sdW1uQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgXG4gIGlzT3BlbiA9IGZhbHNlO1xuICBjdXJyZW50VmlldzogTWVudVZpZXcgPSAnbWFpbic7XG4gIGNvbHVtbnNWaXNpYmlsaXR5OiB7IGtleTogc3RyaW5nOyBoZWFkZXI6IHN0cmluZzsgdmlzaWJsZTogYm9vbGVhbjsgaGlkZWFibGU6IGJvb2xlYW4gfVtdID0gW107XG4gIFxuICAvKipcbiAgICogRHJvcGRvd24gcG9zaXRpb25pbmcgc3R5bGVcbiAgICovXG4gIGRyb3Bkb3duU3R5bGU6IGFueSA9IHt9O1xuICBcbiAgcHJpdmF0ZSBzdGF0ZVN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcbiAgXG4gIGNvbnN0cnVjdG9yKCkge31cbiAgXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy50YWJsZVN0YXRlKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ3RhYmxlU3RhdGUgaXMgcmVxdWlyZWQgZm9yIHN0LXRhYmxlLWFjdGlvbnMgY29tcG9uZW50Jyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIC8vIEluaXRpYWxpemUgd2l0aCBjdXJyZW50IHN0YXRlXG4gICAgdGhpcy51cGRhdGVDb2x1bW5zVmlzaWJpbGl0eSgpO1xuICAgIFxuICAgIC8vIFN1YnNjcmliZSB0byBzdGF0ZSBjaGFuZ2VzIHRvIHVwZGF0ZSB2aXNpYmlsaXR5IGxpc3RcbiAgICB0aGlzLnN1YnNjcmliZVRvU3RhdGVDaGFuZ2VzKCk7XG4gIH1cbiAgXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgLy8gUmUtZW5hYmxlIGJvZHkgc2Nyb2xsIGlmIGNvbXBvbmVudCBpcyBkZXN0cm95ZWQgd2hpbGUgbWVudSBpcyBvcGVuXG4gICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gJyc7XG4gICAgfVxuICB9XG4gIFxuICAvKipcbiAgICogVXBkYXRlIGNvbHVtbnMgdmlzaWJpbGl0eSBsaXN0IGZyb20gY3VycmVudCB0YWJsZSBzdGF0ZVxuICAgKi9cbiAgcHJpdmF0ZSB1cGRhdGVDb2x1bW5zVmlzaWJpbGl0eSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50YWJsZVN0YXRlKSB7XG4gICAgICB0aGlzLmNvbHVtbnNWaXNpYmlsaXR5ID0gdGhpcy50YWJsZVN0YXRlLmdldEFsbENvbHVtbnNWaXNpYmlsaXR5KCk7XG4gICAgfVxuICB9XG4gIFxuICAvKipcbiAgICogU3Vic2NyaWJlIHRvIHRhYmxlIHN0YXRlIGNoYW5nZXNcbiAgICovXG4gIHByaXZhdGUgc3Vic2NyaWJlVG9TdGF0ZUNoYW5nZXMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnRhYmxlU3RhdGUpIHJldHVybjtcbiAgICBcbiAgICB0aGlzLnN0YXRlU3Vic2NyaXB0aW9uID0gdGhpcy50YWJsZVN0YXRlLnN0YXRlQ2hhbmdlJFxuICAgICAgLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgIGlmIChldmVudC50eXBlID09PSAnY29sdW1uLXZpc2liaWxpdHknIHx8IGV2ZW50LnR5cGUgPT09ICdjb2x1bW4tY29uZmlnJykge1xuICAgICAgICAgIHRoaXMudXBkYXRlQ29sdW1uc1Zpc2liaWxpdHkoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBUb2dnbGUgbWVudSBvcGVuL2Nsb3NlXG4gICAqL1xuICB0b2dnbGVNZW51KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuaXNPcGVuID0gIXRoaXMuaXNPcGVuO1xuICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgdGhpcy5jdXJyZW50VmlldyA9ICdtYWluJztcbiAgICAgIHRoaXMudXBkYXRlRHJvcGRvd25Qb3NpdGlvbihldmVudCBhcyBNb3VzZUV2ZW50KTtcbiAgICAgIC8vIERpc2FibGUgYm9keSBzY3JvbGwgd2hlbiBtZW51IG9wZW5zXG4gICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbic7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFJlLWVuYWJsZSBib2R5IHNjcm9sbCB3aGVuIG1lbnUgY2xvc2VzXG4gICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gJyc7XG4gICAgfVxuICB9XG4gIFxuICAvKipcbiAgICogVXBkYXRlIGRyb3Bkb3duIHBvc2l0aW9uIGJhc2VkIG9uIHRyaWdnZXIgYnV0dG9uXG4gICAqL1xuICBwcml2YXRlIHVwZGF0ZURyb3Bkb3duUG9zaXRpb24oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBidXR0b24gPSBldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IHJlY3QgPSBidXR0b24uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgXG5cbiAgICBjb25zdCBkcm9wZG93bldpZHRoID0gMjIwO1xuICAgIFxuICAgIGxldCB4ID0gcmVjdC5yaWdodDtcbiAgICBsZXQgeSA9IHJlY3QuYm90dG9tICsgNTtcbiAgICBcbiAgICAvLyAvLyBBZGp1c3QgaG9yaXpvbnRhbCBwb3NpdGlvbiBpZiBkcm9wZG93biB3b3VsZCBvdmVyZmxvd1xuICAgIC8vIGlmICh4ICsgZHJvcGRvd25XaWR0aCA+IHZpZXdwb3J0V2lkdGgpIHtcbiAgICAvLyAgIHggPSBNYXRoLm1heCgxMCwgdmlld3BvcnRXaWR0aCAtIGRyb3Bkb3duV2lkdGggLSAxMCk7XG4gICAgLy8gfVxuICAgIFxuICAgIC8vIC8vIEFkanVzdCB2ZXJ0aWNhbCBwb3NpdGlvbiBpZiBkcm9wZG93biB3b3VsZCBvdmVyZmxvd1xuICAgIC8vIGlmICh5ICsgZHJvcGRvd25IZWlnaHQgPiB2aWV3cG9ydEhlaWdodCkge1xuICAgIC8vICAgeSA9IHJlY3QudG9wIC0gZHJvcGRvd25IZWlnaHQgLSA1O1xuICAgIC8vIH1cbiAgICBcbiAgICB0aGlzLmRyb3Bkb3duU3R5bGUgPSB7XG4gICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgIGxlZnQ6IGAke3ggLSBkcm9wZG93bldpZHRofXB4YCxcbiAgICAgIHRvcDogYCR7eX1weGAsXG4gICAgICAnei1pbmRleCc6IFRhYmxlWkluZGV4LlRBQkxFX0FDVElPTlNfRFJPUERPV05cbiAgICB9O1xuICB9XG4gIFxuICAvKipcbiAgICogQ2xvc2UgbWVudVxuICAgKi9cbiAgY2xvc2VNZW51KCk6IHZvaWQge1xuICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XG4gICAgdGhpcy5jdXJyZW50VmlldyA9ICdtYWluJztcbiAgICAvLyBSZS1lbmFibGUgYm9keSBzY3JvbGwgd2hlbiBtZW51IGNsb3Nlc1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnJztcbiAgfVxuICBcbiAgLyoqXG4gICAqIEhhbmRsZSBhZGQgY29sdW1uIGFjdGlvblxuICAgKi9cbiAgb25BZGRDb2x1bW4oZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5hZGRDb2x1bW5DbGlja2VkLmVtaXQoKTtcbiAgICB0aGlzLmNsb3NlTWVudSgpO1xuICB9XG4gIFxuICAvKipcbiAgICogT3BlbiBjb2x1bW4gdmlzaWJpbGl0eSBzdWJtZW51XG4gICAqL1xuICBvcGVuQ29sdW1uc1N1Ym1lbnUoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5jdXJyZW50VmlldyA9ICdjb2x1bW5zJztcbiAgfVxuICBcbiAgLyoqXG4gICAqIEdvIGJhY2sgdG8gbWFpbiBtZW51XG4gICAqL1xuICBiYWNrVG9NYWluKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuY3VycmVudFZpZXcgPSAnbWFpbic7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBUb2dnbGUgY29sdW1uIHZpc2liaWxpdHlcbiAgICovXG4gIG9uVG9nZ2xlQ29sdW1uKGNvbHVtbktleTogc3RyaW5nLCBldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBcbiAgICAvLyBDaGVjayBpZiBjb2x1bW4gaXMgaGlkZWFibGUgYmVmb3JlIHRvZ2dsaW5nXG4gICAgY29uc3QgY29sdW1uID0gdGhpcy5jb2x1bW5zVmlzaWJpbGl0eS5maW5kKGNvbCA9PiBjb2wua2V5ID09PSBjb2x1bW5LZXkpO1xuICAgIGlmIChjb2x1bW4gJiYgY29sdW1uLmhpZGVhYmxlICE9PSBmYWxzZSkge1xuICAgICAgaWYgKHRoaXMudGFibGVTdGF0ZSkge1xuICAgICAgICB0aGlzLnRhYmxlU3RhdGUudG9nZ2xlQ29sdW1uVmlzaWJpbGl0eShjb2x1bW5LZXkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBcbiAgLyoqXG4gICAqIENoZWNrIGlmIGNvbHVtbiBpcyB2aXNpYmxlXG4gICAqL1xuICBpc0NvbHVtblZpc2libGUoY29sdW1uS2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMudGFibGVTdGF0ZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGNvbnN0IGNvbHVtbiA9IHRoaXMudGFibGVTdGF0ZS5nZXRDb2x1bW5zKCkuZmluZChjb2wgPT4gY29sLmtleSA9PT0gY29sdW1uS2V5KTtcbiAgICByZXR1cm4gY29sdW1uID8gKGNvbHVtbi52aXNpYmxlICE9PSBmYWxzZSkgOiB0cnVlO1xuICB9XG4gIFxuICAvKipcbiAgICogQ2hlY2sgaWYgY29sdW1uIGlzIGhpZGVhYmxlXG4gICAqL1xuICBpc0NvbHVtbkhpZGVhYmxlKGNvbHVtbjogeyBrZXk6IHN0cmluZzsgaGVhZGVyOiBzdHJpbmc7IHZpc2libGU6IGJvb2xlYW47IGhpZGVhYmxlOiBib29sZWFuIH0pOiBib29sZWFuIHtcbiAgICByZXR1cm4gY29sdW1uLmhpZGVhYmxlICE9PSBmYWxzZTsgLy8gRGVmYXVsdCB0byB0cnVlIGlmIG5vdCBzZXRcbiAgfVxufVxuXG4iLCI8YnV0dG9uIFxuICBjbGFzcz1cInRhYmxlLWFjdGlvbnMtYnV0dG9uXCJcbiAgKGNsaWNrKT1cInRvZ2dsZU1lbnUoJGV2ZW50KVwiXG4gIHR5cGU9XCJidXR0b25cIlxuICB0aXRsZT1cIlRhYmxlIEFjdGlvbnNcIlxuICBhcmlhLWxhYmVsPVwiVGFibGUgYWN0aW9ucyBtZW51XCJcbiAgW2NsYXNzLmFjdGl2ZV09XCJpc09wZW5cIj5cbiAgPG5pbGUtaWNvbiBuYW1lPVwic2V0dGluZ3NcIj48L25pbGUtaWNvbj5cbjwvYnV0dG9uPlxuXG48IS0tIERyb3Bkb3duIGNvbnRhaW5lciB3aXRoIHNoYXJlZCBwYXR0ZXJuIC0tPlxuPGRpdiBjbGFzcz1cImRyb3Bkb3duLWNvbnRhaW5lclwiICpuZ0lmPVwiaXNPcGVuXCI+XG4gIDwhLS0gQmFja2Ryb3AgLS0+XG4gIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1iYWNrZHJvcFwiIChjbGljayk9XCJjbG9zZU1lbnUoKVwiPjwvZGl2PlxuICBcbiAgPCEtLSBNYWluIE1lbnUgLS0+XG4gIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1tZW51XCIgKm5nSWY9XCJjdXJyZW50VmlldyA9PT0gJ21haW4nXCIgW25nU3R5bGVdPVwiZHJvcGRvd25TdHlsZVwiPlxuICAgIDxuaWxlLW1lbnU+XG4gICAgICA8IS0tIEFkZCBDb2x1bW4gLS0+XG4gICAgICA8bmlsZS1tZW51LWl0ZW0gKm5nSWY9XCJhbGxvd0FkZENvbHVtblwiIChjbGljayk9XCJvbkFkZENvbHVtbigkZXZlbnQpXCI+XG4gICAgICAgIDxuaWxlLWljb24gc2xvdD1cInByZWZpeFwiIG5hbWU9XCJwbHVzXCIgc2l6ZT1cIjEyXCI+PC9uaWxlLWljb24+XG4gICAgICAgIEFkZCBDb2x1bW5cbiAgICAgIDwvbmlsZS1tZW51LWl0ZW0+XG4gICAgICBcbiAgICAgIDwhLS0gU2hvdy9IaWRlIENvbHVtbnMgLS0+XG4gICAgICA8bmlsZS1tZW51LWl0ZW0gKGNsaWNrKT1cIm9wZW5Db2x1bW5zU3VibWVudSgkZXZlbnQpXCI+XG4gICAgICAgIDxuaWxlLWljb24gc2l6ZT1cIjEyXCIgc2xvdD1cInByZWZpeFwiIG5hbWU9XCJleWVcIj48L25pbGUtaWNvbj5cbiAgICAgICAgU2hvdy9IaWRlIENvbHVtbnNcbiAgICAgIDwvbmlsZS1tZW51LWl0ZW0+XG4gICAgPC9uaWxlLW1lbnU+XG4gIDwvZGl2PlxuICBcbiAgPCEtLSBDb2x1bW4gVmlzaWJpbGl0eSBTdWJtZW51IC0tPlxuICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tbWVudVwiICpuZ0lmPVwiY3VycmVudFZpZXcgPT09ICdjb2x1bW5zJ1wiIFtuZ1N0eWxlXT1cImRyb3Bkb3duU3R5bGVcIj5cbiAgICA8bmlsZS1tZW51PlxuICAgICAgPCEtLSBCYWNrIGJ1dHRvbiAtLT5cbiAgICAgIDxuaWxlLW1lbnUtaXRlbSAoY2xpY2spPVwiYmFja1RvTWFpbigkZXZlbnQpXCIgY2xhc3M9XCJiYWNrLWl0ZW1cIj5cbiAgICAgICAgPG5pbGUtaWNvbiBzaXplPVwiMTJcIiBzbG90PVwicHJlZml4XCIgbmFtZT1cImNoZXZyb24tbGVmdFwiPjwvbmlsZS1pY29uPlxuICAgICAgICBCYWNrXG4gICAgICA8L25pbGUtbWVudS1pdGVtPlxuICAgICAgXG4gICAgICA8bmlsZS1kaXZpZGVyPjwvbmlsZS1kaXZpZGVyPlxuICAgICAgXG4gICAgICA8IS0tIENvbHVtbiBjaGVja2JveGVzIC0tPlxuICAgICAgPG5pbGUtbWVudS1pdGVtIFxuICAgICAgICAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnNWaXNpYmlsaXR5XCJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFpc0NvbHVtbkhpZGVhYmxlKGNvbHVtbilcIlxuICAgICAgICAoY2xpY2spPVwib25Ub2dnbGVDb2x1bW4oY29sdW1uLmtleSwgJGV2ZW50KVwiPlxuICAgICAgICA8bmlsZS1jaGVja2JveCBcbiAgICAgICAgW2NoZWNrZWRdPVwiaXNDb2x1bW5WaXNpYmxlKGNvbHVtbi5rZXkpXCIgXG4gICAgICAgIFtkaXNhYmxlZF09XCIhaXNDb2x1bW5IaWRlYWJsZShjb2x1bW4pXCIgXG4gICAgICAgIFtsYWJlbF09XCJjb2x1bW4uaGVhZGVyIHx8IGNvbHVtbi5rZXlcIiBcbiAgICAgICAgKG5pbGUtY2hhbmdlKT1cIm9uVG9nZ2xlQ29sdW1uKGNvbHVtbi5rZXksICRldmVudClcIj5cbiAgICAgIDwvbmlsZS1jaGVja2JveD5cbiAgICAgIDwvbmlsZS1tZW51LWl0ZW0+XG4gICAgPC9uaWxlLW1lbnU+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbiJdfQ==
|