@porscheinformatik/material-addons 14.0.1-beta.1 → 14.1.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 (64) hide show
  1. package/esm2020/lib/button/button.mjs +7 -0
  2. package/esm2020/lib/button/button.module.mjs +26 -0
  3. package/esm2020/lib/button/danger-button/danger-button.component.mjs +28 -0
  4. package/esm2020/lib/button/flat-button/link-button.component.mjs +28 -0
  5. package/esm2020/lib/button/icon-button/icon-button.component.mjs +28 -0
  6. package/esm2020/lib/button/mad-basic-button.mjs +39 -0
  7. package/esm2020/lib/button/outline-button/outline-button.component.mjs +28 -0
  8. package/esm2020/lib/button/primary-button/primary-button.component.mjs +28 -0
  9. package/esm2020/lib/card/card.component.mjs +129 -0
  10. package/esm2020/lib/card/card.mjs +2 -0
  11. package/esm2020/lib/card/card.module.mjs +23 -0
  12. package/esm2020/lib/content-panel/content-header/content-header.component.mjs +11 -0
  13. package/esm2020/lib/content-panel/content-panel-container/content-panel-container.component.mjs +11 -0
  14. package/esm2020/lib/content-panel/content-panel-container-content/content-panel-container-content.component.mjs +11 -0
  15. package/esm2020/lib/content-panel/content-panel-container-footer/content-panel-container-footer.component.mjs +11 -0
  16. package/esm2020/lib/content-panel/content-panel.module.mjs +42 -0
  17. package/esm2020/lib/content-panel/main-container/main-container.component.mjs +11 -0
  18. package/esm2020/lib/data-table/data-table-action-type.mjs +6 -0
  19. package/esm2020/lib/data-table/data-table-action.mjs +2 -0
  20. package/esm2020/lib/data-table/data-table-column-definition.mjs +2 -0
  21. package/esm2020/lib/data-table/data-table-column.mjs +2 -0
  22. package/esm2020/lib/data-table/data-table-columns-modal/data-table-columns-modal.component.mjs +103 -0
  23. package/esm2020/lib/data-table/data-table.component.mjs +504 -0
  24. package/esm2020/lib/data-table/data-table.mjs +3 -0
  25. package/esm2020/lib/data-table/data-table.module.mjs +81 -0
  26. package/esm2020/lib/flowbar/flowbar.component.mjs +190 -0
  27. package/esm2020/lib/flowbar/flowbar.module.mjs +19 -0
  28. package/esm2020/lib/material-action-button/material-action-button.component.mjs +34 -0
  29. package/esm2020/lib/material-action-button/material-action-button.module.mjs +22 -0
  30. package/esm2020/lib/material-addons.module.mjs +45 -0
  31. package/esm2020/lib/numeric-field/number-format.service.mjs +139 -0
  32. package/esm2020/lib/numeric-field/numeric-field.directive.mjs +295 -0
  33. package/esm2020/lib/numeric-field/numeric-field.mjs +2 -0
  34. package/esm2020/lib/numeric-field/numeric-field.module.mjs +24 -0
  35. package/esm2020/lib/quick-list/base-quick-list.component.mjs +101 -0
  36. package/esm2020/lib/quick-list/quick-list-compact/quick-list-compact.component.mjs +20 -0
  37. package/esm2020/lib/quick-list/quick-list.component.mjs +21 -0
  38. package/esm2020/lib/quick-list/quick-list.mjs +4 -0
  39. package/esm2020/lib/quick-list/quick-list.module.mjs +23 -0
  40. package/esm2020/lib/readonly/readonly-form-field/readonly-form-field.component.mjs +155 -0
  41. package/esm2020/lib/readonly/readonly-form-field-wrapper/readonly-form-field-wrapper.component.mjs +185 -0
  42. package/esm2020/lib/readonly/readonly-form-field.module.mjs +24 -0
  43. package/esm2020/lib/stepper/mad-stepper-animation.mjs +13 -0
  44. package/esm2020/lib/stepper/step-header/step-header.component.mjs +78 -0
  45. package/esm2020/lib/stepper/stepper.component.mjs +160 -0
  46. package/esm2020/lib/stepper/stepper.module.mjs +23 -0
  47. package/esm2020/lib/table/column-header.mjs +2 -0
  48. package/esm2020/lib/table/table-action.mjs +2 -0
  49. package/esm2020/lib/table/table.component.mjs +130 -0
  50. package/esm2020/lib/table/table.mjs +2 -0
  51. package/esm2020/lib/table/table.module.mjs +56 -0
  52. package/esm2020/lib/throttle-click/throttle-click.directive.mjs +38 -0
  53. package/esm2020/lib/throttle-click/throttle-click.module.mjs +18 -0
  54. package/esm2020/lib/toolbar/toolbar-action.interface.mjs +2 -0
  55. package/esm2020/lib/toolbar/toolbar.component.mjs +78 -0
  56. package/esm2020/lib/toolbar/toolbar.module.mjs +56 -0
  57. package/esm2020/lib/toolbar/toolbar.service.mjs +124 -0
  58. package/esm2020/porscheinformatik-material-addons.mjs +5 -0
  59. package/esm2020/public_api.mjs +41 -0
  60. package/fesm2015/porscheinformatik-material-addons.mjs +2984 -0
  61. package/fesm2015/porscheinformatik-material-addons.mjs.map +1 -0
  62. package/fesm2020/porscheinformatik-material-addons.mjs +2962 -0
  63. package/fesm2020/porscheinformatik-material-addons.mjs.map +1 -0
  64. package/package.json +5 -2
@@ -0,0 +1,24 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { RouterModule } from '@angular/router';
4
+ import { ReadOnlyFormFieldWrapperComponent } from './readonly-form-field-wrapper/readonly-form-field-wrapper.component';
5
+ import { ReadOnlyFormFieldComponent } from './readonly-form-field/readonly-form-field.component';
6
+ import { MatFormFieldModule } from '@angular/material/form-field';
7
+ import { MatInputModule } from '@angular/material/input';
8
+ import { FormsModule } from '@angular/forms';
9
+ import { MatTooltipModule } from '@angular/material/tooltip';
10
+ import * as i0 from "@angular/core";
11
+ export class ReadOnlyFormFieldModule {
12
+ }
13
+ ReadOnlyFormFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: ReadOnlyFormFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
+ ReadOnlyFormFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.2", ngImport: i0, type: ReadOnlyFormFieldModule, declarations: [ReadOnlyFormFieldComponent, ReadOnlyFormFieldWrapperComponent], imports: [CommonModule, RouterModule, MatFormFieldModule, MatInputModule, FormsModule, MatTooltipModule], exports: [ReadOnlyFormFieldComponent, ReadOnlyFormFieldWrapperComponent] });
15
+ ReadOnlyFormFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: ReadOnlyFormFieldModule, imports: [CommonModule, RouterModule, MatFormFieldModule, MatInputModule, FormsModule, MatTooltipModule] });
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: ReadOnlyFormFieldModule, decorators: [{
17
+ type: NgModule,
18
+ args: [{
19
+ declarations: [ReadOnlyFormFieldComponent, ReadOnlyFormFieldWrapperComponent],
20
+ imports: [CommonModule, RouterModule, MatFormFieldModule, MatInputModule, FormsModule, MatTooltipModule],
21
+ exports: [ReadOnlyFormFieldComponent, ReadOnlyFormFieldWrapperComponent],
22
+ }]
23
+ }] });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG9ubHktZm9ybS1maWVsZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9yZWFkb25seS9yZWFkb25seS1mb3JtLWZpZWxkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0scUVBQXFFLENBQUM7QUFDeEgsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDakcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFPN0QsTUFBTSxPQUFPLHVCQUF1Qjs7b0hBQXZCLHVCQUF1QjtxSEFBdkIsdUJBQXVCLGlCQUpuQiwwQkFBMEIsRUFBRSxpQ0FBaUMsYUFDbEUsWUFBWSxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixhQUM3RiwwQkFBMEIsRUFBRSxpQ0FBaUM7cUhBRTVELHVCQUF1QixZQUh4QixZQUFZLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCOzJGQUc1Rix1QkFBdUI7a0JBTG5DLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsMEJBQTBCLEVBQUUsaUNBQWlDLENBQUM7b0JBQzdFLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQztvQkFDeEcsT0FBTyxFQUFFLENBQUMsMEJBQTBCLEVBQUUsaUNBQWlDLENBQUM7aUJBQ3pFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgUmVhZE9ubHlGb3JtRmllbGRXcmFwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi9yZWFkb25seS1mb3JtLWZpZWxkLXdyYXBwZXIvcmVhZG9ubHktZm9ybS1maWVsZC13cmFwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZWFkT25seUZvcm1GaWVsZENvbXBvbmVudCB9IGZyb20gJy4vcmVhZG9ubHktZm9ybS1maWVsZC9yZWFkb25seS1mb3JtLWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1JlYWRPbmx5Rm9ybUZpZWxkQ29tcG9uZW50LCBSZWFkT25seUZvcm1GaWVsZFdyYXBwZXJDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSb3V0ZXJNb2R1bGUsIE1hdEZvcm1GaWVsZE1vZHVsZSwgTWF0SW5wdXRNb2R1bGUsIEZvcm1zTW9kdWxlLCBNYXRUb29sdGlwTW9kdWxlXSxcbiAgZXhwb3J0czogW1JlYWRPbmx5Rm9ybUZpZWxkQ29tcG9uZW50LCBSZWFkT25seUZvcm1GaWVsZFdyYXBwZXJDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBSZWFkT25seUZvcm1GaWVsZE1vZHVsZSB7fVxuIl19
@@ -0,0 +1,13 @@
1
+ import { animate, state, style, transition, trigger } from '@angular/animations';
2
+ /**
3
+ * Animations used by the MAD stepper.
4
+ */
5
+ export const madStepperAnimations = {
6
+ verticalStepTransition: trigger('stepTransition', [
7
+ state('previous', style({ height: '0px', visibility: 'hidden' })),
8
+ state('next', style({ height: '0px', visibility: 'hidden' })),
9
+ state('current', style({ height: '*', visibility: 'visible' })),
10
+ transition('* <=> current', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),
11
+ ]),
12
+ };
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFkLXN0ZXBwZXItYW5pbWF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvc3RlcHBlci9tYWQtc3RlcHBlci1hbmltYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQTRCLE1BQU0scUJBQXFCLENBQUM7QUFFM0c7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FFN0I7SUFDRixzQkFBc0IsRUFBRSxPQUFPLENBQUMsZ0JBQWdCLEVBQUU7UUFDaEQsS0FBSyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ2pFLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUM3RCxLQUFLLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDL0QsVUFBVSxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsc0NBQXNDLENBQUMsQ0FBQztLQUM3RSxDQUFDO0NBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciwgQW5pbWF0aW9uVHJpZ2dlck1ldGFkYXRhIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5cbi8qKlxuICogQW5pbWF0aW9ucyB1c2VkIGJ5IHRoZSBNQUQgc3RlcHBlci5cbiAqL1xuZXhwb3J0IGNvbnN0IG1hZFN0ZXBwZXJBbmltYXRpb25zOiB7XG4gIHJlYWRvbmx5IHZlcnRpY2FsU3RlcFRyYW5zaXRpb246IEFuaW1hdGlvblRyaWdnZXJNZXRhZGF0YTtcbn0gPSB7XG4gIHZlcnRpY2FsU3RlcFRyYW5zaXRpb246IHRyaWdnZXIoJ3N0ZXBUcmFuc2l0aW9uJywgW1xuICAgIHN0YXRlKCdwcmV2aW91cycsIHN0eWxlKHsgaGVpZ2h0OiAnMHB4JywgdmlzaWJpbGl0eTogJ2hpZGRlbicgfSkpLFxuICAgIHN0YXRlKCduZXh0Jywgc3R5bGUoeyBoZWlnaHQ6ICcwcHgnLCB2aXNpYmlsaXR5OiAnaGlkZGVuJyB9KSksXG4gICAgc3RhdGUoJ2N1cnJlbnQnLCBzdHlsZSh7IGhlaWdodDogJyonLCB2aXNpYmlsaXR5OiAndmlzaWJsZScgfSkpLFxuICAgIHRyYW5zaXRpb24oJyogPD0+IGN1cnJlbnQnLCBhbmltYXRlKCcyMjVtcyBjdWJpYy1iZXppZXIoMC40LCAwLjAsIDAuMiwgMSknKSksXG4gIF0pLFxufTtcbiJdfQ==
@@ -0,0 +1,78 @@
1
+ import { CdkStepHeader, STEP_STATE } from '@angular/cdk/stepper';
2
+ import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/cdk/a11y";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "@angular/material/icon";
7
+ import * as i4 from "@angular/flex-layout";
8
+ export class StepHeaderComponent extends CdkStepHeader {
9
+ constructor(_focusMonitor, _elementRef) {
10
+ super(_elementRef);
11
+ this._focusMonitor = _focusMonitor;
12
+ }
13
+ ngAfterViewInit() {
14
+ this._focusMonitor.monitor(this._elementRef, true);
15
+ }
16
+ ngOnDestroy() {
17
+ this._focusMonitor.stopMonitoring(this._elementRef);
18
+ }
19
+ /** Focuses the step header. */
20
+ focus(origin, options) {
21
+ if (origin) {
22
+ this._focusMonitor.focusVia(this._elementRef, origin, options);
23
+ }
24
+ else {
25
+ this._elementRef.nativeElement.focus(options);
26
+ }
27
+ }
28
+ getCssForState() {
29
+ if (this.state === STEP_STATE.NUMBER && !this.completed && !this.hasError) {
30
+ return 'step-state-neutral'; //initiale state is 'number'
31
+ }
32
+ else if (this.completed) {
33
+ return 'step-state-complete';
34
+ }
35
+ else if (this.hasError) {
36
+ return 'step-state-error';
37
+ }
38
+ }
39
+ getIcon() {
40
+ if (this.completed) {
41
+ return 'check_circle_outline';
42
+ }
43
+ else if (this.hasError) {
44
+ return 'error_outline';
45
+ }
46
+ return '';
47
+ }
48
+ }
49
+ StepHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: StepHeaderComponent, deps: [{ token: i1.FocusMonitor }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
50
+ StepHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: StepHeaderComponent, selector: "mad-step-header", inputs: { color: "color", index: "index", label: "label", state: "state", errorMessage: "errorMessage", selected: "selected", active: "active", optional: "optional", hasError: "hasError", completed: "completed", closed: "closed" }, host: { attributes: { "role": "tab" }, classAttribute: "mad-step-header" }, usesInheritance: true, ngImport: i0, template: "<div\n class=\"header\"\n fxLayout=\"row\"\n fxLayoutGap=\"1em\"\n [style.background]=\"this.selected && !this.closed ? '#d8e2e9' : '#ffffff'\"\n [ngClass]=\"this.hasError ? 'error-border' : 'check-border'\"\n>\n <div [ngClass]=\"this.getCssForState()\"></div>\n <div class=\"header-label\">\n <mat-icon class=\"material-icons-outlined\">\n {{ this.selected && !this.closed ? 'keyboard_arrow_down' : 'keyboard_arrow_right' }}\n </mat-icon>\n </div>\n <div *ngIf=\"this.completed || this.hasError\" class=\"header-label\">\n <mat-icon [ngClass]=\"this.completed ? 'green-check' : 'red-error'\">\n {{ getIcon() }}\n </mat-icon>\n </div>\n <span *ngIf=\"!this.hasError && !this.completed\" class=\"header-label\">{{ this.index + 1 + '.' }}</span>\n <div class=\"header-label\">{{ this.label }}</div>\n</div>\n", styles: [".header{overflow:hidden;outline:var(--warn-color);cursor:pointer;box-sizing:content-box;-webkit-tap-highlight-color:transparent;border:1px solid lightgrey;width:100%;height:62px}.header-label{align-items:center;display:flex}.step-state-complete{width:5px;background:green}.step-state-error{width:5px;background:var(--warn-color)}.step-state-neutral{width:5px;background:lightgrey}.green-check{color:green}.red-error{color:var(--warn-color)}.check-border{border-color:#d3d3d3}.error-border{border-color:var(--warn-color)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i4.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: StepHeaderComponent, decorators: [{
52
+ type: Component,
53
+ args: [{ selector: 'mad-step-header', inputs: ['color'], host: {
54
+ class: 'mad-step-header',
55
+ role: 'tab',
56
+ }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"header\"\n fxLayout=\"row\"\n fxLayoutGap=\"1em\"\n [style.background]=\"this.selected && !this.closed ? '#d8e2e9' : '#ffffff'\"\n [ngClass]=\"this.hasError ? 'error-border' : 'check-border'\"\n>\n <div [ngClass]=\"this.getCssForState()\"></div>\n <div class=\"header-label\">\n <mat-icon class=\"material-icons-outlined\">\n {{ this.selected && !this.closed ? 'keyboard_arrow_down' : 'keyboard_arrow_right' }}\n </mat-icon>\n </div>\n <div *ngIf=\"this.completed || this.hasError\" class=\"header-label\">\n <mat-icon [ngClass]=\"this.completed ? 'green-check' : 'red-error'\">\n {{ getIcon() }}\n </mat-icon>\n </div>\n <span *ngIf=\"!this.hasError && !this.completed\" class=\"header-label\">{{ this.index + 1 + '.' }}</span>\n <div class=\"header-label\">{{ this.label }}</div>\n</div>\n", styles: [".header{overflow:hidden;outline:var(--warn-color);cursor:pointer;box-sizing:content-box;-webkit-tap-highlight-color:transparent;border:1px solid lightgrey;width:100%;height:62px}.header-label{align-items:center;display:flex}.step-state-complete{width:5px;background:green}.step-state-error{width:5px;background:var(--warn-color)}.step-state-neutral{width:5px;background:lightgrey}.green-check{color:green}.red-error{color:var(--warn-color)}.check-border{border-color:#d3d3d3}.error-border{border-color:var(--warn-color)}\n"] }]
57
+ }], ctorParameters: function () { return [{ type: i1.FocusMonitor }, { type: i0.ElementRef }]; }, propDecorators: { index: [{
58
+ type: Input
59
+ }], label: [{
60
+ type: Input
61
+ }], state: [{
62
+ type: Input
63
+ }], errorMessage: [{
64
+ type: Input
65
+ }], selected: [{
66
+ type: Input
67
+ }], active: [{
68
+ type: Input
69
+ }], optional: [{
70
+ type: Input
71
+ }], hasError: [{
72
+ type: Input
73
+ }], completed: [{
74
+ type: Input
75
+ }], closed: [{
76
+ type: Input
77
+ }] } });
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvc3RlcHBlci9zdGVwLWhlYWRlci9zdGVwLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9zdGVwcGVyL3N0ZXAtaGVhZGVyL3N0ZXAtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFhLE1BQU0sc0JBQXNCLENBQUM7QUFDNUUsT0FBTyxFQUFpQix1QkFBdUIsRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFhLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFlbkksTUFBTSxPQUFPLG1CQUFvQixTQUFRLGFBQWE7SUF1QnBELFlBQW9CLGFBQTJCLEVBQUUsV0FBb0M7UUFDbkYsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBREQsa0JBQWEsR0FBYixhQUFhLENBQWM7SUFFL0MsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCwrQkFBK0I7SUFDL0IsS0FBSyxDQUFDLE1BQW9CLEVBQUUsT0FBc0I7UUFDaEQsSUFBSSxNQUFNLEVBQUU7WUFDVixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztTQUNoRTthQUFNO1lBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQy9DO0lBQ0gsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3pFLE9BQU8sb0JBQW9CLENBQUMsQ0FBQyw0QkFBNEI7U0FDMUQ7YUFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDekIsT0FBTyxxQkFBcUIsQ0FBQztTQUM5QjthQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN4QixPQUFPLGtCQUFrQixDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsT0FBTyxzQkFBc0IsQ0FBQztTQUMvQjthQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN4QixPQUFPLGVBQWUsQ0FBQztTQUN4QjtRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQzs7Z0hBN0RVLG1CQUFtQjtvR0FBbkIsbUJBQW1CLGtZQ2hCaEMsMDBCQXFCQTsyRkRMYSxtQkFBbUI7a0JBWi9CLFNBQVM7K0JBQ0UsaUJBQWlCLFVBR25CLENBQUMsT0FBTyxDQUFDLFFBQ1g7d0JBQ0osS0FBSyxFQUFFLGlCQUFpQjt3QkFDeEIsSUFBSSxFQUFFLEtBQUs7cUJBQ1osaUJBQ2MsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTs0SEFJL0MsS0FBSztzQkFESixLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFHRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtTdGVwSGVhZGVyLCBTVEVQX1NUQVRFLCBTdGVwU3RhdGUgfSBmcm9tICdAYW5ndWxhci9jZGsvc3RlcHBlcic7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25EZXN0cm95LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9jdXNNb25pdG9yLCBGb2N1c09yaWdpbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWFkLXN0ZXAtaGVhZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N0ZXAtaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3RlcC1oZWFkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgaW5wdXRzOiBbJ2NvbG9yJ10sXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ21hZC1zdGVwLWhlYWRlcicsXG4gICAgcm9sZTogJ3RhYicsXG4gIH0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTdGVwSGVhZGVyQ29tcG9uZW50IGV4dGVuZHMgQ2RrU3RlcEhlYWRlciBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpXG4gIGluZGV4OiBudW1iZXI7XG5cbiAgQElucHV0KClcbiAgbGFiZWw6IHN0cmluZztcblxuICBASW5wdXQoKSBzdGF0ZTogU3RlcFN0YXRlO1xuXG4gIEBJbnB1dCgpIGVycm9yTWVzc2FnZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIHNlbGVjdGVkOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIGFjdGl2ZTogYm9vbGVhbjtcblxuICBASW5wdXQoKSBvcHRpb25hbDogYm9vbGVhbjtcblxuICBASW5wdXQoKSBoYXNFcnJvcjogYm9vbGVhbjtcblxuICBASW5wdXQoKSBjb21wbGV0ZWQ6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgY2xvc2VkOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2ZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yLCBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHtcbiAgICBzdXBlcihfZWxlbWVudFJlZik7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fZm9jdXNNb25pdG9yLm1vbml0b3IodGhpcy5fZWxlbWVudFJlZiwgdHJ1ZSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5fZWxlbWVudFJlZik7XG4gIH1cblxuICAvKiogRm9jdXNlcyB0aGUgc3RlcCBoZWFkZXIuICovXG4gIGZvY3VzKG9yaWdpbj86IEZvY3VzT3JpZ2luLCBvcHRpb25zPzogRm9jdXNPcHRpb25zKTogdm9pZCB7XG4gICAgaWYgKG9yaWdpbikge1xuICAgICAgdGhpcy5fZm9jdXNNb25pdG9yLmZvY3VzVmlhKHRoaXMuX2VsZW1lbnRSZWYsIG9yaWdpbiwgb3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cyhvcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBnZXRDc3NGb3JTdGF0ZSgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnN0YXRlID09PSBTVEVQX1NUQVRFLk5VTUJFUiAmJiAhdGhpcy5jb21wbGV0ZWQgJiYgIXRoaXMuaGFzRXJyb3IpIHtcbiAgICAgIHJldHVybiAnc3RlcC1zdGF0ZS1uZXV0cmFsJzsgLy9pbml0aWFsZSBzdGF0ZSBpcyAnbnVtYmVyJ1xuICAgIH0gZWxzZSBpZiAodGhpcy5jb21wbGV0ZWQpIHtcbiAgICAgIHJldHVybiAnc3RlcC1zdGF0ZS1jb21wbGV0ZSc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmhhc0Vycm9yKSB7XG4gICAgICByZXR1cm4gJ3N0ZXAtc3RhdGUtZXJyb3InO1xuICAgIH1cbiAgfVxuXG4gIGdldEljb24oKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5jb21wbGV0ZWQpIHtcbiAgICAgIHJldHVybiAnY2hlY2tfY2lyY2xlX291dGxpbmUnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5oYXNFcnJvcikge1xuICAgICAgcmV0dXJuICdlcnJvcl9vdXRsaW5lJztcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiaGVhZGVyXCJcbiAgZnhMYXlvdXQ9XCJyb3dcIlxuICBmeExheW91dEdhcD1cIjFlbVwiXG4gIFtzdHlsZS5iYWNrZ3JvdW5kXT1cInRoaXMuc2VsZWN0ZWQgJiYgIXRoaXMuY2xvc2VkID8gJyNkOGUyZTknIDogJyNmZmZmZmYnXCJcbiAgW25nQ2xhc3NdPVwidGhpcy5oYXNFcnJvciA/ICdlcnJvci1ib3JkZXInIDogJ2NoZWNrLWJvcmRlcidcIlxuPlxuICA8ZGl2IFtuZ0NsYXNzXT1cInRoaXMuZ2V0Q3NzRm9yU3RhdGUoKVwiPjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWxhYmVsXCI+XG4gICAgPG1hdC1pY29uIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWRcIj5cbiAgICAgIHt7IHRoaXMuc2VsZWN0ZWQgJiYgIXRoaXMuY2xvc2VkID8gJ2tleWJvYXJkX2Fycm93X2Rvd24nIDogJ2tleWJvYXJkX2Fycm93X3JpZ2h0JyB9fVxuICAgIDwvbWF0LWljb24+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwidGhpcy5jb21wbGV0ZWQgfHwgdGhpcy5oYXNFcnJvclwiIGNsYXNzPVwiaGVhZGVyLWxhYmVsXCI+XG4gICAgPG1hdC1pY29uIFtuZ0NsYXNzXT1cInRoaXMuY29tcGxldGVkID8gJ2dyZWVuLWNoZWNrJyA6ICdyZWQtZXJyb3InXCI+XG4gICAgICB7eyBnZXRJY29uKCkgfX1cbiAgICA8L21hdC1pY29uPlxuICA8L2Rpdj5cbiAgPHNwYW4gKm5nSWY9XCIhdGhpcy5oYXNFcnJvciAmJiAhdGhpcy5jb21wbGV0ZWRcIiBjbGFzcz1cImhlYWRlci1sYWJlbFwiPnt7IHRoaXMuaW5kZXggKyAxICsgJy4nIH19PC9zcGFuPlxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWxhYmVsXCI+e3sgdGhpcy5sYWJlbCB9fTwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,160 @@
1
+ import { CdkStep, CdkStepper, STEP_STATE } from '@angular/cdk/stepper';
2
+ import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, forwardRef, Inject, Input, Optional, Output, QueryList, ViewChildren, ViewEncapsulation, } from '@angular/core';
3
+ import { Subject, Subscription } from 'rxjs';
4
+ import { distinctUntilChanged, map, startWith, switchMap, takeUntil, tap } from 'rxjs/operators';
5
+ import { StepHeaderComponent } from './step-header/step-header.component';
6
+ import { madStepperAnimations } from './mad-stepper-animation';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/common";
9
+ import * as i2 from "@angular/material/button";
10
+ import * as i3 from "@angular/flex-layout";
11
+ import * as i4 from "@angular/cdk/bidi";
12
+ import * as i5 from "./step-header/step-header.component";
13
+ export class StepComponent extends CdkStep {
14
+ constructor(stepper, _viewContainerRef) {
15
+ super(stepper);
16
+ this.stepper = stepper;
17
+ this._viewContainerRef = _viewContainerRef;
18
+ /** Action event for the next button. If not set the StepComponent will handle the step navigation */
19
+ this.onNext = new EventEmitter();
20
+ /** Action event for the done button. If not set the StepComponent will handle the step navigation */
21
+ this.onDone = new EventEmitter();
22
+ /*** Action event when the header is clicked. If not set the StepComponent will handle the step navigation*/
23
+ this.onHeaderClick = new EventEmitter();
24
+ this.stepClosed = false;
25
+ this._isSelected = Subscription.EMPTY;
26
+ }
27
+ ngAfterContentInit() {
28
+ this._isSelected = this._stepper.steps.changes
29
+ .pipe(switchMap(() => this._stepper.selectionChange.pipe(map(event => event.selectedStep === this), tap(() => (this.stepClosed = false)), startWith(this._stepper.selected === this))))
30
+ .subscribe();
31
+ }
32
+ ngOnDestroy() {
33
+ this._isSelected.unsubscribe();
34
+ }
35
+ next(markFormAsTouched = true) {
36
+ this.stepValidation(markFormAsTouched);
37
+ if (this.onNext.observers.length <= 0) {
38
+ this.stepper.next();
39
+ }
40
+ this.onNext.emit();
41
+ }
42
+ selectAndMarkAsTouched(index) {
43
+ //Mark current selected step as touched before selecting to display errors in the from
44
+ this._stepper.selected?.stepControl?.markAllAsTouched();
45
+ this.stepClosed = false;
46
+ if (this.onHeaderClick.observers.length <= 0) {
47
+ this.select();
48
+ }
49
+ this.onHeaderClick.emit(index);
50
+ }
51
+ completeLast() {
52
+ this.stepValidation(true);
53
+ this.stepClosed = true;
54
+ if (this.onDone.observers.length <= 0) {
55
+ this.stepper.next();
56
+ }
57
+ this.onDone.emit();
58
+ }
59
+ resetValidations() {
60
+ this.hasError = false;
61
+ this.completed = true;
62
+ this.state = STEP_STATE.DONE;
63
+ }
64
+ stepValidation(markFormAsTouched) {
65
+ if (markFormAsTouched) {
66
+ this.stepControl?.markAllAsTouched();
67
+ }
68
+ if (this.stepControl?.valid) {
69
+ this.hasError = false;
70
+ this.completed = true;
71
+ this.state = STEP_STATE.DONE;
72
+ }
73
+ else {
74
+ this.completed = false;
75
+ this.hasError = true;
76
+ this.state = STEP_STATE.ERROR;
77
+ }
78
+ }
79
+ }
80
+ StepComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: StepComponent, deps: [{ token: forwardRef(() => StepperComponent) }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
81
+ StepComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: StepComponent, selector: "mad-step", outputs: { onNext: "onNext", onDone: "onDone", onHeaderClick: "onHeaderClick" }, providers: [{ provide: CdkStep, useExisting: StepComponent }], usesInheritance: true, ngImport: i0, template: "<ng-template let-last=\"last\" let-nextBtnLbl=\"nextBtnLbl\" let-doneBtnLbl=\"doneBtnLbl\">\n <div class=\"step-container\" fxLayout=\"column\">\n <div class=\"step-content\">\n <ng-content></ng-content>\n </div>\n <div class=\"step-buttons\">\n <div *ngIf=\"!last\">\n <button mat-stroked-button color=\"primary\" (click)=\"next()\">{{nextBtnLbl}}</button>\n </div>\n <div *ngIf=\"last\">\n <button mat-stroked-button color=\"primary\" (click)=\"completeLast()\">{{doneBtnLbl}}</button>\n </div>\n </div>\n </div>\n</ng-template>\n", styles: [".stepper-vertical{display:block}.mat-vertical-stepper-header{display:flex;align-items:center;border:none!important;height:10px}.mat-vertical-stepper-header .mat-step-icon{margin-right:12px}.vertical-content-container{border:none}[dir=rtl] .vertical-content-container{margin-left:0;margin-right:36px}.vertical-stepper-content{overflow:hidden;outline:0}.vertical-content{padding:0 24px}.step-container{border-left:1px solid lightgrey;border-right:1px solid lightgrey;border-bottom:1px solid lightgrey}.step-content,.step-buttons{padding:2em}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
82
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: StepComponent, decorators: [{
83
+ type: Component,
84
+ args: [{ selector: 'mad-step', providers: [{ provide: CdkStep, useExisting: StepComponent }], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template let-last=\"last\" let-nextBtnLbl=\"nextBtnLbl\" let-doneBtnLbl=\"doneBtnLbl\">\n <div class=\"step-container\" fxLayout=\"column\">\n <div class=\"step-content\">\n <ng-content></ng-content>\n </div>\n <div class=\"step-buttons\">\n <div *ngIf=\"!last\">\n <button mat-stroked-button color=\"primary\" (click)=\"next()\">{{nextBtnLbl}}</button>\n </div>\n <div *ngIf=\"last\">\n <button mat-stroked-button color=\"primary\" (click)=\"completeLast()\">{{doneBtnLbl}}</button>\n </div>\n </div>\n </div>\n</ng-template>\n", styles: [".stepper-vertical{display:block}.mat-vertical-stepper-header{display:flex;align-items:center;border:none!important;height:10px}.mat-vertical-stepper-header .mat-step-icon{margin-right:12px}.vertical-content-container{border:none}[dir=rtl] .vertical-content-container{margin-left:0;margin-right:36px}.vertical-stepper-content{overflow:hidden;outline:0}.vertical-content{padding:0 24px}.step-container{border-left:1px solid lightgrey;border-right:1px solid lightgrey;border-bottom:1px solid lightgrey}.step-content,.step-buttons{padding:2em}\n"] }]
85
+ }], ctorParameters: function () { return [{ type: StepperComponent, decorators: [{
86
+ type: Inject,
87
+ args: [forwardRef(() => StepperComponent)]
88
+ }] }, { type: i0.ViewContainerRef }]; }, propDecorators: { onNext: [{
89
+ type: Output
90
+ }], onDone: [{
91
+ type: Output
92
+ }], onHeaderClick: [{
93
+ type: Output
94
+ }] } });
95
+ export class StepperComponent extends CdkStepper {
96
+ constructor(dir, changeDetectorRef, elementRef) {
97
+ super(dir, changeDetectorRef, elementRef);
98
+ /** Event emitted when the current step is done transitioning in. */
99
+ this.animationDone = new EventEmitter();
100
+ /** Steps that belong to the current stepper, excluding ones from nested steppers. */
101
+ this.steps = new QueryList();
102
+ this._animationDone = new Subject();
103
+ this.orientation = 'vertical';
104
+ }
105
+ ngOnInit() {
106
+ // Only linear stepper implementation is supported
107
+ super.linear = true;
108
+ }
109
+ ngAfterContentInit() {
110
+ super.ngAfterContentInit();
111
+ this.steps.changes.pipe(takeUntil(this._destroyed)).subscribe(() => {
112
+ this._stateChanged();
113
+ });
114
+ this._animationDone
115
+ .pipe(distinctUntilChanged((x, y) => x.fromState === y.fromState && x.toState === y.toState), takeUntil(this._destroyed))
116
+ .subscribe(event => {
117
+ if (event.toState === 'current') {
118
+ this.animationDone.emit();
119
+ }
120
+ });
121
+ }
122
+ /**
123
+ * Method patched to enable the closing of the last step.
124
+ */
125
+ _getAnimationDirection(index) {
126
+ const closeLastStep = this.selectedIndex === this.steps.length - 1 && this._steps.last?.completed && this._steps.last?.stepClosed;
127
+ if (closeLastStep) {
128
+ return 'next';
129
+ }
130
+ return super._getAnimationDirection(index);
131
+ }
132
+ _stepIsNavigable(index, step) {
133
+ return step.completed || this.selectedIndex === index || !this.linear;
134
+ }
135
+ }
136
+ StepperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: StepperComponent, deps: [{ token: i4.Directionality, optional: true }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
137
+ StepperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: StepperComponent, selector: "mad-stepper", inputs: { nextButtonLabel: "nextButtonLabel", doneButtonLabel: "doneButtonLabel" }, outputs: { animationDone: "animationDone" }, host: { attributes: { "role": "tablist" }, properties: { "class.stepper-vertical": "true", "attr.aria-orientation": "\"vertical\"" } }, providers: [{ provide: CdkStepper, useExisting: StepperComponent }], queries: [{ propertyName: "_steps", predicate: StepComponent, descendants: true }], viewQueries: [{ propertyName: "_stepHeader", predicate: StepHeaderComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<!-- Vertical stepper -->\n<ng-container>\n <div *ngFor=\"let step of steps; let i = index; let isLast = last; let isFirst = first\">\n <ng-container\n [ngTemplateOutlet]=\"stepTemplate\"\n [ngTemplateOutletContext]=\"{step: step, i: i}\"></ng-container>\n <div class=\"vertical-content-container\" [class.mat-stepper-vertical-line]=\"!isLast\">\n <div class=\"vertical-stepper-content\" role=\"tabpanel\"\n [@stepTransition]=\"_getAnimationDirection(i)\"\n (@stepTransition.done)=\"_animationDone.next($event)\"\n [id]=\"_getStepContentId(i)\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [attr.aria-expanded]=\"selectedIndex === i\">\n <div class=\"vertical-content\">\n <ng-container [ngTemplateOutlet]=\"step.content\"\n [ngTemplateOutletContext]=\"{step: step, i: i, last: isLast, first: isFirst, nextBtnLbl: this.nextButtonLabel, doneBtnLbl: this.doneButtonLabel}\"></ng-container>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n\n<ng-template let-step=\"step\" let-i=\"i\" #stepTemplate>\n <mad-step-header\n class=\"mat-vertical-stepper-header\"\n (click)=\"step.selectAndMarkAsTouched(i)\"\n (keydown)=\"_onKeydown($event)\"\n [tabIndex]=\"_getFocusIndex() === i ? 0 : -1\"\n [id]=\"_getStepLabelId(i)\"\n [attr.aria-posinset]=\"i + 1\"\n [attr.aria-setsize]=\"steps.length\"\n [attr.aria-controls]=\"_getStepContentId(i)\"\n [attr.aria-selected]=\"selectedIndex == i\"\n [attr.aria-label]=\"step.ariaLabel || null\"\n [attr.aria-labelledby]=\"(!step.ariaLabel && step.ariaLabelledby) ? step.ariaLabelledby : null\"\n [attr.aria-disabled]=\"_stepIsNavigable(i, step) ? null : true\"\n [index]=\"i\"\n [completed]=\"step.completed\"\n [hasError]=\"step.hasError\"\n [state]=\"_getIndicatorType(i, step.state)\"\n [label]=\"step.stepLabel || step.label\"\n [selected]=\"selectedIndex === i\"\n [active]=\"_stepIsNavigable(i, step)\"\n [optional]=\"step.optional\"\n [closed]=\"step.stepClosed\"\n [errorMessage]=\"step.errorMessage\"></mad-step-header>\n</ng-template>\n", styles: [".stepper-vertical{display:block}.mat-vertical-stepper-header{display:flex;align-items:center;border:none!important;height:10px}.mat-vertical-stepper-header .mat-step-icon{margin-right:12px}.vertical-content-container{border:none}[dir=rtl] .vertical-content-container{margin-left:0;margin-right:36px}.vertical-stepper-content{overflow:hidden;outline:0}.vertical-content{padding:0 24px}.step-container{border-left:1px solid lightgrey;border-right:1px solid lightgrey;border-bottom:1px solid lightgrey}.step-content,.step-buttons{padding:2em}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.StepHeaderComponent, selector: "mad-step-header", inputs: ["color", "index", "label", "state", "errorMessage", "selected", "active", "optional", "hasError", "completed", "closed"] }], animations: [madStepperAnimations.verticalStepTransition], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
138
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: StepperComponent, decorators: [{
139
+ type: Component,
140
+ args: [{ selector: 'mad-stepper', host: {
141
+ '[class.stepper-vertical]': 'true',
142
+ '[attr.aria-orientation]': '"vertical"',
143
+ role: 'tablist',
144
+ }, animations: [madStepperAnimations.verticalStepTransition], providers: [{ provide: CdkStepper, useExisting: StepperComponent }], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- Vertical stepper -->\n<ng-container>\n <div *ngFor=\"let step of steps; let i = index; let isLast = last; let isFirst = first\">\n <ng-container\n [ngTemplateOutlet]=\"stepTemplate\"\n [ngTemplateOutletContext]=\"{step: step, i: i}\"></ng-container>\n <div class=\"vertical-content-container\" [class.mat-stepper-vertical-line]=\"!isLast\">\n <div class=\"vertical-stepper-content\" role=\"tabpanel\"\n [@stepTransition]=\"_getAnimationDirection(i)\"\n (@stepTransition.done)=\"_animationDone.next($event)\"\n [id]=\"_getStepContentId(i)\"\n [attr.aria-labelledby]=\"_getStepLabelId(i)\"\n [attr.aria-expanded]=\"selectedIndex === i\">\n <div class=\"vertical-content\">\n <ng-container [ngTemplateOutlet]=\"step.content\"\n [ngTemplateOutletContext]=\"{step: step, i: i, last: isLast, first: isFirst, nextBtnLbl: this.nextButtonLabel, doneBtnLbl: this.doneButtonLabel}\"></ng-container>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n\n<ng-template let-step=\"step\" let-i=\"i\" #stepTemplate>\n <mad-step-header\n class=\"mat-vertical-stepper-header\"\n (click)=\"step.selectAndMarkAsTouched(i)\"\n (keydown)=\"_onKeydown($event)\"\n [tabIndex]=\"_getFocusIndex() === i ? 0 : -1\"\n [id]=\"_getStepLabelId(i)\"\n [attr.aria-posinset]=\"i + 1\"\n [attr.aria-setsize]=\"steps.length\"\n [attr.aria-controls]=\"_getStepContentId(i)\"\n [attr.aria-selected]=\"selectedIndex == i\"\n [attr.aria-label]=\"step.ariaLabel || null\"\n [attr.aria-labelledby]=\"(!step.ariaLabel && step.ariaLabelledby) ? step.ariaLabelledby : null\"\n [attr.aria-disabled]=\"_stepIsNavigable(i, step) ? null : true\"\n [index]=\"i\"\n [completed]=\"step.completed\"\n [hasError]=\"step.hasError\"\n [state]=\"_getIndicatorType(i, step.state)\"\n [label]=\"step.stepLabel || step.label\"\n [selected]=\"selectedIndex === i\"\n [active]=\"_stepIsNavigable(i, step)\"\n [optional]=\"step.optional\"\n [closed]=\"step.stepClosed\"\n [errorMessage]=\"step.errorMessage\"></mad-step-header>\n</ng-template>\n", styles: [".stepper-vertical{display:block}.mat-vertical-stepper-header{display:flex;align-items:center;border:none!important;height:10px}.mat-vertical-stepper-header .mat-step-icon{margin-right:12px}.vertical-content-container{border:none}[dir=rtl] .vertical-content-container{margin-left:0;margin-right:36px}.vertical-stepper-content{overflow:hidden;outline:0}.vertical-content{padding:0 24px}.step-container{border-left:1px solid lightgrey;border-right:1px solid lightgrey;border-bottom:1px solid lightgrey}.step-content,.step-buttons{padding:2em}\n"] }]
145
+ }], ctorParameters: function () { return [{ type: i4.Directionality, decorators: [{
146
+ type: Optional
147
+ }] }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { animationDone: [{
148
+ type: Output
149
+ }], nextButtonLabel: [{
150
+ type: Input
151
+ }], doneButtonLabel: [{
152
+ type: Input
153
+ }], _stepHeader: [{
154
+ type: ViewChildren,
155
+ args: [StepHeaderComponent]
156
+ }], _steps: [{
157
+ type: ContentChildren,
158
+ args: [StepComponent, { descendants: true }]
159
+ }] } });
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9zdGVwcGVyL3N0ZXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvc3RlcHBlci9zdGVwLmNvbXBvbmVudC5odG1sIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvc3RlcHBlci9zdGVwcGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBMkIsTUFBTSxzQkFBc0IsQ0FBQztBQUUvRixPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxlQUFlLEVBRWYsWUFBWSxFQUNaLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBQ04sU0FBUyxFQUNULFlBQVksRUFFWixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFDLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7OztBQVU3RCxNQUFNLE9BQU8sYUFBYyxTQUFRLE9BQU87SUFpQnhDLFlBQWdFLE9BQXlCLEVBQVUsaUJBQW1DO1FBQ3BJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUQrQyxZQUFPLEdB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QU8sTUFBTSxDQUFDO1NBQ2Y7UUFDRCxPQUFPLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBYSxFQUFFLElBQW1CO1FBQ2pELE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDeEUsQ0FBQzs7NkdBbEVVLGdCQUFnQjtpR0FBaEIsZ0JBQWdCLCtTQUpoQixDQUFDLEVBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUMsQ0FBQyxpREFpQmhELGFBQWEsZ0ZBSGhCLG1CQUFtQix1RUV4Sm5DLDY2RUErQ0Esa2tDRnlGYyxDQUFDLG9CQUFvQixDQUFDLHNCQUFzQixDQUFDOzJGQU05QyxnQkFBZ0I7a0JBZjVCLFNBQVM7K0JBQ0UsYUFBYSxRQUdqQjt3QkFDSiwwQkFBMEIsRUFBRSxNQUFNO3dCQUNsQyx5QkFBeUIsRUFBRSxZQUFZO3dCQUN2QyxJQUFJLEVBQUUsU0FBUztxQkFDaEIsY0FDVyxDQUFDLG9CQUFvQixDQUFDLHNCQUFzQixDQUFDLGFBRTlDLENBQUMsRUFBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsa0JBQWtCLEVBQUMsQ0FBQyxpQkFDbEQsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTs7MEJBdUI1QyxRQUFRO3FHQW5CUSxhQUFhO3NCQUEvQixNQUFNO2dCQUdQLGVBQWU7c0JBRGQsS0FBSztnQkFJTixlQUFlO3NCQURkLEtBQUs7Z0JBRzZCLFdBQVc7c0JBQTdDLFlBQVk7dUJBQUMsbUJBQW1CO2dCQUdvQixNQUFNO3NCQUExRCxlQUFlO3VCQUFDLGFBQWEsRUFBRSxFQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGlvbmFsaXR5fSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XG5pbXBvcnQge0Nka1N0ZXAsIENka1N0ZXBwZXIsIFNURVBfU1RBVEUsIFN0ZXBDb250ZW50UG9zaXRpb25TdGF0ZX0gZnJvbSAnQGFuZ3VsYXIvY2RrL3N0ZXBwZXInO1xuaW1wb3J0IHtBbmltYXRpb25FdmVudH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZHJlbixcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFrZVVudGlsLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7U3RlcEhlYWRlckNvbXBvbmVudH0gZnJvbSAnLi9zdGVwLWhlYWRlci9zdGVwLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHttYWRTdGVwcGVyQW5pbWF0aW9uc30gZnJvbSAnLi9tYWQtc3RlcHBlci1hbmltYXRpb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYWQtc3RlcCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdGVwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc3RlcHBlci5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFt7cHJvdmlkZTogQ2RrU3RlcCwgdXNlRXhpc3Rpbmc6IFN0ZXBDb21wb25lbnR9XSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFN0ZXBDb21wb25lbnQgZXh0ZW5kcyBDZGtTdGVwIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcbiAgLyoqIEFjdGlvbiBldmVudCBmb3IgdGhlIG5leHQgYnV0dG9uLiBJZiBub3Qgc2V0IHRoZSBTdGVwQ29tcG9uZW50IHdpbGwgaGFuZGxlIHRoZSBzdGVwIG5hdmlnYXRpb24gKi9cbiAgQE91dHB1dCgpXG4gIG9uTmV4dCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIC8qKiBBY3Rpb24gZXZlbnQgZm9yIHRoZSBkb25lIGJ1dHRvbi4gSWYgbm90IHNldCB0aGUgU3RlcENvbXBvbmVudCB3aWxsIGhhbmRsZSB0aGUgc3RlcCBuYXZpZ2F0aW9uICAqL1xuICBAT3V0cHV0KClcbiAgb25Eb25lID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgLyoqKiBBY3Rpb24gZXZlbnQgd2hlbiB0aGUgaGVhZGVyIGlzIGNsaWNrZWQuIElmIG5vdCBzZXQgdGhlIFN0ZXBDb21wb25lbnQgd2lsbCBoYW5kbGUgdGhlIHN0ZXAgbmF2aWdhdGlvbiovXG4gIEBPdXRwdXQoKVxuICBvbkhlYWRlckNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgc3RlcENsb3NlZCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2lzU2VsZWN0ZWQgPSBTdWJzY3JpcHRpb24uRU1QVFk7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChmb3J3YXJkUmVmKCgpID0+IFN0ZXBwZXJDb21wb25lbnQpKSBwcml2YXRlIHN0ZXBwZXI6IFN0ZXBwZXJDb21wb25lbnQsIHByaXZhdGUgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYpIHtcbiAgICBzdXBlcihzdGVwcGVyKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICB0aGlzLl9pc1NlbGVjdGVkID0gdGhpcy5fc3RlcHBlci5zdGVwcy5jaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgICAgdGhpcy5fc3RlcHBlci5zZWxlY3Rpb25DaGFuZ2UucGlwZShcbiAgICAgICAgICAgIG1hcChldmVudCA9PiBldmVudC5zZWxlY3RlZFN0ZXAgPT09IHRoaXMpLFxuICAgICAgICAgICAgdGFwKCgpID0+ICh0aGlzLnN0ZXBDbG9zZWQgPSBmYWxzZSkpLFxuICAgICAgICAgICAgc3RhcnRXaXRoKHRoaXMuX3N0ZXBwZXIuc2VsZWN0ZWQgPT09IHRoaXMpLFxuICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9pc1NlbGVjdGVkLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBuZXh0KG1hcmtGb3JtQXNUb3VjaGVkID0gdHJ1ZSk6IHZvaWQge1xuICAgIHRoaXMuc3RlcFZhbGlkYXRpb24obWFya0Zvcm1Bc1RvdWNoZWQpO1xuXG4gICAgaWYgKHRoaXMub25OZXh0Lm9ic2VydmVycy5sZW5ndGggPD0gMCkge1xuICAgICAgdGhpcy5zdGVwcGVyLm5leHQoKTtcbiAgICB9XG4gICAgdGhpcy5vbk5leHQuZW1pdCgpO1xuICB9XG5cbiAgc2VsZWN0QW5kTWFya0FzVG91Y2hlZChpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgLy9NYXJrIGN1cnJlbnQgc2VsZWN0ZWQgc3RlcCBhcyB0b3VjaGVkIGJlZm9yZSBzZWxlY3RpbmcgdG8gZGlzcGxheSBlcnJvcnMgaW4gdGhlIGZyb21cbiAgICB0aGlzLl9zdGVwcGVyLnNlbGVjdGVkPy5zdGVwQ29udHJvbD8ubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgIHRoaXMuc3RlcENsb3NlZCA9IGZhbHNlO1xuICAgIGlmICh0aGlzLm9uSGVhZGVyQ2xpY2sub2JzZXJ2ZXJzLmxlbmd0aCA8PSAwKSB7XG4gICAgICB0aGlzLnNlbGVjdCgpO1xuICAgIH1cbiAgICB0aGlzLm9uSGVhZGVyQ2xpY2suZW1pdChpbmRleCk7XG4gIH1cblxuICBjb21wbGV0ZUxhc3QoKTogdm9pZCB7XG4gICAgdGhpcy5zdGVwVmFsaWRhdGlvbih0cnVlKTtcbiAgICB0aGlzLnN0ZXBDbG9zZWQgPSB0cnVlO1xuXG4gICAgaWYgKHRoaXMub25Eb25lLm9ic2VydmVycy5sZW5ndGggPD0gMCkge1xuICAgICAgdGhpcy5zdGVwcGVyLm5leHQoKTtcbiAgICB9XG5cbiAgICB0aGlzLm9uRG9uZS5lbWl0KCk7XG4gIH1cblxuICByZXNldFZhbGlkYXRpb25zKCk6IHZvaWQge1xuICAgIHRoaXMuaGFzRXJyb3IgPSBmYWxzZTtcbiAgICB0aGlzLmNvbXBsZXRlZCA9IHRydWU7XG4gICAgdGhpcy5zdGF0ZSA9IFNURVBfU1RBVEUuRE9ORTtcbiAgfVxuXG4gIHByaXZhdGUgc3RlcFZhbGlkYXRpb24obWFya0Zvcm1Bc1RvdWNoZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAobWFya0Zvcm1Bc1RvdWNoZWQpIHtcbiAgICAgIHRoaXMuc3RlcENvbnRyb2w/Lm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc3RlcENvbnRyb2w/LnZhbGlkKSB7XG4gICAgICB0aGlzLmhhc0Vycm9yID0gZmFsc2U7XG4gICAgICB0aGlzLmNvbXBsZXRlZCA9IHRydWU7XG4gICAgICB0aGlzLnN0YXRlID0gU1RFUF9TVEFURS5ET05FO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvbXBsZXRlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5oYXNFcnJvciA9IHRydWU7XG4gICAgICB0aGlzLnN0YXRlID0gU1RFUF9TVEFURS5FUlJPUjtcbiAgICB9XG4gIH1cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWFkLXN0ZXBwZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vc3RlcHBlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N0ZXBwZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgaG9zdDoge1xuICAgICdbY2xhc3Muc3RlcHBlci12ZXJ0aWNhbF0nOiAndHJ1ZScsXG4gICAgJ1thdHRyLmFyaWEtb3JpZW50YXRpb25dJzogJ1widmVydGljYWxcIicsXG4gICAgcm9sZTogJ3RhYmxpc3QnLFxuICB9LFxuICBhbmltYXRpb25zOiBbbWFkU3RlcHBlckFuaW1hdGlvbnMudmVydGljYWxTdGVwVHJhbnNpdGlvbl0sXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdXNlLWJlZm9yZS1kZWZpbmVcbiAgcHJvdmlkZXJzOiBbe3Byb3ZpZGU6IENka1N0ZXBwZXIsIHVzZUV4aXN0aW5nOiBTdGVwcGVyQ29tcG9uZW50fV0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTdGVwcGVyQ29tcG9uZW50IGV4dGVuZHMgQ2RrU3RlcHBlciBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGN1cnJlbnQgc3RlcCBpcyBkb25lIHRyYW5zaXRpb25pbmcgaW4uICovXG4gIEBPdXRwdXQoKSByZWFkb25seSBhbmltYXRpb25Eb25lOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQElucHV0KClcbiAgbmV4dEJ1dHRvbkxhYmVsOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgZG9uZUJ1dHRvbkxhYmVsOiBzdHJpbmc7XG4gIC8qKiBTdGVwIGhlYWRlcnMgb2YgYWxsIHN0ZXBzIGluc2lkZSB0aGUgc3RlcHBlciAqL1xuICBAVmlld0NoaWxkcmVuKFN0ZXBIZWFkZXJDb21wb25lbnQpIF9zdGVwSGVhZGVyOiBRdWVyeUxpc3Q8U3RlcEhlYWRlckNvbXBvbmVudD47XG5cbiAgLyoqIFN0ZXBzIGluc2lkZSB0aGUgU3RlcHBlciAqL1xuICBAQ29udGVudENoaWxkcmVuKFN0ZXBDb21wb25lbnQsIHtkZXNjZW5kYW50czogdHJ1ZX0pIF9zdGVwczogUXVlcnlMaXN0PFN0ZXBDb21wb25lbnQ+O1xuXG4gIC8qKiBTdGVwcyB0aGF0IGJlbG9uZyB0byB0aGUgY3VycmVudCBzdGVwcGVyLCBleGNsdWRpbmcgb25lcyBmcm9tIG5lc3RlZCBzdGVwcGVycy4gKi9cbiAgc3RlcHM6IFF1ZXJ5TGlzdDxTdGVwQ29tcG9uZW50PiA9IG5ldyBRdWVyeUxpc3Q8U3RlcENvbXBvbmVudD4oKTtcblxuICByZWFkb25seSBfYW5pbWF0aW9uRG9uZSA9IG5ldyBTdWJqZWN0PEFuaW1hdGlvbkV2ZW50PigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIGRpcjogRGlyZWN0aW9uYWxpdHksXG4gICAgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICApIHtcbiAgICBzdXBlcihkaXIsIGNoYW5nZURldGVjdG9yUmVmLCBlbGVtZW50UmVmKTtcbiAgICB0aGlzLm9yaWVudGF0aW9uID0gJ3ZlcnRpY2FsJztcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIC8vIE9ubHkgbGluZWFyIHN0ZXBwZXIgaW1wbGVtZW50YXRpb24gaXMgc3VwcG9ydGVkXG4gICAgc3VwZXIubGluZWFyID0gdHJ1ZTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICBzdXBlci5uZ0FmdGVyQ29udGVudEluaXQoKTtcblxuICAgIHRoaXMuc3RlcHMuY2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5fc3RhdGVDaGFuZ2VkKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLl9hbmltYXRpb25Eb25lXG4gICAgICAucGlwZShcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKHgsIHkpID0+IHguZnJvbVN0YXRlID09PSB5LmZyb21TdGF0ZSAmJiB4LnRvU3RhdGUgPT09IHkudG9TdGF0ZSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgIGlmICgoZXZlbnQudG9TdGF0ZSBhcyBTdGVwQ29udGVudFBvc2l0aW9uU3RhdGUpID09PSAnY3VycmVudCcpIHtcbiAgICAgICAgICB0aGlzLmFuaW1hdGlvbkRvbmUuZW1pdCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgcGF0Y2hlZCB0byBlbmFibGUgdGhlIGNsb3Npbmcgb2YgdGhlIGxhc3Qgc3RlcC5cbiAgICovXG4gIF9nZXRBbmltYXRpb25EaXJlY3Rpb24oaW5kZXg6IG51bWJlcik6IFN0ZXBDb250ZW50UG9zaXRpb25TdGF0ZSB7XG4gICAgY29uc3QgY2xvc2VMYXN0U3RlcCA9IHRoaXMuc2VsZWN0ZWRJbmRleCA9PT0gdGhpcy5zdGVwcy5sZW5ndGggLSAxICYmIHRoaXMuX3N0ZXBzLmxhc3Q/LmNvbXBsZXRlZCAmJiB0aGlzLl9zdGVwcy5sYXN0Py5zdGVwQ2xvc2VkO1xuICAgIGlmIChjbG9zZUxhc3RTdGVwKSB7XG4gICAgICByZXR1cm4gJ25leHQnO1xuICAgIH1cbiAgICByZXR1cm4gc3VwZXIuX2dldEFuaW1hdGlvbkRpcmVjdGlvbihpbmRleCk7XG4gIH1cblxuICBfc3RlcElzTmF2aWdhYmxlKGluZGV4OiBudW1iZXIsIHN0ZXA6IFN0ZXBDb21wb25lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gc3RlcC5jb21wbGV0ZWQgfHwgdGhpcy5zZWxlY3RlZEluZGV4ID09PSBpbmRleCB8fCAhdGhpcy5saW5lYXI7XG4gIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSBsZXQtbGFzdD1cImxhc3RcIiBsZXQtbmV4dEJ0bkxibD1cIm5leHRCdG5MYmxcIiBsZXQtZG9uZUJ0bkxibD1cImRvbmVCdG5MYmxcIj5cbiAgICA8ZGl2IGNsYXNzPVwic3RlcC1jb250YWluZXJcIiBmeExheW91dD1cImNvbHVtblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3RlcC1jb250ZW50XCI+XG4gICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3RlcC1idXR0b25zXCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCIhbGFzdFwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cIm5leHQoKVwiPnt7bmV4dEJ0bkxibH19PC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwibGFzdFwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImNvbXBsZXRlTGFzdCgpXCI+e3tkb25lQnRuTGJsfX08L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiIsIjwhLS0gVmVydGljYWwgc3RlcHBlciAtLT5cbjxuZy1jb250YWluZXI+XG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgc3RlcCBvZiBzdGVwczsgbGV0IGkgPSBpbmRleDsgbGV0IGlzTGFzdCA9IGxhc3Q7IGxldCBpc0ZpcnN0ID0gZmlyc3RcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInN0ZXBUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntzdGVwOiBzdGVwLCBpOiBpfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidmVydGljYWwtY29udGVudC1jb250YWluZXJcIiBbY2xhc3MubWF0LXN0ZXBwZXItdmVydGljYWwtbGluZV09XCIhaXNMYXN0XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmVydGljYWwtc3RlcHBlci1jb250ZW50XCIgcm9sZT1cInRhYnBhbmVsXCJcbiAgICAgICAgICAgICAgICAgW0BzdGVwVHJhbnNpdGlvbl09XCJfZ2V0QW5pbWF0aW9uRGlyZWN0aW9uKGkpXCJcbiAgICAgICAgICAgICAgICAgKEBzdGVwVHJhbnNpdGlvbi5kb25lKT1cIl9hbmltYXRpb25Eb25lLm5leHQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgIFtpZF09XCJfZ2V0U3RlcENvbnRlbnRJZChpKVwiXG4gICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJfZ2V0U3RlcExhYmVsSWQoaSlcIlxuICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cInNlbGVjdGVkSW5kZXggPT09IGlcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmVydGljYWwtY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInN0ZXAuY29udGVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntzdGVwOiBzdGVwLCBpOiBpLCBsYXN0OiBpc0xhc3QsIGZpcnN0OiBpc0ZpcnN0LCBuZXh0QnRuTGJsOiB0aGlzLm5leHRCdXR0b25MYWJlbCwgZG9uZUJ0bkxibDogdGhpcy5kb25lQnV0dG9uTGFiZWx9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlIGxldC1zdGVwPVwic3RlcFwiIGxldC1pPVwiaVwiICNzdGVwVGVtcGxhdGU+XG4gICAgPG1hZC1zdGVwLWhlYWRlclxuICAgICAgICAgICAgY2xhc3M9XCJtYXQtdmVydGljYWwtc3RlcHBlci1oZWFkZXJcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInN0ZXAuc2VsZWN0QW5kTWFya0FzVG91Y2hlZChpKVwiXG4gICAgICAgICAgICAoa2V5ZG93bik9XCJfb25LZXlkb3duKCRldmVudClcIlxuICAgICAgICAgICAgW3RhYkluZGV4XT1cIl9nZXRGb2N1c0luZGV4KCkgPT09IGkgPyAwIDogLTFcIlxuICAgICAgICAgICAgW2lkXT1cIl9nZXRTdGVwTGFiZWxJZChpKVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLXBvc2luc2V0XT1cImkgKyAxXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtc2V0c2l6ZV09XCJzdGVwcy5sZW5ndGhcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJfZ2V0U3RlcENvbnRlbnRJZChpKVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cInNlbGVjdGVkSW5kZXggPT0gaVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInN0ZXAuYXJpYUxhYmVsIHx8IG51bGxcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIighc3RlcC5hcmlhTGFiZWwgJiYgc3RlcC5hcmlhTGFiZWxsZWRieSkgPyBzdGVwLmFyaWFMYWJlbGxlZGJ5IDogbnVsbFwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cIl9zdGVwSXNOYXZpZ2FibGUoaSwgc3RlcCkgPyBudWxsIDogdHJ1ZVwiXG4gICAgICAgICAgICBbaW5kZXhdPVwiaVwiXG4gICAgICAgICAgICBbY29tcGxldGVkXT1cInN0ZXAuY29tcGxldGVkXCJcbiAgICAgICAgICAgIFtoYXNFcnJvcl09XCJzdGVwLmhhc0Vycm9yXCJcbiAgICAgICAgICAgIFtzdGF0ZV09XCJfZ2V0SW5kaWNhdG9yVHlwZShpLCBzdGVwLnN0YXRlKVwiXG4gICAgICAgICAgICBbbGFiZWxdPVwic3RlcC5zdGVwTGFiZWwgfHwgc3RlcC5sYWJlbFwiXG4gICAgICAgICAgICBbc2VsZWN0ZWRdPVwic2VsZWN0ZWRJbmRleCA9PT0gaVwiXG4gICAgICAgICAgICBbYWN0aXZlXT1cIl9zdGVwSXNOYXZpZ2FibGUoaSwgc3RlcClcIlxuICAgICAgICAgICAgW29wdGlvbmFsXT1cInN0ZXAub3B0aW9uYWxcIlxuICAgICAgICAgICAgW2Nsb3NlZF09XCJzdGVwLnN0ZXBDbG9zZWRcIlxuICAgICAgICAgICAgW2Vycm9yTWVzc2FnZV09XCJzdGVwLmVycm9yTWVzc2FnZVwiPjwvbWFkLXN0ZXAtaGVhZGVyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -0,0 +1,23 @@
1
+ import { StepComponent, StepperComponent } from './stepper.component';
2
+ import { StepHeaderComponent } from './step-header/step-header.component';
3
+ import { CommonModule } from '@angular/common';
4
+ import { MatButtonModule } from '@angular/material/button';
5
+ import { MatIconModule } from '@angular/material/icon';
6
+ import { NgModule } from '@angular/core';
7
+ import { CdkStepperModule } from '@angular/cdk/stepper';
8
+ import { FlexModule } from '@angular/flex-layout';
9
+ import * as i0 from "@angular/core";
10
+ export class StepperModule {
11
+ }
12
+ StepperModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: StepperModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
+ StepperModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.2", ngImport: i0, type: StepperModule, declarations: [StepperComponent, StepHeaderComponent, StepComponent], imports: [CommonModule, MatButtonModule, MatIconModule, CdkStepperModule, FlexModule], exports: [StepperComponent, StepHeaderComponent, StepComponent] });
14
+ StepperModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: StepperModule, imports: [CommonModule, MatButtonModule, MatIconModule, CdkStepperModule, FlexModule] });
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: StepperModule, decorators: [{
16
+ type: NgModule,
17
+ args: [{
18
+ declarations: [StepperComponent, StepHeaderComponent, StepComponent],
19
+ imports: [CommonModule, MatButtonModule, MatIconModule, CdkStepperModule, FlexModule],
20
+ exports: [StepperComponent, StepHeaderComponent, StepComponent],
21
+ }]
22
+ }] });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9zdGVwcGVyL3N0ZXBwZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFPbEQsTUFBTSxPQUFPLGFBQWE7OzBHQUFiLGFBQWE7MkdBQWIsYUFBYSxpQkFKVCxnQkFBZ0IsRUFBRSxtQkFBbUIsRUFBRSxhQUFhLGFBQ3pELFlBQVksRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLFVBQVUsYUFDMUUsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsYUFBYTsyR0FFbkQsYUFBYSxZQUhkLFlBQVksRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLFVBQVU7MkZBR3pFLGFBQWE7a0JBTHpCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxDQUFDO29CQUNwRSxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLENBQUM7b0JBQ3JGLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLGFBQWEsQ0FBQztpQkFDaEUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGVwQ29tcG9uZW50LCBTdGVwcGVyQ29tcG9uZW50IH0gZnJvbSAnLi9zdGVwcGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdGVwSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9zdGVwLWhlYWRlci9zdGVwLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2RrU3RlcHBlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zdGVwcGVyJztcbmltcG9ydCB7IEZsZXhNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mbGV4LWxheW91dCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1N0ZXBwZXJDb21wb25lbnQsIFN0ZXBIZWFkZXJDb21wb25lbnQsIFN0ZXBDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGUsIE1hdEljb25Nb2R1bGUsIENka1N0ZXBwZXJNb2R1bGUsIEZsZXhNb2R1bGVdLFxuICBleHBvcnRzOiBbU3RlcHBlckNvbXBvbmVudCwgU3RlcEhlYWRlckNvbXBvbmVudCwgU3RlcENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFN0ZXBwZXJNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWhlYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hdGVyaWFsLWFkZG9ucy9zcmMvbGliL3RhYmxlL2NvbHVtbi1oZWFkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uSGVhZGVyIHtcbiAgbGFiZWw6IHN0cmluZztcbiAgaXNTb3J0YWJsZT86IGJvb2xlYW47XG4gIGRhdGFQcm9wZXJ0eU5hbWU6IHN0cmluZztcbiAgaXNSaWdodEFsaWduZWQ/OiBib29sZWFuO1xuICBpc1N0aWNreT86IGJvb2xlYW47XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvdGFibGUvdGFibGUtYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFRhYmxlQWN0aW9uIHtcbiAgbGFiZWw6IHN0cmluZztcbiAgYWN0aW9uOiBzdHJpbmc7XG4gIG91dHB1dFJvdz86IGFueTtcbn1cbiJdfQ==
@@ -0,0 +1,130 @@
1
+ import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
+ import { MatTableDataSource } from '@angular/material/table';
3
+ import { MatPaginator } from '@angular/material/paginator';
4
+ import { MatSort } from '@angular/material/sort';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "@angular/material/icon";
8
+ import * as i3 from "@angular/material/form-field";
9
+ import * as i4 from "@angular/material/input";
10
+ import * as i5 from "@angular/material/menu";
11
+ import * as i6 from "@angular/material/paginator";
12
+ import * as i7 from "@angular/material/sort";
13
+ import * as i8 from "@angular/material/table";
14
+ import * as i9 from "../button/primary-button/primary-button.component";
15
+ import * as i10 from "../button/icon-button/icon-button.component";
16
+ export class TableComponent {
17
+ constructor() {
18
+ this.columns = [];
19
+ this.filterLabel = 'NOT SET';
20
+ this.filterPlaceholder = 'NOT SET';
21
+ this.pageSizeOptions = [5, 10, 15];
22
+ this.defaultPageSize = this.pageSizeOptions?.[0] || 10;
23
+ this.rowActions = [];
24
+ this.tableActions = [];
25
+ this.tableAction = new EventEmitter();
26
+ this.rowAction = new EventEmitter();
27
+ this.sortEvent = new EventEmitter();
28
+ this.ACTION_COLUMN_NAME = '__action__';
29
+ this.isFilterEnabled = false;
30
+ this.isPaginationEnabled = false;
31
+ }
32
+ set displayedData(data) {
33
+ if (!this.dataSource) {
34
+ this.dataSource = new MatTableDataSource(data);
35
+ }
36
+ else {
37
+ this.dataSource.data = data;
38
+ }
39
+ }
40
+ set paginationEnabled(isPaginationEnabled) {
41
+ this.isPaginationEnabled = isPaginationEnabled;
42
+ // eslint-disable-next-line
43
+ const pageSize = this.isPaginationEnabled ? this.defaultPageSize : Number.MAX_VALUE;
44
+ if (this.dataSource.paginator) {
45
+ this.dataSource.paginator._changePageSize(pageSize);
46
+ }
47
+ }
48
+ set filterEnabled(isFilterEnabled) {
49
+ this.isFilterEnabled = isFilterEnabled;
50
+ this.setFilterValue(undefined);
51
+ }
52
+ ngOnInit() {
53
+ this.columnNames = this.columns.map(column => column.label);
54
+ this.isRowClickable = this.rowActions.length > 0;
55
+ if (this.isRowClickable) {
56
+ this.columnNames.unshift(this.ACTION_COLUMN_NAME);
57
+ this.defaultAction = this.rowActions[0];
58
+ }
59
+ }
60
+ ngAfterViewInit() {
61
+ this.dataSource.paginator = this.paginator;
62
+ this.dataSource.sort = this.sort;
63
+ // set custom filter predicate to enable search for multiple search strings:
64
+ // e.g. "one two three"
65
+ this.dataSource.filterPredicate = (data, filter) => !filter || filter.split(/\s+/).every(term => !!Object.keys(data).find(key => data[key].includes(term)));
66
+ }
67
+ onFilter(value) {
68
+ this.setFilterValue(value);
69
+ }
70
+ onRowEvent(event, row, action = this.defaultAction) {
71
+ if (!!action && !this.isClickOnRowMenuIcon(event)) {
72
+ this.rowAction.emit({ ...action, outputRow: row });
73
+ }
74
+ }
75
+ onSortingEvent(sortingParams) {
76
+ this.sortEvent.emit(sortingParams);
77
+ }
78
+ onTableAction(tableAction) {
79
+ if (!!tableAction) {
80
+ this.tableAction.emit(tableAction);
81
+ }
82
+ }
83
+ setFilterValue(value) {
84
+ this.dataSource.filter = value?.trim().toLowerCase();
85
+ }
86
+ isClickOnRowMenuIcon(event) {
87
+ return event?.target?.classList.contains('mat-icon');
88
+ }
89
+ }
90
+ TableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: TableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
91
+ TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: TableComponent, selector: "mad-table", inputs: { columns: "columns", filterLabel: "filterLabel", filterPlaceholder: "filterPlaceholder", noDataText: "noDataText", pageSizeOptions: "pageSizeOptions", defaultPageSize: "defaultPageSize", rowActions: "rowActions", tableActions: "tableActions", displayedData: "displayedData", paginationEnabled: "paginationEnabled", filterEnabled: "filterEnabled" }, outputs: { tableAction: "tableAction", rowAction: "rowAction", sortEvent: "sortEvent" }, viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true, static: true }], ngImport: i0, template: "<!-- Table actions -->\n<div *ngIf=\"tableActions?.length\">\n <mad-primary-button class=\"table-action\" *ngFor=\"let tableAction of tableActions\" (click)=\"onTableAction(tableAction)\">\n {{ tableAction.label }}\n </mad-primary-button>\n</div>\n\n<!-- Row action buttons -->\n<mat-menu #menu=\"matMenu\">\n <ng-template matMenuContent let-element=\"element\">\n <button *ngFor=\"let rowAction of rowActions\" mat-menu-item class=\"row-action\" (click)=\"onRowEvent($event, element, rowAction)\">\n {{ rowAction.label }}\n </button>\n </ng-template>\n</mat-menu>\n\n<!-- Table filter -->\n<mat-form-field *ngIf=\"isFilterEnabled\">\n <mat-label>{{ filterLabel }}</mat-label>\n <input matInput (keyup)=\"onFilter($event?.target?.value)\" placeholder=\"{{ filterPlaceholder }}\" />\n</mat-form-field>\n\n<!-- Table -->\n<div *ngIf=\"dataSource?.data?.length > 0; else noData\" class=\"mad-table\">\n <table mat-table [dataSource]=\"dataSource\" matSort (matSortChange)=\"onSortingEvent($event)\">\n <!-- Row actions column -->\n <ng-container [matColumnDef]=\"ACTION_COLUMN_NAME\" *ngIf=\"rowActions?.length\" sticky>\n <th mat-header-cell *matHeaderCellDef class=\"row-action-button\"></th>\n <td mat-cell *matCellDef=\"let element\" class=\"row-action-button\">\n <mad-icon-button [matMenuTriggerData]=\"{ element: element }\" [matMenuTriggerFor]=\"menu\">\n <mat-icon>more_vert</mat-icon>\n </mad-icon-button>\n </td>\n </ng-container>\n <!-- Columns with data -->\n <ng-container *ngFor=\"let column of columns\" [matColumnDef]=\"column.label\" [sticky]=\"column.isSticky\">\n <ng-container *ngIf=\"column.isSortable; else noSort\">\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header=\"{{ column.label }}\"\n [arrowPosition]=\"column.isRightAligned ? 'before' : 'after'\"\n [class.text-right]=\"column.isRightAligned\"\n >\n {{ column.label }}\n </th>\n </ng-container>\n <ng-template #noSort>\n <th mat-header-cell *matHeaderCellDef [class.text-right]=\"column.isRightAligned\">\n {{ column.label }}\n </th>\n </ng-template>\n <td mat-cell *matCellDef=\"let element\" [class.text-right]=\"column.isRightAligned\">\n {{ element[column.dataPropertyName] }}\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"columnNames\"></tr>\n <tr\n mat-row\n [class.clickable-table-row]=\"isRowClickable\"\n (click)=\"onRowEvent($event, row)\"\n *matRowDef=\"let row; columns: columnNames\"\n ></tr>\n </table>\n</div>\n<!-- Pagination -->\n<mat-paginator\n [style.display]=\"isPaginationEnabled ? 'block' : 'none'\"\n [pageSize]=\"defaultPageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n showFirstLastButtons\n>\n</mat-paginator>\n\n<!-- No data alert -->\n<ng-template #noData>\n <div class=\"noDataText\">\n {{ noDataText }}\n </div>\n</ng-template>\n", styles: [".text-right{text-align:right!important}.table-action{margin-right:.5em;margin-bottom:.5em}.row-action-button{width:10px}.noDataText{width:100%;text-align:center}.mad-table{width:100%;overflow-x:auto}\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.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i5.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i5.MatMenuContent, selector: "ng-template[matMenuContent]" }, { kind: "component", type: i6.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "directive", type: i7.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i7.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i8.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i8.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i8.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i8.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i8.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i8.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i8.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i8.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i8.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i8.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i9.PrimaryButtonComponent, selector: "mad-primary-button", inputs: ["type", "disabled", "title"] }, { kind: "component", type: i10.IconButtonComponent, selector: "mad-icon-button", inputs: ["type", "disabled", "title"] }] });
92
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: TableComponent, decorators: [{
93
+ type: Component,
94
+ args: [{ selector: 'mad-table', template: "<!-- Table actions -->\n<div *ngIf=\"tableActions?.length\">\n <mad-primary-button class=\"table-action\" *ngFor=\"let tableAction of tableActions\" (click)=\"onTableAction(tableAction)\">\n {{ tableAction.label }}\n </mad-primary-button>\n</div>\n\n<!-- Row action buttons -->\n<mat-menu #menu=\"matMenu\">\n <ng-template matMenuContent let-element=\"element\">\n <button *ngFor=\"let rowAction of rowActions\" mat-menu-item class=\"row-action\" (click)=\"onRowEvent($event, element, rowAction)\">\n {{ rowAction.label }}\n </button>\n </ng-template>\n</mat-menu>\n\n<!-- Table filter -->\n<mat-form-field *ngIf=\"isFilterEnabled\">\n <mat-label>{{ filterLabel }}</mat-label>\n <input matInput (keyup)=\"onFilter($event?.target?.value)\" placeholder=\"{{ filterPlaceholder }}\" />\n</mat-form-field>\n\n<!-- Table -->\n<div *ngIf=\"dataSource?.data?.length > 0; else noData\" class=\"mad-table\">\n <table mat-table [dataSource]=\"dataSource\" matSort (matSortChange)=\"onSortingEvent($event)\">\n <!-- Row actions column -->\n <ng-container [matColumnDef]=\"ACTION_COLUMN_NAME\" *ngIf=\"rowActions?.length\" sticky>\n <th mat-header-cell *matHeaderCellDef class=\"row-action-button\"></th>\n <td mat-cell *matCellDef=\"let element\" class=\"row-action-button\">\n <mad-icon-button [matMenuTriggerData]=\"{ element: element }\" [matMenuTriggerFor]=\"menu\">\n <mat-icon>more_vert</mat-icon>\n </mad-icon-button>\n </td>\n </ng-container>\n <!-- Columns with data -->\n <ng-container *ngFor=\"let column of columns\" [matColumnDef]=\"column.label\" [sticky]=\"column.isSticky\">\n <ng-container *ngIf=\"column.isSortable; else noSort\">\n <th\n mat-header-cell\n *matHeaderCellDef\n mat-sort-header=\"{{ column.label }}\"\n [arrowPosition]=\"column.isRightAligned ? 'before' : 'after'\"\n [class.text-right]=\"column.isRightAligned\"\n >\n {{ column.label }}\n </th>\n </ng-container>\n <ng-template #noSort>\n <th mat-header-cell *matHeaderCellDef [class.text-right]=\"column.isRightAligned\">\n {{ column.label }}\n </th>\n </ng-template>\n <td mat-cell *matCellDef=\"let element\" [class.text-right]=\"column.isRightAligned\">\n {{ element[column.dataPropertyName] }}\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"columnNames\"></tr>\n <tr\n mat-row\n [class.clickable-table-row]=\"isRowClickable\"\n (click)=\"onRowEvent($event, row)\"\n *matRowDef=\"let row; columns: columnNames\"\n ></tr>\n </table>\n</div>\n<!-- Pagination -->\n<mat-paginator\n [style.display]=\"isPaginationEnabled ? 'block' : 'none'\"\n [pageSize]=\"defaultPageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n showFirstLastButtons\n>\n</mat-paginator>\n\n<!-- No data alert -->\n<ng-template #noData>\n <div class=\"noDataText\">\n {{ noDataText }}\n </div>\n</ng-template>\n", styles: [".text-right{text-align:right!important}.table-action{margin-right:.5em;margin-bottom:.5em}.row-action-button{width:10px}.noDataText{width:100%;text-align:center}.mad-table{width:100%;overflow-x:auto}\n"] }]
95
+ }], propDecorators: { columns: [{
96
+ type: Input
97
+ }], filterLabel: [{
98
+ type: Input
99
+ }], filterPlaceholder: [{
100
+ type: Input
101
+ }], noDataText: [{
102
+ type: Input
103
+ }], pageSizeOptions: [{
104
+ type: Input
105
+ }], defaultPageSize: [{
106
+ type: Input
107
+ }], rowActions: [{
108
+ type: Input
109
+ }], tableActions: [{
110
+ type: Input
111
+ }], tableAction: [{
112
+ type: Output
113
+ }], rowAction: [{
114
+ type: Output
115
+ }], sortEvent: [{
116
+ type: Output
117
+ }], paginator: [{
118
+ type: ViewChild,
119
+ args: [MatPaginator, { static: false }]
120
+ }], sort: [{
121
+ type: ViewChild,
122
+ args: [MatSort, { static: true }]
123
+ }], displayedData: [{
124
+ type: Input
125
+ }], paginationEnabled: [{
126
+ type: Input
127
+ }], filterEnabled: [{
128
+ type: Input
129
+ }] } });
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvdGFibGUvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsT0FBTyxFQUFRLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7Ozs7OztBQVN2RCxNQUFNLE9BQU8sY0FBYztJQUwzQjtRQU1XLFlBQU8sR0FBbUIsRUFBRSxDQUFDO1FBQzdCLGdCQUFXLEdBQUcsU0FBUyxDQUFDO1FBQ3hCLHNCQUFpQixHQUFHLFNBQVMsQ0FBQztRQUU5QixvQkFBZSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5QixvQkFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEQsZUFBVSxHQUFrQixFQUFFLENBQUM7UUFDL0IsaUJBQVksR0FBa0IsRUFBRSxDQUFDO1FBRWhDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQWUsQ0FBQztRQUM5QyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQWUsQ0FBQztRQUM1QyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUt0Qyx1QkFBa0IsR0FBRyxZQUFZLENBQUM7UUFLM0Msb0JB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SztnQkFVRixhQUFhO3NCQURoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XG5pbXBvcnQgeyBNYXRQYWdpbmF0b3IgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xuaW1wb3J0IHsgTWF0U29ydCwgU29ydCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHsgQ29sdW1uSGVhZGVyIH0gZnJvbSAnLi9jb2x1bW4taGVhZGVyJztcbmltcG9ydCB7IFRhYmxlQWN0aW9uIH0gZnJvbSAnLi90YWJsZS1hY3Rpb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYWQtdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YWJsZS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIGNvbHVtbnM6IENvbHVtbkhlYWRlcltdID0gW107XG4gIEBJbnB1dCgpIGZpbHRlckxhYmVsID0gJ05PVCBTRVQnO1xuICBASW5wdXQoKSBmaWx0ZXJQbGFjZWhvbGRlciA9ICdOT1QgU0VUJztcbiAgQElucHV0KCkgbm9EYXRhVGV4dDogc3RyaW5nO1xuICBASW5wdXQoKSBwYWdlU2l6ZU9wdGlvbnMgPSBbNSwgMTAsIDE1XTtcbiAgQElucHV0KCkgZGVmYXVsdFBhZ2VTaXplID0gdGhpcy5wYWdlU2l6ZU9wdGlvbnM/LlswXSB8fCAxMDtcbiAgQElucHV0KCkgcm93QWN0aW9uczogVGFibGVBY3Rpb25bXSA9IFtdO1xuICBASW5wdXQoKSB0YWJsZUFjdGlvbnM6IFRhYmxlQWN0aW9uW10gPSBbXTtcblxuICBAT3V0cHV0KCkgdGFibGVBY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPFRhYmxlQWN0aW9uPigpO1xuICBAT3V0cHV0KCkgcm93QWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxUYWJsZUFjdGlvbj4oKTtcbiAgQE91dHB1dCgpIHNvcnRFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8U29ydD4oKTtcblxuICBAVmlld0NoaWxkKE1hdFBhZ2luYXRvciwgeyBzdGF0aWM6IGZhbHNlIH0pIHBhZ2luYXRvcjogTWF0UGFnaW5hdG9yO1xuICBAVmlld0NoaWxkKE1hdFNvcnQsIHsgc3RhdGljOiB0cnVlIH0pIHNvcnQ6IE1hdFNvcnQ7XG5cbiAgcmVhZG9ubHkgQUNUSU9OX0NPTFVNTl9OQU1FID0gJ19fYWN0aW9uX18nO1xuICBkYXRhU291cmNlOiBNYXRUYWJsZURhdGFTb3VyY2U8YW55W10+O1xuICBjb2x1bW5OYW1lczogc3RyaW5nW107XG4gIGlzUm93Q2xpY2thYmxlOiBib29sZWFuO1xuICBkZWZhdWx0QWN0aW9uOiBUYWJsZUFjdGlvbjtcbiAgaXNGaWx0ZXJFbmFibGVkID0gZmFsc2U7XG4gIGlzUGFnaW5hdGlvbkVuYWJsZWQgPSBmYWxzZTtcblxuICBASW5wdXQoKSBzZXQgZGlzcGxheWVkRGF0YShkYXRhOiBhbnlbXSkge1xuICAgIGlmICghdGhpcy5kYXRhU291cmNlKSB7XG4gICAgICB0aGlzLmRhdGFTb3VyY2UgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlPGFueT4oZGF0YSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gZGF0YTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKSBzZXQgcGFnaW5hdGlvbkVuYWJsZWQoaXNQYWdpbmF0aW9uRW5hYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMuaXNQYWdpbmF0aW9uRW5hYmxlZCA9IGlzUGFnaW5hdGlvbkVuYWJsZWQ7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgY29uc3QgcGFnZVNpemUgPSB0aGlzLmlzUGFnaW5hdGlvbkVuYWJsZWQgPyB0aGlzLmRlZmF1bHRQYWdlU2l6ZSA6IE51bWJlci5NQVhfVkFMVUU7XG4gICAgaWYgKHRoaXMuZGF0YVNvdXJjZS5wYWdpbmF0b3IpIHtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5wYWdpbmF0b3IuX2NoYW5nZVBhZ2VTaXplKHBhZ2VTaXplKTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgZmlsdGVyRW5hYmxlZChpc0ZpbHRlckVuYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmlzRmlsdGVyRW5hYmxlZCA9IGlzRmlsdGVyRW5hYmxlZDtcbiAgICB0aGlzLnNldEZpbHRlclZhbHVlKHVuZGVmaW5lZCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbHVtbk5hbWVzID0gdGhpcy5jb2x1bW5zLm1hcChjb2x1bW4gPT4gY29sdW1uLmxhYmVsKTtcbiAgICB0aGlzLmlzUm93Q2xpY2thYmxlID0gdGhpcy5yb3dBY3Rpb25zLmxlbmd0aCA+IDA7XG4gICAgaWYgKHRoaXMuaXNSb3dDbGlja2FibGUpIHtcbiAgICAgIHRoaXMuY29sdW1uTmFtZXMudW5zaGlmdCh0aGlzLkFDVElPTl9DT0xVTU5fTkFNRSk7XG4gICAgICB0aGlzLmRlZmF1bHRBY3Rpb24gPSB0aGlzLnJvd0FjdGlvbnNbMF07XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZGF0YVNvdXJjZS5wYWdpbmF0b3IgPSB0aGlzLnBhZ2luYXRvcjtcbiAgICB0aGlzLmRhdGFTb3VyY2Uuc29ydCA9IHRoaXMuc29ydDtcbiAgICAvLyBzZXQgY3VzdG9tIGZpbHRlciBwcmVkaWNhdGUgdG8gZW5hYmxlIHNlYXJjaCBmb3IgbXVsdGlwbGUgc2VhcmNoIHN0cmluZ3M6XG4gICAgLy8gZS5nLiBcIm9uZSB0d28gdGhyZWVcIlxuICAgIHRoaXMuZGF0YVNvdXJjZS5maWx0ZXJQcmVkaWNhdGUgPSAoZGF0YTogYW55LCBmaWx0ZXI6IHN0cmluZyk6IGFueSA9PlxuICAgICAgIWZpbHRlciB8fCBmaWx0ZXIuc3BsaXQoL1xccysvKS5ldmVyeSh0ZXJtID0+ICEhT2JqZWN0LmtleXMoZGF0YSkuZmluZChrZXkgPT4gZGF0YVtrZXldLmluY2x1ZGVzKHRlcm0pKSk7XG4gIH1cblxuICBvbkZpbHRlcih2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zZXRGaWx0ZXJWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICBvblJvd0V2ZW50KGV2ZW50OiBNb3VzZUV2ZW50LCByb3c6IGFueSwgYWN0aW9uID0gdGhpcy5kZWZhdWx0QWN0aW9uKTogdm9pZCB7XG4gICAgaWYgKCEhYWN0aW9uICYmICF0aGlzLmlzQ2xpY2tPblJvd01lbnVJY29uKGV2ZW50KSkge1xuICAgICAgdGhpcy5yb3dBY3Rpb24uZW1pdCh7IC4uLmFjdGlvbiwgb3V0cHV0Um93OiByb3cgfSk7XG4gICAgfVxuICB9XG5cbiAgb25Tb3J0aW5nRXZlbnQoc29ydGluZ1BhcmFtczogU29ydCk6IHZvaWQge1xuICAgIHRoaXMuc29ydEV2ZW50LmVtaXQoc29ydGluZ1BhcmFtcyk7XG4gIH1cblxuICBvblRhYmxlQWN0aW9uKHRhYmxlQWN0aW9uOiBUYWJsZUFjdGlvbik6IHZvaWQge1xuICAgIGlmICghIXRhYmxlQWN0aW9uKSB7XG4gICAgICB0aGlzLnRhYmxlQWN0aW9uLmVtaXQodGFibGVBY3Rpb24pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0RmlsdGVyVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZGF0YVNvdXJjZS5maWx0ZXIgPSB2YWx1ZT8udHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gIH1cblxuICBwcml2YXRlIGlzQ2xpY2tPblJvd01lbnVJY29uKGV2ZW50OiBNb3VzZUV2ZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChldmVudD8udGFyZ2V0IGFzIEhUTUxFbGVtZW50KT8uY2xhc3NMaXN0LmNvbnRhaW5zKCdtYXQtaWNvbicpO1xuICB9XG59XG4iLCI8IS0tIFRhYmxlIGFjdGlvbnMgLS0+XG48ZGl2ICpuZ0lmPVwidGFibGVBY3Rpb25zPy5sZW5ndGhcIj5cbiAgPG1hZC1wcmltYXJ5LWJ1dHRvbiBjbGFzcz1cInRhYmxlLWFjdGlvblwiICpuZ0Zvcj1cImxldCB0YWJsZUFjdGlvbiBvZiB0YWJsZUFjdGlvbnNcIiAoY2xpY2spPVwib25UYWJsZUFjdGlvbih0YWJsZUFjdGlvbilcIj5cbiAgICB7eyB0YWJsZUFjdGlvbi5sYWJlbCB9fVxuICA8L21hZC1wcmltYXJ5LWJ1dHRvbj5cbjwvZGl2PlxuXG48IS0tIFJvdyBhY3Rpb24gYnV0dG9ucyAtLT5cbjxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIj5cbiAgPG5nLXRlbXBsYXRlIG1hdE1lbnVDb250ZW50IGxldC1lbGVtZW50PVwiZWxlbWVudFwiPlxuICAgIDxidXR0b24gKm5nRm9yPVwibGV0IHJvd0FjdGlvbiBvZiByb3dBY3Rpb25zXCIgbWF0LW1lbnUtaXRlbSBjbGFzcz1cInJvdy1hY3Rpb25cIiAoY2xpY2spPVwib25Sb3dFdmVudCgkZXZlbnQsIGVsZW1lbnQsIHJvd0FjdGlvbilcIj5cbiAgICAgIHt7IHJvd0FjdGlvbi5sYWJlbCB9fVxuICAgIDwvYnV0dG9uPlxuICA8L25nLXRlbXBsYXRlPlxuPC9tYXQtbWVudT5cblxuPCEtLSBUYWJsZSBmaWx0ZXIgLS0+XG48bWF0LWZvcm0tZmllbGQgKm5nSWY9XCJpc0ZpbHRlckVuYWJsZWRcIj5cbiAgPG1hdC1sYWJlbD57eyBmaWx0ZXJMYWJlbCB9fTwvbWF0LWxhYmVsPlxuICA8aW5wdXQgbWF0SW5wdXQgKGtleXVwKT1cIm9uRmlsdGVyKCRldmVudD8udGFyZ2V0Py52YWx1ZSlcIiBwbGFjZWhvbGRlcj1cInt7IGZpbHRlclBsYWNlaG9sZGVyIH19XCIgLz5cbjwvbWF0LWZvcm0tZmllbGQ+XG5cbjwhLS0gVGFibGUgLS0+XG48ZGl2ICpuZ0lmPVwiZGF0YVNvdXJjZT8uZGF0YT8ubGVuZ3RoID4gMDsgZWxzZSBub0RhdGFcIiBjbGFzcz1cIm1hZC10YWJsZVwiPlxuICA8dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VcIiBtYXRTb3J0IChtYXRTb3J0Q2hhbmdlKT1cIm9uU29ydGluZ0V2ZW50KCRldmVudClcIj5cbiAgICA8IS0tIFJvdyBhY3Rpb25zIGNvbHVtbiAtLT5cbiAgICA8bmctY29udGFpbmVyIFttYXRDb2x1bW5EZWZdPVwiQUNUSU9OX0NPTFVNTl9OQU1FXCIgKm5nSWY9XCJyb3dBY3Rpb25zPy5sZW5ndGhcIiBzdGlja3k+XG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIGNsYXNzPVwicm93LWFjdGlvbi1idXR0b25cIj48L3RoPlxuICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIiBjbGFzcz1cInJvdy1hY3Rpb24tYnV0dG9uXCI+XG4gICAgICAgIDxtYWQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRGF0YV09XCJ7IGVsZW1lbnQ6IGVsZW1lbnQgfVwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCI+XG4gICAgICAgICAgPG1hdC1pY29uPm1vcmVfdmVydDwvbWF0LWljb24+XG4gICAgICAgIDwvbWFkLWljb24tYnV0dG9uPlxuICAgICAgPC90ZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8IS0tIENvbHVtbnMgd2l0aCBkYXRhIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zXCIgW21hdENvbHVtbkRlZl09XCJjb2x1bW4ubGFiZWxcIiBbc3RpY2t5XT1cImNvbHVtbi5pc1N0aWNreVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi5pc1NvcnRhYmxlOyBlbHNlIG5vU29ydFwiPlxuICAgICAgICA8dGhcbiAgICAgICAgICBtYXQtaGVhZGVyLWNlbGxcbiAgICAgICAgICAqbWF0SGVhZGVyQ2VsbERlZlxuICAgICAgICAgIG1hdC1zb3J0LWhlYWRlcj1cInt7IGNvbHVtbi5sYWJlbCB9fVwiXG4gICAgICAgICAgW2Fycm93UG9zaXRpb25dPVwiY29sdW1uLmlzUmlnaHRBbGlnbmVkID8gJ2JlZm9yZScgOiAnYWZ0ZXInXCJcbiAgICAgICAgICBbY2xhc3MudGV4dC1yaWdodF09XCJjb2x1bW4uaXNSaWdodEFsaWduZWRcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgY29sdW1uLmxhYmVsIH19XG4gICAgICAgIDwvdGg+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjbm9Tb3J0PlxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIFtjbGFzcy50ZXh0LXJpZ2h0XT1cImNvbHVtbi5pc1JpZ2h0QWxpZ25lZFwiPlxuICAgICAgICAgIHt7IGNvbHVtbi5sYWJlbCB9fVxuICAgICAgICA8L3RoPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCIgW2NsYXNzLnRleHQtcmlnaHRdPVwiY29sdW1uLmlzUmlnaHRBbGlnbmVkXCI+XG4gICAgICAgIHt7IGVsZW1lbnRbY29sdW1uLmRhdGFQcm9wZXJ0eU5hbWVdIH19XG4gICAgICA8L3RkPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiY29sdW1uTmFtZXNcIj48L3RyPlxuICAgIDx0clxuICAgICAgbWF0LXJvd1xuICAgICAgW2NsYXNzLmNsaWNrYWJsZS10YWJsZS1yb3ddPVwiaXNSb3dDbGlja2FibGVcIlxuICAgICAgKGNsaWNrKT1cIm9uUm93RXZlbnQoJGV2ZW50LCByb3cpXCJcbiAgICAgICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBjb2x1bW5OYW1lc1wiXG4gICAgPjwvdHI+XG4gIDwvdGFibGU+XG48L2Rpdj5cbjwhLS0gUGFnaW5hdGlvbiAtLT5cbjxtYXQtcGFnaW5hdG9yXG4gIFtzdHlsZS5kaXNwbGF5XT1cImlzUGFnaW5hdGlvbkVuYWJsZWQgPyAnYmxvY2snIDogJ25vbmUnXCJcbiAgW3BhZ2VTaXplXT1cImRlZmF1bHRQYWdlU2l6ZVwiXG4gIFtwYWdlU2l6ZU9wdGlvbnNdPVwicGFnZVNpemVPcHRpb25zXCJcbiAgc2hvd0ZpcnN0TGFzdEJ1dHRvbnNcbj5cbjwvbWF0LXBhZ2luYXRvcj5cblxuPCEtLSBObyBkYXRhIGFsZXJ0IC0tPlxuPG5nLXRlbXBsYXRlICNub0RhdGE+XG4gIDxkaXYgY2xhc3M9XCJub0RhdGFUZXh0XCI+XG4gICAge3sgbm9EYXRhVGV4dCB9fVxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export { TableComponent } from './table.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi90YWJsZS90YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge0NvbHVtbkhlYWRlcn0gZnJvbSAnLi9jb2x1bW4taGVhZGVyJztcbmV4cG9ydCB7VGFibGVBY3Rpb259IGZyb20gJy4vdGFibGUtYWN0aW9uJztcbmV4cG9ydCB7VGFibGVDb21wb25lbnR9IGZyb20gJy4vdGFibGUuY29tcG9uZW50JztcbiJdfQ==