@firestitch/list 12.5.1 → 12.6.1

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 (143) hide show
  1. package/app/classes/actions-controller.d.ts +20 -20
  2. package/app/classes/columns-controller.d.ts +71 -71
  3. package/app/classes/data-controller.d.ts +90 -90
  4. package/app/classes/external-params-controller.d.ts +31 -31
  5. package/app/classes/index.d.ts +2 -2
  6. package/app/classes/list-controller.d.ts +174 -174
  7. package/app/classes/pagination-controller.d.ts +189 -189
  8. package/app/classes/persistance-controller.d.ts +10 -10
  9. package/app/classes/reorder-controller.d.ts +62 -62
  10. package/app/classes/selection-controller.d.ts +141 -141
  11. package/app/classes/sorting-controller.d.ts +64 -64
  12. package/app/components/body/body.component.d.ts +32 -32
  13. package/app/components/body/row/actions/actions.component.d.ts +35 -35
  14. package/app/components/body/row/cell/cell.component.d.ts +23 -23
  15. package/app/components/body/row/inline-action/inline-action.component.d.ts +16 -16
  16. package/app/components/body/row/menu-action/menu-action.component.d.ts +12 -12
  17. package/app/components/body/row/row.component.d.ts +72 -72
  18. package/app/components/customize-cols/customize-cols.component.d.ts +17 -17
  19. package/app/components/footer/footer-row/footer-cell/footer-cell.component.d.ts +7 -7
  20. package/app/components/footer/footer-row/footer-row.component.d.ts +11 -11
  21. package/app/components/footer/footer.component.d.ts +11 -11
  22. package/app/components/head/head-cell/head-cell.component.d.ts +14 -14
  23. package/app/components/head/head.component.d.ts +43 -43
  24. package/app/components/list/list.component.d.ts +116 -114
  25. package/app/components/loader/loader.component.d.ts +14 -14
  26. package/app/components/manage-saved-filters/manage-saved-filters.component.d.ts +13 -13
  27. package/app/components/pagination/pagination.component.d.ts +14 -14
  28. package/app/components/saved-filters/saved-filters.component.d.ts +15 -15
  29. package/app/components/status/status.component.d.ts +21 -21
  30. package/app/directives/cell/cell.directive.d.ts +8 -8
  31. package/app/directives/column/column.directive.d.ts +33 -33
  32. package/app/directives/content/content.directive.d.ts +5 -5
  33. package/app/directives/content-init/content-init.directive.d.ts +9 -9
  34. package/app/directives/draggable-list/draggable-list.directive.d.ts +80 -80
  35. package/app/directives/draggable-row/draggable-row.directive.d.ts +21 -21
  36. package/app/directives/empty-state/empty-state.directive.d.ts +5 -5
  37. package/app/directives/footer/footer.directive.d.ts +8 -8
  38. package/app/directives/group-expand-trigger/group-expand-trigger.directive.d.ts +10 -10
  39. package/app/directives/group-footer/group-footer.directive.d.ts +6 -6
  40. package/app/directives/group-header/group-header.directive.d.ts +6 -6
  41. package/app/directives/header/header.directive.d.ts +8 -8
  42. package/app/enums/button-type.enum.d.ts +7 -7
  43. package/app/enums/page-change-type.enum.d.ts +4 -4
  44. package/app/enums/pagination-strategy.enum.d.ts +5 -5
  45. package/app/enums/row-type.enum.d.ts +6 -6
  46. package/app/enums/state.enum.d.ts +9 -9
  47. package/app/fs-list.module.d.ts +56 -56
  48. package/app/fs-list.providers.d.ts +3 -3
  49. package/app/interfaces/cellconfig.interface.d.ts +5 -5
  50. package/app/interfaces/column-config.interface.d.ts +2 -2
  51. package/app/interfaces/draggable-list.interface.d.ts +7 -7
  52. package/app/interfaces/external-params.interface.d.ts +13 -13
  53. package/app/interfaces/index.d.ts +3 -3
  54. package/app/interfaces/listconfig.interface.d.ts +249 -249
  55. package/app/interfaces/pagination.interface.d.ts +13 -13
  56. package/app/models/column-async-attribute.d.ts +5 -5
  57. package/app/models/column-attributes.d.ts +39 -39
  58. package/app/models/column.model.d.ts +59 -59
  59. package/app/models/row/base-row.d.ts +13 -13
  60. package/app/models/row/child-row.d.ts +12 -12
  61. package/app/models/row/group-footer-row.d.ts +10 -10
  62. package/app/models/row/group-row.d.ts +16 -16
  63. package/app/models/row/simple-row.d.ts +5 -5
  64. package/app/models/row-action.model.d.ts +31 -31
  65. package/app/models/row.d.ts +30 -30
  66. package/app/models/styleConfig.model.d.ts +31 -31
  67. package/app/services/group-expand-notifier.service.d.ts +11 -11
  68. package/bundles/firestitch-list.umd.js +6546 -6535
  69. package/bundles/firestitch-list.umd.js.map +1 -1
  70. package/esm2015/app/classes/actions-controller.js +55 -55
  71. package/esm2015/app/classes/columns-controller.js +205 -205
  72. package/esm2015/app/classes/data-controller.js +331 -331
  73. package/esm2015/app/classes/external-params-controller.js +153 -153
  74. package/esm2015/app/classes/index.js +3 -3
  75. package/esm2015/app/classes/list-controller.js +714 -714
  76. package/esm2015/app/classes/pagination-controller.js +460 -460
  77. package/esm2015/app/classes/persistance-controller.js +19 -19
  78. package/esm2015/app/classes/reorder-controller.js +172 -172
  79. package/esm2015/app/classes/selection-controller.js +445 -445
  80. package/esm2015/app/classes/sorting-controller.js +180 -180
  81. package/esm2015/app/components/body/body.component.js +75 -75
  82. package/esm2015/app/components/body/row/actions/actions.component.js +99 -99
  83. package/esm2015/app/components/body/row/cell/cell.component.js +104 -104
  84. package/esm2015/app/components/body/row/inline-action/inline-action.component.js +39 -39
  85. package/esm2015/app/components/body/row/menu-action/menu-action.component.js +31 -31
  86. package/esm2015/app/components/body/row/row.component.js +253 -253
  87. package/esm2015/app/components/customize-cols/customize-cols.component.js +72 -72
  88. package/esm2015/app/components/footer/footer-row/footer-cell/footer-cell.component.js +20 -20
  89. package/esm2015/app/components/footer/footer-row/footer-row.component.js +26 -26
  90. package/esm2015/app/components/footer/footer.component.js +26 -26
  91. package/esm2015/app/components/head/head-cell/head-cell.component.js +33 -33
  92. package/esm2015/app/components/head/head.component.js +90 -90
  93. package/esm2015/app/components/list/list.component.js +376 -369
  94. package/esm2015/app/components/loader/loader.component.js +47 -47
  95. package/esm2015/app/components/manage-saved-filters/manage-saved-filters.component.js +79 -79
  96. package/esm2015/app/components/pagination/pagination.component.js +44 -44
  97. package/esm2015/app/components/saved-filters/saved-filters.component.js +33 -33
  98. package/esm2015/app/components/status/status.component.js +74 -74
  99. package/esm2015/app/directives/cell/cell.directive.js +18 -18
  100. package/esm2015/app/directives/column/column.directive.js +111 -111
  101. package/esm2015/app/directives/content/content.directive.js +12 -12
  102. package/esm2015/app/directives/content-init/content-init.directive.js +21 -21
  103. package/esm2015/app/directives/draggable-list/draggable-list.directive.js +256 -256
  104. package/esm2015/app/directives/draggable-row/draggable-row.directive.js +73 -73
  105. package/esm2015/app/directives/empty-state/empty-state.directive.js +13 -13
  106. package/esm2015/app/directives/footer/footer.directive.js +18 -18
  107. package/esm2015/app/directives/group-expand-trigger/group-expand-trigger.directive.js +26 -26
  108. package/esm2015/app/directives/group-footer/group-footer.directive.js +13 -13
  109. package/esm2015/app/directives/group-header/group-header.directive.js +13 -13
  110. package/esm2015/app/directives/header/header.directive.js +18 -18
  111. package/esm2015/app/enums/button-type.enum.js +9 -9
  112. package/esm2015/app/enums/page-change-type.enum.js +6 -6
  113. package/esm2015/app/enums/pagination-strategy.enum.js +7 -7
  114. package/esm2015/app/enums/row-type.enum.js +7 -7
  115. package/esm2015/app/enums/state.enum.js +11 -11
  116. package/esm2015/app/fs-list.module.js +227 -227
  117. package/esm2015/app/fs-list.providers.js +4 -4
  118. package/esm2015/app/interfaces/cellconfig.interface.js +2 -2
  119. package/esm2015/app/interfaces/column-config.interface.js +1 -1
  120. package/esm2015/app/interfaces/draggable-list.interface.js +2 -2
  121. package/esm2015/app/interfaces/external-params.interface.js +2 -2
  122. package/esm2015/app/interfaces/index.js +4 -4
  123. package/esm2015/app/interfaces/listconfig.interface.js +1 -1
  124. package/esm2015/app/interfaces/pagination.interface.js +2 -2
  125. package/esm2015/app/models/column-async-attribute.js +13 -13
  126. package/esm2015/app/models/column-attributes.js +130 -130
  127. package/esm2015/app/models/column.model.js +166 -166
  128. package/esm2015/app/models/row/base-row.js +23 -23
  129. package/esm2015/app/models/row/child-row.js +28 -28
  130. package/esm2015/app/models/row/group-footer-row.js +20 -20
  131. package/esm2015/app/models/row/group-row.js +44 -44
  132. package/esm2015/app/models/row/simple-row.js +10 -10
  133. package/esm2015/app/models/row-action.model.js +108 -108
  134. package/esm2015/app/models/row.js +80 -80
  135. package/esm2015/app/models/styleConfig.model.js +75 -75
  136. package/esm2015/app/services/group-expand-notifier.service.js +26 -26
  137. package/esm2015/firestitch-list.js +4 -4
  138. package/esm2015/public_api.js +44 -44
  139. package/fesm2015/firestitch-list.js +5388 -5381
  140. package/fesm2015/firestitch-list.js.map +1 -1
  141. package/firestitch-list.d.ts +5 -5
  142. package/package.json +2 -2
  143. package/public_api.d.ts +38 -38
@@ -1,131 +1,131 @@
1
- import { ColumnAsyncAttribute } from './column-async-attribute';
2
- export class ColumnAttributes {
3
- constructor(attrs = {}) {
4
- this._customize = true;
5
- this._direction$ = new ColumnAsyncAttribute(null);
6
- this._visible$ = new ColumnAsyncAttribute(true);
7
- this._init(attrs);
8
- }
9
- // title
10
- set title(value) {
11
- this._title = value;
12
- }
13
- get title() {
14
- return this._title;
15
- }
16
- // name
17
- set name(value) {
18
- this._name = value;
19
- }
20
- get name() {
21
- return this._name;
22
- }
23
- // customize
24
- set customize(value) {
25
- this._customize = value;
26
- }
27
- get customize() {
28
- return this._customize;
29
- }
30
- // sortable
31
- set sortable(value) {
32
- this._sortable = value;
33
- }
34
- get sortable() {
35
- return this._sortable;
36
- }
37
- // sortableDefault
38
- set sortableDefault(value) {
39
- this._sortableDefault = value;
40
- if (this.sortableDefault) {
41
- this.sortable = true;
42
- }
43
- }
44
- get sortableDefault() {
45
- return this._sortableDefault;
46
- }
47
- // direction
48
- set direction(value) {
49
- this._direction$.next(value);
50
- }
51
- get direction() {
52
- return this._direction$.value;
53
- }
54
- get direction$() {
55
- return this._direction$.asObservable();
56
- }
57
- // align
58
- set align(value) {
59
- this._align = value;
60
- }
61
- get align() {
62
- return this._align;
63
- }
64
- // width
65
- set width(value) {
66
- this._width = value;
67
- }
68
- get width() {
69
- return this._width;
70
- }
71
- // className
72
- set className(value) {
73
- this._className = value;
74
- }
75
- get className() {
76
- return this._className;
77
- }
78
- // visibility
79
- set visible(value) {
80
- this._visible$.next(value);
81
- }
82
- get visible() {
83
- return this._visible$.getValue();
84
- }
85
- get visible$() {
86
- return this._visible$.asObservable();
87
- }
88
- _init(attrs) {
89
- Object.keys(attrs)
90
- .forEach((key) => {
91
- switch (key) {
92
- case 'title':
93
- {
94
- this.title = attrs[key];
95
- }
96
- break;
97
- case 'name':
98
- {
99
- this.name = attrs[key];
100
- }
101
- break;
102
- case 'align':
103
- {
104
- this.align = attrs[key];
105
- }
106
- break;
107
- case 'direction':
108
- {
109
- this.direction = attrs[key];
110
- }
111
- break;
112
- case 'sortable':
113
- {
114
- this.sortable = attrs[key];
115
- }
116
- break;
117
- case 'show':
118
- {
119
- this.visible = attrs[key];
120
- }
121
- break;
122
- case 'visible':
123
- {
124
- this.visible = attrs[key];
125
- }
126
- break;
127
- }
128
- });
129
- }
130
- }
1
+ import { ColumnAsyncAttribute } from './column-async-attribute';
2
+ export class ColumnAttributes {
3
+ constructor(attrs = {}) {
4
+ this._customize = true;
5
+ this._direction$ = new ColumnAsyncAttribute(null);
6
+ this._visible$ = new ColumnAsyncAttribute(true);
7
+ this._init(attrs);
8
+ }
9
+ // title
10
+ set title(value) {
11
+ this._title = value;
12
+ }
13
+ get title() {
14
+ return this._title;
15
+ }
16
+ // name
17
+ set name(value) {
18
+ this._name = value;
19
+ }
20
+ get name() {
21
+ return this._name;
22
+ }
23
+ // customize
24
+ set customize(value) {
25
+ this._customize = value;
26
+ }
27
+ get customize() {
28
+ return this._customize;
29
+ }
30
+ // sortable
31
+ set sortable(value) {
32
+ this._sortable = value;
33
+ }
34
+ get sortable() {
35
+ return this._sortable;
36
+ }
37
+ // sortableDefault
38
+ set sortableDefault(value) {
39
+ this._sortableDefault = value;
40
+ if (this.sortableDefault) {
41
+ this.sortable = true;
42
+ }
43
+ }
44
+ get sortableDefault() {
45
+ return this._sortableDefault;
46
+ }
47
+ // direction
48
+ set direction(value) {
49
+ this._direction$.next(value);
50
+ }
51
+ get direction() {
52
+ return this._direction$.value;
53
+ }
54
+ get direction$() {
55
+ return this._direction$.asObservable();
56
+ }
57
+ // align
58
+ set align(value) {
59
+ this._align = value;
60
+ }
61
+ get align() {
62
+ return this._align;
63
+ }
64
+ // width
65
+ set width(value) {
66
+ this._width = value;
67
+ }
68
+ get width() {
69
+ return this._width;
70
+ }
71
+ // className
72
+ set className(value) {
73
+ this._className = value;
74
+ }
75
+ get className() {
76
+ return this._className;
77
+ }
78
+ // visibility
79
+ set visible(value) {
80
+ this._visible$.next(value);
81
+ }
82
+ get visible() {
83
+ return this._visible$.getValue();
84
+ }
85
+ get visible$() {
86
+ return this._visible$.asObservable();
87
+ }
88
+ _init(attrs) {
89
+ Object.keys(attrs)
90
+ .forEach((key) => {
91
+ switch (key) {
92
+ case 'title':
93
+ {
94
+ this.title = attrs[key];
95
+ }
96
+ break;
97
+ case 'name':
98
+ {
99
+ this.name = attrs[key];
100
+ }
101
+ break;
102
+ case 'align':
103
+ {
104
+ this.align = attrs[key];
105
+ }
106
+ break;
107
+ case 'direction':
108
+ {
109
+ this.direction = attrs[key];
110
+ }
111
+ break;
112
+ case 'sortable':
113
+ {
114
+ this.sortable = attrs[key];
115
+ }
116
+ break;
117
+ case 'show':
118
+ {
119
+ this.visible = attrs[key];
120
+ }
121
+ break;
122
+ case 'visible':
123
+ {
124
+ this.visible = attrs[key];
125
+ }
126
+ break;
127
+ }
128
+ });
129
+ }
130
+ }
131
131
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWF0dHJpYnV0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL21vZGVscy9jb2x1bW4tYXR0cmlidXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVoRSxNQUFNLE9BQU8sZ0JBQWdCO0lBYTNCLFlBQVksUUFBZ0MsRUFBRTtRQVR0QyxlQUFVLEdBQUcsSUFBSSxDQUFDO1FBR2xCLGdCQUFXLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUk3QyxjQUFTLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUdqRCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxRQUFRO0lBQ1IsSUFBVyxLQUFLLENBQUMsS0FBYTtRQUM1QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxPQUFPO0lBQ1AsSUFBVyxJQUFJLENBQUMsS0FBYTtRQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxZQUFZO0lBQ1osSUFBVyxTQUFTLENBQUMsS0FBYztRQUNqQyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQsV0FBVztJQUNYLElBQVcsUUFBUSxDQUFDLEtBQWM7UUFDaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDekIs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QUFHLENBQUMsQ0FBQTtxQkFBRTtvQkFBQyxNQUFNO2dCQUNqRCxLQUFLLFNBQVM7b0JBQUU7d0JBQUUsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7cUJBQUU7b0JBQUMsTUFBTTthQUNyRDtRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBDb2x1bW5Bc3luY0F0dHJpYnV0ZSB9IGZyb20gJy4vY29sdW1uLWFzeW5jLWF0dHJpYnV0ZSc7XG5cbmV4cG9ydCBjbGFzcyBDb2x1bW5BdHRyaWJ1dGVzIHtcblxuICBwcml2YXRlIF90aXRsZTogc3RyaW5nO1xuICBwcml2YXRlIF9uYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgX2N1c3RvbWl6ZSA9IHRydWU7XG4gIHByaXZhdGUgX3NvcnRhYmxlOiBib29sZWFuO1xuICBwcml2YXRlIF9zb3J0YWJsZURlZmF1bHQ6IGJvb2xlYW47XG4gIHByaXZhdGUgX2RpcmVjdGlvbiQgPSBuZXcgQ29sdW1uQXN5bmNBdHRyaWJ1dGUobnVsbCk7XG4gIHByaXZhdGUgX2FsaWduOiBzdHJpbmc7XG4gIHByaXZhdGUgX3dpZHRoOiBzdHJpbmc7XG4gIHByaXZhdGUgX2NsYXNzTmFtZTogc3RyaW5nIHwgc3RyaW5nW107XG4gIHByaXZhdGUgX3Zpc2libGUkID0gbmV3IENvbHVtbkFzeW5jQXR0cmlidXRlKHRydWUpO1xuXG4gIGNvbnN0cnVjdG9yKGF0dHJzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge30pIHtcbiAgICB0aGlzLl9pbml0KGF0dHJzKTtcbiAgfVxuXG4gIC8vIHRpdGxlXG4gIHB1YmxpYyBzZXQgdGl0bGUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3RpdGxlID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3RpdGxlO1xuICB9XG5cbiAgLy8gbmFtZVxuICBwdWJsaWMgc2V0IG5hbWUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX25hbWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9uYW1lO1xuICB9XG5cbiAgLy8gY3VzdG9taXplXG4gIHB1YmxpYyBzZXQgY3VzdG9taXplKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fY3VzdG9taXplID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGN1c3RvbWl6ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fY3VzdG9taXplO1xuICB9XG5cbiAgLy8gc29ydGFibGVcbiAgcHVibGljIHNldCBzb3J0YWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3NvcnRhYmxlID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNvcnRhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zb3J0YWJsZTtcbiAgfVxuXG4gIC8vIHNvcnRhYmxlRGVmYXVsdFxuICBwdWJsaWMgc2V0IHNvcnRhYmxlRGVmYXVsdCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3NvcnRhYmxlRGVmYXVsdCA9IHZhbHVlO1xuXG4gICAgaWYgKHRoaXMuc29ydGFibGVEZWZhdWx0KSB7XG4gICAgICB0aGlzLnNvcnRhYmxlID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNvcnRhYmxlRGVmYXVsdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc29ydGFibGVEZWZhdWx0O1xuICB9XG5cbiAgLy8gZGlyZWN0aW9uXG4gIHB1YmxpYyBzZXQgZGlyZWN0aW9uKHZhbHVlOiAnYXNjJyB8ICdkZXNjJykge1xuICAgIHRoaXMuX2RpcmVjdGlvbiQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRpcmVjdGlvbigpOiAnYXNjJyB8ICdkZXNjJyB7XG4gICAgcmV0dXJuIHRoaXMuX2RpcmVjdGlvbiQudmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRpcmVjdGlvbiQoKTogT2JzZXJ2YWJsZTwnYXNjJyB8ICdkZXNjJz4ge1xuICAgIHJldHVybiB0aGlzLl9kaXJlY3Rpb24kLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLy8gYWxpZ25cbiAgcHVibGljIHNldCBhbGlnbih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fYWxpZ24gPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWxpZ24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fYWxpZ247XG4gIH1cblxuICAvLyB3aWR0aFxuICBwdWJsaWMgc2V0IHdpZHRoKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl93aWR0aCA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCB3aWR0aCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl93aWR0aDtcbiAgfVxuXG4gIC8vIGNsYXNzTmFtZVxuICBwdWJsaWMgc2V0IGNsYXNzTmFtZSh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10pIHtcbiAgICB0aGlzLl9jbGFzc05hbWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2xhc3NOYW1lKCk6IHN0cmluZyB8IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5fY2xhc3NOYW1lO1xuICB9XG5cbiAgLy8gdmlzaWJpbGl0eVxuICBwdWJsaWMgc2V0IHZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl92aXNpYmxlJC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZSQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmlzaWJsZSQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX3Zpc2libGUkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdChhdHRyczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSkge1xuICAgIE9iamVjdC5rZXlzKGF0dHJzKVxuICAgICAgLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgIGNhc2UgJ3RpdGxlJzogeyB0aGlzLnRpdGxlID0gYXR0cnNba2V5XSB9IGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ25hbWUnOiB7IHRoaXMubmFtZSA9IGF0dHJzW2tleV0gfSBicmVhaztcbiAgICAgICAgICBjYXNlICdhbGlnbic6IHsgdGhpcy5hbGlnbiA9IGF0dHJzW2tleV0gfSBicmVhaztcbiAgICAgICAgICBjYXNlICdkaXJlY3Rpb24nOiB7IHRoaXMuZGlyZWN0aW9uID0gYXR0cnNba2V5XSB9IGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ3NvcnRhYmxlJzogeyB0aGlzLnNvcnRhYmxlID0gYXR0cnNba2V5XSB9IGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ3Nob3cnOiB7IHRoaXMudmlzaWJsZSA9IGF0dHJzW2tleV0gfSBicmVhaztcbiAgICAgICAgICBjYXNlICd2aXNpYmxlJzogeyB0aGlzLnZpc2libGUgPSBhdHRyc1trZXldIH0gYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gIH1cbn1cbiJdfQ==
@@ -1,167 +1,167 @@
1
- import { isObject, isBoolean } 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
- constructor(colConfig, colDefaults = false) {
16
- this.headerConfigs = new StyleConfig();
17
- this.groupHeaderConfigs = new StyleConfig();
18
- this.groupFooterConfigs = new StyleConfig();
19
- this.cellConfigs = new StyleConfig();
20
- this.footerConfigs = new StyleConfig();
21
- this.headerColspanned = false;
22
- this.groupHeaderColspanned = false;
23
- this.groupFooterColspanned = false;
24
- this.cellColspanned = false;
25
- this.footerColspanned = false;
26
- this._ordered = false;
27
- this._parseConfig(colConfig);
28
- this.colStyles = new StyleConfig({
29
- className: this._attributes.className,
30
- align: this._attributes.align
31
- });
32
- this.mergeWithColumnDefaults(colDefaults);
33
- }
34
- set title(value) {
35
- this._attributes.title = value;
36
- }
37
- get title() {
38
- return this._attributes.title;
39
- }
40
- get name() {
41
- return this._attributes.name;
42
- }
43
- get customize() {
44
- return this._attributes.customize;
45
- }
46
- get width() {
47
- return this._attributes.width;
48
- }
49
- set sortable(value) {
50
- this._attributes.sortable = value;
51
- }
52
- get sortable() {
53
- return this._attributes.sortable;
54
- }
55
- get sortableDefault() {
56
- return this._attributes.sortableDefault;
57
- }
58
- set sortingDirection(value) {
59
- this._attributes.direction = value;
60
- }
61
- get sortingDirection() {
62
- return this._attributes.direction;
63
- }
64
- get sortingDirection$() {
65
- return this._attributes.direction$;
66
- }
67
- get visible() {
68
- return this._attributes.visible;
69
- }
70
- get visible$() {
71
- return this._attributes.visible$;
72
- }
73
- get direction() {
74
- return (this.sortingDirection === SortingDirection.asc) ? 'asc' : 'desc';
75
- }
76
- get fullNameDirection() {
77
- return (this.sortingDirection === SortingDirection.asc) ? 'Ascending' : 'Descending';
78
- }
79
- get ordered() {
80
- return this._ordered;
81
- }
82
- set ordered(value) {
83
- this._ordered = value;
84
- if (value && !this.sortingDirection) {
85
- this.sortingDirection = SortingDirection.asc;
86
- }
87
- }
88
- /**
89
- * Merge with defaults with existing config
90
- * @param defaults
91
- */
92
- mergeWithColumnDefaults(defaults) {
93
- if (!isObject(defaults)) {
94
- defaults = {};
95
- }
96
- ALLOWED_DEFAULTS.forEach((key) => {
97
- switch (key) {
98
- case 'title':
99
- {
100
- this.title = this.title || defaults.title;
101
- }
102
- break;
103
- case 'sortable':
104
- {
105
- if (isBoolean(defaults.sortable)) {
106
- if (this.sortable === void 0) {
107
- this.sortable = defaults.sortable;
108
- }
109
- }
110
- }
111
- break;
112
- case 'class':
113
- {
114
- this.headerConfigs.mergeClassByPriority(this.colStyles, defaults.header);
115
- this.groupHeaderConfigs.mergeClassByPriority(this.colStyles, defaults.cell);
116
- this.groupFooterConfigs.mergeClassByPriority(this.colStyles, defaults.cell);
117
- this.cellConfigs.mergeClassByPriority(this.colStyles, defaults.cell);
118
- this.footerConfigs.mergeClassByPriority(this.colStyles, defaults.footer);
119
- }
120
- break;
121
- case 'align':
122
- {
123
- this.headerConfigs.mergeAlignByPriority(this.colStyles, defaults.header);
124
- this.groupHeaderConfigs.mergeAlignByPriority(this.colStyles, defaults.cell);
125
- this.groupFooterConfigs.mergeAlignByPriority(this.colStyles, defaults.cell);
126
- this.cellConfigs.mergeAlignByPriority(this.colStyles, defaults.cell);
127
- this.footerConfigs.mergeAlignByPriority(this.colStyles, defaults.footer);
128
- }
129
- break;
130
- }
131
- });
132
- this.headerConfigs.updateClasesArray();
133
- this.groupHeaderConfigs.updateClasesArray();
134
- this.groupFooterConfigs.updateClasesArray();
135
- this.cellConfigs.updateClasesArray();
136
- this.footerConfigs.updateClasesArray();
137
- }
138
- /**
139
- * Change sorting direction
140
- */
141
- changeDirection() {
142
- if (this.sortingDirection === SortingDirection.asc) {
143
- this.sortingDirection = SortingDirection.desc;
144
- }
145
- else {
146
- this.sortingDirection = SortingDirection.asc;
147
- }
148
- }
149
- updateVisibility(value) {
150
- this._attributes.visible = value;
151
- }
152
- _parseConfig(config) {
153
- this._attributes = config.attributes;
154
- this.headerTemplate = config.headerTemplate;
155
- this.groupHeaderTemplate = config.groupHeaderTemplate;
156
- this.groupFooterTemplate = config.groupFooterTemplate;
157
- this.cellTemplate = config.cellTemplate;
158
- this.footerTemplate = config.footerTemplate;
159
- this.headerConfigs = new StyleConfig(config.headerConfigs);
160
- this.groupHeaderConfigs = new StyleConfig(config.groupHeaderConfigs);
161
- this.groupFooterConfigs = new StyleConfig(config.groupFooterConfigs);
162
- this.cellConfigs = new StyleConfig(config.cellConfigs);
163
- this.footerConfigs = new StyleConfig(config.footerConfigs);
164
- this.expandTrigger = config.expandTrigger;
165
- }
166
- }
1
+ import { isObject, isBoolean } 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
+ constructor(colConfig, colDefaults = false) {
16
+ this.headerConfigs = new StyleConfig();
17
+ this.groupHeaderConfigs = new StyleConfig();
18
+ this.groupFooterConfigs = new StyleConfig();
19
+ this.cellConfigs = new StyleConfig();
20
+ this.footerConfigs = new StyleConfig();
21
+ this.headerColspanned = false;
22
+ this.groupHeaderColspanned = false;
23
+ this.groupFooterColspanned = false;
24
+ this.cellColspanned = false;
25
+ this.footerColspanned = false;
26
+ this._ordered = false;
27
+ this._parseConfig(colConfig);
28
+ this.colStyles = new StyleConfig({
29
+ className: this._attributes.className,
30
+ align: this._attributes.align
31
+ });
32
+ this.mergeWithColumnDefaults(colDefaults);
33
+ }
34
+ set title(value) {
35
+ this._attributes.title = value;
36
+ }
37
+ get title() {
38
+ return this._attributes.title;
39
+ }
40
+ get name() {
41
+ return this._attributes.name;
42
+ }
43
+ get customize() {
44
+ return this._attributes.customize;
45
+ }
46
+ get width() {
47
+ return this._attributes.width;
48
+ }
49
+ set sortable(value) {
50
+ this._attributes.sortable = value;
51
+ }
52
+ get sortable() {
53
+ return this._attributes.sortable;
54
+ }
55
+ get sortableDefault() {
56
+ return this._attributes.sortableDefault;
57
+ }
58
+ set sortingDirection(value) {
59
+ this._attributes.direction = value;
60
+ }
61
+ get sortingDirection() {
62
+ return this._attributes.direction;
63
+ }
64
+ get sortingDirection$() {
65
+ return this._attributes.direction$;
66
+ }
67
+ get visible() {
68
+ return this._attributes.visible;
69
+ }
70
+ get visible$() {
71
+ return this._attributes.visible$;
72
+ }
73
+ get direction() {
74
+ return (this.sortingDirection === SortingDirection.asc) ? 'asc' : 'desc';
75
+ }
76
+ get fullNameDirection() {
77
+ return (this.sortingDirection === SortingDirection.asc) ? 'Ascending' : 'Descending';
78
+ }
79
+ get ordered() {
80
+ return this._ordered;
81
+ }
82
+ set ordered(value) {
83
+ this._ordered = value;
84
+ if (value && !this.sortingDirection) {
85
+ this.sortingDirection = SortingDirection.asc;
86
+ }
87
+ }
88
+ /**
89
+ * Merge with defaults with existing config
90
+ * @param defaults
91
+ */
92
+ mergeWithColumnDefaults(defaults) {
93
+ if (!isObject(defaults)) {
94
+ defaults = {};
95
+ }
96
+ ALLOWED_DEFAULTS.forEach((key) => {
97
+ switch (key) {
98
+ case 'title':
99
+ {
100
+ this.title = this.title || defaults.title;
101
+ }
102
+ break;
103
+ case 'sortable':
104
+ {
105
+ if (isBoolean(defaults.sortable)) {
106
+ if (this.sortable === void 0) {
107
+ this.sortable = defaults.sortable;
108
+ }
109
+ }
110
+ }
111
+ break;
112
+ case 'class':
113
+ {
114
+ this.headerConfigs.mergeClassByPriority(this.colStyles, defaults.header);
115
+ this.groupHeaderConfigs.mergeClassByPriority(this.colStyles, defaults.cell);
116
+ this.groupFooterConfigs.mergeClassByPriority(this.colStyles, defaults.cell);
117
+ this.cellConfigs.mergeClassByPriority(this.colStyles, defaults.cell);
118
+ this.footerConfigs.mergeClassByPriority(this.colStyles, defaults.footer);
119
+ }
120
+ break;
121
+ case 'align':
122
+ {
123
+ this.headerConfigs.mergeAlignByPriority(this.colStyles, defaults.header);
124
+ this.groupHeaderConfigs.mergeAlignByPriority(this.colStyles, defaults.cell);
125
+ this.groupFooterConfigs.mergeAlignByPriority(this.colStyles, defaults.cell);
126
+ this.cellConfigs.mergeAlignByPriority(this.colStyles, defaults.cell);
127
+ this.footerConfigs.mergeAlignByPriority(this.colStyles, defaults.footer);
128
+ }
129
+ break;
130
+ }
131
+ });
132
+ this.headerConfigs.updateClasesArray();
133
+ this.groupHeaderConfigs.updateClasesArray();
134
+ this.groupFooterConfigs.updateClasesArray();
135
+ this.cellConfigs.updateClasesArray();
136
+ this.footerConfigs.updateClasesArray();
137
+ }
138
+ /**
139
+ * Change sorting direction
140
+ */
141
+ changeDirection() {
142
+ if (this.sortingDirection === SortingDirection.asc) {
143
+ this.sortingDirection = SortingDirection.desc;
144
+ }
145
+ else {
146
+ this.sortingDirection = SortingDirection.asc;
147
+ }
148
+ }
149
+ updateVisibility(value) {
150
+ this._attributes.visible = value;
151
+ }
152
+ _parseConfig(config) {
153
+ this._attributes = config.attributes;
154
+ this.headerTemplate = config.headerTemplate;
155
+ this.groupHeaderTemplate = config.groupHeaderTemplate;
156
+ this.groupFooterTemplate = config.groupFooterTemplate;
157
+ this.cellTemplate = config.cellTemplate;
158
+ this.footerTemplate = config.footerTemplate;
159
+ this.headerConfigs = new StyleConfig(config.headerConfigs);
160
+ this.groupHeaderConfigs = new StyleConfig(config.groupHeaderConfigs);
161
+ this.groupFooterConfigs = new StyleConfig(config.groupFooterConfigs);
162
+ this.cellConfigs = new StyleConfig(config.cellConfigs);
163
+ this.footerConfigs = new StyleConfig(config.footerConfigs);
164
+ this.expandTrigger = config.expandTrigger;
165
+ }
166
+ }
167
167
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2RlbHMvY29sdW1uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRWhELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUtsRCxNQUFNLENBQU4sSUFBWSxnQkFHWDtBQUhELFdBQVksZ0JBQWdCO0lBQzFCLCtCQUFXLENBQUE7SUFDWCxpQ0FBYSxDQUFBO0FBQ2YsQ0FBQyxFQUhXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFHM0I7QUFFRCxNQUFNLGdCQUFnQixHQUFHO0lBQ3ZCLE9BQU87SUFDUCxVQUFVO0lBQ1YsT0FBTztJQUNQLE9BQU87Q0FDUixDQUFDO0FBRUYsTUFBTSxPQUFPLE1BQU07SUE4QmpCLFlBQVksU0FBNkIsRUFBRSxjQUFtQixLQUFLO1FBckI1RCxrQkFBYSxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFDO1FBRS9DLHVCQUFrQixHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ3BELHVCQUFrQixHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFDO1FBRXBELGdCQUFXLEdBQWdCLElBQUksV0FBVyxFQUFFLENBQUM7UUFFN0Msa0JBQWEsR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUkvQyxxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDekIsMEJBQXFCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLDBCQUFxQixHQUFHLEtBQUssQ0FBQztRQUM5QixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFJeEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUd2QixJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTdCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFB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R0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDO1FBQzVDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUM7UUFDdEQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQztRQUN0RCxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDeEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDO1FBQzVDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDO0lBQzVDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFF1ZXJ5TGlzdCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBpc09iamVjdCwgaXNCb29sZWFuIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuaW1wb3J0IHsgU3R5bGVDb25maWcgfSBmcm9tICcuL3N0eWxlQ29uZmlnLm1vZGVsJztcbmltcG9ydCB7IEZzTGlzdENvbHVtbkNvbmZpZyB9IGZyb20gJy4uL2ludGVyZmFjZXMvY29sdW1uLWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRnNMaXN0R3JvdXBFeHBhbmRUcmlnZ2VyRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9ncm91cC1leHBhbmQtdHJpZ2dlci9ncm91cC1leHBhbmQtdHJpZ2dlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29sdW1uQXR0cmlidXRlcyB9IGZyb20gJy4vY29sdW1uLWF0dHJpYnV0ZXMnO1xuXG5leHBvcnQgZW51bSBTb3J0aW5nRGlyZWN0aW9uIHtcbiAgYXNjID0gJ2FzYycsXG4gIGRlc2MgPSAnZGVzYydcbn1cblxuY29uc3QgQUxMT1dFRF9ERUZBVUxUUyA9IFtcbiAgJ3RpdGxlJyxcbiAgJ3NvcnRhYmxlJyxcbiAgJ2FsaWduJyxcbiAgJ2NsYXNzJ1xuXTtcblxuZXhwb3J0IGNsYXNzIENvbHVtbiB7XG5cbiAgcHVibGljIGhlYWRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBwdWJsaWMgZ3JvdXBIZWFkZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgcHVibGljIGdyb3VwRm9vdGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIHB1YmxpYyBjZWxsVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIHB1YmxpYyBmb290ZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgcHVibGljIGV4cGFuZFRyaWdnZXI6IFF1ZXJ5TGlzdDxGc0xpc3RHcm91cEV4cGFuZFRyaWdnZXJEaXJlY3RpdmU+O1xuXG4gIHB1YmxpYyBoZWFkZXJDb25maWdzOiBTdHlsZUNvbmZpZyA9IG5ldyBTdHlsZUNvbmZpZygpO1xuXG4gIHB1YmxpYyBncm91cEhlYWRlckNvbmZpZ3M6IFN0eWxlQ29uZmlnID0gbmV3IFN0eWxlQ29uZmlnKCk7XG4gIHB1YmxpYyBncm91cEZvb3RlckNvbmZpZ3M6IFN0eWxlQ29uZmlnID0gbmV3IFN0eWxlQ29uZmlnKCk7XG5cbiAgcHVibGljIGNlbGxDb25maWdzOiBTdHlsZUNvbmZpZyA9IG5ldyBTdHlsZUNvbmZpZygpO1xuXG4gIHB1YmxpYyBmb290ZXJDb25maWdzOiBTdHlsZUNvbmZpZyA9IG5ldyBTdHlsZUNvbmZpZygpO1xuXG4gIHB1YmxpYyBjb2xTdHlsZXM6IFN0eWxlQ29uZmlnO1xuXG4gIHB1YmxpYyBoZWFkZXJDb2xzcGFubmVkID0gZmFsc2U7XG4gIHB1YmxpYyBncm91cEhlYWRlckNvbHNwYW5uZWQgPSBmYWxzZTtcbiAgcHVibGljIGdyb3VwRm9vdGVyQ29sc3Bhbm5lZCA9IGZhbHNlO1xuICBwdWJsaWMgY2VsbENvbHNwYW5uZWQgPSBmYWxzZTtcbiAgcHVibGljIGZvb3RlckNvbHNwYW5uZWQgPSBmYWxzZTtcblxuICBwcml2YXRlIF9hdHRyaWJ1dGVzOiBDb2x1bW5BdHRyaWJ1dGVzO1xuXG4gIHByaXZhdGUgX29yZGVyZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihjb2xDb25maWc6IEZzTGlzdENvbHVtbkNvbmZpZywgY29sRGVmYXVsdHM6IGFueSA9IGZhbHNlKSB7XG4gICAgdGhpcy5fcGFyc2VDb25maWcoY29sQ29uZmlnKTtcblxuICAgIHRoaXMuY29sU3R5bGVzID0gbmV3IFN0eWxlQ29uZmlnKHtcbiAgICAgIGNsYXNzTmFtZTogdGhpcy5fYXR0cmlidXRlcy5jbGFzc05hbWUsXG4gICAgICBhbGlnbjogdGhpcy5fYXR0cmlidXRlcy5hbGlnblxuICAgIH0pO1xuXG4gICAgdGhpcy5tZXJnZVdpdGhDb2x1bW5EZWZhdWx0cyhjb2xEZWZhdWx0cyk7XG4gIH1cblxuICBwdWJsaWMgc2V0IHRpdGxlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9hdHRyaWJ1dGVzLnRpdGxlID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2F0dHJpYnV0ZXMudGl0bGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fYXR0cmlidXRlcy5uYW1lO1xuICB9XG5cbiAgcHVibGljIGdldCBjdXN0b21pemUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2F0dHJpYnV0ZXMuY3VzdG9taXplO1xuICB9XG5cbiAgcHVibGljIGdldCB3aWR0aCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9hdHRyaWJ1dGVzLndpZHRoO1xuICB9XG5cbiAgcHVibGljIHNldCBzb3J0YWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2F0dHJpYnV0ZXMuc29ydGFibGUgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc29ydGFibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2F0dHJpYnV0ZXMuc29ydGFibGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNvcnRhYmxlRGVmYXVsdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fYXR0cmlidXRlcy5zb3J0YWJsZURlZmF1bHQ7XG4gIH1cblxuICBwdWJsaWMgc2V0IHNvcnRpbmdEaXJlY3Rpb24odmFsdWU6ICdhc2MnIHwgJ2Rlc2MnKSB7XG4gICAgdGhpcy5fYXR0cmlidXRlcy5kaXJlY3Rpb24gPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc29ydGluZ0RpcmVjdGlvbigpOiAnYXNjJyB8ICdkZXNjJyB7XG4gICAgcmV0dXJuIHRoaXMuX2F0dHJpYnV0ZXMuZGlyZWN0aW9uO1xuICB9XG5cbiAgcHVibGljIGdldCBzb3J0aW5nRGlyZWN0aW9uJCgpOiBPYnNlcnZhYmxlPCdhc2MnIHwgJ2Rlc2MnPiB7XG4gICAgcmV0dXJuIHRoaXMuX2F0dHJpYnV0ZXMuZGlyZWN0aW9uJDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fYXR0cmlidXRlcy52aXNpYmxlO1xuICB9XG5cbiAgcHVibGljIGdldCB2aXNpYmxlJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5fYXR0cmlidXRlcy52aXNpYmxlJDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlyZWN0aW9uKCkge1xuICAgIHJldHVybiAodGhpcy5zb3J0aW5nRGlyZWN0aW9uID09PSBTb3J0aW5nRGlyZWN0aW9uLmFzYykgPyAnYXNjJyA6ICdkZXNjJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZnVsbE5hbWVEaXJlY3Rpb24oKSB7XG4gICAgcmV0dXJuICh0aGlzLnNvcnRpbmdEaXJlY3Rpb24gPT09IFNvcnRpbmdEaXJlY3Rpb24uYXNjKSA/ICdBc2NlbmRpbmcnIDogJ0Rlc2NlbmRpbmcnO1xuICB9XG5cbiAgcHVibGljIGdldCBvcmRlcmVkKCkge1xuICAgIHJldHVybiB0aGlzLl9vcmRlcmVkO1xuICB9XG5cbiAgcHVibGljIHNldCBvcmRlcmVkKHZhbHVlKSB7XG4gICAgdGhpcy5fb3JkZXJlZCA9IHZhbHVlO1xuXG4gICAgaWYgKHZhbHVlICYmICF0aGlzLnNvcnRpbmdEaXJlY3Rpb24pIHtcbiAgICAgIHRoaXMuc29ydGluZ0RpcmVjdGlvbiA9IFNvcnRpbmdEaXJlY3Rpb24uYXNjO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBNZXJnZSB3aXRoIGRlZmF1bHRzIHdpdGggZXhpc3RpbmcgY29uZmlnXG4gICAqIEBwYXJhbSBkZWZhdWx0c1xuICAgKi9cbiAgcHVibGljIG1lcmdlV2l0aENvbHVtbkRlZmF1bHRzKGRlZmF1bHRzKSB7XG4gICAgaWYgKCFpc09iamVjdChkZWZhdWx0cykpIHsgZGVmYXVsdHMgPSB7fSB9XG5cbiAgICBBTExPV0VEX0RFRkFVTFRTLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgY2FzZSAndGl0bGUnOiB7XG4gICAgICAgICAgdGhpcy50aXRsZSA9IHRoaXMudGl0bGUgfHwgZGVmYXVsdHMudGl0bGU7XG4gICAgICAgIH0gYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnc29ydGFibGUnOiB7XG4gICAgICAgICAgaWYgKGlzQm9vbGVhbihkZWZhdWx0cy5zb3J0YWJsZSkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnNvcnRhYmxlID09PSB2b2lkIDApIHtcbiAgICAgICAgICAgICAgdGhpcy5zb3J0YWJsZSA9IGRlZmF1bHRzLnNvcnRhYmxlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBicmVhaztcblxuICAgICAgICBjYXNlICdjbGFzcyc6IHtcbiAgICAgICAgICB0aGlzLmhlYWRlckNvbmZpZ3MubWVyZ2VDbGFzc0J5UHJpb3JpdHkodGhpcy5jb2xTdHlsZXMsIGRlZmF1bHRzLmhlYWRlcik7XG4gICAgICAgICAgdGhpcy5ncm91cEhlYWRlckNvbmZpZ3MubWVyZ2VDbGFzc0J5UHJpb3JpdHkodGhpcy5jb2xTdHlsZXMsIGRlZmF1bHRzLmNlbGwpO1xuICAgICAgICAgIHRoaXMuZ3JvdXBGb290ZXJDb25maWdzLm1lcmdlQ2xhc3NCeVByaW9yaXR5KHRoaXMuY29sU3R5bGVzLCBkZWZhdWx0cy5jZWxsKTtcbiAgICAgICAgICB0aGlzLmNlbGxDb25maWdzLm1lcmdlQ2xhc3NCeVByaW9yaXR5KHRoaXMuY29sU3R5bGVzLCBkZWZhdWx0cy5jZWxsKTtcbiAgICAgICAgICB0aGlzLmZvb3RlckNvbmZpZ3MubWVyZ2VDbGFzc0J5UHJpb3JpdHkodGhpcy5jb2xTdHlsZXMsIGRlZmF1bHRzLmZvb3Rlcik7XG4gICAgICAgIH0gYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnYWxpZ24nOiB7XG4gICAgICAgICAgdGhpcy5oZWFkZXJDb25maWdzLm1lcmdlQWxpZ25CeVByaW9yaXR5KHRoaXMuY29sU3R5bGVzLCBkZWZhdWx0cy5oZWFkZXIpO1xuICAgICAgICAgIHRoaXMuZ3JvdXBIZWFkZXJDb25maWdzLm1lcmdlQWxpZ25CeVByaW9yaXR5KHRoaXMuY29sU3R5bGVzLCBkZWZhdWx0cy5jZWxsKTtcbiAgICAgICAgICB0aGlzLmdyb3VwRm9vdGVyQ29uZmlncy5tZXJnZUFsaWduQnlQcmlvcml0eSh0aGlzLmNvbFN0eWxlcywgZGVmYXVsdHMuY2VsbCk7XG4gICAgICAgICAgdGhpcy5jZWxsQ29uZmlncy5tZXJnZUFsaWduQnlQcmlvcml0eSh0aGlzLmNvbFN0eWxlcywgZGVmYXVsdHMuY2VsbCk7XG4gICAgICAgICAgdGhpcy5mb290ZXJDb25maWdzLm1lcmdlQWxpZ25CeVByaW9yaXR5KHRoaXMuY29sU3R5bGVzLCBkZWZhdWx0cy5mb290ZXIpO1xuICAgICAgICB9IGJyZWFrO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5oZWFkZXJDb25maWdzLnVwZGF0ZUNsYXNlc0FycmF5KCk7XG4gICAgdGhpcy5ncm91cEhlYWRlckNvbmZpZ3MudXBkYXRlQ2xhc2VzQXJyYXkoKTtcbiAgICB0aGlzLmdyb3VwRm9vdGVyQ29uZmlncy51cGRhdGVDbGFzZXNBcnJheSgpO1xuICAgIHRoaXMuY2VsbENvbmZpZ3MudXBkYXRlQ2xhc2VzQXJyYXkoKTtcbiAgICB0aGlzLmZvb3RlckNvbmZpZ3MudXBkYXRlQ2xhc2VzQXJyYXkoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2Ugc29ydGluZyBkaXJlY3Rpb25cbiAgICovXG4gIHB1YmxpYyBjaGFuZ2VEaXJlY3Rpb24oKSB7XG4gICAgaWYgKHRoaXMuc29ydGluZ0RpcmVjdGlvbiA9PT0gU29ydGluZ0RpcmVjdGlvbi5hc2MpIHtcbiAgICAgIHRoaXMuc29ydGluZ0RpcmVjdGlvbiA9IFNvcnRpbmdEaXJlY3Rpb24uZGVzYztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zb3J0aW5nRGlyZWN0aW9uID0gU29ydGluZ0RpcmVjdGlvbi5hc2M7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHVwZGF0ZVZpc2liaWxpdHkodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9hdHRyaWJ1dGVzLnZpc2libGUgPSB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgX3BhcnNlQ29uZmlnKGNvbmZpZzogRnNMaXN0Q29sdW1uQ29uZmlnKSB7XG4gICAgdGhpcy5fYXR0cmlidXRlcyA9IGNvbmZpZy5hdHRyaWJ1dGVzO1xuXG4gICAgdGhpcy5oZWFkZXJUZW1wbGF0ZSA9IGNvbmZpZy5oZWFkZXJUZW1wbGF0ZTtcbiAgICB0aGlzLmdyb3VwSGVhZGVyVGVtcGxhdGUgPSBjb25maWcuZ3JvdXBIZWFkZXJUZW1wbGF0ZTtcbiAgICB0aGlzLmdyb3VwRm9vdGVyVGVtcGxhdGUgPSBjb25maWcuZ3JvdXBGb290ZXJUZW1wbGF0ZTtcbiAgICB0aGlzLmNlbGxUZW1wbGF0ZSA9IGNvbmZpZy5jZWxsVGVtcGxhdGU7XG4gICAgdGhpcy5mb290ZXJUZW1wbGF0ZSA9IGNvbmZpZy5mb290ZXJUZW1wbGF0ZTtcbiAgICB0aGlzLmhlYWRlckNvbmZpZ3MgPSBuZXcgU3R5bGVDb25maWcoY29uZmlnLmhlYWRlckNvbmZpZ3MpO1xuICAgIHRoaXMuZ3JvdXBIZWFkZXJDb25maWdzID0gbmV3IFN0eWxlQ29uZmlnKGNvbmZpZy5ncm91cEhlYWRlckNvbmZpZ3MpO1xuICAgIHRoaXMuZ3JvdXBGb290ZXJDb25maWdzID0gbmV3IFN0eWxlQ29uZmlnKGNvbmZpZy5ncm91cEZvb3RlckNvbmZpZ3MpO1xuICAgIHRoaXMuY2VsbENvbmZpZ3MgPSBuZXcgU3R5bGVDb25maWcoY29uZmlnLmNlbGxDb25maWdzKTtcbiAgICB0aGlzLmZvb3RlckNvbmZpZ3MgPSBuZXcgU3R5bGVDb25maWcoY29uZmlnLmZvb3RlckNvbmZpZ3MpO1xuICAgIHRoaXMuZXhwYW5kVHJpZ2dlciA9IGNvbmZpZy5leHBhbmRUcmlnZ2VyO1xuICB9XG59XG4iXX0=