@porscheinformatik/material-addons 0.0.35 → 0.0.99
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.
- package/README.md +29 -29
- package/esm2022/lib/button/button.mjs +7 -0
- package/esm2022/lib/button/button.module.mjs +26 -0
- package/esm2022/lib/button/danger-button/danger-button.component.mjs +28 -0
- package/esm2022/lib/button/flat-button/link-button.component.mjs +28 -0
- package/esm2022/lib/button/icon-button/icon-button.component.mjs +28 -0
- package/esm2022/lib/button/mad-basic-button.mjs +39 -0
- package/esm2022/lib/button/outline-button/outline-button.component.mjs +28 -0
- package/esm2022/lib/button/primary-button/primary-button.component.mjs +28 -0
- package/esm2022/lib/card/card.component.mjs +129 -0
- package/esm2022/lib/card/card.mjs +2 -0
- package/esm2022/lib/card/card.module.mjs +23 -0
- package/esm2022/lib/content-panel/content-header/content-header.component.mjs +11 -0
- package/esm2022/lib/content-panel/content-panel-container/content-panel-container.component.mjs +11 -0
- package/esm2022/lib/content-panel/content-panel-container-content/content-panel-container-content.component.mjs +11 -0
- package/esm2022/lib/content-panel/content-panel-container-footer/content-panel-container-footer.component.mjs +11 -0
- package/esm2022/lib/content-panel/content-panel.module.mjs +42 -0
- package/esm2022/lib/content-panel/main-container/main-container.component.mjs +11 -0
- package/esm2022/lib/data-table/data-table-action-type.mjs +6 -0
- package/esm2022/lib/data-table/data-table-action.mjs +2 -0
- package/esm2022/lib/data-table/data-table-column-definition.mjs +2 -0
- package/esm2022/lib/data-table/data-table-column.mjs +2 -0
- package/esm2022/lib/data-table/data-table-columns-modal/data-table-columns-modal.component.mjs +103 -0
- package/esm2022/lib/data-table/data-table-row.mjs +2 -0
- package/esm2022/lib/data-table/data-table.component.mjs +529 -0
- package/esm2022/lib/data-table/data-table.mjs +3 -0
- package/esm2022/lib/data-table/data-table.module.mjs +81 -0
- package/esm2022/lib/file-upload/drag-and-drop-directive.directive.mjs +61 -0
- package/esm2022/lib/file-upload/file-upload.component.mjs +78 -0
- package/esm2022/lib/flowbar/flowbar.component.mjs +190 -0
- package/esm2022/lib/flowbar/flowbar.module.mjs +19 -0
- package/esm2022/lib/material-action-button/material-action-button.component.mjs +34 -0
- package/esm2022/lib/material-action-button/material-action-button.module.mjs +22 -0
- package/esm2022/lib/material-addons.module.mjs +45 -0
- package/esm2022/lib/numeric-field/number-format.service.mjs +139 -0
- package/esm2022/lib/numeric-field/numeric-field.directive.mjs +295 -0
- package/esm2022/lib/numeric-field/numeric-field.mjs +2 -0
- package/esm2022/lib/numeric-field/numeric-field.module.mjs +24 -0
- package/esm2022/lib/quick-list/base-quick-list.component.mjs +124 -0
- package/esm2022/lib/quick-list/quick-list-compact/quick-list-compact.component.mjs +22 -0
- package/esm2022/lib/quick-list/quick-list.component.mjs +23 -0
- package/esm2022/lib/quick-list/quick-list.mjs +6 -0
- package/esm2022/lib/quick-list/quick-list.module.mjs +46 -0
- package/esm2022/lib/quick-list/reactive-form-quick-list/reactive-form-quick-list.component.mjs +22 -0
- package/esm2022/lib/quick-list/reactive-form-quick-list-compact/reactive-form-quick-list-compact.component.mjs +22 -0
- package/esm2022/lib/readonly/readonly-form-field/readonly-form-field.component.mjs +181 -0
- package/esm2022/lib/readonly/readonly-form-field-wrapper/readonly-form-field-wrapper.component.mjs +206 -0
- package/esm2022/lib/readonly/readonly-form-field.module.mjs +25 -0
- package/esm2022/lib/stepper/mad-stepper-animation.mjs +13 -0
- package/esm2022/lib/stepper/step-header/step-header.component.mjs +77 -0
- package/esm2022/lib/stepper/stepper.component.mjs +159 -0
- package/esm2022/lib/stepper/stepper.module.mjs +23 -0
- package/esm2022/lib/table/column-header.mjs +2 -0
- package/esm2022/lib/table/table-action.mjs +2 -0
- package/esm2022/lib/table/table.component.mjs +130 -0
- package/esm2022/lib/table/table.mjs +2 -0
- package/esm2022/lib/table/table.module.mjs +56 -0
- package/esm2022/lib/throttle-click/throttle-click.directive.mjs +38 -0
- package/esm2022/lib/throttle-click/throttle-click.module.mjs +18 -0
- package/esm2022/lib/toolbar/toolbar-action.interface.mjs +2 -0
- package/esm2022/lib/toolbar/toolbar.component.mjs +78 -0
- package/esm2022/lib/toolbar/toolbar.module.mjs +56 -0
- package/esm2022/lib/toolbar/toolbar.service.mjs +124 -0
- package/esm2022/porscheinformatik-material-addons.mjs +5 -0
- package/esm2022/public_api.mjs +42 -0
- package/fesm2022/porscheinformatik-material-addons.mjs +3229 -0
- package/fesm2022/porscheinformatik-material-addons.mjs.map +1 -0
- package/index.d.ts +6 -0
- package/lib/button/button.d.ts +7 -0
- package/lib/button/button.d.ts.map +1 -0
- package/lib/button/button.module.d.ts +17 -0
- package/lib/button/button.module.d.ts.map +1 -0
- package/lib/button/danger-button/danger-button.component.d.ts +13 -0
- package/lib/button/danger-button/danger-button.component.d.ts.map +1 -0
- package/lib/button/flat-button/link-button.component.d.ts +13 -0
- package/lib/button/flat-button/link-button.component.d.ts.map +1 -0
- package/lib/button/icon-button/icon-button.component.d.ts +13 -0
- package/lib/button/icon-button/icon-button.component.d.ts.map +1 -0
- package/lib/button/mad-basic-button.d.ts +14 -0
- package/lib/button/mad-basic-button.d.ts.map +1 -0
- package/lib/button/outline-button/outline-button.component.d.ts +13 -0
- package/lib/button/outline-button/outline-button.component.d.ts.map +1 -0
- package/lib/button/primary-button/primary-button.component.d.ts +13 -0
- package/lib/button/primary-button/primary-button.component.d.ts.map +1 -0
- package/lib/card/card.component.d.ts +28 -0
- package/lib/card/card.component.d.ts.map +1 -0
- package/lib/card/card.d.ts +2 -0
- package/lib/card/card.d.ts.map +1 -0
- package/lib/card/card.module.d.ts +14 -0
- package/lib/card/card.module.d.ts.map +1 -0
- package/lib/content-panel/content-header/content-header.component.d.ts +6 -0
- package/lib/content-panel/content-header/content-header.component.d.ts.map +1 -0
- package/lib/content-panel/content-panel-container/content-panel-container.component.d.ts +6 -0
- package/lib/content-panel/content-panel-container/content-panel-container.component.d.ts.map +1 -0
- package/lib/content-panel/content-panel-container-content/content-panel-container-content.component.d.ts +6 -0
- package/lib/content-panel/content-panel-container-content/content-panel-container-content.component.d.ts.map +1 -0
- package/lib/content-panel/content-panel-container-footer/content-panel-container-footer.component.d.ts +6 -0
- package/lib/content-panel/content-panel-container-footer/content-panel-container-footer.component.d.ts.map +1 -0
- package/lib/content-panel/content-panel.module.d.ts +13 -0
- package/lib/content-panel/content-panel.module.d.ts.map +1 -0
- package/lib/content-panel/main-container/main-container.component.d.ts +6 -0
- package/lib/content-panel/main-container/main-container.component.d.ts.map +1 -0
- package/lib/data-table/data-table-action-type.d.ts +6 -0
- package/lib/data-table/data-table-action-type.d.ts.map +1 -0
- package/lib/data-table/data-table-action.d.ts +8 -0
- package/lib/data-table/data-table-action.d.ts.map +1 -0
- package/lib/data-table/data-table-column-definition.d.ts +28 -0
- package/lib/data-table/data-table-column-definition.d.ts.map +1 -0
- package/lib/data-table/data-table-column.d.ts +11 -0
- package/lib/data-table/data-table-column.d.ts.map +1 -0
- package/lib/data-table/data-table-columns-modal/data-table-columns-modal.component.d.ts +27 -0
- package/lib/data-table/data-table-columns-modal/data-table-columns-modal.component.d.ts.map +1 -0
- package/lib/data-table/data-table-row.d.ts +7 -0
- package/lib/data-table/data-table-row.d.ts.map +1 -0
- package/lib/data-table/data-table.component.d.ts +123 -0
- package/lib/data-table/data-table.component.d.ts.map +1 -0
- package/lib/data-table/data-table.d.ts +6 -0
- package/lib/data-table/data-table.d.ts.map +1 -0
- package/lib/data-table/data-table.module.d.ts +25 -0
- package/lib/data-table/data-table.module.d.ts.map +1 -0
- package/lib/file-upload/drag-and-drop-directive.directive.d.ts +13 -0
- package/lib/file-upload/drag-and-drop-directive.directive.d.ts.map +1 -0
- package/lib/file-upload/file-upload.component.d.ts +22 -0
- package/lib/file-upload/file-upload.component.d.ts.map +1 -0
- package/lib/flowbar/flowbar.component.d.ts +47 -0
- package/lib/flowbar/flowbar.component.d.ts.map +1 -0
- package/lib/flowbar/flowbar.module.d.ts +10 -0
- package/lib/flowbar/flowbar.module.d.ts.map +1 -0
- package/lib/material-action-button/material-action-button.component.d.ts +12 -8
- package/lib/material-action-button/material-action-button.component.d.ts.map +1 -0
- package/lib/material-action-button/material-action-button.module.d.ts +13 -2
- package/lib/material-action-button/material-action-button.module.d.ts.map +1 -0
- package/lib/material-addons.module.d.ts +15 -2
- package/lib/material-addons.module.d.ts.map +1 -0
- package/lib/numeric-field/number-format.service.d.ts +31 -0
- package/lib/numeric-field/number-format.service.d.ts.map +1 -0
- package/lib/numeric-field/numeric-field.d.ts +2 -0
- package/lib/numeric-field/numeric-field.d.ts.map +1 -0
- package/lib/numeric-field/numeric-field.directive.d.ts +45 -0
- package/lib/numeric-field/numeric-field.directive.d.ts.map +1 -0
- package/lib/numeric-field/numeric-field.module.d.ts +10 -0
- package/lib/numeric-field/numeric-field.module.d.ts.map +1 -0
- package/lib/quick-list/base-quick-list.component.d.ts +41 -0
- package/lib/quick-list/base-quick-list.component.d.ts.map +1 -0
- package/lib/quick-list/quick-list-compact/quick-list-compact.component.d.ts +12 -0
- package/lib/quick-list/quick-list-compact/quick-list-compact.component.d.ts.map +1 -0
- package/lib/quick-list/quick-list.component.d.ts +12 -0
- package/lib/quick-list/quick-list.component.d.ts.map +1 -0
- package/lib/quick-list/quick-list.d.ts +6 -0
- package/lib/quick-list/quick-list.d.ts.map +1 -0
- package/lib/quick-list/quick-list.module.d.ts +17 -0
- package/lib/quick-list/quick-list.module.d.ts.map +1 -0
- package/lib/quick-list/reactive-form-quick-list/reactive-form-quick-list.component.d.ts +12 -0
- package/lib/quick-list/reactive-form-quick-list/reactive-form-quick-list.component.d.ts.map +1 -0
- package/lib/quick-list/reactive-form-quick-list-compact/reactive-form-quick-list-compact.component.d.ts +12 -0
- package/lib/quick-list/reactive-form-quick-list-compact/reactive-form-quick-list-compact.component.d.ts.map +1 -0
- package/lib/readonly/readonly-form-field/readonly-form-field.component.d.ts +56 -14
- package/lib/readonly/readonly-form-field/readonly-form-field.component.d.ts.map +1 -0
- package/lib/readonly/readonly-form-field-wrapper/readonly-form-field-wrapper.component.d.ts +89 -31
- package/lib/readonly/readonly-form-field-wrapper/readonly-form-field-wrapper.component.d.ts.map +1 -0
- package/lib/readonly/readonly-form-field.module.d.ts +16 -2
- package/lib/readonly/readonly-form-field.module.d.ts.map +1 -0
- package/lib/stepper/mad-stepper-animation.d.ts +8 -0
- package/lib/stepper/mad-stepper-animation.d.ts.map +1 -0
- package/lib/stepper/step-header/step-header.component.d.ts +27 -0
- package/lib/stepper/step-header/step-header.component.d.ts.map +1 -0
- package/lib/stepper/stepper.component.d.ts +53 -0
- package/lib/stepper/stepper.component.d.ts.map +1 -0
- package/lib/stepper/stepper.module.d.ts +14 -0
- package/lib/stepper/stepper.module.d.ts.map +1 -0
- package/lib/table/column-header.d.ts +8 -0
- package/lib/table/column-header.d.ts.map +1 -0
- package/lib/table/table-action.d.ts +6 -0
- package/lib/table/table-action.d.ts.map +1 -0
- package/lib/table/table.component.d.ts +43 -0
- package/lib/table/table.component.d.ts.map +1 -0
- package/lib/table/table.d.ts +4 -0
- package/lib/table/table.d.ts.map +1 -0
- package/lib/table/table.module.d.ts +18 -0
- package/lib/table/table.module.d.ts.map +1 -0
- package/lib/throttle-click/throttle-click.directive.d.ts +14 -0
- package/lib/throttle-click/throttle-click.directive.d.ts.map +1 -0
- package/lib/throttle-click/throttle-click.module.d.ts +9 -0
- package/lib/throttle-click/throttle-click.module.d.ts.map +1 -0
- package/lib/toolbar/toolbar-action.interface.d.ts +28 -18
- package/lib/toolbar/toolbar-action.interface.d.ts.map +1 -0
- package/lib/toolbar/toolbar.component.d.ts +28 -19
- package/lib/toolbar/toolbar.component.d.ts.map +1 -0
- package/lib/toolbar/toolbar.module.d.ts +18 -2
- package/lib/toolbar/toolbar.module.d.ts.map +1 -0
- package/lib/toolbar/toolbar.service.d.ts +44 -33
- package/lib/toolbar/toolbar.service.d.ts.map +1 -0
- package/package.json +29 -24
- package/porscheinformatik-material-addons.d.ts.map +1 -0
- package/public_api.d.ts +39 -0
- package/public_api.d.ts.map +1 -0
- package/themes/common/styles.scss +359 -303
- package/themes/pbv.scss +64 -56
- package/themes/poa.scss +64 -40
- package/bundles/porscheinformatik-material-addons.umd.js +0 -755
- package/esm2015/lib/material-action-button/material-action-button.component.js +0 -43
- package/esm2015/lib/material-action-button/material-action-button.module.js +0 -19
- package/esm2015/lib/material-addons.module.js +0 -16
- package/esm2015/lib/readonly/readonly-form-field/readonly-form-field.component.js +0 -61
- package/esm2015/lib/readonly/readonly-form-field-wrapper/readonly-form-field-wrapper.component.js +0 -124
- package/esm2015/lib/readonly/readonly-form-field.module.js +0 -20
- package/esm2015/lib/toolbar/toolbar-action.interface.js +0 -47
- package/esm2015/lib/toolbar/toolbar.component.js +0 -112
- package/esm2015/lib/toolbar/toolbar.module.js +0 -29
- package/esm2015/lib/toolbar/toolbar.service.js +0 -197
- package/esm2015/porscheinformatik-material-addons.js +0 -9
- package/esm2015/public-api.js +0 -18
- package/esm5/lib/material-action-button/material-action-button.component.js +0 -45
- package/esm5/lib/material-action-button/material-action-button.module.js +0 -23
- package/esm5/lib/material-addons.module.js +0 -20
- package/esm5/lib/readonly/readonly-form-field/readonly-form-field.component.js +0 -67
- package/esm5/lib/readonly/readonly-form-field-wrapper/readonly-form-field-wrapper.component.js +0 -145
- package/esm5/lib/readonly/readonly-form-field.module.js +0 -24
- package/esm5/lib/toolbar/toolbar-action.interface.js +0 -47
- package/esm5/lib/toolbar/toolbar.component.js +0 -131
- package/esm5/lib/toolbar/toolbar.module.js +0 -33
- package/esm5/lib/toolbar/toolbar.service.js +0 -245
- package/esm5/porscheinformatik-material-addons.js +0 -9
- package/esm5/public-api.js +0 -18
- package/porscheinformatik-material-addons.d.ts +0 -4
- package/porscheinformatik-material-addons.metadata.json +0 -1
- package/public-api.d.ts +0 -10
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './data-table-columns-modal/data-table-columns-modal.component';
|
|
2
|
+
export { DataTableComponent } from './data-table.component';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hdGVyaWFsLWFkZG9ucy9zcmMvbGliL2RhdGEtdGFibGUvZGF0YS10YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxjQUFjLCtEQUErRCxDQUFDO0FBRzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgRGF0YVRhYmxlQ29sdW1uIH0gZnJvbSAnLi9kYXRhLXRhYmxlLWNvbHVtbic7XG5leHBvcnQgKiBmcm9tICcuL2RhdGEtdGFibGUtY29sdW1ucy1tb2RhbC9kYXRhLXRhYmxlLWNvbHVtbnMtbW9kYWwuY29tcG9uZW50JztcbmV4cG9ydCB7IERhdGFUYWJsZUFjdGlvbiB9IGZyb20gJy4vZGF0YS10YWJsZS1hY3Rpb24nO1xuZXhwb3J0IHsgRGF0YVRhYmxlQ29sdW1uRGVmaW5pdGlvbiB9IGZyb20gJy4vZGF0YS10YWJsZS1jb2x1bW4tZGVmaW5pdGlvbic7XG5leHBvcnQgeyBEYXRhVGFibGVDb21wb25lbnQgfSBmcm9tICcuL2RhdGEtdGFibGUuY29tcG9uZW50JztcbiJdfQ==
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
4
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
5
|
+
import { MatMenuModule } from '@angular/material/menu';
|
|
6
|
+
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
7
|
+
import { MatInputModule } from '@angular/material/input';
|
|
8
|
+
import { MatTableModule } from '@angular/material/table';
|
|
9
|
+
import { MatSortModule } from '@angular/material/sort';
|
|
10
|
+
import { MatPaginatorModule } from '@angular/material/paginator';
|
|
11
|
+
import { DataTableComponent } from './data-table.component';
|
|
12
|
+
import { ButtonModule } from '../button/button.module';
|
|
13
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
14
|
+
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
15
|
+
import { MatBadgeModule } from '@angular/material/badge';
|
|
16
|
+
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
17
|
+
import { DataTableColumnsModalComponent } from './data-table-columns-modal/data-table-columns-modal.component';
|
|
18
|
+
import { DragDropModule } from '@angular/cdk/drag-drop';
|
|
19
|
+
import { FormsModule } from '@angular/forms';
|
|
20
|
+
import * as i0 from "@angular/core";
|
|
21
|
+
export class DataTableModule {
|
|
22
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: DataTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
23
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: DataTableModule, declarations: [DataTableComponent, DataTableColumnsModalComponent], imports: [CommonModule,
|
|
24
|
+
MatButtonModule,
|
|
25
|
+
MatIconModule,
|
|
26
|
+
MatFormFieldModule,
|
|
27
|
+
MatInputModule,
|
|
28
|
+
MatMenuModule,
|
|
29
|
+
MatPaginatorModule,
|
|
30
|
+
MatSortModule,
|
|
31
|
+
MatTableModule,
|
|
32
|
+
MatProgressSpinnerModule,
|
|
33
|
+
ButtonModule,
|
|
34
|
+
TranslateModule,
|
|
35
|
+
MatCheckboxModule,
|
|
36
|
+
MatBadgeModule,
|
|
37
|
+
DragDropModule,
|
|
38
|
+
FormsModule], exports: [DataTableComponent, DataTableColumnsModalComponent] }); }
|
|
39
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: DataTableModule, imports: [CommonModule,
|
|
40
|
+
MatButtonModule,
|
|
41
|
+
MatIconModule,
|
|
42
|
+
MatFormFieldModule,
|
|
43
|
+
MatInputModule,
|
|
44
|
+
MatMenuModule,
|
|
45
|
+
MatPaginatorModule,
|
|
46
|
+
MatSortModule,
|
|
47
|
+
MatTableModule,
|
|
48
|
+
MatProgressSpinnerModule,
|
|
49
|
+
ButtonModule,
|
|
50
|
+
TranslateModule,
|
|
51
|
+
MatCheckboxModule,
|
|
52
|
+
MatBadgeModule,
|
|
53
|
+
DragDropModule,
|
|
54
|
+
FormsModule] }); }
|
|
55
|
+
}
|
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: DataTableModule, decorators: [{
|
|
57
|
+
type: NgModule,
|
|
58
|
+
args: [{
|
|
59
|
+
declarations: [DataTableComponent, DataTableColumnsModalComponent],
|
|
60
|
+
imports: [
|
|
61
|
+
CommonModule,
|
|
62
|
+
MatButtonModule,
|
|
63
|
+
MatIconModule,
|
|
64
|
+
MatFormFieldModule,
|
|
65
|
+
MatInputModule,
|
|
66
|
+
MatMenuModule,
|
|
67
|
+
MatPaginatorModule,
|
|
68
|
+
MatSortModule,
|
|
69
|
+
MatTableModule,
|
|
70
|
+
MatProgressSpinnerModule,
|
|
71
|
+
ButtonModule,
|
|
72
|
+
TranslateModule,
|
|
73
|
+
MatCheckboxModule,
|
|
74
|
+
MatBadgeModule,
|
|
75
|
+
DragDropModule,
|
|
76
|
+
FormsModule,
|
|
77
|
+
],
|
|
78
|
+
exports: [DataTableComponent, DataTableColumnsModalComponent],
|
|
79
|
+
}]
|
|
80
|
+
}] });
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9kYXRhLXRhYmxlL2RhdGEtdGFibGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQy9HLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBd0I3QyxNQUFNLE9BQU8sZUFBZTs4R0FBZixlQUFlOytHQUFmLGVBQWUsaUJBckJYLGtCQUFrQixFQUFFLDhCQUE4QixhQUUvRCxZQUFZO1lBQ1osZUFBZTtZQUNmLGFBQWE7WUFDYixrQkFBa0I7WUFDbEIsY0FBYztZQUNkLGFBQWE7WUFDYixrQkFBa0I7WUFDbEIsYUFBYTtZQUNiLGNBQWM7WUFDZCx3QkFBd0I7WUFDeEIsWUFBWTtZQUNaLGVBQWU7WUFDZixpQkFBaUI7WUFDakIsY0FBYztZQUNkLGNBQWM7WUFDZCxXQUFXLGFBRUgsa0JBQWtCLEVBQUUsOEJBQThCOytHQUVqRCxlQUFlLFlBbkJ4QixZQUFZO1lBQ1osZUFBZTtZQUNmLGFBQWE7WUFDYixrQkFBa0I7WUFDbEIsY0FBYztZQUNkLGFBQWE7WUFDYixrQkFBa0I7WUFDbEIsYUFBYTtZQUNiLGNBQWM7WUFDZCx3QkFBd0I7WUFDeEIsWUFBWTtZQUNaLGVBQWU7WUFDZixpQkFBaUI7WUFDakIsY0FBYztZQUNkLGNBQWM7WUFDZCxXQUFXOzsyRkFJRixlQUFlO2tCQXRCM0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSw4QkFBOEIsQ0FBQztvQkFDbEUsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixjQUFjO3dCQUNkLHdCQUF3Qjt3QkFDeEIsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGlCQUFpQjt3QkFDakIsY0FBYzt3QkFDZCxjQUFjO3dCQUNkLFdBQVc7cUJBQ1o7b0JBQ0QsT0FBTyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsOEJBQThCLENBQUM7aUJBQzlEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgTWF0U29ydE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHsgTWF0UGFnaW5hdG9yTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcbmltcG9ydCB7IERhdGFUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vZGF0YS10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi5tb2R1bGUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcbmltcG9ydCB7IE1hdEJhZGdlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYmFkZ2UnO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBEYXRhVGFibGVDb2x1bW5zTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL2RhdGEtdGFibGUtY29sdW1ucy1tb2RhbC9kYXRhLXRhYmxlLWNvbHVtbnMtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IERyYWdEcm9wTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbRGF0YVRhYmxlQ29tcG9uZW50LCBEYXRhVGFibGVDb2x1bW5zTW9kYWxDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIE1hdFBhZ2luYXRvck1vZHVsZSxcbiAgICBNYXRTb3J0TW9kdWxlLFxuICAgIE1hdFRhYmxlTW9kdWxlLFxuICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcbiAgICBCdXR0b25Nb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIE1hdENoZWNrYm94TW9kdWxlLFxuICAgIE1hdEJhZGdlTW9kdWxlLFxuICAgIERyYWdEcm9wTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbRGF0YVRhYmxlQ29tcG9uZW50LCBEYXRhVGFibGVDb2x1bW5zTW9kYWxDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRhVGFibGVNb2R1bGUge31cbiJdfQ==
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { Directive, EventEmitter, HostBinding, HostListener, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class DragAndDropDirectiveDirective {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.onFileDropped = new EventEmitter();
|
|
6
|
+
this.background = '$background-color';
|
|
7
|
+
this.opacity = '1';
|
|
8
|
+
}
|
|
9
|
+
//Dragover listener
|
|
10
|
+
onDragOver(event) {
|
|
11
|
+
event.preventDefault();
|
|
12
|
+
event.stopPropagation();
|
|
13
|
+
this.background = '$selection-background';
|
|
14
|
+
this.opacity = '0.8';
|
|
15
|
+
}
|
|
16
|
+
//Dragleave listener
|
|
17
|
+
onDragLeave(event) {
|
|
18
|
+
event.preventDefault();
|
|
19
|
+
event.stopPropagation();
|
|
20
|
+
this.background = '$background-color';
|
|
21
|
+
this.opacity = '1';
|
|
22
|
+
}
|
|
23
|
+
//Drop listener
|
|
24
|
+
ondrop(event) {
|
|
25
|
+
event.preventDefault();
|
|
26
|
+
event.stopPropagation();
|
|
27
|
+
this.background = '$background-color';
|
|
28
|
+
this.opacity = '1';
|
|
29
|
+
let files = event.dataTransfer.files;
|
|
30
|
+
if (files.length > 0) {
|
|
31
|
+
this.onFileDropped.emit(files);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: DragAndDropDirectiveDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
35
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.4", type: DragAndDropDirectiveDirective, isStandalone: true, selector: "[madDragAndDrop]", outputs: { onFileDropped: "onFileDropped" }, host: { listeners: { "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)", "drop": "ondrop($event)" }, properties: { "style.background-color": "this.background", "style.opacity": "this.opacity" } }, ngImport: i0 }); }
|
|
36
|
+
}
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: DragAndDropDirectiveDirective, decorators: [{
|
|
38
|
+
type: Directive,
|
|
39
|
+
args: [{
|
|
40
|
+
selector: '[madDragAndDrop]',
|
|
41
|
+
standalone: true,
|
|
42
|
+
}]
|
|
43
|
+
}], propDecorators: { onFileDropped: [{
|
|
44
|
+
type: Output
|
|
45
|
+
}], background: [{
|
|
46
|
+
type: HostBinding,
|
|
47
|
+
args: ['style.background-color']
|
|
48
|
+
}], opacity: [{
|
|
49
|
+
type: HostBinding,
|
|
50
|
+
args: ['style.opacity']
|
|
51
|
+
}], onDragOver: [{
|
|
52
|
+
type: HostListener,
|
|
53
|
+
args: ['dragover', ['$event']]
|
|
54
|
+
}], onDragLeave: [{
|
|
55
|
+
type: HostListener,
|
|
56
|
+
args: ['dragleave', ['$event']]
|
|
57
|
+
}], ondrop: [{
|
|
58
|
+
type: HostListener,
|
|
59
|
+
args: ['drop', ['$event']]
|
|
60
|
+
}] } });
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1hbmQtZHJvcC1kaXJlY3RpdmUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvZmlsZS11cGxvYWQvZHJhZy1hbmQtZHJvcC1kaXJlY3RpdmUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU0zRixNQUFNLE9BQU8sNkJBQTZCO0lBSjFDO1FBTUUsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRU8sZUFBVSxHQUFHLG1CQUFtQixDQUFDO1FBQzFDLFlBQU8sR0FBRyxHQUFHLENBQUM7S0E4QnJEO0lBNUJDLG1CQUFtQjtJQUNtQixVQUFVLENBQUMsS0FBVTtRQUN6RCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsdUJBQXVCLENBQUM7UUFDMUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUVELG9CQUFvQjtJQUNtQixXQUFXLENBQUMsS0FBVTtRQUMzRCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsbUJBQW1CLENBQUM7UUFDdEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7SUFDckIsQ0FBQztJQUVELGVBQWU7SUFFUixNQUFNLENBQUMsS0FBVTtRQUN0QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsbUJBQW1CLENBQUM7UUFDdEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7UUFDbkIsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDckMsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNoQztJQUNILENBQUM7OEdBbENVLDZCQUE2QjtrR0FBN0IsNkJBQTZCOzsyRkFBN0IsNkJBQTZCO2tCQUp6QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs4QkFHQyxhQUFhO3NCQURaLE1BQU07Z0JBR3dDLFVBQVU7c0JBQXhELFdBQVc7dUJBQUMsd0JBQXdCO2dCQUNDLE9BQU87c0JBQTVDLFdBQVc7dUJBQUMsZUFBZTtnQkFHVSxVQUFVO3NCQUEvQyxZQUFZO3VCQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFRRyxXQUFXO3NCQUFqRCxZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFTOUIsTUFBTTtzQkFEWixZQUFZO3VCQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW21hZERyYWdBbmREcm9wXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIERyYWdBbmREcm9wRGlyZWN0aXZlRGlyZWN0aXZlIHtcbiAgQE91dHB1dCgpXG4gIG9uRmlsZURyb3BwZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmJhY2tncm91bmQtY29sb3InKSBwcml2YXRlIGJhY2tncm91bmQgPSAnJGJhY2tncm91bmQtY29sb3InO1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLm9wYWNpdHknKSBwcml2YXRlIG9wYWNpdHkgPSAnMSc7XG5cbiAgLy9EcmFnb3ZlciBsaXN0ZW5lclxuICBASG9zdExpc3RlbmVyKCdkcmFnb3ZlcicsIFsnJGV2ZW50J10pIG9uRHJhZ092ZXIoZXZlbnQ6IGFueSkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5iYWNrZ3JvdW5kID0gJyRzZWxlY3Rpb24tYmFja2dyb3VuZCc7XG4gICAgdGhpcy5vcGFjaXR5ID0gJzAuOCc7XG4gIH1cblxuICAvL0RyYWdsZWF2ZSBsaXN0ZW5lclxuICBASG9zdExpc3RlbmVyKCdkcmFnbGVhdmUnLCBbJyRldmVudCddKSBvbkRyYWdMZWF2ZShldmVudDogYW55KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmJhY2tncm91bmQgPSAnJGJhY2tncm91bmQtY29sb3InO1xuICAgIHRoaXMub3BhY2l0eSA9ICcxJztcbiAgfVxuXG4gIC8vRHJvcCBsaXN0ZW5lclxuICBASG9zdExpc3RlbmVyKCdkcm9wJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uZHJvcChldmVudDogYW55KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmJhY2tncm91bmQgPSAnJGJhY2tncm91bmQtY29sb3InO1xuICAgIHRoaXMub3BhY2l0eSA9ICcxJztcbiAgICBsZXQgZmlsZXMgPSBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXM7XG4gICAgaWYgKGZpbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMub25GaWxlRHJvcHBlZC5lbWl0KGZpbGVzKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { MatCardModule } from '@angular/material/card';
|
|
4
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
5
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
6
|
+
import { ButtonModule } from '../button/button.module';
|
|
7
|
+
import { DragAndDropDirectiveDirective } from './drag-and-drop-directive.directive';
|
|
8
|
+
import { MatChipsModule } from '@angular/material/chips';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/common";
|
|
11
|
+
import * as i2 from "@angular/material/card";
|
|
12
|
+
import * as i3 from "@angular/material/icon";
|
|
13
|
+
import * as i4 from "@angular/material/chips";
|
|
14
|
+
export class FileUploadComponent {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.showFileList = false;
|
|
17
|
+
this.fileEmitter = new EventEmitter();
|
|
18
|
+
this.errorEmitter = new EventEmitter();
|
|
19
|
+
this.fileList = [];
|
|
20
|
+
this.acceptForInput = [];
|
|
21
|
+
this.uploadError = false;
|
|
22
|
+
}
|
|
23
|
+
ngOnInit() {
|
|
24
|
+
if (this.accept?.length) {
|
|
25
|
+
this.accept.forEach((accepted) => this.acceptForInput.push(`.${accepted}`));
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
uploadFile(fileList) {
|
|
29
|
+
if (!this.multiple && (fileList.length > 1 || this.fileList.length === 1)) {
|
|
30
|
+
this.errorEmitter.emit('ONLY_SINGLE_FILE');
|
|
31
|
+
this.uploadError = false;
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (this.accept && this.accept.length > 0) {
|
|
35
|
+
for (let i = 0; i < fileList.length; i++) {
|
|
36
|
+
this.getFileEnding(fileList.item(i).name);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
if (!this.uploadError) {
|
|
40
|
+
for (let i = 0; i < fileList.length; i++) {
|
|
41
|
+
this.fileList.push(fileList.item(i));
|
|
42
|
+
}
|
|
43
|
+
this.fileEmitter.emit(fileList);
|
|
44
|
+
}
|
|
45
|
+
this.uploadError = false;
|
|
46
|
+
}
|
|
47
|
+
getFileEnding(name) {
|
|
48
|
+
const ending = name.substring(name.lastIndexOf('.') + 1);
|
|
49
|
+
if (this.accept.filter((a) => a.toLowerCase() === ending.toLowerCase()).length === 0) {
|
|
50
|
+
this.errorEmitter.emit('FILETYPE_NOT_SUPPORTED');
|
|
51
|
+
this.uploadError = true;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
openFile(file) {
|
|
55
|
+
window.open(window.URL.createObjectURL(file));
|
|
56
|
+
}
|
|
57
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: FileUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
58
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: FileUploadComponent, isStandalone: true, selector: "mad-file-upload", inputs: { id: "id", multiple: "multiple", accept: "accept", text: "text", showFileList: "showFileList" }, outputs: { fileEmitter: "fileEmitter", errorEmitter: "errorEmitter" }, ngImport: i0, template: "<mat-card\n (click)=\"fileInput.click()\"\n (onFileDropped)=\"uploadFile($event)\"\n class=\"uploadFileContainer\"\n madDragAndDrop\n id=\"uploadFileContainer\"\n>\n <input\n #fileInput\n (change)=\"uploadFile($event.target.files)\"\n (click)=\"fileInput.value = null\"\n [accept]=\"acceptForInput\"\n [id]=\"id\"\n [multiple]=\"multiple\"\n hidden\n type=\"file\"\n />\n <mat-card-content>\n <mat-icon>vertical_align_top</mat-icon>\n {{ text ? text : 'Upload' }}\n </mat-card-content>\n</mat-card>\n\n<ng-container *ngIf=\"showFileList\">\n <mat-chip-listbox>\n <mat-chip *ngFor=\"let file of fileList\" (click)=\"openFile(file)\" class=\"download\">{{ file.name }}</mat-chip>\n </mat-chip-listbox>\n</ng-container>\n", styles: [".uploadFileContainer{background-repeat:no-repeat;background-position:center;height:100px;margin:0;border:2px dashed var(--main-primary)}.uploadFileContainer:hover{cursor:pointer;background-color:var(--selection-background)!important;opacity:.8}.uploadFileContainer,.mat-mdc-card-content{display:flex;justify-content:center;align-items:center}.download{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i2.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i2.MatCardContent, selector: "mat-card-content" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: DragAndDropDirectiveDirective, selector: "[madDragAndDrop]", outputs: ["onFileDropped"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i4.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disabled", "disableRipple", "tabIndex", "role", "id", "aria-label", "aria-description", "value", "removable", "highlighted"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i4.MatChipListbox, selector: "mat-chip-listbox", inputs: ["tabIndex", "multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }] }); }
|
|
59
|
+
}
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: FileUploadComponent, decorators: [{
|
|
61
|
+
type: Component,
|
|
62
|
+
args: [{ selector: 'mad-file-upload', standalone: true, imports: [CommonModule, MatCardModule, MatIconModule, ButtonModule, TranslateModule, DragAndDropDirectiveDirective, MatChipsModule], template: "<mat-card\n (click)=\"fileInput.click()\"\n (onFileDropped)=\"uploadFile($event)\"\n class=\"uploadFileContainer\"\n madDragAndDrop\n id=\"uploadFileContainer\"\n>\n <input\n #fileInput\n (change)=\"uploadFile($event.target.files)\"\n (click)=\"fileInput.value = null\"\n [accept]=\"acceptForInput\"\n [id]=\"id\"\n [multiple]=\"multiple\"\n hidden\n type=\"file\"\n />\n <mat-card-content>\n <mat-icon>vertical_align_top</mat-icon>\n {{ text ? text : 'Upload' }}\n </mat-card-content>\n</mat-card>\n\n<ng-container *ngIf=\"showFileList\">\n <mat-chip-listbox>\n <mat-chip *ngFor=\"let file of fileList\" (click)=\"openFile(file)\" class=\"download\">{{ file.name }}</mat-chip>\n </mat-chip-listbox>\n</ng-container>\n", styles: [".uploadFileContainer{background-repeat:no-repeat;background-position:center;height:100px;margin:0;border:2px dashed var(--main-primary)}.uploadFileContainer:hover{cursor:pointer;background-color:var(--selection-background)!important;opacity:.8}.uploadFileContainer,.mat-mdc-card-content{display:flex;justify-content:center;align-items:center}.download{width:100%}\n"] }]
|
|
63
|
+
}], propDecorators: { id: [{
|
|
64
|
+
type: Input
|
|
65
|
+
}], multiple: [{
|
|
66
|
+
type: Input
|
|
67
|
+
}], accept: [{
|
|
68
|
+
type: Input
|
|
69
|
+
}], text: [{
|
|
70
|
+
type: Input
|
|
71
|
+
}], showFileList: [{
|
|
72
|
+
type: Input
|
|
73
|
+
}], fileEmitter: [{
|
|
74
|
+
type: Output
|
|
75
|
+
}], errorEmitter: [{
|
|
76
|
+
type: Output
|
|
77
|
+
}] } });
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7O0FBV3pELE1BQU0sT0FBTyxtQkFBbUI7SUFQaEM7UUFZVyxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUM3QixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFZLENBQUM7UUFDM0MsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBZSxDQUFDO1FBRXpELGFBQVEsR0FBVyxFQUFFLENBQUM7UUFDdEIsbUJBQWMsR0FBYSxFQUFFLENBQUM7UUFDdEIsZ0JBQVcsR0FBWSxLQUFLLENBQUM7S0F1Q3RDO0lBckNDLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxN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QUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdENhcmRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jYXJkJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi5tb2R1bGUnO1xuaW1wb3J0IHsgRHJhZ0FuZERyb3BEaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuL2RyYWctYW5kLWRyb3AtZGlyZWN0aXZlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBNYXRDaGlwc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcblxuZXhwb3J0IHR5cGUgVXBsb2FkRXJyb3IgPSAnT05MWV9TSU5HTEVfRklMRScgfCAnRklMRVRZUEVfTk9UX1NVUFBPUlRFRCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hZC1maWxlLXVwbG9hZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdENhcmRNb2R1bGUsIE1hdEljb25Nb2R1bGUsIEJ1dHRvbk1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBEcmFnQW5kRHJvcERpcmVjdGl2ZURpcmVjdGl2ZSwgTWF0Q2hpcHNNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZmlsZS11cGxvYWQuY29tcG9uZW50LmNzcycsXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVVcGxvYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBpZDogc3RyaW5nO1xuICBASW5wdXQoKSBtdWx0aXBsZTogYm9vbGVhbjtcbiAgQElucHV0KCkgYWNjZXB0OiBzdHJpbmdbXTtcbiAgQElucHV0KCkgdGV4dDogc3RyaW5nO1xuICBASW5wdXQoKSBzaG93RmlsZUxpc3Q6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQE91dHB1dCgpIGZpbGVFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlTGlzdD4oKTtcbiAgQE91dHB1dCgpIGVycm9yRW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8VXBsb2FkRXJyb3I+KCk7XG5cbiAgZmlsZUxpc3Q6IEZpbGVbXSA9IFtdO1xuICBhY2NlcHRGb3JJbnB1dDogc3RyaW5nW10gPSBbXTtcbiAgcHJpdmF0ZSB1cGxvYWRFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFjY2VwdD8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLmFjY2VwdC5mb3JFYWNoKChhY2NlcHRlZCkgPT4gdGhpcy5hY2NlcHRGb3JJbnB1dC5wdXNoKGAuJHthY2NlcHRlZH1gKSk7XG4gICAgfVxuICB9XG5cbiAgdXBsb2FkRmlsZShmaWxlTGlzdDogRmlsZUxpc3QpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUgJiYgKGZpbGVMaXN0Lmxlbmd0aCA+IDEgfHwgdGhpcy5maWxlTGlzdC5sZW5ndGggPT09IDEpKSB7XG4gICAgICB0aGlzLmVycm9yRW1pdHRlci5lbWl0KCdPTkxZX1NJTkdMRV9GSUxFJyk7XG4gICAgICB0aGlzLnVwbG9hZEVycm9yID0gZmFsc2U7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLmFjY2VwdCAmJiB0aGlzLmFjY2VwdC5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVMaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHRoaXMuZ2V0RmlsZUVuZGluZyhmaWxlTGlzdC5pdGVtKGkpLm5hbWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIXRoaXMudXBsb2FkRXJyb3IpIHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZUxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdGhpcy5maWxlTGlzdC5wdXNoKGZpbGVMaXN0Lml0ZW0oaSkpO1xuICAgICAgfVxuICAgICAgdGhpcy5maWxlRW1pdHRlci5lbWl0KGZpbGVMaXN0KTtcbiAgICB9XG4gICAgdGhpcy51cGxvYWRFcnJvciA9IGZhbHNlO1xuICB9XG5cbiAgZ2V0RmlsZUVuZGluZyhuYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBlbmRpbmcgPSBuYW1lLnN1YnN0cmluZyhuYW1lLmxhc3RJbmRleE9mKCcuJykgKyAxKTtcbiAgICBpZiAodGhpcy5hY2NlcHQuZmlsdGVyKChhKSA9PiBhLnRvTG93ZXJDYXNlKCkgPT09IGVuZGluZy50b0xvd2VyQ2FzZSgpKS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuZXJyb3JFbWl0dGVyLmVtaXQoJ0ZJTEVUWVBFX05PVF9TVVBQT1JURUQnKTtcbiAgICAgIHRoaXMudXBsb2FkRXJyb3IgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIG9wZW5GaWxlKGZpbGU6IEZpbGUpIHtcbiAgICB3aW5kb3cub3Blbih3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlKSk7XG4gIH1cbn1cbiIsIjxtYXQtY2FyZFxuICAoY2xpY2spPVwiZmlsZUlucHV0LmNsaWNrKClcIlxuICAob25GaWxlRHJvcHBlZCk9XCJ1cGxvYWRGaWxlKCRldmVudClcIlxuICBjbGFzcz1cInVwbG9hZEZpbGVDb250YWluZXJcIlxuICBtYWREcmFnQW5kRHJvcFxuICBpZD1cInVwbG9hZEZpbGVDb250YWluZXJcIlxuPlxuICA8aW5wdXRcbiAgICAjZmlsZUlucHV0XG4gICAgKGNoYW5nZSk9XCJ1cGxvYWRGaWxlKCRldmVudC50YXJnZXQuZmlsZXMpXCJcbiAgICAoY2xpY2spPVwiZmlsZUlucHV0LnZhbHVlID0gbnVsbFwiXG4gICAgW2FjY2VwdF09XCJhY2NlcHRGb3JJbnB1dFwiXG4gICAgW2lkXT1cImlkXCJcbiAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICAgIGhpZGRlblxuICAgIHR5cGU9XCJmaWxlXCJcbiAgLz5cbiAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgPG1hdC1pY29uPnZlcnRpY2FsX2FsaWduX3RvcDwvbWF0LWljb24+XG4gICAge3sgdGV4dCA/IHRleHQgOiAnVXBsb2FkJyB9fVxuICA8L21hdC1jYXJkLWNvbnRlbnQ+XG48L21hdC1jYXJkPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0ZpbGVMaXN0XCI+XG4gIDxtYXQtY2hpcC1saXN0Ym94PlxuICAgIDxtYXQtY2hpcCAqbmdGb3I9XCJsZXQgZmlsZSBvZiBmaWxlTGlzdFwiIChjbGljayk9XCJvcGVuRmlsZShmaWxlKVwiIGNsYXNzPVwiZG93bmxvYWRcIj57eyBmaWxlLm5hbWUgfX08L21hdC1jaGlwPlxuICA8L21hdC1jaGlwLWxpc3Rib3g+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
import * as i2 from "@angular/material/stepper";
|
|
5
|
+
export class FlowbarComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this._steps = [];
|
|
8
|
+
this._activeStepChange = new EventEmitter(true);
|
|
9
|
+
/**
|
|
10
|
+
* Event emitted when a step header is clicked.
|
|
11
|
+
* When defined header navigation has to be implemented programmatically.
|
|
12
|
+
* e.g. {@see changeActiveStepOnHeader}
|
|
13
|
+
*/
|
|
14
|
+
this._headerClick = new EventEmitter(true);
|
|
15
|
+
}
|
|
16
|
+
get currentStepLabel() {
|
|
17
|
+
return this._activeStep.label;
|
|
18
|
+
}
|
|
19
|
+
get currentSubStepLabel() {
|
|
20
|
+
return this._activeStep.activeSubStep?.label;
|
|
21
|
+
}
|
|
22
|
+
ngOnInit() {
|
|
23
|
+
// If no active step is set as input or the active step is not enabled, select the first enabled step
|
|
24
|
+
if (!this._activeStep || !this._activeStep.enabled) {
|
|
25
|
+
this._activeStep = this._steps.find((step) => step.enabled);
|
|
26
|
+
if (this._activeStep) {
|
|
27
|
+
// If sub steps exist then set the first non disabled sub step per default
|
|
28
|
+
if (this.activeTabHasSubSteps()) {
|
|
29
|
+
this._activeStep.activeSubStep = this._activeStep.subSteps.find((step) => step.enabled);
|
|
30
|
+
}
|
|
31
|
+
this._activeStepChange.emit(this._activeStep);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
ngAfterViewInit() {
|
|
36
|
+
this.stepper._getIndicatorType = () => 'number';
|
|
37
|
+
}
|
|
38
|
+
getIndexForActiveStep() {
|
|
39
|
+
const selectedIndex = this._steps.indexOf(this._activeStep);
|
|
40
|
+
return selectedIndex === -1 ? 0 : selectedIndex;
|
|
41
|
+
}
|
|
42
|
+
changeActiveStep(step) {
|
|
43
|
+
const previousIndex = this._steps.indexOf(this._activeStep);
|
|
44
|
+
this._activeStep = step;
|
|
45
|
+
if (this.activeTabHasSubSteps()) {
|
|
46
|
+
if (previousIndex < this._steps.indexOf(this._activeStep)) {
|
|
47
|
+
this._activeStep.activeSubStep = this._activeStep.subSteps[0];
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
this._activeStep.activeSubStep = this._activeStep.subSteps[this._activeStep.subSteps.length - 1];
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
this._activeStepChange.emit(this._activeStep);
|
|
54
|
+
}
|
|
55
|
+
changeActiveStepOnHeader(step) {
|
|
56
|
+
const stepIndex = this._steps.indexOf(step);
|
|
57
|
+
this._activeStep = step;
|
|
58
|
+
this.stepper.selected = this.stepper._steps.find((_, i) => i === stepIndex);
|
|
59
|
+
}
|
|
60
|
+
changeActiveSubStep(subStep) {
|
|
61
|
+
this._activeStep.activeSubStep = subStep;
|
|
62
|
+
}
|
|
63
|
+
previous() {
|
|
64
|
+
if (this.isPreviousAvailable()) {
|
|
65
|
+
// If active step has no sub steps or first sub step is selected -> go to previous main step
|
|
66
|
+
if (!this.activeTabHasSubSteps() || this.isFirstSubStep()) {
|
|
67
|
+
const previousEnabledStep = this.findPreviousEnabledStep();
|
|
68
|
+
this.changeActiveStep(previousEnabledStep);
|
|
69
|
+
this.stepper.selectedIndex = this._steps.indexOf(previousEnabledStep);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
const subStepIndex = this._activeStep.subSteps.indexOf(this._activeStep.activeSubStep);
|
|
73
|
+
this._activeStep.activeSubStep = this._activeStep.subSteps[subStepIndex - 1];
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
next() {
|
|
78
|
+
if (this.isNextAvailable()) {
|
|
79
|
+
// If active step has no sub steps or last sub step is selected -> go to next main step
|
|
80
|
+
if (!this.activeTabHasSubSteps() || this.isLastSubStep()) {
|
|
81
|
+
const nextEnabledStep = this.findNextEnabledStep();
|
|
82
|
+
this.changeActiveStep(nextEnabledStep);
|
|
83
|
+
this.stepper.selectedIndex = this._steps.indexOf(nextEnabledStep);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
const subStepIndex = this._activeStep.subSteps.indexOf(this._activeStep.activeSubStep);
|
|
87
|
+
this._activeStep.activeSubStep = this._activeStep.subSteps[subStepIndex + 1];
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
isPreviousAvailable() {
|
|
92
|
+
if (this._activeStep) {
|
|
93
|
+
if (!this.activeTabHasSubSteps() || this.isFirstSubStep()) {
|
|
94
|
+
const index = this.getCurrentIndex();
|
|
95
|
+
return index > 0 && this.isAnyPreviousStepEnabled(index);
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
return true;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
103
|
+
isNextAvailable() {
|
|
104
|
+
if (this._activeStep) {
|
|
105
|
+
if (!this.activeTabHasSubSteps() || this.isLastSubStep()) {
|
|
106
|
+
const index = this.getCurrentIndex();
|
|
107
|
+
return index < this._steps.length - 1 && this.isAnyFollowingStepEnabled(index);
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
return true;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return false;
|
|
114
|
+
}
|
|
115
|
+
isLastStep() {
|
|
116
|
+
if (this.getCurrentIndex() === this._steps.length - 1) {
|
|
117
|
+
if (this.activeTabHasSubSteps()) {
|
|
118
|
+
return this.isLastSubStep();
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
return true;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return false;
|
|
125
|
+
}
|
|
126
|
+
getCurrentIndex() {
|
|
127
|
+
return this._steps.findIndex((value) => value === this._activeStep);
|
|
128
|
+
}
|
|
129
|
+
getCurrentSubStepIndex() {
|
|
130
|
+
return this._activeStep.subSteps.findIndex((value) => value === this._activeStep.activeSubStep);
|
|
131
|
+
}
|
|
132
|
+
triggerClick() {
|
|
133
|
+
const selectedStep = this._steps[this.stepper.selectedIndex];
|
|
134
|
+
this.changeActiveStep(selectedStep);
|
|
135
|
+
}
|
|
136
|
+
headerClick(event, step) {
|
|
137
|
+
event.stopPropagation(); //stop processing current header click event
|
|
138
|
+
this._headerClick.emit(step);
|
|
139
|
+
}
|
|
140
|
+
activeTabHasSubSteps() {
|
|
141
|
+
return this._activeStep.subSteps && this._activeStep.subSteps.length > 0;
|
|
142
|
+
}
|
|
143
|
+
isFirstSubStep() {
|
|
144
|
+
return this._activeStep.activeSubStep === this._activeStep.subSteps[0];
|
|
145
|
+
}
|
|
146
|
+
isLastSubStep() {
|
|
147
|
+
return this._activeStep.activeSubStep === this._activeStep.subSteps[this._activeStep.subSteps.length - 1];
|
|
148
|
+
}
|
|
149
|
+
isAnyPreviousStepEnabled(index) {
|
|
150
|
+
// eslint-disable-next-line id-blacklist
|
|
151
|
+
return this._steps.slice(0, index).find((step) => step.enabled) !== undefined;
|
|
152
|
+
}
|
|
153
|
+
isAnyFollowingStepEnabled(index) {
|
|
154
|
+
// eslint-disable-next-line id-blacklist
|
|
155
|
+
return this._steps.slice(index + 1, this._steps.length).find((step) => step.enabled) !== undefined;
|
|
156
|
+
}
|
|
157
|
+
findPreviousEnabledStep() {
|
|
158
|
+
const index = this.getCurrentIndex();
|
|
159
|
+
return this._steps
|
|
160
|
+
.slice(0, index)
|
|
161
|
+
.reverse()
|
|
162
|
+
.find((step) => step.enabled);
|
|
163
|
+
}
|
|
164
|
+
findNextEnabledStep() {
|
|
165
|
+
const index = this.getCurrentIndex();
|
|
166
|
+
return this._steps.slice(index + 1, this._steps.length).find((step) => step.enabled);
|
|
167
|
+
}
|
|
168
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: FlowbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
169
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: FlowbarComponent, selector: "mad-flowbar", inputs: { _steps: ["steps", "_steps"], _activeStep: ["activeStep", "_activeStep"] }, outputs: { _activeStepChange: "activeStepChange", _headerClick: "headerClick" }, viewQueries: [{ propertyName: "stepper", first: true, predicate: ["stepper"], descendants: true }], ngImport: i0, template: "<div class=\"stepper-container\">\n <mat-horizontal-stepper #stepper [selectedIndex]=\"this.getIndexForActiveStep()\" (click)=\"triggerClick()\">\n <mat-step *ngFor=\"let step of _steps\" [aria-labelledby]=\"!step.enabled ? 'disabled' : null\">\n <ng-template matStepLabel>\n <div class=\"step-header-overlay\" *ngIf=\"this._headerClick.observers.length > 0\" (click)=\"headerClick($event, step)\"></div>\n <span>{{ step.label }}</span>\n </ng-template>\n </mat-step>\n </mat-horizontal-stepper>\n</div>\n", styles: [".stepper-container{display:flex;padding:0 1rem}::ng-deep .mat-stepper-horizontal .mat-horizontal-stepper-header{padding:0;height:auto}::ng-deep .mat-step-header[aria-labelledby=disabled]{pointer-events:none!important;cursor:not-allowed}::ng-deep .mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 10px}::ng-deep .mat-stepper-horizontal .mat-stepper-horizontal-line{margin:0 5px;border-top-width:4px}.step-header-overlay{position:absolute;width:100%;height:100%;right:0;top:0}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatStep, selector: "mat-step", inputs: ["color"], exportAs: ["matStep"] }, { kind: "directive", type: i2.MatStepLabel, selector: "[matStepLabel]" }, { kind: "component", type: i2.MatStepper, selector: "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]", inputs: ["selectedIndex", "disableRipple", "color", "labelPosition", "headerPosition", "animationDuration"], outputs: ["animationDone"], exportAs: ["matStepper", "matVerticalStepper", "matHorizontalStepper"] }] }); }
|
|
170
|
+
}
|
|
171
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: FlowbarComponent, decorators: [{
|
|
172
|
+
type: Component,
|
|
173
|
+
args: [{ selector: 'mad-flowbar', template: "<div class=\"stepper-container\">\n <mat-horizontal-stepper #stepper [selectedIndex]=\"this.getIndexForActiveStep()\" (click)=\"triggerClick()\">\n <mat-step *ngFor=\"let step of _steps\" [aria-labelledby]=\"!step.enabled ? 'disabled' : null\">\n <ng-template matStepLabel>\n <div class=\"step-header-overlay\" *ngIf=\"this._headerClick.observers.length > 0\" (click)=\"headerClick($event, step)\"></div>\n <span>{{ step.label }}</span>\n </ng-template>\n </mat-step>\n </mat-horizontal-stepper>\n</div>\n", styles: [".stepper-container{display:flex;padding:0 1rem}::ng-deep .mat-stepper-horizontal .mat-horizontal-stepper-header{padding:0;height:auto}::ng-deep .mat-step-header[aria-labelledby=disabled]{pointer-events:none!important;cursor:not-allowed}::ng-deep .mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 10px}::ng-deep .mat-stepper-horizontal .mat-stepper-horizontal-line{margin:0 5px;border-top-width:4px}.step-header-overlay{position:absolute;width:100%;height:100%;right:0;top:0}\n"] }]
|
|
174
|
+
}], propDecorators: { _steps: [{
|
|
175
|
+
type: Input,
|
|
176
|
+
args: ['steps']
|
|
177
|
+
}], _activeStep: [{
|
|
178
|
+
type: Input,
|
|
179
|
+
args: ['activeStep']
|
|
180
|
+
}], _activeStepChange: [{
|
|
181
|
+
type: Output,
|
|
182
|
+
args: ['activeStepChange']
|
|
183
|
+
}], _headerClick: [{
|
|
184
|
+
type: Output,
|
|
185
|
+
args: ['headerClick']
|
|
186
|
+
}], stepper: [{
|
|
187
|
+
type: ViewChild,
|
|
188
|
+
args: ['stepper']
|
|
189
|
+
}] } });
|
|
190
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvd2Jhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9mbG93YmFyL2Zsb3diYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvZmxvd2Jhci9mbG93YmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQWV6RyxNQUFNLE9BQU8sZ0JBQWdCO0lBTDdCO1FBTWtCLFdBQU0sR0FBWSxFQUFFLENBQUM7UUFFVCxzQkFBaUIsR0FBd0IsSUFBSSxZQUFZLENBQVEsSUFBSSxDQUFDLENBQUM7UUFDbkc7Ozs7V0FJRztRQUNvQixpQkFBWSxHQUF3QixJQUFJLFlBQVksQ0FBUSxJQUFJLENBQUMsQ0FBQztLQTRLMUY7SUF6S0MsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxtQkFBbUI7UUFDckIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUM7SUFDL0MsQ0FBQztJQUVELFFBQVE7UUFDTixxR0FBcUc7UUFDckcsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRTtZQUNsRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDNUQsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNwQiwwRUFB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RyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxTQUFTLENBQUM7SUFDckcsQ0FBQztJQUVPLHVCQUF1QjtRQUM3QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDckMsT0FBTyxJQUFJLENBQUMsTUFBTTthQUNmLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDO2FBQ2YsT0FBTyxFQUFFO2FBQ1QsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDckMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkYsQ0FBQzs4R0FwTFUsZ0JBQWdCO2tHQUFoQixnQkFBZ0IsNlRDZjdCLDJoQkFVQTs7MkZES2EsZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLGFBQWE7OEJBS1AsTUFBTTtzQkFBckIsS0FBSzt1QkFBQyxPQUFPO2dCQUNPLFdBQVc7c0JBQS9CLEtBQUs7dUJBQUMsWUFBWTtnQkFDUyxpQkFBaUI7c0JBQTVDLE1BQU07dUJBQUMsa0JBQWtCO2dCQU1ILFlBQVk7c0JBQWxDLE1BQU07dUJBQUMsYUFBYTtnQkFDUyxPQUFPO3NCQUFwQyxTQUFTO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdFN0ZXBwZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zdGVwcGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBJU3RlcCB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGVuYWJsZWQ/OiBib29sZWFuO1xuICBzdWJTdGVwcz86IElTdGVwW107XG4gIGFjdGl2ZVN1YlN0ZXA/OiBJU3RlcDtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWFkLWZsb3diYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZmxvd2Jhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zsb3diYXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRmxvd2JhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgnc3RlcHMnKSBfc3RlcHM6IElTdGVwW10gPSBbXTtcbiAgQElucHV0KCdhY3RpdmVTdGVwJykgX2FjdGl2ZVN0ZXA6IElTdGVwO1xuICBAT3V0cHV0KCdhY3RpdmVTdGVwQ2hhbmdlJykgX2FjdGl2ZVN0ZXBDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJU3RlcD4gPSBuZXcgRXZlbnRFbWl0dGVyPElTdGVwPih0cnVlKTtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBhIHN0ZXAgaGVhZGVyIGlzIGNsaWNrZWQuXG4gICAqIFdoZW4gZGVmaW5lZCBoZWFkZXIgbmF2aWdhdGlvbiBoYXMgdG8gYmUgaW1wbGVtZW50ZWQgcHJvZ3JhbW1hdGljYWxseS5cbiAgICogZS5nLiB7QHNlZSBjaGFuZ2VBY3RpdmVTdGVwT25IZWFkZXJ9XG4gICAqL1xuICBAT3V0cHV0KCdoZWFkZXJDbGljaycpIF9oZWFkZXJDbGljazogRXZlbnRFbWl0dGVyPElTdGVwPiA9IG5ldyBFdmVudEVtaXR0ZXI8SVN0ZXA+KHRydWUpO1xuICBAVmlld0NoaWxkKCdzdGVwcGVyJykgcHJpdmF0ZSBzdGVwcGVyOiBNYXRTdGVwcGVyO1xuXG4gIGdldCBjdXJyZW50U3RlcExhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZVN0ZXAubGFiZWw7XG4gIH1cblxuICBnZXQgY3VycmVudFN1YlN0ZXBMYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmVTdGVwLmFjdGl2ZVN1YlN0ZXA/LmxhYmVsO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gSWYgbm8gYWN0aXZlIHN0ZXAgaXMgc2V0IGFzIGlucHV0IG9yIHRoZSBhY3RpdmUgc3RlcCBpcyBub3QgZW5hYmxlZCwgc2VsZWN0IHRoZSBmaXJzdCBlbmFibGVkIHN0ZXBcbiAgICBpZiAoIXRoaXMuX2FjdGl2ZVN0ZXAgfHwgIXRoaXMuX2FjdGl2ZVN0ZXAuZW5hYmxlZCkge1xuICAgICAgdGhpcy5fYWN0aXZlU3RlcCA9IHRoaXMuX3N0ZXBzLmZpbmQoKHN0ZXApID0+IHN0ZXAuZW5hYmxlZCk7XG4gICAgICBpZiAodGhpcy5fYWN0aXZlU3RlcCkge1xuICAgICAgICAvLyBJZiBzdWIgc3RlcHMgZXhpc3QgdGhlbiBzZXQgdGhlIGZpcnN0IG5vbiBkaXNhYmxlZCBzdWIgc3RlcCBwZXIgZGVmYXVsdFxuICAgICAgICBpZiAodGhpcy5hY3RpdmVUYWJIYXNTdWJTdGVwcygpKSB7XG4gICAgICAgICAgdGhpcy5fYWN0aXZlU3RlcC5hY3RpdmVTdWJTdGVwID0gdGhpcy5fYWN0aXZlU3RlcC5zdWJTdGVwcy5maW5kKChzdGVwKSA9PiBzdGVwLmVuYWJsZWQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2FjdGl2ZVN0ZXBDaGFuZ2UuZW1pdCh0aGlzLl9hY3RpdmVTdGVwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdGVwcGVyLl9nZXRJbmRpY2F0b3JUeXBlID0gKCk6IGFueSA9PiAnbnVtYmVyJztcbiAgfVxuXG4gIGdldEluZGV4Rm9yQWN0aXZlU3RlcCgpOiBudW1iZXIge1xuICAgIGNvbnN0IHNlbGVjdGVkSW5kZXggPSB0aGlzLl9zdGVwcy5pbmRleE9mKHRoaXMuX2FjdGl2ZVN0ZXApO1xuICAgIHJldHVybiBzZWxlY3RlZEluZGV4ID09PSAtMSA/IDAgOiBzZWxlY3RlZEluZGV4O1xuICB9XG5cbiAgY2hhbmdlQWN0aXZlU3RlcChzdGVwOiBJU3RlcCk6IHZvaWQge1xuICAgIGNvbnN0IHByZXZpb3VzSW5kZXggPSB0aGlzLl9zdGVwcy5pbmRleE9mKHRoaXMuX2FjdGl2ZVN0ZXApO1xuICAgIHRoaXMuX2FjdGl2ZVN0ZXAgPSBzdGVwO1xuICAgIGlmICh0aGlzLmFjdGl2ZVRhYkhhc1N1YlN0ZXBzKCkpIHtcbiAgICAgIGlmIChwcmV2aW91c0luZGV4IDwgdGhpcy5fc3RlcHMuaW5kZXhPZih0aGlzLl9hY3RpdmVTdGVwKSkge1xuICAgICAgICB0aGlzLl9hY3RpdmVTdGVwLmFjdGl2ZVN1YlN0ZXAgPSB0aGlzLl9hY3RpdmVTdGVwLnN1YlN0ZXBzWzBdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fYWN0aXZlU3RlcC5hY3RpdmVTdWJTdGVwID0gdGhpcy5fYWN0aXZlU3RlcC5zdWJTdGVwc1t0aGlzLl9hY3RpdmVTdGVwLnN1YlN0ZXBzLmxlbmd0aCAtIDFdO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLl9hY3RpdmVTdGVwQ2hhbmdlLmVtaXQodGhpcy5fYWN0aXZlU3RlcCk7XG4gIH1cblxuICBjaGFuZ2VBY3RpdmVTdGVwT25IZWFkZXIoc3RlcDogSVN0ZXApOiB2b2lkIHtcbiAgICBjb25zdCBzdGVwSW5kZXggPSB0aGlzLl9zdGVwcy5pbmRleE9mKHN0ZXApO1xuICAgIHRoaXMuX2FjdGl2ZVN0ZXAgPSBzdGVwO1xuICAgIHRoaXMuc3RlcHBlci5zZWxlY3RlZCA9IHRoaXMuc3RlcHBlci5fc3RlcHMuZmluZCgoXywgaSkgPT4gaSA9PT0gc3RlcEluZGV4KTtcbiAgfVxuXG4gIGNoYW5nZUFjdGl2ZVN1YlN0ZXAoc3ViU3RlcDogSVN0ZXApOiB2b2lkIHtcbiAgICB0aGlzLl9hY3RpdmVTdGVwLmFjdGl2ZVN1YlN0ZXAgPSBzdWJTdGVwO1xuICB9XG5cbiAgcHJldmlvdXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNQcmV2aW91c0F2YWlsYWJsZSgpKSB7XG4gICAgICAvLyBJZiBhY3RpdmUgc3RlcCBoYXMgbm8gc3ViIHN0ZXBzIG9yIGZpcnN0IHN1YiBzdGVwIGlzIHNlbGVjdGVkIC0+IGdvIHRvIHByZXZpb3VzIG1haW4gc3RlcFxuICAgICAgaWYgKCF0aGlzLmFjdGl2ZVRhYkhhc1N1YlN0ZXBzKCkgfHwgdGhpcy5pc0ZpcnN0U3ViU3RlcCgpKSB7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzRW5hYmxlZFN0ZXAgPSB0aGlzLmZpbmRQcmV2aW91c0VuYWJsZWRTdGVwKCk7XG4gICAgICAgIHRoaXMuY2hhbmdlQWN0aXZlU3RlcChwcmV2aW91c0VuYWJsZWRTdGVwKTtcbiAgICAgICAgdGhpcy5zdGVwcGVyLnNlbGVjdGVkSW5kZXggPSB0aGlzLl9zdGVwcy5pbmRleE9mKHByZXZpb3VzRW5hYmxlZFN0ZXApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qgc3ViU3RlcEluZGV4ID0gdGhpcy5fYWN0aXZlU3RlcC5zdWJTdGVwcy5pbmRleE9mKHRoaXMuX2FjdGl2ZVN0ZXAuYWN0aXZlU3ViU3RlcCk7XG4gICAgICAgIHRoaXMuX2FjdGl2ZVN0ZXAuYWN0aXZlU3ViU3RlcCA9IHRoaXMuX2FjdGl2ZVN0ZXAuc3ViU3RlcHNbc3ViU3RlcEluZGV4IC0gMV07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmV4dCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc05leHRBdmFpbGFibGUoKSkge1xuICAgICAgLy8gSWYgYWN0aXZlIHN0ZXAgaGFzIG5vIHN1YiBzdGVwcyBvciBsYXN0IHN1YiBzdGVwIGlzIHNlbGVjdGVkIC0+IGdvIHRvIG5leHQgbWFpbiBzdGVwXG4gICAgICBpZiAoIXRoaXMuYWN0aXZlVGFiSGFzU3ViU3RlcHMoKSB8fCB0aGlzLmlzTGFzdFN1YlN0ZXAoKSkge1xuICAgICAgICBjb25zdCBuZXh0RW5hYmxlZFN0ZXAgPSB0aGlzLmZpbmROZXh0RW5hYmxlZFN0ZXAoKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VBY3RpdmVTdGVwKG5leHRFbmFibGVkU3RlcCk7XG4gICAgICAgIHRoaXMuc3RlcHBlci5zZWxlY3RlZEluZGV4ID0gdGhpcy5fc3RlcHMuaW5kZXhPZihuZXh0RW5hYmxlZFN0ZXApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qgc3ViU3RlcEluZGV4ID0gdGhpcy5fYWN0aXZlU3RlcC5zdWJTdGVwcy5pbmRleE9mKHRoaXMuX2FjdGl2ZVN0ZXAuYWN0aXZlU3ViU3RlcCk7XG4gICAgICAgIHRoaXMuX2FjdGl2ZVN0ZXAuYWN0aXZlU3ViU3RlcCA9IHRoaXMuX2FjdGl2ZVN0ZXAuc3ViU3RlcHNbc3ViU3RlcEluZGV4ICsgMV07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaXNQcmV2aW91c0F2YWlsYWJsZSgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5fYWN0aXZlU3RlcCkge1xuICAgICAgaWYgKCF0aGlzLmFjdGl2ZVRhYkhhc1N1YlN0ZXBzKCkgfHwgdGhpcy5pc0ZpcnN0U3ViU3RlcCgpKSB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5nZXRDdXJyZW50SW5kZXgoKTtcbiAgICAgICAgcmV0dXJuIGluZGV4ID4gMCAmJiB0aGlzLmlzQW55UHJldmlvdXNTdGVwRW5hYmxlZChpbmRleCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaXNOZXh0QXZhaWxhYmxlKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLl9hY3RpdmVTdGVwKSB7XG4gICAgICBpZiAoIXRoaXMuYWN0aXZlVGFiSGFzU3ViU3RlcHMoKSB8fCB0aGlzLmlzTGFzdFN1YlN0ZXAoKSkge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZ2V0Q3VycmVudEluZGV4KCk7XG4gICAgICAgIHJldHVybiBpbmRleCA8IHRoaXMuX3N0ZXBzLmxlbmd0aCAtIDEgJiYgdGhpcy5pc0FueUZvbGxvd2luZ1N0ZXBFbmFibGVkKGluZGV4KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpc0xhc3RTdGVwKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmdldEN1cnJlbnRJbmRleCgpID09PSB0aGlzLl9zdGVwcy5sZW5ndGggLSAxKSB7XG4gICAgICBpZiAodGhpcy5hY3RpdmVUYWJIYXNTdWJTdGVwcygpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzTGFzdFN1YlN0ZXAoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBnZXRDdXJyZW50SW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fc3RlcHMuZmluZEluZGV4KCh2YWx1ZSkgPT4gdmFsdWUgPT09IHRoaXMuX2FjdGl2ZVN0ZXApO1xuICB9XG5cbiAgZ2V0Q3VycmVudFN1YlN0ZXBJbmRleCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmVTdGVwLnN1YlN0ZXBzLmZpbmRJbmRleCgodmFsdWUpID0+IHZhbHVlID09PSB0aGlzLl9hY3RpdmVTdGVwLmFjdGl2ZVN1YlN0ZXApO1xuICB9XG5cbiAgdHJpZ2dlckNsaWNrKCk6IHZvaWQge1xuICAgIGNvbnN0IHNlbGVjdGVkU3RlcCA9IHRoaXMuX3N0ZXBzW3RoaXMuc3RlcHBlci5zZWxlY3RlZEluZGV4XTtcbiAgICB0aGlzLmNoYW5nZUFjdGl2ZVN0ZXAoc2VsZWN0ZWRTdGVwKTtcbiAgfVxuXG4gIGhlYWRlckNsaWNrKGV2ZW50OiBhbnksIHN0ZXA6IElTdGVwKTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IC8vc3RvcCBwcm9jZXNzaW5nIGN1cnJlbnQgaGVhZGVyIGNsaWNrIGV2ZW50XG4gICAgdGhpcy5faGVhZGVyQ2xpY2suZW1pdChzdGVwKTtcbiAgfVxuXG4gIHByaXZhdGUgYWN0aXZlVGFiSGFzU3ViU3RlcHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZVN0ZXAuc3ViU3RlcHMgJiYgdGhpcy5fYWN0aXZlU3RlcC5zdWJTdGVwcy5sZW5ndGggPiAwO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0ZpcnN0U3ViU3RlcCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlU3RlcC5hY3RpdmVTdWJTdGVwID09PSB0aGlzLl9hY3RpdmVTdGVwLnN1YlN0ZXBzWzBdO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0xhc3RTdWJTdGVwKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmVTdGVwLmFjdGl2ZVN1YlN0ZXAgPT09IHRoaXMuX2FjdGl2ZVN0ZXAuc3ViU3RlcHNbdGhpcy5fYWN0aXZlU3RlcC5zdWJTdGVwcy5sZW5ndGggLSAxXTtcbiAgfVxuXG4gIHByaXZhdGUgaXNBbnlQcmV2aW91c1N0ZXBFbmFibGVkKGluZGV4OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaWQtYmxhY2tsaXN0XG4gICAgcmV0dXJuIHRoaXMuX3N0ZXBzLnNsaWNlKDAsIGluZGV4KS5maW5kKChzdGVwKSA9PiBzdGVwLmVuYWJsZWQpICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIGlzQW55Rm9sbG93aW5nU3RlcEVuYWJsZWQoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpZC1ibGFja2xpc3RcbiAgICByZXR1cm4gdGhpcy5fc3RlcHMuc2xpY2UoaW5kZXggKyAxLCB0aGlzLl9zdGVwcy5sZW5ndGgpLmZpbmQoKHN0ZXApID0+IHN0ZXAuZW5hYmxlZCkgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgZmluZFByZXZpb3VzRW5hYmxlZFN0ZXAoKTogSVN0ZXAge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5nZXRDdXJyZW50SW5kZXgoKTtcbiAgICByZXR1cm4gdGhpcy5fc3RlcHNcbiAgICAgIC5zbGljZSgwLCBpbmRleClcbiAgICAgIC5yZXZlcnNlKClcbiAgICAgIC5maW5kKChzdGVwKSA9PiBzdGVwLmVuYWJsZWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kTmV4dEVuYWJsZWRTdGVwKCk6IElTdGVwIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuZ2V0Q3VycmVudEluZGV4KCk7XG4gICAgcmV0dXJuIHRoaXMuX3N0ZXBzLnNsaWNlKGluZGV4ICsgMSwgdGhpcy5fc3RlcHMubGVuZ3RoKS5maW5kKChzdGVwKSA9PiBzdGVwLmVuYWJsZWQpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic3RlcHBlci1jb250YWluZXJcIj5cbiAgPG1hdC1ob3Jpem9udGFsLXN0ZXBwZXIgI3N0ZXBwZXIgW3NlbGVjdGVkSW5kZXhdPVwidGhpcy5nZXRJbmRleEZvckFjdGl2ZVN0ZXAoKVwiIChjbGljayk9XCJ0cmlnZ2VyQ2xpY2soKVwiPlxuICAgIDxtYXQtc3RlcCAqbmdGb3I9XCJsZXQgc3RlcCBvZiBfc3RlcHNcIiBbYXJpYS1sYWJlbGxlZGJ5XT1cIiFzdGVwLmVuYWJsZWQgPyAnZGlzYWJsZWQnIDogbnVsbFwiPlxuICAgICAgPG5nLXRlbXBsYXRlIG1hdFN0ZXBMYWJlbD5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN0ZXAtaGVhZGVyLW92ZXJsYXlcIiAqbmdJZj1cInRoaXMuX2hlYWRlckNsaWNrLm9ic2VydmVycy5sZW5ndGggPiAwXCIgKGNsaWNrKT1cImhlYWRlckNsaWNrKCRldmVudCwgc3RlcClcIj48L2Rpdj5cbiAgICAgICAgPHNwYW4+e3sgc3RlcC5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9tYXQtc3RlcD5cbiAgPC9tYXQtaG9yaXpvbnRhbC1zdGVwcGVyPlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { MatStepperModule } from '@angular/material/stepper';
|
|
4
|
+
import { FlowbarComponent } from './flowbar.component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class FlowbarModule {
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: FlowbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: FlowbarModule, declarations: [FlowbarComponent], imports: [CommonModule, MatStepperModule], exports: [FlowbarComponent] }); }
|
|
9
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: FlowbarModule, imports: [CommonModule, MatStepperModule] }); }
|
|
10
|
+
}
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: FlowbarModule, decorators: [{
|
|
12
|
+
type: NgModule,
|
|
13
|
+
args: [{
|
|
14
|
+
declarations: [FlowbarComponent],
|
|
15
|
+
imports: [CommonModule, MatStepperModule],
|
|
16
|
+
exports: [FlowbarComponent],
|
|
17
|
+
}]
|
|
18
|
+
}] });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvd2Jhci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9mbG93YmFyL2Zsb3diYXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQU92RCxNQUFNLE9BQU8sYUFBYTs4R0FBYixhQUFhOytHQUFiLGFBQWEsaUJBSlQsZ0JBQWdCLGFBQ3JCLFlBQVksRUFBRSxnQkFBZ0IsYUFDOUIsZ0JBQWdCOytHQUVmLGFBQWEsWUFIZCxZQUFZLEVBQUUsZ0JBQWdCOzsyRkFHN0IsYUFBYTtrQkFMekIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztvQkFDaEMsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGdCQUFnQixDQUFDO29CQUN6QyxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztpQkFDNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdFN0ZXBwZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zdGVwcGVyJztcbmltcG9ydCB7IEZsb3diYXJDb21wb25lbnQgfSBmcm9tICcuL2Zsb3diYXIuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbRmxvd2JhckNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdFN0ZXBwZXJNb2R1bGVdLFxuICBleHBvcnRzOiBbRmxvd2JhckNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIEZsb3diYXJNb2R1bGUge31cbiJdfQ==
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
import * as i2 from "@angular/router";
|
|
5
|
+
import * as i3 from "@angular/material/button";
|
|
6
|
+
import * as i4 from "@angular/material/icon";
|
|
7
|
+
import * as i5 from "@angular/material/tooltip";
|
|
8
|
+
export class MaterialActionButtonComponent {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.icon = 'add';
|
|
11
|
+
// Sets the lower padding higher providing some bottom space for a fixed paginator
|
|
12
|
+
this.liftHigher = true;
|
|
13
|
+
this.liftHigher2 = false;
|
|
14
|
+
}
|
|
15
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MaterialActionButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
16
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: MaterialActionButtonComponent, selector: "mad-material-action-button", inputs: { actionName: "actionName", id: "id", icon: "icon", routerLink: "routerLink", liftHigher: "liftHigher", liftHigher2: "liftHigher2" }, ngImport: i0, template: "<div class=\"material-action-button {{ liftHigher ? 'lift-higher' : '' }} {{ liftHigher2 ? 'lift-higher-2' : '' }}\">\n <a [routerLink]=\"routerLink\">\n <button [id]=\"id\" mat-fab [matTooltipPosition]=\"'left'\" [matTooltip]=\"actionName\" color=\"primary\" *ngIf=\"!liftHigher2\">\n <mat-icon>{{ icon }}</mat-icon>\n </button>\n <button [id]=\"id\" mat-mini-fab [matTooltipPosition]=\"'left'\" [matTooltip]=\"actionName\" color=\"accent\" *ngIf=\"liftHigher2\">\n <mat-icon>{{ icon }}</mat-icon>\n </button>\n </a>\n</div>\n", styles: [".material-action-button{position:fixed;bottom:20px;right:20px;z-index:100;display:flex;flex-direction:column-reverse;align-items:center}.lift-higher{bottom:61px}.lift-higher-2{right:28px;bottom:121px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i3.MatMiniFabButton, selector: "button[mat-mini-fab]", exportAs: ["matButton"] }, { kind: "component", type: i3.MatFabButton, selector: "button[mat-fab]", inputs: ["extended"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
|
|
17
|
+
}
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MaterialActionButtonComponent, decorators: [{
|
|
19
|
+
type: Component,
|
|
20
|
+
args: [{ selector: 'mad-material-action-button', template: "<div class=\"material-action-button {{ liftHigher ? 'lift-higher' : '' }} {{ liftHigher2 ? 'lift-higher-2' : '' }}\">\n <a [routerLink]=\"routerLink\">\n <button [id]=\"id\" mat-fab [matTooltipPosition]=\"'left'\" [matTooltip]=\"actionName\" color=\"primary\" *ngIf=\"!liftHigher2\">\n <mat-icon>{{ icon }}</mat-icon>\n </button>\n <button [id]=\"id\" mat-mini-fab [matTooltipPosition]=\"'left'\" [matTooltip]=\"actionName\" color=\"accent\" *ngIf=\"liftHigher2\">\n <mat-icon>{{ icon }}</mat-icon>\n </button>\n </a>\n</div>\n", styles: [".material-action-button{position:fixed;bottom:20px;right:20px;z-index:100;display:flex;flex-direction:column-reverse;align-items:center}.lift-higher{bottom:61px}.lift-higher-2{right:28px;bottom:121px}\n"] }]
|
|
21
|
+
}], propDecorators: { actionName: [{
|
|
22
|
+
type: Input
|
|
23
|
+
}], id: [{
|
|
24
|
+
type: Input
|
|
25
|
+
}], icon: [{
|
|
26
|
+
type: Input
|
|
27
|
+
}], routerLink: [{
|
|
28
|
+
type: Input
|
|
29
|
+
}], liftHigher: [{
|
|
30
|
+
type: Input
|
|
31
|
+
}], liftHigher2: [{
|
|
32
|
+
type: Input
|
|
33
|
+
}] } });
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtYWN0aW9uLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9tYXRlcmlhbC1hY3Rpb24tYnV0dG9uL21hdGVyaWFsLWFjdGlvbi1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvbWF0ZXJpYWwtYWN0aW9uLWJ1dHRvbi9tYXRlcmlhbC1hY3Rpb24tYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBT2pELE1BQU0sT0FBTyw2QkFBNkI7SUFMMUM7UUFhRSxTQUFJLEdBQUcsS0FBSyxDQUFDO1FBS2Isa0ZBQWtGO1FBRWxGLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFHbEIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7S0FDckI7OEdBbkJZLDZCQUE2QjtrR0FBN0IsNkJBQTZCLGdOQ1AxQyx5aUJBVUE7OzJGREhhLDZCQUE2QjtrQkFMekMsU0FBUzsrQkFDRSw0QkFBNEI7OEJBTXRDLFVBQVU7c0JBRFQsS0FBSztnQkFJTixFQUFFO3NCQURELEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxLQUFLO2dCQUlOLFVBQVU7c0JBRFQsS0FBSztnQkFLTixVQUFVO3NCQURULEtBQUs7Z0JBSU4sV0FBVztzQkFEVixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYWQtbWF0ZXJpYWwtYWN0aW9uLWJ1dHRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9tYXRlcmlhbC1hY3Rpb24tYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWF0ZXJpYWwtYWN0aW9uLWJ1dHRvbi5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsQWN0aW9uQnV0dG9uQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgYWN0aW9uTmFtZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGlkOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgaWNvbiA9ICdhZGQnO1xuXG4gIEBJbnB1dCgpXG4gIHJvdXRlckxpbms6IHN0cmluZztcblxuICAvLyBTZXRzIHRoZSBsb3dlciBwYWRkaW5nIGhpZ2hlciBwcm92aWRpbmcgc29tZSBib3R0b20gc3BhY2UgZm9yIGEgZml4ZWQgcGFnaW5hdG9yXG4gIEBJbnB1dCgpXG4gIGxpZnRIaWdoZXIgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIGxpZnRIaWdoZXIyID0gZmFsc2U7XG59XG4iLCI8ZGl2IGNsYXNzPVwibWF0ZXJpYWwtYWN0aW9uLWJ1dHRvbiB7eyBsaWZ0SGlnaGVyID8gJ2xpZnQtaGlnaGVyJyA6ICcnIH19IHt7IGxpZnRIaWdoZXIyID8gJ2xpZnQtaGlnaGVyLTInIDogJycgfX1cIj5cbiAgPGEgW3JvdXRlckxpbmtdPVwicm91dGVyTGlua1wiPlxuICAgIDxidXR0b24gW2lkXT1cImlkXCIgbWF0LWZhYiBbbWF0VG9vbHRpcFBvc2l0aW9uXT1cIidsZWZ0J1wiIFttYXRUb29sdGlwXT1cImFjdGlvbk5hbWVcIiBjb2xvcj1cInByaW1hcnlcIiAqbmdJZj1cIiFsaWZ0SGlnaGVyMlwiPlxuICAgICAgPG1hdC1pY29uPnt7IGljb24gfX08L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gW2lkXT1cImlkXCIgbWF0LW1pbmktZmFiIFttYXRUb29sdGlwUG9zaXRpb25dPVwiJ2xlZnQnXCIgW21hdFRvb2x0aXBdPVwiYWN0aW9uTmFtZVwiIGNvbG9yPVwiYWNjZW50XCIgKm5nSWY9XCJsaWZ0SGlnaGVyMlwiPlxuICAgICAgPG1hdC1pY29uPnt7IGljb24gfX08L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L2E+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { MaterialActionButtonComponent } from './material-action-button.component';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
import { RouterModule } from '@angular/router';
|
|
5
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
6
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
7
|
+
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
export class MaterialActionButtonModule {
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MaterialActionButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
11
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: MaterialActionButtonModule, declarations: [MaterialActionButtonComponent], imports: [CommonModule, RouterModule, MatButtonModule, MatIconModule, MatTooltipModule], exports: [MaterialActionButtonComponent] }); }
|
|
12
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MaterialActionButtonModule, imports: [CommonModule, RouterModule, MatButtonModule, MatIconModule, MatTooltipModule] }); }
|
|
13
|
+
}
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: MaterialActionButtonModule, decorators: [{
|
|
15
|
+
type: NgModule,
|
|
16
|
+
args: [{
|
|
17
|
+
declarations: [MaterialActionButtonComponent],
|
|
18
|
+
imports: [CommonModule, RouterModule, MatButtonModule, MatIconModule, MatTooltipModule],
|
|
19
|
+
exports: [MaterialActionButtonComponent],
|
|
20
|
+
}]
|
|
21
|
+
}] });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwtYWN0aW9uLWJ1dHRvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9tYXRlcmlhbC1hY3Rpb24tYnV0dG9uL21hdGVyaWFsLWFjdGlvbi1idXR0b24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQU83RCxNQUFNLE9BQU8sMEJBQTBCOzhHQUExQiwwQkFBMEI7K0dBQTFCLDBCQUEwQixpQkFKdEIsNkJBQTZCLGFBQ2xDLFlBQVksRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsYUFDNUUsNkJBQTZCOytHQUU1QiwwQkFBMEIsWUFIM0IsWUFBWSxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGdCQUFnQjs7MkZBRzNFLDBCQUEwQjtrQkFMdEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQztvQkFDN0MsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixDQUFDO29CQUN2RixPQUFPLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQztpQkFDekMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0ZXJpYWxBY3Rpb25CdXR0b25Db21wb25lbnQgfSBmcm9tICcuL21hdGVyaWFsLWFjdGlvbi1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbTWF0ZXJpYWxBY3Rpb25CdXR0b25Db21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSb3V0ZXJNb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgTWF0SWNvbk1vZHVsZSwgTWF0VG9vbHRpcE1vZHVsZV0sXG4gIGV4cG9ydHM6IFtNYXRlcmlhbEFjdGlvbkJ1dHRvbkNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsQWN0aW9uQnV0dG9uTW9kdWxlIHt9XG4iXX0=
|