@porscheinformatik/material-addons 10.4.0 → 14.0.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.
- package/fesm2015/porscheinformatik-material-addons.mjs +2984 -0
- package/fesm2015/porscheinformatik-material-addons.mjs.map +1 -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 +15 -0
- package/lib/button/button.module.d.ts.map +1 -0
- package/lib/button/danger-button/danger-button.component.d.ts +4 -0
- package/lib/button/danger-button/danger-button.component.d.ts.map +1 -0
- package/lib/button/flat-button/link-button.component.d.ts +4 -0
- package/lib/button/flat-button/link-button.component.d.ts.map +1 -0
- package/lib/button/icon-button/icon-button.component.d.ts +4 -0
- package/lib/button/icon-button/icon-button.component.d.ts.map +1 -0
- package/lib/button/mad-basic-button.d.ts +5 -1
- package/lib/button/mad-basic-button.d.ts.map +1 -0
- package/lib/button/outline-button/outline-button.component.d.ts +4 -0
- package/lib/button/outline-button/outline-button.component.d.ts.map +1 -0
- package/lib/button/primary-button/primary-button.component.d.ts +4 -0
- package/lib/button/primary-button/primary-button.component.d.ts.map +1 -0
- package/lib/card/card.component.d.ts +4 -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 +12 -0
- package/lib/card/card.module.d.ts.map +1 -0
- package/lib/content-panel/content-header/content-header.component.d.ts +4 -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 +4 -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 +4 -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 +4 -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 +11 -0
- package/lib/content-panel/content-panel.module.d.ts.map +1 -0
- package/lib/content-panel/main-container/main-container.component.d.ts +4 -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 +1 -0
- package/lib/data-table/data-table-action-type.d.ts.map +1 -0
- package/lib/data-table/data-table-action.d.ts +1 -0
- package/lib/data-table/data-table-action.d.ts.map +1 -0
- package/lib/data-table/data-table-column-definition.d.ts +1 -0
- package/lib/data-table/data-table-column-definition.d.ts.map +1 -0
- package/lib/data-table/data-table-column.d.ts +1 -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 +4 -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.component.d.ts +4 -0
- package/lib/data-table/data-table.component.d.ts.map +1 -0
- package/lib/data-table/data-table.d.ts +3 -0
- package/lib/data-table/data-table.d.ts.map +1 -0
- package/lib/data-table/data-table.module.d.ts +23 -0
- package/lib/data-table/data-table.module.d.ts.map +1 -0
- package/lib/flowbar/flowbar.component.d.ts +4 -0
- package/lib/flowbar/flowbar.component.d.ts.map +1 -0
- package/lib/flowbar/flowbar.module.d.ts +8 -0
- package/lib/flowbar/flowbar.module.d.ts.map +1 -0
- package/lib/material-action-button/material-action-button.component.d.ts +4 -0
- 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 +11 -0
- package/lib/material-action-button/material-action-button.module.d.ts.map +1 -0
- package/lib/material-addons.module.d.ts +13 -0
- package/lib/material-addons.module.d.ts.map +1 -0
- package/lib/numeric-field/number-format.service.d.ts +4 -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 +4 -0
- package/lib/numeric-field/numeric-field.directive.d.ts.map +1 -0
- package/lib/numeric-field/numeric-field.module.d.ts +6 -0
- package/lib/numeric-field/numeric-field.module.d.ts.map +1 -0
- package/lib/quick-list/base-quick-list.component.d.ts +5 -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 +4 -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 +4 -0
- package/lib/quick-list/quick-list.component.d.ts.map +1 -0
- package/lib/quick-list/quick-list.d.ts +4 -0
- package/lib/quick-list/quick-list.d.ts.map +1 -0
- package/lib/quick-list/quick-list.module.d.ts +12 -0
- package/lib/quick-list/quick-list.module.d.ts.map +1 -0
- package/lib/readonly/readonly-form-field/readonly-form-field.component.d.ts +4 -0
- 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 +4 -0
- 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 +13 -0
- package/lib/readonly/readonly-form-field.module.d.ts.map +1 -0
- package/lib/stepper/mad-stepper-animation.d.ts +1 -0
- package/lib/stepper/mad-stepper-animation.d.ts.map +1 -0
- package/lib/stepper/step-header/step-header.component.d.ts +4 -0
- package/lib/stepper/step-header/step-header.component.d.ts.map +1 -0
- package/lib/stepper/stepper.component.d.ts +7 -1
- package/lib/stepper/stepper.component.d.ts.map +1 -0
- package/lib/stepper/stepper.module.d.ts +12 -0
- package/lib/stepper/stepper.module.d.ts.map +1 -0
- package/lib/table/column-header.d.ts +1 -0
- package/lib/table/column-header.d.ts.map +1 -0
- package/lib/table/table-action.d.ts +1 -0
- package/lib/table/table-action.d.ts.map +1 -0
- package/lib/table/table.component.d.ts +4 -0
- package/lib/table/table.component.d.ts.map +1 -0
- package/lib/table/table.d.ts +2 -0
- package/lib/table/table.d.ts.map +1 -0
- package/lib/table/table.module.d.ts +16 -0
- package/lib/table/table.module.d.ts.map +1 -0
- package/lib/throttle-click/throttle-click.directive.d.ts +4 -0
- package/lib/throttle-click/throttle-click.directive.d.ts.map +1 -0
- package/lib/throttle-click/throttle-click.module.d.ts +7 -0
- package/lib/throttle-click/throttle-click.module.d.ts.map +1 -0
- package/lib/toolbar/toolbar-action.interface.d.ts +1 -0
- package/lib/toolbar/toolbar-action.interface.d.ts.map +1 -0
- package/lib/toolbar/toolbar.component.d.ts +4 -0
- package/lib/toolbar/toolbar.component.d.ts.map +1 -0
- package/lib/toolbar/toolbar.module.d.ts +16 -0
- package/lib/toolbar/toolbar.module.d.ts.map +1 -0
- package/lib/toolbar/toolbar.service.d.ts +4 -0
- package/lib/toolbar/toolbar.service.d.ts.map +1 -0
- package/package.json +29 -16
- package/public-api.d.ts +5 -0
- package/themes/common/styles.scss +23 -22
- package/bundles/porscheinformatik-material-addons.umd.js +0 -3299
- package/bundles/porscheinformatik-material-addons.umd.js.map +0 -1
- package/bundles/porscheinformatik-material-addons.umd.min.js +0 -17
- package/bundles/porscheinformatik-material-addons.umd.min.js.map +0 -1
- package/esm2015/lib/button/button.module.js +0 -21
- package/esm2015/lib/button/danger-button/danger-button.component.js +0 -25
- package/esm2015/lib/button/flat-button/link-button.component.js +0 -25
- package/esm2015/lib/button/icon-button/icon-button.component.js +0 -25
- package/esm2015/lib/button/mad-basic-button.js +0 -28
- package/esm2015/lib/button/outline-button/outline-button.component.js +0 -25
- package/esm2015/lib/button/primary-button/primary-button.component.js +0 -25
- package/esm2015/lib/card/card.component.js +0 -86
- package/esm2015/lib/card/card.module.js +0 -18
- package/esm2015/lib/content-panel/content-header/content-header.component.js +0 -11
- package/esm2015/lib/content-panel/content-panel-container/content-panel-container.component.js +0 -11
- package/esm2015/lib/content-panel/content-panel-container-content/content-panel-container-content.component.js +0 -11
- package/esm2015/lib/content-panel/content-panel-container-footer/content-panel-container-footer.component.js +0 -11
- package/esm2015/lib/content-panel/content-panel.module.js +0 -29
- package/esm2015/lib/content-panel/main-container/main-container.component.js +0 -11
- package/esm2015/lib/data-table/data-table-action-type.js +0 -6
- package/esm2015/lib/data-table/data-table-action.js +0 -1
- package/esm2015/lib/data-table/data-table-column-definition.js +0 -1
- package/esm2015/lib/data-table/data-table-column.js +0 -1
- package/esm2015/lib/data-table/data-table-columns-modal/data-table-columns-modal.component.js +0 -93
- package/esm2015/lib/data-table/data-table.component.js +0 -459
- package/esm2015/lib/data-table/data-table.js +0 -1
- package/esm2015/lib/data-table/data-table.module.js +0 -46
- package/esm2015/lib/flowbar/flowbar.component.js +0 -182
- package/esm2015/lib/flowbar/flowbar.module.js +0 -14
- package/esm2015/lib/material-action-button/material-action-button.component.js +0 -25
- package/esm2015/lib/material-action-button/material-action-button.module.js +0 -17
- package/esm2015/lib/material-addons.module.js +0 -26
- package/esm2015/lib/numeric-field/number-format.service.js +0 -137
- package/esm2015/lib/numeric-field/numeric-field.directive.js +0 -275
- package/esm2015/lib/numeric-field/numeric-field.module.js +0 -19
- package/esm2015/lib/quick-list/base-quick-list.component.js +0 -89
- package/esm2015/lib/quick-list/quick-list-compact/quick-list-compact.component.js +0 -18
- package/esm2015/lib/quick-list/quick-list.component.js +0 -19
- package/esm2015/lib/quick-list/quick-list.module.js +0 -18
- package/esm2015/lib/readonly/readonly-form-field/readonly-form-field.component.js +0 -131
- package/esm2015/lib/readonly/readonly-form-field-wrapper/readonly-form-field-wrapper.component.js +0 -164
- package/esm2015/lib/readonly/readonly-form-field.module.js +0 -19
- package/esm2015/lib/stepper/mad-stepper-animation.js +0 -13
- package/esm2015/lib/stepper/step-header/step-header.component.js +0 -75
- package/esm2015/lib/stepper/stepper.component.js +0 -169
- package/esm2015/lib/stepper/stepper.module.js +0 -18
- package/esm2015/lib/table/column-header.js +0 -1
- package/esm2015/lib/table/table-action.js +0 -1
- package/esm2015/lib/table/table.component.js +0 -106
- package/esm2015/lib/table/table.js +0 -1
- package/esm2015/lib/table/table.module.js +0 -33
- package/esm2015/lib/throttle-click/throttle-click.directive.js +0 -32
- package/esm2015/lib/throttle-click/throttle-click.module.js +0 -13
- package/esm2015/lib/toolbar/toolbar-action.interface.js +0 -1
- package/esm2015/lib/toolbar/toolbar.component.js +0 -71
- package/esm2015/lib/toolbar/toolbar.module.js +0 -33
- package/esm2015/lib/toolbar/toolbar.service.js +0 -127
- package/esm2015/porscheinformatik-material-addons.js +0 -19
- package/esm2015/public-api.js +0 -37
- package/fesm2015/porscheinformatik-material-addons.js +0 -2656
- package/fesm2015/porscheinformatik-material-addons.js.map +0 -1
- package/porscheinformatik-material-addons.d.ts +0 -19
- package/porscheinformatik-material-addons.metadata.json +0 -1
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectorRef, Component, ElementRef, Input, Renderer2, ViewChild, } from '@angular/core';
|
|
2
|
-
import { NumberFormatService } from '../../numeric-field/number-format.service';
|
|
3
|
-
/**
|
|
4
|
-
* Read-only mat-form-field representation of provided value
|
|
5
|
-
*
|
|
6
|
-
* @author Stefan Laesser
|
|
7
|
-
*/
|
|
8
|
-
export class ReadOnlyFormFieldComponent {
|
|
9
|
-
constructor(changeDetector, renderer, numberFormatService) {
|
|
10
|
-
this.changeDetector = changeDetector;
|
|
11
|
-
this.renderer = renderer;
|
|
12
|
-
this.numberFormatService = numberFormatService;
|
|
13
|
-
this.textAlign = 'left';
|
|
14
|
-
this.formatNumber = false;
|
|
15
|
-
this.decimalPlaces = 2;
|
|
16
|
-
this.roundValue = false;
|
|
17
|
-
this.autofillDecimals = false;
|
|
18
|
-
this.unit = null;
|
|
19
|
-
this.unitPosition = 'left';
|
|
20
|
-
this.errorMessage = null;
|
|
21
|
-
this.multiline = false;
|
|
22
|
-
this.rows = 3;
|
|
23
|
-
/*
|
|
24
|
-
* If shrinkIfEmpty is set to "false", nothing changes
|
|
25
|
-
* If set to "true" and multiline is also "true", the textarea will
|
|
26
|
-
* shrink to one row, if value is empty/null/undefined.
|
|
27
|
-
* Otherwise, the defined rows-value will be used
|
|
28
|
-
*/
|
|
29
|
-
this.shrinkIfEmpty = false;
|
|
30
|
-
this.errorMatcher = {
|
|
31
|
-
isErrorState: () => !!this.errorMessage,
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
ngOnChanges(_) {
|
|
35
|
-
if (!NumberFormatService.valueIsSet(this.value)) {
|
|
36
|
-
this.value = '-';
|
|
37
|
-
if (this.shrinkIfEmpty) {
|
|
38
|
-
this.rows = 1;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
else if (this.formatNumber && typeof this.value === 'number') {
|
|
42
|
-
this.value = this.numberFormatService.format(this.value, {
|
|
43
|
-
decimalPlaces: this.decimalPlaces,
|
|
44
|
-
finalFormatting: true,
|
|
45
|
-
autofillDecimals: this.autofillDecimals,
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
this.changeDetector.detectChanges();
|
|
49
|
-
}
|
|
50
|
-
// TODO direct copy from NumericFieldDirective
|
|
51
|
-
ngAfterViewChecked() {
|
|
52
|
-
this.injectUnitSymbol();
|
|
53
|
-
}
|
|
54
|
-
injectUnitSymbol() {
|
|
55
|
-
// Need to inject the unit symbol when the input element width is set to its actual value,
|
|
56
|
-
// otherwise the icon wont show in the correct position
|
|
57
|
-
if (!!this.unit && !this.unitSpan && this.inputEl.nativeElement.offsetWidth !== 0) {
|
|
58
|
-
// Get the input wrapper and apply necessary styles
|
|
59
|
-
const inputWrapper = this.inputEl.nativeElement.parentNode.parentNode;
|
|
60
|
-
// Create the span with unit symbol and apply necessary styles
|
|
61
|
-
this.unitSpan = this.renderer.createElement('span');
|
|
62
|
-
if (this.unitPosition === 'left') {
|
|
63
|
-
this.renderer.setAttribute(this.unitSpan, 'matPrefix', '');
|
|
64
|
-
this.renderer.setStyle(this.unitSpan, 'padding-right', '5px');
|
|
65
|
-
this.renderer.insertBefore(inputWrapper, this.unitSpan, inputWrapper.children[0]);
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
this.renderer.setAttribute(this.unitSpan, 'matSuffix', '');
|
|
69
|
-
this.renderer.setStyle(this.unitSpan, 'padding-left', '5px');
|
|
70
|
-
this.renderer.appendChild(inputWrapper, this.unitSpan);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
// special handling to move unit symbol along with display value
|
|
74
|
-
if (!!this.unitSpan && this.textAlign === 'left' && this.unitPosition === 'right') {
|
|
75
|
-
const inputStyles = window.getComputedStyle(this.inputEl.nativeElement.parentElement, null);
|
|
76
|
-
this.unitSpan.style.position = 'absolute';
|
|
77
|
-
this.unitSpan.style.marginTop = inputStyles.getPropertyValue('border-top-width');
|
|
78
|
-
this.unitSpan.style.paddingTop = inputStyles.getPropertyValue('padding-top');
|
|
79
|
-
this.unitSpan.style.paddingBottom = inputStyles.getPropertyValue('padding-bottom');
|
|
80
|
-
if (!this.textSpan) {
|
|
81
|
-
this.textSpan = document.createElement('span');
|
|
82
|
-
document.body.appendChild(this.textSpan);
|
|
83
|
-
this.textSpan.style.font = inputStyles.getPropertyValue('font');
|
|
84
|
-
this.textSpan.style.fontSize = inputStyles.getPropertyValue('font-size');
|
|
85
|
-
this.textSpan.style.height = 'auto';
|
|
86
|
-
this.textSpan.style.width = 'auto';
|
|
87
|
-
this.textSpan.style.position = 'absolute';
|
|
88
|
-
this.textSpan.style.top = '0';
|
|
89
|
-
this.textSpan.style.whiteSpace = 'no-wrap';
|
|
90
|
-
this.textSpan.style.visibility = 'hidden';
|
|
91
|
-
}
|
|
92
|
-
this.textSpan.innerHTML = this.value;
|
|
93
|
-
const width = Math.min(this.inputEl.nativeElement.clientWidth - this.unitSpan.clientWidth, Math.ceil(this.textSpan.clientWidth));
|
|
94
|
-
this.unitSpan.style.left = width + 'px';
|
|
95
|
-
}
|
|
96
|
-
// always reset unit symbol
|
|
97
|
-
if (!!this.unitSpan) {
|
|
98
|
-
this.unitSpan.textContent = this.unit;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
ReadOnlyFormFieldComponent.decorators = [
|
|
103
|
-
{ type: Component, args: [{
|
|
104
|
-
selector: 'mad-readonly-form-field',
|
|
105
|
-
template: "<mat-form-field class=\"form-group\" appearance=\"none\">\n <mat-label>{{ label }}</mat-label>\n <input\n *ngIf=\"!multiline\"\n [ngModel]=\"value\"\n [ngClass]=\"'text-' + textAlign\"\n [errorStateMatcher]=\"errorMatcher\"\n [id]=\"id\"\n readonly\n matInput\n #inputEl\n />\n\n <textarea\n *ngIf=\"multiline\"\n [rows]=\"rows\"\n [ngModel]=\"value\"\n class=\"multiline\"\n [errorStateMatcher]=\"errorMatcher\"\n [id]=\"id\"\n readonly\n matInput\n ></textarea>\n <mat-error>{{ errorMessage }}</mat-error>\n</mat-form-field>\n",
|
|
106
|
-
styles: ["mat-form-field{width:100%;width:-moz-available;width:-webkit-fill-available;width:stretch}mat-label{line-height:1.4}span[matPrefix]{padding-right:5px}span[matSuffix]{padding-left:5px}.text-left{text-align:left}.text-right{text-align:right}.multiline{resize:none}"]
|
|
107
|
-
},] }
|
|
108
|
-
];
|
|
109
|
-
ReadOnlyFormFieldComponent.ctorParameters = () => [
|
|
110
|
-
{ type: ChangeDetectorRef },
|
|
111
|
-
{ type: Renderer2 },
|
|
112
|
-
{ type: NumberFormatService }
|
|
113
|
-
];
|
|
114
|
-
ReadOnlyFormFieldComponent.propDecorators = {
|
|
115
|
-
value: [{ type: Input, args: ['value',] }],
|
|
116
|
-
label: [{ type: Input, args: ['label',] }],
|
|
117
|
-
textAlign: [{ type: Input, args: ['textAlign',] }],
|
|
118
|
-
formatNumber: [{ type: Input, args: ['formatNumber',] }],
|
|
119
|
-
decimalPlaces: [{ type: Input, args: ['decimalPlaces',] }],
|
|
120
|
-
roundValue: [{ type: Input, args: ['roundDisplayValue',] }],
|
|
121
|
-
autofillDecimals: [{ type: Input, args: ['autofillDecimals',] }],
|
|
122
|
-
unit: [{ type: Input, args: ['unit',] }],
|
|
123
|
-
unitPosition: [{ type: Input, args: ['unitPosition',] }],
|
|
124
|
-
errorMessage: [{ type: Input, args: ['errorMessage',] }],
|
|
125
|
-
multiline: [{ type: Input }],
|
|
126
|
-
rows: [{ type: Input }],
|
|
127
|
-
id: [{ type: Input }],
|
|
128
|
-
shrinkIfEmpty: [{ type: Input }],
|
|
129
|
-
inputEl: [{ type: ViewChild, args: ['inputEl',] }]
|
|
130
|
-
};
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG9ubHktZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvbWF0ZXJpYWwtYWRkb25zL21hdGVyaWFsLWFkZG9ucy9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjLyIsInNvdXJjZXMiOlsibGliL3JlYWRvbmx5L3JlYWRvbmx5LWZvcm0tZmllbGQvcmVhZG9ubHktZm9ybS1maWVsZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFFTCxTQUFTLEVBRVQsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRWhGOzs7O0dBSUc7QUFPSCxNQUFNLE9BQU8sMEJBQTBCO0lBNkJyQyxZQUFvQixjQUFpQyxFQUFVLFFBQW1CLEVBQVUsbUJBQXdDO1FBQWhILG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUFBVSx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBMUJoSCxjQUFTLEdBQXFCLE1BQU0sQ0FBQztRQUNsQyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNwQixrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUNkLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDcEIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ3JDLFNBQUksR0FBa0IsSUFBSSxDQUFDO1FBQ25CLGlCQUFZLEdBQXFCLE1BQU0sQ0FBQztRQUN4QyxpQkFBWSxHQUFrQixJQUFJLENBQUM7UUFDakQsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBRWxCOzs7OztXQUtHO1FBQ00sa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFFL0IsaUJBQVksR0FBc0I7WUFDaEMsWUFBWSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWTtTQUN4QyxDQUFDO0lBS3FJLENBQUM7SUFFeEksV0FBVyxDQUFDLENBQWdCO1FBQzFCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQy9DLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO1lBQ2pCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDdEIsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7YUFDZjtTQUNGO2FBQU0sSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDOUQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ3ZELGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtnQkFDakMsZUFBZSxFQUFFLElBQUk7Z0JBQ3JCLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7YUFDeEMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCw4Q0FBOEM7SUFDOUMsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsMEZBQTBGO1FBQzFGLHVEQUF1RDtRQUN2RCxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxXQUFXLEtBQUssQ0FBQyxFQUFFO1lBQ2pGLG1EQUFtRDtZQUNuRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDO1lBRXRFLDhEQUE4RDtZQUM5RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRXBELElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxNQUFNLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUMzRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLGVBQWUsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDOUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ25GO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUMzRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLGNBQWMsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDN0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUN4RDtTQUNGO1FBRUQsZ0VBQWdFO1FBQ2hFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxNQUFNLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxPQUFPLEVBQUU7WUFDakYsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUM1RixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1lBQzFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUNqRixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQzdFLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLGFBQWEsR0FBRyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUVuRixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMvQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ2hFLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ3pFLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7Z0JBQzFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7Z0JBQzNDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUM7YUFDM0M7WUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ3JDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ2pJLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDO1NBQ3pDO1FBQ0QsMkJBQTJCO1FBQzNCLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztTQUN2QztJQUNILENBQUM7OztZQTFHRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtnQkFDbkMsa2xCQUFtRDs7YUFFcEQ7OztZQXRCQyxpQkFBaUI7WUFLakIsU0FBUztZQUtGLG1CQUFtQjs7O29CQWN6QixLQUFLLFNBQUMsT0FBTztvQkFDYixLQUFLLFNBQUMsT0FBTzt3QkFDYixLQUFLLFNBQUMsV0FBVzsyQkFDakIsS0FBSyxTQUFDLGNBQWM7NEJBQ3BCLEtBQUssU0FBQyxlQUFlO3lCQUNyQixLQUFLLFNBQUMsbUJBQW1COytCQUN6QixLQUFLLFNBQUMsa0JBQWtCO21CQUN4QixLQUFLLFNBQUMsTUFBTTsyQkFDWixLQUFLLFNBQUMsY0FBYzsyQkFDcEIsS0FBSyxTQUFDLGNBQWM7d0JBQ3BCLEtBQUs7bUJBQ0wsS0FBSztpQkFDTCxLQUFLOzRCQU9MLEtBQUs7c0JBQ0wsU0FBUyxTQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdDaGVja2VkLFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBSZW5kZXJlcjIsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFcnJvclN0YXRlTWF0Y2hlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTnVtYmVyRm9ybWF0U2VydmljZSB9IGZyb20gJy4uLy4uL251bWVyaWMtZmllbGQvbnVtYmVyLWZvcm1hdC5zZXJ2aWNlJztcblxuLyoqXG4gKiBSZWFkLW9ubHkgbWF0LWZvcm0tZmllbGQgcmVwcmVzZW50YXRpb24gb2YgcHJvdmlkZWQgdmFsdWVcbiAqXG4gKiBAYXV0aG9yIFN0ZWZhbiBMYWVzc2VyXG4gKi9cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWFkLXJlYWRvbmx5LWZvcm0tZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVhZG9ubHktZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlYWRvbmx5LWZvcm0tZmllbGQuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBSZWFkT25seUZvcm1GaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3Q2hlY2tlZCB7XG4gIEBJbnB1dCgndmFsdWUnKSB2YWx1ZTogYW55O1xuICBASW5wdXQoJ2xhYmVsJykgbGFiZWw6IHN0cmluZztcbiAgQElucHV0KCd0ZXh0QWxpZ24nKSB0ZXh0QWxpZ246ICdyaWdodCcgfCAnbGVmdCcgPSAnbGVmdCc7XG4gIEBJbnB1dCgnZm9ybWF0TnVtYmVyJykgZm9ybWF0TnVtYmVyID0gZmFsc2U7XG4gIEBJbnB1dCgnZGVjaW1hbFBsYWNlcycpIGRlY2ltYWxQbGFjZXMgPSAyO1xuICBASW5wdXQoJ3JvdW5kRGlzcGxheVZhbHVlJykgcm91bmRWYWx1ZSA9IGZhbHNlO1xuICBASW5wdXQoJ2F1dG9maWxsRGVjaW1hbHMnKSBhdXRvZmlsbERlY2ltYWxzID0gZmFsc2U7XG4gIEBJbnB1dCgndW5pdCcpIHVuaXQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoJ3VuaXRQb3NpdGlvbicpIHVuaXRQb3NpdGlvbjogJ3JpZ2h0JyB8ICdsZWZ0JyA9ICdsZWZ0JztcbiAgQElucHV0KCdlcnJvck1lc3NhZ2UnKSBlcnJvck1lc3NhZ2U6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBtdWx0aWxpbmUgPSBmYWxzZTtcbiAgQElucHV0KCkgcm93cyA9IDM7XG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gIC8qXG4gICAqIElmIHNocmlua0lmRW1wdHkgaXMgc2V0IHRvIFwiZmFsc2VcIiwgbm90aGluZyBjaGFuZ2VzXG4gICAqIElmIHNldCB0byBcInRydWVcIiBhbmQgbXVsdGlsaW5lIGlzIGFsc28gXCJ0cnVlXCIsIHRoZSB0ZXh0YXJlYSB3aWxsXG4gICAqIHNocmluayB0byBvbmUgcm93LCBpZiB2YWx1ZSBpcyBlbXB0eS9udWxsL3VuZGVmaW5lZC5cbiAgICogT3RoZXJ3aXNlLCB0aGUgZGVmaW5lZCByb3dzLXZhbHVlIHdpbGwgYmUgdXNlZFxuICAgKi9cbiAgQElucHV0KCkgc2hyaW5rSWZFbXB0eSA9IGZhbHNlO1xuICBAVmlld0NoaWxkKCdpbnB1dEVsJykgaW5wdXRFbDogRWxlbWVudFJlZjtcbiAgZXJyb3JNYXRjaGVyOiBFcnJvclN0YXRlTWF0Y2hlciA9IHtcbiAgICBpc0Vycm9yU3RhdGU6ICgpID0+ICEhdGhpcy5lcnJvck1lc3NhZ2UsXG4gIH07XG5cbiAgcHJpdmF0ZSB1bml0U3BhbjogSFRNTFNwYW5FbGVtZW50O1xuICBwcml2YXRlIHRleHRTcGFuOiBIVE1MU3BhbkVsZW1lbnQ7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBudW1iZXJGb3JtYXRTZXJ2aWNlOiBOdW1iZXJGb3JtYXRTZXJ2aWNlKSB7fVxuXG4gIG5nT25DaGFuZ2VzKF86IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoIU51bWJlckZvcm1hdFNlcnZpY2UudmFsdWVJc1NldCh0aGlzLnZhbHVlKSkge1xuICAgICAgdGhpcy52YWx1ZSA9ICctJztcbiAgICAgIGlmICh0aGlzLnNocmlua0lmRW1wdHkpIHtcbiAgICAgICAgdGhpcy5yb3dzID0gMTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMuZm9ybWF0TnVtYmVyICYmIHR5cGVvZiB0aGlzLnZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMubnVtYmVyRm9ybWF0U2VydmljZS5mb3JtYXQodGhpcy52YWx1ZSwge1xuICAgICAgICBkZWNpbWFsUGxhY2VzOiB0aGlzLmRlY2ltYWxQbGFjZXMsXG4gICAgICAgIGZpbmFsRm9ybWF0dGluZzogdHJ1ZSxcbiAgICAgICAgYXV0b2ZpbGxEZWNpbWFsczogdGhpcy5hdXRvZmlsbERlY2ltYWxzLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLy8gVE9ETyBkaXJlY3QgY29weSBmcm9tIE51bWVyaWNGaWVsZERpcmVjdGl2ZVxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgdGhpcy5pbmplY3RVbml0U3ltYm9sKCk7XG4gIH1cblxuICBwcml2YXRlIGluamVjdFVuaXRTeW1ib2woKTogdm9pZCB7XG4gICAgLy8gTmVlZCB0byBpbmplY3QgdGhlIHVuaXQgc3ltYm9sIHdoZW4gdGhlIGlucHV0IGVsZW1lbnQgd2lkdGggaXMgc2V0IHRvIGl0cyBhY3R1YWwgdmFsdWUsXG4gICAgLy8gb3RoZXJ3aXNlIHRoZSBpY29uIHdvbnQgc2hvdyBpbiB0aGUgY29ycmVjdCBwb3NpdGlvblxuICAgIGlmICghIXRoaXMudW5pdCAmJiAhdGhpcy51bml0U3BhbiAmJiB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCAhPT0gMCkge1xuICAgICAgLy8gR2V0IHRoZSBpbnB1dCB3cmFwcGVyIGFuZCBhcHBseSBuZWNlc3Nhcnkgc3R5bGVzXG4gICAgICBjb25zdCBpbnB1dFdyYXBwZXIgPSB0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudC5wYXJlbnROb2RlLnBhcmVudE5vZGU7XG5cbiAgICAgIC8vIENyZWF0ZSB0aGUgc3BhbiB3aXRoIHVuaXQgc3ltYm9sIGFuZCBhcHBseSBuZWNlc3Nhcnkgc3R5bGVzXG4gICAgICB0aGlzLnVuaXRTcGFuID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG5cbiAgICAgIGlmICh0aGlzLnVuaXRQb3NpdGlvbiA9PT0gJ2xlZnQnKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMudW5pdFNwYW4sICdtYXRQcmVmaXgnLCAnJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy51bml0U3BhbiwgJ3BhZGRpbmctcmlnaHQnLCAnNXB4Jyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuaW5zZXJ0QmVmb3JlKGlucHV0V3JhcHBlciwgdGhpcy51bml0U3BhbiwgaW5wdXRXcmFwcGVyLmNoaWxkcmVuWzBdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMudW5pdFNwYW4sICdtYXRTdWZmaXgnLCAnJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy51bml0U3BhbiwgJ3BhZGRpbmctbGVmdCcsICc1cHgnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChpbnB1dFdyYXBwZXIsIHRoaXMudW5pdFNwYW4pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIHNwZWNpYWwgaGFuZGxpbmcgdG8gbW92ZSB1bml0IHN5bWJvbCBhbG9uZyB3aXRoIGRpc3BsYXkgdmFsdWVcbiAgICBpZiAoISF0aGlzLnVuaXRTcGFuICYmIHRoaXMudGV4dEFsaWduID09PSAnbGVmdCcgJiYgdGhpcy51bml0UG9zaXRpb24gPT09ICdyaWdodCcpIHtcbiAgICAgIGNvbnN0IGlucHV0U3R5bGVzID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCwgbnVsbCk7XG4gICAgICB0aGlzLnVuaXRTcGFuLnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcbiAgICAgIHRoaXMudW5pdFNwYW4uc3R5bGUubWFyZ2luVG9wID0gaW5wdXRTdHlsZXMuZ2V0UHJvcGVydHlWYWx1ZSgnYm9yZGVyLXRvcC13aWR0aCcpO1xuICAgICAgdGhpcy51bml0U3Bhbi5zdHlsZS5wYWRkaW5nVG9wID0gaW5wdXRTdHlsZXMuZ2V0UHJvcGVydHlWYWx1ZSgncGFkZGluZy10b3AnKTtcbiAgICAgIHRoaXMudW5pdFNwYW4uc3R5bGUucGFkZGluZ0JvdHRvbSA9IGlucHV0U3R5bGVzLmdldFByb3BlcnR5VmFsdWUoJ3BhZGRpbmctYm90dG9tJyk7XG5cbiAgICAgIGlmICghdGhpcy50ZXh0U3Bhbikge1xuICAgICAgICB0aGlzLnRleHRTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMudGV4dFNwYW4pO1xuICAgICAgICB0aGlzLnRleHRTcGFuLnN0eWxlLmZvbnQgPSBpbnB1dFN0eWxlcy5nZXRQcm9wZXJ0eVZhbHVlKCdmb250Jyk7XG4gICAgICAgIHRoaXMudGV4dFNwYW4uc3R5bGUuZm9udFNpemUgPSBpbnB1dFN0eWxlcy5nZXRQcm9wZXJ0eVZhbHVlKCdmb250LXNpemUnKTtcbiAgICAgICAgdGhpcy50ZXh0U3Bhbi5zdHlsZS5oZWlnaHQgPSAnYXV0byc7XG4gICAgICAgIHRoaXMudGV4dFNwYW4uc3R5bGUud2lkdGggPSAnYXV0byc7XG4gICAgICAgIHRoaXMudGV4dFNwYW4uc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgICAgICB0aGlzLnRleHRTcGFuLnN0eWxlLnRvcCA9ICcwJztcbiAgICAgICAgdGhpcy50ZXh0U3Bhbi5zdHlsZS53aGl0ZVNwYWNlID0gJ25vLXdyYXAnO1xuICAgICAgICB0aGlzLnRleHRTcGFuLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICAgIH1cbiAgICAgIHRoaXMudGV4dFNwYW4uaW5uZXJIVE1MID0gdGhpcy52YWx1ZTtcbiAgICAgIGNvbnN0IHdpZHRoID0gTWF0aC5taW4odGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGggLSB0aGlzLnVuaXRTcGFuLmNsaWVudFdpZHRoLCBNYXRoLmNlaWwodGhpcy50ZXh0U3Bhbi5jbGllbnRXaWR0aCkpO1xuICAgICAgdGhpcy51bml0U3Bhbi5zdHlsZS5sZWZ0ID0gd2lkdGggKyAncHgnO1xuICAgIH1cbiAgICAvLyBhbHdheXMgcmVzZXQgdW5pdCBzeW1ib2xcbiAgICBpZiAoISF0aGlzLnVuaXRTcGFuKSB7XG4gICAgICB0aGlzLnVuaXRTcGFuLnRleHRDb250ZW50ID0gdGhpcy51bml0O1xuICAgIH1cbiAgfVxufVxuIl19
|
package/esm2015/lib/readonly/readonly-form-field-wrapper/readonly-form-field-wrapper.component.js
DELETED
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectorRef, Component, ElementRef, Input, ViewChild, } from '@angular/core';
|
|
2
|
-
/**
|
|
3
|
-
* Wraps a mat-form-field to replace it by a readOnly representation if necessary
|
|
4
|
-
*
|
|
5
|
-
* @author Stefan Laesser
|
|
6
|
-
*/
|
|
7
|
-
export class ReadOnlyFormFieldWrapperComponent {
|
|
8
|
-
constructor(changeDetector, elementRef) {
|
|
9
|
-
this.changeDetector = changeDetector;
|
|
10
|
-
this.elementRef = elementRef;
|
|
11
|
-
/**
|
|
12
|
-
* If set to "false", the contained mat-form-field is rendered in all it's glory.
|
|
13
|
-
* If set to "true", a readonly representation of the value is shown using the mat-form-fields label.
|
|
14
|
-
*/
|
|
15
|
-
this.readonly = true;
|
|
16
|
-
this.textAlign = 'left';
|
|
17
|
-
this.formatNumber = false;
|
|
18
|
-
this.decimalPlaces = 2;
|
|
19
|
-
this.roundValue = false;
|
|
20
|
-
this.autofillDecimals = false;
|
|
21
|
-
this.unit = null;
|
|
22
|
-
this.unitPosition = 'left';
|
|
23
|
-
this.errorMessage = null;
|
|
24
|
-
/**
|
|
25
|
-
* If set to "false", a readonly input will be rendered.
|
|
26
|
-
* If set to "true", a readonly textarea will be rendered instead.
|
|
27
|
-
*/
|
|
28
|
-
this.multiline = false;
|
|
29
|
-
/**
|
|
30
|
-
* Defines the rows for the readonly textarea.
|
|
31
|
-
*/
|
|
32
|
-
this.rows = 3;
|
|
33
|
-
/**
|
|
34
|
-
* If shrinkIfEmpty is set to "false", nothing changes
|
|
35
|
-
* If set to "true" and multiline is also "true", the textarea will
|
|
36
|
-
* shrink to one row, if value is empty/null/undefined.
|
|
37
|
-
* Otherwise, the defined rows-value will be used
|
|
38
|
-
*/
|
|
39
|
-
this.shrinkIfEmpty = false;
|
|
40
|
-
this.toolTipForInputEnabled = false;
|
|
41
|
-
}
|
|
42
|
-
ngOnInit() {
|
|
43
|
-
this.doRendering();
|
|
44
|
-
}
|
|
45
|
-
ngAfterViewInit() {
|
|
46
|
-
this.setReadonlyFieldStyle();
|
|
47
|
-
this.doRendering();
|
|
48
|
-
}
|
|
49
|
-
ngAfterViewChecked() {
|
|
50
|
-
this.setReadonlyFieldStyle();
|
|
51
|
-
this.setTooltipForOverflownField();
|
|
52
|
-
}
|
|
53
|
-
ngOnChanges(_) {
|
|
54
|
-
this.doRendering();
|
|
55
|
-
}
|
|
56
|
-
getLabel() {
|
|
57
|
-
if (!this.label) {
|
|
58
|
-
this.extractLabel();
|
|
59
|
-
}
|
|
60
|
-
return this.label;
|
|
61
|
-
}
|
|
62
|
-
doRendering() {
|
|
63
|
-
if (!this.originalContent) {
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
if (!this.readonly) {
|
|
67
|
-
this.correctWidth();
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
this.changeDetector.detectChanges();
|
|
71
|
-
}
|
|
72
|
-
extractLabel() {
|
|
73
|
-
if (!this.originalContent || !this.originalContent.nativeElement) {
|
|
74
|
-
return null;
|
|
75
|
-
}
|
|
76
|
-
const labelElement = this.originalContent.nativeElement.querySelector('mat-label');
|
|
77
|
-
this.label = labelElement ? labelElement.innerHTML : 'mat-label is missing!';
|
|
78
|
-
}
|
|
79
|
-
correctWidth() {
|
|
80
|
-
const formField = this.originalContent.nativeElement.querySelector('mat-form-field');
|
|
81
|
-
if (formField) {
|
|
82
|
-
formField.setAttribute('style', 'width:100%');
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
setReadonlyFieldStyle() {
|
|
86
|
-
var _a, _b;
|
|
87
|
-
const input = (_b = (_a = this.readOnlyContentWrapper) === null || _a === void 0 ? void 0 : _a.nativeElement) === null || _b === void 0 ? void 0 : _b.querySelector('input');
|
|
88
|
-
if (input) {
|
|
89
|
-
const textOverFlowStyleValue = this.getTextOverFlowStyleValue();
|
|
90
|
-
if (textOverFlowStyleValue) {
|
|
91
|
-
input.setAttribute('style', 'text-overflow: ' + textOverFlowStyleValue);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
// Ellipsis is enabled by default as text-overflow behaviour
|
|
96
|
-
getTextOverFlowStyleValue() {
|
|
97
|
-
var _a, _b;
|
|
98
|
-
// it works only if the style is added to the component directly. Should find a way for get it from the calculated
|
|
99
|
-
// style. Than it would be possible to define the text-overflow in css for the whole application
|
|
100
|
-
const textOverflow = (_b = (_a = this.elementRef) === null || _a === void 0 ? void 0 : _a.nativeElement) === null || _b === void 0 ? void 0 : _b.style.textOverflow;
|
|
101
|
-
if (!textOverflow) {
|
|
102
|
-
return 'ellipsis';
|
|
103
|
-
}
|
|
104
|
-
return textOverflow;
|
|
105
|
-
}
|
|
106
|
-
setTooltipForOverflownField() {
|
|
107
|
-
var _a, _b;
|
|
108
|
-
if (this.isEllipsisForTextOverflowEnabled()) {
|
|
109
|
-
const input = (_b = (_a = this.readOnlyContentWrapper) === null || _a === void 0 ? void 0 : _a.nativeElement) === null || _b === void 0 ? void 0 : _b.querySelector('input');
|
|
110
|
-
if (input) {
|
|
111
|
-
this.toolTipForInputEnabled = this.isTextOverflown(input);
|
|
112
|
-
if (this.toolTipForInputEnabled) {
|
|
113
|
-
this.toolTipText = this.calculateToolTipText();
|
|
114
|
-
}
|
|
115
|
-
this.changeDetector.detectChanges();
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
isEllipsisForTextOverflowEnabled() {
|
|
120
|
-
return this.getTextOverFlowStyleValue() === 'ellipsis';
|
|
121
|
-
}
|
|
122
|
-
isTextOverflown(input) {
|
|
123
|
-
if (input) {
|
|
124
|
-
return input.offsetWidth < input.scrollWidth;
|
|
125
|
-
}
|
|
126
|
-
return false;
|
|
127
|
-
}
|
|
128
|
-
calculateToolTipText() {
|
|
129
|
-
if (!this.unit) {
|
|
130
|
-
return this.value;
|
|
131
|
-
}
|
|
132
|
-
return this.unitPosition === 'left' ? this.unit + ' ' + this.value : this.value + ' ' + this.unit;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
ReadOnlyFormFieldWrapperComponent.decorators = [
|
|
136
|
-
{ type: Component, args: [{
|
|
137
|
-
selector: 'mad-readonly-form-field-wrapper',
|
|
138
|
-
template: "<div #contentWrapper [hidden]=\"readonly\">\n <ng-content></ng-content>\n</div>\n\n<div #readOnlyContentWrapper>\n <ng-container *ngIf=\"!!readonly\">\n <mad-readonly-form-field\n [label]=\"getLabel()\"\n [value]=\"value\"\n [textAlign]=\"textAlign\"\n [formatNumber]=\"formatNumber\"\n [decimalPlaces]=\"decimalPlaces\"\n [roundDisplayValue]=\"roundValue\"\n [autofillDecimals]=\"autofillDecimals\"\n [unit]=\"unit\"\n [unitPosition]=\"unitPosition\"\n [errorMessage]=\"errorMessage\"\n [multiline]=\"multiline\"\n [rows]=\"rows\"\n [shrinkIfEmpty]=\"shrinkIfEmpty\"\n [id]=\"id\"\n matTooltip=\"{{toolTipText}}\"\n matTooltipPosition=\"right\"\n matTooltipClass=\"custom-tooltip\"\n matTooltipDisabled=\"{{!toolTipForInputEnabled}}\">\n </mad-readonly-form-field>\n </ng-container>\n</div>\n",
|
|
139
|
-
styles: ["div,mat-form-field{width:inherit}::ng-deep .custom-tooltip{font-size:14px!important;white-space:normal!important;word-break:break-all!important}"]
|
|
140
|
-
},] }
|
|
141
|
-
];
|
|
142
|
-
ReadOnlyFormFieldWrapperComponent.ctorParameters = () => [
|
|
143
|
-
{ type: ChangeDetectorRef },
|
|
144
|
-
{ type: ElementRef }
|
|
145
|
-
];
|
|
146
|
-
ReadOnlyFormFieldWrapperComponent.propDecorators = {
|
|
147
|
-
originalContent: [{ type: ViewChild, args: ['contentWrapper', { static: false },] }],
|
|
148
|
-
readOnlyContentWrapper: [{ type: ViewChild, args: ['readOnlyContentWrapper', { static: false },] }],
|
|
149
|
-
readonly: [{ type: Input }],
|
|
150
|
-
value: [{ type: Input, args: ['value',] }],
|
|
151
|
-
textAlign: [{ type: Input, args: ['textAlign',] }],
|
|
152
|
-
formatNumber: [{ type: Input, args: ['formatNumber',] }],
|
|
153
|
-
decimalPlaces: [{ type: Input, args: ['decimalPlaces',] }],
|
|
154
|
-
roundValue: [{ type: Input, args: ['roundDisplayValue',] }],
|
|
155
|
-
autofillDecimals: [{ type: Input, args: ['autofillDecimals',] }],
|
|
156
|
-
unit: [{ type: Input, args: ['unit',] }],
|
|
157
|
-
unitPosition: [{ type: Input, args: ['unitPosition',] }],
|
|
158
|
-
errorMessage: [{ type: Input, args: ['errorMessage',] }],
|
|
159
|
-
id: [{ type: Input }],
|
|
160
|
-
multiline: [{ type: Input }],
|
|
161
|
-
rows: [{ type: Input }],
|
|
162
|
-
shrinkIfEmpty: [{ type: Input }]
|
|
163
|
-
};
|
|
164
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG9ubHktZm9ybS1maWVsZC13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9ydW5uZXIvd29yay9tYXRlcmlhbC1hZGRvbnMvbWF0ZXJpYWwtYWRkb25zL3Byb2plY3RzL21hdGVyaWFsLWFkZG9ucy9zcmMvIiwic291cmNlcyI6WyJsaWIvcmVhZG9ubHkvcmVhZG9ubHktZm9ybS1maWVsZC13cmFwcGVyL3JlYWRvbmx5LWZvcm0tZmllbGQtd3JhcHBlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFJTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkI7Ozs7R0FJRztBQU1ILE1BQU0sT0FBTyxpQ0FBaUM7SUFzRDVDLFlBQW9CLGNBQWlDLEVBQVUsVUFBc0I7UUFBakUsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQWhEckY7OztXQUdHO1FBQ00sYUFBUSxHQUFHLElBQUksQ0FBQztRQVFMLGNBQVMsR0FBcUIsTUFBTSxDQUFDO1FBQ2xDLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNwQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDckMsU0FBSSxHQUFrQixJQUFJLENBQUM7UUFDbkIsaUJBQVksR0FBcUIsTUFBTSxDQUFDO1FBQ3hDLGlCQUFZLEdBQWtCLElBQUksQ0FBQztRQUUxRDs7O1dBR0c7UUFDTSxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRTNCOztXQUVHO1FBQ00sU0FBSSxHQUFHLENBQUMsQ0FBQztRQUVsQjs7Ozs7V0FLRztRQUNNLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBTy9CLDJCQUFzQixHQUFHLEtBQUssQ0FBQztJQUd5RCxDQUFDO0lBRXpGLFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsV0FBVyxDQUFDLENBQWdCO1FBQzFCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3JCO1FBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3pCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwQixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFTyxZQUFZO1FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUU7WUFDaEUsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuRixJQUFJLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUM7SUFDL0UsQ0FBQztJQUVPLFlBQVk7UUFDbEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDckYsSUFBSSxTQUFTLEVBQUU7WUFDYixTQUFTLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQztTQUMvQztJQUNILENBQUM7SUFFTyxxQkFBcUI7O1FBQzNCLE1BQU0sS0FBSyxlQUFHLElBQUksQ0FBQyxzQkFBc0IsMENBQUUsYUFBYSwwQ0FBRSxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFakYsSUFBSSxLQUFLLEVBQUU7WUFDVCxNQUFNLHNCQUFzQixHQUFHLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1lBQ2hFLElBQUksc0JBQXNCLEVBQUU7Z0JBQzFCLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLGlCQUFpQixHQUFHLHNCQUFzQixDQUFDLENBQUM7YUFDekU7U0FDRjtJQUNILENBQUM7SUFFRCw0REFBNEQ7SUFDcEQseUJBQXlCOztRQUMvQixrSEFBa0g7UUFDbEgsZ0dBQWdHO1FBQ2hHLE1BQU0sWUFBWSxlQUFHLElBQUksQ0FBQyxVQUFVLDBDQUFFLGFBQWEsMENBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQztRQUN4RSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ2pCLE9BQU8sVUFBVSxDQUFDO1NBQ25CO1FBRUQsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVPLDJCQUEyQjs7UUFDakMsSUFBSSxJQUFJLENBQUMsZ0NBQWdDLEVBQUUsRUFBRTtZQUMzQyxNQUFNLEtBQUssZUFBRyxJQUFJLENBQUMsc0JBQXNCLDBDQUFFLGFBQWEsMENBQUUsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRWpGLElBQUksS0FBSyxFQUFFO2dCQUNULElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMxRCxJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtvQkFDL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztpQkFDaEQ7Z0JBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQzthQUNyQztTQUNGO0lBQ0gsQ0FBQztJQUVPLGdDQUFnQztRQUN0QyxPQUFPLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxLQUFLLFVBQVUsQ0FBQztJQUN6RCxDQUFDO0lBRU8sZUFBZSxDQUFDLEtBQVU7UUFDaEMsSUFBSSxLQUFLLEVBQUU7WUFDVCxPQUFPLEtBQUssQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQztTQUM5QztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNkLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztTQUNuQjtRQUVELE9BQU8sSUFBSSxDQUFDLFlBQVksS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDcEcsQ0FBQzs7O1lBdktGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsaUNBQWlDO2dCQUMzQyx3NEJBQTJEOzthQUU1RDs7O1lBbkJDLGlCQUFpQjtZQUVqQixVQUFVOzs7OEJBbUJULFNBQVMsU0FBQyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7cUNBRTdDLFNBQVMsU0FBQyx3QkFBd0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7dUJBT3JELEtBQUs7b0JBTUwsS0FBSyxTQUFDLE9BQU87d0JBRWIsS0FBSyxTQUFDLFdBQVc7MkJBQ2pCLEtBQUssU0FBQyxjQUFjOzRCQUNwQixLQUFLLFNBQUMsZUFBZTt5QkFDckIsS0FBSyxTQUFDLG1CQUFtQjsrQkFDekIsS0FBSyxTQUFDLGtCQUFrQjttQkFDeEIsS0FBSyxTQUFDLE1BQU07MkJBQ1osS0FBSyxTQUFDLGNBQWM7MkJBQ3BCLEtBQUssU0FBQyxjQUFjO2lCQUNwQixLQUFLO3dCQUtMLEtBQUs7bUJBS0wsS0FBSzs0QkFRTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIFdyYXBzIGEgbWF0LWZvcm0tZmllbGQgdG8gcmVwbGFjZSBpdCBieSBhIHJlYWRPbmx5IHJlcHJlc2VudGF0aW9uIGlmIG5lY2Vzc2FyeVxuICpcbiAqIEBhdXRob3IgU3RlZmFuIExhZXNzZXJcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWFkLXJlYWRvbmx5LWZvcm0tZmllbGQtd3JhcHBlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWFkb25seS1mb3JtLWZpZWxkLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZWFkb25seS1mb3JtLWZpZWxkLXdyYXBwZXIuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBSZWFkT25seUZvcm1GaWVsZFdyYXBwZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3Q2hlY2tlZCB7XG4gIEBWaWV3Q2hpbGQoJ2NvbnRlbnRXcmFwcGVyJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIG9yaWdpbmFsQ29udGVudDogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgncmVhZE9ubHlDb250ZW50V3JhcHBlcicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICByZWFkT25seUNvbnRlbnRXcmFwcGVyOiBFbGVtZW50UmVmO1xuXG4gIC8qKlxuICAgKiBJZiBzZXQgdG8gXCJmYWxzZVwiLCB0aGUgY29udGFpbmVkIG1hdC1mb3JtLWZpZWxkIGlzIHJlbmRlcmVkIGluIGFsbCBpdCdzIGdsb3J5LlxuICAgKiBJZiBzZXQgdG8gXCJ0cnVlXCIsIGEgcmVhZG9ubHkgcmVwcmVzZW50YXRpb24gb2YgdGhlIHZhbHVlIGlzIHNob3duIHVzaW5nIHRoZSBtYXQtZm9ybS1maWVsZHMgbGFiZWwuXG4gICAqL1xuICBASW5wdXQoKSByZWFkb25seSA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFRoaXMgaW5wdXQgKk1VU1QgTUFUQ0gqIHRoZSBtYXQtZm9ybS1maWVsZCB2YWx1ZSB0byBlbnN1cmUgY29ycmVjdCBkYXRhXG4gICAqIGJpbmRpbmcgYW5kIGZvcm1hdHRpbmcgb2YgcmVhZE9ubHkgcmVwcmVzZW50YXRpb24hXG4gICAqL1xuICBASW5wdXQoJ3ZhbHVlJykgdmFsdWU6IGFueTtcblxuICBASW5wdXQoJ3RleHRBbGlnbicpIHRleHRBbGlnbjogJ3JpZ2h0JyB8ICdsZWZ0JyA9ICdsZWZ0JztcbiAgQElucHV0KCdmb3JtYXROdW1iZXInKSBmb3JtYXROdW1iZXIgPSBmYWxzZTtcbiAgQElucHV0KCdkZWNpbWFsUGxhY2VzJykgZGVjaW1hbFBsYWNlcyA9IDI7XG4gIEBJbnB1dCgncm91bmREaXNwbGF5VmFsdWUnKSByb3VuZFZhbHVlID0gZmFsc2U7XG4gIEBJbnB1dCgnYXV0b2ZpbGxEZWNpbWFscycpIGF1dG9maWxsRGVjaW1hbHMgPSBmYWxzZTtcbiAgQElucHV0KCd1bml0JykgdW5pdDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgndW5pdFBvc2l0aW9uJykgdW5pdFBvc2l0aW9uOiAncmlnaHQnIHwgJ2xlZnQnID0gJ2xlZnQnO1xuICBASW5wdXQoJ2Vycm9yTWVzc2FnZScpIGVycm9yTWVzc2FnZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJZiBzZXQgdG8gXCJmYWxzZVwiLCBhIHJlYWRvbmx5IGlucHV0IHdpbGwgYmUgcmVuZGVyZWQuXG4gICAqIElmIHNldCB0byBcInRydWVcIiwgYSByZWFkb25seSB0ZXh0YXJlYSB3aWxsIGJlIHJlbmRlcmVkIGluc3RlYWQuXG4gICAqL1xuICBASW5wdXQoKSBtdWx0aWxpbmUgPSBmYWxzZTtcblxuICAvKipcbiAgICogRGVmaW5lcyB0aGUgcm93cyBmb3IgdGhlIHJlYWRvbmx5IHRleHRhcmVhLlxuICAgKi9cbiAgQElucHV0KCkgcm93cyA9IDM7XG5cbiAgLyoqXG4gICAqIElmIHNocmlua0lmRW1wdHkgaXMgc2V0IHRvIFwiZmFsc2VcIiwgbm90aGluZyBjaGFuZ2VzXG4gICAqIElmIHNldCB0byBcInRydWVcIiBhbmQgbXVsdGlsaW5lIGlzIGFsc28gXCJ0cnVlXCIsIHRoZSB0ZXh0YXJlYSB3aWxsXG4gICAqIHNocmluayB0byBvbmUgcm93LCBpZiB2YWx1ZSBpcyBlbXB0eS9udWxsL3VuZGVmaW5lZC5cbiAgICogT3RoZXJ3aXNlLCB0aGUgZGVmaW5lZCByb3dzLXZhbHVlIHdpbGwgYmUgdXNlZFxuICAgKi9cbiAgQElucHV0KCkgc2hyaW5rSWZFbXB0eSA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBBdXRvbWF0aWNhbGx5IHRha2VuIGZyb20gdGhlIGNvbnRhaW5lZCA8bWF0LWxhYmVsPlxuICAgKi9cbiAgbGFiZWw6IHN0cmluZztcblxuICB0b29sVGlwRm9ySW5wdXRFbmFibGVkID0gZmFsc2U7XG4gIHRvb2xUaXBUZXh0OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZikge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRvUmVuZGVyaW5nKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRSZWFkb25seUZpZWxkU3R5bGUoKTtcbiAgICB0aGlzLmRvUmVuZGVyaW5nKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRSZWFkb25seUZpZWxkU3R5bGUoKTtcbiAgICB0aGlzLnNldFRvb2x0aXBGb3JPdmVyZmxvd25GaWVsZCgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoXzogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIHRoaXMuZG9SZW5kZXJpbmcoKTtcbiAgfVxuXG4gIGdldExhYmVsKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLmxhYmVsKSB7XG4gICAgICB0aGlzLmV4dHJhY3RMYWJlbCgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5sYWJlbDtcbiAgfVxuXG4gIHByaXZhdGUgZG9SZW5kZXJpbmcoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm9yaWdpbmFsQ29udGVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXRoaXMucmVhZG9ubHkpIHtcbiAgICAgIHRoaXMuY29ycmVjdFdpZHRoKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIGV4dHJhY3RMYWJlbCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMub3JpZ2luYWxDb250ZW50IHx8ICF0aGlzLm9yaWdpbmFsQ29udGVudC5uYXRpdmVFbGVtZW50KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgbGFiZWxFbGVtZW50ID0gdGhpcy5vcmlnaW5hbENvbnRlbnQubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdtYXQtbGFiZWwnKTtcbiAgICB0aGlzLmxhYmVsID0gbGFiZWxFbGVtZW50ID8gbGFiZWxFbGVtZW50LmlubmVySFRNTCA6ICdtYXQtbGFiZWwgaXMgbWlzc2luZyEnO1xuICB9XG5cbiAgcHJpdmF0ZSBjb3JyZWN0V2lkdGgoKTogdm9pZCB7XG4gICAgY29uc3QgZm9ybUZpZWxkID0gdGhpcy5vcmlnaW5hbENvbnRlbnQubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdtYXQtZm9ybS1maWVsZCcpO1xuICAgIGlmIChmb3JtRmllbGQpIHtcbiAgICAgIGZvcm1GaWVsZC5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ3dpZHRoOjEwMCUnKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldFJlYWRvbmx5RmllbGRTdHlsZSgpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMucmVhZE9ubHlDb250ZW50V3JhcHBlcj8ubmF0aXZlRWxlbWVudD8ucXVlcnlTZWxlY3RvcignaW5wdXQnKTtcblxuICAgIGlmIChpbnB1dCkge1xuICAgICAgY29uc3QgdGV4dE92ZXJGbG93U3R5bGVWYWx1ZSA9IHRoaXMuZ2V0VGV4dE92ZXJGbG93U3R5bGVWYWx1ZSgpO1xuICAgICAgaWYgKHRleHRPdmVyRmxvd1N0eWxlVmFsdWUpIHtcbiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCdzdHlsZScsICd0ZXh0LW92ZXJmbG93OiAnICsgdGV4dE92ZXJGbG93U3R5bGVWYWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gRWxsaXBzaXMgaXMgZW5hYmxlZCBieSBkZWZhdWx0IGFzIHRleHQtb3ZlcmZsb3cgYmVoYXZpb3VyXG4gIHByaXZhdGUgZ2V0VGV4dE92ZXJGbG93U3R5bGVWYWx1ZSgpOiBzdHJpbmcge1xuICAgIC8vIGl0IHdvcmtzIG9ubHkgaWYgdGhlIHN0eWxlIGlzIGFkZGVkIHRvIHRoZSBjb21wb25lbnQgZGlyZWN0bHkuIFNob3VsZCBmaW5kIGEgd2F5IGZvciBnZXQgaXQgZnJvbSB0aGUgY2FsY3VsYXRlZFxuICAgIC8vIHN0eWxlLiBUaGFuIGl0IHdvdWxkIGJlIHBvc3NpYmxlIHRvIGRlZmluZSB0aGUgdGV4dC1vdmVyZmxvdyBpbiBjc3MgZm9yIHRoZSB3aG9sZSBhcHBsaWNhdGlvblxuICAgIGNvbnN0IHRleHRPdmVyZmxvdyA9IHRoaXMuZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudD8uc3R5bGUudGV4dE92ZXJmbG93O1xuICAgIGlmICghdGV4dE92ZXJmbG93KSB7XG4gICAgICByZXR1cm4gJ2VsbGlwc2lzJztcbiAgICB9XG5cbiAgICByZXR1cm4gdGV4dE92ZXJmbG93O1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRUb29sdGlwRm9yT3ZlcmZsb3duRmllbGQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNFbGxpcHNpc0ZvclRleHRPdmVyZmxvd0VuYWJsZWQoKSkge1xuICAgICAgY29uc3QgaW5wdXQgPSB0aGlzLnJlYWRPbmx5Q29udGVudFdyYXBwZXI/Lm5hdGl2ZUVsZW1lbnQ/LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jyk7XG5cbiAgICAgIGlmIChpbnB1dCkge1xuICAgICAgICB0aGlzLnRvb2xUaXBGb3JJbnB1dEVuYWJsZWQgPSB0aGlzLmlzVGV4dE92ZXJmbG93bihpbnB1dCk7XG4gICAgICAgIGlmICh0aGlzLnRvb2xUaXBGb3JJbnB1dEVuYWJsZWQpIHtcbiAgICAgICAgICB0aGlzLnRvb2xUaXBUZXh0ID0gdGhpcy5jYWxjdWxhdGVUb29sVGlwVGV4dCgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNFbGxpcHNpc0ZvclRleHRPdmVyZmxvd0VuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VGV4dE92ZXJGbG93U3R5bGVWYWx1ZSgpID09PSAnZWxsaXBzaXMnO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1RleHRPdmVyZmxvd24oaW5wdXQ6IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmIChpbnB1dCkge1xuICAgICAgcmV0dXJuIGlucHV0Lm9mZnNldFdpZHRoIDwgaW5wdXQuc2Nyb2xsV2lkdGg7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgY2FsY3VsYXRlVG9vbFRpcFRleHQoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMudW5pdCkge1xuICAgICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMudW5pdFBvc2l0aW9uID09PSAnbGVmdCcgPyB0aGlzLnVuaXQgKyAnICcgKyB0aGlzLnZhbHVlIDogdGhpcy52YWx1ZSArICcgJyArIHRoaXMudW5pdDtcbiAgfVxufVxuIl19
|
|
@@ -1,19 +0,0 @@
|
|
|
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
|
-
export class ReadOnlyFormFieldModule {
|
|
11
|
-
}
|
|
12
|
-
ReadOnlyFormFieldModule.decorators = [
|
|
13
|
-
{ type: NgModule, args: [{
|
|
14
|
-
declarations: [ReadOnlyFormFieldComponent, ReadOnlyFormFieldWrapperComponent],
|
|
15
|
-
imports: [CommonModule, RouterModule, MatFormFieldModule, MatInputModule, FormsModule, MatTooltipModule],
|
|
16
|
-
exports: [ReadOnlyFormFieldComponent, ReadOnlyFormFieldWrapperComponent],
|
|
17
|
-
},] }
|
|
18
|
-
];
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG9ubHktZm9ybS1maWVsZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvbWF0ZXJpYWwtYWRkb25zL21hdGVyaWFsLWFkZG9ucy9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjLyIsInNvdXJjZXMiOlsibGliL3JlYWRvbmx5L3JlYWRvbmx5LWZvcm0tZmllbGQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxxRUFBcUUsQ0FBQztBQUN4SCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBTzdELE1BQU0sT0FBTyx1QkFBdUI7OztZQUxuQyxRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFLENBQUMsMEJBQTBCLEVBQUUsaUNBQWlDLENBQUM7Z0JBQzdFLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQztnQkFDeEcsT0FBTyxFQUFFLENBQUMsMEJBQTBCLEVBQUUsaUNBQWlDLENBQUM7YUFDekUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBSZWFkT25seUZvcm1GaWVsZFdyYXBwZXJDb21wb25lbnQgfSBmcm9tICcuL3JlYWRvbmx5LWZvcm0tZmllbGQtd3JhcHBlci9yZWFkb25seS1mb3JtLWZpZWxkLXdyYXBwZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFJlYWRPbmx5Rm9ybUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9yZWFkb25seS1mb3JtLWZpZWxkL3JlYWRvbmx5LWZvcm0tZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbUmVhZE9ubHlGb3JtRmllbGRDb21wb25lbnQsIFJlYWRPbmx5Rm9ybUZpZWxkV3JhcHBlckNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJvdXRlck1vZHVsZSwgTWF0Rm9ybUZpZWxkTW9kdWxlLCBNYXRJbnB1dE1vZHVsZSwgRm9ybXNNb2R1bGUsIE1hdFRvb2x0aXBNb2R1bGVdLFxuICBleHBvcnRzOiBbUmVhZE9ubHlGb3JtRmllbGRDb21wb25lbnQsIFJlYWRPbmx5Rm9ybUZpZWxkV3JhcHBlckNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFJlYWRPbmx5Rm9ybUZpZWxkTW9kdWxlIHt9XG4iXX0=
|
|
@@ -1,13 +0,0 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFkLXN0ZXBwZXItYW5pbWF0aW9uLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3J1bm5lci93b3JrL21hdGVyaWFsLWFkZG9ucy9tYXRlcmlhbC1hZGRvbnMvcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9zdGVwcGVyL21hZC1zdGVwcGVyLWFuaW1hdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBNEIsTUFBTSxxQkFBcUIsQ0FBQztBQUUzRzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUU3QjtJQUNGLHNCQUFzQixFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRTtRQUNoRCxLQUFLLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDakUsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzdELEtBQUssQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUMvRCxVQUFVLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO0tBQzdFLENBQUM7Q0FDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyLCBBbmltYXRpb25UcmlnZ2VyTWV0YWRhdGEgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcblxuLyoqXG4gKiBBbmltYXRpb25zIHVzZWQgYnkgdGhlIE1BRCBzdGVwcGVyLlxuICovXG5leHBvcnQgY29uc3QgbWFkU3RlcHBlckFuaW1hdGlvbnM6IHtcbiAgcmVhZG9ubHkgdmVydGljYWxTdGVwVHJhbnNpdGlvbjogQW5pbWF0aW9uVHJpZ2dlck1ldGFkYXRhO1xufSA9IHtcbiAgdmVydGljYWxTdGVwVHJhbnNpdGlvbjogdHJpZ2dlcignc3RlcFRyYW5zaXRpb24nLCBbXG4gICAgc3RhdGUoJ3ByZXZpb3VzJywgc3R5bGUoeyBoZWlnaHQ6ICcwcHgnLCB2aXNpYmlsaXR5OiAnaGlkZGVuJyB9KSksXG4gICAgc3RhdGUoJ25leHQnLCBzdHlsZSh7IGhlaWdodDogJzBweCcsIHZpc2liaWxpdHk6ICdoaWRkZW4nIH0pKSxcbiAgICBzdGF0ZSgnY3VycmVudCcsIHN0eWxlKHsgaGVpZ2h0OiAnKicsIHZpc2liaWxpdHk6ICd2aXNpYmxlJyB9KSksXG4gICAgdHJhbnNpdGlvbignKiA8PT4gY3VycmVudCcsIGFuaW1hdGUoJzIyNW1zIGN1YmljLWJlemllcigwLjQsIDAuMCwgMC4yLCAxKScpKSxcbiAgXSksXG59O1xuIl19
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { CdkStepHeader, STEP_STATE } from '@angular/cdk/stepper';
|
|
2
|
-
import { ChangeDetectionStrategy, Component, ElementRef, Input, ViewEncapsulation } from '@angular/core';
|
|
3
|
-
import { FocusMonitor } from '@angular/cdk/a11y';
|
|
4
|
-
export class StepHeaderComponent extends CdkStepHeader {
|
|
5
|
-
constructor(_focusMonitor, _elementRef) {
|
|
6
|
-
super(_elementRef);
|
|
7
|
-
this._focusMonitor = _focusMonitor;
|
|
8
|
-
}
|
|
9
|
-
ngAfterViewInit() {
|
|
10
|
-
this._focusMonitor.monitor(this._elementRef, true);
|
|
11
|
-
}
|
|
12
|
-
ngOnDestroy() {
|
|
13
|
-
this._focusMonitor.stopMonitoring(this._elementRef);
|
|
14
|
-
}
|
|
15
|
-
/** Focuses the step header. */
|
|
16
|
-
focus(origin, options) {
|
|
17
|
-
if (origin) {
|
|
18
|
-
this._focusMonitor.focusVia(this._elementRef, origin, options);
|
|
19
|
-
}
|
|
20
|
-
else {
|
|
21
|
-
this._elementRef.nativeElement.focus(options);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
getCssForState() {
|
|
25
|
-
if (this.state === STEP_STATE.NUMBER && !this.completed && !this.hasError) {
|
|
26
|
-
return 'step-state-neutral'; //initiale state is 'number'
|
|
27
|
-
}
|
|
28
|
-
else if (this.completed) {
|
|
29
|
-
return 'step-state-complete';
|
|
30
|
-
}
|
|
31
|
-
else if (this.hasError) {
|
|
32
|
-
return 'step-state-error';
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
getIcon() {
|
|
36
|
-
if (this.completed) {
|
|
37
|
-
return 'check_circle_outline';
|
|
38
|
-
}
|
|
39
|
-
else if (this.hasError) {
|
|
40
|
-
return 'error_outline';
|
|
41
|
-
}
|
|
42
|
-
return '';
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
StepHeaderComponent.decorators = [
|
|
46
|
-
{ type: Component, args: [{
|
|
47
|
-
selector: 'mad-step-header',
|
|
48
|
-
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",
|
|
49
|
-
inputs: ['color'],
|
|
50
|
-
host: {
|
|
51
|
-
class: 'mad-step-header',
|
|
52
|
-
role: 'tab',
|
|
53
|
-
},
|
|
54
|
-
encapsulation: ViewEncapsulation.None,
|
|
55
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
56
|
-
styles: [".header{-webkit-tap-highlight-color:transparent;border:1px solid #d3d3d3;box-sizing:content-box;cursor:pointer;height:62px;outline:var(--warn-color);overflow:hidden;width:100%}.header-label{align-items:center;display:flex}.step-state-complete{background:green;width:5px}.step-state-error{background:var(--warn-color);width:5px}.step-state-neutral{background:#d3d3d3;width:5px}.green-check{color:green}.red-error{color:var(--warn-color)}.check-border{border-color:#d3d3d3}.error-border{border-color:var(--warn-color)}"]
|
|
57
|
-
},] }
|
|
58
|
-
];
|
|
59
|
-
StepHeaderComponent.ctorParameters = () => [
|
|
60
|
-
{ type: FocusMonitor },
|
|
61
|
-
{ type: ElementRef }
|
|
62
|
-
];
|
|
63
|
-
StepHeaderComponent.propDecorators = {
|
|
64
|
-
index: [{ type: Input }],
|
|
65
|
-
label: [{ type: Input }],
|
|
66
|
-
state: [{ type: Input }],
|
|
67
|
-
errorMessage: [{ type: Input }],
|
|
68
|
-
selected: [{ type: Input }],
|
|
69
|
-
active: [{ type: Input }],
|
|
70
|
-
optional: [{ type: Input }],
|
|
71
|
-
hasError: [{ type: Input }],
|
|
72
|
-
completed: [{ type: Input }],
|
|
73
|
-
closed: [{ type: Input }]
|
|
74
|
-
};
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3J1bm5lci93b3JrL21hdGVyaWFsLWFkZG9ucy9tYXRlcmlhbC1hZGRvbnMvcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9zdGVwcGVyL3N0ZXAtaGVhZGVyL3N0ZXAtaGVhZGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBYSxNQUFNLHNCQUFzQixDQUFDO0FBQzVFLE9BQU8sRUFBaUIsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQWEsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkksT0FBTyxFQUFFLFlBQVksRUFBZSxNQUFNLG1CQUFtQixDQUFDO0FBYzlELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxhQUFhO0lBdUJwRCxZQUFvQixhQUEyQixFQUFFLFdBQW9DO1FBQ25GLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQURELGtCQUFhLEdBQWIsYUFBYSxDQUFjO0lBRS9DLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsK0JBQStCO0lBQy9CLEtBQUssQ0FBQyxNQUFvQixFQUFFLE9BQXNCO1FBQ2hELElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDaEU7YUFBTTtZQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMvQztJQUNILENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLFVBQVUsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN6RSxPQUFPLG9CQUFvQixDQUFDLENBQUMsNEJBQTRCO1NBQzFEO2FBQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ3pCLE9BQU8scUJBQXFCLENBQUM7U0FDOUI7YUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDeEIsT0FBTyxrQkFBa0IsQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLE9BQU8sc0JBQXNCLENBQUM7U0FDL0I7YUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDeEIsT0FBTyxlQUFlLENBQUM7U0FDeEI7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7OztZQXpFRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtnQkFDM0IsbzFCQUEyQztnQkFFM0MsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDO2dCQUNqQixJQUFJLEVBQUU7b0JBQ0osS0FBSyxFQUFFLGlCQUFpQjtvQkFDeEIsSUFBSSxFQUFFLEtBQUs7aUJBQ1o7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7Z0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOzthQUNoRDs7O1lBYlEsWUFBWTtZQUR1QyxVQUFVOzs7b0JBZ0JuRSxLQUFLO29CQUdMLEtBQUs7b0JBR0wsS0FBSzsyQkFFTCxLQUFLO3VCQUVMLEtBQUs7cUJBRUwsS0FBSzt1QkFFTCxLQUFLO3VCQUVMLEtBQUs7d0JBRUwsS0FBSztxQkFFTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrU3RlcEhlYWRlciwgU1RFUF9TVEFURSwgU3RlcFN0YXRlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3N0ZXBwZXInO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvY3VzTW9uaXRvciwgRm9jdXNPcmlnaW4gfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21hZC1zdGVwLWhlYWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdGVwLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N0ZXAtaGVhZGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGlucHV0czogWydjb2xvciddLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdtYWQtc3RlcC1oZWFkZXInLFxuICAgIHJvbGU6ICd0YWInLFxuICB9LFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU3RlcEhlYWRlckNvbXBvbmVudCBleHRlbmRzIENka1N0ZXBIZWFkZXIgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKVxuICBpbmRleDogbnVtYmVyO1xuXG4gIEBJbnB1dCgpXG4gIGxhYmVsOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgc3RhdGU6IFN0ZXBTdGF0ZTtcblxuICBASW5wdXQoKSBlcnJvck1lc3NhZ2U6IHN0cmluZztcblxuICBASW5wdXQoKSBzZWxlY3RlZDogYm9vbGVhbjtcblxuICBASW5wdXQoKSBhY3RpdmU6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgb3B0aW9uYWw6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgaGFzRXJyb3I6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgY29tcGxldGVkOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIGNsb3NlZDogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9mb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvciwgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7XG4gICAgc3VwZXIoX2VsZW1lbnRSZWYpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2ZvY3VzTW9uaXRvci5tb25pdG9yKHRoaXMuX2VsZW1lbnRSZWYsIHRydWUpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuX2VsZW1lbnRSZWYpO1xuICB9XG5cbiAgLyoqIEZvY3VzZXMgdGhlIHN0ZXAgaGVhZGVyLiAqL1xuICBmb2N1cyhvcmlnaW4/OiBGb2N1c09yaWdpbiwgb3B0aW9ucz86IEZvY3VzT3B0aW9ucyk6IHZvaWQge1xuICAgIGlmIChvcmlnaW4pIHtcbiAgICAgIHRoaXMuX2ZvY3VzTW9uaXRvci5mb2N1c1ZpYSh0aGlzLl9lbGVtZW50UmVmLCBvcmlnaW4sIG9wdGlvbnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMob3B0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0Q3NzRm9yU3RhdGUoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5zdGF0ZSA9PT0gU1RFUF9TVEFURS5OVU1CRVIgJiYgIXRoaXMuY29tcGxldGVkICYmICF0aGlzLmhhc0Vycm9yKSB7XG4gICAgICByZXR1cm4gJ3N0ZXAtc3RhdGUtbmV1dHJhbCc7IC8vaW5pdGlhbGUgc3RhdGUgaXMgJ251bWJlcidcbiAgICB9IGVsc2UgaWYgKHRoaXMuY29tcGxldGVkKSB7XG4gICAgICByZXR1cm4gJ3N0ZXAtc3RhdGUtY29tcGxldGUnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5oYXNFcnJvcikge1xuICAgICAgcmV0dXJuICdzdGVwLXN0YXRlLWVycm9yJztcbiAgICB9XG4gIH1cblxuICBnZXRJY29uKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuY29tcGxldGVkKSB7XG4gICAgICByZXR1cm4gJ2NoZWNrX2NpcmNsZV9vdXRsaW5lJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuaGFzRXJyb3IpIHtcbiAgICAgIHJldHVybiAnZXJyb3Jfb3V0bGluZSc7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxufVxuIl19
|