mis-crystal-design-system 1.1.9 → 1.1.91

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 (54) hide show
  1. package/bundles/mis-crystal-design-system-src-datepicker.umd.js +1 -1
  2. package/bundles/mis-crystal-design-system-src-datepicker.umd.js.map +1 -1
  3. package/bundles/mis-crystal-design-system-src-datepicker.umd.min.js.map +1 -1
  4. package/bundles/mis-crystal-design-system.umd.js +437 -30
  5. package/bundles/mis-crystal-design-system.umd.js.map +1 -1
  6. package/bundles/mis-crystal-design-system.umd.min.js +6 -6
  7. package/bundles/mis-crystal-design-system.umd.min.js.map +1 -1
  8. package/drawer/drawer-body/drawer-body.component.d.ts +12 -0
  9. package/drawer/drawer-constants.d.ts +3 -0
  10. package/drawer/drawer-ref.d.ts +13 -0
  11. package/drawer/drawer.module.d.ts +5 -0
  12. package/drawer/drawer.scss +20 -0
  13. package/drawer/drawer.service.d.ts +18 -0
  14. package/drawer/index.d.ts +1 -0
  15. package/drawer/public_api.d.ts +4 -0
  16. package/esm2015/chip/chip.module.js +1 -1
  17. package/esm2015/drawer/drawer-body/drawer-body.component.js +44 -0
  18. package/esm2015/drawer/drawer-constants.js +4 -0
  19. package/esm2015/drawer/drawer-ref.js +28 -0
  20. package/esm2015/drawer/drawer.module.js +28 -0
  21. package/esm2015/drawer/drawer.service.js +59 -0
  22. package/esm2015/drawer/index.js +2 -0
  23. package/esm2015/drawer/public_api.js +5 -0
  24. package/esm2015/fab/fab.component.js +66 -0
  25. package/esm2015/fab/fab.module.js +16 -0
  26. package/esm2015/fab/index.js +2 -0
  27. package/esm2015/fab/public_api.js +3 -0
  28. package/esm2015/mis-crystal-design-system.js +1 -23
  29. package/esm2015/multi-select-dropdown/multi-select-dropdown.component.js +1 -1
  30. package/esm2015/nested-multi-select-dropdown/nested-multi-select-dropdown.component.js +1 -1
  31. package/esm2015/public-api.js +16 -13
  32. package/esm2015/table/table.component.js +1 -1
  33. package/esm2015/toast/index.js +2 -0
  34. package/esm2015/toast/public_api.js +3 -0
  35. package/esm2015/toast/toast.component.js +30 -0
  36. package/esm2015/toast/toast.data.service.js +29 -0
  37. package/esm2015/toast/toast.module.js +28 -0
  38. package/esm2015/toast/toast.service.js +99 -0
  39. package/fab/fab.component.d.ts +29 -0
  40. package/fab/fab.module.d.ts +4 -0
  41. package/fab/index.d.ts +1 -0
  42. package/fab/public_api.d.ts +2 -0
  43. package/fesm2015/mis-crystal-design-system.js +396 -8
  44. package/fesm2015/mis-crystal-design-system.js.map +1 -1
  45. package/mis-crystal-design-system.d.ts +0 -22
  46. package/mis-crystal-design-system.metadata.json +1 -1
  47. package/package.json +3 -2
  48. package/public-api.d.ts +15 -12
  49. package/toast/index.d.ts +1 -0
  50. package/toast/public_api.d.ts +2 -0
  51. package/toast/toast.component.d.ts +5 -0
  52. package/toast/toast.data.service.d.ts +8 -0
  53. package/toast/toast.module.d.ts +5 -0
  54. package/toast/toast.service.d.ts +35 -0
@@ -172,7 +172,7 @@ TableComponent.decorators = [
172
172
  { type: Component, args: [{
173
173
  selector: 'mis-table',
174
174
  template: "<div\n [ngStyle]=\"{\n height: getContainerHeight(),\n width: getContainerWidth()\n }\"\n id=\"main-container\"\n>\n <mis-table-filter\n #filter\n (filtersApplied)=\"updateAppliedFilters($event)\"\n *ngIf=\"showFilter\"\n [containerStyles]=\"filterContainerStyles\"\n [filtersData]=\"filterData\"\n [appliedFilters]=\"getAppliedFilters(filterName)\"\n ></mis-table-filter>\n <div #table id=\"table-container\">\n <div\n [ngStyle]=\"{\n height: getColHeadersRowHeight(),\n 'border-top': getColHeadersRowBorderTop(),\n 'border-bottom': getColHeadersRowBorderBottom()\n }\"\n id=\"col-headers-container\"\n >\n <div\n #colHeader\n (click)=\"colHeader?.action ? colHeader?.action(colHeader) : null\"\n *ngFor=\"let colHeader of config?.colHeaderConfig\"\n class=\"col-header\"\n [style]=\"colHeader?.style\"\n [ngStyle]=\"{\n width: colHeader?.style?.width || '',\n cursor: colHeader.action ? 'pointer' : 'default',\n 'justify-content': colHeader?.style?.justifyContent ? colHeader?.style?.justifyContent :\n colHeader.type === 'number'\n ? 'flex-end'\n : 'space-between'\n }\">\n <p *ngIf=\"colHeader?.type !== 'custom'\" class=\"col-header-text\">\n {{ colHeader?.data || \" \" }}\n </p>\n <span\n (click)=\"\n toggleFilter(colHeader.data, colHeader.filters);\n $event.stopPropagation()\n \"\n *ngIf=\"\n colHeader?.type !== 'custom' &&\n colHeader?.filters &&\n colHeader?.filters?.length > 0\n \"\n class=\"filter-icon\"\n >\n <span *ngIf=\"appliedFilters[colHeader.data]?.length > 0\" id=\"filter-active\"></span>\n <svg\n fill=\"none\"\n height=\"10\"\n viewBox=\"0 0 13 10\"\n width=\"13\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clip-rule=\"evenodd\"\n d=\"M4.97546 10H7.64213V8H4.97546V10ZM0.308472 0V2H12.3085V0H0.308472ZM2.30847 6H10.3085V4H2.30847V6Z\"\n fill=\"#181F33\"\n fill-rule=\"evenodd\"\n />\n </svg>\n </span>\n <ng-template\n *ngIf=\"colHeader?.type === 'custom'\"\n [customComponent]=\"colHeader?.componentRef\"\n [data]=\"colHeader.data\"\n customTableCell\n ></ng-template>\n </div>\n </div>\n <div id=\"data-container\">\n <div *ngFor=\"let row of tableData; let i = index\" class=\"row-wrapper\">\n <div class=\"t-row\">\n <div\n (click)=\"\n config?.colConfig[i]?.action\n ? config?.colConfig[i]?.action(col)\n : null\n \"\n *ngFor=\"let col of row; let i = index\"\n [ngStyle]=\"{\n width: config?.colConfig[i]?.style?.width || config?.colHeaderConfig[i]?.style?.width || ''\n }\"\n class=\"t-col-container\"\n >\n <div\n class=\"t-col\"\n [style]=\"config.colConfig[i]?.style\"\n [ngStyle]=\"{\n width: '100%',\n cursor: config.colConfig[i].action ? 'pointer' : 'default',\n 'justify-content': config.colConfig[i]?.style?.justifyContent ? config.colConfig[i]?.style?.justifyContent :\n config.colConfig[i].type === 'number'\n ? 'flex-end'\n : 'space-between'\n }\">\n <p\n *ngIf=\"config.colConfig[i].type !== 'custom'\"\n [ngStyle]=\"{\n color: config?.colConfig[i]?.style?.color\n ? config?.colConfig[i]?.style?.color\n : ''\n }\"\n class=\"t-col-text\"\n >\n {{ col }}\n </p>\n <ng-template\n *ngIf=\"config.colConfig[i].type === 'custom'\"\n [customComponent]=\"config.colConfig[i].componentRef\"\n [data]=\"col\"\n customTableCell\n ></ng-template>\n </div>\n </div>\n </div>\n <div *ngIf=\"config?.canExpand && expandedIndex === i\" class=\"sub-row\">\n <ng-container *ngIf=\"subTableDataLoading\">\n <div\n style=\"\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 16px;\n \"\n >\n Loading...\n </div>\n </ng-container>\n <ng-container *ngIf=\"!subTableDataLoading && subTableData.length === 0\">\n <div\n style=\"\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 16px;\n \"\n >\n No Data Available...\n </div>\n </ng-container>\n <ng-container *ngIf=\"!subTableDataLoading && subTableData.length > 0\">\n <sub-table [config]=\"subTableconfig\" [tableData]=\"subTableData\"></sub-table>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"config?.paginationConfig\" id=\"pagination-container\">\n <p id=\"pagination-text\">\n Showing\n {{ (selectedPage - 1) * config.paginationConfig.rowsPerPage + 1 }}-{{\n (selectedPage - 1) * config.paginationConfig.rowsPerPage +\n tableData.length\n }}\n of {{ config.paginationConfig.totalNoOfRows }} items\n </p>\n <div id=\"pages-container\">\n <span (click)=\"updateSelectedPage(selectedPage - 1)\" class=\"page\">\n <svg\n fill=\"none\"\n height=\"10\"\n viewBox=\"0 0 7 10\"\n width=\"7\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clip-rule=\"evenodd\"\n d=\"M0.857405 5.56295C0.855794 5.56139 0.854188 5.55982 0.852588 5.55824C0.695955 5.40408 0.617641 5.20203 0.617647 4.99998C0.617641 4.79793 0.695955 4.59588 0.852588 4.44172C0.854188 4.44014 0.855794 4.43858 0.857404 4.43702L5.13066 0.231231C5.44392 -0.0770771 5.9518 -0.0770771 6.26506 0.231231C6.57831 0.53954 6.57831 1.03941 6.26506 1.34772L2.5542 4.99998L6.26506 8.65225C6.57831 8.96055 6.57831 9.46042 6.26506 9.76873C5.9518 10.077 5.44392 10.077 5.13066 9.76873L0.857405 5.56295Z\"\n fill=\"#181F33\"\n fill-rule=\"evenodd\"\n />\n </svg>\n </span>\n <div *ngFor=\"let pageNumber of pages\">\n <span\n (click)=\"updateSelectedPage(pageNumber)\"\n *ngIf=\"pageNumber != 0\"\n [ngClass]=\"{ 'page-active': pageNumber == selectedPage }\"\n class=\"page\"\n >{{ pageNumber }}</span\n >\n <span *ngIf=\"pageNumber == 0\" class=\"page-seperator\">\n <div style=\"display: flex\">\n <span class=\"dot\" style=\"margin-right: 4px\"></span>\n <span class=\"dot\" style=\"margin-right: 4px\"></span>\n <span class=\"dot\"></span>\n </div>\n </span>\n </div>\n <span (click)=\"updateSelectedPage(selectedPage + 1)\" class=\"page\">\n <svg\n fill=\"none\"\n height=\"10\"\n viewBox=\"0 0 7 10\"\n width=\"7\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n clip-rule=\"evenodd\"\n d=\"M6.1426 5.56295C6.14421 5.56139 6.14581 5.55982 6.14741 5.55824C6.30405 5.40408 6.38236 5.20203 6.38236 4.99998C6.38236 4.79793 6.30405 4.59588 6.14741 4.44172C6.14581 4.44014 6.14421 4.43858 6.1426 4.43702L1.86934 0.231231C1.55608 -0.0770771 1.0482 -0.0770771 0.734942 0.231231C0.421688 0.53954 0.421688 1.03941 0.734942 1.34772L4.4458 4.99998L0.734941 8.65225C0.421686 8.96055 0.421686 9.46042 0.734941 9.76873C1.0482 10.077 1.55608 10.077 1.86934 9.76873L6.1426 5.56295Z\"\n fill=\"#181F33\"\n fill-rule=\"evenodd\"\n />\n </svg>\n </span>\n </div>\n </div>\n</div>\n",
175
- styles: ["#main-container{font-family:Lato,sans-serif;position:relative}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#9aa7b4;border-radius:4px}#table-container{height:inherit;overflow-y:auto}#col-headers-container{display:flex;position:sticky;background-color:#fff;height:44px;width:100%;border-bottom:1px solid #e0e0e0;top:0;left:0;right:0}.col-header{padding:0 16px;height:100%}.col-header,.col-header-text{display:flex;align-items:center}.col-header-text{font-style:normal;font-weight:700;font-size:14px;line-height:20px;letter-spacing:.2px;margin:0}.filter-icon{margin-left:8px;padding:0 8px;position:relative;cursor:pointer}#filter-active{height:8px;width:8px;background:#16cbbc;border-radius:50%;position:absolute;top:0;right:4px}.sub-row{height:auto;border-bottom:none}.loader ::ng-deep .mat-progress-spinner circle,.mat-spinner circle{stroke:#0937b2}.t-row{display:flex;align-items:center;background-color:#fff;height:44px;width:100%;border-bottom:1px solid #e0e0e0}.t-row:hover{background-color:#f1fdf8}.t-col-container{padding:0 16px;height:100%}.t-col{height:100%}.t-col,.t-col-text{display:flex;align-items:center}.t-col-text{font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;margin:0}#pagination-container{display:flex;justify-content:flex-end;align-items:center;height:56px}#pagination-text{font-style:normal;font-weight:400;font-size:12px;line-height:18px;letter-spacing:.4px;color:#6a737d;margin:0 96px 0 0}#pages-container{display:flex;margin-right:32px}.page{border:1px solid #6a737d;box-sizing:border-box;border-radius:4px;font-size:14px;line-height:20px;letter-spacing:.2px;color:#6a737d;cursor:pointer}.page,.page-seperator{display:flex;justify-content:center;align-items:center;width:32px;height:32px;margin-right:8px}.dot{height:3px;width:3px;border-radius:50%;background:#6a737d}.page-active{color:#0937b2;border:1px solid #0937b2}"]
175
+ styles: ["#main-container{font-family:Lato,sans-serif;position:relative}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#9aa7b4;border-radius:4px}#table-container{height:inherit;overflow-y:auto}#col-headers-container{display:flex;position:-webkit-sticky;position:sticky;background-color:#fff;height:44px;width:100%;border-bottom:1px solid #e0e0e0;top:0;left:0;right:0}.col-header{padding:0 16px;height:100%}.col-header,.col-header-text{display:flex;align-items:center}.col-header-text{font-style:normal;font-weight:700;font-size:14px;line-height:20px;letter-spacing:.2px;margin:0}.filter-icon{margin-left:8px;padding:0 8px;position:relative;cursor:pointer}#filter-active{height:8px;width:8px;background:#16cbbc;border-radius:50%;position:absolute;top:0;right:4px}.sub-row{height:auto;border-bottom:none}.loader ::ng-deep .mat-progress-spinner circle,.mat-spinner circle{stroke:#0937b2}.t-row{display:flex;align-items:center;background-color:#fff;height:44px;width:100%;border-bottom:1px solid #e0e0e0}.t-row:hover{background-color:#f1fdf8}.t-col-container{padding:0 16px;height:100%}.t-col{height:100%}.t-col,.t-col-text{display:flex;align-items:center}.t-col-text{font-style:normal;font-weight:400;font-size:14px;line-height:20px;letter-spacing:.2px;margin:0}#pagination-container{display:flex;justify-content:flex-end;align-items:center;height:56px}#pagination-text{font-style:normal;font-weight:400;font-size:12px;line-height:18px;letter-spacing:.4px;color:#6a737d;margin:0 96px 0 0}#pages-container{display:flex;margin-right:32px}.page{border:1px solid #6a737d;box-sizing:border-box;border-radius:4px;font-size:14px;line-height:20px;letter-spacing:.2px;color:#6a737d;cursor:pointer}.page,.page-seperator{display:flex;justify-content:center;align-items:center;width:32px;height:32px;margin-right:8px}.dot{height:3px;width:3px;border-radius:50%;background:#6a737d}.page-active{color:#0937b2;border:1px solid #0937b2}"]
176
176
  },] }
177
177
  ];
178
178
  TableComponent.ctorParameters = () => [
@@ -0,0 +1,2 @@
1
+ export * from './public_api';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9zcmMvdG9hc3QvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuIl19
@@ -0,0 +1,3 @@
1
+ export * from './toast.service';
2
+ export * from './toast.module';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL3NyYy90b2FzdC9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdG9hc3Quc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3RvYXN0Lm1vZHVsZSc7Il19
@@ -0,0 +1,30 @@
1
+ import { animate, style, transition, trigger } from '@angular/animations';
2
+ import { Component } from '@angular/core';
3
+ import { ToastDataService } from './toast.data.service';
4
+ export class ToastComponent {
5
+ constructor(data) {
6
+ this.data = data;
7
+ }
8
+ }
9
+ ToastComponent.decorators = [
10
+ { type: Component, args: [{
11
+ selector: 'mis-teams-toast',
12
+ template: "<div class=\"toast-container\">\n <div *ngFor=\"let msg of data.messages\" @fadeInOut>\n <div class=\"toast-wrapper\">\n <div class=\"msg\">{{msg}}</div>\n </div>\n </div>\n</div>",
13
+ animations: [
14
+ trigger('fadeInOut', [
15
+ transition(':enter', [
16
+ style({ opacity: '0', transform: 'translateY(-50%)', height: '0' }),
17
+ animate('300ms ease-in', style({ opacity: '1', transform: 'translateY(0)', height: '*' })),
18
+ ]),
19
+ transition(':leave', [
20
+ animate('300ms ease-in', style({ opacity: '0', transform: 'translateY(50%)' })),
21
+ ]),
22
+ ]),
23
+ ],
24
+ styles: [".toast-container{transition:max-height .3s ease-in}.toast-container>div{position:relative;display:flex;justify-content:center}.toast-wrapper{display:flex;flex-direction:row;align-items:center;gap:20px;padding:14px 12px;background:#181f33;box-shadow:0 12px 17px rgba(0,0,0,.14),0 5px 22px rgba(0,0,0,.12),0 7px 8px rgba(0,0,0,.2);border-radius:4px;transition:all .3s ease-in;min-height:44px;transform-origin:top}.toast-wrapper .msg{color:#fff;max-width:314px;flex:1 1 314px;font-size:14px;line-height:20px;letter-spacing:.2px}@media screen and (max-width:360px){.toast-wrapper .msg{max-width:90vw;flex:1 1 90vw}}"]
25
+ },] }
26
+ ];
27
+ ToastComponent.ctorParameters = () => [
28
+ { type: ToastDataService }
29
+ ];
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvc3JjL3RvYXN0L3RvYXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQXdCeEQsTUFBTSxPQUFPLGNBQWM7SUFDekIsWUFBbUIsSUFBc0I7UUFBdEIsU0FBSSxHQUFKLElBQUksQ0FBa0I7SUFBRyxDQUFDOzs7WUF2QjlDLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2dCQUMzQiw0TUFBcUM7Z0JBRXJDLFVBQVUsRUFBRTtvQkFDVixPQUFPLENBQUMsV0FBVyxFQUFFO3dCQUNuQixVQUFVLENBQUMsUUFBUSxFQUFFOzRCQUNuQixLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUM7NEJBQ25FLE9BQU8sQ0FDTCxlQUFlLEVBQ2YsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUNqRTt5QkFDRixDQUFDO3dCQUNGLFVBQVUsQ0FBQyxRQUFRLEVBQUU7NEJBQ25CLE9BQU8sQ0FDTCxlQUFlLEVBQ2YsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUN0RDt5QkFDRixDQUFDO3FCQUNILENBQUM7aUJBQ0g7O2FBQ0Y7OztZQXZCUSxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUb2FzdERhdGFTZXJ2aWNlIH0gZnJvbSAnLi90b2FzdC5kYXRhLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtaXMtdGVhbXMtdG9hc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vdG9hc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90b2FzdC5jb21wb25lbnQuc2NzcyddLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcignZmFkZUluT3V0JywgW1xuICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xuICAgICAgICBzdHlsZSh7IG9wYWNpdHk6ICcwJywgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgtNTAlKScsIGhlaWdodDogJzAnIH0pLFxuICAgICAgICBhbmltYXRlKFxuICAgICAgICAgICczMDBtcyBlYXNlLWluJyxcbiAgICAgICAgICBzdHlsZSh7IG9wYWNpdHk6ICcxJywgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgwKScsIGhlaWdodDogJyonIH0pXG4gICAgICAgICksXG4gICAgICBdKSxcbiAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtcbiAgICAgICAgYW5pbWF0ZShcbiAgICAgICAgICAnMzAwbXMgZWFzZS1pbicsXG4gICAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAnMCcsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoNTAlKScgfSlcbiAgICAgICAgKSxcbiAgICAgIF0pLFxuICAgIF0pLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUb2FzdENvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkYXRhOiBUb2FzdERhdGFTZXJ2aWNlKSB7fVxufVxuIl19
@@ -0,0 +1,29 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ToastDataService {
4
+ constructor() {
5
+ this.messageMap = new Map();
6
+ }
7
+ get messages() {
8
+ return Array.from(this.messageMap.values()).reverse();
9
+ }
10
+ updateMessage(msg) {
11
+ const id = new Date().getTime();
12
+ this.messageMap.set(id, msg);
13
+ return id;
14
+ }
15
+ removeMessage(id) {
16
+ this.messageMap.delete(id);
17
+ }
18
+ hasMessage() {
19
+ return this.messageMap.size > 0;
20
+ }
21
+ }
22
+ ToastDataService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ToastDataService_Factory() { return new ToastDataService(); }, token: ToastDataService, providedIn: "root" });
23
+ ToastDataService.decorators = [
24
+ { type: Injectable, args: [{
25
+ providedIn: 'root',
26
+ },] }
27
+ ];
28
+ ToastDataService.ctorParameters = () => [];
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuZGF0YS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvc3JjL3RvYXN0L3RvYXN0LmRhdGEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sZ0JBQWdCO0lBTTNCO1FBTFEsZUFBVSxHQUF3QixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBS3JDLENBQUM7SUFKaEIsSUFBSSxRQUFRO1FBQ1YsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4RCxDQUFDO0lBSUQsYUFBYSxDQUFDLEdBQVc7UUFDdkIsTUFBTSxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDN0IsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsYUFBYSxDQUFDLEVBQVU7UUFDdEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUNsQyxDQUFDOzs7O1lBdkJGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFRvYXN0RGF0YVNlcnZpY2Uge1xuICBwcml2YXRlIG1lc3NhZ2VNYXA6IE1hcDxudW1iZXIsIHN0cmluZz4gPSBuZXcgTWFwKCk7XG4gIGdldCBtZXNzYWdlcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5tZXNzYWdlTWFwLnZhbHVlcygpKS5yZXZlcnNlKCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgdXBkYXRlTWVzc2FnZShtc2c6IHN0cmluZyk6IG51bWJlciB7XG4gICAgY29uc3QgaWQgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICB0aGlzLm1lc3NhZ2VNYXAuc2V0KGlkLCBtc2cpO1xuICAgIHJldHVybiBpZDtcbiAgfVxuXG4gIHJlbW92ZU1lc3NhZ2UoaWQ6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMubWVzc2FnZU1hcC5kZWxldGUoaWQpO1xuICB9XG5cbiAgaGFzTWVzc2FnZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5tZXNzYWdlTWFwLnNpemUgPiAwO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,28 @@
1
+ import { OverlayModule } from '@angular/cdk/overlay';
2
+ import { CommonModule } from '@angular/common';
3
+ import { NgModule } from '@angular/core';
4
+ import { ToastComponent } from './toast.component';
5
+ import { ToastDataService } from './toast.data.service';
6
+ import { ToastService } from './toast.service';
7
+ export class ToastModule {
8
+ static forRoot() {
9
+ return {
10
+ ngModule: ToastModule,
11
+ providers: [ToastDataService, ToastService],
12
+ };
13
+ }
14
+ static forChild() {
15
+ return {
16
+ ngModule: ToastModule,
17
+ providers: [ToastDataService, ToastService],
18
+ };
19
+ }
20
+ }
21
+ ToastModule.decorators = [
22
+ { type: NgModule, args: [{
23
+ declarations: [ToastComponent],
24
+ imports: [CommonModule, OverlayModule],
25
+ entryComponents: [ToastComponent]
26
+ },] }
27
+ ];
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvc3JjL3RvYXN0L3RvYXN0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFPL0MsTUFBTSxPQUFPLFdBQVc7SUFDdEIsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPO1lBQ0wsUUFBUSxFQUFFLFdBQVc7WUFDckIsU0FBUyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDO1NBQzVDLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVE7UUFDYixPQUFPO1lBQ0wsUUFBUSxFQUFFLFdBQVc7WUFDckIsU0FBUyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDO1NBQzVDLENBQUM7SUFDSixDQUFDOzs7WUFsQkYsUUFBUSxTQUFDO2dCQUNSLFlBQVksRUFBRSxDQUFDLGNBQWMsQ0FBQztnQkFDOUIsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQztnQkFDdEMsZUFBZSxFQUFFLENBQUMsY0FBYyxDQUFDO2FBQ2xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVG9hc3RDb21wb25lbnQgfSBmcm9tICcuL3RvYXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb2FzdERhdGFTZXJ2aWNlIH0gZnJvbSAnLi90b2FzdC5kYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi90b2FzdC5zZXJ2aWNlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbVG9hc3RDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBPdmVybGF5TW9kdWxlXSxcbiAgZW50cnlDb21wb25lbnRzOiBbVG9hc3RDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIFRvYXN0TW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxUb2FzdE1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogVG9hc3RNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtUb2FzdERhdGFTZXJ2aWNlLCBUb2FzdFNlcnZpY2VdLFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZm9yQ2hpbGQoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxUb2FzdE1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogVG9hc3RNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtUb2FzdERhdGFTZXJ2aWNlLCBUb2FzdFNlcnZpY2VdLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,99 @@
1
+ import { Overlay, OverlayConfig } from '@angular/cdk/overlay';
2
+ import { ComponentPortal } from '@angular/cdk/portal';
3
+ import { Injectable } from '@angular/core';
4
+ import { ToastComponent } from './toast.component';
5
+ import { ToastDataService } from './toast.data.service';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/cdk/overlay";
8
+ import * as i2 from "./toast.data.service";
9
+ export class ToastService {
10
+ constructor(overlay, data) {
11
+ this.overlay = overlay;
12
+ this.data = data;
13
+ this.messagePromises = [];
14
+ this.messageBuilder = {
15
+ error: {
16
+ simple: 'Something went wrong. Please try again later.',
17
+ 400: 'Bad Request! We are working to fix this.',
18
+ 401: 'UNAUTHORISED',
19
+ 403: 'Sorry for the interruption but seems like your session has expired. Please login again and continue',
20
+ 404: 'Unable to find resource. Please try again later',
21
+ },
22
+ item: (item) => {
23
+ return {
24
+ action: (act = 'updated') => {
25
+ const success = `Successfully ${act} ${item}.`;
26
+ const failure = `Failed to ${act} ${item}.`;
27
+ return {
28
+ success,
29
+ failure,
30
+ };
31
+ },
32
+ };
33
+ },
34
+ short: (act = 'updated') => {
35
+ const success = `Successfully ${act}.`;
36
+ const failure = `Failed to ${act}.`;
37
+ return {
38
+ success,
39
+ failure,
40
+ };
41
+ },
42
+ simple: (...args) => args.join(' '),
43
+ simplest: 'Done!',
44
+ };
45
+ this.userProfilePortal = new ComponentPortal(ToastComponent);
46
+ }
47
+ displayMsg(msg, timeout = 3000) {
48
+ var _a;
49
+ const positionStrategy = this.overlay
50
+ .position()
51
+ .global()
52
+ .centerHorizontally();
53
+ if ((window === null || window === void 0 ? void 0 : window.innerWidth) < 600) {
54
+ positionStrategy.bottom('48px');
55
+ }
56
+ else {
57
+ positionStrategy.top('80px');
58
+ }
59
+ const config = new OverlayConfig({
60
+ hasBackdrop: false,
61
+ positionStrategy,
62
+ });
63
+ if (!((_a = this.toastWrapperRef) === null || _a === void 0 ? void 0 : _a.hasAttached())) {
64
+ this.toastWrapperRef = this.overlay.create(config);
65
+ this.toastWrapperRef.attach(this.userProfilePortal);
66
+ }
67
+ const messageId = this.data.updateMessage(msg);
68
+ this.messagePromises.push(new Promise((resolve, reject) => {
69
+ setTimeout(() => {
70
+ resolve(this.data.removeMessage(messageId));
71
+ if (!this.data.hasMessage()) {
72
+ this.closeToastOverlay();
73
+ }
74
+ // adding 300ms for entry animation
75
+ }, timeout + 300);
76
+ }));
77
+ Promise.race(this.messagePromises).then(() => { });
78
+ }
79
+ // tslint:disable-next-line
80
+ closeToastOverlay() {
81
+ return setTimeout(() => {
82
+ var _a;
83
+ this.messagePromises = [];
84
+ (_a = this.toastWrapperRef) === null || _a === void 0 ? void 0 : _a.detach();
85
+ // adding 300ms for exit animation
86
+ }, 300);
87
+ }
88
+ }
89
+ ToastService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ToastService_Factory() { return new ToastService(i0.ɵɵinject(i1.Overlay), i0.ɵɵinject(i2.ToastDataService)); }, token: ToastService, providedIn: "root" });
90
+ ToastService.decorators = [
91
+ { type: Injectable, args: [{
92
+ providedIn: 'root',
93
+ },] }
94
+ ];
95
+ ToastService.ctorParameters = () => [
96
+ { type: Overlay },
97
+ { type: ToastDataService }
98
+ ];
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL3NyYy90b2FzdC90b2FzdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7O0FBYXhELE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLFlBQW9CLE9BQWdCLEVBQVUsSUFBc0I7UUFBaEQsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUFVLFNBQUksR0FBSixJQUFJLENBQWtCO1FBSTVELG9CQUFlLEdBQW9CLEVBQUUsQ0FBQztRQUc5QyxtQkFBYyxHQUFHO1lBQ2YsS0FBSyxFQUFFO2dCQUNMLE1BQU0sRUFBRSwrQ0FBK0M7Z0JBQ3ZELEdBQUcsRUFBRSwwQ0FBMEM7Z0JBQy9DLEdBQUcsRUFBRSxjQUFjO2dCQUNuQixHQUFHLEVBQUUscUdBQXFHO2dCQUMxRyxHQUFHLEVBQUUsaURBQWlEO2FBQ3ZEO1lBQ0QsSUFBSSxFQUFFLENBQUMsSUFBWSxFQUFFLEVBQUU7Z0JBQ3JCLE9BQU87b0JBQ0wsTUFBTSxFQUFFLENBQUMsTUFBa0IsU0FBUyxFQUFFLEVBQUU7d0JBQ3RDLE1BQU0sT0FBTyxHQUFHLGdCQUFnQixHQUFHLElBQUksSUFBSSxHQUFHLENBQUM7d0JBQy9DLE1BQU0sT0FBTyxHQUFHLGFBQWEsR0FBRyxJQUFJLElBQUksR0FBRyxDQUFDO3dCQUM1QyxPQUFPOzRCQUNMLE9BQU87NEJBQ1AsT0FBTzt5QkFD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IE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRvYXN0Q29tcG9uZW50IH0gZnJvbSAnLi90b2FzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVG9hc3REYXRhU2VydmljZSB9IGZyb20gJy4vdG9hc3QuZGF0YS5zZXJ2aWNlJztcblxudHlwZSBPcGVyYXRpb25zID1cbiAgfCAnY3JlYXRlZCdcbiAgfCAndXBkYXRlZCdcbiAgfCAnZGVsZXRlZCdcbiAgfCAnY3JlYXRlJ1xuICB8ICd1cGRhdGUnXG4gIHwgJ2RlbGV0ZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUb2FzdFNlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksIHByaXZhdGUgZGF0YTogVG9hc3REYXRhU2VydmljZSkge1xuICAgIHRoaXMudXNlclByb2ZpbGVQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKFRvYXN0Q29tcG9uZW50KTtcbiAgfVxuICBwcml2YXRlIHRvYXN0V3JhcHBlclJlZjogT3ZlcmxheVJlZjtcbiAgcHJpdmF0ZSBtZXNzYWdlUHJvbWlzZXM6IFByb21pc2U8dm9pZD5bXSA9IFtdO1xuICBwcml2YXRlIHVzZXJQcm9maWxlUG9ydGFsOiBDb21wb25lbnRQb3J0YWw8VG9hc3RDb21wb25lbnQ+O1xuXG4gIG1lc3NhZ2VCdWlsZGVyID0ge1xuICAgIGVycm9yOiB7XG4gICAgICBzaW1wbGU6ICdTb21ldGhpbmcgd2VudCB3cm9uZy4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlci4nLFxuICAgICAgNDAwOiAnQmFkIFJlcXVlc3QhIFdlIGFyZSB3b3JraW5nIHRvIGZpeCB0aGlzLicsXG4gICAgICA0MDE6ICdVTkFVVEhPUklTRUQnLFxuICAgICAgNDAzOiAnU29ycnkgZm9yIHRoZSBpbnRlcnJ1cHRpb24gYnV0IHNlZW1zIGxpa2UgeW91ciBzZXNzaW9uIGhhcyBleHBpcmVkLiBQbGVhc2UgbG9naW4gYWdhaW4gYW5kIGNvbnRpbnVlJyxcbiAgICAgIDQwNDogJ1VuYWJsZSB0byBmaW5kIHJlc291cmNlLiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyJyxcbiAgICB9LFxuICAgIGl0ZW06IChpdGVtOiBzdHJpbmcpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFjdGlvbjogKGFjdDogT3BlcmF0aW9ucyA9ICd1cGRhdGVkJykgPT4ge1xuICAgICAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBgU3VjY2Vzc2Z1bGx5ICR7YWN0fSAke2l0ZW19LmA7XG4gICAgICAgICAgY29uc3QgZmFpbHVyZSA9IGBGYWlsZWQgdG8gJHthY3R9ICR7aXRlbX0uYDtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc3VjY2VzcyxcbiAgICAgICAgICAgIGZhaWx1cmUsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSxcbiAgICBzaG9ydDogKGFjdDogT3BlcmF0aW9ucyA9ICd1cGRhdGVkJykgPT4ge1xuICAgICAgY29uc3Qgc3VjY2VzcyA9IGBTdWNjZXNzZnVsbHkgJHthY3R9LmA7XG4gICAgICBjb25zdCBmYWlsdXJlID0gYEZhaWxlZCB0byAke2FjdH0uYDtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN1Y2Nlc3MsXG4gICAgICAgIGZhaWx1cmUsXG4gICAgICB9O1xuICAgIH0sXG4gICAgc2ltcGxlOiAoLi4uYXJnczogc3RyaW5nW10pID0+IGFyZ3Muam9pbignICcpLFxuICAgIHNpbXBsZXN0OiAnRG9uZSEnLFxuICB9O1xuXG4gIGRpc3BsYXlNc2cobXNnOiBzdHJpbmcsIHRpbWVvdXQgPSAzMDAwKTogdm9pZCB7XG4gICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMub3ZlcmxheVxuICAgICAgLnBvc2l0aW9uKClcbiAgICAgIC5nbG9iYWwoKVxuICAgICAgLmNlbnRlckhvcml6b250YWxseSgpO1xuXG4gICAgaWYgKHdpbmRvdz8uaW5uZXJXaWR0aCA8IDYwMCkge1xuICAgICAgcG9zaXRpb25TdHJhdGVneS5ib3R0b20oJzQ4cHgnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcG9zaXRpb25TdHJhdGVneS50b3AoJzgwcHgnKTtcbiAgICB9XG4gICAgY29uc3QgY29uZmlnID0gbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgaGFzQmFja2Ryb3A6IGZhbHNlLFxuICAgICAgcG9zaXRpb25TdHJhdGVneSxcbiAgICB9KTtcbiAgICBpZiAoIXRoaXMudG9hc3RXcmFwcGVyUmVmPy5oYXNBdHRhY2hlZCgpKSB7XG4gICAgICB0aGlzLnRvYXN0V3JhcHBlclJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoY29uZmlnKTtcbiAgICAgIHRoaXMudG9hc3RXcmFwcGVyUmVmLmF0dGFjaCh0aGlzLnVzZXJQcm9maWxlUG9ydGFsKTtcbiAgICB9XG4gICAgY29uc3QgbWVzc2FnZUlkID0gdGhpcy5kYXRhLnVwZGF0ZU1lc3NhZ2UobXNnKTtcbiAgICB0aGlzLm1lc3NhZ2VQcm9taXNlcy5wdXNoKFxuICAgICAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICByZXNvbHZlKHRoaXMuZGF0YS5yZW1vdmVNZXNzYWdlKG1lc3NhZ2VJZCkpO1xuICAgICAgICAgIGlmICghdGhpcy5kYXRhLmhhc01lc3NhZ2UoKSkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZVRvYXN0T3ZlcmxheSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBhZGRpbmcgMzAwbXMgZm9yIGVudHJ5IGFuaW1hdGlvblxuICAgICAgICB9LCB0aW1lb3V0ICsgMzAwKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICBQcm9taXNlLnJhY2UodGhpcy5tZXNzYWdlUHJvbWlzZXMpLnRoZW4oKCkgPT4ge30pO1xuICB9XG5cbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lXG4gIHByaXZhdGUgY2xvc2VUb2FzdE92ZXJsYXkoKTogYW55IHtcbiAgICByZXR1cm4gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLm1lc3NhZ2VQcm9taXNlcyA9IFtdO1xuICAgICAgdGhpcy50b2FzdFdyYXBwZXJSZWY/LmRldGFjaCgpO1xuICAgICAgLy8gYWRkaW5nIDMwMG1zIGZvciBleGl0IGFuaW1hdGlvblxuICAgIH0sIDMwMCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,29 @@
1
+ /** @format */
2
+ import { ElementRef, OnDestroy, OnInit } from "@angular/core";
3
+ export declare type FabOptions = {
4
+ backgroundColorClosed?: string;
5
+ backgroundColorOpened?: string;
6
+ size?: number;
7
+ };
8
+ export declare type FabItem = {
9
+ label?: string;
10
+ icon: string;
11
+ backgroundColor?: string;
12
+ id?: string;
13
+ click?: () => any;
14
+ };
15
+ export declare type FabItems = FabItem[];
16
+ export declare class FabComponent implements OnInit, OnDestroy {
17
+ private eRef;
18
+ show: boolean;
19
+ options: FabOptions;
20
+ items: FabItems;
21
+ isOpen: boolean;
22
+ constructor(eRef: ElementRef);
23
+ clickout(event: any): void;
24
+ ngOnInit(): void;
25
+ ngOnDestroy(): void;
26
+ clickItem(item: FabItem): void;
27
+ closeFab(): void;
28
+ toogleFab(): void;
29
+ }
@@ -0,0 +1,4 @@
1
+ import { ModuleWithProviders } from "@angular/core";
2
+ export declare class FabModule {
3
+ static forRoot(): ModuleWithProviders<FabModule>;
4
+ }
package/fab/index.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './public_api';
@@ -0,0 +1,2 @@
1
+ export { FabComponent, FabItem, FabItems, FabOptions } from './fab.component';
2
+ export { FabModule } from './fab.module';