@flywheel-io/vision 0.5.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/README.md +1 -19
  2. package/assets/fonts/Flywheel-Vision-Icons.svg +239 -0
  3. package/assets/fonts/{flywheel.eot → Flywheel-Vision-Icons.ttf} +0 -0
  4. package/assets/fonts/{flywheel.ttf → Flywheel-Vision-Icons.woff} +0 -0
  5. package/components/button/button.component.d.ts +3 -0
  6. package/components/button/button.module.d.ts +7 -0
  7. package/components/button-group/button-group.component.d.ts +3 -0
  8. package/components/button-group/button-group.module.d.ts +5 -0
  9. package/components/dialog/choice-dialog.component.d.ts +11 -5
  10. package/components/dialog/confirm-dialog.component.d.ts +3 -0
  11. package/components/dialog/dialog.module.d.ts +14 -0
  12. package/components/dialog/dialog.service.d.ts +3 -0
  13. package/components/dialog/error-dialog.component.d.ts +3 -0
  14. package/components/dialog/portal-dialog.component.d.ts +3 -0
  15. package/components/icon/icon.component.d.ts +5 -0
  16. package/components/icon/icon.module.d.ts +8 -0
  17. package/components/notification/notification/notification.component.d.ts +3 -0
  18. package/components/notification/notification-container/notification-container.component.d.ts +3 -0
  19. package/components/notification/notification.module.d.ts +11 -0
  20. package/components/notification/notification.service.d.ts +3 -0
  21. package/components/popover/popover-trigger.component.d.ts +3 -0
  22. package/components/popover/popover-trigger.directive.d.ts +3 -0
  23. package/components/popover/popover.component.d.ts +3 -0
  24. package/components/popover/popover.module.d.ts +8 -0
  25. package/components/shared/pipes/pipes.module.d.ts +6 -0
  26. package/components/shared/pipes/translate.pipe.d.ts +3 -0
  27. package/components/shared/pipes/trusthtml.pipe.d.ts +3 -0
  28. package/components/shared/translation.service.d.ts +3 -0
  29. package/components/table/table.component.d.ts +3 -0
  30. package/components/table/table.module.d.ts +12 -0
  31. package/elements/README.md +20 -0
  32. package/elements/flywheel-io-vision-elements.d.ts +1 -0
  33. package/elements/package.json +5 -6
  34. package/esm2020/components/button/button.component.mjs +32 -0
  35. package/esm2020/components/button/button.module.mjs +33 -0
  36. package/esm2020/components/button-group/button-group.component.mjs +25 -0
  37. package/esm2020/components/button-group/button-group.module.mjs +23 -0
  38. package/esm2020/components/dialog/choice-dialog.component.mjs +90 -0
  39. package/esm2020/components/dialog/confirm-dialog.component.mjs +57 -0
  40. package/{esm2015/components/dialog/dialog.module.js → esm2020/components/dialog/dialog.module.mjs} +58 -31
  41. package/esm2020/components/dialog/dialog.service.mjs +72 -0
  42. package/esm2020/components/dialog/error-dialog.component.mjs +45 -0
  43. package/esm2020/components/dialog/portal-dialog.component.mjs +112 -0
  44. package/esm2020/components/icon/icon.component.mjs +19 -0
  45. package/esm2020/components/icon/icon.module.mjs +26 -0
  46. package/esm2020/components/notification/notification/notification.component.mjs +69 -0
  47. package/{esm2015/components/notification/notification/notification.model.js → esm2020/components/notification/notification/notification.model.mjs} +0 -0
  48. package/esm2020/components/notification/notification-container/notification-container.component.mjs +86 -0
  49. package/{esm2015/components/notification/notification-timer.service.js → esm2020/components/notification/notification-timer.service.mjs} +0 -0
  50. package/esm2020/components/notification/notification.module.mjs +56 -0
  51. package/{esm2015/components/notification/notification.service.js → esm2020/components/notification/notification.service.mjs} +9 -7
  52. package/esm2020/components/popover/popover-trigger.component.mjs +56 -0
  53. package/esm2020/components/popover/popover-trigger.directive.mjs +133 -0
  54. package/esm2020/components/popover/popover.component.mjs +29 -0
  55. package/esm2020/components/popover/popover.module.mjs +46 -0
  56. package/esm2020/components/shared/pipes/pipes.module.mjs +36 -0
  57. package/esm2020/components/shared/pipes/translate.pipe.mjs +39 -0
  58. package/esm2020/components/shared/pipes/trusthtml.pipe.mjs +21 -0
  59. package/esm2020/components/shared/translation.service.mjs +25 -0
  60. package/esm2020/components/table/table.component.mjs +179 -0
  61. package/esm2020/components/table/table.module.mjs +56 -0
  62. package/esm2020/elements/elements.mjs +61 -0
  63. package/{esm2015/elements/flywheel-io-vision-elements.js → esm2020/elements/flywheel-io-vision-elements.mjs} +0 -0
  64. package/{esm2015/elements/polyfills.js → esm2020/elements/polyfills.mjs} +0 -0
  65. package/{esm2015/elements/public-api.js → esm2020/elements/public-api.mjs} +0 -0
  66. package/esm2020/flywheel-io-vision.mjs +5 -0
  67. package/esm2020/public-api.mjs +25 -0
  68. package/fesm2015/{flywheel-io-vision-elements.js → flywheel-io-vision-elements.mjs} +19 -14
  69. package/fesm2015/flywheel-io-vision-elements.mjs.map +1 -0
  70. package/fesm2015/flywheel-io-vision.mjs +1402 -0
  71. package/fesm2015/flywheel-io-vision.mjs.map +1 -0
  72. package/fesm2020/flywheel-io-vision-elements.mjs +85 -0
  73. package/fesm2020/flywheel-io-vision-elements.mjs.map +1 -0
  74. package/fesm2020/flywheel-io-vision.mjs +1392 -0
  75. package/fesm2020/flywheel-io-vision.mjs.map +1 -0
  76. package/flywheel-io-vision.d.ts +1 -4
  77. package/package.json +43 -19
  78. package/public-api.d.ts +2 -0
  79. package/scss/atoms/ghost.scss +30 -0
  80. package/scss/config/theme.scss +6 -6
  81. package/scss/icons/_icon-font-face.scss +5 -6
  82. package/scss/icons/_icon-glyphs.scss +96 -16
  83. package/scss/material/overrides.scss +6 -1
  84. package/styles.css +274 -202
  85. package/styles.scss +8 -9
  86. package/assets/fonts/flywheel.svg +0 -101
  87. package/assets/fonts/flywheel.woff +0 -0
  88. package/bundles/flywheel-io-vision-elements.umd.js +0 -425
  89. package/bundles/flywheel-io-vision-elements.umd.js.map +0 -1
  90. package/bundles/flywheel-io-vision-elements.umd.min.js +0 -2
  91. package/bundles/flywheel-io-vision-elements.umd.min.js.map +0 -1
  92. package/bundles/flywheel-io-vision.umd.js +0 -1578
  93. package/bundles/flywheel-io-vision.umd.js.map +0 -1
  94. package/bundles/flywheel-io-vision.umd.min.js +0 -2
  95. package/bundles/flywheel-io-vision.umd.min.js.map +0 -1
  96. package/elements/flywheel-io-vision-elements.metadata.json +0 -1
  97. package/esm2015/components/button/button.component.js +0 -29
  98. package/esm2015/components/button/button.module.js +0 -24
  99. package/esm2015/components/button-group/button-group.component.js +0 -27
  100. package/esm2015/components/button-group/button-group.module.js +0 -18
  101. package/esm2015/components/dialog/choice-dialog.component.js +0 -52
  102. package/esm2015/components/dialog/confirm-dialog.component.js +0 -40
  103. package/esm2015/components/dialog/dialog.service.js +0 -69
  104. package/esm2015/components/dialog/error-dialog.component.js +0 -32
  105. package/esm2015/components/dialog/portal-dialog.component.js +0 -88
  106. package/esm2015/components/notification/notification/notification.component.js +0 -73
  107. package/esm2015/components/notification/notification-container/notification-container.component.js +0 -89
  108. package/esm2015/components/notification/notification.module.js +0 -37
  109. package/esm2015/components/popover/popover-trigger.component.js +0 -49
  110. package/esm2015/components/popover/popover-trigger.directive.js +0 -134
  111. package/esm2015/components/popover/popover.component.js +0 -23
  112. package/esm2015/components/popover/popover.module.js +0 -33
  113. package/esm2015/components/shared/pipes/pipes.module.js +0 -24
  114. package/esm2015/components/shared/pipes/translate.pipe.js +0 -40
  115. package/esm2015/components/shared/pipes/trusthtml.pipe.js +0 -20
  116. package/esm2015/components/shared/translation.service.js +0 -22
  117. package/esm2015/components/table/table.component.js +0 -165
  118. package/esm2015/components/table/table.module.js +0 -35
  119. package/esm2015/elements/elements.js +0 -56
  120. package/esm2015/flywheel-io-vision.js +0 -9
  121. package/esm2015/public-api.js +0 -23
  122. package/fesm2015/flywheel-io-vision-elements.js.map +0 -1
  123. package/fesm2015/flywheel-io-vision.js +0 -1168
  124. package/fesm2015/flywheel-io-vision.js.map +0 -1
  125. package/flywheel-io-vision.metadata.json +0 -1
@@ -1,1578 +0,0 @@
1
- (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@angular/material/button'), require('@angular/material/dialog'), require('@angular/cdk/portal'), require('@angular/material/icon'), require('rxjs'), require('rxjs/operators'), require('@angular/platform-browser'), require('@angular/cdk/overlay'), require('@angular/forms'), require('@angular/material/paginator'), require('@angular/material/sort'), require('@angular/material/table'), require('@angular/material/input'), require('@angular/material/select')) :
3
- typeof define === 'function' && define.amd ? define('@flywheel-io/vision', ['exports', '@angular/core', '@angular/common', '@angular/material/button', '@angular/material/dialog', '@angular/cdk/portal', '@angular/material/icon', 'rxjs', 'rxjs/operators', '@angular/platform-browser', '@angular/cdk/overlay', '@angular/forms', '@angular/material/paginator', '@angular/material/sort', '@angular/material/table', '@angular/material/input', '@angular/material/select'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global['flywheel-io'] = global['flywheel-io'] || {}, global['flywheel-io'].vision = {}), global.ng.core, global.ng.common, global.ng.material.button, global.ng.material.dialog, global.ng.cdk.portal, global.ng.material.icon, global.rxjs, global.rxjs.operators, global.ng.platformBrowser, global.ng.cdk.overlay, global.ng.forms, global.ng.material.paginator, global.ng.material.sort, global.ng.material.table, global.ng.material.input, global.ng.material.select));
5
- }(this, (function (exports, i0, common, button, dialog, portal, icon, rxjs, operators, platformBrowser, overlay, forms, paginator, sort, table, input, select) { 'use strict';
6
-
7
- var FwButtonGroupComponent = /** @class */ (function () {
8
- function FwButtonGroupComponent() {
9
- this.layout = 'basic';
10
- this.size = 'medium';
11
- }
12
- return FwButtonGroupComponent;
13
- }());
14
- FwButtonGroupComponent.decorators = [
15
- { type: i0.Component, args: [{
16
- host: {
17
- 'class': 'fw-button-group',
18
- '[class.small]': 'size === "small"',
19
- '[class.medium]': 'size === "medium"',
20
- '[class.large]': 'size === "large"',
21
- '[class.compact]': 'layout === "compact"',
22
- },
23
- selector: 'fw-button-group',
24
- template: "<ng-content></ng-content>",
25
- encapsulation: i0.ViewEncapsulation.None,
26
- styles: ["fw-button-group.fw-button-group{border-radius:4px;display:inline-flex;align-items:stretch}fw-button-group.fw-button-group.compact button{line-height:24px;height:24px}fw-button-group.fw-button-group.small button{font-size:12px}fw-button-group.fw-button-group.medium button{font-size:14px}fw-button-group.fw-button-group.large button{font-size:18px}fw-button-group.fw-button-group button{min-width:0;margin:0!important;border-radius:0}fw-button-group.fw-button-group>button:first-of-type,fw-button-group.fw-button-group>fw-button:first-of-type>button{border-top-left-radius:4px;border-bottom-left-radius:4px}fw-button-group.fw-button-group>button:last-of-type,fw-button-group.fw-button-group>fw-button:last-of-type>button{border-top-right-radius:4px;border-bottom-right-radius:4px}fw-button-group.fw-button-group>button.mat-stroked-button,fw-button-group.fw-button-group>button.mat-stroked-button+button.mat-stroke-button,fw-button-group.fw-button-group>fw-button[ng-reflect-type=stroked]+fw-button[ng-reflect-type=stroked]>button,fw-button-group.fw-button-group>fw-button[ng-reflect-type=stroked]>button,fw-button-group.fw-button-group>fw-button[type=stroked]+fw-button[type=stroked]>button,fw-button-group.fw-button-group>fw-button[type=stroked]>button{border-right-width:0}fw-button-group.fw-button-group>button.mat-stroked-button:last-of-type,fw-button-group.fw-button-group>fw-button[ng-reflect-type=stroked]:last-of-type>button,fw-button-group.fw-button-group>fw-button[type=stroked]:last-of-type>button{border-right-width:1px!important}fw-button-group.fw-button-group>button:not(.mat-stroked-button)+button.mat-stroked-button,fw-button-group.fw-button-group>fw-button:not([ng-reflect-type=stroked])+fw-button[ng-reflect-type=stroked]>button,fw-button-group.fw-button-group>fw-button:not([type=stroked])+fw-button[type=stroked]>button{border-left-width:0}"]
27
- },] }
28
- ];
29
- FwButtonGroupComponent.propDecorators = {
30
- layout: [{ type: i0.Input }],
31
- size: [{ type: i0.Input }]
32
- };
33
-
34
- var FwButtonGroupModule = /** @class */ (function () {
35
- function FwButtonGroupModule() {
36
- }
37
- return FwButtonGroupModule;
38
- }());
39
- FwButtonGroupModule.decorators = [
40
- { type: i0.NgModule, args: [{
41
- exports: [
42
- FwButtonGroupComponent,
43
- ],
44
- declarations: [
45
- FwButtonGroupComponent,
46
- ],
47
- entryComponents: [
48
- FwButtonGroupComponent,
49
- ]
50
- },] }
51
- ];
52
-
53
- var FwButtonComponent = /** @class */ (function () {
54
- function FwButtonComponent() {
55
- this.layout = 'basic';
56
- this.size = 'medium';
57
- this.type = 'basic';
58
- }
59
- return FwButtonComponent;
60
- }());
61
- FwButtonComponent.decorators = [
62
- { type: i0.Component, args: [{
63
- host: {
64
- 'class': 'fw-button',
65
- '[class.small]': 'size === "small"',
66
- '[class.medium]': 'size === "medium"',
67
- '[class.large]': 'size === "large"',
68
- '[class.compact]': 'layout === "compact"',
69
- },
70
- selector: 'fw-button',
71
- template: "<ng-container [ngSwitch]=\"type\">\n <button *ngSwitchCase=\"'raised'\" mat-raised-button [color]=\"color\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </button>\n <button *ngSwitchCase=\"'stroked'\" mat-stroked-button [color]=\"color\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </button>\n <button *ngSwitchCase=\"'flat'\" mat-flat-button [color]=\"color\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </button>\n <button *ngSwitchDefault mat-button [color]=\"color\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </button>\n</ng-container>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n",
72
- styles: [":host.compact>button{line-height:24px}:host.small{font-size:12px}:host.medium{font-size:14px}:host.large{font-size:18px}button{font-size:inherit}"]
73
- },] }
74
- ];
75
- FwButtonComponent.propDecorators = {
76
- color: [{ type: i0.Input }],
77
- layout: [{ type: i0.Input }],
78
- size: [{ type: i0.Input }],
79
- type: [{ type: i0.Input }]
80
- };
81
-
82
- var FwButtonModule = /** @class */ (function () {
83
- function FwButtonModule() {
84
- }
85
- return FwButtonModule;
86
- }());
87
- FwButtonModule.decorators = [
88
- { type: i0.NgModule, args: [{
89
- imports: [
90
- common.CommonModule,
91
- button.MatButtonModule,
92
- ],
93
- exports: [
94
- FwButtonComponent,
95
- ],
96
- declarations: [
97
- FwButtonComponent,
98
- ],
99
- entryComponents: [
100
- FwButtonComponent,
101
- ],
102
- },] }
103
- ];
104
-
105
- var FwChoiceDialog = /** @class */ (function () {
106
- function FwChoiceDialog(data) {
107
- this.data = data;
108
- this.alignActions = this.data.alignActions
109
- ? this.data.alignActions === 'start'
110
- ? null
111
- : this.data.alignActions
112
- : 'center';
113
- this.choices = this.data.choices;
114
- this.content = this.data.content;
115
- this.title = this.data.title;
116
- }
117
- FwChoiceDialog.prototype.getTestId = function (choice) {
118
- var _a;
119
- return choice.testId || String((_a = choice.label) !== null && _a !== void 0 ? _a : choice.value).toLowerCase() + "-button";
120
- };
121
- return FwChoiceDialog;
122
- }());
123
- FwChoiceDialog.decorators = [
124
- { type: i0.Component, args: [{
125
- host: {
126
- class: 'mat-dialog-component',
127
- 'test-id': 'choice-dialog',
128
- },
129
- selector: 'fw-choice-dialog',
130
- template: "\n <h1 mat-dialog-title *ngIf=\"title\">{{ title }}</h1>\n <div mat-dialog-content>{{ content }}</div>\n <div mat-dialog-actions [align]=\"alignActions\">\n <ng-container *ngFor=\"let choice of choices\" [ngSwitch]=\"choice.variant\">\n <button *ngSwitchCase=\"'raised'\" mat-raised-button [color]=\"choice.color\" [attr.test-id]=\"getTestId(choice)\"\n [mat-dialog-close]=\"choice.value\">{{ choice.label }}</button>\n <button *ngSwitchCase=\"'stroked'\" mat-stroked-button [color]=\"choice.color\" [attr.test-id]=\"getTestId(choice)\"\n [mat-dialog-close]=\"choice.value\">{{ choice.label }}</button>\n <button *ngSwitchCase=\"'flat'\" mat-flat-button [color]=\"choice.color\" [attr.test-id]=\"getTestId(choice)\"\n [mat-dialog-close]=\"choice.value\">{{ choice.label }}</button>\n <ng-container *ngSwitchDefault>\n <button *ngIf=\"choice.color\" mat-flat-button [color]=\"choice.color\" [attr.test-id]=\"getTestId(choice)\"\n [mat-dialog-close]=\"choice.value\">{{ choice.label }}</button>\n <button *ngIf=\"!choice.color\" mat-stroked-button [attr.test-id]=\"getTestId(choice)\"\n [mat-dialog-close]=\"choice.value\">{{ choice.label }}</button>\n </ng-container>\n </ng-container>\n </div>\n "
131
- },] }
132
- ];
133
- FwChoiceDialog.ctorParameters = function () { return [
134
- { type: undefined, decorators: [{ type: i0.Inject, args: [dialog.MAT_DIALOG_DATA,] }] }
135
- ]; };
136
-
137
- var FwConfirmDialog = /** @class */ (function () {
138
- function FwConfirmDialog(data) {
139
- this.data = data;
140
- this.title = this.data.title;
141
- this.content = this.data.content;
142
- this.html = this.data.html;
143
- }
144
- return FwConfirmDialog;
145
- }());
146
- FwConfirmDialog.decorators = [
147
- { type: i0.Component, args: [{
148
- host: {
149
- class: 'mat-dialog-component',
150
- 'test-id': 'confirm-dialog',
151
- },
152
- selector: 'fw-confirm-dialog',
153
- template: "\n <h1 mat-dialog-title *ngIf=\"title\">{{ title }}</h1>\n <div mat-dialog-content *ngIf=\"html\" class=\"markup\" [innerHTML]=\"html | trusthtml\"></div>\n <div mat-dialog-content *ngIf=\"!html\">{{ content || ('confirmDialog.body' | translate ) }}</div>\n <div mat-dialog-actions align=\"center\">\n <button test-id=\"no-button\" mat-stroked-button [mat-dialog-close]=\"false\">{{ 'confirmDialog.no' | translate }}</button>\n <button test-id=\"yes-button\" mat-flat-button color=\"primary\" [mat-dialog-close]=\"true\">{{ 'confirmDialog.yes' | translate }}</button>\n </div>\n ",
154
- styles: ["\n [mat-dialog-content] {\n text-align: center;\n }\n [mat-dialog-content].markup {\n text-align: inherit;\n }\n "]
155
- },] }
156
- ];
157
- FwConfirmDialog.ctorParameters = function () { return [
158
- { type: undefined, decorators: [{ type: i0.Inject, args: [dialog.MAT_DIALOG_DATA,] }] }
159
- ]; };
160
-
161
- var FwDialogService = /** @class */ (function () {
162
- function FwDialogService(matDialog) {
163
- this.matDialog = matDialog;
164
- this.dialogs = [];
165
- this.config = new Map();
166
- }
167
- FwDialogService.prototype.closeAll = function (component) {
168
- if (component) {
169
- this.dialogs
170
- .filter(function (el) { return el.component === component; })
171
- .forEach(function (el) { return el.ref.close(); });
172
- }
173
- else {
174
- this.matDialog.closeAll();
175
- }
176
- };
177
- FwDialogService.prototype.open = function (component, config) {
178
- var _this = this;
179
- var index = this.dialogs.findIndex(function (el) { return el.component === component; });
180
- var ref = null;
181
- var baseConfig = Object.assign({ multi: 'allow' }, this.config.get(component));
182
- switch (baseConfig.multi) {
183
- case 'ignore':
184
- // if an existing dialog of the same type doesn't exist, open one
185
- if (index === -1) {
186
- ref = this.matDialog.open(component, Object.assign(Object.assign({}, baseConfig), config));
187
- this.dialogs.push({ component: component, ref: ref });
188
- }
189
- break;
190
- case 'replace':
191
- // if an existing dialog of the same type exists, replace it.
192
- if (index > -1) {
193
- this.dialogs[index].ref.close();
194
- ref = this.matDialog.open(component, Object.assign(Object.assign({}, baseConfig), config));
195
- this.dialogs.splice(index, 1, { component: component, ref: ref });
196
- }
197
- else {
198
- ref = this.matDialog.open(component, Object.assign(Object.assign({}, baseConfig), config));
199
- this.dialogs.push({ component: component, ref: ref });
200
- }
201
- break;
202
- default:
203
- ref = this.matDialog.open(component, Object.assign(Object.assign({}, baseConfig), config));
204
- this.dialogs.push({ component: component, ref: ref });
205
- break;
206
- }
207
- if (ref) {
208
- ref.afterClosed().subscribe(function () {
209
- // clean up open dialog reference
210
- var index = _this.dialogs.findIndex(function (el) { return el.ref === ref; });
211
- if (index >= 0) {
212
- _this.dialogs.splice(index, 1);
213
- }
214
- });
215
- }
216
- return ref;
217
- };
218
- FwDialogService.prototype.registerDialog = function (component, config) {
219
- this.config.set(component, config);
220
- };
221
- return FwDialogService;
222
- }());
223
- FwDialogService.decorators = [
224
- { type: i0.Injectable }
225
- ];
226
- FwDialogService.ctorParameters = function () { return [
227
- { type: dialog.MatDialog }
228
- ]; };
229
-
230
- var FwErrorDialog = /** @class */ (function () {
231
- function FwErrorDialog(data, ref) {
232
- this.data = data;
233
- this.ref = ref;
234
- this.message = this.data.message;
235
- this.ref.disableClose = false;
236
- }
237
- return FwErrorDialog;
238
- }());
239
- FwErrorDialog.decorators = [
240
- { type: i0.Component, args: [{
241
- host: {
242
- class: 'mat-dialog-component',
243
- 'test-id': 'error-dialog',
244
- },
245
- selector: 'fw-error-dialog',
246
- template: "\n <div mat-dialog-content>{{ message }}</div>\n <div mat-dialog-actions align=\"end\">\n <button test-id=\"close-button\" mat-stroked-button mat-dialog-close>\n {{ 'common.actions.close' | translate }}\n </button>\n </div>\n "
247
- },] }
248
- ];
249
- FwErrorDialog.ctorParameters = function () { return [
250
- { type: undefined, decorators: [{ type: i0.Inject, args: [dialog.MAT_DIALOG_DATA,] }] },
251
- { type: dialog.MatDialogRef }
252
- ]; };
253
-
254
- /******************************************************************************
255
- Copyright (c) Microsoft Corporation.
256
-
257
- Permission to use, copy, modify, and/or distribute this software for any
258
- purpose with or without fee is hereby granted.
259
-
260
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
261
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
262
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
263
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
264
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
265
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
266
- PERFORMANCE OF THIS SOFTWARE.
267
- ***************************************************************************** */
268
- /* global Reflect, Promise */
269
- var extendStatics = function (d, b) {
270
- extendStatics = Object.setPrototypeOf ||
271
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
272
- function (d, b) { for (var p in b)
273
- if (Object.prototype.hasOwnProperty.call(b, p))
274
- d[p] = b[p]; };
275
- return extendStatics(d, b);
276
- };
277
- function __extends(d, b) {
278
- if (typeof b !== "function" && b !== null)
279
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
280
- extendStatics(d, b);
281
- function __() { this.constructor = d; }
282
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
283
- }
284
- var __assign = function () {
285
- __assign = Object.assign || function __assign(t) {
286
- for (var s, i = 1, n = arguments.length; i < n; i++) {
287
- s = arguments[i];
288
- for (var p in s)
289
- if (Object.prototype.hasOwnProperty.call(s, p))
290
- t[p] = s[p];
291
- }
292
- return t;
293
- };
294
- return __assign.apply(this, arguments);
295
- };
296
- function __rest(s, e) {
297
- var t = {};
298
- for (var p in s)
299
- if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
300
- t[p] = s[p];
301
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
302
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
303
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
304
- t[p[i]] = s[p[i]];
305
- }
306
- return t;
307
- }
308
- function __decorate(decorators, target, key, desc) {
309
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
310
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
311
- r = Reflect.decorate(decorators, target, key, desc);
312
- else
313
- for (var i = decorators.length - 1; i >= 0; i--)
314
- if (d = decorators[i])
315
- r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
316
- return c > 3 && r && Object.defineProperty(target, key, r), r;
317
- }
318
- function __param(paramIndex, decorator) {
319
- return function (target, key) { decorator(target, key, paramIndex); };
320
- }
321
- function __metadata(metadataKey, metadataValue) {
322
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
323
- return Reflect.metadata(metadataKey, metadataValue);
324
- }
325
- function __awaiter(thisArg, _arguments, P, generator) {
326
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
327
- return new (P || (P = Promise))(function (resolve, reject) {
328
- function fulfilled(value) { try {
329
- step(generator.next(value));
330
- }
331
- catch (e) {
332
- reject(e);
333
- } }
334
- function rejected(value) { try {
335
- step(generator["throw"](value));
336
- }
337
- catch (e) {
338
- reject(e);
339
- } }
340
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
341
- step((generator = generator.apply(thisArg, _arguments || [])).next());
342
- });
343
- }
344
- function __generator(thisArg, body) {
345
- var _ = { label: 0, sent: function () { if (t[0] & 1)
346
- throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
347
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { return this; }), g;
348
- function verb(n) { return function (v) { return step([n, v]); }; }
349
- function step(op) {
350
- if (f)
351
- throw new TypeError("Generator is already executing.");
352
- while (_)
353
- try {
354
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
355
- return t;
356
- if (y = 0, t)
357
- op = [op[0] & 2, t.value];
358
- switch (op[0]) {
359
- case 0:
360
- case 1:
361
- t = op;
362
- break;
363
- case 4:
364
- _.label++;
365
- return { value: op[1], done: false };
366
- case 5:
367
- _.label++;
368
- y = op[1];
369
- op = [0];
370
- continue;
371
- case 7:
372
- op = _.ops.pop();
373
- _.trys.pop();
374
- continue;
375
- default:
376
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
377
- _ = 0;
378
- continue;
379
- }
380
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) {
381
- _.label = op[1];
382
- break;
383
- }
384
- if (op[0] === 6 && _.label < t[1]) {
385
- _.label = t[1];
386
- t = op;
387
- break;
388
- }
389
- if (t && _.label < t[2]) {
390
- _.label = t[2];
391
- _.ops.push(op);
392
- break;
393
- }
394
- if (t[2])
395
- _.ops.pop();
396
- _.trys.pop();
397
- continue;
398
- }
399
- op = body.call(thisArg, _);
400
- }
401
- catch (e) {
402
- op = [6, e];
403
- y = 0;
404
- }
405
- finally {
406
- f = t = 0;
407
- }
408
- if (op[0] & 5)
409
- throw op[1];
410
- return { value: op[0] ? op[1] : void 0, done: true };
411
- }
412
- }
413
- var __createBinding = Object.create ? (function (o, m, k, k2) {
414
- if (k2 === undefined)
415
- k2 = k;
416
- var desc = Object.getOwnPropertyDescriptor(m, k);
417
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
418
- desc = { enumerable: true, get: function () { return m[k]; } };
419
- }
420
- Object.defineProperty(o, k2, desc);
421
- }) : (function (o, m, k, k2) {
422
- if (k2 === undefined)
423
- k2 = k;
424
- o[k2] = m[k];
425
- });
426
- function __exportStar(m, o) {
427
- for (var p in m)
428
- if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p))
429
- __createBinding(o, m, p);
430
- }
431
- function __values(o) {
432
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
433
- if (m)
434
- return m.call(o);
435
- if (o && typeof o.length === "number")
436
- return {
437
- next: function () {
438
- if (o && i >= o.length)
439
- o = void 0;
440
- return { value: o && o[i++], done: !o };
441
- }
442
- };
443
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
444
- }
445
- function __read(o, n) {
446
- var m = typeof Symbol === "function" && o[Symbol.iterator];
447
- if (!m)
448
- return o;
449
- var i = m.call(o), r, ar = [], e;
450
- try {
451
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
452
- ar.push(r.value);
453
- }
454
- catch (error) {
455
- e = { error: error };
456
- }
457
- finally {
458
- try {
459
- if (r && !r.done && (m = i["return"]))
460
- m.call(i);
461
- }
462
- finally {
463
- if (e)
464
- throw e.error;
465
- }
466
- }
467
- return ar;
468
- }
469
- /** @deprecated */
470
- function __spread() {
471
- for (var ar = [], i = 0; i < arguments.length; i++)
472
- ar = ar.concat(__read(arguments[i]));
473
- return ar;
474
- }
475
- /** @deprecated */
476
- function __spreadArrays() {
477
- for (var s = 0, i = 0, il = arguments.length; i < il; i++)
478
- s += arguments[i].length;
479
- for (var r = Array(s), k = 0, i = 0; i < il; i++)
480
- for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
481
- r[k] = a[j];
482
- return r;
483
- }
484
- function __spreadArray(to, from, pack) {
485
- if (pack || arguments.length === 2)
486
- for (var i = 0, l = from.length, ar; i < l; i++) {
487
- if (ar || !(i in from)) {
488
- if (!ar)
489
- ar = Array.prototype.slice.call(from, 0, i);
490
- ar[i] = from[i];
491
- }
492
- }
493
- return to.concat(ar || Array.prototype.slice.call(from));
494
- }
495
- function __await(v) {
496
- return this instanceof __await ? (this.v = v, this) : new __await(v);
497
- }
498
- function __asyncGenerator(thisArg, _arguments, generator) {
499
- if (!Symbol.asyncIterator)
500
- throw new TypeError("Symbol.asyncIterator is not defined.");
501
- var g = generator.apply(thisArg, _arguments || []), i, q = [];
502
- return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
503
- function verb(n) { if (g[n])
504
- i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
505
- function resume(n, v) { try {
506
- step(g[n](v));
507
- }
508
- catch (e) {
509
- settle(q[0][3], e);
510
- } }
511
- function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
512
- function fulfill(value) { resume("next", value); }
513
- function reject(value) { resume("throw", value); }
514
- function settle(f, v) { if (f(v), q.shift(), q.length)
515
- resume(q[0][0], q[0][1]); }
516
- }
517
- function __asyncDelegator(o) {
518
- var i, p;
519
- return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
520
- function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
521
- }
522
- function __asyncValues(o) {
523
- if (!Symbol.asyncIterator)
524
- throw new TypeError("Symbol.asyncIterator is not defined.");
525
- var m = o[Symbol.asyncIterator], i;
526
- return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
527
- function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
528
- function settle(resolve, reject, d, v) { Promise.resolve(v).then(function (v) { resolve({ value: v, done: d }); }, reject); }
529
- }
530
- function __makeTemplateObject(cooked, raw) {
531
- if (Object.defineProperty) {
532
- Object.defineProperty(cooked, "raw", { value: raw });
533
- }
534
- else {
535
- cooked.raw = raw;
536
- }
537
- return cooked;
538
- }
539
- ;
540
- var __setModuleDefault = Object.create ? (function (o, v) {
541
- Object.defineProperty(o, "default", { enumerable: true, value: v });
542
- }) : function (o, v) {
543
- o["default"] = v;
544
- };
545
- function __importStar(mod) {
546
- if (mod && mod.__esModule)
547
- return mod;
548
- var result = {};
549
- if (mod != null)
550
- for (var k in mod)
551
- if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
552
- __createBinding(result, mod, k);
553
- __setModuleDefault(result, mod);
554
- return result;
555
- }
556
- function __importDefault(mod) {
557
- return (mod && mod.__esModule) ? mod : { default: mod };
558
- }
559
- function __classPrivateFieldGet(receiver, state, kind, f) {
560
- if (kind === "a" && !f)
561
- throw new TypeError("Private accessor was defined without a getter");
562
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
563
- throw new TypeError("Cannot read private member from an object whose class did not declare it");
564
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
565
- }
566
- function __classPrivateFieldSet(receiver, state, value, kind, f) {
567
- if (kind === "m")
568
- throw new TypeError("Private method is not writable");
569
- if (kind === "a" && !f)
570
- throw new TypeError("Private accessor was defined without a setter");
571
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
572
- throw new TypeError("Cannot write private member to an object whose class did not declare it");
573
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
574
- }
575
- function __classPrivateFieldIn(state, receiver) {
576
- if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function"))
577
- throw new TypeError("Cannot use 'in' operator on non-object");
578
- return typeof state === "function" ? receiver === state : state.has(receiver);
579
- }
580
-
581
- var FwPortalDialog = /** @class */ (function () {
582
- function FwPortalDialog(data, viewContainerRef) {
583
- this.data = data;
584
- this.viewContainerRef = viewContainerRef;
585
- this.content = this.data.content;
586
- this.title = this.data.title;
587
- this.destroyed$ = new rxjs.Subject();
588
- if (this.data.component) {
589
- this.portal = new portal.ComponentPortal(this.data.component.type, this.viewContainerRef);
590
- }
591
- else if (this.data.template) {
592
- this.portal = new portal.TemplatePortal(this.data.template, this.viewContainerRef);
593
- }
594
- else {
595
- throw new Error('One of [component, template] was not provided.');
596
- }
597
- }
598
- FwPortalDialog.prototype.ngOnDestroy = function () {
599
- this.destroyed$.next();
600
- };
601
- FwPortalDialog.prototype.attached = function (ref) {
602
- var e_1, _c, e_2, _d;
603
- var _a, _b;
604
- if (this.data.component) {
605
- ref = ref;
606
- if (this.data.component.outputs) {
607
- try {
608
- for (var _e = __values(Object.entries(this.data.component.outputs)), _f = _e.next(); !_f.done; _f = _e.next()) {
609
- var _g = __read(_f.value, 2), key = _g[0], observer = _g[1];
610
- var output$ = ref[key];
611
- if (typeof (output$ === null || output$ === void 0 ? void 0 : output$.pipe) === 'function' && typeof output$.subscribe === 'function') {
612
- output$.pipe(operators.takeUntil(this.destroyed$)).subscribe(observer);
613
- }
614
- }
615
- }
616
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
617
- finally {
618
- try {
619
- if (_f && !_f.done && (_c = _e.return)) _c.call(_e);
620
- }
621
- finally { if (e_1) throw e_1.error; }
622
- }
623
- }
624
- if (this.data.component.inputs) {
625
- var changes = {};
626
- try {
627
- for (var _h = __values(Object.entries(this.data.component.inputs)), _j = _h.next(); !_j.done; _j = _h.next()) {
628
- var _k = __read(_j.value, 2), key = _k[0], value = _k[1];
629
- ref.instance[key] = value;
630
- changes[key] = new i0.SimpleChange(value, value, true);
631
- }
632
- }
633
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
634
- finally {
635
- try {
636
- if (_j && !_j.done && (_d = _h.return)) _d.call(_h);
637
- }
638
- finally { if (e_2) throw e_2.error; }
639
- }
640
- (_b = (_a = ref.instance).ngOnChanges) === null || _b === void 0 ? void 0 : _b.call(_a, changes);
641
- ref.changeDetectorRef.markForCheck();
642
- }
643
- }
644
- };
645
- return FwPortalDialog;
646
- }());
647
- FwPortalDialog.decorators = [
648
- { type: i0.Component, args: [{
649
- host: {
650
- class: 'mat-dialog-component',
651
- 'test-id': 'portal-dialog',
652
- },
653
- selector: 'fw-portal-dialog',
654
- template: "\n <ng-container *ngIf=\"title\">\n <h1 mat-dialog-title>{{ title }}</h1>\n <button test-id=\"dialog-close-corner\" mat-icon-button mat-dialog-close>\n <mat-icon>close</mat-icon>\n </button>\n </ng-container>\n <mat-dialog-content>\n <p *ngIf=\"content\" class=\"content\">{{ content }}</p>\n <ng-template [cdkPortalOutlet]=\"portal\" (attached)=\"attached($event)\"></ng-template>\n </mat-dialog-content>\n <mat-dialog-actions align=\"end\">\n <button test-id=\"dialog-close-button\" mat-stroked-button mat-dialog-close>\n {{ 'common.actions.close' | translate }}\n </button>\n </mat-dialog-actions>\n ",
655
- styles: ["\n :host {\n min-width: 200px;\n }\n .content {\n margin-bottom: 30px;\n }\n "]
656
- },] }
657
- ];
658
- FwPortalDialog.ctorParameters = function () { return [
659
- { type: undefined, decorators: [{ type: i0.Inject, args: [dialog.MAT_DIALOG_DATA,] }] },
660
- { type: i0.ViewContainerRef }
661
- ]; };
662
-
663
- var TranslationService = /** @class */ (function () {
664
- function TranslationService() {
665
- }
666
- return TranslationService;
667
- }());
668
- /**
669
- * Very basic i18n implementation. Consumer apps can provide their own implementation of TranslationService to override.
670
- */
671
- var MinimalTranslationService = /** @class */ (function () {
672
- function MinimalTranslationService() {
673
- }
674
- MinimalTranslationService.prototype.getMessage = function (key, silent) {
675
- return rxjs.of(MinimalTranslationService.messages[key]);
676
- };
677
- return MinimalTranslationService;
678
- }());
679
- MinimalTranslationService.messages = {
680
- 'common.actions.close': 'Close',
681
- 'confirmDialog.body': 'Are you sure?',
682
- 'confirmDialog.no': 'No',
683
- 'confirmDialog.yes': 'Yes',
684
- };
685
- MinimalTranslationService.decorators = [
686
- { type: i0.Injectable }
687
- ];
688
-
689
- /**
690
- * Translate a message given a nested key to a location in the loaded locale copy.
691
- */
692
- var TranslatePipe = /** @class */ (function () {
693
- function TranslatePipe(cdr, translationService) {
694
- this.cdr = cdr;
695
- this.translationService = translationService;
696
- this.subscriptions = {};
697
- this.messages = {};
698
- }
699
- TranslatePipe.prototype.ngOnDestroy = function () {
700
- var e_1, _a;
701
- try {
702
- for (var _b = __values(Object.values(this.subscriptions)), _c = _b.next(); !_c.done; _c = _b.next()) {
703
- var subscription = _c.value;
704
- subscription.unsubscribe();
705
- }
706
- }
707
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
708
- finally {
709
- try {
710
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
711
- }
712
- finally { if (e_1) throw e_1.error; }
713
- }
714
- };
715
- TranslatePipe.prototype.transform = function (key, silent) {
716
- var _this = this;
717
- if (silent === void 0) { silent = false; }
718
- if (!(key in this.subscriptions)) {
719
- this.subscriptions[key] = this.translationService.getMessage(key, silent).subscribe(function (message) {
720
- _this.messages[key] = message;
721
- // trigger change detection to support components with ChangeDetectionStrategy.OnPush
722
- _this.cdr.markForCheck();
723
- });
724
- }
725
- return this.messages[key] || '';
726
- };
727
- return TranslatePipe;
728
- }());
729
- TranslatePipe.decorators = [
730
- { type: i0.Pipe, args: [{
731
- name: 'translate',
732
- pure: false,
733
- },] }
734
- ];
735
- TranslatePipe.ctorParameters = function () { return [
736
- { type: i0.ChangeDetectorRef },
737
- { type: TranslationService }
738
- ]; };
739
-
740
- var TrustHtmlPipe = /** @class */ (function () {
741
- function TrustHtmlPipe(sanitizer) {
742
- this.sanitizer = sanitizer;
743
- }
744
- TrustHtmlPipe.prototype.transform = function (html) {
745
- return this.sanitizer.bypassSecurityTrustHtml(html);
746
- };
747
- return TrustHtmlPipe;
748
- }());
749
- TrustHtmlPipe.decorators = [
750
- { type: i0.Pipe, args: [{
751
- name: 'trusthtml',
752
- pure: true,
753
- },] }
754
- ];
755
- TrustHtmlPipe.ctorParameters = function () { return [
756
- { type: platformBrowser.DomSanitizer }
757
- ]; };
758
-
759
- var exports$1 = [
760
- TranslatePipe,
761
- TrustHtmlPipe,
762
- ];
763
- var PipesModule = /** @class */ (function () {
764
- function PipesModule() {
765
- }
766
- return PipesModule;
767
- }());
768
- PipesModule.decorators = [
769
- { type: i0.NgModule, args: [{
770
- declarations: exports$1,
771
- exports: exports$1,
772
- providers: [
773
- {
774
- provide: TranslationService,
775
- useClass: MinimalTranslationService,
776
- },
777
- ],
778
- },] }
779
- ];
780
-
781
- var ɵ0 = {
782
- disableClose: true,
783
- hasBackdrop: true,
784
- };
785
- var FwDialogModule = /** @class */ (function () {
786
- function FwDialogModule() {
787
- }
788
- return FwDialogModule;
789
- }());
790
- FwDialogModule.decorators = [
791
- { type: i0.NgModule, args: [{
792
- declarations: [
793
- FwChoiceDialog,
794
- FwConfirmDialog,
795
- FwErrorDialog,
796
- FwPortalDialog,
797
- ],
798
- imports: [
799
- common.CommonModule,
800
- button.MatButtonModule,
801
- dialog.MatDialogModule,
802
- icon.MatIconModule,
803
- PipesModule,
804
- portal.PortalModule,
805
- ],
806
- providers: [
807
- FwDialogService,
808
- {
809
- provide: dialog.MAT_DIALOG_DEFAULT_OPTIONS,
810
- useValue: ɵ0
811
- }
812
- ],
813
- },] }
814
- ];
815
-
816
- function genId() {
817
- return String.prototype.padStart(24, Math.floor(Math.random() * Date.now()).toString(16));
818
- }
819
- var FwNotificationService = /** @class */ (function () {
820
- function FwNotificationService() {
821
- this.notifications$ = new rxjs.BehaviorSubject([]);
822
- this.notificationQueue = [];
823
- }
824
- FwNotificationService.prototype.show = function (notification) {
825
- if (!notification.id) {
826
- notification.id = genId();
827
- }
828
- this.notificationQueue.push(notification);
829
- this.notifications$.next(this.notificationQueue);
830
- };
831
- FwNotificationService.prototype.dismiss = function (notificationId) {
832
- this.notificationQueue = this.notificationQueue.filter(function (v) { return v.id !== notificationId; });
833
- this.notifications$.next(this.notificationQueue);
834
- };
835
- FwNotificationService.prototype.dismissAll = function () {
836
- this.notificationQueue = [];
837
- this.notifications$.next(this.notificationQueue);
838
- };
839
- return FwNotificationService;
840
- }());
841
- FwNotificationService.ɵprov = i0.ɵɵdefineInjectable({ factory: function FwNotificationService_Factory() { return new FwNotificationService(); }, token: FwNotificationService, providedIn: "root" });
842
- FwNotificationService.decorators = [
843
- { type: i0.Injectable, args: [{
844
- providedIn: 'root'
845
- },] }
846
- ];
847
-
848
- var FwNotificationContainerComponent = /** @class */ (function () {
849
- function FwNotificationContainerComponent(cdr, notificationService) {
850
- var _this = this;
851
- this.cdr = cdr;
852
- this.notificationService = notificationService;
853
- this.limit = 3;
854
- this.notifications = [];
855
- this.expanded = false;
856
- this.subscriptions = {
857
- notifications: rxjs.Subscription.EMPTY,
858
- };
859
- this.subscriptions.notifications = this.notificationService.notifications$.subscribe(function (notifications) {
860
- _this.notifications = notifications;
861
- if (notifications.length === 0) {
862
- _this.expanded = false;
863
- }
864
- _this.cdr.markForCheck();
865
- });
866
- }
867
- FwNotificationContainerComponent.prototype.ngOnDestroy = function () {
868
- var e_1, _a;
869
- try {
870
- for (var _b = __values(Object.values(this.subscriptions)), _c = _b.next(); !_c.done; _c = _b.next()) {
871
- var subscription = _c.value;
872
- subscription.unsubscribe();
873
- }
874
- }
875
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
876
- finally {
877
- try {
878
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
879
- }
880
- finally { if (e_1) throw e_1.error; }
881
- }
882
- };
883
- FwNotificationContainerComponent.prototype.notificationClass = function (index) {
884
- var cssClass;
885
- var level = this.notifications.length > this.limit
886
- ? index - (this.notifications.length - this.limit)
887
- : index;
888
- if (this.expanded) {
889
- cssClass = 'default';
890
- }
891
- else {
892
- cssClass = level >= 0 ? "level-" + level : 'hidden';
893
- }
894
- return cssClass;
895
- };
896
- FwNotificationContainerComponent.prototype.getEmptyNotification = function (notification) {
897
- return Object.assign(Object.assign({}, notification), { message: ' ' }); // take up a line but show no content
898
- };
899
- FwNotificationContainerComponent.prototype.onReady = function (notification) {
900
- var currentNotification = this.notifications[this.notifications.length - 1];
901
- currentNotification.ref = notification;
902
- notification.startTimer();
903
- };
904
- FwNotificationContainerComponent.prototype.onDismiss = function (notificationId) {
905
- var notification = this.notifications.find(function (currentNotification) { return currentNotification.id === notificationId; });
906
- if (notification === null || notification === void 0 ? void 0 : notification.ref) {
907
- notification.ref.stopTimer();
908
- }
909
- if (notification === null || notification === void 0 ? void 0 : notification.id) {
910
- this.notificationService.dismiss(notification.id);
911
- }
912
- this.cdr.markForCheck();
913
- };
914
- FwNotificationContainerComponent.prototype.clearAll = function () {
915
- this.notificationService.dismissAll();
916
- this.cdr.markForCheck();
917
- };
918
- FwNotificationContainerComponent.prototype.onShowMore = function () {
919
- this.expanded = true;
920
- this.cdr.markForCheck();
921
- };
922
- FwNotificationContainerComponent.prototype.onShowLess = function () {
923
- this.expanded = false;
924
- this.cdr.markForCheck();
925
- };
926
- return FwNotificationContainerComponent;
927
- }());
928
- FwNotificationContainerComponent.decorators = [
929
- { type: i0.Component, args: [{
930
- host: {
931
- 'class': 'fw-notification-container',
932
- '[class.duo]': 'notifications.length === 2',
933
- '[class.triple]': 'notifications.length >= 3',
934
- },
935
- selector: 'fw-notification-container',
936
- template: "<div role=\"list\">\n <fw-notification *ngFor=\"let notification of notifications; index as $index\"\n (ready)=\"onReady($event)\"\n (dismiss)=\"onDismiss($event)\"\n [class]=\"notificationClass($index)\"\n [notification]=\"expanded || $index === notifications.length - 1 ? notification : getEmptyNotification(notification)\"\n [attr.aria-label]=\"notification.type + ' : ' + notification.message\"\n role=\"listitem\"\n ></fw-notification>\n <div class=\"buttons\">\n <fw-button *ngIf=\"expanded\" (click)=\"onShowLess()\" mat-button aria-label=\"show less\" layout=\"compact\" size=\"small\">\n <mat-icon>expand_less</mat-icon>\n </fw-button>\n <fw-button *ngIf=\"!expanded && notifications.length > 1\" (click)=\"onShowMore()\" mat-button aria-label=\"show more\" layout=\"compact\" size=\"small\">\n <mat-icon>expand_more</mat-icon>\n </fw-button>\n <fw-button (click)=\"clearAll()\" mat-button class=\"clear-all\" aria-label=\"clear all\" layout=\"compact\" size=\"small\">\n Clear All\n </fw-button>\n </div>\n</div>\n",
937
- encapsulation: i0.ViewEncapsulation.None,
938
- changeDetection: i0.ChangeDetectionStrategy.OnPush,
939
- styles: ["fw-notification-container{position:absolute;right:0;top:0;margin-top:20px;z-index:999999}fw-notification-container>div{display:flex;flex-direction:column-reverse}fw-notification-container .buttons{display:none;position:absolute;top:-5px;right:25px}fw-notification-container .buttons button{color:#fff;background-color:#919292;margin-left:2px}fw-notification-container .buttons button.mat-button{line-height:24px!important;margin:0 0 0 2px!important}fw-notification-container:hover .buttons{display:flex}fw-notification-container .hidden{display:none}fw-notification-container fw-notification:last-of-type{margin-top:24px}fw-notification-container.duo fw-notification.level-0,fw-notification-container.triple fw-notification.level-1{transform:scale(.95) translateY(-51px)}fw-notification-container.triple fw-notification.level-0{transform:scale(.9) translateY(-108px)}"]
940
- },] }
941
- ];
942
- FwNotificationContainerComponent.ctorParameters = function () { return [
943
- { type: i0.ChangeDetectorRef },
944
- { type: FwNotificationService }
945
- ]; };
946
-
947
- var FwNotificationTimerService = /** @class */ (function () {
948
- function FwNotificationTimerService() {
949
- this.now = 0;
950
- this.remainingDuration = 0;
951
- }
952
- FwNotificationTimerService.prototype.start = function (duration) {
953
- var _this = this;
954
- return new Promise(function (resolve) {
955
- _this.remainingDuration = duration;
956
- _this.resolver = resolve;
957
- _this.continue();
958
- });
959
- };
960
- FwNotificationTimerService.prototype.stop = function () {
961
- clearTimeout(this.timerId);
962
- this.remainingDuration = 0;
963
- };
964
- FwNotificationTimerService.prototype.pause = function () {
965
- clearTimeout(this.timerId);
966
- this.remainingDuration =
967
- this.remainingDuration - new Date().getTime() - this.now;
968
- };
969
- FwNotificationTimerService.prototype.continue = function () {
970
- var _this = this;
971
- this.now = new Date().getTime();
972
- this.timerId = window.setTimeout(function () {
973
- _this.resolver();
974
- }, this.remainingDuration);
975
- };
976
- return FwNotificationTimerService;
977
- }());
978
-
979
- (function (FwNotificationType) {
980
- FwNotificationType["Error"] = "error";
981
- FwNotificationType["Info"] = "info";
982
- FwNotificationType["Success"] = "success";
983
- FwNotificationType["Wait"] = "wait";
984
- FwNotificationType["Warning"] = "warning";
985
- })(exports.FwNotificationType || (exports.FwNotificationType = {}));
986
-
987
- var FwNotificationComponent = /** @class */ (function () {
988
- function FwNotificationComponent(cdr, timerService) {
989
- this.cdr = cdr;
990
- this.timerService = timerService;
991
- this.notificationDuration = 9000;
992
- this.ready = new i0.EventEmitter();
993
- this.dismiss = new i0.EventEmitter();
994
- }
995
- Object.defineProperty(FwNotificationComponent.prototype, "cssClass", {
996
- get: function () {
997
- var _a;
998
- var cssClass = 'fw-notification';
999
- switch ((_a = this.notification) === null || _a === void 0 ? void 0 : _a.type) {
1000
- case exports.FwNotificationType.Error:
1001
- return cssClass += ' error';
1002
- case exports.FwNotificationType.Info:
1003
- return cssClass += ' info';
1004
- case exports.FwNotificationType.Success:
1005
- return cssClass += ' success';
1006
- case exports.FwNotificationType.Wait:
1007
- return cssClass += ' wait';
1008
- case exports.FwNotificationType.Warning:
1009
- return cssClass += ' warning';
1010
- default:
1011
- return cssClass;
1012
- }
1013
- },
1014
- enumerable: false,
1015
- configurable: true
1016
- });
1017
- FwNotificationComponent.prototype.ngAfterViewInit = function () {
1018
- this.ready.emit(this);
1019
- this.cdr.markForCheck();
1020
- };
1021
- FwNotificationComponent.prototype.startTimer = function () {
1022
- var _this = this;
1023
- this.timerService.start(this.notificationDuration).then(function () {
1024
- _this.onClickDismiss();
1025
- _this.cdr.markForCheck();
1026
- });
1027
- };
1028
- FwNotificationComponent.prototype.stopTimer = function () {
1029
- this.timerService.stop();
1030
- this.cdr.markForCheck();
1031
- };
1032
- FwNotificationComponent.prototype.onClickDismiss = function () {
1033
- this.dismiss.emit(this.notification.id);
1034
- this.cdr.markForCheck();
1035
- };
1036
- return FwNotificationComponent;
1037
- }());
1038
- FwNotificationComponent.decorators = [
1039
- { type: i0.Component, args: [{
1040
- host: {
1041
- '(click)': 'onClickDismiss()'
1042
- },
1043
- selector: 'fw-notification',
1044
- template: "{{ notification?.message }}",
1045
- providers: [FwNotificationTimerService],
1046
- encapsulation: i0.ViewEncapsulation.None,
1047
- changeDetection: i0.ChangeDetectionStrategy.OnPush,
1048
- styles: ["fw-notification{display:block;border-radius:4px;box-sizing:border-box;margin:5px 24px;max-width:33vw;min-width:344px;padding:14px 16px;transform-origin:center;background-color:#2f96b4;border:1px solid hsla(0,0%,100%,.7019607843);box-shadow:0 0 12px #999;color:#fff;opacity:.99;white-space:pre-wrap}fw-notification.error{background-color:#bd362f}fw-notification.info{background-color:#2f96b4}fw-notification.success{background-color:#51a351}fw-notification.wait{background-color:#2f96b4}fw-notification.warning{background-color:#f89406}"]
1049
- },] }
1050
- ];
1051
- FwNotificationComponent.ctorParameters = function () { return [
1052
- { type: i0.ChangeDetectorRef },
1053
- { type: FwNotificationTimerService }
1054
- ]; };
1055
- FwNotificationComponent.propDecorators = {
1056
- notification: [{ type: i0.Input }],
1057
- notificationDuration: [{ type: i0.Input }],
1058
- ready: [{ type: i0.Output }],
1059
- dismiss: [{ type: i0.Output }],
1060
- cssClass: [{ type: i0.HostBinding, args: ['class',] }]
1061
- };
1062
-
1063
- var FwNotificationModule = /** @class */ (function () {
1064
- function FwNotificationModule() {
1065
- }
1066
- return FwNotificationModule;
1067
- }());
1068
- FwNotificationModule.decorators = [
1069
- { type: i0.NgModule, args: [{
1070
- imports: [
1071
- common.CommonModule,
1072
- FwButtonModule,
1073
- FwButtonGroupModule,
1074
- button.MatButtonModule,
1075
- icon.MatIconModule,
1076
- ],
1077
- exports: [
1078
- FwNotificationComponent,
1079
- FwNotificationContainerComponent
1080
- ],
1081
- declarations: [
1082
- FwNotificationComponent,
1083
- FwNotificationContainerComponent,
1084
- ],
1085
- entryComponents: [
1086
- FwNotificationComponent,
1087
- ],
1088
- providers: [
1089
- FwNotificationService,
1090
- ]
1091
- },] }
1092
- ];
1093
-
1094
- var FwPopoverTriggerDirective = /** @class */ (function () {
1095
- function FwPopoverTriggerDirective(element, overlay, viewContainerRef) {
1096
- this.element = element;
1097
- this.overlay = overlay;
1098
- this.viewContainerRef = viewContainerRef;
1099
- this.popoverMargin = 15;
1100
- this.positionMap = {
1101
- 'left': { originX: 'start', originY: 'center', overlayX: 'end', overlayY: 'center' },
1102
- 'right': { originX: 'end', originY: 'center', overlayX: 'start', overlayY: 'center' },
1103
- 'above': { originX: 'center', originY: 'top', overlayX: 'center', overlayY: 'bottom' },
1104
- 'below': { originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'top' },
1105
- };
1106
- this.position = 'below';
1107
- this.subscriptions = {
1108
- positionChanges: rxjs.Subscription.EMPTY,
1109
- };
1110
- }
1111
- FwPopoverTriggerDirective.prototype.ngOnChanges = function (changes) {
1112
- if (changes.position && this.overlayRef) {
1113
- this.overlayRef.dispose();
1114
- this.overlayRef = null;
1115
- }
1116
- };
1117
- FwPopoverTriggerDirective.prototype.ngOnDestroy = function () {
1118
- var e_1, _b;
1119
- if (this.overlayRef) {
1120
- this.overlayRef.dispose();
1121
- this.overlayRef = null;
1122
- }
1123
- try {
1124
- for (var _c = __values(Object.values(this.subscriptions)), _d = _c.next(); !_d.done; _d = _c.next()) {
1125
- var subscription = _d.value;
1126
- subscription.unsubscribe();
1127
- }
1128
- }
1129
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
1130
- finally {
1131
- try {
1132
- if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
1133
- }
1134
- finally { if (e_1) throw e_1.error; }
1135
- }
1136
- };
1137
- FwPopoverTriggerDirective.prototype.showPopover = function () {
1138
- var _a;
1139
- if ((_a = this.popover) === null || _a === void 0 ? void 0 : _a.templateRef) {
1140
- this.getOverlay().attach(new portal.TemplatePortal(this.popover.templateRef, this.viewContainerRef));
1141
- }
1142
- };
1143
- FwPopoverTriggerDirective.prototype.hidePopover = function (e) {
1144
- var _a;
1145
- if (!((_a = e.relatedTarget) === null || _a === void 0 ? void 0 : _a.classList.contains('fw-popover-panel'))) {
1146
- this.getOverlay().detach();
1147
- }
1148
- };
1149
- FwPopoverTriggerDirective.prototype.setPopoverCaretPosition = function (position) {
1150
- var caret = this.overlayRef.overlayElement.querySelector('.fw-popover-caret');
1151
- var caretRect = this.overlayRef.overlayElement.getBoundingClientRect();
1152
- var triggerRect = this.element.nativeElement.getBoundingClientRect();
1153
- this.overlayRef.overlayElement.querySelector('.fw-popover-content-wrapper').style.margin = this.popoverMargin + "px";
1154
- if (['left', 'right', 'before', 'after'].includes(position)) {
1155
- caret.style.top = triggerRect.top - caretRect.top - this.popoverMargin + (triggerRect.height / 2) + "px";
1156
- }
1157
- else {
1158
- caret.style.left = triggerRect.left - caretRect.left - this.popoverMargin + (triggerRect.width / 2) + "px";
1159
- }
1160
- };
1161
- FwPopoverTriggerDirective.prototype.setPopoverPosition = function (positionChange) {
1162
- var position = this.positionMap[this.mainPosition] === positionChange.connectionPair
1163
- ? this.mainPosition
1164
- : this.positionMap[this.fallbackPosition] === positionChange.connectionPair
1165
- ? this.fallbackPosition
1166
- : this.mainPosition;
1167
- this.overlayRef.removePanelClass(['fw-popover-above', 'fw-popover-below', 'fw-popover-left', 'fw-popover-right']);
1168
- this.overlayRef.addPanelClass("fw-popover-" + position);
1169
- this.setPopoverCaretPosition(position);
1170
- };
1171
- FwPopoverTriggerDirective.prototype.getOverlay = function () {
1172
- var _this = this;
1173
- if (!this.overlayRef) {
1174
- this.overlayRef = this.overlay.create({
1175
- positionStrategy: this.overlay.position()
1176
- .flexibleConnectedTo(this.element)
1177
- .withPositions(this.getPositions()),
1178
- panelClass: 'fw-popover-panel',
1179
- });
1180
- this.overlayRef.overlayElement.addEventListener('mouseleave', function (e) { return _this.hidePopover(e); });
1181
- this.subscriptions.positionChanges = this.overlayRef.getConfig().positionStrategy.positionChanges
1182
- .subscribe(function (positionChange) { return _this.setPopoverPosition(positionChange); });
1183
- }
1184
- return this.overlayRef;
1185
- };
1186
- FwPopoverTriggerDirective.prototype.getMainPosition = function () {
1187
- return this.mainPosition =
1188
- ['left', 'before'].includes(this.position)
1189
- ? 'left'
1190
- : ['right', 'after'].includes(this.position)
1191
- ? 'right'
1192
- : this.position === 'above'
1193
- ? 'above'
1194
- : 'below';
1195
- };
1196
- FwPopoverTriggerDirective.prototype.getFallbackPosition = function () {
1197
- return this.fallbackPosition =
1198
- ['left', 'before'].includes(this.position)
1199
- ? 'right'
1200
- : ['right', 'after'].includes(this.position)
1201
- ? 'left'
1202
- : this.position === 'above'
1203
- ? 'below'
1204
- : 'above';
1205
- };
1206
- FwPopoverTriggerDirective.prototype.getPositions = function () {
1207
- return [
1208
- // main position
1209
- this.positionMap[this.getMainPosition()],
1210
- // fallback position (inverse of main)
1211
- this.positionMap[this.getFallbackPosition()],
1212
- ];
1213
- };
1214
- return FwPopoverTriggerDirective;
1215
- }());
1216
- FwPopoverTriggerDirective.decorators = [
1217
- { type: i0.Directive, args: [{
1218
- host: {
1219
- 'class': 'fw-popover-trigger',
1220
- '(mouseenter)': 'showPopover()',
1221
- '(mouseleave)': 'hidePopover($event)',
1222
- },
1223
- selector: '[fwPopoverTriggerFor]',
1224
- exportAs: 'fwPopoverTrigger',
1225
- },] }
1226
- ];
1227
- FwPopoverTriggerDirective.ctorParameters = function () { return [
1228
- { type: i0.ElementRef },
1229
- { type: overlay.Overlay },
1230
- { type: i0.ViewContainerRef }
1231
- ]; };
1232
- FwPopoverTriggerDirective.propDecorators = {
1233
- popover: [{ type: i0.Input, args: ['fwPopoverTriggerFor',] }],
1234
- position: [{ type: i0.Input, args: ['fwPopoverPosition',] }]
1235
- };
1236
-
1237
- var FwPopoverTriggerComponent = /** @class */ (function (_super) {
1238
- __extends(FwPopoverTriggerComponent, _super);
1239
- function FwPopoverTriggerComponent(element, overlay, viewContainerRef) {
1240
- var _this = _super.call(this, element, overlay, viewContainerRef) || this;
1241
- _this.element = element;
1242
- _this.overlay = overlay;
1243
- _this.viewContainerRef = viewContainerRef;
1244
- _this.position = 'below';
1245
- return _this;
1246
- }
1247
- FwPopoverTriggerComponent.prototype.showPopover = function () {
1248
- var overlay = this.getOverlay();
1249
- overlay.detach();
1250
- if (this.popoverId) {
1251
- // as a web component it is not possible to have a reference to this.popover
1252
- this.popoverHTML = document.querySelector("fw-popover#" + this.popoverId).innerHTML;
1253
- overlay.attach(new portal.TemplatePortal(this.popoverTemplateRef, this.viewContainerRef));
1254
- }
1255
- };
1256
- return FwPopoverTriggerComponent;
1257
- }(FwPopoverTriggerDirective));
1258
- FwPopoverTriggerComponent.decorators = [
1259
- { type: i0.Component, args: [{
1260
- host: {
1261
- 'class': 'fw-popover-trigger',
1262
- '(mouseenter)': 'showPopover()',
1263
- '(mouseleave)': 'hidePopover($event)',
1264
- },
1265
- selector: 'fw-popover-trigger',
1266
- template: "<ng-content></ng-content>\n <!-- for web component support -->\n <ng-template>\n <div [innerHTML]=\"popoverHTML\"></div>\n </ng-template>"
1267
- },] }
1268
- ];
1269
- FwPopoverTriggerComponent.ctorParameters = function () { return [
1270
- { type: i0.ElementRef },
1271
- { type: overlay.Overlay },
1272
- { type: i0.ViewContainerRef }
1273
- ]; };
1274
- FwPopoverTriggerComponent.propDecorators = {
1275
- popoverId: [{ type: i0.Input, args: ['trigger-for',] }],
1276
- position: [{ type: i0.Input, args: ['position',] }],
1277
- popoverTemplateRef: [{ type: i0.ViewChild, args: [i0.TemplateRef,] }]
1278
- };
1279
-
1280
- var FwPopoverComponent = /** @class */ (function () {
1281
- function FwPopoverComponent() {
1282
- }
1283
- return FwPopoverComponent;
1284
- }());
1285
- FwPopoverComponent.decorators = [
1286
- { type: i0.Component, args: [{
1287
- host: { 'class': 'fw-popover' },
1288
- selector: 'fw-popover',
1289
- template: "\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n <ng-template #content>\n <div class=\"fw-popover-content-wrapper\">\n <ng-content></ng-content>\n <div class=\"fw-popover-caret\"></div>\n </div>\n </ng-template>",
1290
- encapsulation: i0.ViewEncapsulation.None,
1291
- styles: [".white{color:#fff!important}.fill-white{background-color:#fff!important}.border-top-white,.border-white{border-color:#fff!important}.border-top-white{border-top:1px solid}.border-right-white{border-right:1px solid;border-color:#fff!important}.border-bottom-white{border-bottom:1px solid;border-color:#fff!important}.border-left-white{border-left:1px solid;border-color:#fff!important}.black{color:#000!important}.fill-black{background-color:#000!important}.border-black,.border-top-black{border-color:#000!important}.border-top-black{border-top:1px solid}.border-right-black{border-right:1px solid;border-color:#000!important}.border-bottom-black{border-bottom:1px solid;border-color:#000!important}.border-left-black{border-left:1px solid;border-color:#000!important}.green{color:#59b96b!important}.fill-green{background-color:#59b96b!important}.border-green,.border-top-green{border-color:#59b96b!important}.border-top-green{border-top:1px solid}.border-right-green{border-right:1px solid;border-color:#59b96b!important}.border-bottom-green{border-bottom:1px solid;border-color:#59b96b!important}.border-left-green{border-left:1px solid;border-color:#59b96b!important}.orange{color:#f7941d!important}.fill-orange{background-color:#f7941d!important}.border-orange,.border-top-orange{border-color:#f7941d!important}.border-top-orange{border-top:1px solid}.border-right-orange{border-right:1px solid;border-color:#f7941d!important}.border-bottom-orange{border-bottom:1px solid;border-color:#f7941d!important}.border-left-orange{border-left:1px solid;border-color:#f7941d!important}.red{color:#de584c!important}.fill-red{background-color:#de584c!important}.border-red,.border-top-red{border-color:#de584c!important}.border-top-red{border-top:1px solid}.border-right-red{border-right:1px solid;border-color:#de584c!important}.border-bottom-red{border-bottom:1px solid;border-color:#de584c!important}.border-left-red{border-left:1px solid;border-color:#de584c!important}.light-red{color:#f8e5e4!important}.fill-light-red{background-color:#f8e5e4!important}.border-light-red,.border-top-light-red{border-color:#f8e5e4!important}.border-top-light-red{border-top:1px solid}.border-right-light-red{border-right:1px solid;border-color:#f8e5e4!important}.border-bottom-light-red{border-bottom:1px solid;border-color:#f8e5e4!important}.border-left-light-red{border-left:1px solid;border-color:#f8e5e4!important}.blue{color:#5871a2!important}.fill-blue{background-color:#5871a2!important}.border-blue,.border-top-blue{border-color:#5871a2!important}.border-top-blue{border-top:1px solid}.border-right-blue{border-right:1px solid;border-color:#5871a2!important}.border-bottom-blue{border-bottom:1px solid;border-color:#5871a2!important}.border-left-blue{border-left:1px solid;border-color:#5871a2!important}.focus-blue{color:#23527c!important}.fill-focus-blue{background-color:#23527c!important}.border-focus-blue,.border-top-focus-blue{border-color:#23527c!important}.border-top-focus-blue{border-top:1px solid}.border-right-focus-blue{border-right:1px solid;border-color:#23527c!important}.border-bottom-focus-blue{border-bottom:1px solid;border-color:#23527c!important}.border-left-focus-blue{border-left:1px solid;border-color:#23527c!important}.dark-blue{color:#394256!important}.fill-dark-blue{background-color:#394256!important}.border-dark-blue,.border-top-dark-blue{border-color:#394256!important}.border-top-dark-blue{border-top:1px solid}.border-right-dark-blue{border-right:1px solid;border-color:#394256!important}.border-bottom-dark-blue{border-bottom:1px solid;border-color:#394256!important}.border-left-dark-blue{border-left:1px solid;border-color:#394256!important}.light-blue{color:#e7effe!important}.fill-light-blue{background-color:#e7effe!important}.border-light-blue,.border-top-light-blue{border-color:#e7effe!important}.border-top-light-blue{border-top:1px solid}.border-right-light-blue{border-right:1px solid;border-color:#e7effe!important}.border-bottom-light-blue{border-bottom:1px solid;border-color:#e7effe!important}.border-left-light-blue{border-left:1px solid;border-color:#e7effe!important}.bright-blue{color:#1b68fa!important}.fill-bright-blue{background-color:#1b68fa!important}.border-bright-blue,.border-top-bright-blue{border-color:#1b68fa!important}.border-top-bright-blue{border-top:1px solid}.border-right-bright-blue{border-right:1px solid;border-color:#1b68fa!important}.border-bottom-bright-blue{border-bottom:1px solid;border-color:#1b68fa!important}.border-left-bright-blue{border-left:1px solid;border-color:#1b68fa!important}.admin-black{color:#01010a!important}.fill-admin-black{background-color:#01010a!important}.border-admin-black,.border-top-admin-black{border-color:#01010a!important}.border-top-admin-black{border-top:1px solid}.border-right-admin-black{border-right:1px solid;border-color:#01010a!important}.border-bottom-admin-black{border-bottom:1px solid;border-color:#01010a!important}.border-left-admin-black{border-left:1px solid;border-color:#01010a!important}.accent-purple{color:#b080fc!important}.fill-accent-purple{background-color:#b080fc!important}.border-accent-purple,.border-top-accent-purple{border-color:#b080fc!important}.border-top-accent-purple{border-top:1px solid}.border-right-accent-purple{border-right:1px solid;border-color:#b080fc!important}.border-bottom-accent-purple{border-bottom:1px solid;border-color:#b080fc!important}.border-left-accent-purple{border-left:1px solid;border-color:#b080fc!important}.grey{color:#58595b!important}.fill-grey{background-color:#58595b!important}.border-grey,.border-top-grey{border-color:#58595b!important}.border-top-grey{border-top:1px solid}.border-right-grey{border-right:1px solid;border-color:#58595b!important}.border-bottom-grey{border-bottom:1px solid;border-color:#58595b!important}.border-left-grey{border-left:1px solid;border-color:#58595b!important}.soft-grey{color:#dddede!important}.fill-soft-grey{background-color:#dddede!important}.border-soft-grey,.border-top-soft-grey{border-color:#dddede!important}.border-top-soft-grey{border-top:1px solid}.border-right-soft-grey{border-right:1px solid;border-color:#dddede!important}.border-bottom-soft-grey{border-bottom:1px solid;border-color:#dddede!important}.border-left-soft-grey{border-left:1px solid;border-color:#dddede!important}.light-grey{color:#eee!important}.fill-light-grey{background-color:#eee!important}.border-light-grey,.border-top-light-grey{border-color:#eee!important}.border-top-light-grey{border-top:1px solid}.border-right-light-grey{border-right:1px solid;border-color:#eee!important}.border-bottom-light-grey{border-bottom:1px solid;border-color:#eee!important}.border-left-light-grey{border-left:1px solid;border-color:#eee!important}.medium-grey{color:#ccc!important}.fill-medium-grey{background-color:#ccc!important}.border-medium-grey,.border-top-medium-grey{border-color:#ccc!important}.border-top-medium-grey{border-top:1px solid}.border-right-medium-grey{border-right:1px solid;border-color:#ccc!important}.border-bottom-medium-grey{border-bottom:1px solid;border-color:#ccc!important}.border-left-medium-grey{border-left:1px solid;border-color:#ccc!important}.medium-dark-grey{color:#999!important}.fill-medium-dark-grey{background-color:#999!important}.border-medium-dark-grey{border-color:#999!important}.border-top-medium-dark-grey{border-top:1px solid;border-color:#999!important}.border-right-medium-dark-grey{border-right:1px solid;border-color:#999!important}.border-bottom-medium-dark-grey{border-bottom:1px solid;border-color:#999!important}.border-left-medium-dark-grey{border-left:1px solid;border-color:#999!important}.dark-grey{color:#222!important}.fill-dark-grey{background-color:#222!important}.border-dark-grey,.border-top-dark-grey{border-color:#222!important}.border-top-dark-grey{border-top:1px solid}.border-right-dark-grey{border-right:1px solid;border-color:#222!important}.border-bottom-dark-grey{border-bottom:1px solid;border-color:#222!important}.border-left-dark-grey{border-left:1px solid;border-color:#222!important}.soft-blue{color:#eff1f5!important}.fill-soft-blue{background-color:#eff1f5!important}.border-soft-blue,.border-top-soft-blue{border-color:#eff1f5!important}.border-top-soft-blue{border-top:1px solid}.border-right-soft-blue{border-right:1px solid;border-color:#eff1f5!important}.border-bottom-soft-blue{border-bottom:1px solid;border-color:#eff1f5!important}.border-left-soft-blue{border-left:1px solid;border-color:#eff1f5!important}.dark-soft-blue{color:#e9ecf1!important}.fill-dark-soft-blue{background-color:#e9ecf1!important}.border-dark-soft-blue,.border-top-dark-soft-blue{border-color:#e9ecf1!important}.border-top-dark-soft-blue{border-top:1px solid}.border-right-dark-soft-blue{border-right:1px solid;border-color:#e9ecf1!important}.border-bottom-dark-soft-blue{border-bottom:1px solid;border-color:#e9ecf1!important}.border-left-dark-soft-blue{border-left:1px solid;border-color:#e9ecf1!important}.darker-soft-blue{color:#e6e9ef!important}.fill-darker-soft-blue{background-color:#e6e9ef!important}.border-darker-soft-blue,.border-top-darker-soft-blue{border-color:#e6e9ef!important}.border-top-darker-soft-blue{border-top:1px solid}.border-right-darker-soft-blue{border-right:1px solid;border-color:#e6e9ef!important}.border-bottom-darker-soft-blue{border-bottom:1px solid;border-color:#e6e9ef!important}.border-left-darker-soft-blue{border-left:1px solid;border-color:#e6e9ef!important}.light-soft-blue{color:#f5f6f9!important}.fill-light-soft-blue{background-color:#f5f6f9!important}.border-light-soft-blue,.border-top-light-soft-blue{border-color:#f5f6f9!important}.border-top-light-soft-blue{border-top:1px solid}.border-right-light-soft-blue{border-right:1px solid;border-color:#f5f6f9!important}.border-bottom-light-soft-blue{border-bottom:1px solid;border-color:#f5f6f9!important}.border-left-light-soft-blue{border-left:1px solid;border-color:#f5f6f9!important}.lighter-soft-blue{color:#f8f9fb!important}.fill-lighter-soft-blue{background-color:#f8f9fb!important}.border-lighter-soft-blue,.border-top-lighter-soft-blue{border-color:#f8f9fb!important}.border-top-lighter-soft-blue{border-top:1px solid}.border-right-lighter-soft-blue{border-right:1px solid;border-color:#f8f9fb!important}.border-bottom-lighter-soft-blue{border-bottom:1px solid;border-color:#f8f9fb!important}.border-left-lighter-soft-blue{border-left:1px solid;border-color:#f8f9fb!important}:root{--color-gray:var(--color-gray-100);--color-gray-50:#f6f7f8;--color-gray-100:#eff1f4;--color-gray-200:#e3e5e8;--color-gray-300:#d7d9dc;--color-gray-400:#cbcdcf;--color-gray-500:#bfc1c3;--color-primary:var(--color-primary-500);--color-primary-50:#e4edfe;--color-primary-100:#bbd2fe;--color-primary-200:#8db4fd;--color-primary-300:#5f95fc;--color-primary-400:#3d7ffb;--color-primary-500:#1b68fa;--color-primary-600:#1860f9;--color-primary-700:#1455f9;--color-primary-800:#104bf8;--color-primary-900:#083af6;--color-primary-A100:#fff;--color-primary-A200:#ebefff;--color-primary-A400:#b8c4ff;--color-primary-A700:#9fafff;--color-secondary:var(--color-secondary-500);--color-secondary-50:#ebf7ed;--color-secondary-100:#cdead3;--color-secondary-200:#acdcb5;--color-secondary-300:#8bce97;--color-secondary-400:#72c481;--color-secondary-500:#59b96b;--color-secondary-600:#51b263;--color-secondary-700:#48aa58;--color-secondary-800:#3ea24e;--color-secondary-900:#2e933c;--color-secondary-A100:#d9ffde;--color-secondary-A200:#a6ffb1;--color-secondary-A400:#73ff84;--color-secondary-A700:#59ff6e}fw-popover{display:none}.fw-popover-panel .fw-popover-content-wrapper{position:relative;background:#fff;border-radius:4px;box-shadow:0 1px 4px rgba(0,0,0,.15)!important;border:1px solid #d6dbe5;padding:16px}.fw-popover-panel .fw-popover-content-wrapper .fw-popover-caret{position:absolute;overflow:hidden;width:25px;height:25px}.fw-popover-panel .fw-popover-content-wrapper .fw-popover-caret:after{display:block;content:\"\";width:16px;height:16px;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.15)!important;border:1px solid #d6dbe5;transform:rotate(45deg);position:relative}.fw-popover-panel.fw-popover-above{margin-bottom:-20px;padding-bottom:20px}.fw-popover-panel.fw-popover-above .fw-popover-caret{left:0;bottom:-16px;height:16px}.fw-popover-panel.fw-popover-above .fw-popover-caret:after{margin:-8px auto}.fw-popover-panel.fw-popover-below{margin-top:-20px;padding-top:20px}.fw-popover-panel.fw-popover-below .fw-popover-caret{left:0;top:-16px;height:16px}.fw-popover-panel.fw-popover-below .fw-popover-caret:after{top:16px;margin:-8px auto}.fw-popover-panel.fw-popover-left{margin-right:-20px;padding-right:20px}.fw-popover-panel.fw-popover-left .fw-popover-caret{right:-16px;top:0;width:16px}.fw-popover-panel.fw-popover-left .fw-popover-caret:after{top:calc(50% - 8px);left:-8px}.fw-popover-panel.fw-popover-right{margin-left:-20px;padding-left:20px}.fw-popover-panel.fw-popover-right .fw-popover-caret{left:-16px;top:0;width:16px}.fw-popover-panel.fw-popover-right .fw-popover-caret:after{top:calc(50% - 8px);right:-8px}"]
1292
- },] }
1293
- ];
1294
- FwPopoverComponent.propDecorators = {
1295
- templateRef: [{ type: i0.ViewChild, args: ['content',] }]
1296
- };
1297
-
1298
- var FwPopoverModule = /** @class */ (function () {
1299
- function FwPopoverModule() {
1300
- }
1301
- return FwPopoverModule;
1302
- }());
1303
- FwPopoverModule.decorators = [
1304
- { type: i0.NgModule, args: [{
1305
- imports: [
1306
- common.CommonModule,
1307
- ],
1308
- exports: [
1309
- FwPopoverComponent,
1310
- FwPopoverTriggerComponent,
1311
- FwPopoverTriggerDirective,
1312
- ],
1313
- declarations: [
1314
- FwPopoverComponent,
1315
- FwPopoverTriggerComponent,
1316
- FwPopoverTriggerDirective,
1317
- ],
1318
- entryComponents: [
1319
- FwPopoverComponent,
1320
- FwPopoverTriggerComponent,
1321
- ],
1322
- providers: [
1323
- overlay.Overlay,
1324
- ],
1325
- },] }
1326
- ];
1327
-
1328
- var FwTableComponent = /** @class */ (function () {
1329
- function FwTableComponent(changeDetectorRef) {
1330
- this.changeDetectorRef = changeDetectorRef;
1331
- this.columns = [];
1332
- this.dataSource = [];
1333
- this.layout = 'basic';
1334
- this.pageSize = null;
1335
- this.webCompPageSize = null;
1336
- this.sort = null;
1337
- this.sortColumn = '';
1338
- this.sortOrder = 'asc';
1339
- this.displayedColumns = [];
1340
- this.filters = new forms.FormGroup({});
1341
- // to support updating column header labels
1342
- this.trackByIndex = function (i) { return i; };
1343
- }
1344
- FwTableComponent.prototype.ngOnInit = function () {
1345
- var _this = this;
1346
- this.setDataSource();
1347
- this.setColumns();
1348
- this.addFilterControls();
1349
- this.setFilter();
1350
- this.matDataSource.filterPredicate = function (row, filter) {
1351
- var filters = JSON.parse(filter);
1352
- for (var filter_1 in filters) {
1353
- var filterValue = filters[filter_1];
1354
- var rowValue = row[filter_1];
1355
- // multi-select
1356
- if (Array.isArray(filterValue) && filterValue.length > 0 && !filterValue.includes(rowValue)) {
1357
- return false;
1358
- }
1359
- // input or select
1360
- if (!Array.isArray(filterValue) && !String(rowValue).toLowerCase().includes(String(filterValue !== null && filterValue !== void 0 ? filterValue : '').toLowerCase())) {
1361
- return false;
1362
- }
1363
- }
1364
- return true;
1365
- };
1366
- this.filters.valueChanges.pipe(operators.debounceTime(200)).subscribe(function () { return _this.setFilter(); });
1367
- };
1368
- FwTableComponent.prototype.ngAfterViewInit = function () {
1369
- this.setSort();
1370
- this.setPaginator();
1371
- };
1372
- FwTableComponent.prototype.ngOnChanges = function (changes) {
1373
- if (changes.columns) {
1374
- this.setColumns();
1375
- }
1376
- if (changes.dataSource) {
1377
- this.setDataSource();
1378
- }
1379
- if (changes.sort || changes.dataSource) {
1380
- this.setSort();
1381
- }
1382
- if (changes.pageSize || changes['page-size']) {
1383
- this.setPaginator();
1384
- }
1385
- };
1386
- Object.defineProperty(FwTableComponent.prototype, "isCompact", {
1387
- get: function () {
1388
- return this.layout === 'compact';
1389
- },
1390
- enumerable: false,
1391
- configurable: true
1392
- });
1393
- Object.defineProperty(FwTableComponent.prototype, "paginationSize", {
1394
- get: function () {
1395
- return this.pageSize || this.webCompPageSize || 0;
1396
- },
1397
- enumerable: false,
1398
- configurable: true
1399
- });
1400
- Object.defineProperty(FwTableComponent.prototype, "isSortEnabled", {
1401
- get: function () {
1402
- return this.sort !== null;
1403
- },
1404
- enumerable: false,
1405
- configurable: true
1406
- });
1407
- FwTableComponent.prototype.addFilterControls = function () {
1408
- var e_1, _a;
1409
- try {
1410
- for (var _b = __values(this.columns), _c = _b.next(); !_c.done; _c = _b.next()) {
1411
- var column = _c.value;
1412
- this.filters.addControl(column.key, new forms.FormControl());
1413
- }
1414
- }
1415
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
1416
- finally {
1417
- try {
1418
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
1419
- }
1420
- finally { if (e_1) throw e_1.error; }
1421
- }
1422
- };
1423
- FwTableComponent.prototype.setDataSource = function () {
1424
- this.matDataSource = new table.MatTableDataSource(this.dataSource);
1425
- };
1426
- FwTableComponent.prototype.setColumns = function () {
1427
- this.displayedColumns = this.columns.map(function (column) { return column.key; });
1428
- };
1429
- FwTableComponent.prototype.setFilter = function () {
1430
- this.matDataSource.filter = JSON.stringify(this.filters.value);
1431
- };
1432
- FwTableComponent.prototype.setSort = function () {
1433
- if (!this.matSort || this.sort === null) {
1434
- return;
1435
- }
1436
- var sortSplit = this.sort.split(' ');
1437
- this.sortColumn = sortSplit[0];
1438
- if (['asc', 'desc'].includes(sortSplit[1])) {
1439
- this.sortOrder = sortSplit[1];
1440
- }
1441
- else {
1442
- console.warn("Sort order '" + sortSplit[1] + "' is not 'asc' or 'desc', defaulting to 'asc'");
1443
- }
1444
- if (this.sortColumn) {
1445
- this.matSort.sort({ id: this.sortColumn, start: this.sortOrder, disableClear: false });
1446
- var sortHeader = this.matSort.sortables.get(this.sortColumn);
1447
- if (sortHeader) {
1448
- sortHeader._setAnimationTransitionState({ toState: 'active' });
1449
- }
1450
- else {
1451
- console.warn("Unable to find sort column '" + this.sortColumn + "'. Initial sort failed.");
1452
- }
1453
- }
1454
- this.matDataSource.sort = this.matSort;
1455
- };
1456
- FwTableComponent.prototype.setPaginator = function () {
1457
- // ensures ui updates correctly when paginator options change
1458
- this.changeDetectorRef.detectChanges();
1459
- this.matDataSource.paginator = this.matPaginator;
1460
- };
1461
- // necessary for web component to trigger this.filter.valueChanges
1462
- FwTableComponent.prototype.onInputFilter = function (event, column) {
1463
- var _this = this;
1464
- // defer setting filter control as event.target.value is not set yet
1465
- setTimeout(function () { return _this.filters.get(column.key).setValue(event.target.value); });
1466
- };
1467
- // necessary for web component to trigger this.filter.valueChanges
1468
- FwTableComponent.prototype.onSelectFilter = function (event, column) {
1469
- var innerText = event.target.innerText;
1470
- this.filters.get(column.key).setValue(innerText === '- none -' ? null : innerText);
1471
- };
1472
- // necessary for web component to trigger this.filter.valueChanges
1473
- FwTableComponent.prototype.onMultiSelectFilter = function (event, column) {
1474
- var value = this.filters.controls[column.key].value || [];
1475
- var innerText = event.target.parentElement.innerText;
1476
- if (value.includes(innerText)) {
1477
- value = value.filter(function (v) { return v !== innerText; });
1478
- }
1479
- else {
1480
- value.push(innerText);
1481
- }
1482
- this.filters.get(column.key).setValue(value.length === 1 && innerText === ''
1483
- ? null // when all checboxes have been deselected
1484
- : value);
1485
- };
1486
- return FwTableComponent;
1487
- }());
1488
- FwTableComponent.decorators = [
1489
- { type: i0.Component, args: [{
1490
- host: {
1491
- 'class': 'fw-table',
1492
- '[class.compact]': 'isCompact',
1493
- },
1494
- selector: 'fw-table',
1495
- template: "<table mat-table [dataSource]=\"matDataSource\" matSort>\n <ng-container *ngFor=\"let column of columns; trackBy: trackByIndex\">\n <ng-container [matColumnDef]=\"column.key\">\n\n <ng-template #tableHeaders>\n <ng-container [ngSwitch]=\"column.filter?.control\">\n <ng-container *ngSwitchCase=\"'input'\">\n <mat-form-field *ngIf=\"filters.get(column.key) as control\" appearance=\"outline\" (click)=\"$event.stopPropagation()\">\n <mat-label *ngIf=\"!isCompact\">{{ column.label }}</mat-label>\n <input matInput [formControl]=\"control\" [placeholder]=\"column.filter.placeholder\" (keydown)=\"$event.stopPropagation(); onInputFilter($event, column);\">\n </mat-form-field>\n </ng-container>\n <ng-container *ngSwitchCase=\"'select'\">\n <mat-form-field *ngIf=\"filters.get(column.key) as control\" appearance=\"outline\" (click)=\"$event.stopPropagation()\">\n <mat-label *ngIf=\"!isCompact\">{{ column.label }}</mat-label>\n <mat-select [formControl]=\"control\" [placeholder]=\"column.filter.placeholder\">\n <mat-option (click)=\"onSelectFilter($event, column);\">- none -</mat-option>\n <mat-option *ngFor=\"let option of column.filter.options\" [value]=\"option\" (click)=\"onSelectFilter($event, column);\">{{ option }}</mat-option>\n </mat-select>\n </mat-form-field>\n </ng-container>\n <ng-container *ngSwitchCase=\"'multi-select'\">\n <mat-form-field *ngIf=\"filters.get(column.key) as control\" appearance=\"outline\" (click)=\"$event.stopPropagation()\">\n <mat-label *ngIf=\"!isCompact\">{{ column.label }}</mat-label>\n <mat-select [formControl]=\"control\" [placeholder]=\"column.filter.placeholder\" multiple=\"true\">\n <mat-option *ngFor=\"let option of column.filter.options\" [value]=\"option\" (click)=\"onMultiSelectFilter($event, column);\">{{ option }}</mat-option>\n </mat-select>\n </mat-form-field>\n </ng-container>\n <ng-container *ngSwitchDefault>{{ column.label }}</ng-container>\n </ng-container>\n </ng-template>\n\n <ng-container *ngIf=\"isSortEnabled\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <ng-container [ngTemplateOutlet]=\"tableHeaders\"></ng-container>\n </th>\n </ng-container>\n\n <ng-container *ngIf=\"!isSortEnabled\">\n <th mat-header-cell *matHeaderCellDef>\n <ng-container [ngTemplateOutlet]=\"tableHeaders\"></ng-container>\n </th>\n </ng-container>\n\n <td mat-cell *matCellDef=\"let element\"> {{ element[column.key] }} </td>\n </ng-container>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n</table>\n<mat-paginator *ngIf=\"paginationSize > 0\" [pageSize]=\"paginationSize\"></mat-paginator>\n\n\n\n",
1496
- styles: [":host{display:block;width:100%}:host:not(.compact) table.mat-table tr.mat-header-row,:host:not(.compact) table.mat-table tr.mat-row{height:56px}:host.compact table.mat-table tr.mat-header-row,:host.compact table.mat-table tr.mat-row{height:32px}:host.compact mat-paginator.mat-paginator{align-items:center;display:flex;height:32px;justify-content:flex-end}table.mat-table{width:100%}table.mat-table td,table.mat-table th{vertical-align:middle}table.mat-table td.mat-cell,table.mat-table td.mat-header-cell,table.mat-table th.mat-cell,table.mat-table th.mat-header-cell{border-bottom-color:var(--color-gray)}"]
1497
- },] }
1498
- ];
1499
- FwTableComponent.ctorParameters = function () { return [
1500
- { type: i0.ChangeDetectorRef }
1501
- ]; };
1502
- FwTableComponent.propDecorators = {
1503
- columns: [{ type: i0.Input }],
1504
- dataSource: [{ type: i0.Input }],
1505
- layout: [{ type: i0.Input }],
1506
- pageSize: [{ type: i0.Input }],
1507
- webCompPageSize: [{ type: i0.Input, args: ['page-size',] }],
1508
- sort: [{ type: i0.Input }],
1509
- matPaginator: [{ type: i0.ViewChild, args: [paginator.MatPaginator,] }],
1510
- matSort: [{ type: i0.ViewChild, args: [sort.MatSort,] }]
1511
- };
1512
-
1513
- var FwTableModule = /** @class */ (function () {
1514
- function FwTableModule() {
1515
- }
1516
- return FwTableModule;
1517
- }());
1518
- FwTableModule.decorators = [
1519
- { type: i0.NgModule, args: [{
1520
- imports: [
1521
- common.CommonModule,
1522
- forms.FormsModule,
1523
- forms.ReactiveFormsModule,
1524
- input.MatInputModule,
1525
- paginator.MatPaginatorModule,
1526
- select.MatSelectModule,
1527
- sort.MatSortModule,
1528
- table.MatTableModule,
1529
- ],
1530
- exports: [
1531
- FwTableComponent,
1532
- ],
1533
- declarations: [
1534
- FwTableComponent,
1535
- ],
1536
- entryComponents: [
1537
- FwTableComponent,
1538
- ]
1539
- },] }
1540
- ];
1541
-
1542
- /**
1543
- * Generated bundle index. Do not edit.
1544
- */
1545
-
1546
- exports.FwButtonComponent = FwButtonComponent;
1547
- exports.FwButtonGroupComponent = FwButtonGroupComponent;
1548
- exports.FwButtonGroupModule = FwButtonGroupModule;
1549
- exports.FwButtonModule = FwButtonModule;
1550
- exports.FwChoiceDialog = FwChoiceDialog;
1551
- exports.FwConfirmDialog = FwConfirmDialog;
1552
- exports.FwDialogModule = FwDialogModule;
1553
- exports.FwDialogService = FwDialogService;
1554
- exports.FwErrorDialog = FwErrorDialog;
1555
- exports.FwNotificationComponent = FwNotificationComponent;
1556
- exports.FwNotificationContainerComponent = FwNotificationContainerComponent;
1557
- exports.FwNotificationModule = FwNotificationModule;
1558
- exports.FwNotificationService = FwNotificationService;
1559
- exports.FwPopoverComponent = FwPopoverComponent;
1560
- exports.FwPopoverModule = FwPopoverModule;
1561
- exports.FwPopoverTriggerComponent = FwPopoverTriggerComponent;
1562
- exports.FwPopoverTriggerDirective = FwPopoverTriggerDirective;
1563
- exports.FwPortalDialog = FwPortalDialog;
1564
- exports.FwTableComponent = FwTableComponent;
1565
- exports.FwTableModule = FwTableModule;
1566
- exports.MinimalTranslationService = MinimalTranslationService;
1567
- exports.TranslationService = TranslationService;
1568
- exports.genId = genId;
1569
- exports.ɵ0 = ɵ0;
1570
- exports.ɵa = PipesModule;
1571
- exports.ɵb = TranslatePipe;
1572
- exports.ɵc = TrustHtmlPipe;
1573
- exports.ɵd = FwNotificationTimerService;
1574
-
1575
- Object.defineProperty(exports, '__esModule', { value: true });
1576
-
1577
- })));
1578
- //# sourceMappingURL=flywheel-io-vision.umd.js.map