@flywheel-io/vision 0.3.0 → 0.4.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 (40) hide show
  1. package/bundles/flywheel-io-vision.umd.js +419 -22
  2. package/bundles/flywheel-io-vision.umd.js.map +1 -1
  3. package/bundles/flywheel-io-vision.umd.min.js +1 -1
  4. package/bundles/flywheel-io-vision.umd.min.js.map +1 -1
  5. package/components/dialog/choice-dialog.component.d.ts +24 -0
  6. package/components/dialog/confirm-dialog.component.d.ts +12 -0
  7. package/components/dialog/dialog.module.d.ts +2 -0
  8. package/components/dialog/dialog.service.d.ts +19 -0
  9. package/components/dialog/error-dialog.component.d.ts +10 -0
  10. package/components/dialog/portal-dialog.component.d.ts +25 -0
  11. package/components/notification/notification-container/notification-container.component.d.ts +2 -2
  12. package/components/shared/pipes/pipes.module.d.ts +4 -0
  13. package/components/shared/pipes/translate.pipe.d.ts +15 -0
  14. package/components/shared/pipes/trusthtml.pipe.d.ts +7 -0
  15. package/components/shared/translation.service.d.ts +11 -0
  16. package/esm2015/components/dialog/choice-dialog.component.js +52 -0
  17. package/esm2015/components/dialog/confirm-dialog.component.js +40 -0
  18. package/esm2015/components/dialog/dialog.module.js +45 -0
  19. package/esm2015/components/dialog/dialog.service.js +69 -0
  20. package/esm2015/components/dialog/error-dialog.component.js +32 -0
  21. package/esm2015/components/dialog/portal-dialog.component.js +88 -0
  22. package/esm2015/components/notification/notification/notification.component.js +3 -3
  23. package/esm2015/components/notification/notification-container/notification-container.component.js +17 -16
  24. package/esm2015/components/popover/popover.component.js +1 -1
  25. package/esm2015/components/shared/pipes/pipes.module.js +24 -0
  26. package/esm2015/components/shared/pipes/translate.pipe.js +40 -0
  27. package/esm2015/components/shared/pipes/trusthtml.pipe.js +20 -0
  28. package/esm2015/components/shared/translation.service.js +22 -0
  29. package/esm2015/flywheel-io-vision.js +5 -2
  30. package/esm2015/public-api.js +8 -1
  31. package/fesm2015/flywheel-io-vision.js +420 -23
  32. package/fesm2015/flywheel-io-vision.js.map +1 -1
  33. package/flywheel-io-vision.d.ts +4 -1
  34. package/flywheel-io-vision.metadata.json +1 -1
  35. package/package.json +2 -2
  36. package/public-api.d.ts +7 -0
  37. package/scss/config/colors.scss +5 -2
  38. package/scss/material/overrides.scss +8 -20
  39. package/styles.css +104 -109
  40. package/styles.scss +0 -3
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@angular/material/button'), require('rxjs'), require('@angular/material/icon'), require('@angular/cdk/overlay'), require('@angular/cdk/portal'), require('@angular/forms'), require('@angular/material/paginator'), require('@angular/material/sort'), require('@angular/material/table'), require('rxjs/operators'), 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', 'rxjs', '@angular/material/icon', '@angular/cdk/overlay', '@angular/cdk/portal', '@angular/forms', '@angular/material/paginator', '@angular/material/sort', '@angular/material/table', 'rxjs/operators', '@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.rxjs, global.ng.material.icon, global.ng.cdk.overlay, global.ng.cdk.portal, global.ng.forms, global.ng.material.paginator, global.ng.material.sort, global.ng.material.table, global.rxjs.operators, global.ng.material.input, global.ng.material.select));
5
- }(this, (function (exports, i0, common, button, rxjs, icon, overlay, portal, forms, paginator, sort, table, operators, input, select) { 'use strict';
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
6
 
7
7
  var FwButtonGroupComponent = /** @class */ (function () {
8
8
  function FwButtonGroupComponent() {
@@ -102,6 +102,155 @@
102
102
  },] }
103
103
  ];
104
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
+
105
254
  /******************************************************************************
106
255
  Copyright (c) Microsoft Corporation.
107
256
 
@@ -429,6 +578,241 @@
429
578
  return typeof state === "function" ? receiver === state : state.has(receiver);
430
579
  }
431
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
+
432
816
  function genId() {
433
817
  return String.prototype.padStart(24, Math.floor(Math.random() * Date.now()).toString(16));
434
818
  }
@@ -468,15 +852,15 @@
468
852
  this.notificationService = notificationService;
469
853
  this.limit = 3;
470
854
  this.notifications = [];
471
- this.showMore = false;
472
- this.showLess = false;
855
+ this.expanded = false;
473
856
  this.subscriptions = {
474
- notifications: rxjs.Subscription.EMPTY
857
+ notifications: rxjs.Subscription.EMPTY,
475
858
  };
476
859
  this.subscriptions.notifications = this.notificationService.notifications$.subscribe(function (notifications) {
477
860
  _this.notifications = notifications;
478
- _this.showMore = _this.notifications.length > 1;
479
- _this.showLess = false;
861
+ if (notifications.length === 0) {
862
+ _this.expanded = false;
863
+ }
480
864
  _this.cdr.markForCheck();
481
865
  });
482
866
  }
@@ -501,7 +885,7 @@
501
885
  var level = this.notifications.length > this.limit
502
886
  ? index - (this.notifications.length - this.limit)
503
887
  : index;
504
- if (this.showLess) {
888
+ if (this.expanded) {
505
889
  cssClass = 'default';
506
890
  }
507
891
  else {
@@ -509,6 +893,9 @@
509
893
  }
510
894
  return cssClass;
511
895
  };
896
+ FwNotificationContainerComponent.prototype.getEmptyNotification = function (notification) {
897
+ return Object.assign(Object.assign({}, notification), { message: ' ' }); // take up a line but show no content
898
+ };
512
899
  FwNotificationContainerComponent.prototype.onReady = function (notification) {
513
900
  var currentNotification = this.notifications[this.notifications.length - 1];
514
901
  currentNotification.ref = notification;
@@ -519,23 +906,21 @@
519
906
  if (notification === null || notification === void 0 ? void 0 : notification.ref) {
520
907
  notification.ref.stopTimer();
521
908
  }
522
- this.notificationService.dismiss(notification.id);
909
+ if (notification === null || notification === void 0 ? void 0 : notification.id) {
910
+ this.notificationService.dismiss(notification.id);
911
+ }
523
912
  this.cdr.markForCheck();
524
913
  };
525
914
  FwNotificationContainerComponent.prototype.clearAll = function () {
526
- this.showMore = false;
527
- this.showLess = false;
528
915
  this.notificationService.dismissAll();
529
916
  this.cdr.markForCheck();
530
917
  };
531
918
  FwNotificationContainerComponent.prototype.onShowMore = function () {
532
- this.showLess = true;
533
- this.showMore = false;
919
+ this.expanded = true;
534
920
  this.cdr.markForCheck();
535
921
  };
536
922
  FwNotificationContainerComponent.prototype.onShowLess = function () {
537
- this.showMore = true;
538
- this.showLess = false;
923
+ this.expanded = false;
539
924
  this.cdr.markForCheck();
540
925
  };
541
926
  return FwNotificationContainerComponent;
@@ -548,7 +933,7 @@
548
933
  '[class.triple]': 'notifications.length >= 3',
549
934
  },
550
935
  selector: 'fw-notification-container',
551
- template: "<div role=\"list\">\n <fw-notification *ngFor=\"let notification of notifications; index as i\"\n (ready)=\"onReady($event)\"\n (dismiss)=\"onDismiss($event)\"\n [class]=\"notificationClass(i)\"\n [notification]=\"notification\"\n [attr.aria-label]=\"notification.type + ' : ' + notification.message\"\n role=\"listitem\"\n ></fw-notification>\n <div class=\"buttons\">\n <fw-button *ngIf=\"showLess\" (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=\"showMore\" (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",
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",
552
937
  encapsulation: i0.ViewEncapsulation.None,
553
938
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
554
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)}"]
@@ -656,11 +1041,11 @@
656
1041
  '(click)': 'onClickDismiss()'
657
1042
  },
658
1043
  selector: 'fw-notification',
659
- template: "<ng-container>{{ notification?.message }}</ng-container>",
1044
+ template: "{{ notification?.message }}",
660
1045
  providers: [FwNotificationTimerService],
661
1046
  encapsulation: i0.ViewEncapsulation.None,
662
1047
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
663
- styles: ["fw-notification{display:block;border-radius:4px;box-sizing:border-box;margin:5px 24px;max-width:33vw;min-width:344px;padding:14px 16px;height:48px;transform-origin:center;background-color:#2f96b4;border:1px solid hsla(0,0%,100%,.7019607843137254);box-shadow:0 0 12px #999;color:#fff;opacity:.99}fw-notification .notification{display:flex;justify-content:space-between;align-items:center}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}"]
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}"]
664
1049
  },] }
665
1050
  ];
666
1051
  FwNotificationComponent.ctorParameters = function () { return [
@@ -903,7 +1288,7 @@
903
1288
  selector: 'fw-popover',
904
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>",
905
1290
  encapsulation: i0.ViewEncapsulation.None,
906
- 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:#d22239!important}.fill-red{background-color:#d22239!important}.border-red,.border-top-red{border-color:#d22239!important}.border-top-red{border-top:1px solid}.border-right-red{border-right:1px solid;border-color:#d22239!important}.border-bottom-red{border-bottom:1px solid;border-color:#d22239!important}.border-left-red{border-left:1px solid;border-color:#d22239!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:#e7f0fc!important}.fill-light-blue{background-color:#e7f0fc!important}.border-light-blue,.border-top-light-blue{border-color:#e7f0fc!important}.border-top-light-blue{border-top:1px solid}.border-right-light-blue{border-right:1px solid;border-color:#e7f0fc!important}.border-bottom-light-blue{border-bottom:1px solid;border-color:#e7f0fc!important}.border-left-light-blue{border-left:1px solid;border-color:#e7f0fc!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}"]
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}"]
907
1292
  },] }
908
1293
  ];
909
1294
  FwPopoverComponent.propDecorators = {
@@ -1162,6 +1547,11 @@
1162
1547
  exports.FwButtonGroupComponent = FwButtonGroupComponent;
1163
1548
  exports.FwButtonGroupModule = FwButtonGroupModule;
1164
1549
  exports.FwButtonModule = FwButtonModule;
1550
+ exports.FwChoiceDialog = FwChoiceDialog;
1551
+ exports.FwConfirmDialog = FwConfirmDialog;
1552
+ exports.FwDialogModule = FwDialogModule;
1553
+ exports.FwDialogService = FwDialogService;
1554
+ exports.FwErrorDialog = FwErrorDialog;
1165
1555
  exports.FwNotificationComponent = FwNotificationComponent;
1166
1556
  exports.FwNotificationContainerComponent = FwNotificationContainerComponent;
1167
1557
  exports.FwNotificationModule = FwNotificationModule;
@@ -1170,10 +1560,17 @@
1170
1560
  exports.FwPopoverModule = FwPopoverModule;
1171
1561
  exports.FwPopoverTriggerComponent = FwPopoverTriggerComponent;
1172
1562
  exports.FwPopoverTriggerDirective = FwPopoverTriggerDirective;
1563
+ exports.FwPortalDialog = FwPortalDialog;
1173
1564
  exports.FwTableComponent = FwTableComponent;
1174
1565
  exports.FwTableModule = FwTableModule;
1566
+ exports.MinimalTranslationService = MinimalTranslationService;
1567
+ exports.TranslationService = TranslationService;
1175
1568
  exports.genId = genId;
1176
- exports.ɵa = FwNotificationTimerService;
1569
+ exports.ɵ0 = ɵ0;
1570
+ exports.ɵa = PipesModule;
1571
+ exports.ɵb = TranslatePipe;
1572
+ exports.ɵc = TrustHtmlPipe;
1573
+ exports.ɵd = FwNotificationTimerService;
1177
1574
 
1178
1575
  Object.defineProperty(exports, '__esModule', { value: true });
1179
1576