@flywheel-io/vision 0.1.2 → 0.2.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 (24) hide show
  1. package/bundles/flywheel-io-vision.umd.js +313 -41
  2. package/bundles/flywheel-io-vision.umd.js.map +1 -1
  3. package/bundles/flywheel-io-vision.umd.min.js +2 -2
  4. package/bundles/flywheel-io-vision.umd.min.js.map +1 -1
  5. package/components/notification/notification/notification.component.d.ts +16 -0
  6. package/components/notification/notification/notification.model.d.ts +14 -0
  7. package/components/notification/notification-container/notification-container.component.d.ts +21 -0
  8. package/components/notification/notification-timer.service.d.ts +10 -0
  9. package/components/notification/notification.module.d.ts +2 -0
  10. package/components/notification/notification.service.d.ts +10 -0
  11. package/esm2015/components/notification/notification/notification.component.js +60 -0
  12. package/esm2015/components/notification/notification/notification.model.js +9 -0
  13. package/esm2015/components/notification/notification-container/notification-container.component.js +88 -0
  14. package/esm2015/components/notification/notification-timer.service.js +37 -0
  15. package/esm2015/components/notification/notification.module.js +37 -0
  16. package/esm2015/components/notification/notification.service.js +34 -0
  17. package/esm2015/flywheel-io-vision.js +2 -1
  18. package/esm2015/public-api.js +6 -1
  19. package/fesm2015/flywheel-io-vision.js +249 -3
  20. package/fesm2015/flywheel-io-vision.js.map +1 -1
  21. package/flywheel-io-vision.d.ts +1 -0
  22. package/flywheel-io-vision.metadata.json +1 -1
  23. package/package.json +1 -1
  24. package/public-api.d.ts +5 -0
@@ -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('@angular/cdk/overlay'), require('@angular/cdk/portal'), require('rxjs'), 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', '@angular/cdk/overlay', '@angular/cdk/portal', 'rxjs', '@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.ng.cdk.overlay, global.ng.cdk.portal, global.rxjs, 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, core, common, button, overlay, portal, rxjs, 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('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';
6
6
 
7
7
  var FwButtonGroupComponent = /** @class */ (function () {
8
8
  function FwButtonGroupComponent() {
@@ -12,7 +12,7 @@
12
12
  return FwButtonGroupComponent;
13
13
  }());
14
14
  FwButtonGroupComponent.decorators = [
15
- { type: core.Component, args: [{
15
+ { type: i0.Component, args: [{
16
16
  host: {
17
17
  'class': 'fw-button-group',
18
18
  '[class.small]': 'size === "small"',
@@ -22,13 +22,13 @@
22
22
  },
23
23
  selector: 'fw-button-group',
24
24
  template: "<ng-content></ng-content>",
25
- encapsulation: core.ViewEncapsulation.None,
25
+ encapsulation: i0.ViewEncapsulation.None,
26
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
27
  },] }
28
28
  ];
29
29
  FwButtonGroupComponent.propDecorators = {
30
- layout: [{ type: core.Input }],
31
- size: [{ type: core.Input }]
30
+ layout: [{ type: i0.Input }],
31
+ size: [{ type: i0.Input }]
32
32
  };
33
33
 
34
34
  var FwButtonGroupModule = /** @class */ (function () {
@@ -37,7 +37,7 @@
37
37
  return FwButtonGroupModule;
38
38
  }());
39
39
  FwButtonGroupModule.decorators = [
40
- { type: core.NgModule, args: [{
40
+ { type: i0.NgModule, args: [{
41
41
  exports: [
42
42
  FwButtonGroupComponent,
43
43
  ],
@@ -59,7 +59,7 @@
59
59
  return FwButtonComponent;
60
60
  }());
61
61
  FwButtonComponent.decorators = [
62
- { type: core.Component, args: [{
62
+ { type: i0.Component, args: [{
63
63
  host: {
64
64
  'class': 'fw-button',
65
65
  '[class.small]': 'size === "small"',
@@ -73,10 +73,10 @@
73
73
  },] }
74
74
  ];
75
75
  FwButtonComponent.propDecorators = {
76
- color: [{ type: core.Input }],
77
- layout: [{ type: core.Input }],
78
- size: [{ type: core.Input }],
79
- type: [{ type: core.Input }]
76
+ color: [{ type: i0.Input }],
77
+ layout: [{ type: i0.Input }],
78
+ size: [{ type: i0.Input }],
79
+ type: [{ type: i0.Input }]
80
80
  };
81
81
 
82
82
  var FwButtonModule = /** @class */ (function () {
@@ -85,7 +85,7 @@
85
85
  return FwButtonModule;
86
86
  }());
87
87
  FwButtonModule.decorators = [
88
- { type: core.NgModule, args: [{
88
+ { type: i0.NgModule, args: [{
89
89
  imports: [
90
90
  common.CommonModule,
91
91
  button.MatButtonModule,
@@ -420,6 +420,272 @@
420
420
  return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
421
421
  }
422
422
 
423
+ function genId() {
424
+ return String.prototype.padStart(24, Math.floor(Math.random() * Date.now()).toString(16));
425
+ }
426
+ var FwNotificationService = /** @class */ (function () {
427
+ function FwNotificationService() {
428
+ this.notifications$ = new rxjs.BehaviorSubject([]);
429
+ this.notificationQueue = [];
430
+ }
431
+ FwNotificationService.prototype.show = function (notification) {
432
+ if (!notification.id) {
433
+ notification.id = genId();
434
+ }
435
+ this.notificationQueue.push(notification);
436
+ this.notifications$.next(this.notificationQueue);
437
+ };
438
+ FwNotificationService.prototype.dismiss = function (notificationId) {
439
+ this.notificationQueue = this.notificationQueue.filter(function (v) { return v.id !== notificationId; });
440
+ this.notifications$.next(this.notificationQueue);
441
+ };
442
+ FwNotificationService.prototype.dismissAll = function () {
443
+ this.notificationQueue = [];
444
+ this.notifications$.next(this.notificationQueue);
445
+ };
446
+ return FwNotificationService;
447
+ }());
448
+ FwNotificationService.ɵprov = i0.ɵɵdefineInjectable({ factory: function FwNotificationService_Factory() { return new FwNotificationService(); }, token: FwNotificationService, providedIn: "root" });
449
+ FwNotificationService.decorators = [
450
+ { type: i0.Injectable, args: [{
451
+ providedIn: 'root'
452
+ },] }
453
+ ];
454
+
455
+ var FwNotificationContainerComponent = /** @class */ (function () {
456
+ function FwNotificationContainerComponent(cdr, notificationService) {
457
+ var _this = this;
458
+ this.cdr = cdr;
459
+ this.notificationService = notificationService;
460
+ this.limit = 3;
461
+ this.notifications = [];
462
+ this.showMore = false;
463
+ this.showLess = false;
464
+ this.subscriptions = {
465
+ notifications: rxjs.Subscription.EMPTY
466
+ };
467
+ this.subscriptions.notifications = this.notificationService.notifications$.subscribe(function (notifications) {
468
+ _this.notifications = notifications;
469
+ _this.showMore = _this.notifications.length > 1;
470
+ _this.showLess = false;
471
+ _this.cdr.markForCheck();
472
+ });
473
+ }
474
+ FwNotificationContainerComponent.prototype.ngOnDestroy = function () {
475
+ var e_1, _a;
476
+ try {
477
+ for (var _b = __values(Object.values(this.subscriptions)), _c = _b.next(); !_c.done; _c = _b.next()) {
478
+ var subscription = _c.value;
479
+ subscription.unsubscribe();
480
+ }
481
+ }
482
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
483
+ finally {
484
+ try {
485
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
486
+ }
487
+ finally { if (e_1) throw e_1.error; }
488
+ }
489
+ };
490
+ FwNotificationContainerComponent.prototype.notificationClass = function (index) {
491
+ var cssClass;
492
+ var level = this.notifications.length > this.limit
493
+ ? index - (this.notifications.length - this.limit)
494
+ : index;
495
+ if (this.showLess) {
496
+ cssClass = 'default';
497
+ }
498
+ else {
499
+ cssClass = level >= 0 ? "level-" + level : 'hidden';
500
+ }
501
+ return cssClass;
502
+ };
503
+ FwNotificationContainerComponent.prototype.onReady = function (notification) {
504
+ var currentNotification = this.notifications[this.notifications.length - 1];
505
+ currentNotification.ref = notification;
506
+ notification.startTimer();
507
+ };
508
+ FwNotificationContainerComponent.prototype.onDismiss = function (notificationId) {
509
+ var notification = this.notifications.find(function (currentNotification) { return currentNotification.id === notificationId; });
510
+ if (notification) {
511
+ notification.ref.stopTimer();
512
+ }
513
+ this.notificationService.dismiss(notification.id);
514
+ this.cdr.markForCheck();
515
+ };
516
+ FwNotificationContainerComponent.prototype.clearAll = function () {
517
+ this.showMore = false;
518
+ this.showLess = false;
519
+ this.notificationService.dismissAll();
520
+ this.cdr.markForCheck();
521
+ };
522
+ FwNotificationContainerComponent.prototype.onShowMore = function () {
523
+ this.showLess = true;
524
+ this.showMore = false;
525
+ this.cdr.markForCheck();
526
+ };
527
+ FwNotificationContainerComponent.prototype.onShowLess = function () {
528
+ this.showMore = true;
529
+ this.showLess = false;
530
+ this.cdr.markForCheck();
531
+ };
532
+ return FwNotificationContainerComponent;
533
+ }());
534
+ FwNotificationContainerComponent.decorators = [
535
+ { type: i0.Component, args: [{
536
+ host: {
537
+ 'class': 'fw-notification-container',
538
+ '[class.duo]': 'notifications.length === 2',
539
+ '[class.triple]': 'notifications.length >= 3',
540
+ },
541
+ selector: 'fw-notification-container',
542
+ 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",
543
+ encapsulation: i0.ViewEncapsulation.None,
544
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
545
+ 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)}"]
546
+ },] }
547
+ ];
548
+ FwNotificationContainerComponent.ctorParameters = function () { return [
549
+ { type: i0.ChangeDetectorRef },
550
+ { type: FwNotificationService }
551
+ ]; };
552
+
553
+ var FwNotificationTimerService = /** @class */ (function () {
554
+ function FwNotificationTimerService() {
555
+ this.now = 0;
556
+ this.remainingDuration = 0;
557
+ }
558
+ FwNotificationTimerService.prototype.start = function (duration) {
559
+ var _this = this;
560
+ return new Promise(function (resolve) {
561
+ _this.remainingDuration = duration;
562
+ _this.resolver = resolve;
563
+ _this.continue();
564
+ });
565
+ };
566
+ FwNotificationTimerService.prototype.stop = function () {
567
+ clearTimeout(this.timerId);
568
+ this.remainingDuration = 0;
569
+ };
570
+ FwNotificationTimerService.prototype.pause = function () {
571
+ clearTimeout(this.timerId);
572
+ this.remainingDuration =
573
+ this.remainingDuration - new Date().getTime() - this.now;
574
+ };
575
+ FwNotificationTimerService.prototype.continue = function () {
576
+ var _this = this;
577
+ this.now = new Date().getTime();
578
+ this.timerId = window.setTimeout(function () {
579
+ _this.resolver();
580
+ }, this.remainingDuration);
581
+ };
582
+ return FwNotificationTimerService;
583
+ }());
584
+ FwNotificationTimerService.ɵprov = i0.ɵɵdefineInjectable({ factory: function FwNotificationTimerService_Factory() { return new FwNotificationTimerService(); }, token: FwNotificationTimerService, providedIn: "root" });
585
+ FwNotificationTimerService.decorators = [
586
+ { type: i0.Injectable, args: [{
587
+ providedIn: "root",
588
+ },] }
589
+ ];
590
+
591
+ (function (FwNotificationType) {
592
+ FwNotificationType["Error"] = "error";
593
+ FwNotificationType["Info"] = "info";
594
+ FwNotificationType["Success"] = "success";
595
+ FwNotificationType["Wait"] = "wait";
596
+ FwNotificationType["Warning"] = "warning";
597
+ })(exports.FwNotificationType || (exports.FwNotificationType = {}));
598
+
599
+ var FwNotificationComponent = /** @class */ (function () {
600
+ function FwNotificationComponent(cdr, timerService) {
601
+ this.cdr = cdr;
602
+ this.timerService = timerService;
603
+ this.notificationDuration = 9000;
604
+ this.ready = new i0.EventEmitter();
605
+ this.dismiss = new i0.EventEmitter();
606
+ }
607
+ FwNotificationComponent.prototype.ngAfterViewInit = function () {
608
+ this.ready.emit(this);
609
+ this.cdr.markForCheck();
610
+ };
611
+ FwNotificationComponent.prototype.startTimer = function () {
612
+ var _this = this;
613
+ this.timerService.start(this.notificationDuration).then(function () {
614
+ _this.onClickDismiss();
615
+ _this.cdr.markForCheck();
616
+ });
617
+ };
618
+ FwNotificationComponent.prototype.stopTimer = function () {
619
+ this.timerService.stop();
620
+ this.cdr.markForCheck();
621
+ };
622
+ FwNotificationComponent.prototype.onClickDismiss = function () {
623
+ this.dismiss.emit(this.notification.id);
624
+ this.cdr.markForCheck();
625
+ };
626
+ return FwNotificationComponent;
627
+ }());
628
+ FwNotificationComponent.decorators = [
629
+ { type: i0.Component, args: [{
630
+ host: {
631
+ 'class': 'fw-notification',
632
+ '[class.error]': "notification.type === '" + exports.FwNotificationType.Error + "'",
633
+ '[class.info]': "notification.type === '" + exports.FwNotificationType.Info + "'",
634
+ '[class.success]': "notification.type === '" + exports.FwNotificationType.Success + "'",
635
+ '[class.wait]': "notification.type === '" + exports.FwNotificationType.Wait + "'",
636
+ '[class.warning]': "notification.type === '" + exports.FwNotificationType.Warning + "'",
637
+ '(click)': 'onClickDismiss()'
638
+ },
639
+ selector: 'fw-notification',
640
+ template: "<ng-container>{{ notification.message }}</ng-container>",
641
+ providers: [FwNotificationTimerService],
642
+ encapsulation: i0.ViewEncapsulation.None,
643
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
644
+ styles: [":root{--shadow-level-1:0px 1px 2px rgba(0,0,0,0.1);--shadow-level-2:0px 2px 4px rgba(0,0,0,0.1);--shadow-level-3:0px 4px 8px rgba(0,0,0,0.1);--inset-shadow-level-1:inset 0px 1px 2px rgba(0,0,0,0.1);--inset-shadow-level-2:inset 0px 2px 4px rgba(0,0,0,0.1);--inset-shadow-level-3:inset 0px 4px 8px rgba(0,0,0,0.1);--font-primary:\"Inter\",system-ui,-apple-system,BlinkMacSystemFont,Roboto,Ubuntu,\"Helvetica Neue\",Oxygen,Cantarell,sans-serif;--font-secondary:\"Poppins\",system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Ubuntu,\"Helvetica Neue\",Oxygen,Cantarell,sans-serif;--sidebar-width:55px;--menu-bar-width:180px;--page-layout-padding:235px;--radius:6px}*{font-family:var(--font-primary);box-sizing:border-box;text-shadow:1px 1px 1px rgba(0,0,0,.004);text-rendering:optimizeLegibility!important;-webkit-font-smoothing:antialiased!important}html{background:var(--color-gray)}body,html{height:100%}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}"]
645
+ },] }
646
+ ];
647
+ FwNotificationComponent.ctorParameters = function () { return [
648
+ { type: i0.ChangeDetectorRef },
649
+ { type: FwNotificationTimerService }
650
+ ]; };
651
+ FwNotificationComponent.propDecorators = {
652
+ notification: [{ type: i0.Input }],
653
+ notificationDuration: [{ type: i0.Input }],
654
+ ready: [{ type: i0.Output }],
655
+ dismiss: [{ type: i0.Output }]
656
+ };
657
+
658
+ var FwNotificationModule = /** @class */ (function () {
659
+ function FwNotificationModule() {
660
+ }
661
+ return FwNotificationModule;
662
+ }());
663
+ FwNotificationModule.decorators = [
664
+ { type: i0.NgModule, args: [{
665
+ imports: [
666
+ common.CommonModule,
667
+ FwButtonModule,
668
+ FwButtonGroupModule,
669
+ button.MatButtonModule,
670
+ icon.MatIconModule,
671
+ ],
672
+ exports: [
673
+ FwNotificationComponent,
674
+ FwNotificationContainerComponent
675
+ ],
676
+ declarations: [
677
+ FwNotificationComponent,
678
+ FwNotificationContainerComponent,
679
+ ],
680
+ entryComponents: [
681
+ FwNotificationComponent,
682
+ ],
683
+ providers: [
684
+ FwNotificationService,
685
+ ]
686
+ },] }
687
+ ];
688
+
423
689
  var FwPopoverTriggerDirective = /** @class */ (function () {
424
690
  function FwPopoverTriggerDirective(element, overlay, viewContainerRef) {
425
691
  this.element = element;
@@ -543,7 +809,7 @@
543
809
  return FwPopoverTriggerDirective;
544
810
  }());
545
811
  FwPopoverTriggerDirective.decorators = [
546
- { type: core.Directive, args: [{
812
+ { type: i0.Directive, args: [{
547
813
  host: {
548
814
  'class': 'fw-popover-trigger',
549
815
  '(mouseenter)': 'showPopover()',
@@ -554,13 +820,13 @@
554
820
  },] }
555
821
  ];
556
822
  FwPopoverTriggerDirective.ctorParameters = function () { return [
557
- { type: core.ElementRef },
823
+ { type: i0.ElementRef },
558
824
  { type: overlay.Overlay },
559
- { type: core.ViewContainerRef }
825
+ { type: i0.ViewContainerRef }
560
826
  ]; };
561
827
  FwPopoverTriggerDirective.propDecorators = {
562
- popover: [{ type: core.Input, args: ['fwPopoverTriggerFor',] }],
563
- position: [{ type: core.Input, args: ['fwPopoverPosition',] }]
828
+ popover: [{ type: i0.Input, args: ['fwPopoverTriggerFor',] }],
829
+ position: [{ type: i0.Input, args: ['fwPopoverPosition',] }]
564
830
  };
565
831
 
566
832
  var FwPopoverTriggerComponent = /** @class */ (function (_super) {
@@ -585,7 +851,7 @@
585
851
  return FwPopoverTriggerComponent;
586
852
  }(FwPopoverTriggerDirective));
587
853
  FwPopoverTriggerComponent.decorators = [
588
- { type: core.Component, args: [{
854
+ { type: i0.Component, args: [{
589
855
  host: {
590
856
  'class': 'fw-popover-trigger',
591
857
  '(mouseenter)': 'showPopover()',
@@ -596,14 +862,14 @@
596
862
  },] }
597
863
  ];
598
864
  FwPopoverTriggerComponent.ctorParameters = function () { return [
599
- { type: core.ElementRef },
865
+ { type: i0.ElementRef },
600
866
  { type: overlay.Overlay },
601
- { type: core.ViewContainerRef }
867
+ { type: i0.ViewContainerRef }
602
868
  ]; };
603
869
  FwPopoverTriggerComponent.propDecorators = {
604
- popoverId: [{ type: core.Input, args: ['trigger-for',] }],
605
- position: [{ type: core.Input, args: ['position',] }],
606
- popoverTemplateRef: [{ type: core.ViewChild, args: [core.TemplateRef,] }]
870
+ popoverId: [{ type: i0.Input, args: ['trigger-for',] }],
871
+ position: [{ type: i0.Input, args: ['position',] }],
872
+ popoverTemplateRef: [{ type: i0.ViewChild, args: [i0.TemplateRef,] }]
607
873
  };
608
874
 
609
875
  var FwPopoverComponent = /** @class */ (function () {
@@ -612,16 +878,16 @@
612
878
  return FwPopoverComponent;
613
879
  }());
614
880
  FwPopoverComponent.decorators = [
615
- { type: core.Component, args: [{
881
+ { type: i0.Component, args: [{
616
882
  host: { 'class': 'fw-popover' },
617
883
  selector: 'fw-popover',
618
884
  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>",
619
- encapsulation: core.ViewEncapsulation.None,
885
+ encapsulation: i0.ViewEncapsulation.None,
620
886
  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:#2e72f6!important}.fill-bright-blue{background-color:#2e72f6!important}.border-bright-blue,.border-top-bright-blue{border-color:#2e72f6!important}.border-top-bright-blue{border-top:1px solid}.border-right-bright-blue{border-right:1px solid;border-color:#2e72f6!important}.border-bottom-bright-blue{border-bottom:1px solid;border-color:#2e72f6!important}.border-left-bright-blue{border-left:1px solid;border-color:#2e72f6!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}.iron-grey{color:#d3d6db!important}.fill-iron-grey{background-color:#d3d6db!important}.border-iron-grey,.border-top-iron-grey{border-color:#d3d6db!important}.border-top-iron-grey{border-top:1px solid}.border-right-iron-grey{border-right:1px solid;border-color:#d3d6db!important}.border-bottom-iron-grey{border-bottom:1px solid;border-color:#d3d6db!important}.border-left-iron-grey{border-left:1px solid;border-color:#d3d6db!important}.bombay-grey{color:#aaacb0!important}.fill-bombay-grey{background-color:#aaacb0!important}.border-bombay-grey,.border-top-bombay-grey{border-color:#aaacb0!important}.border-top-bombay-grey{border-top:1px solid}.border-right-bombay-grey{border-right:1px solid;border-color:#aaacb0!important}.border-bottom-bombay-grey{border-bottom:1px solid;border-color:#aaacb0!important}.border-left-bombay-grey{border-left:1px solid;border-color:#aaacb0!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}.darker-soft-blue{color:#e9ecf1!important}.fill-darker-soft-blue{background-color:#e9ecf1!important}.border-darker-soft-blue,.border-top-darker-soft-blue{border-color:#e9ecf1!important}.border-top-darker-soft-blue{border-top:1px solid}.border-right-darker-soft-blue{border-right:1px solid;border-color:#e9ecf1!important}.border-bottom-darker-soft-blue{border-bottom:1px solid;border-color:#e9ecf1!important}.border-left-darker-soft-blue{border-left:1px solid;border-color:#e9ecf1!important}.lighter-soft-blue{color:#f5f6f9!important}.fill-lighter-soft-blue{background-color:#f5f6f9!important}.border-lighter-soft-blue,.border-top-lighter-soft-blue{border-color:#f5f6f9!important}.border-top-lighter-soft-blue{border-top:1px solid}.border-right-lighter-soft-blue{border-right:1px solid;border-color:#f5f6f9!important}.border-bottom-lighter-soft-blue{border-bottom:1px solid;border-color:#f5f6f9!important}.border-left-lighter-soft-blue{border-left:1px solid;border-color:#f5f6f9!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-1000);--color-primary-100:#eaf1fe;--color-primary-200:#d5e3fd;--color-primary-300:#c0d5fc;--color-primary-400:#abc7fb;--color-primary-500:#97b9fb;--color-primary-600:#82aafa;--color-primary-700:#6da2ff;--color-primary-800:#588ef8;--color-primary-900:#4380f7;--color-primary-1000:#2e72f6;--color-primary-1100:#2967dd;--color-primary-1200:#255bc5;--color-primary-1300:#2050ac;--color-primary-1400:#1c4494;--color-primary-1500:#083076;--color-primary-1600:#122e62;--color-primary-1700:#0e224a;--color-primary-1800:#061734;--color-primary-1900:#050b19;--color-secondary:var(--color-secondary-900);--color-secondary-100:#ccf1e4;--color-secondary-200:#b3e9d7;--color-secondary-300:#99e2c9;--color-secondary-400:#80dbbc;--color-secondary-500:#66d4ae;--color-secondary-600:#4dcda1;--color-secondary-700:#33c593;--color-secondary-800:#1abe86;--color-secondary-900:#00b778;--color-secondary-1000:#00a56c;--color-secondary-1100:#009260;--color-secondary-1200:#008054;--color-secondary-1300:#006e48;--color-secondary-1400:#005c3c;--color-secondary-1500:#004930;--color-secondary-1600:#002518;--color-secondary-1700:#00120c;--shadow-level-1:0px 1px 2px rgba(0,0,0,0.1);--shadow-level-2:0px 2px 4px rgba(0,0,0,0.1);--shadow-level-3:0px 4px 8px rgba(0,0,0,0.1);--inset-shadow-level-1:inset 0px 1px 2px rgba(0,0,0,0.1);--inset-shadow-level-2:inset 0px 2px 4px rgba(0,0,0,0.1);--inset-shadow-level-3:inset 0px 4px 8px rgba(0,0,0,0.1);--font-primary:\"Inter\",system-ui,-apple-system,BlinkMacSystemFont,Roboto,Ubuntu,\"Helvetica Neue\",Oxygen,Cantarell,sans-serif;--font-secondary:\"Poppins\",system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Ubuntu,\"Helvetica Neue\",Oxygen,Cantarell,sans-serif;--sidebar-width:55px;--menu-bar-width:180px;--page-layout-padding:235px;--radius:6px}*{font-family:var(--font-primary);box-sizing:border-box;text-shadow:1px 1px 1px rgba(0,0,0,.004);text-rendering:optimizeLegibility!important;-webkit-font-smoothing:antialiased!important}html{background:var(--color-gray)}body,html{height:100%}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}"]
621
887
  },] }
622
888
  ];
623
889
  FwPopoverComponent.propDecorators = {
624
- templateRef: [{ type: core.ViewChild, args: ['content',] }]
890
+ templateRef: [{ type: i0.ViewChild, args: ['content',] }]
625
891
  };
626
892
 
627
893
  var FwPopoverModule = /** @class */ (function () {
@@ -630,7 +896,7 @@
630
896
  return FwPopoverModule;
631
897
  }());
632
898
  FwPopoverModule.decorators = [
633
- { type: core.NgModule, args: [{
899
+ { type: i0.NgModule, args: [{
634
900
  imports: [
635
901
  common.CommonModule,
636
902
  ],
@@ -815,7 +1081,7 @@
815
1081
  return FwTableComponent;
816
1082
  }());
817
1083
  FwTableComponent.decorators = [
818
- { type: core.Component, args: [{
1084
+ { type: i0.Component, args: [{
819
1085
  host: {
820
1086
  'class': 'fw-table',
821
1087
  '[class.compact]': 'isCompact',
@@ -826,17 +1092,17 @@
826
1092
  },] }
827
1093
  ];
828
1094
  FwTableComponent.ctorParameters = function () { return [
829
- { type: core.ChangeDetectorRef }
1095
+ { type: i0.ChangeDetectorRef }
830
1096
  ]; };
831
1097
  FwTableComponent.propDecorators = {
832
- columns: [{ type: core.Input }],
833
- dataSource: [{ type: core.Input }],
834
- layout: [{ type: core.Input }],
835
- pageSize: [{ type: core.Input }],
836
- webCompPageSize: [{ type: core.Input, args: ['page-size',] }],
837
- sort: [{ type: core.Input }],
838
- matPaginator: [{ type: core.ViewChild, args: [paginator.MatPaginator,] }],
839
- matSort: [{ type: core.ViewChild, args: [sort.MatSort,] }]
1098
+ columns: [{ type: i0.Input }],
1099
+ dataSource: [{ type: i0.Input }],
1100
+ layout: [{ type: i0.Input }],
1101
+ pageSize: [{ type: i0.Input }],
1102
+ webCompPageSize: [{ type: i0.Input, args: ['page-size',] }],
1103
+ sort: [{ type: i0.Input }],
1104
+ matPaginator: [{ type: i0.ViewChild, args: [paginator.MatPaginator,] }],
1105
+ matSort: [{ type: i0.ViewChild, args: [sort.MatSort,] }]
840
1106
  };
841
1107
 
842
1108
  var FwTableModule = /** @class */ (function () {
@@ -845,7 +1111,7 @@
845
1111
  return FwTableModule;
846
1112
  }());
847
1113
  FwTableModule.decorators = [
848
- { type: core.NgModule, args: [{
1114
+ { type: i0.NgModule, args: [{
849
1115
  imports: [
850
1116
  common.CommonModule,
851
1117
  forms.FormsModule,
@@ -876,12 +1142,18 @@
876
1142
  exports.FwButtonGroupComponent = FwButtonGroupComponent;
877
1143
  exports.FwButtonGroupModule = FwButtonGroupModule;
878
1144
  exports.FwButtonModule = FwButtonModule;
1145
+ exports.FwNotificationComponent = FwNotificationComponent;
1146
+ exports.FwNotificationContainerComponent = FwNotificationContainerComponent;
1147
+ exports.FwNotificationModule = FwNotificationModule;
1148
+ exports.FwNotificationService = FwNotificationService;
879
1149
  exports.FwPopoverComponent = FwPopoverComponent;
880
1150
  exports.FwPopoverModule = FwPopoverModule;
881
1151
  exports.FwPopoverTriggerComponent = FwPopoverTriggerComponent;
882
1152
  exports.FwPopoverTriggerDirective = FwPopoverTriggerDirective;
883
1153
  exports.FwTableComponent = FwTableComponent;
884
1154
  exports.FwTableModule = FwTableModule;
1155
+ exports.genId = genId;
1156
+ exports.ɵa = FwNotificationTimerService;
885
1157
 
886
1158
  Object.defineProperty(exports, '__esModule', { value: true });
887
1159