@flywheel-io/vision 0.5.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/README.md +1 -19
  2. package/assets/fonts/Flywheel-Vision-Icons.svg +239 -0
  3. package/assets/fonts/{flywheel.eot → Flywheel-Vision-Icons.ttf} +0 -0
  4. package/assets/fonts/{flywheel.ttf → Flywheel-Vision-Icons.woff} +0 -0
  5. package/components/button/button.component.d.ts +3 -0
  6. package/components/button/button.module.d.ts +7 -0
  7. package/components/button-group/button-group.component.d.ts +3 -0
  8. package/components/button-group/button-group.module.d.ts +5 -0
  9. package/components/dialog/choice-dialog.component.d.ts +11 -5
  10. package/components/dialog/confirm-dialog.component.d.ts +3 -0
  11. package/components/dialog/dialog.module.d.ts +14 -0
  12. package/components/dialog/dialog.service.d.ts +3 -0
  13. package/components/dialog/error-dialog.component.d.ts +3 -0
  14. package/components/dialog/portal-dialog.component.d.ts +3 -0
  15. package/components/icon/icon.component.d.ts +5 -0
  16. package/components/icon/icon.module.d.ts +8 -0
  17. package/components/notification/notification/notification.component.d.ts +3 -0
  18. package/components/notification/notification-container/notification-container.component.d.ts +3 -0
  19. package/components/notification/notification.module.d.ts +11 -0
  20. package/components/notification/notification.service.d.ts +3 -0
  21. package/components/popover/popover-trigger.component.d.ts +3 -0
  22. package/components/popover/popover-trigger.directive.d.ts +3 -0
  23. package/components/popover/popover.component.d.ts +3 -0
  24. package/components/popover/popover.module.d.ts +8 -0
  25. package/components/shared/pipes/pipes.module.d.ts +6 -0
  26. package/components/shared/pipes/translate.pipe.d.ts +3 -0
  27. package/components/shared/pipes/trusthtml.pipe.d.ts +3 -0
  28. package/components/shared/translation.service.d.ts +3 -0
  29. package/components/table/table.component.d.ts +3 -0
  30. package/components/table/table.module.d.ts +12 -0
  31. package/elements/README.md +20 -0
  32. package/elements/flywheel-io-vision-elements.d.ts +1 -0
  33. package/elements/package.json +5 -6
  34. package/esm2020/components/button/button.component.mjs +32 -0
  35. package/esm2020/components/button/button.module.mjs +33 -0
  36. package/esm2020/components/button-group/button-group.component.mjs +25 -0
  37. package/esm2020/components/button-group/button-group.module.mjs +23 -0
  38. package/esm2020/components/dialog/choice-dialog.component.mjs +90 -0
  39. package/esm2020/components/dialog/confirm-dialog.component.mjs +57 -0
  40. package/{esm2015/components/dialog/dialog.module.js → esm2020/components/dialog/dialog.module.mjs} +58 -31
  41. package/esm2020/components/dialog/dialog.service.mjs +72 -0
  42. package/esm2020/components/dialog/error-dialog.component.mjs +45 -0
  43. package/esm2020/components/dialog/portal-dialog.component.mjs +112 -0
  44. package/esm2020/components/icon/icon.component.mjs +19 -0
  45. package/esm2020/components/icon/icon.module.mjs +26 -0
  46. package/esm2020/components/notification/notification/notification.component.mjs +69 -0
  47. package/{esm2015/components/notification/notification/notification.model.js → esm2020/components/notification/notification/notification.model.mjs} +0 -0
  48. package/esm2020/components/notification/notification-container/notification-container.component.mjs +86 -0
  49. package/{esm2015/components/notification/notification-timer.service.js → esm2020/components/notification/notification-timer.service.mjs} +0 -0
  50. package/esm2020/components/notification/notification.module.mjs +56 -0
  51. package/{esm2015/components/notification/notification.service.js → esm2020/components/notification/notification.service.mjs} +9 -7
  52. package/esm2020/components/popover/popover-trigger.component.mjs +56 -0
  53. package/esm2020/components/popover/popover-trigger.directive.mjs +133 -0
  54. package/esm2020/components/popover/popover.component.mjs +29 -0
  55. package/esm2020/components/popover/popover.module.mjs +46 -0
  56. package/esm2020/components/shared/pipes/pipes.module.mjs +36 -0
  57. package/esm2020/components/shared/pipes/translate.pipe.mjs +39 -0
  58. package/esm2020/components/shared/pipes/trusthtml.pipe.mjs +21 -0
  59. package/esm2020/components/shared/translation.service.mjs +25 -0
  60. package/esm2020/components/table/table.component.mjs +179 -0
  61. package/esm2020/components/table/table.module.mjs +56 -0
  62. package/esm2020/elements/elements.mjs +61 -0
  63. package/{esm2015/elements/flywheel-io-vision-elements.js → esm2020/elements/flywheel-io-vision-elements.mjs} +0 -0
  64. package/{esm2015/elements/polyfills.js → esm2020/elements/polyfills.mjs} +0 -0
  65. package/{esm2015/elements/public-api.js → esm2020/elements/public-api.mjs} +0 -0
  66. package/esm2020/flywheel-io-vision.mjs +5 -0
  67. package/esm2020/public-api.mjs +25 -0
  68. package/fesm2015/{flywheel-io-vision-elements.js → flywheel-io-vision-elements.mjs} +19 -14
  69. package/fesm2015/flywheel-io-vision-elements.mjs.map +1 -0
  70. package/fesm2015/flywheel-io-vision.mjs +1402 -0
  71. package/fesm2015/flywheel-io-vision.mjs.map +1 -0
  72. package/fesm2020/flywheel-io-vision-elements.mjs +85 -0
  73. package/fesm2020/flywheel-io-vision-elements.mjs.map +1 -0
  74. package/fesm2020/flywheel-io-vision.mjs +1392 -0
  75. package/fesm2020/flywheel-io-vision.mjs.map +1 -0
  76. package/flywheel-io-vision.d.ts +1 -4
  77. package/package.json +43 -19
  78. package/public-api.d.ts +2 -0
  79. package/scss/atoms/ghost.scss +30 -0
  80. package/scss/config/theme.scss +6 -6
  81. package/scss/icons/_icon-font-face.scss +5 -6
  82. package/scss/icons/_icon-glyphs.scss +96 -16
  83. package/scss/material/overrides.scss +6 -1
  84. package/styles.css +274 -202
  85. package/styles.scss +8 -9
  86. package/assets/fonts/flywheel.svg +0 -101
  87. package/assets/fonts/flywheel.woff +0 -0
  88. package/bundles/flywheel-io-vision-elements.umd.js +0 -425
  89. package/bundles/flywheel-io-vision-elements.umd.js.map +0 -1
  90. package/bundles/flywheel-io-vision-elements.umd.min.js +0 -2
  91. package/bundles/flywheel-io-vision-elements.umd.min.js.map +0 -1
  92. package/bundles/flywheel-io-vision.umd.js +0 -1578
  93. package/bundles/flywheel-io-vision.umd.js.map +0 -1
  94. package/bundles/flywheel-io-vision.umd.min.js +0 -2
  95. package/bundles/flywheel-io-vision.umd.min.js.map +0 -1
  96. package/elements/flywheel-io-vision-elements.metadata.json +0 -1
  97. package/esm2015/components/button/button.component.js +0 -29
  98. package/esm2015/components/button/button.module.js +0 -24
  99. package/esm2015/components/button-group/button-group.component.js +0 -27
  100. package/esm2015/components/button-group/button-group.module.js +0 -18
  101. package/esm2015/components/dialog/choice-dialog.component.js +0 -52
  102. package/esm2015/components/dialog/confirm-dialog.component.js +0 -40
  103. package/esm2015/components/dialog/dialog.service.js +0 -69
  104. package/esm2015/components/dialog/error-dialog.component.js +0 -32
  105. package/esm2015/components/dialog/portal-dialog.component.js +0 -88
  106. package/esm2015/components/notification/notification/notification.component.js +0 -73
  107. package/esm2015/components/notification/notification-container/notification-container.component.js +0 -89
  108. package/esm2015/components/notification/notification.module.js +0 -37
  109. package/esm2015/components/popover/popover-trigger.component.js +0 -49
  110. package/esm2015/components/popover/popover-trigger.directive.js +0 -134
  111. package/esm2015/components/popover/popover.component.js +0 -23
  112. package/esm2015/components/popover/popover.module.js +0 -33
  113. package/esm2015/components/shared/pipes/pipes.module.js +0 -24
  114. package/esm2015/components/shared/pipes/translate.pipe.js +0 -40
  115. package/esm2015/components/shared/pipes/trusthtml.pipe.js +0 -20
  116. package/esm2015/components/shared/translation.service.js +0 -22
  117. package/esm2015/components/table/table.component.js +0 -165
  118. package/esm2015/components/table/table.module.js +0 -35
  119. package/esm2015/elements/elements.js +0 -56
  120. package/esm2015/flywheel-io-vision.js +0 -9
  121. package/esm2015/public-api.js +0 -23
  122. package/fesm2015/flywheel-io-vision-elements.js.map +0 -1
  123. package/fesm2015/flywheel-io-vision.js +0 -1168
  124. package/fesm2015/flywheel-io-vision.js.map +0 -1
  125. package/flywheel-io-vision.metadata.json +0 -1
@@ -1,165 +0,0 @@
1
- import { ChangeDetectorRef, Component, Input, ViewChild } from '@angular/core';
2
- import { FormControl, FormGroup } from '@angular/forms';
3
- import { MatPaginator } from '@angular/material/paginator';
4
- import { MatSort } from '@angular/material/sort';
5
- import { MatTableDataSource } from '@angular/material/table';
6
- import { debounceTime } from 'rxjs/operators';
7
- export class FwTableComponent {
8
- constructor(changeDetectorRef) {
9
- this.changeDetectorRef = changeDetectorRef;
10
- this.columns = [];
11
- this.dataSource = [];
12
- this.layout = 'basic';
13
- this.pageSize = null;
14
- this.webCompPageSize = null;
15
- this.sort = null;
16
- this.sortColumn = '';
17
- this.sortOrder = 'asc';
18
- this.displayedColumns = [];
19
- this.filters = new FormGroup({});
20
- // to support updating column header labels
21
- this.trackByIndex = i => i;
22
- }
23
- ngOnInit() {
24
- this.setDataSource();
25
- this.setColumns();
26
- this.addFilterControls();
27
- this.setFilter();
28
- this.matDataSource.filterPredicate = (row, filter) => {
29
- const filters = JSON.parse(filter);
30
- for (const filter in filters) {
31
- const filterValue = filters[filter];
32
- const rowValue = row[filter];
33
- // multi-select
34
- if (Array.isArray(filterValue) && filterValue.length > 0 && !filterValue.includes(rowValue)) {
35
- return false;
36
- }
37
- // input or select
38
- if (!Array.isArray(filterValue) && !String(rowValue).toLowerCase().includes(String(filterValue !== null && filterValue !== void 0 ? filterValue : '').toLowerCase())) {
39
- return false;
40
- }
41
- }
42
- return true;
43
- };
44
- this.filters.valueChanges.pipe(debounceTime(200)).subscribe(() => this.setFilter());
45
- }
46
- ngAfterViewInit() {
47
- this.setSort();
48
- this.setPaginator();
49
- }
50
- ngOnChanges(changes) {
51
- if (changes.columns) {
52
- this.setColumns();
53
- }
54
- if (changes.dataSource) {
55
- this.setDataSource();
56
- }
57
- if (changes.sort || changes.dataSource) {
58
- this.setSort();
59
- }
60
- if (changes.pageSize || changes['page-size']) {
61
- this.setPaginator();
62
- }
63
- }
64
- get isCompact() {
65
- return this.layout === 'compact';
66
- }
67
- get paginationSize() {
68
- return this.pageSize || this.webCompPageSize || 0;
69
- }
70
- get isSortEnabled() {
71
- return this.sort !== null;
72
- }
73
- addFilterControls() {
74
- for (const column of this.columns) {
75
- this.filters.addControl(column.key, new FormControl());
76
- }
77
- }
78
- setDataSource() {
79
- this.matDataSource = new MatTableDataSource(this.dataSource);
80
- }
81
- setColumns() {
82
- this.displayedColumns = this.columns.map(column => column.key);
83
- }
84
- setFilter() {
85
- this.matDataSource.filter = JSON.stringify(this.filters.value);
86
- }
87
- setSort() {
88
- if (!this.matSort || this.sort === null) {
89
- return;
90
- }
91
- const sortSplit = this.sort.split(' ');
92
- this.sortColumn = sortSplit[0];
93
- if (['asc', 'desc'].includes(sortSplit[1])) {
94
- this.sortOrder = sortSplit[1];
95
- }
96
- else {
97
- console.warn(`Sort order '${sortSplit[1]}' is not 'asc' or 'desc', defaulting to 'asc'`);
98
- }
99
- if (this.sortColumn) {
100
- this.matSort.sort({ id: this.sortColumn, start: this.sortOrder, disableClear: false });
101
- const sortHeader = this.matSort.sortables.get(this.sortColumn);
102
- if (sortHeader) {
103
- sortHeader._setAnimationTransitionState({ toState: 'active' });
104
- }
105
- else {
106
- console.warn(`Unable to find sort column '${this.sortColumn}'. Initial sort failed.`);
107
- }
108
- }
109
- this.matDataSource.sort = this.matSort;
110
- }
111
- setPaginator() {
112
- // ensures ui updates correctly when paginator options change
113
- this.changeDetectorRef.detectChanges();
114
- this.matDataSource.paginator = this.matPaginator;
115
- }
116
- // necessary for web component to trigger this.filter.valueChanges
117
- onInputFilter(event, column) {
118
- // defer setting filter control as event.target.value is not set yet
119
- setTimeout(() => this.filters.get(column.key).setValue(event.target.value));
120
- }
121
- // necessary for web component to trigger this.filter.valueChanges
122
- onSelectFilter(event, column) {
123
- const innerText = event.target.innerText;
124
- this.filters.get(column.key).setValue(innerText === '- none -' ? null : innerText);
125
- }
126
- // necessary for web component to trigger this.filter.valueChanges
127
- onMultiSelectFilter(event, column) {
128
- let value = this.filters.controls[column.key].value || [];
129
- const innerText = event.target.parentElement.innerText;
130
- if (value.includes(innerText)) {
131
- value = value.filter(v => v !== innerText);
132
- }
133
- else {
134
- value.push(innerText);
135
- }
136
- this.filters.get(column.key).setValue(value.length === 1 && innerText === ''
137
- ? null // when all checboxes have been deselected
138
- : value);
139
- }
140
- }
141
- FwTableComponent.decorators = [
142
- { type: Component, args: [{
143
- host: {
144
- 'class': 'fw-table',
145
- '[class.compact]': 'isCompact',
146
- },
147
- selector: 'fw-table',
148
- template: "<table mat-table [dataSource]=\"matDataSource\" matSort>\n <ng-container *ngFor=\"let column of columns; trackBy: trackByIndex\">\n <ng-container [matColumnDef]=\"column.key\">\n\n <ng-template #tableHeaders>\n <ng-container [ngSwitch]=\"column.filter?.control\">\n <ng-container *ngSwitchCase=\"'input'\">\n <mat-form-field *ngIf=\"filters.get(column.key) as control\" appearance=\"outline\" (click)=\"$event.stopPropagation()\">\n <mat-label *ngIf=\"!isCompact\">{{ column.label }}</mat-label>\n <input matInput [formControl]=\"control\" [placeholder]=\"column.filter.placeholder\" (keydown)=\"$event.stopPropagation(); onInputFilter($event, column);\">\n </mat-form-field>\n </ng-container>\n <ng-container *ngSwitchCase=\"'select'\">\n <mat-form-field *ngIf=\"filters.get(column.key) as control\" appearance=\"outline\" (click)=\"$event.stopPropagation()\">\n <mat-label *ngIf=\"!isCompact\">{{ column.label }}</mat-label>\n <mat-select [formControl]=\"control\" [placeholder]=\"column.filter.placeholder\">\n <mat-option (click)=\"onSelectFilter($event, column);\">- none -</mat-option>\n <mat-option *ngFor=\"let option of column.filter.options\" [value]=\"option\" (click)=\"onSelectFilter($event, column);\">{{ option }}</mat-option>\n </mat-select>\n </mat-form-field>\n </ng-container>\n <ng-container *ngSwitchCase=\"'multi-select'\">\n <mat-form-field *ngIf=\"filters.get(column.key) as control\" appearance=\"outline\" (click)=\"$event.stopPropagation()\">\n <mat-label *ngIf=\"!isCompact\">{{ column.label }}</mat-label>\n <mat-select [formControl]=\"control\" [placeholder]=\"column.filter.placeholder\" multiple=\"true\">\n <mat-option *ngFor=\"let option of column.filter.options\" [value]=\"option\" (click)=\"onMultiSelectFilter($event, column);\">{{ option }}</mat-option>\n </mat-select>\n </mat-form-field>\n </ng-container>\n <ng-container *ngSwitchDefault>{{ column.label }}</ng-container>\n </ng-container>\n </ng-template>\n\n <ng-container *ngIf=\"isSortEnabled\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>\n <ng-container [ngTemplateOutlet]=\"tableHeaders\"></ng-container>\n </th>\n </ng-container>\n\n <ng-container *ngIf=\"!isSortEnabled\">\n <th mat-header-cell *matHeaderCellDef>\n <ng-container [ngTemplateOutlet]=\"tableHeaders\"></ng-container>\n </th>\n </ng-container>\n\n <td mat-cell *matCellDef=\"let element\"> {{ element[column.key] }} </td>\n </ng-container>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n</table>\n<mat-paginator *ngIf=\"paginationSize > 0\" [pageSize]=\"paginationSize\"></mat-paginator>\n\n\n\n",
149
- styles: [":host{display:block;width:100%}:host:not(.compact) table.mat-table tr.mat-header-row,:host:not(.compact) table.mat-table tr.mat-row{height:56px}:host.compact table.mat-table tr.mat-header-row,:host.compact table.mat-table tr.mat-row{height:32px}:host.compact mat-paginator.mat-paginator{align-items:center;display:flex;height:32px;justify-content:flex-end}table.mat-table{width:100%}table.mat-table td,table.mat-table th{vertical-align:middle}table.mat-table td.mat-cell,table.mat-table td.mat-header-cell,table.mat-table th.mat-cell,table.mat-table th.mat-header-cell{border-bottom-color:var(--color-gray)}"]
150
- },] }
151
- ];
152
- FwTableComponent.ctorParameters = () => [
153
- { type: ChangeDetectorRef }
154
- ];
155
- FwTableComponent.propDecorators = {
156
- columns: [{ type: Input }],
157
- dataSource: [{ type: Input }],
158
- layout: [{ type: Input }],
159
- pageSize: [{ type: Input }],
160
- webCompPageSize: [{ type: Input, args: ['page-size',] }],
161
- sort: [{ type: Input }],
162
- matPaginator: [{ type: ViewChild, args: [MatPaginator,] }],
163
- matSort: [{ type: ViewChild, args: [MatSort,] }]
164
- };
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFvQyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLE9BQU8sRUFBaUIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUF5QjlDLE1BQU0sT0FBTyxnQkFBZ0I7SUFxQjNCLFlBQ1UsaUJBQW9DO1FBQXBDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFyQnJDLFlBQU8sR0FBYSxFQUFFLENBQUE7UUFDdEIsZUFBVSxHQUFVLEVBQUUsQ0FBQTtRQUN0QixXQUFNLEdBQXlCLE9BQU8sQ0FBQTtRQUN0QyxhQUFRLEdBQUcsSUFBSSxDQUFBO1FBQ0osb0JBQWUsR0FBRyxJQUFJLENBQUE7UUFDakMsU0FBSSxHQUFHLElBQUksQ0FBQTtRQUVaLGVBQVUsR0FBRyxFQUFFLENBQUE7UUFDZixjQUFTLEdBQWMsS0FBSyxDQUFBO1FBRXBDLHFCQUFnQixHQUFhLEVBQUUsQ0FBQTtRQUMvQixZQUFPLEdBQWMsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUE7UUFHdEMsMkNBQTJDO1FBQzNDLGlCQUFZLEdBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFPdEIsQ0FBQztJQUVMLFFBQVE7UUFDTixJQUFJLENB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RyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUMxRCxNQUFNLFNBQVMsR0FBSSxLQUFLLENBQUMsTUFBMkIsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDO1FBQzdFLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUM3QixLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQztTQUM1QzthQUFNO1lBQ0wsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUN2QjtRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQ25DLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLFNBQVMsS0FBSyxFQUFFO1lBQ3BDLENBQUMsQ0FBQyxJQUFJLENBQUMsMENBQTBDO1lBQ2pELENBQUMsQ0FBQyxLQUFLLENBQ1YsQ0FBQztJQUNKLENBQUM7OztZQW5LRixTQUFTLFNBQUM7Z0JBQ1QsSUFBSSxFQUFFO29CQUNKLE9BQU8sRUFBRSxVQUFVO29CQUNuQixpQkFBaUIsRUFBRSxXQUFXO2lCQUMvQjtnQkFDRCxRQUFRLEVBQUUsVUFBVTtnQkFFcEIsb2dHQUFxQzs7YUFDdEM7OztZQTdCUSxpQkFBaUI7OztzQkErQnZCLEtBQUs7eUJBQ0wsS0FBSztxQkFDTCxLQUFLO3VCQUNMLEtBQUs7OEJBQ0wsS0FBSyxTQUFDLFdBQVc7bUJBQ2pCLEtBQUs7MkJBWUwsU0FBUyxTQUFDLFlBQVk7c0JBQ3RCLFNBQVMsU0FBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRQYWdpbmF0b3IgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xuaW1wb3J0IHsgTWF0U29ydCwgTWF0U29ydEhlYWRlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHsgTWF0VGFibGVEYXRhU291cmNlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG50eXBlIFNvcnRPcmRlciA9ICdhc2MnIHwgJ2Rlc2MnXG5cbmludGVyZmFjZSBDb2x1bW5GaWx0ZXIge1xuICBjb250cm9sOiAnaW5wdXQnIHwgJ3NlbGVjdCcgfCAnbXVsdGktc2VsZWN0JyxcbiAgb3B0aW9ucz86IHN0cmluZ1tdLFxuICBwbGFjZWhvbGRlcj86IHN0cmluZyxcbn1cblxuaW50ZXJmYWNlIENvbHVtbiB7XG4gIGxhYmVsOiBzdHJpbmcsXG4gIGtleTogc3RyaW5nLFxuICBmaWx0ZXI/OiBDb2x1bW5GaWx0ZXIsXG59XG5cbkBDb21wb25lbnQoe1xuICBob3N0OiB7XG4gICAgJ2NsYXNzJzogJ2Z3LXRhYmxlJyxcbiAgICAnW2NsYXNzLmNvbXBhY3RdJzogJ2lzQ29tcGFjdCcsXG4gIH0sXG4gIHNlbGVjdG9yOiAnZnctdGFibGUnLFxuICBzdHlsZVVybHM6IFsnLi90YWJsZS5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBGd1RhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBjb2x1bW5zOiBDb2x1bW5bXSA9IFtdXG4gIEBJbnB1dCgpIGRhdGFTb3VyY2U6IGFueVtdID0gW11cbiAgQElucHV0KCkgbGF5b3V0PzogJ2Jhc2ljJyB8ICdjb21wYWN0JyA9ICdiYXNpYydcbiAgQElucHV0KCkgcGFnZVNpemUgPSBudWxsXG4gIEBJbnB1dCgncGFnZS1zaXplJykgd2ViQ29tcFBhZ2VTaXplID0gbnVsbFxuICBASW5wdXQoKSBzb3J0ID0gbnVsbFxuXG4gIHByaXZhdGUgc29ydENvbHVtbiA9ICcnXG4gIHByaXZhdGUgc29ydE9yZGVyOiBTb3J0T3JkZXIgPSAnYXNjJ1xuXG4gIGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdID0gW11cbiAgZmlsdGVyczogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSlcbiAgbWF0RGF0YVNvdXJjZTogTWF0VGFibGVEYXRhU291cmNlPGFueT5cblxuICAvLyB0byBzdXBwb3J0IHVwZGF0aW5nIGNvbHVtbiBoZWFkZXIgbGFiZWxzXG4gIHRyYWNrQnlJbmRleDogYW55ID0gaSA9PiBpXG5cbiAgQFZpZXdDaGlsZChNYXRQYWdpbmF0b3IpIG1hdFBhZ2luYXRvcjogTWF0UGFnaW5hdG9yXG4gIEBWaWV3Q2hpbGQoTWF0U29ydCkgbWF0U29ydDogTWF0U29ydFxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0RGF0YVNvdXJjZSgpO1xuICAgIHRoaXMuc2V0Q29sdW1ucygpO1xuICAgIHRoaXMuYWRkRmlsdGVyQ29udHJvbHMoKTtcbiAgICB0aGlzLnNldEZpbHRlcigpO1xuICAgIHRoaXMubWF0RGF0YVNvdXJjZS5maWx0ZXJQcmVkaWNhdGUgPSAocm93LCBmaWx0ZXIpID0+IHtcbiAgICAgIGNvbnN0IGZpbHRlcnMgPSBKU09OLnBhcnNlKGZpbHRlcik7XG4gICAgICBmb3IgKGNvbnN0IGZpbHRlciBpbiBmaWx0ZXJzKSB7XG4gICAgICAgIGNvbnN0IGZpbHRlclZhbHVlID0gZmlsdGVyc1tmaWx0ZXJdO1xuICAgICAgICBjb25zdCByb3dWYWx1ZSA9IHJvd1tmaWx0ZXJdO1xuICAgICAgICAvLyBtdWx0aS1zZWxlY3RcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmlsdGVyVmFsdWUpICYmIGZpbHRlclZhbHVlLmxlbmd0aCA+IDAgJiYgIWZpbHRlclZhbHVlLmluY2x1ZGVzKHJvd1ZhbHVlKSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBpbnB1dCBvciBzZWxlY3RcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGZpbHRlclZhbHVlKSAmJiAhU3RyaW5nKHJvd1ZhbHVlKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFN0cmluZyhmaWx0ZXJWYWx1ZSA/PyAnJykudG9Mb3dlckNhc2UoKSkpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH07XG4gICAgdGhpcy5maWx0ZXJzLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSgyMDApKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zZXRGaWx0ZXIoKSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRTb3J0KCk7XG4gICAgdGhpcy5zZXRQYWdpbmF0b3IoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5jb2x1bW5zKSB7XG4gICAgICB0aGlzLnNldENvbHVtbnMoKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXMuZGF0YVNvdXJjZSkge1xuICAgICAgdGhpcy5zZXREYXRhU291cmNlKCk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzLnNvcnQgfHwgY2hhbmdlcy5kYXRhU291cmNlKSB7XG4gICAgICB0aGlzLnNldFNvcnQoKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXMucGFnZVNpemUgfHwgY2hhbmdlc1sncGFnZS1zaXplJ10pIHtcbiAgICAgIHRoaXMuc2V0UGFnaW5hdG9yKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGlzQ29tcGFjdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5sYXlvdXQgPT09ICdjb21wYWN0JztcbiAgfVxuXG4gIGdldCBwYWdpbmF0aW9uU2l6ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnBhZ2VTaXplIHx8IHRoaXMud2ViQ29tcFBhZ2VTaXplIHx8IDA7XG4gIH1cblxuICBnZXQgaXNTb3J0RW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zb3J0ICE9PSBudWxsO1xuICB9XG5cbiAgYWRkRmlsdGVyQ29udHJvbHMoKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBjb2x1bW4gb2YgdGhpcy5jb2x1bW5zKSB7XG4gICAgICB0aGlzLmZpbHRlcnMuYWRkQ29udHJvbChjb2x1bW4ua2V5LCBuZXcgRm9ybUNvbnRyb2woKSk7XG4gICAgfVxuICB9XG5cbiAgc2V0RGF0YVNvdXJjZSgpOiB2b2lkIHtcbiAgICB0aGlzLm1hdERhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlKHRoaXMuZGF0YVNvdXJjZSk7XG4gIH1cblxuICBzZXRDb2x1bW5zKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucyA9IHRoaXMuY29sdW1ucy5tYXAoY29sdW1uID0+IGNvbHVtbi5rZXkpO1xuICB9XG5cbiAgc2V0RmlsdGVyKCk6IHZvaWQge1xuICAgIHRoaXMubWF0RGF0YVNvdXJjZS5maWx0ZXIgPSBKU09OLnN0cmluZ2lmeSh0aGlzLmZpbHRlcnMudmFsdWUpO1xuICB9XG5cbiAgc2V0U29ydCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubWF0U29ydCB8fCB0aGlzLnNvcnQgPT09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgc29ydFNwbGl0ID0gdGhpcy5zb3J0LnNwbGl0KCcgJyk7XG4gICAgdGhpcy5zb3J0Q29sdW1uID0gc29ydFNwbGl0WzBdO1xuICAgIGlmIChbJ2FzYycsICdkZXNjJ10uaW5jbHVkZXMoc29ydFNwbGl0WzFdKSkge1xuICAgICAgdGhpcy5zb3J0T3JkZXIgPSBzb3J0U3BsaXRbMV0gYXMgU29ydE9yZGVyO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLndhcm4oYFNvcnQgb3JkZXIgJyR7c29ydFNwbGl0WzFdfScgaXMgbm90ICdhc2MnIG9yICdkZXNjJywgZGVmYXVsdGluZyB0byAnYXNjJ2ApO1xuICAgIH1cbiAgICBpZiAodGhpcy5zb3J0Q29sdW1uKSB7XG4gICAgICB0aGlzLm1hdFNvcnQuc29ydCh7IGlkOiB0aGlzLnNvcnRDb2x1bW4sIHN0YXJ0OiB0aGlzLnNvcnRPcmRlciwgZGlzYWJsZUNsZWFyOiBmYWxzZSB9KTtcbiAgICAgIGNvbnN0IHNvcnRIZWFkZXIgPSB0aGlzLm1hdFNvcnQuc29ydGFibGVzLmdldCh0aGlzLnNvcnRDb2x1bW4pIGFzIE1hdFNvcnRIZWFkZXI7XG4gICAgICBpZiAoc29ydEhlYWRlcikge1xuICAgICAgICBzb3J0SGVhZGVyLl9zZXRBbmltYXRpb25UcmFuc2l0aW9uU3RhdGUoeyB0b1N0YXRlOiAnYWN0aXZlJyB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUud2FybihgVW5hYmxlIHRvIGZpbmQgc29ydCBjb2x1bW4gJyR7dGhpcy5zb3J0Q29sdW1ufScuIEluaXRpYWwgc29ydCBmYWlsZWQuYCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMubWF0RGF0YVNvdXJjZS5zb3J0ID0gdGhpcy5tYXRTb3J0O1xuICB9XG5cbiAgc2V0UGFnaW5hdG9yKCk6IHZvaWQge1xuICAgIC8vIGVuc3VyZXMgdWkgdXBkYXRlcyBjb3JyZWN0bHkgd2hlbiBwYWdpbmF0b3Igb3B0aW9ucyBjaGFuZ2VcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB0aGlzLm1hdERhdGFTb3VyY2UucGFnaW5hdG9yID0gdGhpcy5tYXRQYWdpbmF0b3I7XG4gIH1cblxuICAvLyBuZWNlc3NhcnkgZm9yIHdlYiBjb21wb25lbnQgdG8gdHJpZ2dlciB0aGlzLmZpbHRlci52YWx1ZUNoYW5nZXNcbiAgb25JbnB1dEZpbHRlcihldmVudDogS2V5Ym9hcmRFdmVudCwgY29sdW1uOiBDb2x1bW4pOiB2b2lkIHtcbiAgICAvLyBkZWZlciBzZXR0aW5nIGZpbHRlciBjb250cm9sIGFzIGV2ZW50LnRhcmdldC52YWx1ZSBpcyBub3Qgc2V0IHlldFxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5maWx0ZXJzLmdldChjb2x1bW4ua2V5KS5zZXRWYWx1ZSgoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlKSk7XG4gIH1cblxuICAvLyBuZWNlc3NhcnkgZm9yIHdlYiBjb21wb25lbnQgdG8gdHJpZ2dlciB0aGlzLmZpbHRlci52YWx1ZUNoYW5nZXNcbiAgb25TZWxlY3RGaWx0ZXIoZXZlbnQ6IE1vdXNlRXZlbnQsIGNvbHVtbjogQ29sdW1uKTogdm9pZCB7XG4gICAgY29uc3QgaW5uZXJUZXh0ID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5pbm5lclRleHQ7XG4gICAgdGhpcy5maWx0ZXJzLmdldChjb2x1bW4ua2V5KS5zZXRWYWx1ZShpbm5lclRleHQgPT09ICctIG5vbmUgLScgPyBudWxsIDogaW5uZXJUZXh0KTtcbiAgfVxuXG4gIC8vIG5lY2Vzc2FyeSBmb3Igd2ViIGNvbXBvbmVudCB0byB0cmlnZ2VyIHRoaXMuZmlsdGVyLnZhbHVlQ2hhbmdlc1xuICBvbk11bHRpU2VsZWN0RmlsdGVyKGV2ZW50OiBNb3VzZUV2ZW50LCBjb2x1bW46IENvbHVtbik6IHZvaWQge1xuICAgIGxldCB2YWx1ZSA9IHRoaXMuZmlsdGVycy5jb250cm9sc1tjb2x1bW4ua2V5XS52YWx1ZSB8fCBbXTtcbiAgICBjb25zdCBpbm5lclRleHQgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnBhcmVudEVsZW1lbnQuaW5uZXJUZXh0O1xuICAgIGlmICh2YWx1ZS5pbmNsdWRlcyhpbm5lclRleHQpKSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcih2ID0+IHYgIT09IGlubmVyVGV4dCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlLnB1c2goaW5uZXJUZXh0KTtcbiAgICB9XG4gICAgdGhpcy5maWx0ZXJzLmdldChjb2x1bW4ua2V5KS5zZXRWYWx1ZShcbiAgICAgIHZhbHVlLmxlbmd0aCA9PT0gMSAmJiBpbm5lclRleHQgPT09ICcnXG4gICAgICAgID8gbnVsbCAvLyB3aGVuIGFsbCBjaGVjYm94ZXMgaGF2ZSBiZWVuIGRlc2VsZWN0ZWRcbiAgICAgICAgOiB2YWx1ZVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -1,35 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
- import { MatInputModule } from '@angular/material/input';
5
- import { MatPaginatorModule } from '@angular/material/paginator';
6
- import { MatSelectModule } from '@angular/material/select';
7
- import { MatSortModule } from '@angular/material/sort';
8
- import { MatTableModule } from '@angular/material/table';
9
- import { FwTableComponent } from './table.component';
10
- export class FwTableModule {
11
- }
12
- FwTableModule.decorators = [
13
- { type: NgModule, args: [{
14
- imports: [
15
- CommonModule,
16
- FormsModule,
17
- ReactiveFormsModule,
18
- MatInputModule,
19
- MatPaginatorModule,
20
- MatSelectModule,
21
- MatSortModule,
22
- MatTableModule,
23
- ],
24
- exports: [
25
- FwTableComponent,
26
- ],
27
- declarations: [
28
- FwTableComponent,
29
- ],
30
- entryComponents: [
31
- FwTableComponent,
32
- ]
33
- },] }
34
- ];
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdGFibGUvdGFibGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUF1QnJELE1BQU0sT0FBTyxhQUFhOzs7WUFyQnpCLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixXQUFXO29CQUNYLG1CQUFtQjtvQkFDbkIsY0FBYztvQkFDZCxrQkFBa0I7b0JBQ2xCLGVBQWU7b0JBQ2YsYUFBYTtvQkFDYixjQUFjO2lCQUNmO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxnQkFBZ0I7aUJBQ2pCO2dCQUNELFlBQVksRUFBRTtvQkFDWixnQkFBZ0I7aUJBQ2pCO2dCQUNELGVBQWUsRUFBRTtvQkFDZixnQkFBZ0I7aUJBQ2pCO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRQYWdpbmF0b3JNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IE1hdFNvcnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7IE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuXG5pbXBvcnQgeyBGd1RhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgTWF0UGFnaW5hdG9yTW9kdWxlLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICBNYXRTb3J0TW9kdWxlLFxuICAgIE1hdFRhYmxlTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgRndUYWJsZUNvbXBvbmVudCxcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgRndUYWJsZUNvbXBvbmVudCxcbiAgXSxcbiAgZW50cnlDb21wb25lbnRzOiBbXG4gICAgRndUYWJsZUNvbXBvbmVudCxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBGd1RhYmxlTW9kdWxlIHt9XG4iXX0=
@@ -1,56 +0,0 @@
1
- import './polyfills';
2
- import { Compiler, enableProdMode, Injector, NgModule } from '@angular/core';
3
- import { createCustomElement } from '@angular/elements';
4
- import { BrowserModule } from '@angular/platform-browser';
5
- import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
6
- import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
7
- let elementAppModule;
8
- class ElementAppModule {
9
- constructor(compiler, injector) {
10
- this.compiler = compiler;
11
- this.injector = injector;
12
- elementAppModule = this;
13
- }
14
- ngDoBootstrap() { }
15
- }
16
- ElementAppModule.decorators = [
17
- { type: NgModule, args: [{
18
- imports: [
19
- BrowserAnimationsModule,
20
- BrowserModule,
21
- ],
22
- },] }
23
- ];
24
- ElementAppModule.ctorParameters = () => [
25
- { type: Compiler },
26
- { type: Injector }
27
- ];
28
- function initializeApp() {
29
- enableProdMode();
30
- return platformBrowserDynamic().bootstrapModule(ElementAppModule)
31
- .catch(error => {
32
- console.error(error);
33
- throw error;
34
- }).then(() => void 0);
35
- }
36
- let initPromise;
37
- // https://github.com/angular/angular/blob/a92a89b0eb127a59d7e071502b5850e57618ec2d/aio/src/app/custom-elements/elements-loader.ts#L70
38
- export function registerElements(...modules) {
39
- if (!initPromise) {
40
- initPromise = initializeApp();
41
- }
42
- const elementSelectors = [];
43
- return initPromise.then(() => Promise.all(modules.map(module => {
44
- return elementAppModule.compiler.compileModuleAndAllComponentsAsync(module).then(compiledModule => {
45
- const moduleRef = compiledModule.ngModuleFactory.create(elementAppModule.injector);
46
- for (const { selector, componentType } of compiledModule.componentFactories) {
47
- if (selector.startsWith('fw-')) {
48
- const element = createCustomElement(componentType, { injector: moduleRef.injector });
49
- customElements.define(selector, element);
50
- elementSelectors.push(selector);
51
- }
52
- }
53
- });
54
- }))).then(() => elementSelectors);
55
- }
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9lbGVtZW50cy9zcmMvZWxlbWVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLFFBQVEsRUFBZSxjQUFjLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUNoRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFM0UsSUFBSSxnQkFBa0MsQ0FBQztBQUV2QyxNQU1NLGdCQUFnQjtJQUNwQixZQUNTLFFBQWtCLEVBQ2xCLFFBQWtCO1FBRGxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUV6QixnQkFBZ0IsR0FBRyxJQUFJLENBQUM7SUFDMUIsQ0FBQztJQUVELGFBQWEsS0FBVSxDQUFDOzs7WUFkekIsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCx1QkFBdUI7b0JBQ3ZCLGFBQWE7aUJBQ2Q7YUFDRjs7O1lBYlEsUUFBUTtZQUErQixRQUFROztBQXlCeEQsU0FBUyxhQUFhO0lBQ3BCLGNBQWMsRUFBRSxDQUFDO0lBQ2pCLE9BQU8sc0JBQXNCLEVBQUUsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUM7U0FDOUQsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixNQUFNLEtBQUssQ0FBQztJQUNkLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzFCLENBQUM7QUFFRCxJQUFJLFdBQTBCLENBQUM7QUFFL0Isc0lBQXNJO0FBQ3RJLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxHQUFHLE9BQXdCO0lBQzFELElBQUksQ0FBQyxXQUFXLEVBQUU7UUFDaEIsV0FBVyxHQUFHLGFBQWEsRUFBRSxDQUFDO0tBQy9CO0lBQ0QsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7SUFDNUIsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUM3RCxPQUFPLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxrQ0FBa0MsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDaEcsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkYsS0FBSyxNQUFNLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxJQUFJLGNBQWMsQ0FBQyxrQkFBa0IsRUFBRTtnQkFDM0UsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFO29CQUM5QixNQUFNLE9BQU8sR0FBRyxtQkFBbUIsQ0FBQyxhQUFhLEVBQUUsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7b0JBQ3JGLGNBQWMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO29CQUN6QyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ2pDO2FBQ0Y7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUNwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICcuL3BvbHlmaWxscyc7XG5pbXBvcnQgeyBDb21waWxlciwgRG9Cb290c3RyYXAsIGVuYWJsZVByb2RNb2RlLCBJbmplY3RvciwgTmdNb2R1bGUsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNyZWF0ZUN1c3RvbUVsZW1lbnQgfSBmcm9tICdAYW5ndWxhci9lbGVtZW50cyc7XG5pbXBvcnQgeyBCcm93c2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBCcm93c2VyQW5pbWF0aW9uc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBwbGF0Zm9ybUJyb3dzZXJEeW5hbWljIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci1keW5hbWljJztcblxubGV0IGVsZW1lbnRBcHBNb2R1bGU6IEVsZW1lbnRBcHBNb2R1bGU7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBCcm93c2VyQW5pbWF0aW9uc01vZHVsZSxcbiAgICBCcm93c2VyTW9kdWxlLFxuICBdLFxufSlcbmNsYXNzIEVsZW1lbnRBcHBNb2R1bGUgaW1wbGVtZW50cyBEb0Jvb3RzdHJhcCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBjb21waWxlcjogQ29tcGlsZXIsXG4gICAgcHVibGljIGluamVjdG9yOiBJbmplY3RvcixcbiAgKSB7XG4gICAgZWxlbWVudEFwcE1vZHVsZSA9IHRoaXM7XG4gIH1cblxuICBuZ0RvQm9vdHN0cmFwKCk6IHZvaWQge31cbn1cblxuZnVuY3Rpb24gaW5pdGlhbGl6ZUFwcCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgZW5hYmxlUHJvZE1vZGUoKTtcbiAgcmV0dXJuIHBsYXRmb3JtQnJvd3NlckR5bmFtaWMoKS5ib290c3RyYXBNb2R1bGUoRWxlbWVudEFwcE1vZHVsZSlcbiAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9KS50aGVuKCgpID0+IHZvaWQgMCk7XG59XG5cbmxldCBpbml0UHJvbWlzZTogUHJvbWlzZTx2b2lkPjtcblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9ibG9iL2E5MmE4OWIwZWIxMjdhNTlkN2UwNzE1MDJiNTg1MGU1NzYxOGVjMmQvYWlvL3NyYy9hcHAvY3VzdG9tLWVsZW1lbnRzL2VsZW1lbnRzLWxvYWRlci50cyNMNzBcbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlckVsZW1lbnRzKC4uLm1vZHVsZXM6IFR5cGU8dW5rbm93bj5bXSk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgaWYgKCFpbml0UHJvbWlzZSkge1xuICAgIGluaXRQcm9taXNlID0gaW5pdGlhbGl6ZUFwcCgpO1xuICB9XG4gIGNvbnN0IGVsZW1lbnRTZWxlY3RvcnMgPSBbXTtcbiAgcmV0dXJuIGluaXRQcm9taXNlLnRoZW4oKCkgPT4gUHJvbWlzZS5hbGwobW9kdWxlcy5tYXAobW9kdWxlID0+IHtcbiAgICByZXR1cm4gZWxlbWVudEFwcE1vZHVsZS5jb21waWxlci5jb21waWxlTW9kdWxlQW5kQWxsQ29tcG9uZW50c0FzeW5jKG1vZHVsZSkudGhlbihjb21waWxlZE1vZHVsZSA9PiB7XG4gICAgICBjb25zdCBtb2R1bGVSZWYgPSBjb21waWxlZE1vZHVsZS5uZ01vZHVsZUZhY3RvcnkuY3JlYXRlKGVsZW1lbnRBcHBNb2R1bGUuaW5qZWN0b3IpO1xuICAgICAgZm9yIChjb25zdCB7IHNlbGVjdG9yLCBjb21wb25lbnRUeXBlIH0gb2YgY29tcGlsZWRNb2R1bGUuY29tcG9uZW50RmFjdG9yaWVzKSB7XG4gICAgICAgIGlmIChzZWxlY3Rvci5zdGFydHNXaXRoKCdmdy0nKSkge1xuICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBjcmVhdGVDdXN0b21FbGVtZW50KGNvbXBvbmVudFR5cGUsIHsgaW5qZWN0b3I6IG1vZHVsZVJlZi5pbmplY3RvciB9KTtcbiAgICAgICAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUoc2VsZWN0b3IsIGVsZW1lbnQpO1xuICAgICAgICAgIGVsZW1lbnRTZWxlY3RvcnMucHVzaChzZWxlY3Rvcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfSkpKS50aGVuKCgpID0+IGVsZW1lbnRTZWxlY3RvcnMpO1xufVxuIl19
@@ -1,9 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- export { FwNotificationTimerService as ɵd } from './components/notification/notification-timer.service';
6
- export { PipesModule as ɵa } from './components/shared/pipes/pipes.module';
7
- export { TranslatePipe as ɵb } from './components/shared/pipes/translate.pipe';
8
- export { TrustHtmlPipe as ɵc } from './components/shared/pipes/trusthtml.pipe';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmx5d2hlZWwtaW8tdmlzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ZseXdoZWVsLWlvLXZpc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQywwQkFBMEIsSUFBSSxFQUFFLEVBQUMsTUFBTSxzREFBc0QsQ0FBQztBQUN0RyxPQUFPLEVBQUMsV0FBVyxJQUFJLEVBQUUsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxhQUFhLElBQUksRUFBRSxFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFDLGFBQWEsSUFBSSxFQUFFLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcblxuZXhwb3J0IHtGd05vdGlmaWNhdGlvblRpbWVyU2VydmljZSBhcyDJtWR9IGZyb20gJy4vY29tcG9uZW50cy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLXRpbWVyLnNlcnZpY2UnO1xuZXhwb3J0IHtQaXBlc01vZHVsZSBhcyDJtWF9IGZyb20gJy4vY29tcG9uZW50cy9zaGFyZWQvcGlwZXMvcGlwZXMubW9kdWxlJztcbmV4cG9ydCB7VHJhbnNsYXRlUGlwZSBhcyDJtWJ9IGZyb20gJy4vY29tcG9uZW50cy9zaGFyZWQvcGlwZXMvdHJhbnNsYXRlLnBpcGUnO1xuZXhwb3J0IHtUcnVzdEh0bWxQaXBlIGFzIMm1Y30gZnJvbSAnLi9jb21wb25lbnRzL3NoYXJlZC9waXBlcy90cnVzdGh0bWwucGlwZSc7Il19
@@ -1,23 +0,0 @@
1
- export * from './components/button-group/button-group.component';
2
- export * from './components/button-group/button-group.module';
3
- export * from './components/button/button.component';
4
- export * from './components/button/button.module';
5
- export * from './components/dialog/choice-dialog.component';
6
- export * from './components/dialog/confirm-dialog.component';
7
- export * from './components/dialog/dialog.module';
8
- export * from './components/dialog/dialog.service';
9
- export * from './components/dialog/error-dialog.component';
10
- export * from './components/dialog/portal-dialog.component';
11
- export * from './components/notification/notification-container/notification-container.component';
12
- export * from './components/notification/notification.module';
13
- export * from './components/notification/notification.service';
14
- export * from './components/notification/notification/notification.component';
15
- export * from './components/notification/notification/notification.model';
16
- export * from './components/popover/popover-trigger.component';
17
- export * from './components/popover/popover-trigger.directive';
18
- export * from './components/popover/popover.component';
19
- export * from './components/popover/popover.module';
20
- export * from './components/table/table.component';
21
- export * from './components/table/table.module';
22
- export * from './components/shared/translation.service';
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyxtRkFBbUYsQ0FBQztBQUNsRyxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYywrREFBK0QsQ0FBQztBQUM5RSxjQUFjLDJEQUEyRCxDQUFDO0FBQzFFLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMseUNBQXlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvYnV0dG9uLWdyb3VwL2J1dHRvbi1ncm91cC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2J1dHRvbi1ncm91cC9idXR0b24tZ3JvdXAubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2RpYWxvZy9jaG9pY2UtZGlhbG9nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvZGlhbG9nL2NvbmZpcm0tZGlhbG9nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvZGlhbG9nL2RpYWxvZy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2RpYWxvZy9kaWFsb2cuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvZGlhbG9nL2Vycm9yLWRpYWxvZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2RpYWxvZy9wb3J0YWwtZGlhbG9nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi1jb250YWluZXIvbm90aWZpY2F0aW9uLWNvbnRhaW5lci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24ubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24ubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3BvcG92ZXIvcG9wb3Zlci10cmlnZ2VyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvcG9wb3Zlci9wb3BvdmVyLXRyaWdnZXIuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9wb3BvdmVyL3BvcG92ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9wb3BvdmVyL3BvcG92ZXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy90YWJsZS90YWJsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvc2hhcmVkL3RyYW5zbGF0aW9uLnNlcnZpY2UnO1xuIl19
@@ -1 +0,0 @@
1
- {"version":3,"file":"flywheel-io-vision-elements.js","sources":["../../../elements/src/polyfills.ts","../../../elements/src/elements.ts","../../../elements/src/flywheel-io-vision-elements.ts"],"sourcesContent":["/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n * 2. Application imports. Files imported after ZoneJS that should be loaded before your main\n * file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/**\n * IE11 requires the following for NgClass support on SVG elements\n */\n// import 'classlist.js'; // Run `npm install --save classlist.js`.\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n */\n// import 'web-animations-js'; // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n * with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n * (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone'; // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\nimport 'document-register-element';\n","import './polyfills';\nimport { Compiler, DoBootstrap, enableProdMode, Injector, NgModule, Type } from '@angular/core';\nimport { createCustomElement } from '@angular/elements';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nlet elementAppModule: ElementAppModule;\n\n@NgModule({\n imports: [\n BrowserAnimationsModule,\n BrowserModule,\n ],\n})\nclass ElementAppModule implements DoBootstrap {\n constructor(\n public compiler: Compiler,\n public injector: Injector,\n ) {\n elementAppModule = this;\n }\n\n ngDoBootstrap(): void {}\n}\n\nfunction initializeApp(): Promise<void> {\n enableProdMode();\n return platformBrowserDynamic().bootstrapModule(ElementAppModule)\n .catch(error => {\n console.error(error);\n throw error;\n }).then(() => void 0);\n}\n\nlet initPromise: Promise<void>;\n\n// https://github.com/angular/angular/blob/a92a89b0eb127a59d7e071502b5850e57618ec2d/aio/src/app/custom-elements/elements-loader.ts#L70\nexport function registerElements(...modules: Type<unknown>[]): Promise<string[]> {\n if (!initPromise) {\n initPromise = initializeApp();\n }\n const elementSelectors = [];\n return initPromise.then(() => Promise.all(modules.map(module => {\n return elementAppModule.compiler.compileModuleAndAllComponentsAsync(module).then(compiledModule => {\n const moduleRef = compiledModule.ngModuleFactory.create(elementAppModule.injector);\n for (const { selector, componentType } of compiledModule.componentFactories) {\n if (selector.startsWith('fw-')) {\n const element = createCustomElement(componentType, { injector: moduleRef.injector });\n customElements.define(selector, element);\n elementSelectors.push(selector);\n }\n }\n });\n }))).then(() => elementSelectors);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;AAAA;;;;;;;;;;;;;;;;ACOA,IAAI,gBAAkC,CAAC;AAEvC,MAMM,gBAAgB;IACpB,YACS,QAAkB,EAClB,QAAkB;QADlB,aAAQ,GAAR,QAAQ,CAAU;QAClB,aAAQ,GAAR,QAAQ,CAAU;QAEzB,gBAAgB,GAAG,IAAI,CAAC;KACzB;IAED,aAAa,MAAW;;;YAdzB,QAAQ,SAAC;gBACR,OAAO,EAAE;oBACP,uBAAuB;oBACvB,aAAa;iBACd;aACF;;;YAbQ,QAAQ;YAA+B,QAAQ;;AAyBxD,SAAS,aAAa;IACpB,cAAc,EAAE,CAAC;IACjB,OAAO,sBAAsB,EAAE,CAAC,eAAe,CAAC,gBAAgB,CAAC;SAC9D,KAAK,CAAC,KAAK;QACV,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,MAAM,KAAK,CAAC;KACb,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;AAC1B,CAAC;AAED,IAAI,WAA0B,CAAC;AAE/B;SACgB,gBAAgB,CAAC,GAAG,OAAwB;IAC1D,IAAI,CAAC,WAAW,EAAE;QAChB,WAAW,GAAG,aAAa,EAAE,CAAC;KAC/B;IACD,MAAM,gBAAgB,GAAG,EAAE,CAAC;IAC5B,OAAO,WAAW,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM;QAC1D,OAAO,gBAAgB,CAAC,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,cAAc;YAC7F,MAAM,SAAS,GAAG,cAAc,CAAC,eAAe,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YACnF,KAAK,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,cAAc,CAAC,kBAAkB,EAAE;gBAC3E,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;oBAC9B,MAAM,OAAO,GAAG,mBAAmB,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;oBACrF,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACzC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBACjC;aACF;SACF,CAAC,CAAC;KACJ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,gBAAgB,CAAC,CAAC;AACpC;;ACvDA;;;;;;"}