@firestitch/list 15.0.0 → 16.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/app/components/body/body.component.d.ts +1 -1
- package/app/components/body/row/actions/actions.component.d.ts +1 -1
- package/app/components/body/row/cell/cell.component.d.ts +1 -1
- package/app/components/body/row/inline-action/inline-action.component.d.ts +1 -1
- package/app/components/body/row/menu-action/menu-action.component.d.ts +1 -1
- package/app/components/body/row/row.component.d.ts +1 -1
- package/app/components/footer/footer-row/footer-row.component.d.ts +1 -7
- package/app/components/footer/footer.component.d.ts +1 -1
- package/app/components/head/head.component.d.ts +1 -1
- package/app/components/list/list.component.d.ts +1 -1
- package/app/components/loader/loader.component.d.ts +1 -1
- package/app/components/pagination/pagination.component.d.ts +1 -1
- package/app/components/status/status.component.d.ts +1 -1
- package/app/directives/cell/cell.directive.d.ts +1 -1
- package/app/directives/column/column.directive.d.ts +1 -1
- package/app/directives/content-init/content-init.directive.d.ts +1 -1
- package/app/directives/draggable-list/draggable-list.directive.d.ts +1 -1
- package/app/directives/draggable-row/draggable-row.directive.d.ts +1 -1
- package/app/directives/footer/footer.directive.d.ts +1 -1
- package/app/directives/group-expand-trigger/group-expand-trigger.directive.d.ts +1 -1
- package/app/directives/header/header.directive.d.ts +1 -1
- package/app/models/column.model.d.ts +1 -1
- package/esm2022/app/classes/actions-controller.mjs +57 -0
- package/esm2022/app/classes/columns-controller.mjs +211 -0
- package/esm2022/app/classes/data-controller.mjs +348 -0
- package/esm2022/app/classes/external-params-controller.mjs +153 -0
- package/esm2022/app/classes/list-controller.mjs +712 -0
- package/esm2022/app/classes/pagination-controller.mjs +491 -0
- package/esm2022/app/classes/persistance-controller.mjs +19 -0
- package/esm2022/app/classes/reorder-controller.mjs +191 -0
- package/esm2022/app/classes/selection-controller.mjs +473 -0
- package/esm2022/app/classes/sorting-controller.mjs +207 -0
- package/esm2022/app/components/body/body.component.mjs +73 -0
- package/esm2022/app/components/body/row/actions/actions.component.mjs +102 -0
- package/esm2022/app/components/body/row/cell/cell.component.mjs +109 -0
- package/esm2022/app/components/body/row/inline-action/inline-action.component.mjs +32 -0
- package/esm2022/app/components/body/row/menu-action/menu-action.component.mjs +51 -0
- package/esm2022/app/components/body/row/row.component.mjs +341 -0
- package/esm2022/app/components/customize-cols/customize-cols.component.mjs +70 -0
- package/{esm2020 → esm2022}/app/components/footer/footer-row/footer-cell/footer-cell.component.mjs +4 -4
- package/esm2022/app/components/footer/footer-row/footer-row.component.mjs +17 -0
- package/esm2022/app/components/footer/footer.component.mjs +35 -0
- package/esm2022/app/components/head/head-cell/head-cell.component.mjs +32 -0
- package/esm2022/app/components/head/head.component.mjs +113 -0
- package/esm2022/app/components/list/list.component.mjs +406 -0
- package/esm2022/app/components/loader/loader.component.mjs +40 -0
- package/esm2022/app/components/manage-saved-filters/manage-saved-filters.component.mjs +78 -0
- package/esm2022/app/components/pagination/pagination.component.mjs +40 -0
- package/esm2022/app/components/saved-filters/saved-filters.component.mjs +32 -0
- package/esm2022/app/components/status/status.component.mjs +69 -0
- package/esm2022/app/directives/cell/cell.directive.mjs +21 -0
- package/esm2022/app/directives/column/column.directive.mjs +137 -0
- package/{esm2020 → esm2022}/app/directives/content/content.directive.mjs +4 -4
- package/esm2022/app/directives/content-init/content-init.directive.mjs +23 -0
- package/esm2022/app/directives/draggable-list/draggable-list.directive.mjs +344 -0
- package/esm2022/app/directives/draggable-row/draggable-row.directive.mjs +83 -0
- package/{esm2020 → esm2022}/app/directives/empty-state/empty-state.directive.mjs +4 -4
- package/esm2022/app/directives/footer/footer.directive.mjs +21 -0
- package/esm2022/app/directives/group-expand-trigger/group-expand-trigger.directive.mjs +28 -0
- package/{esm2020 → esm2022}/app/directives/group-footer/group-footer.directive.mjs +4 -4
- package/{esm2020 → esm2022}/app/directives/group-header/group-header.directive.mjs +4 -4
- package/esm2022/app/directives/header/header.directive.mjs +21 -0
- package/{esm2020 → esm2022}/app/directives/heading/heading.directive.mjs +4 -4
- package/{esm2020 → esm2022}/app/directives/heading-container/heading-container.directive.mjs +4 -4
- package/{esm2020 → esm2022}/app/directives/subheading/subheading.directive.mjs +4 -4
- package/{esm2020 → esm2022}/app/fs-list.module.mjs +89 -89
- package/esm2022/app/models/column-attributes.mjs +139 -0
- package/esm2022/app/models/column.model.mjs +173 -0
- package/esm2022/app/models/row/base-row.mjs +25 -0
- package/esm2022/app/models/row/child-row.mjs +29 -0
- package/esm2022/app/models/row/group-footer-row.mjs +22 -0
- package/{esm2020 → esm2022}/app/models/row/group-row.mjs +3 -3
- package/esm2022/app/models/row-action.model.mjs +102 -0
- package/esm2022/app/models/row.mjs +90 -0
- package/esm2022/app/models/styleConfig.model.mjs +78 -0
- package/{esm2020 → esm2022}/app/pipes/action-label.mjs +4 -4
- package/esm2022/app/services/group-expand-notifier.service.mjs +24 -0
- package/{fesm2020 → fesm2022}/firestitch-list.mjs +675 -442
- package/fesm2022/firestitch-list.mjs.map +1 -0
- package/package.json +5 -11
- package/esm2020/app/classes/actions-controller.mjs +0 -55
- package/esm2020/app/classes/columns-controller.mjs +0 -206
- package/esm2020/app/classes/data-controller.mjs +0 -345
- package/esm2020/app/classes/external-params-controller.mjs +0 -147
- package/esm2020/app/classes/list-controller.mjs +0 -674
- package/esm2020/app/classes/pagination-controller.mjs +0 -491
- package/esm2020/app/classes/persistance-controller.mjs +0 -19
- package/esm2020/app/classes/reorder-controller.mjs +0 -182
- package/esm2020/app/classes/selection-controller.mjs +0 -466
- package/esm2020/app/classes/sorting-controller.mjs +0 -206
- package/esm2020/app/components/body/body.component.mjs +0 -64
- package/esm2020/app/components/body/row/actions/actions.component.mjs +0 -97
- package/esm2020/app/components/body/row/cell/cell.component.mjs +0 -107
- package/esm2020/app/components/body/row/inline-action/inline-action.component.mjs +0 -33
- package/esm2020/app/components/body/row/menu-action/menu-action.component.mjs +0 -46
- package/esm2020/app/components/body/row/row.component.mjs +0 -322
- package/esm2020/app/components/customize-cols/customize-cols.component.mjs +0 -68
- package/esm2020/app/components/footer/footer-row/footer-row.component.mjs +0 -28
- package/esm2020/app/components/footer/footer.component.mjs +0 -31
- package/esm2020/app/components/head/head-cell/head-cell.component.mjs +0 -29
- package/esm2020/app/components/head/head.component.mjs +0 -103
- package/esm2020/app/components/list/list.component.mjs +0 -385
- package/esm2020/app/components/loader/loader.component.mjs +0 -40
- package/esm2020/app/components/manage-saved-filters/manage-saved-filters.component.mjs +0 -76
- package/esm2020/app/components/pagination/pagination.component.mjs +0 -37
- package/esm2020/app/components/saved-filters/saved-filters.component.mjs +0 -29
- package/esm2020/app/components/status/status.component.mjs +0 -64
- package/esm2020/app/directives/cell/cell.directive.mjs +0 -18
- package/esm2020/app/directives/column/column.directive.mjs +0 -121
- package/esm2020/app/directives/content-init/content-init.directive.mjs +0 -22
- package/esm2020/app/directives/draggable-list/draggable-list.directive.mjs +0 -330
- package/esm2020/app/directives/draggable-row/draggable-row.directive.mjs +0 -78
- package/esm2020/app/directives/footer/footer.directive.mjs +0 -18
- package/esm2020/app/directives/group-expand-trigger/group-expand-trigger.directive.mjs +0 -26
- package/esm2020/app/directives/header/header.directive.mjs +0 -18
- package/esm2020/app/models/column-attributes.mjs +0 -132
- package/esm2020/app/models/column.model.mjs +0 -164
- package/esm2020/app/models/row/base-row.mjs +0 -23
- package/esm2020/app/models/row/child-row.mjs +0 -28
- package/esm2020/app/models/row/group-footer-row.mjs +0 -21
- package/esm2020/app/models/row-action.model.mjs +0 -90
- package/esm2020/app/models/row.mjs +0 -89
- package/esm2020/app/models/styleConfig.model.mjs +0 -76
- package/esm2020/app/services/group-expand-notifier.service.mjs +0 -26
- package/fesm2015/firestitch-list.mjs +0 -5802
- package/fesm2015/firestitch-list.mjs.map +0 -1
- package/fesm2020/firestitch-list.mjs.map +0 -1
- /package/{esm2020 → esm2022}/app/classes/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/directives/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/enums/action-type.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/app/enums/page-change-type.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/app/enums/pagination-strategy.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/app/enums/row-type.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/app/enums/state.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/app/fs-list.providers.mjs +0 -0
- /package/{esm2020 → esm2022}/app/interfaces/cellconfig.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/app/interfaces/column-config.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/app/interfaces/draggable-list.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/app/interfaces/external-params.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/app/interfaces/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/interfaces/listconfig.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/app/interfaces/pagination-state.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/app/interfaces/pagination.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/app/interfaces/sorting-change-event.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/app/models/column-async-attribute.mjs +0 -0
- /package/{esm2020 → esm2022}/app/models/row/simple-row.mjs +0 -0
- /package/{esm2020 → esm2022}/app/pipes/index.mjs +0 -0
- /package/{esm2020 → esm2022}/firestitch-list.mjs +0 -0
- /package/{esm2020 → esm2022}/public_api.mjs +0 -0
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { isBoolean, isObject } from 'lodash-es';
|
|
2
|
+
import { StyleConfig } from './styleConfig.model';
|
|
3
|
+
export var SortingDirection;
|
|
4
|
+
(function (SortingDirection) {
|
|
5
|
+
SortingDirection["asc"] = "asc";
|
|
6
|
+
SortingDirection["desc"] = "desc";
|
|
7
|
+
})(SortingDirection || (SortingDirection = {}));
|
|
8
|
+
const ALLOWED_DEFAULTS = [
|
|
9
|
+
'title',
|
|
10
|
+
'sortable',
|
|
11
|
+
'align',
|
|
12
|
+
'class',
|
|
13
|
+
];
|
|
14
|
+
export class Column {
|
|
15
|
+
headerTemplate;
|
|
16
|
+
groupHeaderTemplate;
|
|
17
|
+
groupFooterTemplate;
|
|
18
|
+
cellTemplate;
|
|
19
|
+
footerTemplate;
|
|
20
|
+
expandTrigger;
|
|
21
|
+
headerConfigs = new StyleConfig();
|
|
22
|
+
groupHeaderConfigs = new StyleConfig();
|
|
23
|
+
groupFooterConfigs = new StyleConfig();
|
|
24
|
+
cellConfigs = new StyleConfig();
|
|
25
|
+
footerConfigs = new StyleConfig();
|
|
26
|
+
colStyles;
|
|
27
|
+
headerColspanned = false;
|
|
28
|
+
groupHeaderColspanned = false;
|
|
29
|
+
groupFooterColspanned = false;
|
|
30
|
+
cellColspanned = false;
|
|
31
|
+
footerColspanned = false;
|
|
32
|
+
_attributes;
|
|
33
|
+
_defaultDirection;
|
|
34
|
+
_ordered = false;
|
|
35
|
+
constructor(colConfig, colDefaults = false) {
|
|
36
|
+
this._parseConfig(colConfig);
|
|
37
|
+
this.colStyles = new StyleConfig({
|
|
38
|
+
className: this._attributes.className,
|
|
39
|
+
align: this._attributes.align,
|
|
40
|
+
});
|
|
41
|
+
this.mergeWithColumnDefaults(colDefaults);
|
|
42
|
+
}
|
|
43
|
+
set title(value) {
|
|
44
|
+
this._attributes.title = value;
|
|
45
|
+
}
|
|
46
|
+
get title() {
|
|
47
|
+
return this._attributes.title;
|
|
48
|
+
}
|
|
49
|
+
get name() {
|
|
50
|
+
return this._attributes.name;
|
|
51
|
+
}
|
|
52
|
+
get customize() {
|
|
53
|
+
return this._attributes.customize;
|
|
54
|
+
}
|
|
55
|
+
get width() {
|
|
56
|
+
return this._attributes.width;
|
|
57
|
+
}
|
|
58
|
+
set sortable(value) {
|
|
59
|
+
this._attributes.sortable = value;
|
|
60
|
+
}
|
|
61
|
+
get sortable() {
|
|
62
|
+
return this._attributes.sortable;
|
|
63
|
+
}
|
|
64
|
+
get sortableDefault() {
|
|
65
|
+
return this._attributes.sortableDefault;
|
|
66
|
+
}
|
|
67
|
+
set sortingDirection(value) {
|
|
68
|
+
this._attributes.direction = value;
|
|
69
|
+
}
|
|
70
|
+
get sortingDirection() {
|
|
71
|
+
return this._attributes.direction;
|
|
72
|
+
}
|
|
73
|
+
get sortingDirection$() {
|
|
74
|
+
return this._attributes.direction$;
|
|
75
|
+
}
|
|
76
|
+
get visible() {
|
|
77
|
+
return this._attributes.visible;
|
|
78
|
+
}
|
|
79
|
+
get visible$() {
|
|
80
|
+
return this._attributes.visible$;
|
|
81
|
+
}
|
|
82
|
+
get direction() {
|
|
83
|
+
return (this.sortingDirection === SortingDirection.asc) ? 'asc' : 'desc';
|
|
84
|
+
}
|
|
85
|
+
get fullNameDirection() {
|
|
86
|
+
return (this.sortingDirection === SortingDirection.asc) ? 'Ascending' : 'Descending';
|
|
87
|
+
}
|
|
88
|
+
get ordered() {
|
|
89
|
+
return this._ordered;
|
|
90
|
+
}
|
|
91
|
+
set ordered(value) {
|
|
92
|
+
if (value && this._ordered !== value) {
|
|
93
|
+
this.sortingDirection = this._defaultDirection ?? SortingDirection.asc;
|
|
94
|
+
}
|
|
95
|
+
this._ordered = value;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Merge with defaults with existing config
|
|
99
|
+
*
|
|
100
|
+
* @param defaults
|
|
101
|
+
*/
|
|
102
|
+
mergeWithColumnDefaults(defaults) {
|
|
103
|
+
if (!isObject(defaults)) {
|
|
104
|
+
defaults = {};
|
|
105
|
+
}
|
|
106
|
+
ALLOWED_DEFAULTS.forEach((key) => {
|
|
107
|
+
switch (key) {
|
|
108
|
+
case 'title':
|
|
109
|
+
{
|
|
110
|
+
this.title = this.title || defaults.title;
|
|
111
|
+
}
|
|
112
|
+
break;
|
|
113
|
+
case 'sortable':
|
|
114
|
+
{
|
|
115
|
+
if (isBoolean(defaults.sortable)) {
|
|
116
|
+
if (this.sortable === void 0) {
|
|
117
|
+
this.sortable = defaults.sortable;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
break;
|
|
122
|
+
case 'class':
|
|
123
|
+
{
|
|
124
|
+
this.headerConfigs.mergeClassByPriority(this.colStyles, defaults.header);
|
|
125
|
+
this.groupHeaderConfigs.mergeClassByPriority(this.colStyles, defaults.cell);
|
|
126
|
+
this.groupFooterConfigs.mergeClassByPriority(this.colStyles, defaults.cell);
|
|
127
|
+
this.cellConfigs.mergeClassByPriority(this.colStyles, defaults.cell);
|
|
128
|
+
this.footerConfigs.mergeClassByPriority(this.colStyles, defaults.footer);
|
|
129
|
+
}
|
|
130
|
+
break;
|
|
131
|
+
case 'align':
|
|
132
|
+
{
|
|
133
|
+
this.headerConfigs.mergeAlignByPriority(this.colStyles, defaults.header);
|
|
134
|
+
this.groupHeaderConfigs.mergeAlignByPriority(this.colStyles, defaults.cell);
|
|
135
|
+
this.groupFooterConfigs.mergeAlignByPriority(this.colStyles, defaults.cell);
|
|
136
|
+
this.cellConfigs.mergeAlignByPriority(this.colStyles, defaults.cell);
|
|
137
|
+
this.footerConfigs.mergeAlignByPriority(this.colStyles, defaults.footer);
|
|
138
|
+
}
|
|
139
|
+
break;
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
this.headerConfigs.updateClasesArray();
|
|
143
|
+
this.groupHeaderConfigs.updateClasesArray();
|
|
144
|
+
this.groupFooterConfigs.updateClasesArray();
|
|
145
|
+
this.cellConfigs.updateClasesArray();
|
|
146
|
+
this.footerConfigs.updateClasesArray();
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Change sorting direction
|
|
150
|
+
*/
|
|
151
|
+
changeDirection() {
|
|
152
|
+
this.sortingDirection = this.sortingDirection === SortingDirection.asc ? SortingDirection.desc : SortingDirection.asc;
|
|
153
|
+
}
|
|
154
|
+
updateVisibility(value) {
|
|
155
|
+
this._attributes.visible = value;
|
|
156
|
+
}
|
|
157
|
+
_parseConfig(config) {
|
|
158
|
+
this._attributes = config.attributes;
|
|
159
|
+
this.headerTemplate = config.headerTemplate;
|
|
160
|
+
this.groupHeaderTemplate = config.groupHeaderTemplate;
|
|
161
|
+
this.groupFooterTemplate = config.groupFooterTemplate;
|
|
162
|
+
this.cellTemplate = config.cellTemplate;
|
|
163
|
+
this.footerTemplate = config.footerTemplate;
|
|
164
|
+
this.headerConfigs = new StyleConfig(config.headerConfigs);
|
|
165
|
+
this.groupHeaderConfigs = new StyleConfig(config.groupHeaderConfigs);
|
|
166
|
+
this.groupFooterConfigs = new StyleConfig(config.groupFooterConfigs);
|
|
167
|
+
this.cellConfigs = new StyleConfig(config.cellConfigs);
|
|
168
|
+
this.footerConfigs = new StyleConfig(config.footerConfigs);
|
|
169
|
+
this.expandTrigger = config.expandTrigger;
|
|
170
|
+
this._defaultDirection = config.attributes.direction;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2RlbHMvY29sdW1uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBTWhELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVsRCxNQUFNLENBQU4sSUFBWSxnQkFHWDtBQUhELFdBQVksZ0JBQWdCO0lBQzFCLCtCQUFXLENBQUE7SUFDWCxpQ0FBYSxDQUFBO0FBQ2YsQ0FBQyxFQUhXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFHM0I7QUFFRCxNQUFNLGdCQUFnQixHQUFHO0lBQ3ZCLE9BQU87SUFDUCxVQUFVO0lBQ1YsT0FBTztJQUNQLE9BQU87Q0FDUixDQUFDO0FBRUYsTUFBTSxPQUFPLE1BQU07SUFFVixjQUFjLENBQW1CO0lBQ2pDLG1CQUFtQixDQUFtQjtJQUN0QyxtQkFBbUIsQ0FBbUI7SUFDdEMsWUFBWSxDQUFtQjtJQUMvQixjQUFjLENBQW1CO0lBQ2pDLGFBQWEsQ0FBK0M7SUFFNUQsYUFBYSxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFDO0lBRS9DLGtCQUFrQixHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFDO0lBQ3BELGtCQUFrQixHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFDO0lBRXBELFdBQVcsR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztJQUU3QyxhQUFhLEdBQWdCLElBQUksV0FBVyxFQUFFLENBQUM7SUFFL0MsU0FBUyxDQUFjO0lBRXZCLGdCQUFnQixHQUFHLEtBQUssQ0FBQztJQUN6QixxQkFBcUIsR0FBRyxLQUFLLENBQUM7SUFDOUIscUJBQXFCLEdBQUcsS0FBSyxDQUFDO0lBQzlCLGNBQWMsR0FBRyxLQUFLLENBQUM7SUFDdkIsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO0lBRXhCLFdBQVcsQ0FB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Q3BDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNuQyxDQUFDO0lBRU8sWUFBWSxDQUFDLE1BQTBCO1FBQzdDLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztRQUVyQyxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUM7UUFDNUMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQztRQUN0RCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDO1FBQ3RELElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUN4QyxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUM7UUFDNUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUM7UUFDMUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO0lBQ3ZELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFF1ZXJ5TGlzdCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBpc0Jvb2xlYW4sIGlzT2JqZWN0IH0gZnJvbSAnbG9kYXNoLWVzJztcblxuaW1wb3J0IHsgRnNMaXN0R3JvdXBFeHBhbmRUcmlnZ2VyRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9ncm91cC1leHBhbmQtdHJpZ2dlci9ncm91cC1leHBhbmQtdHJpZ2dlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRnNMaXN0Q29sdW1uQ29uZmlnIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jb2x1bW4tY29uZmlnLmludGVyZmFjZSc7XG5cbmltcG9ydCB7IENvbHVtbkF0dHJpYnV0ZXMgfSBmcm9tICcuL2NvbHVtbi1hdHRyaWJ1dGVzJztcbmltcG9ydCB7IFN0eWxlQ29uZmlnIH0gZnJvbSAnLi9zdHlsZUNvbmZpZy5tb2RlbCc7XG5cbmV4cG9ydCBlbnVtIFNvcnRpbmdEaXJlY3Rpb24ge1xuICBhc2MgPSAnYXNjJyxcbiAgZGVzYyA9ICdkZXNjJ1xufVxuXG5jb25zdCBBTExPV0VEX0RFRkFVTFRTID0gW1xuICAndGl0bGUnLFxuICAnc29ydGFibGUnLFxuICAnYWxpZ24nLFxuICAnY2xhc3MnLFxuXTtcblxuZXhwb3J0IGNsYXNzIENvbHVtbiB7XG5cbiAgcHVibGljIGhlYWRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBwdWJsaWMgZ3JvdXBIZWFkZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgcHVibGljIGdyb3VwRm9vdGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIHB1YmxpYyBjZWxsVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIHB1YmxpYyBmb290ZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgcHVibGljIGV4cGFuZFRyaWdnZXI6IFF1ZXJ5TGlzdDxGc0xpc3RHcm91cEV4cGFuZFRyaWdnZXJEaXJlY3RpdmU+O1xuXG4gIHB1YmxpYyBoZWFkZXJDb25maWdzOiBTdHlsZUNvbmZpZyA9IG5ldyBTdHlsZUNvbmZpZygpO1xuXG4gIHB1YmxpYyBncm91cEhlYWRlckNvbmZpZ3M6IFN0eWxlQ29uZmlnID0gbmV3IFN0eWxlQ29uZmlnKCk7XG4gIHB1YmxpYyBncm91cEZvb3RlckNvbmZpZ3M6IFN0eWxlQ29uZmlnID0gbmV3IFN0eWxlQ29uZmlnKCk7XG5cbiAgcHVibGljIGNlbGxDb25maWdzOiBTdHlsZUNvbmZpZyA9IG5ldyBTdHlsZUNvbmZpZygpO1xuXG4gIHB1YmxpYyBmb290ZXJDb25maWdzOiBTdHlsZUNvbmZpZyA9IG5ldyBTdHlsZUNvbmZpZygpO1xuXG4gIHB1YmxpYyBjb2xTdHlsZXM6IFN0eWxlQ29uZmlnO1xuXG4gIHB1YmxpYyBoZWFkZXJDb2xzcGFubmVkID0gZmFsc2U7XG4gIHB1YmxpYyBncm91cEhlYWRlckNvbHNwYW5uZWQgPSBmYWxzZTtcbiAgcHVibGljIGdyb3VwRm9vdGVyQ29sc3Bhbm5lZCA9IGZhbHNlO1xuICBwdWJsaWMgY2VsbENvbHNwYW5uZWQgPSBmYWxzZTtcbiAgcHVibGljIGZvb3RlckNvbHNwYW5uZWQgPSBmYWxzZTtcblxuICBwcml2YXRlIF9hdHRyaWJ1dGVzOiBDb2x1bW5BdHRyaWJ1dGVzO1xuICBwcml2YXRlIF9kZWZhdWx0RGlyZWN0aW9uOiAnYXNjJyB8ICdkZXNjJztcblxuICBwcml2YXRlIF9vcmRlcmVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoY29sQ29uZmlnOiBGc0xpc3RDb2x1bW5Db25maWcsIGNvbERlZmF1bHRzOiBhbnkgPSBmYWxzZSkge1xuICAgIHRoaXMuX3BhcnNlQ29uZmlnKGNvbENvbmZpZyk7XG5cbiAgICB0aGlzLmNvbFN0eWxlcyA9IG5ldyBTdHlsZUNvbmZpZyh7XG4gICAgICBjbGFzc05hbWU6IHRoaXMuX2F0dHJpYnV0ZXMuY2xhc3NOYW1lLFxuICAgICAgYWxpZ246IHRoaXMuX2F0dHJpYnV0ZXMuYWxpZ24sXG4gICAgfSk7XG5cbiAgICB0aGlzLm1lcmdlV2l0aENvbHVtbkRlZmF1bHRzKGNvbERlZmF1bHRzKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgdGl0bGUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2F0dHJpYnV0ZXMudGl0bGUgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fYXR0cmlidXRlcy50aXRsZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9hdHRyaWJ1dGVzLm5hbWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGN1c3RvbWl6ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fYXR0cmlidXRlcy5jdXN0b21pemU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHdpZHRoKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2F0dHJpYnV0ZXMud2lkdGg7XG4gIH1cblxuICBwdWJsaWMgc2V0IHNvcnRhYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fYXR0cmlidXRlcy5zb3J0YWJsZSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBzb3J0YWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fYXR0cmlidXRlcy5zb3J0YWJsZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc29ydGFibGVEZWZhdWx0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9hdHRyaWJ1dGVzLnNvcnRhYmxlRGVmYXVsdDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgc29ydGluZ0RpcmVjdGlvbih2YWx1ZTogJ2FzYycgfCAnZGVzYycpIHtcbiAgICB0aGlzLl9hdHRyaWJ1dGVzLmRpcmVjdGlvbiA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBzb3J0aW5nRGlyZWN0aW9uKCk6ICdhc2MnIHwgJ2Rlc2MnIHtcbiAgICByZXR1cm4gdGhpcy5fYXR0cmlidXRlcy5kaXJlY3Rpb247XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNvcnRpbmdEaXJlY3Rpb24kKCk6IE9ic2VydmFibGU8J2FzYycgfCAnZGVzYyc+IHtcbiAgICByZXR1cm4gdGhpcy5fYXR0cmlidXRlcy5kaXJlY3Rpb24kO1xuICB9XG5cbiAgcHVibGljIGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9hdHRyaWJ1dGVzLnZpc2libGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZpc2libGUkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9hdHRyaWJ1dGVzLnZpc2libGUkO1xuICB9XG5cbiAgcHVibGljIGdldCBkaXJlY3Rpb24oKSB7XG4gICAgcmV0dXJuICh0aGlzLnNvcnRpbmdEaXJlY3Rpb24gPT09IFNvcnRpbmdEaXJlY3Rpb24uYXNjKSA/ICdhc2MnIDogJ2Rlc2MnO1xuICB9XG5cbiAgcHVibGljIGdldCBmdWxsTmFtZURpcmVjdGlvbigpIHtcbiAgICByZXR1cm4gKHRoaXMuc29ydGluZ0RpcmVjdGlvbiA9PT0gU29ydGluZ0RpcmVjdGlvbi5hc2MpID8gJ0FzY2VuZGluZycgOiAnRGVzY2VuZGluZyc7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG9yZGVyZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX29yZGVyZWQ7XG4gIH1cblxuICBwdWJsaWMgc2V0IG9yZGVyZWQodmFsdWUpIHtcbiAgICBpZiAodmFsdWUgJiYgdGhpcy5fb3JkZXJlZCAhPT0gdmFsdWUpIHtcbiAgICAgIHRoaXMuc29ydGluZ0RpcmVjdGlvbiA9IHRoaXMuX2RlZmF1bHREaXJlY3Rpb24gPz8gU29ydGluZ0RpcmVjdGlvbi5hc2M7XG4gICAgfVxuXG4gICAgdGhpcy5fb3JkZXJlZCA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIE1lcmdlIHdpdGggZGVmYXVsdHMgd2l0aCBleGlzdGluZyBjb25maWdcbiAgICpcbiAgICogQHBhcmFtIGRlZmF1bHRzXG4gICAqL1xuICBwdWJsaWMgbWVyZ2VXaXRoQ29sdW1uRGVmYXVsdHMoZGVmYXVsdHMpIHtcbiAgICBpZiAoIWlzT2JqZWN0KGRlZmF1bHRzKSkge1xuICAgICAgZGVmYXVsdHMgPSB7fTtcbiAgICB9XG5cbiAgICBBTExPV0VEX0RFRkFVTFRTLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgY2FzZSAndGl0bGUnOiB7XG4gICAgICAgICAgdGhpcy50aXRsZSA9IHRoaXMudGl0bGUgfHwgZGVmYXVsdHMudGl0bGU7XG4gICAgICAgIH0gYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnc29ydGFibGUnOiB7XG4gICAgICAgICAgaWYgKGlzQm9vbGVhbihkZWZhdWx0cy5zb3J0YWJsZSkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnNvcnRhYmxlID09PSB2b2lkIDApIHtcbiAgICAgICAgICAgICAgdGhpcy5zb3J0YWJsZSA9IGRlZmF1bHRzLnNvcnRhYmxlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBicmVhaztcblxuICAgICAgICBjYXNlICdjbGFzcyc6IHtcbiAgICAgICAgICB0aGlzLmhlYWRlckNvbmZpZ3MubWVyZ2VDbGFzc0J5UHJpb3JpdHkodGhpcy5jb2xTdHlsZXMsIGRlZmF1bHRzLmhlYWRlcik7XG4gICAgICAgICAgdGhpcy5ncm91cEhlYWRlckNvbmZpZ3MubWVyZ2VDbGFzc0J5UHJpb3JpdHkodGhpcy5jb2xTdHlsZXMsIGRlZmF1bHRzLmNlbGwpO1xuICAgICAgICAgIHRoaXMuZ3JvdXBGb290ZXJDb25maWdzLm1lcmdlQ2xhc3NCeVByaW9yaXR5KHRoaXMuY29sU3R5bGVzLCBkZWZhdWx0cy5jZWxsKTtcbiAgICAgICAgICB0aGlzLmNlbGxDb25maWdzLm1lcmdlQ2xhc3NCeVByaW9yaXR5KHRoaXMuY29sU3R5bGVzLCBkZWZhdWx0cy5jZWxsKTtcbiAgICAgICAgICB0aGlzLmZvb3RlckNvbmZpZ3MubWVyZ2VDbGFzc0J5UHJpb3JpdHkodGhpcy5jb2xTdHlsZXMsIGRlZmF1bHRzLmZvb3Rlcik7XG4gICAgICAgIH0gYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnYWxpZ24nOiB7XG4gICAgICAgICAgdGhpcy5oZWFkZXJDb25maWdzLm1lcmdlQWxpZ25CeVByaW9yaXR5KHRoaXMuY29sU3R5bGVzLCBkZWZhdWx0cy5oZWFkZXIpO1xuICAgICAgICAgIHRoaXMuZ3JvdXBIZWFkZXJDb25maWdzLm1lcmdlQWxpZ25CeVByaW9yaXR5KHRoaXMuY29sU3R5bGVzLCBkZWZhdWx0cy5jZWxsKTtcbiAgICAgICAgICB0aGlzLmdyb3VwRm9vdGVyQ29uZmlncy5tZXJnZUFsaWduQnlQcmlvcml0eSh0aGlzLmNvbFN0eWxlcywgZGVmYXVsdHMuY2VsbCk7XG4gICAgICAgICAgdGhpcy5jZWxsQ29uZmlncy5tZXJnZUFsaWduQnlQcmlvcml0eSh0aGlzLmNvbFN0eWxlcywgZGVmYXVsdHMuY2VsbCk7XG4gICAgICAgICAgdGhpcy5mb290ZXJDb25maWdzLm1lcmdlQWxpZ25CeVByaW9yaXR5KHRoaXMuY29sU3R5bGVzLCBkZWZhdWx0cy5mb290ZXIpO1xuICAgICAgICB9IGJyZWFrO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5oZWFkZXJDb25maWdzLnVwZGF0ZUNsYXNlc0FycmF5KCk7XG4gICAgdGhpcy5ncm91cEhlYWRlckNvbmZpZ3MudXBkYXRlQ2xhc2VzQXJyYXkoKTtcbiAgICB0aGlzLmdyb3VwRm9vdGVyQ29uZmlncy51cGRhdGVDbGFzZXNBcnJheSgpO1xuICAgIHRoaXMuY2VsbENvbmZpZ3MudXBkYXRlQ2xhc2VzQXJyYXkoKTtcbiAgICB0aGlzLmZvb3RlckNvbmZpZ3MudXBkYXRlQ2xhc2VzQXJyYXkoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2Ugc29ydGluZyBkaXJlY3Rpb25cbiAgICovXG4gIHB1YmxpYyBjaGFuZ2VEaXJlY3Rpb24oKSB7XG4gICAgdGhpcy5zb3J0aW5nRGlyZWN0aW9uID0gdGhpcy5zb3J0aW5nRGlyZWN0aW9uID09PSBTb3J0aW5nRGlyZWN0aW9uLmFzYyA/IFNvcnRpbmdEaXJlY3Rpb24uZGVzYyA6IFNvcnRpbmdEaXJlY3Rpb24uYXNjO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVZpc2liaWxpdHkodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9hdHRyaWJ1dGVzLnZpc2libGUgPSB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgX3BhcnNlQ29uZmlnKGNvbmZpZzogRnNMaXN0Q29sdW1uQ29uZmlnKSB7XG4gICAgdGhpcy5fYXR0cmlidXRlcyA9IGNvbmZpZy5hdHRyaWJ1dGVzO1xuXG4gICAgdGhpcy5oZWFkZXJUZW1wbGF0ZSA9IGNvbmZpZy5oZWFkZXJUZW1wbGF0ZTtcbiAgICB0aGlzLmdyb3VwSGVhZGVyVGVtcGxhdGUgPSBjb25maWcuZ3JvdXBIZWFkZXJUZW1wbGF0ZTtcbiAgICB0aGlzLmdyb3VwRm9vdGVyVGVtcGxhdGUgPSBjb25maWcuZ3JvdXBGb290ZXJUZW1wbGF0ZTtcbiAgICB0aGlzLmNlbGxUZW1wbGF0ZSA9IGNvbmZpZy5jZWxsVGVtcGxhdGU7XG4gICAgdGhpcy5mb290ZXJUZW1wbGF0ZSA9IGNvbmZpZy5mb290ZXJUZW1wbGF0ZTtcbiAgICB0aGlzLmhlYWRlckNvbmZpZ3MgPSBuZXcgU3R5bGVDb25maWcoY29uZmlnLmhlYWRlckNvbmZpZ3MpO1xuICAgIHRoaXMuZ3JvdXBIZWFkZXJDb25maWdzID0gbmV3IFN0eWxlQ29uZmlnKGNvbmZpZy5ncm91cEhlYWRlckNvbmZpZ3MpO1xuICAgIHRoaXMuZ3JvdXBGb290ZXJDb25maWdzID0gbmV3IFN0eWxlQ29uZmlnKGNvbmZpZy5ncm91cEZvb3RlckNvbmZpZ3MpO1xuICAgIHRoaXMuY2VsbENvbmZpZ3MgPSBuZXcgU3R5bGVDb25maWcoY29uZmlnLmNlbGxDb25maWdzKTtcbiAgICB0aGlzLmZvb3RlckNvbmZpZ3MgPSBuZXcgU3R5bGVDb25maWcoY29uZmlnLmZvb3RlckNvbmZpZ3MpO1xuICAgIHRoaXMuZXhwYW5kVHJpZ2dlciA9IGNvbmZpZy5leHBhbmRUcmlnZ2VyO1xuICAgIHRoaXMuX2RlZmF1bHREaXJlY3Rpb24gPSBjb25maWcuYXR0cmlidXRlcy5kaXJlY3Rpb247XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { RowType } from '../../enums/row-type.enum';
|
|
2
|
+
export class BaseRow {
|
|
3
|
+
index;
|
|
4
|
+
readyToSwap = true;
|
|
5
|
+
_rowType;
|
|
6
|
+
_data = {};
|
|
7
|
+
constructor(data = {}, rowType = RowType.Simple) {
|
|
8
|
+
this._data = data;
|
|
9
|
+
this._rowType = rowType;
|
|
10
|
+
}
|
|
11
|
+
get data() {
|
|
12
|
+
return this._data;
|
|
13
|
+
}
|
|
14
|
+
get type() {
|
|
15
|
+
return this._rowType;
|
|
16
|
+
}
|
|
17
|
+
getReorderData() {
|
|
18
|
+
return {
|
|
19
|
+
type: this._rowType,
|
|
20
|
+
data: this.data,
|
|
21
|
+
parent: null,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1yb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZGVscy9yb3cvYmFzZS1yb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBR3BELE1BQU0sT0FBZ0IsT0FBTztJQUVwQixLQUFLLENBQVM7SUFDZCxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBRVAsUUFBUSxDQUFVO0lBRXBCLEtBQUssR0FBUSxFQUFFLENBQUM7SUFFakMsWUFDRSxPQUFZLEVBQUUsRUFDZCxPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU07UUFFeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxjQUFjO1FBQ25CLE9BQU87WUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDbkIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsTUFBTSxFQUFFLElBQUk7U0FDYixDQUFBO0lBQ0gsQ0FBQztDQUdGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm93VHlwZSB9IGZyb20gJy4uLy4uL2VudW1zL3Jvdy10eXBlLmVudW0nO1xuaW1wb3J0IHsgRnNMaXN0UmVvcmRlckRhdGEgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VSb3cge1xuXG4gIHB1YmxpYyBpbmRleDogbnVtYmVyO1xuICBwdWJsaWMgcmVhZHlUb1N3YXAgPSB0cnVlO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBfcm93VHlwZTogUm93VHlwZTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9kYXRhOiBhbnkgPSB7fTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBkYXRhOiBhbnkgPSB7fSxcbiAgICByb3dUeXBlID0gUm93VHlwZS5TaW1wbGUsXG4gICkge1xuICAgIHRoaXMuX2RhdGEgPSBkYXRhO1xuICAgIHRoaXMuX3Jvd1R5cGUgPSByb3dUeXBlO1xuICB9XG5cbiAgcHVibGljIGdldCBkYXRhKCkge1xuICAgIHJldHVybiB0aGlzLl9kYXRhO1xuICB9XG5cbiAgcHVibGljIGdldCB0eXBlKCkge1xuICAgIHJldHVybiB0aGlzLl9yb3dUeXBlO1xuICB9XG5cbiAgcHVibGljIGdldFJlb3JkZXJEYXRhKCk6IEZzTGlzdFJlb3JkZXJEYXRhIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogdGhpcy5fcm93VHlwZSxcbiAgICAgIGRhdGE6IHRoaXMuZGF0YSxcbiAgICAgIHBhcmVudDogbnVsbCxcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYWJzdHJhY3QgZGVzdHJveSgpO1xufVxuIl19
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { BaseRow } from './base-row';
|
|
2
|
+
import { RowType } from '../../enums/row-type.enum';
|
|
3
|
+
export class ChildRow extends BaseRow {
|
|
4
|
+
visible = true;
|
|
5
|
+
_parent;
|
|
6
|
+
constructor(data = {}, parent = null) {
|
|
7
|
+
super(data, RowType.GroupChild);
|
|
8
|
+
this._parent = parent;
|
|
9
|
+
if (this.parent) {
|
|
10
|
+
this.visible = this._parent.expanded;
|
|
11
|
+
this.index = this.parent.children.length;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
get parent() {
|
|
15
|
+
return this._parent;
|
|
16
|
+
}
|
|
17
|
+
get isChild() {
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
getReorderData() {
|
|
21
|
+
return {
|
|
22
|
+
type: this._rowType,
|
|
23
|
+
data: this.data,
|
|
24
|
+
parent: this.parent.getReorderData(),
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
destroy() { }
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpbGQtcm93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2RlbHMvcm93L2NoaWxkLXJvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUtwRCxNQUFNLE9BQU8sUUFBUyxTQUFRLE9BQU87SUFFNUIsT0FBTyxHQUFHLElBQUksQ0FBQztJQUNMLE9BQU8sQ0FBVztJQUVuQyxZQUNFLE9BQVksRUFBRSxFQUNkLFNBQW1CLElBQUk7UUFFdkIsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFFdEIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2YsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztZQUNyQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztTQUMxQztJQUNILENBQUM7SUFFRCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxjQUFjO1FBQ25CLE9BQU87WUFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDbkIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFO1NBQ3JDLENBQUE7SUFDSCxDQUFDO0lBRU0sT0FBTyxLQUFJLENBQUM7Q0FDcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlUm93IH0gZnJvbSAnLi9iYXNlLXJvdyc7XG5pbXBvcnQgeyBSb3dUeXBlIH0gZnJvbSAnLi4vLi4vZW51bXMvcm93LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBHcm91cFJvdyB9IGZyb20gJy4vZ3JvdXAtcm93JztcbmltcG9ydCB7IEZzTGlzdFJlb3JkZXJEYXRhIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5cblxuZXhwb3J0IGNsYXNzIENoaWxkUm93IGV4dGVuZHMgQmFzZVJvdyB7XG5cbiAgcHVibGljIHZpc2libGUgPSB0cnVlO1xuICBwcml2YXRlIHJlYWRvbmx5IF9wYXJlbnQ6IEdyb3VwUm93O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGRhdGE6IGFueSA9IHt9LFxuICAgIHBhcmVudDogR3JvdXBSb3cgPSBudWxsLFxuICApIHtcbiAgICBzdXBlcihkYXRhLCBSb3dUeXBlLkdyb3VwQ2hpbGQpO1xuXG4gICAgdGhpcy5fcGFyZW50ID0gcGFyZW50O1xuXG4gICAgaWYgKHRoaXMucGFyZW50KSB7XG4gICAgICB0aGlzLnZpc2libGUgPSB0aGlzLl9wYXJlbnQuZXhwYW5kZWQ7XG4gICAgICB0aGlzLmluZGV4ID0gdGhpcy5wYXJlbnQuY2hpbGRyZW4ubGVuZ3RoO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGFyZW50KCk6IEdyb3VwUm93IHtcbiAgICByZXR1cm4gdGhpcy5fcGFyZW50O1xuICB9XG5cbiAgcHVibGljIGdldCBpc0NoaWxkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHVibGljIGdldFJlb3JkZXJEYXRhKCk6IEZzTGlzdFJlb3JkZXJEYXRhIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogdGhpcy5fcm93VHlwZSxcbiAgICAgIGRhdGE6IHRoaXMuZGF0YSxcbiAgICAgIHBhcmVudDogdGhpcy5wYXJlbnQuZ2V0UmVvcmRlckRhdGEoKSxcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZGVzdHJveSgpIHt9XG59XG4iXX0=
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { BaseRow } from './base-row';
|
|
2
|
+
import { RowType } from '../../enums/row-type.enum';
|
|
3
|
+
export class GroupFooterRow extends BaseRow {
|
|
4
|
+
visible = true;
|
|
5
|
+
_parent;
|
|
6
|
+
constructor(data = {}, parent = null) {
|
|
7
|
+
super(data, RowType.GroupFooter);
|
|
8
|
+
this._parent = parent;
|
|
9
|
+
if (this.parent) {
|
|
10
|
+
this.visible = this._parent.expanded;
|
|
11
|
+
this.index = this.parent.children.length;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
get parent() {
|
|
15
|
+
return this._parent;
|
|
16
|
+
}
|
|
17
|
+
get isGroupFooter() {
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
destroy() { }
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtZm9vdGVyLXJvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kZWxzL3Jvdy9ncm91cC1mb290ZXItcm93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBSXBELE1BQU0sT0FBTyxjQUFlLFNBQVEsT0FBTztJQUVsQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ0wsT0FBTyxDQUFXO0lBRW5DLFlBQ0UsT0FBWSxFQUFFLEVBQ2QsU0FBbUIsSUFBSTtRQUV2QixLQUFLLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVqQyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUV0QixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1NBQzFDO0lBQ0gsQ0FBQztJQUVELElBQVcsTUFBTTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLE9BQU8sS0FBSSxDQUFDO0NBQ3BCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZVJvdyB9IGZyb20gJy4vYmFzZS1yb3cnO1xuaW1wb3J0IHsgUm93VHlwZSB9IGZyb20gJy4uLy4uL2VudW1zL3Jvdy10eXBlLmVudW0nO1xuaW1wb3J0IHsgR3JvdXBSb3cgfSBmcm9tICcuL2dyb3VwLXJvdyc7XG5cblxuZXhwb3J0IGNsYXNzIEdyb3VwRm9vdGVyUm93IGV4dGVuZHMgQmFzZVJvdyB7XG5cbiAgcHVibGljIHZpc2libGUgPSB0cnVlO1xuICBwcml2YXRlIHJlYWRvbmx5IF9wYXJlbnQ6IEdyb3VwUm93O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGRhdGE6IGFueSA9IHt9LFxuICAgIHBhcmVudDogR3JvdXBSb3cgPSBudWxsLFxuICApIHtcbiAgICBzdXBlcihkYXRhLCBSb3dUeXBlLkdyb3VwRm9vdGVyKTtcblxuICAgIHRoaXMuX3BhcmVudCA9IHBhcmVudDtcblxuICAgIGlmICh0aGlzLnBhcmVudCkge1xuICAgICAgdGhpcy52aXNpYmxlID0gdGhpcy5fcGFyZW50LmV4cGFuZGVkO1xuICAgICAgdGhpcy5pbmRleCA9IHRoaXMucGFyZW50LmNoaWxkcmVuLmxlbmd0aDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBhcmVudCgpOiBHcm91cFJvdyB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcmVudDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNHcm91cEZvb3RlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBkZXN0cm95KCkge31cbn1cbiJdfQ==
|
|
@@ -2,10 +2,10 @@ import { BehaviorSubject } from 'rxjs';
|
|
|
2
2
|
import { BaseRow } from './base-row';
|
|
3
3
|
import { RowType } from '../../enums/row-type.enum';
|
|
4
4
|
export class GroupRow extends BaseRow {
|
|
5
|
+
children = [];
|
|
6
|
+
_expanded = new BehaviorSubject(false);
|
|
5
7
|
constructor(data = {}, initialExpand = false) {
|
|
6
8
|
super(data, RowType.Group);
|
|
7
|
-
this.children = [];
|
|
8
|
-
this._expanded = new BehaviorSubject(false);
|
|
9
9
|
if (initialExpand) {
|
|
10
10
|
this._expanded.next(initialExpand);
|
|
11
11
|
}
|
|
@@ -42,4 +42,4 @@ export class GroupRow extends BaseRow {
|
|
|
42
42
|
this._expanded.complete();
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtcm93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2RlbHMvcm93L2dyb3VwLXJvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBSXBELE1BQU0sT0FBTyxRQUFTLFNBQVEsT0FBTztJQUU1QixRQUFRLEdBQWtDLEVBQUUsQ0FBQztJQUVuQyxTQUFTLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7SUFFakUsWUFDRSxPQUFZLEVBQUUsRUFDZCxhQUFhLEdBQUcsS0FBSztRQUVyQixLQUFLLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUzQixJQUFJLGFBQWEsRUFBRTtZQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUNwQztJQUNILENBQUM7SUFFRCxJQUFXLFlBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsUUFBUTthQUNmLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRU0scUJBQXFCO1FBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ25DLEdBQUcsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLHdCQUF3QjtRQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQzVCLEdBQUcsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFTSxxQkFBcUI7UUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFcEMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVNLE9BQU87UUFDWixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJhc2VSb3cgfSBmcm9tICcuL2Jhc2Utcm93JztcbmltcG9ydCB7IFJvd1R5cGUgfSBmcm9tICcuLi8uLi9lbnVtcy9yb3ctdHlwZS5lbnVtJztcbmltcG9ydCB7IENoaWxkUm93IH0gZnJvbSAnLi9jaGlsZC1yb3cnO1xuaW1wb3J0IHsgR3JvdXBGb290ZXJSb3cgfSBmcm9tICcuL2dyb3VwLWZvb3Rlci1yb3cnO1xuXG5leHBvcnQgY2xhc3MgR3JvdXBSb3cgZXh0ZW5kcyBCYXNlUm93IHtcblxuICBwdWJsaWMgY2hpbGRyZW46IChDaGlsZFJvdyB8IEdyb3VwRm9vdGVyUm93KVtdID0gW107XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZXhwYW5kZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBkYXRhOiBhbnkgPSB7fSxcbiAgICBpbml0aWFsRXhwYW5kID0gZmFsc2UsXG4gICkge1xuICAgIHN1cGVyKGRhdGEsIFJvd1R5cGUuR3JvdXApO1xuXG4gICAgaWYgKGluaXRpYWxFeHBhbmQpIHtcbiAgICAgIHRoaXMuX2V4cGFuZGVkLm5leHQoaW5pdGlhbEV4cGFuZCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBjaGlsZHJlbkRhdGEoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2hpbGRyZW5cbiAgICAgICAgLm1hcCgoY2hpbGQpID0+IGNoaWxkLmRhdGEpO1xuICB9XG5cbiAgcHVibGljIGdldCBpc0dyb3VwKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHVibGljIGdldCBleHBhbmRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZXhwYW5kZWQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZXhwYW5kZWQkKCkge1xuICAgIHJldHVybiB0aGlzLl9leHBhbmRlZC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVDaGlsZHJlbkluZGV4ZXMoKSB7XG4gICAgdGhpcy5jaGlsZHJlbi5mb3JFYWNoKChyb3csIGluZGV4KSA9PiB7XG4gICAgICByb3cuaW5kZXggPSBpbmRleDtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVDaGlsZHJlblZpc2liaWxpdHkoKSB7XG4gICAgdGhpcy5jaGlsZHJlbi5mb3JFYWNoKChyb3cpID0+IHtcbiAgICAgIHJvdy52aXNpYmxlID0gdGhpcy5leHBhbmRlZDtcbiAgICB9KVxuICB9XG5cbiAgcHVibGljIHRvZ2dsZVJvd0V4cGFuZFN0YXR1cygpIHtcbiAgICB0aGlzLl9leHBhbmRlZC5uZXh0KCF0aGlzLmV4cGFuZGVkKTtcblxuICAgIHRoaXMudXBkYXRlQ2hpbGRyZW5WaXNpYmlsaXR5KCk7XG4gIH1cblxuICBwdWJsaWMgZGVzdHJveSgpIHtcbiAgICB0aGlzLmNoaWxkcmVuLmZvckVhY2goKGNoaWxkKSA9PiBjaGlsZC5kZXN0cm95KCkpO1xuICAgIHRoaXMuX2V4cGFuZGVkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { ActionType } from '../enums/action-type.enum';
|
|
2
|
+
export class RowAction {
|
|
3
|
+
icon;
|
|
4
|
+
menu;
|
|
5
|
+
remove;
|
|
6
|
+
className;
|
|
7
|
+
type;
|
|
8
|
+
show;
|
|
9
|
+
restore;
|
|
10
|
+
rowActions;
|
|
11
|
+
label = '';
|
|
12
|
+
routerLink;
|
|
13
|
+
classArray = [];
|
|
14
|
+
isShown = true;
|
|
15
|
+
click;
|
|
16
|
+
fileConfig;
|
|
17
|
+
_linkFn;
|
|
18
|
+
_isGroup = false;
|
|
19
|
+
constructor(config = {}) {
|
|
20
|
+
this._init(config);
|
|
21
|
+
if (Array.isArray(this.rowActions)) {
|
|
22
|
+
this._isGroup = true;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
get isGroup() {
|
|
26
|
+
return this._isGroup;
|
|
27
|
+
}
|
|
28
|
+
_init(value) {
|
|
29
|
+
this.icon = value.icon;
|
|
30
|
+
this.menu = value.menu ?? true;
|
|
31
|
+
this.remove = value.remove;
|
|
32
|
+
this.className = value.className;
|
|
33
|
+
this.type = this.menu && this.icon && !this.label && !value.type ? ActionType.Icon : value.type ?? ActionType.Basic;
|
|
34
|
+
this.show = value.show;
|
|
35
|
+
this.restore = value.restore;
|
|
36
|
+
this.rowActions = value.rowActions
|
|
37
|
+
?.map((action) => new RowAction(action));
|
|
38
|
+
// Re-assign click function
|
|
39
|
+
const clickFn = value.click;
|
|
40
|
+
this.click = (row, event, index, rowActionsRef = null) => {
|
|
41
|
+
return this._clickEvent(row, event, index, rowActionsRef, clickFn);
|
|
42
|
+
};
|
|
43
|
+
this._linkFn = value.link;
|
|
44
|
+
if (value.file) {
|
|
45
|
+
this.fileConfig = { ...value.file };
|
|
46
|
+
if (this.fileConfig.select) {
|
|
47
|
+
const selectFn = this.fileConfig.select;
|
|
48
|
+
this.fileConfig.select = (selection, row, index) => {
|
|
49
|
+
selectFn(selection, row, index);
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
this.label = value.label;
|
|
54
|
+
if (this.className) {
|
|
55
|
+
this.classArray = this.className.split(' ').reduce((acc, elem) => {
|
|
56
|
+
acc.push(elem);
|
|
57
|
+
return acc;
|
|
58
|
+
}, []);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
checkShowStatus(row, index) {
|
|
62
|
+
if (this.isGroup) {
|
|
63
|
+
this.rowActions.forEach((action) => {
|
|
64
|
+
action.checkShowStatus(row, index);
|
|
65
|
+
});
|
|
66
|
+
const groupVisible = !this.show || this.show(row, index);
|
|
67
|
+
this.isShown = groupVisible && this.rowActions.some((action) => action.isShown);
|
|
68
|
+
}
|
|
69
|
+
else if (this.show) {
|
|
70
|
+
this.isShown = this.show(row, index);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
updateLink(row) {
|
|
74
|
+
if (!this.isShown) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
if (this.isGroup) {
|
|
78
|
+
this.rowActions.forEach((action) => {
|
|
79
|
+
action.updateLink(row);
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
else if (this._linkFn) {
|
|
83
|
+
this.routerLink = this._linkFn(row);
|
|
84
|
+
if (this.routerLink && !this.routerLink.target) {
|
|
85
|
+
this.routerLink.target = null;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
_clickEvent(row, event, index, rowActionsRef, clickFn) {
|
|
90
|
+
// Stop event propagation for parent
|
|
91
|
+
event.stopPropagation();
|
|
92
|
+
// Close menu
|
|
93
|
+
if (rowActionsRef) {
|
|
94
|
+
rowActionsRef.closeMenu();
|
|
95
|
+
}
|
|
96
|
+
if (clickFn) {
|
|
97
|
+
// Fire passed callback
|
|
98
|
+
return clickFn(row, event, index);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWFjdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kZWxzL3Jvdy1hY3Rpb24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBUXZELE1BQU0sT0FBTyxTQUFTO0lBRWIsSUFBSSxDQUFTO0lBQ2IsSUFBSSxDQUFVO0lBQ2QsTUFBTSxDQUFzQztJQUM1QyxTQUFTLENBQVM7SUFDbEIsSUFBSSxDQUFhO0lBQ2pCLElBQUksQ0FBVztJQUNmLE9BQU8sQ0FBVTtJQUNqQixVQUFVLENBQWM7SUFDeEIsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNYLFVBQVUsQ0FBc0I7SUFDaEMsVUFBVSxHQUFhLEVBQUUsQ0FBQztJQUMxQixPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ2YsS0FBSyxDQUFXO0lBRWhCLFVBQVUsQ0FBc0I7SUFFL0IsT0FBTyxDQUF3QjtJQUN0QixRQUFRLEdBQVksS0FBSyxDQUFDO0lBRTNDLFlBQVksU0FBYyxFQUFFO1FBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFbkIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztTQUN0QjtJQUNILENBQUM7SUFFRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxLQUFLLENBQUMsS0FBVTtRQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQztRQUMvQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDM0Is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QUFFO1lBQ3BCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDdEM7SUFDSCxDQUFDO0lBRU0sVUFBVSxDQUFDLEdBQUc7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDakIsT0FBTztTQUNSO1FBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ2pDLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDekIsQ0FBQyxDQUFDLENBQUM7U0FDSjthQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFcEMsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUU7Z0JBQzlDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQzthQUMvQjtTQUNGO0lBQ0gsQ0FBQztJQUVPLFdBQVcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsT0FBTztRQUMzRCxvQ0FBb0M7UUFDcEMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXhCLGFBQWE7UUFDYixJQUFJLGFBQWEsRUFBRTtZQUNqQixhQUFhLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDM0I7UUFFRCxJQUFJLE9BQU8sRUFBRTtZQUNYLHVCQUF1QjtZQUN2QixPQUFPLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aW9uVHlwZSB9IGZyb20gJy4uL2VudW1zL2FjdGlvbi10eXBlLmVudW0nO1xuaW1wb3J0IHtcbiAgRnNMaXN0Um93QWN0aW9uRmlsZSxcbiAgRnNMaXN0Um93QWN0aW9uTGluayxcbiAgRnNMaXN0Um93QWN0aW9uTGlua0ZuLFxufSBmcm9tICcuLi9pbnRlcmZhY2VzJztcblxuXG5leHBvcnQgY2xhc3MgUm93QWN0aW9uIHtcblxuICBwdWJsaWMgaWNvbjogc3RyaW5nO1xuICBwdWJsaWMgbWVudTogYm9vbGVhbjtcbiAgcHVibGljIHJlbW92ZTogeyB0aXRsZTogc3RyaW5nOyB0ZW1wbGF0ZTogc3RyaW5nIH07XG4gIHB1YmxpYyBjbGFzc05hbWU6IHN0cmluZztcbiAgcHVibGljIHR5cGU6IEFjdGlvblR5cGU7XG4gIHB1YmxpYyBzaG93OiBGdW5jdGlvbjtcbiAgcHVibGljIHJlc3RvcmU6IGJvb2xlYW47XG4gIHB1YmxpYyByb3dBY3Rpb25zOiBSb3dBY3Rpb25bXTtcbiAgcHVibGljIGxhYmVsID0gJyc7XG4gIHB1YmxpYyByb3V0ZXJMaW5rOiBGc0xpc3RSb3dBY3Rpb25MaW5rO1xuICBwdWJsaWMgY2xhc3NBcnJheTogc3RyaW5nW10gPSBbXTtcbiAgcHVibGljIGlzU2hvd24gPSB0cnVlO1xuICBwdWJsaWMgY2xpY2s6IEZ1bmN0aW9uO1xuXG4gIHB1YmxpYyBmaWxlQ29uZmlnOiBGc0xpc3RSb3dBY3Rpb25GaWxlO1xuXG4gIHByaXZhdGUgX2xpbmtGbjogRnNMaXN0Um93QWN0aW9uTGlua0ZuO1xuICBwcml2YXRlIHJlYWRvbmx5IF9pc0dyb3VwOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoY29uZmlnOiBhbnkgPSB7fSkge1xuICAgIHRoaXMuX2luaXQoY29uZmlnKTtcblxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMucm93QWN0aW9ucykpIHtcbiAgICAgIHRoaXMuX2lzR3JvdXAgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNHcm91cCgpIHtcbiAgICByZXR1cm4gdGhpcy5faXNHcm91cDtcbiAgfVxuXG4gIHB1YmxpYyBfaW5pdCh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5pY29uID0gdmFsdWUuaWNvbjtcbiAgICB0aGlzLm1lbnUgPSB2YWx1ZS5tZW51ID8/IHRydWU7XG4gICAgdGhpcy5yZW1vdmUgPSB2YWx1ZS5yZW1vdmU7XG4gICAgdGhpcy5jbGFzc05hbWUgPSB2YWx1ZS5jbGFzc05hbWU7XG4gICAgdGhpcy50eXBlID0gdGhpcy5tZW51ICYmIHRoaXMuaWNvbiAmJiAhdGhpcy5sYWJlbCAmJiAhdmFsdWUudHlwZSA/IEFjdGlvblR5cGUuSWNvbiA6IHZhbHVlLnR5cGUgPz8gQWN0aW9uVHlwZS5CYXNpYztcbiAgICB0aGlzLnNob3cgPSB2YWx1ZS5zaG93O1xuICAgIHRoaXMucmVzdG9yZSA9IHZhbHVlLnJlc3RvcmU7XG4gICAgdGhpcy5yb3dBY3Rpb25zID0gdmFsdWUucm93QWN0aW9uc1xuICAgICAgPy5tYXAoKGFjdGlvbikgPT4gbmV3IFJvd0FjdGlvbihhY3Rpb24pKTtcblxuXG4gICAgLy8gUmUtYXNzaWduIGNsaWNrIGZ1bmN0aW9uXG4gICAgY29uc3QgY2xpY2tGbiA9IHZhbHVlLmNsaWNrO1xuICAgIHRoaXMuY2xpY2sgPSAocm93LCBldmVudCwgaW5kZXgsIHJvd0FjdGlvbnNSZWYgPSBudWxsKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5fY2xpY2tFdmVudChyb3csIGV2ZW50LCBpbmRleCwgcm93QWN0aW9uc1JlZiwgY2xpY2tGbik7XG4gICAgfTtcblxuICAgIHRoaXMuX2xpbmtGbiA9IHZhbHVlLmxpbms7XG5cbiAgICBpZiAodmFsdWUuZmlsZSkge1xuICAgICAgdGhpcy5maWxlQ29uZmlnID0geyAuLi52YWx1ZS5maWxlIH07XG5cbiAgICAgIGlmICh0aGlzLmZpbGVDb25maWcuc2VsZWN0KSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdEZuID0gdGhpcy5maWxlQ29uZmlnLnNlbGVjdDtcbiAgICAgICAgdGhpcy5maWxlQ29uZmlnLnNlbGVjdCA9IChzZWxlY3Rpb24sIHJvdywgaW5kZXgpID0+IHtcbiAgICAgICAgICBzZWxlY3RGbihzZWxlY3Rpb24sIHJvdywgaW5kZXgpO1xuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMubGFiZWwgPSB2YWx1ZS5sYWJlbDtcblxuICAgIGlmICh0aGlzLmNsYXNzTmFtZSkge1xuICAgICAgdGhpcy5jbGFzc0FycmF5ID0gdGhpcy5jbGFzc05hbWUuc3BsaXQoJyAnKS5yZWR1Y2UoKGFjYywgZWxlbSkgPT4ge1xuICAgICAgICBhY2MucHVzaChlbGVtKTtcblxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSwgW10pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjaGVja1Nob3dTdGF0dXMocm93LCBpbmRleCkge1xuICAgIGlmICh0aGlzLmlzR3JvdXApIHtcbiAgICAgIHRoaXMucm93QWN0aW9ucy5mb3JFYWNoKChhY3Rpb24pID0+IHtcbiAgICAgICAgYWN0aW9uLmNoZWNrU2hvd1N0YXR1cyhyb3csIGluZGV4KTtcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBncm91cFZpc2libGUgPSAhdGhpcy5zaG93IHx8IHRoaXMuc2hvdyhyb3csIGluZGV4KTtcblxuICAgICAgdGhpcy5pc1Nob3duID0gZ3JvdXBWaXNpYmxlICYmIHRoaXMucm93QWN0aW9ucy5zb21lKChhY3Rpb24pID0+IGFjdGlvbi5pc1Nob3duKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2hvdykge1xuICAgICAgdGhpcy5pc1Nob3duID0gdGhpcy5zaG93KHJvdywgaW5kZXgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVMaW5rKHJvdykge1xuICAgIGlmICghdGhpcy5pc1Nob3duKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNHcm91cCkge1xuICAgICAgdGhpcy5yb3dBY3Rpb25zLmZvckVhY2goKGFjdGlvbikgPT4ge1xuICAgICAgICBhY3Rpb24udXBkYXRlTGluayhyb3cpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9saW5rRm4pIHtcbiAgICAgIHRoaXMucm91dGVyTGluayA9IHRoaXMuX2xpbmtGbihyb3cpO1xuXG4gICAgICBpZiAodGhpcy5yb3V0ZXJMaW5rICYmICF0aGlzLnJvdXRlckxpbmsudGFyZ2V0KSB7XG4gICAgICAgIHRoaXMucm91dGVyTGluay50YXJnZXQgPSBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NsaWNrRXZlbnQocm93LCBldmVudCwgaW5kZXgsIHJvd0FjdGlvbnNSZWYsIGNsaWNrRm4pIHtcbiAgICAvLyBTdG9wIGV2ZW50IHByb3BhZ2F0aW9uIGZvciBwYXJlbnRcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIC8vIENsb3NlIG1lbnVcbiAgICBpZiAocm93QWN0aW9uc1JlZikge1xuICAgICAgcm93QWN0aW9uc1JlZi5jbG9zZU1lbnUoKTtcbiAgICB9XG5cbiAgICBpZiAoY2xpY2tGbikge1xuICAgICAgLy8gRmlyZSBwYXNzZWQgY2FsbGJhY2tcbiAgICAgIHJldHVybiBjbGlja0ZuKHJvdywgZXZlbnQsIGluZGV4KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { Subject } from 'rxjs';
|
|
2
|
+
import { RowType } from '../enums/row-type.enum';
|
|
3
|
+
import { ChildRow } from './row/child-row';
|
|
4
|
+
import { GroupFooterRow } from './row/group-footer-row';
|
|
5
|
+
import { GroupRow } from './row/group-row';
|
|
6
|
+
import { SimpleRow } from './row/simple-row';
|
|
7
|
+
export class Row {
|
|
8
|
+
_row;
|
|
9
|
+
_actionsUpdate$ = new Subject();
|
|
10
|
+
constructor(data = {}, rowType = RowType.Simple, { parent, initialExpand } = {}) {
|
|
11
|
+
switch (rowType) {
|
|
12
|
+
case RowType.Simple:
|
|
13
|
+
{
|
|
14
|
+
this._row = new SimpleRow(data);
|
|
15
|
+
}
|
|
16
|
+
break;
|
|
17
|
+
case RowType.Group:
|
|
18
|
+
{
|
|
19
|
+
this._row = new GroupRow(data, initialExpand);
|
|
20
|
+
}
|
|
21
|
+
break;
|
|
22
|
+
case RowType.GroupChild:
|
|
23
|
+
{
|
|
24
|
+
this._row = new ChildRow(data, parent);
|
|
25
|
+
}
|
|
26
|
+
break;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
get index() {
|
|
30
|
+
return this._row.index;
|
|
31
|
+
}
|
|
32
|
+
get actionsUpdate$() {
|
|
33
|
+
return this._actionsUpdate$.asObservable();
|
|
34
|
+
}
|
|
35
|
+
actionsUpdate() {
|
|
36
|
+
return this._actionsUpdate$.next();
|
|
37
|
+
}
|
|
38
|
+
set index(value) {
|
|
39
|
+
this._row.index = value;
|
|
40
|
+
}
|
|
41
|
+
get readyToSwap() {
|
|
42
|
+
return this._row.readyToSwap;
|
|
43
|
+
}
|
|
44
|
+
get visible() {
|
|
45
|
+
return this._row.visible;
|
|
46
|
+
}
|
|
47
|
+
set readyToSwap(value) {
|
|
48
|
+
this._row.readyToSwap = value;
|
|
49
|
+
}
|
|
50
|
+
get data() {
|
|
51
|
+
return this._row.data;
|
|
52
|
+
}
|
|
53
|
+
get type() {
|
|
54
|
+
return this._row.type;
|
|
55
|
+
}
|
|
56
|
+
get isGroup() {
|
|
57
|
+
return this._row instanceof GroupRow;
|
|
58
|
+
}
|
|
59
|
+
get isGroupChild() {
|
|
60
|
+
return this._row instanceof ChildRow;
|
|
61
|
+
}
|
|
62
|
+
get isGroupFooter() {
|
|
63
|
+
return this._row instanceof GroupFooterRow;
|
|
64
|
+
}
|
|
65
|
+
get parent() {
|
|
66
|
+
return this._row.parent;
|
|
67
|
+
}
|
|
68
|
+
get children() {
|
|
69
|
+
return this._row.children;
|
|
70
|
+
}
|
|
71
|
+
get expanded() {
|
|
72
|
+
return this._row.expanded;
|
|
73
|
+
}
|
|
74
|
+
get expanded$() {
|
|
75
|
+
return this._row.expanded$;
|
|
76
|
+
}
|
|
77
|
+
updateChildrenIndexes() {
|
|
78
|
+
this._row.updateChildrenIndexes();
|
|
79
|
+
}
|
|
80
|
+
toggleRowExpandStatus() {
|
|
81
|
+
this._row.toggleRowExpandStatus();
|
|
82
|
+
}
|
|
83
|
+
getReorderData() {
|
|
84
|
+
return this._row.getReorderData();
|
|
85
|
+
}
|
|
86
|
+
destroy() {
|
|
87
|
+
this._row.destroy();
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2RlbHMvcm93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRWpELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU3QyxNQUFNLE9BQU8sR0FBRztJQUVOLElBQUksQ0FBb0M7SUFFeEMsZUFBZSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFFeEMsWUFDRSxPQUFZLEVBQUUsRUFDZCxVQUFtQixPQUFPLENBQUMsTUFBTSxFQUNqQyxFQUFFLE1BQU0sRUFBRSxhQUFhLEtBQXFELEVBQUU7UUFFOUUsUUFBUSxPQUFPLEVBQUU7WUFDZixLQUFLLE9BQU8sQ0FBQyxNQUFNO2dCQUFFO29CQUNuQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNqQztnQkFBQyxNQUFNO1lBRVIsS0FBSyxPQUFPLENBQUMsS0FBSztnQkFBRTtvQkFDbEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUM7aUJBQy9DO2dCQUFDLE1BQU07WUFFUixLQUFLLE9BQU8sQ0FBQyxVQUFVO2dCQUFFO29CQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztpQkFDeEM7Z0JBQUMsTUFBTTtTQUNUO0lBQ0gsQ0FBQztJQUVELElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUVELElBQVcsY0FBYztRQUN2QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVNLGFBQWE7UUFDbEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFXLEtBQUssQ0FBQyxLQUFhO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFRLElBQUksQ0FBQyxJQUFpQixDQUFDLE9BQU8sQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBVyxXQUFXLENBQUMsS0FBYztRQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxJQUFJLFlBQVksUUFBUSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxJQUFXLFlBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSSxZQUFZLFFBQVEsQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLElBQUksWUFBWSxjQUFjLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQVcsTUFBTTtRQUNmLE9BQVEsSUFBSSxDQUFDLElBQWlCLENBQUMsTUFBTSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFXLFFBQVE7UUFDakIsT0FBUSxJQUFJLENBQUMsSUFBaUIsQ0FBQyxRQUFRLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFRLElBQUksQ0FBQyxJQUFpQixDQUFDLFFBQVEsQ0FBQztJQUMxQyxDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2xCLE9BQVEsSUFBSSxDQUFDLElBQWlCLENBQUMsU0FBUyxDQUFDO0lBQzNDLENBQUM7SUFFTSxxQkFBcUI7UUFDekIsSUFBSSxDQUFDLElBQWlCLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUNsRCxDQUFDO0lBRU0scUJBQXFCO1FBQ3pCLElBQUksQ0FBQyxJQUFpQixDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDbEQsQ0FBQztJQUVNLGNBQWM7UUFDbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFTSxPQUFPO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN0QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSb3dUeXBlIH0gZnJvbSAnLi4vZW51bXMvcm93LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBGc0xpc3RSZW9yZGVyRGF0YSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQ2hpbGRSb3cgfSBmcm9tICcuL3Jvdy9jaGlsZC1yb3cnO1xuaW1wb3J0IHsgR3JvdXBGb290ZXJSb3cgfSBmcm9tICcuL3Jvdy9ncm91cC1mb290ZXItcm93JztcbmltcG9ydCB7IEdyb3VwUm93IH0gZnJvbSAnLi9yb3cvZ3JvdXAtcm93JztcbmltcG9ydCB7IFNpbXBsZVJvdyB9IGZyb20gJy4vcm93L3NpbXBsZS1yb3cnO1xuXG5leHBvcnQgY2xhc3MgUm93IHtcblxuICBwcml2YXRlIF9yb3c6IChTaW1wbGVSb3cgfCBDaGlsZFJvdyB8IEdyb3VwUm93KTtcblxuICBwcml2YXRlIF9hY3Rpb25zVXBkYXRlJCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgZGF0YTogYW55ID0ge30sXG4gICAgcm93VHlwZTogUm93VHlwZSA9IFJvd1R5cGUuU2ltcGxlLFxuICAgIHsgcGFyZW50LCBpbml0aWFsRXhwYW5kIH06IHsgcGFyZW50PzogR3JvdXBSb3csIGluaXRpYWxFeHBhbmQ/OiBib29sZWFuIH0gPSB7fSxcbiAgKSB7XG4gICAgc3dpdGNoIChyb3dUeXBlKSB7XG4gICAgICBjYXNlIFJvd1R5cGUuU2ltcGxlOiB7XG4gICAgICAgIHRoaXMuX3JvdyA9IG5ldyBTaW1wbGVSb3coZGF0YSk7XG4gICAgICB9IGJyZWFrO1xuXG4gICAgICBjYXNlIFJvd1R5cGUuR3JvdXA6IHtcbiAgICAgICAgdGhpcy5fcm93ID0gbmV3IEdyb3VwUm93KGRhdGEsIGluaXRpYWxFeHBhbmQpO1xuICAgICAgfSBicmVhaztcblxuICAgICAgY2FzZSBSb3dUeXBlLkdyb3VwQ2hpbGQ6IHtcbiAgICAgICAgdGhpcy5fcm93ID0gbmV3IENoaWxkUm93KGRhdGEsIHBhcmVudCk7XG4gICAgICB9IGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgaW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fcm93LmluZGV4O1xuICB9XG5cbiAgcHVibGljIGdldCBhY3Rpb25zVXBkYXRlJCgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9hY3Rpb25zVXBkYXRlJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBhY3Rpb25zVXBkYXRlKCk6IHZvaWQge1xuICAgIHJldHVybiB0aGlzLl9hY3Rpb25zVXBkYXRlJC5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgc2V0IGluZGV4KHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9yb3cuaW5kZXggPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmVhZHlUb1N3YXAoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Jvdy5yZWFkeVRvU3dhcDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHRoaXMuX3JvdyBhcyBDaGlsZFJvdykudmlzaWJsZTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgcmVhZHlUb1N3YXAodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9yb3cucmVhZHlUb1N3YXAgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGF0YSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl9yb3cuZGF0YTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdHlwZSgpOiBSb3dUeXBlIHtcbiAgICByZXR1cm4gdGhpcy5fcm93LnR5cGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzR3JvdXAoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3JvdyBpbnN0YW5jZW9mIEdyb3VwUm93O1xuICB9XG5cbiAgcHVibGljIGdldCBpc0dyb3VwQ2hpbGQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3JvdyBpbnN0YW5jZW9mIENoaWxkUm93O1xuICB9XG5cbiAgcHVibGljIGdldCBpc0dyb3VwRm9vdGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yb3cgaW5zdGFuY2VvZiBHcm91cEZvb3RlclJvdztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGFyZW50KCk6IEdyb3VwUm93IHtcbiAgICByZXR1cm4gKHRoaXMuX3JvdyBhcyBDaGlsZFJvdykucGFyZW50O1xuICB9XG5cbiAgcHVibGljIGdldCBjaGlsZHJlbigpOiAoQ2hpbGRSb3cgfCBHcm91cEZvb3RlclJvdylbXSB7XG4gICAgcmV0dXJuICh0aGlzLl9yb3cgYXMgR3JvdXBSb3cpLmNoaWxkcmVuO1xuICB9XG5cbiAgcHVibGljIGdldCBleHBhbmRlZCgpIHtcbiAgICByZXR1cm4gKHRoaXMuX3JvdyBhcyBHcm91cFJvdykuZXhwYW5kZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGV4cGFuZGVkJCgpIHtcbiAgICByZXR1cm4gKHRoaXMuX3JvdyBhcyBHcm91cFJvdykuZXhwYW5kZWQkO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUNoaWxkcmVuSW5kZXhlcygpIHtcbiAgICAodGhpcy5fcm93IGFzIEdyb3VwUm93KS51cGRhdGVDaGlsZHJlbkluZGV4ZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVSb3dFeHBhbmRTdGF0dXMoKSB7XG4gICAgKHRoaXMuX3JvdyBhcyBHcm91cFJvdykudG9nZ2xlUm93RXhwYW5kU3RhdHVzKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0UmVvcmRlckRhdGEoKTogRnNMaXN0UmVvcmRlckRhdGEge1xuICAgIHJldHVybiB0aGlzLl9yb3cuZ2V0UmVvcmRlckRhdGEoKTtcbiAgfVxuXG4gIHB1YmxpYyBkZXN0cm95KCkge1xuICAgIHRoaXMuX3Jvdy5kZXN0cm95KCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { isString } from 'lodash-es';
|
|
2
|
+
export class StyleConfig {
|
|
3
|
+
colspan;
|
|
4
|
+
align; // Can't be used in tempaltes!
|
|
5
|
+
className = []; // Can't be used in tempaltes!
|
|
6
|
+
classesArray = []; // Can be used in tempaltes
|
|
7
|
+
classesString = '';
|
|
8
|
+
constructor(config = {}) {
|
|
9
|
+
this._init(config);
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Create static array of styles for using in templates
|
|
13
|
+
*/
|
|
14
|
+
updateClasesArray() {
|
|
15
|
+
this.classesArray = [].concat(this.className, this.align);
|
|
16
|
+
this.classesString = [].concat(this.className, this.align).join(' ');
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Prioritized merge for align options
|
|
20
|
+
* @param prior1
|
|
21
|
+
* @param prior2
|
|
22
|
+
*/
|
|
23
|
+
mergeAlignByPriority(prior1, prior2) {
|
|
24
|
+
let targetValue = this.align;
|
|
25
|
+
if (targetValue === void 0) {
|
|
26
|
+
if (prior1 && prior1.align !== void 0) {
|
|
27
|
+
targetValue = prior1.align;
|
|
28
|
+
}
|
|
29
|
+
else if (prior2 && prior2.align !== void 0) {
|
|
30
|
+
targetValue = prior2.align;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
targetValue = 'left';
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
this.align = targetValue;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Prioritized merge for class options
|
|
40
|
+
* @param prior1
|
|
41
|
+
* @param prior2
|
|
42
|
+
*/
|
|
43
|
+
mergeClassByPriority(prior1, prior2) {
|
|
44
|
+
let targetValue = [];
|
|
45
|
+
if (Array.isArray(this.className)) {
|
|
46
|
+
targetValue = targetValue.concat(this.className);
|
|
47
|
+
}
|
|
48
|
+
else if (isString(this.className)) {
|
|
49
|
+
targetValue.push(this.className);
|
|
50
|
+
}
|
|
51
|
+
if (prior1 && prior1.className !== void 0) {
|
|
52
|
+
this.mergeAnythingIntoArray(targetValue, prior1.className);
|
|
53
|
+
}
|
|
54
|
+
else if (prior2 && prior2.className !== void 0) {
|
|
55
|
+
this.mergeAnythingIntoArray(targetValue, prior2.className);
|
|
56
|
+
}
|
|
57
|
+
this.className = targetValue;
|
|
58
|
+
}
|
|
59
|
+
_init(config) {
|
|
60
|
+
this.colspan = config.colspan;
|
|
61
|
+
this.align = config.align;
|
|
62
|
+
this.className = config.className;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Merge params into array
|
|
66
|
+
* @param to
|
|
67
|
+
* @param from
|
|
68
|
+
*/
|
|
69
|
+
mergeAnythingIntoArray(to, from) {
|
|
70
|
+
if (isString(from)) {
|
|
71
|
+
to.push(from);
|
|
72
|
+
}
|
|
73
|
+
else if (Array.isArray(from)) {
|
|
74
|
+
to.push(...from);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGVDb25maWcubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL21vZGVscy9zdHlsZUNvbmZpZy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXJDLE1BQU0sT0FBTyxXQUFXO0lBQ2YsT0FBTyxDQUFDO0lBQ1IsS0FBSyxDQUFTLENBQUMsOEJBQThCO0lBQzdDLFNBQVMsR0FBc0IsRUFBRSxDQUFDLENBQUMsOEJBQThCO0lBRWpFLFlBQVksR0FBRyxFQUFFLENBQUMsQ0FBQywyQkFBMkI7SUFDOUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUUxQixZQUFZLE1BQU0sR0FBRyxFQUFFO1FBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksaUJBQWlCO1FBQ3RCLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksb0JBQW9CLENBQUMsTUFBbUIsRUFBRSxNQUFtQjtRQUNsRSxJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBRTdCLElBQUksV0FBVyxLQUFLLEtBQUssQ0FBQyxFQUFFO1lBQzFCLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLEVBQUU7Z0JBQ3JDLFdBQVcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO2FBQzVCO2lCQUFNLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLEVBQUU7Z0JBQzVDLFdBQVcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO2FBQzVCO2lCQUFNO2dCQUNMLFdBQVcsR0FBRyxNQUFNLENBQUM7YUFDdEI7U0FDRjtRQUVELElBQUksQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksb0JBQW9CLENBQUMsTUFBbUIsRUFBRSxNQUFtQjtRQUNsRSxJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFFckIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNqQyxXQUFXLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDbEQ7YUFBTSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDbkMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDbEM7UUFFRCxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsU0FBUyxLQUFLLEtBQUssQ0FBQyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzVEO2FBQU0sSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLFNBQVMsS0FBSyxLQUFLLENBQUMsRUFBRTtZQUNoRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUM1RDtRQUVELElBQUksQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDO0lBQy9CLENBQUM7SUFFTyxLQUFLLENBQUMsTUFBTTtRQUNsQixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDOUIsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLHNCQUFzQixDQUFDLEVBQVksRUFBRSxJQUF1QjtRQUNsRSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNsQixFQUFFLENBQUMsSUFBSSxDQUFDLElBQWMsQ0FBQyxDQUFDO1NBQ3pCO2FBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzlCLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQTtTQUNqQjtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzU3RyaW5nIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuZXhwb3J0IGNsYXNzIFN0eWxlQ29uZmlnIHtcbiAgcHVibGljIGNvbHNwYW47XG4gIHB1YmxpYyBhbGlnbjogc3RyaW5nOyAvLyBDYW4ndCBiZSB1c2VkIGluIHRlbXBhbHRlcyFcbiAgcHVibGljIGNsYXNzTmFtZTogc3RyaW5nIHwgc3RyaW5nW10gPSBbXTsgLy8gQ2FuJ3QgYmUgdXNlZCBpbiB0ZW1wYWx0ZXMhXG5cbiAgcHVibGljIGNsYXNzZXNBcnJheSA9IFtdOyAvLyBDYW4gYmUgdXNlZCBpbiB0ZW1wYWx0ZXNcbiAgcHVibGljIGNsYXNzZXNTdHJpbmcgPSAnJztcblxuICBjb25zdHJ1Y3Rvcihjb25maWcgPSB7fSkge1xuICAgIHRoaXMuX2luaXQoY29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgc3RhdGljIGFycmF5IG9mIHN0eWxlcyBmb3IgdXNpbmcgaW4gdGVtcGxhdGVzXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlQ2xhc2VzQXJyYXkoKSB7XG4gICAgdGhpcy5jbGFzc2VzQXJyYXkgPSBbXS5jb25jYXQodGhpcy5jbGFzc05hbWUsIHRoaXMuYWxpZ24pO1xuICAgIHRoaXMuY2xhc3Nlc1N0cmluZyA9IFtdLmNvbmNhdCh0aGlzLmNsYXNzTmFtZSwgdGhpcy5hbGlnbikuam9pbignICcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByaW9yaXRpemVkIG1lcmdlIGZvciBhbGlnbiBvcHRpb25zXG4gICAqIEBwYXJhbSBwcmlvcjFcbiAgICogQHBhcmFtIHByaW9yMlxuICAgKi9cbiAgcHVibGljIG1lcmdlQWxpZ25CeVByaW9yaXR5KHByaW9yMTogU3R5bGVDb25maWcsIHByaW9yMjogU3R5bGVDb25maWcpIHtcbiAgICBsZXQgdGFyZ2V0VmFsdWUgPSB0aGlzLmFsaWduO1xuXG4gICAgaWYgKHRhcmdldFZhbHVlID09PSB2b2lkIDApIHtcbiAgICAgIGlmIChwcmlvcjEgJiYgcHJpb3IxLmFsaWduICE9PSB2b2lkIDApIHtcbiAgICAgICAgdGFyZ2V0VmFsdWUgPSBwcmlvcjEuYWxpZ247XG4gICAgICB9IGVsc2UgaWYgKHByaW9yMiAmJiBwcmlvcjIuYWxpZ24gIT09IHZvaWQgMCkge1xuICAgICAgICB0YXJnZXRWYWx1ZSA9IHByaW9yMi5hbGlnbjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRhcmdldFZhbHVlID0gJ2xlZnQnO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuYWxpZ24gPSB0YXJnZXRWYWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmlvcml0aXplZCBtZXJnZSBmb3IgY2xhc3Mgb3B0aW9uc1xuICAgKiBAcGFyYW0gcHJpb3IxXG4gICAqIEBwYXJhbSBwcmlvcjJcbiAgICovXG4gIHB1YmxpYyBtZXJnZUNsYXNzQnlQcmlvcml0eShwcmlvcjE6IFN0eWxlQ29uZmlnLCBwcmlvcjI6IFN0eWxlQ29uZmlnKSB7XG4gICAgbGV0IHRhcmdldFZhbHVlID0gW107XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmNsYXNzTmFtZSkpIHtcbiAgICAgIHRhcmdldFZhbHVlID0gdGFyZ2V0VmFsdWUuY29uY2F0KHRoaXMuY2xhc3NOYW1lKTtcbiAgICB9IGVsc2UgaWYgKGlzU3RyaW5nKHRoaXMuY2xhc3NOYW1lKSkge1xuICAgICAgdGFyZ2V0VmFsdWUucHVzaCh0aGlzLmNsYXNzTmFtZSk7XG4gICAgfVxuXG4gICAgaWYgKHByaW9yMSAmJiBwcmlvcjEuY2xhc3NOYW1lICE9PSB2b2lkIDApIHtcbiAgICAgIHRoaXMubWVyZ2VBbnl0aGluZ0ludG9BcnJheSh0YXJnZXRWYWx1ZSwgcHJpb3IxLmNsYXNzTmFtZSk7XG4gICAgfSBlbHNlIGlmIChwcmlvcjIgJiYgcHJpb3IyLmNsYXNzTmFtZSAhPT0gdm9pZCAwKSB7XG4gICAgICB0aGlzLm1lcmdlQW55dGhpbmdJbnRvQXJyYXkodGFyZ2V0VmFsdWUsIHByaW9yMi5jbGFzc05hbWUpO1xuICAgIH1cblxuICAgIHRoaXMuY2xhc3NOYW1lID0gdGFyZ2V0VmFsdWU7XG4gIH1cblxuICBwcml2YXRlIF9pbml0KGNvbmZpZykge1xuICAgIHRoaXMuY29sc3BhbiA9IGNvbmZpZy5jb2xzcGFuO1xuICAgIHRoaXMuYWxpZ24gPSBjb25maWcuYWxpZ247XG4gICAgdGhpcy5jbGFzc05hbWUgPSBjb25maWcuY2xhc3NOYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIE1lcmdlIHBhcmFtcyBpbnRvIGFycmF5XG4gICAqIEBwYXJhbSB0b1xuICAgKiBAcGFyYW0gZnJvbVxuICAgKi9cbiAgcHJpdmF0ZSBtZXJnZUFueXRoaW5nSW50b0FycmF5KHRvOiBzdHJpbmdbXSwgZnJvbTogc3RyaW5nIHwgc3RyaW5nW10pIHtcbiAgICBpZiAoaXNTdHJpbmcoZnJvbSkpIHtcbiAgICAgIHRvLnB1c2goZnJvbSBhcyBzdHJpbmcpO1xuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShmcm9tKSkge1xuICAgICAgdG8ucHVzaCguLi5mcm9tKVxuICAgIH1cbiAgfVxufVxuIl19
|