@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.
Files changed (149) hide show
  1. package/app/components/body/body.component.d.ts +1 -1
  2. package/app/components/body/row/actions/actions.component.d.ts +1 -1
  3. package/app/components/body/row/cell/cell.component.d.ts +1 -1
  4. package/app/components/body/row/inline-action/inline-action.component.d.ts +1 -1
  5. package/app/components/body/row/menu-action/menu-action.component.d.ts +1 -1
  6. package/app/components/body/row/row.component.d.ts +1 -1
  7. package/app/components/footer/footer-row/footer-row.component.d.ts +1 -7
  8. package/app/components/footer/footer.component.d.ts +1 -1
  9. package/app/components/head/head.component.d.ts +1 -1
  10. package/app/components/list/list.component.d.ts +1 -1
  11. package/app/components/loader/loader.component.d.ts +1 -1
  12. package/app/components/pagination/pagination.component.d.ts +1 -1
  13. package/app/components/status/status.component.d.ts +1 -1
  14. package/app/directives/cell/cell.directive.d.ts +1 -1
  15. package/app/directives/column/column.directive.d.ts +1 -1
  16. package/app/directives/content-init/content-init.directive.d.ts +1 -1
  17. package/app/directives/draggable-list/draggable-list.directive.d.ts +1 -1
  18. package/app/directives/draggable-row/draggable-row.directive.d.ts +1 -1
  19. package/app/directives/footer/footer.directive.d.ts +1 -1
  20. package/app/directives/group-expand-trigger/group-expand-trigger.directive.d.ts +1 -1
  21. package/app/directives/header/header.directive.d.ts +1 -1
  22. package/app/models/column.model.d.ts +1 -1
  23. package/esm2022/app/classes/actions-controller.mjs +57 -0
  24. package/esm2022/app/classes/columns-controller.mjs +211 -0
  25. package/esm2022/app/classes/data-controller.mjs +348 -0
  26. package/esm2022/app/classes/external-params-controller.mjs +153 -0
  27. package/esm2022/app/classes/list-controller.mjs +712 -0
  28. package/esm2022/app/classes/pagination-controller.mjs +491 -0
  29. package/esm2022/app/classes/persistance-controller.mjs +19 -0
  30. package/esm2022/app/classes/reorder-controller.mjs +191 -0
  31. package/esm2022/app/classes/selection-controller.mjs +473 -0
  32. package/esm2022/app/classes/sorting-controller.mjs +207 -0
  33. package/esm2022/app/components/body/body.component.mjs +73 -0
  34. package/esm2022/app/components/body/row/actions/actions.component.mjs +102 -0
  35. package/esm2022/app/components/body/row/cell/cell.component.mjs +109 -0
  36. package/esm2022/app/components/body/row/inline-action/inline-action.component.mjs +32 -0
  37. package/esm2022/app/components/body/row/menu-action/menu-action.component.mjs +51 -0
  38. package/esm2022/app/components/body/row/row.component.mjs +341 -0
  39. package/esm2022/app/components/customize-cols/customize-cols.component.mjs +70 -0
  40. package/{esm2020 → esm2022}/app/components/footer/footer-row/footer-cell/footer-cell.component.mjs +4 -4
  41. package/esm2022/app/components/footer/footer-row/footer-row.component.mjs +17 -0
  42. package/esm2022/app/components/footer/footer.component.mjs +35 -0
  43. package/esm2022/app/components/head/head-cell/head-cell.component.mjs +32 -0
  44. package/esm2022/app/components/head/head.component.mjs +113 -0
  45. package/esm2022/app/components/list/list.component.mjs +406 -0
  46. package/esm2022/app/components/loader/loader.component.mjs +40 -0
  47. package/esm2022/app/components/manage-saved-filters/manage-saved-filters.component.mjs +78 -0
  48. package/esm2022/app/components/pagination/pagination.component.mjs +40 -0
  49. package/esm2022/app/components/saved-filters/saved-filters.component.mjs +32 -0
  50. package/esm2022/app/components/status/status.component.mjs +69 -0
  51. package/esm2022/app/directives/cell/cell.directive.mjs +21 -0
  52. package/esm2022/app/directives/column/column.directive.mjs +137 -0
  53. package/{esm2020 → esm2022}/app/directives/content/content.directive.mjs +4 -4
  54. package/esm2022/app/directives/content-init/content-init.directive.mjs +23 -0
  55. package/esm2022/app/directives/draggable-list/draggable-list.directive.mjs +344 -0
  56. package/esm2022/app/directives/draggable-row/draggable-row.directive.mjs +83 -0
  57. package/{esm2020 → esm2022}/app/directives/empty-state/empty-state.directive.mjs +4 -4
  58. package/esm2022/app/directives/footer/footer.directive.mjs +21 -0
  59. package/esm2022/app/directives/group-expand-trigger/group-expand-trigger.directive.mjs +28 -0
  60. package/{esm2020 → esm2022}/app/directives/group-footer/group-footer.directive.mjs +4 -4
  61. package/{esm2020 → esm2022}/app/directives/group-header/group-header.directive.mjs +4 -4
  62. package/esm2022/app/directives/header/header.directive.mjs +21 -0
  63. package/{esm2020 → esm2022}/app/directives/heading/heading.directive.mjs +4 -4
  64. package/{esm2020 → esm2022}/app/directives/heading-container/heading-container.directive.mjs +4 -4
  65. package/{esm2020 → esm2022}/app/directives/subheading/subheading.directive.mjs +4 -4
  66. package/{esm2020 → esm2022}/app/fs-list.module.mjs +89 -89
  67. package/esm2022/app/models/column-attributes.mjs +139 -0
  68. package/esm2022/app/models/column.model.mjs +173 -0
  69. package/esm2022/app/models/row/base-row.mjs +25 -0
  70. package/esm2022/app/models/row/child-row.mjs +29 -0
  71. package/esm2022/app/models/row/group-footer-row.mjs +22 -0
  72. package/{esm2020 → esm2022}/app/models/row/group-row.mjs +3 -3
  73. package/esm2022/app/models/row-action.model.mjs +102 -0
  74. package/esm2022/app/models/row.mjs +90 -0
  75. package/esm2022/app/models/styleConfig.model.mjs +78 -0
  76. package/{esm2020 → esm2022}/app/pipes/action-label.mjs +4 -4
  77. package/esm2022/app/services/group-expand-notifier.service.mjs +24 -0
  78. package/{fesm2020 → fesm2022}/firestitch-list.mjs +675 -442
  79. package/fesm2022/firestitch-list.mjs.map +1 -0
  80. package/package.json +5 -11
  81. package/esm2020/app/classes/actions-controller.mjs +0 -55
  82. package/esm2020/app/classes/columns-controller.mjs +0 -206
  83. package/esm2020/app/classes/data-controller.mjs +0 -345
  84. package/esm2020/app/classes/external-params-controller.mjs +0 -147
  85. package/esm2020/app/classes/list-controller.mjs +0 -674
  86. package/esm2020/app/classes/pagination-controller.mjs +0 -491
  87. package/esm2020/app/classes/persistance-controller.mjs +0 -19
  88. package/esm2020/app/classes/reorder-controller.mjs +0 -182
  89. package/esm2020/app/classes/selection-controller.mjs +0 -466
  90. package/esm2020/app/classes/sorting-controller.mjs +0 -206
  91. package/esm2020/app/components/body/body.component.mjs +0 -64
  92. package/esm2020/app/components/body/row/actions/actions.component.mjs +0 -97
  93. package/esm2020/app/components/body/row/cell/cell.component.mjs +0 -107
  94. package/esm2020/app/components/body/row/inline-action/inline-action.component.mjs +0 -33
  95. package/esm2020/app/components/body/row/menu-action/menu-action.component.mjs +0 -46
  96. package/esm2020/app/components/body/row/row.component.mjs +0 -322
  97. package/esm2020/app/components/customize-cols/customize-cols.component.mjs +0 -68
  98. package/esm2020/app/components/footer/footer-row/footer-row.component.mjs +0 -28
  99. package/esm2020/app/components/footer/footer.component.mjs +0 -31
  100. package/esm2020/app/components/head/head-cell/head-cell.component.mjs +0 -29
  101. package/esm2020/app/components/head/head.component.mjs +0 -103
  102. package/esm2020/app/components/list/list.component.mjs +0 -385
  103. package/esm2020/app/components/loader/loader.component.mjs +0 -40
  104. package/esm2020/app/components/manage-saved-filters/manage-saved-filters.component.mjs +0 -76
  105. package/esm2020/app/components/pagination/pagination.component.mjs +0 -37
  106. package/esm2020/app/components/saved-filters/saved-filters.component.mjs +0 -29
  107. package/esm2020/app/components/status/status.component.mjs +0 -64
  108. package/esm2020/app/directives/cell/cell.directive.mjs +0 -18
  109. package/esm2020/app/directives/column/column.directive.mjs +0 -121
  110. package/esm2020/app/directives/content-init/content-init.directive.mjs +0 -22
  111. package/esm2020/app/directives/draggable-list/draggable-list.directive.mjs +0 -330
  112. package/esm2020/app/directives/draggable-row/draggable-row.directive.mjs +0 -78
  113. package/esm2020/app/directives/footer/footer.directive.mjs +0 -18
  114. package/esm2020/app/directives/group-expand-trigger/group-expand-trigger.directive.mjs +0 -26
  115. package/esm2020/app/directives/header/header.directive.mjs +0 -18
  116. package/esm2020/app/models/column-attributes.mjs +0 -132
  117. package/esm2020/app/models/column.model.mjs +0 -164
  118. package/esm2020/app/models/row/base-row.mjs +0 -23
  119. package/esm2020/app/models/row/child-row.mjs +0 -28
  120. package/esm2020/app/models/row/group-footer-row.mjs +0 -21
  121. package/esm2020/app/models/row-action.model.mjs +0 -90
  122. package/esm2020/app/models/row.mjs +0 -89
  123. package/esm2020/app/models/styleConfig.model.mjs +0 -76
  124. package/esm2020/app/services/group-expand-notifier.service.mjs +0 -26
  125. package/fesm2015/firestitch-list.mjs +0 -5802
  126. package/fesm2015/firestitch-list.mjs.map +0 -1
  127. package/fesm2020/firestitch-list.mjs.map +0 -1
  128. /package/{esm2020 → esm2022}/app/classes/index.mjs +0 -0
  129. /package/{esm2020 → esm2022}/app/directives/index.mjs +0 -0
  130. /package/{esm2020 → esm2022}/app/enums/action-type.enum.mjs +0 -0
  131. /package/{esm2020 → esm2022}/app/enums/page-change-type.enum.mjs +0 -0
  132. /package/{esm2020 → esm2022}/app/enums/pagination-strategy.enum.mjs +0 -0
  133. /package/{esm2020 → esm2022}/app/enums/row-type.enum.mjs +0 -0
  134. /package/{esm2020 → esm2022}/app/enums/state.enum.mjs +0 -0
  135. /package/{esm2020 → esm2022}/app/fs-list.providers.mjs +0 -0
  136. /package/{esm2020 → esm2022}/app/interfaces/cellconfig.interface.mjs +0 -0
  137. /package/{esm2020 → esm2022}/app/interfaces/column-config.interface.mjs +0 -0
  138. /package/{esm2020 → esm2022}/app/interfaces/draggable-list.interface.mjs +0 -0
  139. /package/{esm2020 → esm2022}/app/interfaces/external-params.interface.mjs +0 -0
  140. /package/{esm2020 → esm2022}/app/interfaces/index.mjs +0 -0
  141. /package/{esm2020 → esm2022}/app/interfaces/listconfig.interface.mjs +0 -0
  142. /package/{esm2020 → esm2022}/app/interfaces/pagination-state.interface.mjs +0 -0
  143. /package/{esm2020 → esm2022}/app/interfaces/pagination.interface.mjs +0 -0
  144. /package/{esm2020 → esm2022}/app/interfaces/sorting-change-event.interface.mjs +0 -0
  145. /package/{esm2020 → esm2022}/app/models/column-async-attribute.mjs +0 -0
  146. /package/{esm2020 → esm2022}/app/models/row/simple-row.mjs +0 -0
  147. /package/{esm2020 → esm2022}/app/pipes/index.mjs +0 -0
  148. /package/{esm2020 → esm2022}/firestitch-list.mjs +0 -0
  149. /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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtcm93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2RlbHMvcm93L2dyb3VwLXJvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDckMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBSXBELE1BQU0sT0FBTyxRQUFTLFNBQVEsT0FBTztJQU1uQyxZQUNFLE9BQVksRUFBRSxFQUNkLGFBQWEsR0FBRyxLQUFLO1FBRXJCLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBUnRCLGFBQVEsR0FBa0MsRUFBRSxDQUFDO1FBRW5DLGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQVEvRCxJQUFJLGFBQWEsRUFBRTtZQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUNwQztJQUNILENBQUM7SUFFRCxJQUFXLFlBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsUUFBUTthQUNmLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRU0scUJBQXFCO1FBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ25DLEdBQUcsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLHdCQUF3QjtRQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQzVCLEdBQUcsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFTSxxQkFBcUI7UUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFcEMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVNLE9BQU87UUFDWixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJhc2VSb3cgfSBmcm9tICcuL2Jhc2Utcm93JztcbmltcG9ydCB7IFJvd1R5cGUgfSBmcm9tICcuLi8uLi9lbnVtcy9yb3ctdHlwZS5lbnVtJztcbmltcG9ydCB7IENoaWxkUm93IH0gZnJvbSAnLi9jaGlsZC1yb3cnO1xuaW1wb3J0IHsgR3JvdXBGb290ZXJSb3cgfSBmcm9tICcuL2dyb3VwLWZvb3Rlci1yb3cnO1xuXG5leHBvcnQgY2xhc3MgR3JvdXBSb3cgZXh0ZW5kcyBCYXNlUm93IHtcblxuICBwdWJsaWMgY2hpbGRyZW46IChDaGlsZFJvdyB8IEdyb3VwRm9vdGVyUm93KVtdID0gW107XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZXhwYW5kZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBkYXRhOiBhbnkgPSB7fSxcbiAgICBpbml0aWFsRXhwYW5kID0gZmFsc2UsXG4gICkge1xuICAgIHN1cGVyKGRhdGEsIFJvd1R5cGUuR3JvdXApO1xuXG4gICAgaWYgKGluaXRpYWxFeHBhbmQpIHtcbiAgICAgIHRoaXMuX2V4cGFuZGVkLm5leHQoaW5pdGlhbEV4cGFuZCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBjaGlsZHJlbkRhdGEoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2hpbGRyZW5cbiAgICAgICAgLm1hcCgoY2hpbGQpID0+IGNoaWxkLmRhdGEpO1xuICB9XG5cbiAgcHVibGljIGdldCBpc0dyb3VwKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHVibGljIGdldCBleHBhbmRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZXhwYW5kZWQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZXhwYW5kZWQkKCkge1xuICAgIHJldHVybiB0aGlzLl9leHBhbmRlZC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVDaGlsZHJlbkluZGV4ZXMoKSB7XG4gICAgdGhpcy5jaGlsZHJlbi5mb3JFYWNoKChyb3csIGluZGV4KSA9PiB7XG4gICAgICByb3cuaW5kZXggPSBpbmRleDtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVDaGlsZHJlblZpc2liaWxpdHkoKSB7XG4gICAgdGhpcy5jaGlsZHJlbi5mb3JFYWNoKChyb3cpID0+IHtcbiAgICAgIHJvdy52aXNpYmxlID0gdGhpcy5leHBhbmRlZDtcbiAgICB9KVxuICB9XG5cbiAgcHVibGljIHRvZ2dsZVJvd0V4cGFuZFN0YXR1cygpIHtcbiAgICB0aGlzLl9leHBhbmRlZC5uZXh0KCF0aGlzLmV4cGFuZGVkKTtcblxuICAgIHRoaXMudXBkYXRlQ2hpbGRyZW5WaXNpYmlsaXR5KCk7XG4gIH1cblxuICBwdWJsaWMgZGVzdHJveSgpIHtcbiAgICB0aGlzLmNoaWxkcmVuLmZvckVhY2goKGNoaWxkKSA9PiBjaGlsZC5kZXN0cm95KCkpO1xuICAgIHRoaXMuX2V4cGFuZGVkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==
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