@firestitch/list 12.13.0 → 12.13.2

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 (155) 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 +91 -91
  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 +177 -175
  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 +68 -68
  10. package/app/classes/selection-controller.d.ts +146 -146
  11. package/app/classes/sorting-controller.d.ts +64 -64
  12. package/app/components/body/body.component.d.ts +29 -29
  13. package/app/components/body/row/actions/actions.component.d.ts +34 -34
  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 +14 -14
  17. package/app/components/body/row/row.component.d.ts +80 -80
  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 +14 -14
  21. package/app/components/footer/footer.component.d.ts +16 -16
  22. package/app/components/head/head-cell/head-cell.component.d.ts +14 -14
  23. package/app/components/head/head.component.d.ts +47 -47
  24. package/app/components/list/list.component.d.ts +121 -120
  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 +90 -90
  35. package/app/directives/draggable-row/draggable-row.directive.d.ts +23 -23
  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/directives/heading/heading.directive.d.ts +5 -5
  43. package/app/directives/heading-container/heading-container.directive.d.ts +5 -5
  44. package/app/directives/index.d.ts +3 -3
  45. package/app/directives/subheading/subheading.directive.d.ts +5 -5
  46. package/app/enums/button-type.enum.d.ts +7 -7
  47. package/app/enums/page-change-type.enum.d.ts +4 -4
  48. package/app/enums/pagination-strategy.enum.d.ts +5 -5
  49. package/app/enums/row-type.enum.d.ts +6 -6
  50. package/app/enums/state.enum.d.ts +9 -9
  51. package/app/fs-list.module.d.ts +60 -60
  52. package/app/fs-list.providers.d.ts +3 -3
  53. package/app/interfaces/cellconfig.interface.d.ts +5 -5
  54. package/app/interfaces/column-config.interface.d.ts +2 -2
  55. package/app/interfaces/draggable-list.interface.d.ts +7 -7
  56. package/app/interfaces/external-params.interface.d.ts +13 -13
  57. package/app/interfaces/index.d.ts +3 -3
  58. package/app/interfaces/listconfig.interface.d.ts +257 -253
  59. package/app/interfaces/pagination.interface.d.ts +13 -13
  60. package/app/models/column-async-attribute.d.ts +5 -5
  61. package/app/models/column-attributes.d.ts +39 -39
  62. package/app/models/column.model.d.ts +59 -59
  63. package/app/models/row/base-row.d.ts +13 -13
  64. package/app/models/row/child-row.d.ts +12 -12
  65. package/app/models/row/group-footer-row.d.ts +10 -10
  66. package/app/models/row/group-row.d.ts +16 -16
  67. package/app/models/row/simple-row.d.ts +5 -5
  68. package/app/models/row-action.model.d.ts +29 -29
  69. package/app/models/row.d.ts +30 -30
  70. package/app/models/styleConfig.model.d.ts +31 -31
  71. package/app/pipes/action-label.d.ts +8 -8
  72. package/app/pipes/index.d.ts +1 -1
  73. package/app/services/group-expand-notifier.service.d.ts +11 -11
  74. package/bundles/firestitch-list.umd.js +6838 -6834
  75. package/bundles/firestitch-list.umd.js.map +1 -1
  76. package/esm2015/app/classes/actions-controller.js +55 -55
  77. package/esm2015/app/classes/columns-controller.js +205 -205
  78. package/esm2015/app/classes/data-controller.js +352 -352
  79. package/esm2015/app/classes/external-params-controller.js +153 -153
  80. package/esm2015/app/classes/index.js +3 -3
  81. package/esm2015/app/classes/list-controller.js +716 -716
  82. package/esm2015/app/classes/pagination-controller.js +460 -460
  83. package/esm2015/app/classes/persistance-controller.js +19 -19
  84. package/esm2015/app/classes/reorder-controller.js +182 -182
  85. package/esm2015/app/classes/selection-controller.js +458 -458
  86. package/esm2015/app/classes/sorting-controller.js +180 -180
  87. package/esm2015/app/components/body/body.component.js +67 -67
  88. package/esm2015/app/components/body/row/actions/actions.component.js +95 -95
  89. package/esm2015/app/components/body/row/cell/cell.component.js +107 -107
  90. package/esm2015/app/components/body/row/inline-action/inline-action.component.js +39 -39
  91. package/esm2015/app/components/body/row/menu-action/menu-action.component.js +35 -35
  92. package/esm2015/app/components/body/row/row.component.js +292 -292
  93. package/esm2015/app/components/customize-cols/customize-cols.component.js +72 -72
  94. package/esm2015/app/components/footer/footer-row/footer-cell/footer-cell.component.js +20 -20
  95. package/esm2015/app/components/footer/footer-row/footer-row.component.js +31 -31
  96. package/esm2015/app/components/footer/footer.component.js +34 -34
  97. package/esm2015/app/components/head/head-cell/head-cell.component.js +33 -33
  98. package/esm2015/app/components/head/head.component.js +104 -104
  99. package/esm2015/app/components/list/list.component.js +382 -378
  100. package/esm2015/app/components/loader/loader.component.js +47 -47
  101. package/esm2015/app/components/manage-saved-filters/manage-saved-filters.component.js +78 -78
  102. package/esm2015/app/components/pagination/pagination.component.js +44 -44
  103. package/esm2015/app/components/saved-filters/saved-filters.component.js +33 -33
  104. package/esm2015/app/components/status/status.component.js +72 -72
  105. package/esm2015/app/directives/cell/cell.directive.js +18 -18
  106. package/esm2015/app/directives/column/column.directive.js +111 -111
  107. package/esm2015/app/directives/content/content.directive.js +12 -12
  108. package/esm2015/app/directives/content-init/content-init.directive.js +21 -21
  109. package/esm2015/app/directives/draggable-list/draggable-list.directive.js +323 -323
  110. package/esm2015/app/directives/draggable-row/draggable-row.directive.js +80 -80
  111. package/esm2015/app/directives/empty-state/empty-state.directive.js +13 -13
  112. package/esm2015/app/directives/footer/footer.directive.js +18 -18
  113. package/esm2015/app/directives/group-expand-trigger/group-expand-trigger.directive.js +26 -26
  114. package/esm2015/app/directives/group-footer/group-footer.directive.js +13 -13
  115. package/esm2015/app/directives/group-header/group-header.directive.js +13 -13
  116. package/esm2015/app/directives/header/header.directive.js +18 -18
  117. package/esm2015/app/directives/heading/heading.directive.js +13 -13
  118. package/esm2015/app/directives/heading-container/heading-container.directive.js +13 -13
  119. package/esm2015/app/directives/index.js +4 -4
  120. package/esm2015/app/directives/subheading/subheading.directive.js +13 -13
  121. package/esm2015/app/enums/button-type.enum.js +9 -9
  122. package/esm2015/app/enums/page-change-type.enum.js +6 -6
  123. package/esm2015/app/enums/pagination-strategy.enum.js +7 -7
  124. package/esm2015/app/enums/row-type.enum.js +7 -7
  125. package/esm2015/app/enums/state.enum.js +11 -11
  126. package/esm2015/app/fs-list.module.js +244 -244
  127. package/esm2015/app/fs-list.providers.js +4 -4
  128. package/esm2015/app/interfaces/cellconfig.interface.js +2 -2
  129. package/esm2015/app/interfaces/column-config.interface.js +1 -1
  130. package/esm2015/app/interfaces/draggable-list.interface.js +2 -2
  131. package/esm2015/app/interfaces/external-params.interface.js +2 -2
  132. package/esm2015/app/interfaces/index.js +4 -4
  133. package/esm2015/app/interfaces/listconfig.interface.js +2 -2
  134. package/esm2015/app/interfaces/pagination.interface.js +2 -2
  135. package/esm2015/app/models/column-async-attribute.js +13 -13
  136. package/esm2015/app/models/column-attributes.js +130 -130
  137. package/esm2015/app/models/column.model.js +166 -166
  138. package/esm2015/app/models/row/base-row.js +23 -23
  139. package/esm2015/app/models/row/child-row.js +28 -28
  140. package/esm2015/app/models/row/group-footer-row.js +20 -20
  141. package/esm2015/app/models/row/group-row.js +44 -44
  142. package/esm2015/app/models/row/simple-row.js +10 -10
  143. package/esm2015/app/models/row-action.model.js +94 -94
  144. package/esm2015/app/models/row.js +80 -80
  145. package/esm2015/app/models/styleConfig.model.js +75 -75
  146. package/esm2015/app/pipes/action-label.js +16 -16
  147. package/esm2015/app/pipes/index.js +1 -1
  148. package/esm2015/app/services/group-expand-notifier.service.js +26 -26
  149. package/esm2015/firestitch-list.js +4 -4
  150. package/esm2015/public_api.js +45 -45
  151. package/fesm2015/firestitch-list.js +5619 -5615
  152. package/fesm2015/firestitch-list.js.map +1 -1
  153. package/firestitch-list.d.ts +5 -5
  154. package/package.json +1 -1
  155. package/public_api.d.ts +39 -39
@@ -1,96 +1,96 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, } from '@angular/core';
2
- import { Observable, Subject } from 'rxjs';
3
- import { take, takeUntil } from 'rxjs/operators';
4
- import { FsPrompt } from '@firestitch/prompt';
5
- import { Row } from '../../../../models/row';
6
- import { RowAction } from '../../../../models/row-action.model';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@firestitch/prompt";
9
- import * as i2 from "../inline-action/inline-action.component";
10
- import * as i3 from "@firestitch/menu";
11
- import * as i4 from "../menu-action/menu-action.component";
12
- import * as i5 from "@angular/material/icon";
13
- import * as i6 from "@angular/common";
14
- import * as i7 from "../../../../pipes/action-label";
15
- export class FsRowActionsComponent {
16
- constructor(_fsPrompt) {
17
- this._fsPrompt = _fsPrompt;
18
- this.restoreMode = false;
19
- this.rowActions = [];
20
- this.menuRowActions = [];
21
- this.inlineRowActions = [];
22
- this._destroy$ = new Subject();
23
- }
24
- actionClick(action, row, event, menuRef) {
25
- if (action.remove) {
26
- if (typeof action.remove === 'boolean') {
27
- this.removeAction(action, row.data, event, this.index);
28
- }
29
- else {
30
- this._fsPrompt.confirm({
31
- title: action.remove.title,
32
- template: action.remove.template,
33
- }).pipe(take(1), takeUntil(this._destroy$)).subscribe({
34
- next: () => {
35
- this.removeAction(action, row.data, event, this.index);
36
- },
37
- error: () => { },
38
- });
39
- }
40
- }
41
- else {
42
- action.click(row.data, event, this.index, menuRef);
43
- }
44
- }
45
- /**
46
- * Track By for improve change detection
47
- * @param index
48
- */
49
- trackByFn(index) {
50
- return index;
51
- }
52
- /**
53
- * Emit that some row must be removed
54
- * @param action
55
- * @param row
56
- * @param event
57
- * @param index
58
- */
59
- removeAction(action, row, event, index) {
60
- const removeObservable = action.click(row, event, index);
61
- if (removeObservable && removeObservable instanceof Observable) {
62
- removeObservable
63
- .pipe(take(1), takeUntil(this._destroy$))
64
- .subscribe(() => {
65
- this.rowRemoved.emit(row);
66
- });
67
- }
68
- }
69
- }
70
- FsRowActionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsRowActionsComponent, deps: [{ token: i1.FsPrompt }], target: i0.ɵɵFactoryTarget.Component });
71
- FsRowActionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsRowActionsComponent, selector: "fs-list-row-actions", inputs: { row: "row", index: "index", restoreMode: "restoreMode", rowActions: "rowActions", rowRemoved: "rowRemoved", menuRowActions: "menuRowActions", inlineRowActions: "inlineRowActions", restoreAction: "restoreAction" }, ngImport: i0, template: "<ng-container *ngIf=\"!restoreMode || (restoreMode && !restoreAction)\">\n <ng-container *ngFor=\"let action of inlineRowActions; trackBy: trackByFn\">\n <fs-list-row-inline-action \n class=\"row-inline-action row-inline-action-{{action.type}}\"\n [action]=\"action\"\n [ngClass]=\"{'mobile-hide': action.menu === undefined}\"\n (clicked)=\"actionClick(action, row, $event)\"\n (fileSelect)=\"action.fileConfig.select($event, row, index)\">\n </fs-list-row-inline-action>\n </ng-container>\n</ng-container>\n\n<!-- Menu -->\n<fs-menu \n class=\"row-menu-action\"\n *ngIf=\"menuRowActions.length || (restoreMode && restoreAction)\"\n #menuRef>\n <!-- Case when we have usual menu actions -->\n <ng-container *ngIf=\"!restoreMode || (restoreMode && !restoreAction)\">\n <ng-container *ngFor=\"let action of inlineRowActions; trackBy: trackByFn\">\n <ng-template \n class=\"hidden-mobile-menu-action\"\n fs-menu-item\n [link]=\"action.routerLink?.link\"\n [queryParams]=\"action.routerLink?.queryParams\"\n [target]=\"action.routerLink?.target\"\n [hidden]=\"action.menu !== undefined && !action.isShown\">\n <fs-list-row-menu-action\n [icon]=\"action.icon\"\n [label]=\"action.label\"\n [row]=\"row\"\n [file]=\"action.fileConfig\"\n (fileSelect)=\"action.fileConfig.select($event, row, index)\"\n (fileError)=\"action.fileConfig.error && action.fileConfig.error($event)\">\n </fs-list-row-menu-action>\n </ng-template>\n </ng-container>\n\n <ng-container *ngFor=\"let action of menuRowActions; trackBy: trackByFn\">\n <ng-container *ngIf=\"action.isGroup else simpleMenuItem\">\n <fs-menu-group [label]=\"action.label | actionLabel:row\">\n <ng-container *ngFor=\"let subAction of action.rowActions\">\n <ng-template \n fs-menu-item\n [link]=\"subAction.routerLink?.link\"\n [queryParams]=\"subAction.routerLink?.queryParams\"\n [target]=\"subAction.routerLink?.target\"\n [hidden]=\"!subAction.isShown\"\n (click)=\"actionClick(subAction, row, $event, menuRef);\">\n <fs-list-row-menu-action\n [icon]=\"subAction.icon\"\n [label]=\"subAction.label\"\n [row]=\"row\"\n [file]=\"subAction.fileConfig\"\n (fileSelect)=\"subAction.fileConfig.select($event, row, index)\"\n (fileError)=\"subAction.fileConfig.error && subAction.fileConfig.error($event)\">\n </fs-list-row-menu-action>\n </ng-template>\n </ng-container>\n </fs-menu-group>\n </ng-container>\n <ng-template #simpleMenuItem>\n <ng-template \n fs-menu-item\n [link]=\"action.routerLink?.link\"\n [queryParams]=\"action.routerLink?.queryParams\"\n [target]=\"action.routerLink?.target\"\n [hidden]=\"!action.isShown\"\n (click)=\"actionClick(action, row, $event, menuRef);\">\n <fs-list-row-menu-action\n [icon]=\"action.icon\"\n [label]=\"action.label\"\n [row]=\"row\"\n [file]=\"action.fileConfig\"\n (fileSelect)=\"action.fileConfig.select($event, row, index)\"\n (fileError)=\"action.fileConfig.error && action.fileConfig.error($event)\">\n </fs-list-row-menu-action>\n </ng-template>\n </ng-template>\n </ng-container>\n </ng-container>\n\n <!-- Case when we have restore mode enabled and must hide menu actions -->\n <ng-container *ngIf=\"restoreMode && restoreAction\">\n <ng-template fs-menu-item (click)=\"actionClick(restoreAction, row, $event, menuRef)\">\n <mat-icon *ngIf=\"restoreAction.icon\">{{restoreAction.icon}}</mat-icon>\n {{restoreAction.label | actionLabel:row}}\n </ng-template>\n </ng-container>\n</fs-menu>\n", components: [{ type: i2.FsRowInlineActionComponent, selector: "fs-list-row-inline-action", inputs: ["action"], outputs: ["clicked", "fileSelect"] }, { type: i3.FsMenuComponent, selector: "fs-menu", inputs: ["class", "buttonClass"], outputs: ["opened", "closed"] }, { type: i4.FsRowMenuActionComponent, selector: "fs-list-row-menu-action", inputs: ["row", "icon", "label", "file"], outputs: ["fileSelect", "fileError"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.FsMenuItemDirective, selector: "fs-menu-group,[fs-menu-item]" }], pipes: { "actionLabel": i7.ActionLabelPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
72
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsRowActionsComponent, decorators: [{
73
- type: Component,
74
- args: [{
75
- selector: 'fs-list-row-actions',
76
- templateUrl: './actions.component.html',
77
- changeDetection: ChangeDetectionStrategy.OnPush,
78
- }]
79
- }], ctorParameters: function () { return [{ type: i1.FsPrompt }]; }, propDecorators: { row: [{
80
- type: Input
81
- }], index: [{
82
- type: Input
83
- }], restoreMode: [{
84
- type: Input
85
- }], rowActions: [{
86
- type: Input
87
- }], rowRemoved: [{
88
- type: Input
89
- }], menuRowActions: [{
90
- type: Input
91
- }], inlineRowActions: [{
92
- type: Input
93
- }], restoreAction: [{
94
- type: Input
95
- }] } });
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, } from '@angular/core';
2
+ import { Observable, Subject } from 'rxjs';
3
+ import { take, takeUntil } from 'rxjs/operators';
4
+ import { FsPrompt } from '@firestitch/prompt';
5
+ import { Row } from '../../../../models/row';
6
+ import { RowAction } from '../../../../models/row-action.model';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@firestitch/prompt";
9
+ import * as i2 from "../inline-action/inline-action.component";
10
+ import * as i3 from "@firestitch/menu";
11
+ import * as i4 from "../menu-action/menu-action.component";
12
+ import * as i5 from "@angular/material/icon";
13
+ import * as i6 from "@angular/common";
14
+ import * as i7 from "../../../../pipes/action-label";
15
+ export class FsRowActionsComponent {
16
+ constructor(_fsPrompt) {
17
+ this._fsPrompt = _fsPrompt;
18
+ this.restoreMode = false;
19
+ this.rowActions = [];
20
+ this.menuRowActions = [];
21
+ this.inlineRowActions = [];
22
+ this._destroy$ = new Subject();
23
+ }
24
+ actionClick(action, row, event, menuRef) {
25
+ if (action.remove) {
26
+ if (typeof action.remove === 'boolean') {
27
+ this.removeAction(action, row.data, event, this.index);
28
+ }
29
+ else {
30
+ this._fsPrompt.confirm({
31
+ title: action.remove.title,
32
+ template: action.remove.template,
33
+ }).pipe(take(1), takeUntil(this._destroy$)).subscribe({
34
+ next: () => {
35
+ this.removeAction(action, row.data, event, this.index);
36
+ },
37
+ error: () => { },
38
+ });
39
+ }
40
+ }
41
+ else {
42
+ action.click(row.data, event, this.index, menuRef);
43
+ }
44
+ }
45
+ /**
46
+ * Track By for improve change detection
47
+ * @param index
48
+ */
49
+ trackByFn(index) {
50
+ return index;
51
+ }
52
+ /**
53
+ * Emit that some row must be removed
54
+ * @param action
55
+ * @param row
56
+ * @param event
57
+ * @param index
58
+ */
59
+ removeAction(action, row, event, index) {
60
+ const removeObservable = action.click(row, event, index);
61
+ if (removeObservable && removeObservable instanceof Observable) {
62
+ removeObservable
63
+ .pipe(take(1), takeUntil(this._destroy$))
64
+ .subscribe(() => {
65
+ this.rowRemoved.emit(row);
66
+ });
67
+ }
68
+ }
69
+ }
70
+ FsRowActionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsRowActionsComponent, deps: [{ token: i1.FsPrompt }], target: i0.ɵɵFactoryTarget.Component });
71
+ FsRowActionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsRowActionsComponent, selector: "fs-list-row-actions", inputs: { row: "row", index: "index", restoreMode: "restoreMode", rowActions: "rowActions", rowRemoved: "rowRemoved", menuRowActions: "menuRowActions", inlineRowActions: "inlineRowActions", restoreAction: "restoreAction" }, ngImport: i0, template: "<ng-container *ngIf=\"!restoreMode || (restoreMode && !restoreAction)\">\n <ng-container *ngFor=\"let action of inlineRowActions; trackBy: trackByFn\">\n <fs-list-row-inline-action \n class=\"row-inline-action row-inline-action-{{action.type}}\"\n [action]=\"action\"\n [ngClass]=\"{'mobile-hide': action.menu === undefined}\"\n (clicked)=\"actionClick(action, row, $event)\"\n (fileSelect)=\"action.fileConfig.select($event, row, index)\">\n </fs-list-row-inline-action>\n </ng-container>\n</ng-container>\n\n<!-- Menu -->\n<fs-menu \n class=\"row-menu-action\"\n *ngIf=\"menuRowActions.length || (restoreMode && restoreAction)\"\n #menuRef>\n <!-- Case when we have usual menu actions -->\n <ng-container *ngIf=\"!restoreMode || (restoreMode && !restoreAction)\">\n <ng-container *ngFor=\"let action of inlineRowActions; trackBy: trackByFn\">\n <ng-template \n class=\"hidden-mobile-menu-action\"\n fs-menu-item\n [link]=\"action.routerLink?.link\"\n [queryParams]=\"action.routerLink?.queryParams\"\n [target]=\"action.routerLink?.target\"\n [hidden]=\"action.menu !== undefined && !action.isShown\">\n <fs-list-row-menu-action\n [icon]=\"action.icon\"\n [label]=\"action.label\"\n [row]=\"row\"\n [file]=\"action.fileConfig\"\n (fileSelect)=\"action.fileConfig.select($event, row, index)\"\n (fileError)=\"action.fileConfig.error && action.fileConfig.error($event)\">\n </fs-list-row-menu-action>\n </ng-template>\n </ng-container>\n\n <ng-container *ngFor=\"let action of menuRowActions; trackBy: trackByFn\">\n <ng-container *ngIf=\"action.isGroup else simpleMenuItem\">\n <fs-menu-group [label]=\"action.label | actionLabel:row\">\n <ng-container *ngFor=\"let subAction of action.rowActions\">\n <ng-template \n fs-menu-item\n [link]=\"subAction.routerLink?.link\"\n [queryParams]=\"subAction.routerLink?.queryParams\"\n [target]=\"subAction.routerLink?.target\"\n [hidden]=\"!subAction.isShown\"\n (click)=\"actionClick(subAction, row, $event, menuRef);\">\n <fs-list-row-menu-action\n [icon]=\"subAction.icon\"\n [label]=\"subAction.label\"\n [row]=\"row\"\n [file]=\"subAction.fileConfig\"\n (fileSelect)=\"subAction.fileConfig.select($event, row, index)\"\n (fileError)=\"subAction.fileConfig.error && subAction.fileConfig.error($event)\">\n </fs-list-row-menu-action>\n </ng-template>\n </ng-container>\n </fs-menu-group>\n </ng-container>\n <ng-template #simpleMenuItem>\n <ng-template \n fs-menu-item\n [link]=\"action.routerLink?.link\"\n [queryParams]=\"action.routerLink?.queryParams\"\n [target]=\"action.routerLink?.target\"\n [hidden]=\"!action.isShown\"\n (click)=\"actionClick(action, row, $event, menuRef);\">\n <fs-list-row-menu-action\n [icon]=\"action.icon\"\n [label]=\"action.label\"\n [row]=\"row\"\n [file]=\"action.fileConfig\"\n (fileSelect)=\"action.fileConfig.select($event, row, index)\"\n (fileError)=\"action.fileConfig.error && action.fileConfig.error($event)\">\n </fs-list-row-menu-action>\n </ng-template>\n </ng-template>\n </ng-container>\n </ng-container>\n\n <!-- Case when we have restore mode enabled and must hide menu actions -->\n <ng-container *ngIf=\"restoreMode && restoreAction\">\n <ng-template fs-menu-item (click)=\"actionClick(restoreAction, row, $event, menuRef)\">\n <mat-icon *ngIf=\"restoreAction.icon\">{{restoreAction.icon}}</mat-icon>\n {{restoreAction.label | actionLabel:row}}\n </ng-template>\n </ng-container>\n</fs-menu>\n", components: [{ type: i2.FsRowInlineActionComponent, selector: "fs-list-row-inline-action", inputs: ["action"], outputs: ["clicked", "fileSelect"] }, { type: i3.FsMenuComponent, selector: "fs-menu", inputs: ["class", "buttonClass"], outputs: ["opened", "closed"] }, { type: i4.FsRowMenuActionComponent, selector: "fs-list-row-menu-action", inputs: ["row", "icon", "label", "file"], outputs: ["fileSelect", "fileError"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.FsMenuItemDirective, selector: "fs-menu-group,[fs-menu-item]" }], pipes: { "actionLabel": i7.ActionLabelPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsRowActionsComponent, decorators: [{
73
+ type: Component,
74
+ args: [{
75
+ selector: 'fs-list-row-actions',
76
+ templateUrl: './actions.component.html',
77
+ changeDetection: ChangeDetectionStrategy.OnPush,
78
+ }]
79
+ }], ctorParameters: function () { return [{ type: i1.FsPrompt }]; }, propDecorators: { row: [{
80
+ type: Input
81
+ }], index: [{
82
+ type: Input
83
+ }], restoreMode: [{
84
+ type: Input
85
+ }], rowActions: [{
86
+ type: Input
87
+ }], rowRemoved: [{
88
+ type: Input
89
+ }], menuRowActions: [{
90
+ type: Input
91
+ }], inlineRowActions: [{
92
+ type: Input
93
+ }], restoreAction: [{
94
+ type: Input
95
+ }] } });
96
96
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvYm9keS9yb3cvYWN0aW9ucy9hY3Rpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9ib2R5L3Jvdy9hY3Rpb25zL2FjdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU5QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7Ozs7QUFRaEUsTUFBTSxPQUFPLHFCQUFxQjtJQTRCaEMsWUFDVSxTQUFtQjtRQUFuQixjQUFTLEdBQVQsU0FBUyxDQUFVO1FBcEJ0QixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUdwQixlQUFVLEdBQWdCLEVBQUUsQ0FBQztRQU03QixtQkFBYyxHQUFnQixFQUFFLENBQUM7UUFHakMscUJBQWdCLEdBQWdCLEVBQUUsQ0FBQztRQUtsQyxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUkvQixDQUFDO0lBRUcsV0FBVyxDQUFDLE1BQWlCLEVBQUUsR0FBUSxFQUFFLEtBQVUsRUFBRSxPQUFRO1FBQ2xFLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUNqQixJQUFJLE9BQU8sTUFBTSxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUU7Z0JBQ3RDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN4RDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztvQkFDckIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSztvQkFDMUIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUTtpQkFDakMsQ0FBQyxDQUFDLElBQUksQ0FDTCxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDMUIsQ0FBQyxTQUFTLENBQUM7b0JBQ1YsSUFBSSxFQUFFLEdBQUcsRUFBRTt3QkFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3pELENBQUM7b0JBQ0QsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFFLENBQUM7aUJBQ2hCLENBQUMsQ0FBQTthQUNIO1NBQ0Y7YUFBTTtZQUNMLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztTQUNwRDtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSSxTQUFTLENBQUMsS0FBSztRQUNwQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxZQUFZLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSztRQUM1QyxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV6RCxJQUFJLGdCQUFnQixJQUFJLGdCQUFnQixZQUFZLFVBQVUsRUFBRTtZQUM5RCxnQkFBZ0I7aUJBQ2IsSUFBSSxDQUNILElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUMxQjtpQkFDQSxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzVCLENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDSCxDQUFDOzttSEFuRlUscUJBQXFCO3VHQUFyQixxQkFBcUIsMlJDckJsQyw4OEhBMEZBOzRGRHJFYSxxQkFBcUI7a0JBTGpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsV0FBVyxFQUFFLDBCQUEwQjtvQkFDdkMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOytGQUlRLEdBQUc7c0JBRFQsS0FBSztnQkFJQyxLQUFLO3NCQURYLEtBQUs7Z0JBSUMsV0FBVztzQkFEakIsS0FBSztnQkFJQyxVQUFVO3NCQURoQixLQUFLO2dCQUlDLFVBQVU7c0JBRGhCLEtBQUs7Z0JBSUMsY0FBYztzQkFEcEIsS0FBSztnQkFJQyxnQkFBZ0I7c0JBRHRCLEtBQUs7Z0JBSUMsYUFBYTtzQkFEbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEZzUHJvbXB0IH0gZnJvbSAnQGZpcmVzdGl0Y2gvcHJvbXB0JztcblxuaW1wb3J0IHsgUm93IH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL3Jvdyc7XG5pbXBvcnQgeyBSb3dBY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvcm93LWFjdGlvbi5tb2RlbCc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnMtbGlzdC1yb3ctYWN0aW9ucycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hY3Rpb25zLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZzUm93QWN0aW9uc0NvbXBvbmVudCB7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJvdzogUm93O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpbmRleDogbnVtYmVyO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByZXN0b3JlTW9kZSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByb3dBY3Rpb25zOiBSb3dBY3Rpb25bXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByb3dSZW1vdmVkOiBFdmVudEVtaXR0ZXI8YW55PjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbWVudVJvd0FjdGlvbnM6IFJvd0FjdGlvbltdID0gW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIGlubGluZVJvd0FjdGlvbnM6IFJvd0FjdGlvbltdID0gW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJlc3RvcmVBY3Rpb246IFJvd0FjdGlvbjtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZnNQcm9tcHQ6IEZzUHJvbXB0LFxuICApIHt9XG5cbiAgcHVibGljIGFjdGlvbkNsaWNrKGFjdGlvbjogUm93QWN0aW9uLCByb3c6IGFueSwgZXZlbnQ6IGFueSwgbWVudVJlZj8pIHtcbiAgICBpZiAoYWN0aW9uLnJlbW92ZSkge1xuICAgICAgaWYgKHR5cGVvZiBhY3Rpb24ucmVtb3ZlID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVBY3Rpb24oYWN0aW9uLCByb3cuZGF0YSwgZXZlbnQsIHRoaXMuaW5kZXgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fZnNQcm9tcHQuY29uZmlybSh7XG4gICAgICAgICAgdGl0bGU6IGFjdGlvbi5yZW1vdmUudGl0bGUsXG4gICAgICAgICAgdGVtcGxhdGU6IGFjdGlvbi5yZW1vdmUudGVtcGxhdGUsXG4gICAgICAgIH0pLnBpcGUoXG4gICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICApLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVBY3Rpb24oYWN0aW9uLCByb3cuZGF0YSwgZXZlbnQsIHRoaXMuaW5kZXgpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3I6ICgpID0+IHt9LFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBhY3Rpb24uY2xpY2socm93LmRhdGEsIGV2ZW50LCB0aGlzLmluZGV4LCBtZW51UmVmKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVHJhY2sgQnkgZm9yIGltcHJvdmUgY2hhbmdlIGRldGVjdGlvblxuICAgKiBAcGFyYW0gaW5kZXhcbiAgICovXG4gIHB1YmxpYyB0cmFja0J5Rm4oaW5kZXgpIHtcbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cblxuICAvKipcbiAgICogRW1pdCB0aGF0IHNvbWUgcm93IG11c3QgYmUgcmVtb3ZlZFxuICAgKiBAcGFyYW0gYWN0aW9uXG4gICAqIEBwYXJhbSByb3dcbiAgICogQHBhcmFtIGV2ZW50XG4gICAqIEBwYXJhbSBpbmRleFxuICAgKi9cbiAgcHJpdmF0ZSByZW1vdmVBY3Rpb24oYWN0aW9uLCByb3csIGV2ZW50LCBpbmRleCkge1xuICAgIGNvbnN0IHJlbW92ZU9ic2VydmFibGUgPSBhY3Rpb24uY2xpY2socm93LCBldmVudCwgaW5kZXgpO1xuXG4gICAgaWYgKHJlbW92ZU9ic2VydmFibGUgJiYgcmVtb3ZlT2JzZXJ2YWJsZSBpbnN0YW5jZW9mIE9ic2VydmFibGUpIHtcbiAgICAgIHJlbW92ZU9ic2VydmFibGVcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucm93UmVtb3ZlZC5lbWl0KHJvdyk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFyZXN0b3JlTW9kZSB8fCAocmVzdG9yZU1vZGUgJiYgIXJlc3RvcmVBY3Rpb24pXCI+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBpbmxpbmVSb3dBY3Rpb25zOyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICA8ZnMtbGlzdC1yb3ctaW5saW5lLWFjdGlvbiBcbiAgICAgIGNsYXNzPVwicm93LWlubGluZS1hY3Rpb24gcm93LWlubGluZS1hY3Rpb24te3thY3Rpb24udHlwZX19XCJcbiAgICAgIFthY3Rpb25dPVwiYWN0aW9uXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsnbW9iaWxlLWhpZGUnOiBhY3Rpb24ubWVudSA9PT0gdW5kZWZpbmVkfVwiXG4gICAgICAoY2xpY2tlZCk9XCJhY3Rpb25DbGljayhhY3Rpb24sIHJvdywgJGV2ZW50KVwiXG4gICAgICAoZmlsZVNlbGVjdCk9XCJhY3Rpb24uZmlsZUNvbmZpZy5zZWxlY3QoJGV2ZW50LCByb3csIGluZGV4KVwiPlxuICAgIDwvZnMtbGlzdC1yb3ctaW5saW5lLWFjdGlvbj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cblxuPCEtLSBNZW51IC0tPlxuPGZzLW1lbnUgXG4gICAgY2xhc3M9XCJyb3ctbWVudS1hY3Rpb25cIlxuICAgICpuZ0lmPVwibWVudVJvd0FjdGlvbnMubGVuZ3RoIHx8IChyZXN0b3JlTW9kZSAmJiByZXN0b3JlQWN0aW9uKVwiXG4gICAgI21lbnVSZWY+XG4gIDwhLS0gQ2FzZSB3aGVuIHdlIGhhdmUgdXN1YWwgbWVudSBhY3Rpb25zIC0tPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXJlc3RvcmVNb2RlIHx8IChyZXN0b3JlTW9kZSAmJiAhcmVzdG9yZUFjdGlvbilcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgaW5saW5lUm93QWN0aW9uczsgdHJhY2tCeTogdHJhY2tCeUZuXCI+XG4gICAgICA8bmctdGVtcGxhdGUgXG4gICAgICAgICAgY2xhc3M9XCJoaWRkZW4tbW9iaWxlLW1lbnUtYWN0aW9uXCJcbiAgICAgICAgICBmcy1tZW51LWl0ZW1cbiAgICAgICAgICBbbGlua109XCJhY3Rpb24ucm91dGVyTGluaz8ubGlua1wiXG4gICAgICAgICAgW3F1ZXJ5UGFyYW1zXT1cImFjdGlvbi5yb3V0ZXJMaW5rPy5xdWVyeVBhcmFtc1wiXG4gICAgICAgICAgW3RhcmdldF09XCJhY3Rpb24ucm91dGVyTGluaz8udGFyZ2V0XCJcbiAgICAgICAgICBbaGlkZGVuXT1cImFjdGlvbi5tZW51ICE9PSB1bmRlZmluZWQgJiYgIWFjdGlvbi5pc1Nob3duXCI+XG4gICAgICAgIDxmcy1saXN0LXJvdy1tZW51LWFjdGlvblxuICAgICAgICAgIFtpY29uXT1cImFjdGlvbi5pY29uXCJcbiAgICAgICAgICBbbGFiZWxdPVwiYWN0aW9uLmxhYmVsXCJcbiAgICAgICAgICBbcm93XT1cInJvd1wiXG4gICAgICAgICAgW2ZpbGVdPVwiYWN0aW9uLmZpbGVDb25maWdcIlxuICAgICAgICAgIChmaWxlU2VsZWN0KT1cImFjdGlvbi5maWxlQ29uZmlnLnNlbGVjdCgkZXZlbnQsIHJvdywgaW5kZXgpXCJcbiAgICAgICAgICAoZmlsZUVycm9yKT1cImFjdGlvbi5maWxlQ29uZmlnLmVycm9yICYmIGFjdGlvbi5maWxlQ29uZmlnLmVycm9yKCRldmVudClcIj5cbiAgICAgICAgPC9mcy1saXN0LXJvdy1tZW51LWFjdGlvbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgbWVudVJvd0FjdGlvbnM7IHRyYWNrQnk6IHRyYWNrQnlGblwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGlvbi5pc0dyb3VwIGVsc2Ugc2ltcGxlTWVudUl0ZW1cIj5cbiAgICAgICAgPGZzLW1lbnUtZ3JvdXAgW2xhYmVsXT1cImFjdGlvbi5sYWJlbCB8IGFjdGlvbkxhYmVsOnJvd1wiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHN1YkFjdGlvbiBvZiBhY3Rpb24ucm93QWN0aW9uc1wiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFxuICAgICAgICAgICAgICAgIGZzLW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgIFtsaW5rXT1cInN1YkFjdGlvbi5yb3V0ZXJMaW5rPy5saW5rXCJcbiAgICAgICAgICAgICAgICBbcXVlcnlQYXJhbXNdPVwic3ViQWN0aW9uLnJvdXRlckxpbms/LnF1ZXJ5UGFyYW1zXCJcbiAgICAgICAgICAgICAgICBbdGFyZ2V0XT1cInN1YkFjdGlvbi5yb3V0ZXJMaW5rPy50YXJnZXRcIlxuICAgICAgICAgICAgICAgIFtoaWRkZW5dPVwiIXN1YkFjdGlvbi5pc1Nob3duXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWN0aW9uQ2xpY2soc3ViQWN0aW9uLCByb3csICRldmVudCwgbWVudVJlZik7XCI+XG4gICAgICAgICAgICAgIDxmcy1saXN0LXJvdy1tZW51LWFjdGlvblxuICAgICAgICAgICAgICAgIFtpY29uXT1cInN1YkFjdGlvbi5pY29uXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwic3ViQWN0aW9uLmxhYmVsXCJcbiAgICAgICAgICAgICAgICBbcm93XT1cInJvd1wiXG4gICAgICAgICAgICAgICAgW2ZpbGVdPVwic3ViQWN0aW9uLmZpbGVDb25maWdcIlxuICAgICAgICAgICAgICAgIChmaWxlU2VsZWN0KT1cInN1YkFjdGlvbi5maWxlQ29uZmlnLnNlbGVjdCgkZXZlbnQsIHJvdywgaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAoZmlsZUVycm9yKT1cInN1YkFjdGlvbi5maWxlQ29uZmlnLmVycm9yICYmIHN1YkFjdGlvbi5maWxlQ29uZmlnLmVycm9yKCRldmVudClcIj5cbiAgICAgICAgICAgICAgPC9mcy1saXN0LXJvdy1tZW51LWFjdGlvbj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZnMtbWVudS1ncm91cD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNzaW1wbGVNZW51SXRlbT5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFxuICAgICAgICAgICAgZnMtbWVudS1pdGVtXG4gICAgICAgICAgICBbbGlua109XCJhY3Rpb24ucm91dGVyTGluaz8ubGlua1wiXG4gICAgICAgICAgICBbcXVlcnlQYXJhbXNdPVwiYWN0aW9uLnJvdXRlckxpbms/LnF1ZXJ5UGFyYW1zXCJcbiAgICAgICAgICAgIFt0YXJnZXRdPVwiYWN0aW9uLnJvdXRlckxpbms/LnRhcmdldFwiXG4gICAgICAgICAgICBbaGlkZGVuXT1cIiFhY3Rpb24uaXNTaG93blwiXG4gICAgICAgICAgICAoY2xpY2spPVwiYWN0aW9uQ2xpY2soYWN0aW9uLCByb3csICRldmVudCwgbWVudVJlZik7XCI+XG4gICAgICAgICAgPGZzLWxpc3Qtcm93LW1lbnUtYWN0aW9uXG4gICAgICAgICAgICBbaWNvbl09XCJhY3Rpb24uaWNvblwiXG4gICAgICAgICAgICBbbGFiZWxdPVwiYWN0aW9uLmxhYmVsXCJcbiAgICAgICAgICAgIFtyb3ddPVwicm93XCJcbiAgICAgICAgICAgIFtmaWxlXT1cImFjdGlvbi5maWxlQ29uZmlnXCJcbiAgICAgICAgICAgIChmaWxlU2VsZWN0KT1cImFjdGlvbi5maWxlQ29uZmlnLnNlbGVjdCgkZXZlbnQsIHJvdywgaW5kZXgpXCJcbiAgICAgICAgICAgIChmaWxlRXJyb3IpPVwiYWN0aW9uLmZpbGVDb25maWcuZXJyb3IgJiYgYWN0aW9uLmZpbGVDb25maWcuZXJyb3IoJGV2ZW50KVwiPlxuICAgICAgICAgIDwvZnMtbGlzdC1yb3ctbWVudS1hY3Rpb24+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8IS0tIENhc2Ugd2hlbiB3ZSBoYXZlIHJlc3RvcmUgbW9kZSBlbmFibGVkIGFuZCBtdXN0IGhpZGUgbWVudSBhY3Rpb25zIC0tPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVzdG9yZU1vZGUgJiYgcmVzdG9yZUFjdGlvblwiPlxuICAgIDxuZy10ZW1wbGF0ZSBmcy1tZW51LWl0ZW0gKGNsaWNrKT1cImFjdGlvbkNsaWNrKHJlc3RvcmVBY3Rpb24sIHJvdywgJGV2ZW50LCBtZW51UmVmKVwiPlxuICAgICAgPG1hdC1pY29uICpuZ0lmPVwicmVzdG9yZUFjdGlvbi5pY29uXCI+e3tyZXN0b3JlQWN0aW9uLmljb259fTwvbWF0LWljb24+XG4gICAgICB7e3Jlc3RvcmVBY3Rpb24ubGFiZWwgfCBhY3Rpb25MYWJlbDpyb3d9fVxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvbmctY29udGFpbmVyPlxuPC9mcy1tZW51PlxuIl19
@@ -1,107 +1,107 @@
1
- import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';
2
- import { Subject } from 'rxjs';
3
- import { takeUntil } from 'rxjs/operators';
4
- import { Column } from '../../../../models/column.model';
5
- import { Row } from '../../../../models/row';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/common";
8
- export class FsCellComponent {
9
- constructor() {
10
- this.isColl = true;
11
- this.role = 'gridcell';
12
- this.cellContext = {};
13
- this._destroy$ = new Subject();
14
- }
15
- ngOnInit() {
16
- this._listenGroupOpen();
17
- }
18
- ngOnChanges(changes) {
19
- var _a, _b, _c, _d;
20
- if (((_a = changes.rowIndex) === null || _a === void 0 ? void 0 : _a.currentValue) !== ((_b = changes.rowIndex) === null || _b === void 0 ? void 0 : _b.previousValue)) {
21
- this.cellContext.index = this.rowIndex;
22
- }
23
- if (((_c = changes.column) === null || _c === void 0 ? void 0 : _c.currentValue) !== ((_d = changes.column) === null || _d === void 0 ? void 0 : _d.previousValue)) {
24
- this._initCellContext();
25
- this._initCellTemplate();
26
- }
27
- }
28
- ngOnDestroy() {
29
- this._destroy$.next();
30
- this._destroy$.complete();
31
- }
32
- _initCellContext() {
33
- this.cellContext.index = this.rowIndex;
34
- if (this.row) {
35
- if (this.row.isGroup) {
36
- this.cellContext.groupIndex = this.row.index;
37
- }
38
- else if (this.row.isChild || this.row.isGroupFooter) {
39
- this.cellContext.groupIndex = this.row.index;
40
- this.cellContext.groupRow = this.row.parent.data;
41
- this.cellContext.group = this.row.parent.data;
42
- }
43
- if (this.row.isGroup) {
44
- this.cellContext.group = this.row.data;
45
- this.cellContext.groupChildren = this.row.children
46
- .map((child) => child.data);
47
- }
48
- else if (this.row.isGroupFooter) {
49
- this.cellContext.group = this.row.parent.data;
50
- this.cellContext.groupIndex = this.row.index;
51
- this.cellContext.groupChildren = this.row.parent.children
52
- .map((child) => child.data);
53
- }
54
- }
55
- this.cellContext.column = this.column;
56
- if (this.row) {
57
- this.cellContext.$implicit = this.row.data;
58
- this.cellContext.row = this.row.data;
59
- this.cellContext.value = this.row.data[this.column.name];
60
- this.cellContext.expanded = this.row.expanded;
61
- }
62
- }
63
- _initCellTemplate() {
64
- var _a, _b;
65
- if ((_a = this.row) === null || _a === void 0 ? void 0 : _a.isGroup) {
66
- this.cellTemplate = this.column.groupHeaderTemplate || this.column.cellTemplate;
67
- }
68
- else if ((_b = this.row) === null || _b === void 0 ? void 0 : _b.isGroupFooter) {
69
- this.cellTemplate = this.column.groupFooterTemplate || this.column.cellTemplate;
70
- }
71
- else {
72
- this.cellTemplate = this.column.cellTemplate;
73
- }
74
- }
75
- _listenGroupOpen() {
76
- if (this.row && this.row.isGroup) {
77
- this.row.expanded$
78
- .pipe(takeUntil(this._destroy$))
79
- .subscribe((status) => {
80
- this.cellContext.expanded = status;
81
- });
82
- }
83
- }
84
- }
85
- FsCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
86
- FsCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsCellComponent, selector: "[fs-cell]", inputs: { column: "column", row: "row", rowIndex: "rowIndex" }, host: { properties: { "class.fs-list-col": "this.isColl", "attr.role": "this.role" } }, usesOnChanges: true, ngImport: i0, template: "<ng-template [ngTemplateOutlet]=\"cellTemplate || defaultCellTemplate\" [ngTemplateOutletContext]=\"cellContext\"></ng-template>\n\n<ng-template #defaultCellTemplate let-value=\"value\">\n {{value}}\n</ng-template>\n", directives: [{ type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
87
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsCellComponent, decorators: [{
88
- type: Component,
89
- args: [{
90
- selector: '[fs-cell]',
91
- templateUrl: 'cell.component.html',
92
- changeDetection: ChangeDetectionStrategy.OnPush
93
- }]
94
- }], ctorParameters: function () { return []; }, propDecorators: { isColl: [{
95
- type: HostBinding,
96
- args: ['class.fs-list-col']
97
- }], role: [{
98
- type: HostBinding,
99
- args: ['attr.role']
100
- }], column: [{
101
- type: Input
102
- }], row: [{
103
- type: Input
104
- }], rowIndex: [{
105
- type: Input
106
- }] } });
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvYm9keS9yb3cvY2VsbC9jZWxsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9ib2R5L3Jvdy9jZWxsL2NlbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsV0FBVyxFQUNYLEtBQUssRUFHTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDekQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFRN0MsTUFBTSxPQUFPLGVBQWU7SUFjMUI7UUFia0MsV0FBTSxHQUFHLElBQUksQ0FBQztRQUV0QixTQUFJLEdBQUcsVUFBVSxDQUFDO1FBTXJDLGdCQUFXLEdBQVEsRUFBRSxDQUFDO1FBR3JCLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRXpCLENBQUM7SUFFVCxRQUFRO1FBQ2IsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLFdBQVcsQ0FBQyxPQUFzQjs7UUFDdkMsSUFBSSxDQUFBLE1BQUEsT0FBTyxDQUFDLFFBQVEsMENBQUUsWUFBWSxPQUFLLE1BQUEsT0FBTyxDQUFDLFFBQVEsMENBQUUsYUFBYSxDQUFBLEVBQUU7WUFDdEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUN4QztRQUVELElBQUksQ0FBQSxNQUFBLE9BQU8sQ0FBQyxN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biAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSxcbiAgT25Jbml0LCBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQ29sdW1uIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2NvbHVtbi5tb2RlbCc7XG5pbXBvcnQgeyBSb3cgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvcm93JztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdbZnMtY2VsbF0nLFxuICB0ZW1wbGF0ZVVybDogJ2NlbGwuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBGc0NlbGxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mcy1saXN0LWNvbCcpIGlzQ29sbCA9IHRydWU7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKSByb2xlID0gJ2dyaWRjZWxsJztcblxuICBASW5wdXQoKSBwdWJsaWMgY29sdW1uOiBDb2x1bW47XG4gIEBJbnB1dCgpIHB1YmxpYyByb3c6IFJvdztcbiAgQElucHV0KCkgcHVibGljIHJvd0luZGV4OiBudW1iZXI7XG5cbiAgcHVibGljIGNlbGxDb250ZXh0OiBhbnkgPSB7fTtcbiAgcHVibGljIGNlbGxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLl9saXN0ZW5Hcm91cE9wZW4oKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMucm93SW5kZXg/LmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlcy5yb3dJbmRleD8ucHJldmlvdXNWYWx1ZSkge1xuICAgICAgdGhpcy5jZWxsQ29udGV4dC5pbmRleCA9IHRoaXMucm93SW5kZXg7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMuY29sdW1uPy5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXMuY29sdW1uPy5wcmV2aW91c1ZhbHVlKSB7XG4gICAgICB0aGlzLl9pbml0Q2VsbENvbnRleHQoKTtcbiAgICAgIHRoaXMuX2luaXRDZWxsVGVtcGxhdGUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIF9pbml0Q2VsbENvbnRleHQoKSB7XG4gICAgdGhpcy5jZWxsQ29udGV4dC5pbmRleCA9IHRoaXMucm93SW5kZXg7XG5cbiAgICBpZiAodGhpcy5yb3cpIHtcbiAgICAgIGlmICh0aGlzLnJvdy5pc0dyb3VwKSB7XG4gICAgICAgIHRoaXMuY2VsbENvbnRleHQuZ3JvdXBJbmRleCA9IHRoaXMucm93LmluZGV4O1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnJvdy5pc0NoaWxkIHx8IHRoaXMucm93LmlzR3JvdXBGb290ZXIpIHtcbiAgICAgICAgdGhpcy5jZWxsQ29udGV4dC5ncm91cEluZGV4ID0gdGhpcy5yb3cuaW5kZXg7XG4gICAgICAgIHRoaXMuY2VsbENvbnRleHQuZ3JvdXBSb3cgPSB0aGlzLnJvdy5wYXJlbnQuZGF0YTtcbiAgICAgICAgdGhpcy5jZWxsQ29udGV4dC5ncm91cCA9IHRoaXMucm93LnBhcmVudC5kYXRhO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5yb3cuaXNHcm91cCkge1xuICAgICAgICB0aGlzLmNlbGxDb250ZXh0Lmdyb3VwID0gdGhpcy5yb3cuZGF0YTtcbiAgICAgICAgdGhpcy5jZWxsQ29udGV4dC5ncm91cENoaWxkcmVuID0gdGhpcy5yb3cuY2hpbGRyZW5cbiAgICAgICAgIC5tYXAoKGNoaWxkKSA9PiBjaGlsZC5kYXRhKTtcbiAgICAgIH0gZWxzZSBpZih0aGlzLnJvdy5pc0dyb3VwRm9vdGVyKSB7XG4gICAgICAgIHRoaXMuY2VsbENvbnRleHQuZ3JvdXAgPSB0aGlzLnJvdy5wYXJlbnQuZGF0YTtcbiAgICAgICAgdGhpcy5jZWxsQ29udGV4dC5ncm91cEluZGV4ID0gdGhpcy5yb3cuaW5kZXg7XG4gICAgICAgIHRoaXMuY2VsbENvbnRleHQuZ3JvdXBDaGlsZHJlbiA9IHRoaXMucm93LnBhcmVudC5jaGlsZHJlblxuICAgICAgICAgIC5tYXAoKGNoaWxkKSA9PiBjaGlsZC5kYXRhKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmNlbGxDb250ZXh0LmNvbHVtbiA9IHRoaXMuY29sdW1uO1xuICAgIGlmICh0aGlzLnJvdykge1xuICAgICAgdGhpcy5jZWxsQ29udGV4dC4kaW1wbGljaXQgPSB0aGlzLnJvdy5kYXRhO1xuICAgICAgdGhpcy5jZWxsQ29udGV4dC5yb3cgPSB0aGlzLnJvdy5kYXRhO1xuICAgICAgdGhpcy5jZWxsQ29udGV4dC52YWx1ZSA9IHRoaXMucm93LmRhdGFbdGhpcy5jb2x1bW4ubmFtZV07XG4gICAgICB0aGlzLmNlbGxDb250ZXh0LmV4cGFuZGVkID0gdGhpcy5yb3cuZXhwYW5kZWQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdENlbGxUZW1wbGF0ZSgpIHtcbiAgICBpZiAodGhpcy5yb3c/LmlzR3JvdXApIHtcbiAgICAgIHRoaXMuY2VsbFRlbXBsYXRlID0gdGhpcy5jb2x1bW4uZ3JvdXBIZWFkZXJUZW1wbGF0ZSB8fCB0aGlzLmNvbHVtbi5jZWxsVGVtcGxhdGU7XG4gICAgfSBlbHNlIGlmICh0aGlzLnJvdz8uaXNHcm91cEZvb3Rlcikge1xuICAgICAgdGhpcy5jZWxsVGVtcGxhdGUgPSB0aGlzLmNvbHVtbi5ncm91cEZvb3RlclRlbXBsYXRlIHx8IHRoaXMuY29sdW1uLmNlbGxUZW1wbGF0ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jZWxsVGVtcGxhdGUgPSB0aGlzLmNvbHVtbi5jZWxsVGVtcGxhdGU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfbGlzdGVuR3JvdXBPcGVuKCkge1xuICAgIGlmICh0aGlzLnJvdyAmJiB0aGlzLnJvdy5pc0dyb3VwKSB7XG4gICAgICB0aGlzLnJvdy5leHBhbmRlZCRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChzdGF0dXMpID0+IHtcbiAgICAgICAgICB0aGlzLmNlbGxDb250ZXh0LmV4cGFuZGVkID0gc3RhdHVzO1xuICAgICAgICB9KVxuICAgIH1cbiAgfVxufVxuIiwiPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNlbGxUZW1wbGF0ZSB8fCBkZWZhdWx0Q2VsbFRlbXBsYXRlXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cImNlbGxDb250ZXh0XCI+PC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0Q2VsbFRlbXBsYXRlIGxldC12YWx1ZT1cInZhbHVlXCI+XG4gIHt7dmFsdWV9fVxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
1
+ import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { takeUntil } from 'rxjs/operators';
4
+ import { Column } from '../../../../models/column.model';
5
+ import { Row } from '../../../../models/row';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ export class FsCellComponent {
9
+ constructor() {
10
+ this.isColl = true;
11
+ this.role = 'gridcell';
12
+ this.cellContext = {};
13
+ this._destroy$ = new Subject();
14
+ }
15
+ ngOnInit() {
16
+ this._listenGroupOpen();
17
+ }
18
+ ngOnChanges(changes) {
19
+ var _a, _b, _c, _d;
20
+ if (((_a = changes.rowIndex) === null || _a === void 0 ? void 0 : _a.currentValue) !== ((_b = changes.rowIndex) === null || _b === void 0 ? void 0 : _b.previousValue)) {
21
+ this.cellContext.index = this.rowIndex;
22
+ }
23
+ if (((_c = changes.column) === null || _c === void 0 ? void 0 : _c.currentValue) !== ((_d = changes.column) === null || _d === void 0 ? void 0 : _d.previousValue)) {
24
+ this._initCellContext();
25
+ this._initCellTemplate();
26
+ }
27
+ }
28
+ ngOnDestroy() {
29
+ this._destroy$.next();
30
+ this._destroy$.complete();
31
+ }
32
+ _initCellContext() {
33
+ this.cellContext.index = this.rowIndex;
34
+ if (this.row) {
35
+ if (this.row.isGroup) {
36
+ this.cellContext.groupIndex = this.row.index;
37
+ }
38
+ else if (this.row.isChild || this.row.isGroupFooter) {
39
+ this.cellContext.groupIndex = this.row.index;
40
+ this.cellContext.groupRow = this.row.parent.data;
41
+ this.cellContext.group = this.row.parent.data;
42
+ }
43
+ if (this.row.isGroup) {
44
+ this.cellContext.group = this.row.data;
45
+ this.cellContext.groupChildren = this.row.children
46
+ .map((child) => child.data);
47
+ }
48
+ else if (this.row.isGroupFooter) {
49
+ this.cellContext.group = this.row.parent.data;
50
+ this.cellContext.groupIndex = this.row.index;
51
+ this.cellContext.groupChildren = this.row.parent.children
52
+ .map((child) => child.data);
53
+ }
54
+ }
55
+ this.cellContext.column = this.column;
56
+ if (this.row) {
57
+ this.cellContext.$implicit = this.row.data;
58
+ this.cellContext.row = this.row.data;
59
+ this.cellContext.value = this.row.data[this.column.name];
60
+ this.cellContext.expanded = this.row.expanded;
61
+ }
62
+ }
63
+ _initCellTemplate() {
64
+ var _a, _b;
65
+ if ((_a = this.row) === null || _a === void 0 ? void 0 : _a.isGroup) {
66
+ this.cellTemplate = this.column.groupHeaderTemplate || this.column.cellTemplate;
67
+ }
68
+ else if ((_b = this.row) === null || _b === void 0 ? void 0 : _b.isGroupFooter) {
69
+ this.cellTemplate = this.column.groupFooterTemplate || this.column.cellTemplate;
70
+ }
71
+ else {
72
+ this.cellTemplate = this.column.cellTemplate;
73
+ }
74
+ }
75
+ _listenGroupOpen() {
76
+ if (this.row && this.row.isGroup) {
77
+ this.row.expanded$
78
+ .pipe(takeUntil(this._destroy$))
79
+ .subscribe((status) => {
80
+ this.cellContext.expanded = status;
81
+ });
82
+ }
83
+ }
84
+ }
85
+ FsCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
86
+ FsCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsCellComponent, selector: "[fs-cell]", inputs: { column: "column", row: "row", rowIndex: "rowIndex" }, host: { properties: { "class.fs-list-col": "this.isColl", "attr.role": "this.role" } }, usesOnChanges: true, ngImport: i0, template: "<ng-template [ngTemplateOutlet]=\"cellTemplate || defaultCellTemplate\" [ngTemplateOutletContext]=\"cellContext\"></ng-template>\r\n\r\n<ng-template #defaultCellTemplate let-value=\"value\">\r\n {{value}}\r\n</ng-template>\r\n", directives: [{ type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
87
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsCellComponent, decorators: [{
88
+ type: Component,
89
+ args: [{
90
+ selector: '[fs-cell]',
91
+ templateUrl: 'cell.component.html',
92
+ changeDetection: ChangeDetectionStrategy.OnPush
93
+ }]
94
+ }], ctorParameters: function () { return []; }, propDecorators: { isColl: [{
95
+ type: HostBinding,
96
+ args: ['class.fs-list-col']
97
+ }], role: [{
98
+ type: HostBinding,
99
+ args: ['attr.role']
100
+ }], column: [{
101
+ type: Input
102
+ }], row: [{
103
+ type: Input
104
+ }], rowIndex: [{
105
+ type: Input
106
+ }] } });
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvYm9keS9yb3cvY2VsbC9jZWxsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9ib2R5L3Jvdy9jZWxsL2NlbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsV0FBVyxFQUNYLEtBQUssRUFHTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDekQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFRN0MsTUFBTSxPQUFPLGVBQWU7SUFjMUI7UUFia0MsV0FBTSxHQUFHLElBQUksQ0FBQztRQUV0QixTQUFJLEdBQUcsVUFBVSxDQUFDO1FBTXJDLGdCQUFXLEdBQVEsRUFBRSxDQUFDO1FBR3JCLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRXpCLENBQUM7SUFFVCxRQUFRO1FBQ2IsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLFdBQVcsQ0FBQyxPQUFzQjs7UUFDdkMsSUFBSSxDQUFBLE1BQUEsT0FBTyxDQUFDLFFBQVEsMENBQUUsWUFBWSxPQUFLLE1BQUEsT0FBTyxDQUFDLFFBQVEsMENBQUUsYUFBYSxDQUFBLEVBQUU7WUFDdEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUN4QztRQUVELElBQUksQ0FBQSxNQUFBLE9BQU8sQ0FBQyxN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biAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSxcbiAgT25Jbml0LCBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQ29sdW1uIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2NvbHVtbi5tb2RlbCc7XG5pbXBvcnQgeyBSb3cgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvcm93JztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdbZnMtY2VsbF0nLFxuICB0ZW1wbGF0ZVVybDogJ2NlbGwuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBGc0NlbGxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mcy1saXN0LWNvbCcpIGlzQ29sbCA9IHRydWU7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKSByb2xlID0gJ2dyaWRjZWxsJztcblxuICBASW5wdXQoKSBwdWJsaWMgY29sdW1uOiBDb2x1bW47XG4gIEBJbnB1dCgpIHB1YmxpYyByb3c6IFJvdztcbiAgQElucHV0KCkgcHVibGljIHJvd0luZGV4OiBudW1iZXI7XG5cbiAgcHVibGljIGNlbGxDb250ZXh0OiBhbnkgPSB7fTtcbiAgcHVibGljIGNlbGxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLl9saXN0ZW5Hcm91cE9wZW4oKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMucm93SW5kZXg/LmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlcy5yb3dJbmRleD8ucHJldmlvdXNWYWx1ZSkge1xuICAgICAgdGhpcy5jZWxsQ29udGV4dC5pbmRleCA9IHRoaXMucm93SW5kZXg7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMuY29sdW1uPy5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXMuY29sdW1uPy5wcmV2aW91c1ZhbHVlKSB7XG4gICAgICB0aGlzLl9pbml0Q2VsbENvbnRleHQoKTtcbiAgICAgIHRoaXMuX2luaXRDZWxsVGVtcGxhdGUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIF9pbml0Q2VsbENvbnRleHQoKSB7XG4gICAgdGhpcy5jZWxsQ29udGV4dC5pbmRleCA9IHRoaXMucm93SW5kZXg7XG5cbiAgICBpZiAodGhpcy5yb3cpIHtcbiAgICAgIGlmICh0aGlzLnJvdy5pc0dyb3VwKSB7XG4gICAgICAgIHRoaXMuY2VsbENvbnRleHQuZ3JvdXBJbmRleCA9IHRoaXMucm93LmluZGV4O1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnJvdy5pc0NoaWxkIHx8IHRoaXMucm93LmlzR3JvdXBGb290ZXIpIHtcbiAgICAgICAgdGhpcy5jZWxsQ29udGV4dC5ncm91cEluZGV4ID0gdGhpcy5yb3cuaW5kZXg7XG4gICAgICAgIHRoaXMuY2VsbENvbnRleHQuZ3JvdXBSb3cgPSB0aGlzLnJvdy5wYXJlbnQuZGF0YTtcbiAgICAgICAgdGhpcy5jZWxsQ29udGV4dC5ncm91cCA9IHRoaXMucm93LnBhcmVudC5kYXRhO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5yb3cuaXNHcm91cCkge1xuICAgICAgICB0aGlzLmNlbGxDb250ZXh0Lmdyb3VwID0gdGhpcy5yb3cuZGF0YTtcbiAgICAgICAgdGhpcy5jZWxsQ29udGV4dC5ncm91cENoaWxkcmVuID0gdGhpcy5yb3cuY2hpbGRyZW5cbiAgICAgICAgIC5tYXAoKGNoaWxkKSA9PiBjaGlsZC5kYXRhKTtcbiAgICAgIH0gZWxzZSBpZih0aGlzLnJvdy5pc0dyb3VwRm9vdGVyKSB7XG4gICAgICAgIHRoaXMuY2VsbENvbnRleHQuZ3JvdXAgPSB0aGlzLnJvdy5wYXJlbnQuZGF0YTtcbiAgICAgICAgdGhpcy5jZWxsQ29udGV4dC5ncm91cEluZGV4ID0gdGhpcy5yb3cuaW5kZXg7XG4gICAgICAgIHRoaXMuY2VsbENvbnRleHQuZ3JvdXBDaGlsZHJlbiA9IHRoaXMucm93LnBhcmVudC5jaGlsZHJlblxuICAgICAgICAgIC5tYXAoKGNoaWxkKSA9PiBjaGlsZC5kYXRhKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmNlbGxDb250ZXh0LmNvbHVtbiA9IHRoaXMuY29sdW1uO1xuICAgIGlmICh0aGlzLnJvdykge1xuICAgICAgdGhpcy5jZWxsQ29udGV4dC4kaW1wbGljaXQgPSB0aGlzLnJvdy5kYXRhO1xuICAgICAgdGhpcy5jZWxsQ29udGV4dC5yb3cgPSB0aGlzLnJvdy5kYXRhO1xuICAgICAgdGhpcy5jZWxsQ29udGV4dC52YWx1ZSA9IHRoaXMucm93LmRhdGFbdGhpcy5jb2x1bW4ubmFtZV07XG4gICAgICB0aGlzLmNlbGxDb250ZXh0LmV4cGFuZGVkID0gdGhpcy5yb3cuZXhwYW5kZWQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdENlbGxUZW1wbGF0ZSgpIHtcbiAgICBpZiAodGhpcy5yb3c/LmlzR3JvdXApIHtcbiAgICAgIHRoaXMuY2VsbFRlbXBsYXRlID0gdGhpcy5jb2x1bW4uZ3JvdXBIZWFkZXJUZW1wbGF0ZSB8fCB0aGlzLmNvbHVtbi5jZWxsVGVtcGxhdGU7XG4gICAgfSBlbHNlIGlmICh0aGlzLnJvdz8uaXNHcm91cEZvb3Rlcikge1xuICAgICAgdGhpcy5jZWxsVGVtcGxhdGUgPSB0aGlzLmNvbHVtbi5ncm91cEZvb3RlclRlbXBsYXRlIHx8IHRoaXMuY29sdW1uLmNlbGxUZW1wbGF0ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jZWxsVGVtcGxhdGUgPSB0aGlzLmNvbHVtbi5jZWxsVGVtcGxhdGU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfbGlzdGVuR3JvdXBPcGVuKCkge1xuICAgIGlmICh0aGlzLnJvdyAmJiB0aGlzLnJvdy5pc0dyb3VwKSB7XG4gICAgICB0aGlzLnJvdy5leHBhbmRlZCRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChzdGF0dXMpID0+IHtcbiAgICAgICAgICB0aGlzLmNlbGxDb250ZXh0LmV4cGFuZGVkID0gc3RhdHVzO1xuICAgICAgICB9KVxuICAgIH1cbiAgfVxufVxuIiwiPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNlbGxUZW1wbGF0ZSB8fCBkZWZhdWx0Q2VsbFRlbXBsYXRlXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cImNlbGxDb250ZXh0XCI+PC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdENlbGxUZW1wbGF0ZSBsZXQtdmFsdWU9XCJ2YWx1ZVwiPlxyXG4gIHt7dmFsdWV9fVxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=