@rlucan/ui 16.2.2 → 17.1.1

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 (77) hide show
  1. package/esm2022/lib/action-button/action-button.component.mjs +99 -99
  2. package/esm2022/lib/action-icon/action-icon.component.mjs +37 -37
  3. package/esm2022/lib/autocomplete/autocomplete.component.mjs +391 -391
  4. package/esm2022/lib/avatar/avatar.component.mjs +34 -34
  5. package/esm2022/lib/button/button.component.mjs +57 -57
  6. package/esm2022/lib/checkbox/checkbox.component.mjs +39 -39
  7. package/esm2022/lib/checkbox-group/checkbox-group.component.mjs +91 -91
  8. package/esm2022/lib/currency/currency.component.mjs +151 -151
  9. package/esm2022/lib/date/date.component.mjs +68 -68
  10. package/esm2022/lib/dialog/dialog.component.mjs +37 -37
  11. package/esm2022/lib/directives/force-visibility/force-visibility.directive.mjs +104 -104
  12. package/esm2022/lib/editor/editor.component.mjs +119 -119
  13. package/esm2022/lib/elements/burger/burger.component.mjs +21 -21
  14. package/esm2022/lib/elements/expander/expander.component.mjs +28 -28
  15. package/esm2022/lib/elements/validation-message/validation-message.component.mjs +47 -47
  16. package/esm2022/lib/file/file.component.mjs +145 -145
  17. package/esm2022/lib/file-uploader/ui-file-uploader.component.mjs +405 -405
  18. package/esm2022/lib/input/input.component.mjs +265 -265
  19. package/esm2022/lib/input-autocomplete/input-autocomplete.component.mjs +277 -277
  20. package/esm2022/lib/layouts/base/ui-base-layout.component.mjs +22 -22
  21. package/esm2022/lib/layouts/base/ui-base.component.mjs +74 -74
  22. package/esm2022/lib/layouts/simple/ui-simple-layout.component.mjs +18 -18
  23. package/esm2022/lib/layouts/simple/ui-simple.component.mjs +166 -166
  24. package/esm2022/lib/radio/radio.component.mjs +21 -21
  25. package/esm2022/lib/radio-group/radio-group.component.mjs +53 -53
  26. package/esm2022/lib/select/select.component.mjs +126 -126
  27. package/esm2022/lib/services/message-box.service.mjs +112 -112
  28. package/esm2022/lib/services/toast.service.mjs +23 -23
  29. package/esm2022/lib/services/ui-file.service.mjs +71 -71
  30. package/esm2022/lib/services/ui-translate.service.mjs +32 -32
  31. package/esm2022/lib/submit-button/submit-button.component.mjs +72 -72
  32. package/esm2022/lib/table/table.component.mjs +97 -97
  33. package/esm2022/lib/text-area/text-area.component.mjs +46 -46
  34. package/esm2022/lib/ui.model.mjs +1 -1
  35. package/esm2022/lib/ui.module.mjs +269 -269
  36. package/esm2022/public-api.mjs +34 -34
  37. package/esm2022/rlucan-ui.mjs +4 -4
  38. package/fesm2022/rlucan-ui.mjs +3289 -3289
  39. package/fesm2022/rlucan-ui.mjs.map +1 -1
  40. package/index.d.ts +5 -5
  41. package/lib/action-button/action-button.component.d.ts +28 -28
  42. package/lib/action-icon/action-icon.component.d.ts +15 -15
  43. package/lib/autocomplete/autocomplete.component.d.ts +57 -57
  44. package/lib/avatar/avatar.component.d.ts +14 -14
  45. package/lib/button/button.component.d.ts +18 -18
  46. package/lib/checkbox/checkbox.component.d.ts +15 -15
  47. package/lib/checkbox-group/checkbox-group.component.d.ts +18 -18
  48. package/lib/currency/currency.component.d.ts +31 -31
  49. package/lib/date/date.component.d.ts +24 -24
  50. package/lib/dialog/dialog.component.d.ts +13 -13
  51. package/lib/directives/force-visibility/force-visibility.directive.d.ts +22 -22
  52. package/lib/editor/editor.component.d.ts +24 -24
  53. package/lib/elements/burger/burger.component.d.ts +9 -9
  54. package/lib/elements/expander/expander.component.d.ts +10 -10
  55. package/lib/elements/validation-message/validation-message.component.d.ts +12 -12
  56. package/lib/file/file.component.d.ts +35 -35
  57. package/lib/file-uploader/ui-file-uploader.component.d.ts +102 -102
  58. package/lib/input/input.component.d.ts +42 -42
  59. package/lib/input-autocomplete/input-autocomplete.component.d.ts +44 -44
  60. package/lib/layouts/base/ui-base-layout.component.d.ts +8 -8
  61. package/lib/layouts/base/ui-base.component.d.ts +23 -23
  62. package/lib/layouts/simple/ui-simple-layout.component.d.ts +8 -8
  63. package/lib/layouts/simple/ui-simple.component.d.ts +40 -40
  64. package/lib/radio/radio.component.d.ts +8 -8
  65. package/lib/radio-group/radio-group.component.d.ts +18 -18
  66. package/lib/select/select.component.d.ts +37 -37
  67. package/lib/services/message-box.service.d.ts +58 -58
  68. package/lib/services/toast.service.d.ts +13 -13
  69. package/lib/services/ui-file.service.d.ts +33 -33
  70. package/lib/services/ui-translate.service.d.ts +11 -11
  71. package/lib/submit-button/submit-button.component.d.ts +21 -21
  72. package/lib/table/table.component.d.ts +36 -36
  73. package/lib/text-area/text-area.component.d.ts +18 -18
  74. package/lib/ui.model.d.ts +2 -2
  75. package/lib/ui.module.d.ts +59 -59
  76. package/package.json +14 -14
  77. package/public-api.d.ts +29 -29
@@ -1,151 +1,151 @@
1
- import { Component, Host, HostBinding, Input, Optional, SkipSelf } from '@angular/core';
2
- import { UiBaseComponent } from '../layouts/base/ui-base.component';
3
- import { UntypedFormControl, UntypedFormGroup, NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/forms";
6
- import * as i2 from "@angular/common";
7
- import * as i3 from "../input/input.component";
8
- import * as i4 from "../select/select.component";
9
- import * as i5 from "../layouts/base/ui-base-layout.component";
10
- export class CurrencyComponent extends UiBaseComponent {
11
- // @HostBinding('class')
12
- // get sizeClass(): string {
13
- // return this.size;
14
- // }
15
- constructor(controlContainer) {
16
- super();
17
- this.controlContainer = controlContainer;
18
- this.currencies = [];
19
- this.currencyDisabled = false;
20
- this.panelClass = 'ui-currency';
21
- this.amountHidden = false;
22
- this.formGroup = new UntypedFormGroup({
23
- amount: new UntypedFormControl(),
24
- currency: new UntypedFormControl()
25
- });
26
- this.hasFocus = false;
27
- this.onChange = (value) => { };
28
- }
29
- ngOnInit() {
30
- super.ngOnInit();
31
- this.formGroup.valueChanges.subscribe(v => this.onChange(v));
32
- // this.formGroup = new FormGroup({
33
- // amount: new FormControl(this.control?.value.amount),
34
- // currency: new FormControl(this.currencies.find(c => c.code === this.control?.value.currency.code))
35
- // });
36
- // this.formGroup.valueChanges.subscribe(v => {
37
- // this.onChange(this.formGroup?.getRawValue());
38
- // });
39
- if (this.currencyDisabled) {
40
- this.formGroup.get('currency')?.disable();
41
- }
42
- // this.ngControl.control.statusChanges.subscribe(s => {
43
- // if (s === 'INVALID') {
44
- // // this.formGroup?.get('amount')?.setErrors(this.control?.errors || null);
45
- // this.formGroup?.get('currency')?.markAsTouched();
46
- // // this.formGroup?.get('currency')?.setErrors(this.control?.errors || null);
47
- // }
48
- // if (s === 'DISABLED') {
49
- // this.formGroup?.disable({emitEvent: false});
50
- // }
51
- // if (s === 'VALID') {
52
- // this.formGroup?.enable({emitEvent: false});
53
- // if (this.currencyDisabled) {
54
- // this.formGroup?.get('currency')?.disable({emitEvent: false});
55
- // }
56
- // }
57
- // });
58
- this.parentFormControl = this.controlContainer.control.get(this.formControlName);
59
- }
60
- // bindValidators(validators) {
61
- // console.log('binding validators', validators);
62
- // if (this.formGroup) {
63
- // this.formGroup.get('amount').setValidators(validators);
64
- // this.formGroup.get('currency').markAsTouched();
65
- // this.formGroup.get('currency').setErrors(validators);
66
- // }
67
- // }
68
- get isInvalid() {
69
- return this.parentFormControl.invalid;
70
- }
71
- get validationErrors() {
72
- return this.parentFormControl.errors;
73
- }
74
- focusChanged(hasFocus) {
75
- this.hasFocus = hasFocus;
76
- }
77
- registerOnChange(fn) {
78
- this.onChange = fn;
79
- }
80
- registerOnTouched(fn) {
81
- }
82
- registerOnValidatorChange(fn) {
83
- }
84
- setDisabledState(isDisabled) {
85
- if (isDisabled) {
86
- this.formGroup.get('amount').disable();
87
- if (!this.currencyDisabled) {
88
- this.formGroup.get('currency').disable();
89
- }
90
- }
91
- else {
92
- this.formGroup.get('amount').enable();
93
- if (!this.currencyDisabled) {
94
- this.formGroup.get('currency').enable();
95
- }
96
- }
97
- }
98
- validate(control) {
99
- return undefined;
100
- }
101
- writeValue(obj) {
102
- this.formGroup.setValue(obj);
103
- }
104
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: CurrencyComponent, deps: [{ token: i1.ControlContainer, host: true, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component }); }
105
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: CurrencyComponent, selector: "ui-currency", inputs: { currencies: "currencies", currencyDisabled: "currencyDisabled", formControlName: "formControlName", panelClass: "panelClass", amountHidden: "amountHidden" }, host: { properties: { "class.amount-hidden": "this.amountHidden", "class.focus": "this.hasFocus" } }, providers: [{
106
- provide: NG_VALUE_ACCESSOR,
107
- multi: true,
108
- useExisting: CurrencyComponent
109
- }, {
110
- provide: NG_VALIDATORS,
111
- multi: true,
112
- useExisting: CurrencyComponent
113
- }
114
- ], usesInheritance: true, ngImport: i0, template: "<ui-base-layout [ctx]=\"this\">\r\n\r\n<div class=\"control-container\" [formGroup]=\"formGroup\">\r\n <ui-input *ngIf=\"!amountHidden\" [textAlign]=\"'right'\" [formControlName]=\"'amount'\" [placeholder]=\"placeholder\" #input [useInputMessages]=\"'never'\" (focusChanged)=\"focusChanged($event)\"></ui-input>\r\n <ui-select [panelClass]=\"panelClass\" [formControlName]=\"'currency'\" [displayAttribute]=\"'symbol'\" [options]=\"currencies\" [useInputMessages]=\"'never'\"></ui-select>\r\n</div>\r\n\r\n</ui-base-layout>\r\n\r\n", styles: [":host{display:block}:host.amount-hidden ui-select{padding-left:.7em}:host .control-container{display:flex;border-style:solid}:host .control-container ui-input{flex:1 1 100%}:host .control-container ui-select{flex-grow:0;flex-shrink:1}:host ::ng-deep .mat-mdc-select-trigger{padding-left:.2em}:host ::ng-deep input{text-align:right;padding-right:.2em}:host ::ng-deep input,:host ::ng-deep .mat-mdc-select-trigger{border-width:0}:host.large ui-select{flex-basis:4.5em}:host.larger ui-select{flex-basis:5em}:host.normal ui-select{flex-basis:5.5em}:host.smaller ui-select{flex-basis:6em}:host.small ui-select{flex-basis:6em}:host.amount-hidden.large ui-select{flex-basis:5.2em}:host.amount-hidden.larger ui-select{flex-basis:4.7em}:host.amount-hidden.normal ui-select{flex-basis:4.2em}:host.amount-hidden.smaller ui-select{flex-basis:3.8em}:host.amount-hidden.smaller ui-select ::ng-deep .mat-mdc-select-trigger{width:3.2em}:host.amount-hidden.small ui-select{flex-basis:3.5em}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.InputComponent, selector: "ui-input", inputs: ["prefixIcon", "suffixIcon", "type", "clearButton", "activeIcons", "forceHasPrefix", "forceHasSuffix", "textAlign"], outputs: ["focusChanged", "keyPressed"] }, { kind: "component", type: i4.SelectComponent, selector: "ui-select", inputs: ["multiple", "triggerFormatter", "valueAttribute", "resetText", "displayAttribute", "options", "optionFormatter", "optionTemplateRef", "triggerTemplateRef", "panelClass", "allowEmptySelection", "trackBy"] }, { kind: "component", type: i5.UiBaseLayoutComponent, selector: "ui-base-layout", inputs: ["ctx"] }] }); }
115
- }
116
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: CurrencyComponent, decorators: [{
117
- type: Component,
118
- args: [{ selector: 'ui-currency', providers: [{
119
- provide: NG_VALUE_ACCESSOR,
120
- multi: true,
121
- useExisting: CurrencyComponent
122
- }, {
123
- provide: NG_VALIDATORS,
124
- multi: true,
125
- useExisting: CurrencyComponent
126
- }
127
- ], template: "<ui-base-layout [ctx]=\"this\">\r\n\r\n<div class=\"control-container\" [formGroup]=\"formGroup\">\r\n <ui-input *ngIf=\"!amountHidden\" [textAlign]=\"'right'\" [formControlName]=\"'amount'\" [placeholder]=\"placeholder\" #input [useInputMessages]=\"'never'\" (focusChanged)=\"focusChanged($event)\"></ui-input>\r\n <ui-select [panelClass]=\"panelClass\" [formControlName]=\"'currency'\" [displayAttribute]=\"'symbol'\" [options]=\"currencies\" [useInputMessages]=\"'never'\"></ui-select>\r\n</div>\r\n\r\n</ui-base-layout>\r\n\r\n", styles: [":host{display:block}:host.amount-hidden ui-select{padding-left:.7em}:host .control-container{display:flex;border-style:solid}:host .control-container ui-input{flex:1 1 100%}:host .control-container ui-select{flex-grow:0;flex-shrink:1}:host ::ng-deep .mat-mdc-select-trigger{padding-left:.2em}:host ::ng-deep input{text-align:right;padding-right:.2em}:host ::ng-deep input,:host ::ng-deep .mat-mdc-select-trigger{border-width:0}:host.large ui-select{flex-basis:4.5em}:host.larger ui-select{flex-basis:5em}:host.normal ui-select{flex-basis:5.5em}:host.smaller ui-select{flex-basis:6em}:host.small ui-select{flex-basis:6em}:host.amount-hidden.large ui-select{flex-basis:5.2em}:host.amount-hidden.larger ui-select{flex-basis:4.7em}:host.amount-hidden.normal ui-select{flex-basis:4.2em}:host.amount-hidden.smaller ui-select{flex-basis:3.8em}:host.amount-hidden.smaller ui-select ::ng-deep .mat-mdc-select-trigger{width:3.2em}:host.amount-hidden.small ui-select{flex-basis:3.5em}\n"] }]
128
- }], ctorParameters: function () { return [{ type: i1.ControlContainer, decorators: [{
129
- type: Optional
130
- }, {
131
- type: Host
132
- }, {
133
- type: SkipSelf
134
- }] }]; }, propDecorators: { currencies: [{
135
- type: Input
136
- }], currencyDisabled: [{
137
- type: Input
138
- }], formControlName: [{
139
- type: Input
140
- }], panelClass: [{
141
- type: Input
142
- }], amountHidden: [{
143
- type: HostBinding,
144
- args: ['class.amount-hidden']
145
- }, {
146
- type: Input
147
- }], hasFocus: [{
148
- type: HostBinding,
149
- args: ['class.focus']
150
- }] } });
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3kuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jdXJyZW5jeS9jdXJyZW5jeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2N1cnJlbmN5L2N1cnJlbmN5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQVUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEUsT0FBTyxFQUdMLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLGlCQUFpQixFQUdsQixNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBaUJ4QixNQUFNLE9BQU8saUJBQWtCLFNBQVEsZUFBZTtJQW9CcEQsd0JBQXdCO0lBQ3hCLDRCQUE0QjtJQUM1QixzQkFBc0I7SUFDdEIsSUFBSTtJQUVKLFlBQXNELGdCQUFrQztRQUN0RixLQUFLLEVBQUUsQ0FBQztRQUQ0QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBdkIvRSxlQUFVLEdBQWlDLEVBQUUsQ0FBQztRQUM5QyxxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFFekIsZUFBVSxHQUFHLGFBQWEsQ0FBQztRQUczQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUU5QixjQUFTLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQztZQUMvQixNQUFNLEVBQUUsSUFBSSxrQkFBa0IsRUFBRTtZQUNoQyxRQUFRLEVBQUUsSUFBSSxrQkFBa0IsRUFBRTtTQUNuQyxDQUFDLENBQUM7UUFLSCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBV2pCLGFBQVEsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUUs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QUssRUFBRSxJQUFJO2dCQUNYLFdBQVcsRUFBRSxpQkFBaUI7YUFDL0I7U0FDQSxpREMxQkgsdWhCQVNBOzs0RkRtQmEsaUJBQWlCO2tCQWY3QixTQUFTOytCQUNFLGFBQWEsYUFHWixDQUFDOzRCQUNWLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcsbUJBQW1CO3lCQUMvQixFQUFFOzRCQUNELE9BQU8sRUFBRSxhQUFhOzRCQUN0QixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLG1CQUFtQjt5QkFDL0I7cUJBQ0E7OzBCQTJCWSxRQUFROzswQkFBSSxJQUFJOzswQkFBSSxRQUFROzRDQXZCaEMsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdHLFlBQVk7c0JBRHBCLFdBQVc7dUJBQUMscUJBQXFCOztzQkFDakMsS0FBSztnQkFVTixRQUFRO3NCQURQLFdBQVc7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdCwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQsIE9wdGlvbmFsLCBTa2lwU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBVaUJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9sYXlvdXRzL2Jhc2UvdWktYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIEFic3RyYWN0Q29udHJvbCwgQ29udHJvbENvbnRhaW5lcixcclxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcclxuICBVbnR5cGVkRm9ybUNvbnRyb2wsXHJcbiAgVW50eXBlZEZvcm1Hcm91cCwgRm9ybUdyb3VwRGlyZWN0aXZlLFxyXG4gIE5HX1ZBTElEQVRPUlMsXHJcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgVmFsaWRhdGlvbkVycm9ycyxcclxuICBWYWxpZGF0b3JcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3VpLWN1cnJlbmN5JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY3VycmVuY3kuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWyAnLi9jdXJyZW5jeS5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW3tcclxuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgbXVsdGk6IHRydWUsXHJcbiAgICB1c2VFeGlzdGluZzogQ3VycmVuY3lDb21wb25lbnRcclxuICB9LCB7XHJcbiAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxyXG4gICAgbXVsdGk6IHRydWUsXHJcbiAgICB1c2VFeGlzdGluZzogQ3VycmVuY3lDb21wb25lbnRcclxuICB9XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3VycmVuY3lDb21wb25lbnQgZXh0ZW5kcyBVaUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3Ige1xyXG5cclxuICBASW5wdXQoKSBjdXJyZW5jaWVzOiBQYXJ0aWFsPHsgY29kZTogc3RyaW5nOyB9PltdID0gW107XHJcbiAgQElucHV0KCkgY3VycmVuY3lEaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGZvcm1Db250cm9sTmFtZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHBhbmVsQ2xhc3MgPSAndWktY3VycmVuY3knO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmFtb3VudC1oaWRkZW4nKVxyXG4gIEBJbnB1dCgpIGFtb3VudEhpZGRlbiA9IGZhbHNlO1xyXG5cclxuICBmb3JtR3JvdXAgPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7XHJcbiAgICBhbW91bnQ6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKSxcclxuICAgIGN1cnJlbmN5OiBuZXcgVW50eXBlZEZvcm1Db250cm9sKClcclxuICB9KTtcclxuXHJcbiAgcGFyZW50Rm9ybUNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mb2N1cycpXHJcbiAgaGFzRm9jdXMgPSBmYWxzZTtcclxuXHJcbiAgLy8gQEhvc3RCaW5kaW5nKCdjbGFzcycpXHJcbiAgLy8gZ2V0IHNpemVDbGFzcygpOiBzdHJpbmcge1xyXG4gIC8vICAgcmV0dXJuIHRoaXMuc2l6ZTtcclxuICAvLyB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBIb3N0KCkgQFNraXBTZWxmKCkgcHJvdGVjdGVkIGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXIpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZSA9ICh2YWx1ZSkgPT4ge307XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIHRoaXMuZm9ybUdyb3VwLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodiA9PiB0aGlzLm9uQ2hhbmdlKHYpKTtcclxuICAgIC8vIHRoaXMuZm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7XHJcbiAgICAvLyAgIGFtb3VudDogbmV3IEZvcm1Db250cm9sKHRoaXMuY29udHJvbD8udmFsdWUuYW1vdW50KSxcclxuICAgIC8vICAgY3VycmVuY3k6IG5ldyBGb3JtQ29udHJvbCh0aGlzLmN1cnJlbmNpZXMuZmluZChjID0+IGMuY29kZSA9PT0gdGhpcy5jb250cm9sPy52YWx1ZS5jdXJyZW5jeS5jb2RlKSlcclxuICAgIC8vIH0pO1xyXG4gICAgLy8gdGhpcy5mb3JtR3JvdXAudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2ID0+IHtcclxuICAgIC8vICAgdGhpcy5vbkNoYW5nZSh0aGlzLmZvcm1Hcm91cD8uZ2V0UmF3VmFsdWUoKSk7XHJcbiAgICAvLyB9KTtcclxuICAgIGlmICh0aGlzLmN1cnJlbmN5RGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdjdXJyZW5jeScpPy5kaXNhYmxlKCk7XHJcbiAgICB9XHJcbiAgICAvLyB0aGlzLm5nQ29udHJvbC5jb250cm9sLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKHMgPT4ge1xyXG4gICAgLy8gICBpZiAocyA9PT0gJ0lOVkFMSUQnKSB7XHJcbiAgICAvLyAgICAgLy8gdGhpcy5mb3JtR3JvdXA/LmdldCgnYW1vdW50Jyk/LnNldEVycm9ycyh0aGlzLmNvbnRyb2w/LmVycm9ycyB8fCBudWxsKTtcclxuICAgIC8vICAgICB0aGlzLmZvcm1Hcm91cD8uZ2V0KCdjdXJyZW5jeScpPy5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICAvLyAgICAgLy8gdGhpcy5mb3JtR3JvdXA/LmdldCgnY3VycmVuY3knKT8uc2V0RXJyb3JzKHRoaXMuY29udHJvbD8uZXJyb3JzIHx8IG51bGwpO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyAgIGlmIChzID09PSAnRElTQUJMRUQnKSB7XHJcbiAgICAvLyAgICAgdGhpcy5mb3JtR3JvdXA/LmRpc2FibGUoe2VtaXRFdmVudDogZmFsc2V9KTtcclxuICAgIC8vICAgfVxyXG4gICAgLy8gICBpZiAocyA9PT0gJ1ZBTElEJykge1xyXG4gICAgLy8gICAgIHRoaXMuZm9ybUdyb3VwPy5lbmFibGUoe2VtaXRFdmVudDogZmFsc2V9KTtcclxuICAgIC8vICAgICBpZiAodGhpcy5jdXJyZW5jeURpc2FibGVkKSB7XHJcbiAgICAvLyAgICAgICB0aGlzLmZvcm1Hcm91cD8uZ2V0KCdjdXJyZW5jeScpPy5kaXNhYmxlKHtlbWl0RXZlbnQ6IGZhbHNlfSk7XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9KTtcclxuICAgIHRoaXMucGFyZW50Rm9ybUNvbnRyb2wgPSAodGhpcy5jb250cm9sQ29udGFpbmVyIGFzIEZvcm1Hcm91cERpcmVjdGl2ZSkuY29udHJvbC5nZXQodGhpcy5mb3JtQ29udHJvbE5hbWUpO1xyXG4gIH1cclxuXHJcbiAgLy8gYmluZFZhbGlkYXRvcnModmFsaWRhdG9ycykge1xyXG4gIC8vICAgY29uc29sZS5sb2coJ2JpbmRpbmcgdmFsaWRhdG9ycycsIHZhbGlkYXRvcnMpO1xyXG4gIC8vICAgaWYgKHRoaXMuZm9ybUdyb3VwKSB7XHJcbiAgLy8gICAgIHRoaXMuZm9ybUdyb3VwLmdldCgnYW1vdW50Jykuc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcclxuICAvLyAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdjdXJyZW5jeScpLm1hcmtBc1RvdWNoZWQoKTtcclxuICAvLyAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdjdXJyZW5jeScpLnNldEVycm9ycyh2YWxpZGF0b3JzKTtcclxuICAvLyAgIH1cclxuICAvLyB9XHJcblxyXG4gIGdldCBpc0ludmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5wYXJlbnRGb3JtQ29udHJvbC5pbnZhbGlkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHZhbGlkYXRpb25FcnJvcnMoKTogVmFsaWRhdGlvbkVycm9ycyB7XHJcbiAgICByZXR1cm4gdGhpcy5wYXJlbnRGb3JtQ29udHJvbC5lcnJvcnM7XHJcbiAgfVxyXG5cclxuICBmb2N1c0NoYW5nZWQoaGFzRm9jdXM6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuaGFzRm9jdXMgPSBoYXNGb2N1cztcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBpZiAoaXNEaXNhYmxlZCkge1xyXG4gICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2Ftb3VudCcpLmRpc2FibGUoKTtcclxuICAgICAgaWYgKCF0aGlzLmN1cnJlbmN5RGlzYWJsZWQpIHtcclxuICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2N1cnJlbmN5JykuZGlzYWJsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2Ftb3VudCcpLmVuYWJsZSgpO1xyXG4gICAgICBpZiAoIXRoaXMuY3VycmVuY3lEaXNhYmxlZCkge1xyXG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCgnY3VycmVuY3knKS5lbmFibGUoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybUdyb3VwLnNldFZhbHVlKG9iaik7XHJcbiAgfVxyXG59XHJcbiIsIjx1aS1iYXNlLWxheW91dCBbY3R4XT1cInRoaXNcIj5cclxuXHJcbjxkaXYgY2xhc3M9XCJjb250cm9sLWNvbnRhaW5lclwiIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCI+XHJcbiAgPHVpLWlucHV0ICpuZ0lmPVwiIWFtb3VudEhpZGRlblwiIFt0ZXh0QWxpZ25dPVwiJ3JpZ2h0J1wiIFtmb3JtQ29udHJvbE5hbWVdPVwiJ2Ftb3VudCdcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiAjaW5wdXQgW3VzZUlucHV0TWVzc2FnZXNdPVwiJ25ldmVyJ1wiIChmb2N1c0NoYW5nZWQpPVwiZm9jdXNDaGFuZ2VkKCRldmVudClcIj48L3VpLWlucHV0PlxyXG4gIDx1aS1zZWxlY3QgW3BhbmVsQ2xhc3NdPVwicGFuZWxDbGFzc1wiIFtmb3JtQ29udHJvbE5hbWVdPVwiJ2N1cnJlbmN5J1wiIFtkaXNwbGF5QXR0cmlidXRlXT1cIidzeW1ib2wnXCIgW29wdGlvbnNdPVwiY3VycmVuY2llc1wiIFt1c2VJbnB1dE1lc3NhZ2VzXT1cIiduZXZlcidcIj48L3VpLXNlbGVjdD5cclxuPC9kaXY+XHJcblxyXG48L3VpLWJhc2UtbGF5b3V0PlxyXG5cclxuIl19
1
+ import { Component, Host, HostBinding, Input, Optional, SkipSelf } from '@angular/core';
2
+ import { UiBaseComponent } from '../layouts/base/ui-base.component';
3
+ import { UntypedFormControl, UntypedFormGroup, NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/forms";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "../input/input.component";
8
+ import * as i4 from "../select/select.component";
9
+ import * as i5 from "../layouts/base/ui-base-layout.component";
10
+ export class CurrencyComponent extends UiBaseComponent {
11
+ // @HostBinding('class')
12
+ // get sizeClass(): string {
13
+ // return this.size;
14
+ // }
15
+ constructor(controlContainer) {
16
+ super();
17
+ this.controlContainer = controlContainer;
18
+ this.currencies = [];
19
+ this.currencyDisabled = false;
20
+ this.panelClass = 'ui-currency';
21
+ this.amountHidden = false;
22
+ this.formGroup = new UntypedFormGroup({
23
+ amount: new UntypedFormControl(),
24
+ currency: new UntypedFormControl()
25
+ });
26
+ this.hasFocus = false;
27
+ this.onChange = (value) => { };
28
+ }
29
+ ngOnInit() {
30
+ super.ngOnInit();
31
+ this.formGroup.valueChanges.subscribe(v => this.onChange(v));
32
+ // this.formGroup = new FormGroup({
33
+ // amount: new FormControl(this.control?.value.amount),
34
+ // currency: new FormControl(this.currencies.find(c => c.code === this.control?.value.currency.code))
35
+ // });
36
+ // this.formGroup.valueChanges.subscribe(v => {
37
+ // this.onChange(this.formGroup?.getRawValue());
38
+ // });
39
+ if (this.currencyDisabled) {
40
+ this.formGroup.get('currency')?.disable();
41
+ }
42
+ // this.ngControl.control.statusChanges.subscribe(s => {
43
+ // if (s === 'INVALID') {
44
+ // // this.formGroup?.get('amount')?.setErrors(this.control?.errors || null);
45
+ // this.formGroup?.get('currency')?.markAsTouched();
46
+ // // this.formGroup?.get('currency')?.setErrors(this.control?.errors || null);
47
+ // }
48
+ // if (s === 'DISABLED') {
49
+ // this.formGroup?.disable({emitEvent: false});
50
+ // }
51
+ // if (s === 'VALID') {
52
+ // this.formGroup?.enable({emitEvent: false});
53
+ // if (this.currencyDisabled) {
54
+ // this.formGroup?.get('currency')?.disable({emitEvent: false});
55
+ // }
56
+ // }
57
+ // });
58
+ this.parentFormControl = this.controlContainer.control.get(this.formControlName);
59
+ }
60
+ // bindValidators(validators) {
61
+ // console.log('binding validators', validators);
62
+ // if (this.formGroup) {
63
+ // this.formGroup.get('amount').setValidators(validators);
64
+ // this.formGroup.get('currency').markAsTouched();
65
+ // this.formGroup.get('currency').setErrors(validators);
66
+ // }
67
+ // }
68
+ get isInvalid() {
69
+ return this.parentFormControl.invalid;
70
+ }
71
+ get validationErrors() {
72
+ return this.parentFormControl.errors;
73
+ }
74
+ focusChanged(hasFocus) {
75
+ this.hasFocus = hasFocus;
76
+ }
77
+ registerOnChange(fn) {
78
+ this.onChange = fn;
79
+ }
80
+ registerOnTouched(fn) {
81
+ }
82
+ registerOnValidatorChange(fn) {
83
+ }
84
+ setDisabledState(isDisabled) {
85
+ if (isDisabled) {
86
+ this.formGroup.get('amount').disable();
87
+ if (!this.currencyDisabled) {
88
+ this.formGroup.get('currency').disable();
89
+ }
90
+ }
91
+ else {
92
+ this.formGroup.get('amount').enable();
93
+ if (!this.currencyDisabled) {
94
+ this.formGroup.get('currency').enable();
95
+ }
96
+ }
97
+ }
98
+ validate(control) {
99
+ return undefined;
100
+ }
101
+ writeValue(obj) {
102
+ this.formGroup.setValue(obj);
103
+ }
104
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CurrencyComponent, deps: [{ token: i1.ControlContainer, host: true, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component }); }
105
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: CurrencyComponent, selector: "ui-currency", inputs: { currencies: "currencies", currencyDisabled: "currencyDisabled", formControlName: "formControlName", panelClass: "panelClass", amountHidden: "amountHidden" }, host: { properties: { "class.amount-hidden": "this.amountHidden", "class.focus": "this.hasFocus" } }, providers: [{
106
+ provide: NG_VALUE_ACCESSOR,
107
+ multi: true,
108
+ useExisting: CurrencyComponent
109
+ }, {
110
+ provide: NG_VALIDATORS,
111
+ multi: true,
112
+ useExisting: CurrencyComponent
113
+ }
114
+ ], usesInheritance: true, ngImport: i0, template: "<ui-base-layout [ctx]=\"this\">\r\n\r\n<div class=\"control-container\" [formGroup]=\"formGroup\">\r\n <ui-input *ngIf=\"!amountHidden\" [textAlign]=\"'right'\" [formControlName]=\"'amount'\" [placeholder]=\"placeholder\" #input [useInputMessages]=\"'never'\" (focusChanged)=\"focusChanged($event)\"></ui-input>\r\n <ui-select [panelClass]=\"panelClass\" [formControlName]=\"'currency'\" [displayAttribute]=\"'symbol'\" [options]=\"currencies\" [useInputMessages]=\"'never'\"></ui-select>\r\n</div>\r\n\r\n</ui-base-layout>\r\n\r\n", styles: [":host{display:block}:host.amount-hidden ui-select{padding-left:.7em}:host .control-container{display:flex;border-style:solid}:host .control-container ui-input{flex:1 1 100%}:host .control-container ui-select{flex-grow:0;flex-shrink:1}:host ::ng-deep .mat-mdc-select-trigger{padding-left:.2em}:host ::ng-deep input{text-align:right;padding-right:.2em}:host ::ng-deep input,:host ::ng-deep .mat-mdc-select-trigger{border-width:0}:host.large ui-select{flex-basis:4.5em}:host.larger ui-select{flex-basis:5em}:host.normal ui-select{flex-basis:5.5em}:host.smaller ui-select{flex-basis:6em}:host.small ui-select{flex-basis:6em}:host.amount-hidden.large ui-select{flex-basis:5.2em}:host.amount-hidden.larger ui-select{flex-basis:4.7em}:host.amount-hidden.normal ui-select{flex-basis:4.2em}:host.amount-hidden.smaller ui-select{flex-basis:3.8em}:host.amount-hidden.smaller ui-select ::ng-deep .mat-mdc-select-trigger{width:3.2em}:host.amount-hidden.small ui-select{flex-basis:3.5em}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.InputComponent, selector: "ui-input", inputs: ["prefixIcon", "suffixIcon", "type", "clearButton", "activeIcons", "forceHasPrefix", "forceHasSuffix", "textAlign"], outputs: ["focusChanged", "keyPressed"] }, { kind: "component", type: i4.SelectComponent, selector: "ui-select", inputs: ["multiple", "triggerFormatter", "valueAttribute", "resetText", "displayAttribute", "options", "optionFormatter", "optionTemplateRef", "triggerTemplateRef", "panelClass", "allowEmptySelection", "trackBy"] }, { kind: "component", type: i5.UiBaseLayoutComponent, selector: "ui-base-layout", inputs: ["ctx"] }] }); }
115
+ }
116
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CurrencyComponent, decorators: [{
117
+ type: Component,
118
+ args: [{ selector: 'ui-currency', providers: [{
119
+ provide: NG_VALUE_ACCESSOR,
120
+ multi: true,
121
+ useExisting: CurrencyComponent
122
+ }, {
123
+ provide: NG_VALIDATORS,
124
+ multi: true,
125
+ useExisting: CurrencyComponent
126
+ }
127
+ ], template: "<ui-base-layout [ctx]=\"this\">\r\n\r\n<div class=\"control-container\" [formGroup]=\"formGroup\">\r\n <ui-input *ngIf=\"!amountHidden\" [textAlign]=\"'right'\" [formControlName]=\"'amount'\" [placeholder]=\"placeholder\" #input [useInputMessages]=\"'never'\" (focusChanged)=\"focusChanged($event)\"></ui-input>\r\n <ui-select [panelClass]=\"panelClass\" [formControlName]=\"'currency'\" [displayAttribute]=\"'symbol'\" [options]=\"currencies\" [useInputMessages]=\"'never'\"></ui-select>\r\n</div>\r\n\r\n</ui-base-layout>\r\n\r\n", styles: [":host{display:block}:host.amount-hidden ui-select{padding-left:.7em}:host .control-container{display:flex;border-style:solid}:host .control-container ui-input{flex:1 1 100%}:host .control-container ui-select{flex-grow:0;flex-shrink:1}:host ::ng-deep .mat-mdc-select-trigger{padding-left:.2em}:host ::ng-deep input{text-align:right;padding-right:.2em}:host ::ng-deep input,:host ::ng-deep .mat-mdc-select-trigger{border-width:0}:host.large ui-select{flex-basis:4.5em}:host.larger ui-select{flex-basis:5em}:host.normal ui-select{flex-basis:5.5em}:host.smaller ui-select{flex-basis:6em}:host.small ui-select{flex-basis:6em}:host.amount-hidden.large ui-select{flex-basis:5.2em}:host.amount-hidden.larger ui-select{flex-basis:4.7em}:host.amount-hidden.normal ui-select{flex-basis:4.2em}:host.amount-hidden.smaller ui-select{flex-basis:3.8em}:host.amount-hidden.smaller ui-select ::ng-deep .mat-mdc-select-trigger{width:3.2em}:host.amount-hidden.small ui-select{flex-basis:3.5em}\n"] }]
128
+ }], ctorParameters: () => [{ type: i1.ControlContainer, decorators: [{
129
+ type: Optional
130
+ }, {
131
+ type: Host
132
+ }, {
133
+ type: SkipSelf
134
+ }] }], propDecorators: { currencies: [{
135
+ type: Input
136
+ }], currencyDisabled: [{
137
+ type: Input
138
+ }], formControlName: [{
139
+ type: Input
140
+ }], panelClass: [{
141
+ type: Input
142
+ }], amountHidden: [{
143
+ type: HostBinding,
144
+ args: ['class.amount-hidden']
145
+ }, {
146
+ type: Input
147
+ }], hasFocus: [{
148
+ type: HostBinding,
149
+ args: ['class.focus']
150
+ }] } });
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3kuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jdXJyZW5jeS9jdXJyZW5jeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2N1cnJlbmN5L2N1cnJlbmN5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQVUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEUsT0FBTyxFQUdMLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLGlCQUFpQixFQUdsQixNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBaUJ4QixNQUFNLE9BQU8saUJBQWtCLFNBQVEsZUFBZTtJQW9CcEQsd0JBQXdCO0lBQ3hCLDRCQUE0QjtJQUM1QixzQkFBc0I7SUFDdEIsSUFBSTtJQUVKLFlBQXNELGdCQUFrQztRQUN0RixLQUFLLEVBQUUsQ0FBQztRQUQ0QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBdkIvRSxlQUFVLEdBQWlDLEVBQUUsQ0FBQztRQUM5QyxxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFFekIsZUFBVSxHQUFHLGFBQWEsQ0FBQztRQUczQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUU5QixjQUFTLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQztZQUMvQixNQUFNLEVBQUUsSUFBSSxrQkFBa0IsRUFBRTtZQUNoQyxRQUFRLEVBQUUsSUFBSSxrQkFBa0IsRUFBRTtTQUNuQyxDQUFDLENBQUM7UUFLSCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBV2pCLGFBQVEsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFLEdBQUUs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RSxpQkFBaUI7YUFDL0IsRUFBRTtnQkFDRCxPQUFPLEVBQUUsYUFBYTtnQkFDdEIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsV0FBVyxFQUFFLGlCQUFpQjthQUMvQjtTQUNBLGlEQzFCSCx1aEJBU0E7OzJGRG1CYSxpQkFBaUI7a0JBZjdCLFNBQVM7K0JBQ0UsYUFBYSxhQUdaLENBQUM7NEJBQ1YsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyxtQkFBbUI7eUJBQy9CLEVBQUU7NEJBQ0QsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcsbUJBQW1CO3lCQUMvQjtxQkFDQTs7MEJBMkJZLFFBQVE7OzBCQUFJLElBQUk7OzBCQUFJLFFBQVE7eUNBdkJoQyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR0csWUFBWTtzQkFEcEIsV0FBVzt1QkFBQyxxQkFBcUI7O3NCQUNqQyxLQUFLO2dCQVVOLFFBQVE7c0JBRFAsV0FBVzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0LCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCwgT3B0aW9uYWwsIFNraXBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVpQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2xheW91dHMvYmFzZS91aS1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgQWJzdHJhY3RDb250cm9sLCBDb250cm9sQ29udGFpbmVyLFxyXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxyXG4gIFVudHlwZWRGb3JtQ29udHJvbCxcclxuICBVbnR5cGVkRm9ybUdyb3VwLCBGb3JtR3JvdXBEaXJlY3RpdmUsXHJcbiAgTkdfVkFMSURBVE9SUyxcclxuICBOR19WQUxVRV9BQ0NFU1NPUixcclxuICBWYWxpZGF0aW9uRXJyb3JzLFxyXG4gIFZhbGlkYXRvclxyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndWktY3VycmVuY3knLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXJyZW5jeS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbICcuL2N1cnJlbmN5LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbe1xyXG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICBtdWx0aTogdHJ1ZSxcclxuICAgIHVzZUV4aXN0aW5nOiBDdXJyZW5jeUNvbXBvbmVudFxyXG4gIH0sIHtcclxuICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXHJcbiAgICBtdWx0aTogdHJ1ZSxcclxuICAgIHVzZUV4aXN0aW5nOiBDdXJyZW5jeUNvbXBvbmVudFxyXG4gIH1cclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdXJyZW5jeUNvbXBvbmVudCBleHRlbmRzIFVpQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciB7XHJcblxyXG4gIEBJbnB1dCgpIGN1cnJlbmNpZXM6IFBhcnRpYWw8eyBjb2RlOiBzdHJpbmc7IH0+W10gPSBbXTtcclxuICBASW5wdXQoKSBjdXJyZW5jeURpc2FibGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZm9ybUNvbnRyb2xOYW1lOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcGFuZWxDbGFzcyA9ICd1aS1jdXJyZW5jeSc7XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuYW1vdW50LWhpZGRlbicpXHJcbiAgQElucHV0KCkgYW1vdW50SGlkZGVuID0gZmFsc2U7XHJcblxyXG4gIGZvcm1Hcm91cCA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcclxuICAgIGFtb3VudDogbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpLFxyXG4gICAgY3VycmVuY3k6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKVxyXG4gIH0pO1xyXG5cclxuICBwYXJlbnRGb3JtQ29udHJvbDogQWJzdHJhY3RDb250cm9sO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZvY3VzJylcclxuICBoYXNGb2N1cyA9IGZhbHNlO1xyXG5cclxuICAvLyBASG9zdEJpbmRpbmcoJ2NsYXNzJylcclxuICAvLyBnZXQgc2l6ZUNsYXNzKCk6IHN0cmluZyB7XHJcbiAgLy8gICByZXR1cm4gdGhpcy5zaXplO1xyXG4gIC8vIH1cclxuXHJcbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEhvc3QoKSBAU2tpcFNlbGYoKSBwcm90ZWN0ZWQgY29udHJvbENvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lcikge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlID0gKHZhbHVlKSA9PiB7fTtcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5mb3JtR3JvdXAudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2ID0+IHRoaXMub25DaGFuZ2UodikpO1xyXG4gICAgLy8gdGhpcy5mb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHtcclxuICAgIC8vICAgYW1vdW50OiBuZXcgRm9ybUNvbnRyb2wodGhpcy5jb250cm9sPy52YWx1ZS5hbW91bnQpLFxyXG4gICAgLy8gICBjdXJyZW5jeTogbmV3IEZvcm1Db250cm9sKHRoaXMuY3VycmVuY2llcy5maW5kKGMgPT4gYy5jb2RlID09PSB0aGlzLmNvbnRyb2w/LnZhbHVlLmN1cnJlbmN5LmNvZGUpKVxyXG4gICAgLy8gfSk7XHJcbiAgICAvLyB0aGlzLmZvcm1Hcm91cC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHYgPT4ge1xyXG4gICAgLy8gICB0aGlzLm9uQ2hhbmdlKHRoaXMuZm9ybUdyb3VwPy5nZXRSYXdWYWx1ZSgpKTtcclxuICAgIC8vIH0pO1xyXG4gICAgaWYgKHRoaXMuY3VycmVuY3lEaXNhYmxlZCkge1xyXG4gICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2N1cnJlbmN5Jyk/LmRpc2FibGUoKTtcclxuICAgIH1cclxuICAgIC8vIHRoaXMubmdDb250cm9sLmNvbnRyb2wuc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUocyA9PiB7XHJcbiAgICAvLyAgIGlmIChzID09PSAnSU5WQUxJRCcpIHtcclxuICAgIC8vICAgICAvLyB0aGlzLmZvcm1Hcm91cD8uZ2V0KCdhbW91bnQnKT8uc2V0RXJyb3JzKHRoaXMuY29udHJvbD8uZXJyb3JzIHx8IG51bGwpO1xyXG4gICAgLy8gICAgIHRoaXMuZm9ybUdyb3VwPy5nZXQoJ2N1cnJlbmN5Jyk/Lm1hcmtBc1RvdWNoZWQoKTtcclxuICAgIC8vICAgICAvLyB0aGlzLmZvcm1Hcm91cD8uZ2V0KCdjdXJyZW5jeScpPy5zZXRFcnJvcnModGhpcy5jb250cm9sPy5lcnJvcnMgfHwgbnVsbCk7XHJcbiAgICAvLyAgIH1cclxuICAgIC8vICAgaWYgKHMgPT09ICdESVNBQkxFRCcpIHtcclxuICAgIC8vICAgICB0aGlzLmZvcm1Hcm91cD8uZGlzYWJsZSh7ZW1pdEV2ZW50OiBmYWxzZX0pO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyAgIGlmIChzID09PSAnVkFMSUQnKSB7XHJcbiAgICAvLyAgICAgdGhpcy5mb3JtR3JvdXA/LmVuYWJsZSh7ZW1pdEV2ZW50OiBmYWxzZX0pO1xyXG4gICAgLy8gICAgIGlmICh0aGlzLmN1cnJlbmN5RGlzYWJsZWQpIHtcclxuICAgIC8vICAgICAgIHRoaXMuZm9ybUdyb3VwPy5nZXQoJ2N1cnJlbmN5Jyk/LmRpc2FibGUoe2VtaXRFdmVudDogZmFsc2V9KTtcclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgIH1cclxuICAgIC8vIH0pO1xyXG4gICAgdGhpcy5wYXJlbnRGb3JtQ29udHJvbCA9ICh0aGlzLmNvbnRyb2xDb250YWluZXIgYXMgRm9ybUdyb3VwRGlyZWN0aXZlKS5jb250cm9sLmdldCh0aGlzLmZvcm1Db250cm9sTmFtZSk7XHJcbiAgfVxyXG5cclxuICAvLyBiaW5kVmFsaWRhdG9ycyh2YWxpZGF0b3JzKSB7XHJcbiAgLy8gICBjb25zb2xlLmxvZygnYmluZGluZyB2YWxpZGF0b3JzJywgdmFsaWRhdG9ycyk7XHJcbiAgLy8gICBpZiAodGhpcy5mb3JtR3JvdXApIHtcclxuICAvLyAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdhbW91bnQnKS5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xyXG4gIC8vICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2N1cnJlbmN5JykubWFya0FzVG91Y2hlZCgpO1xyXG4gIC8vICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ2N1cnJlbmN5Jykuc2V0RXJyb3JzKHZhbGlkYXRvcnMpO1xyXG4gIC8vICAgfVxyXG4gIC8vIH1cclxuXHJcbiAgZ2V0IGlzSW52YWxpZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnBhcmVudEZvcm1Db250cm9sLmludmFsaWQ7XHJcbiAgfVxyXG5cclxuICBnZXQgdmFsaWRhdGlvbkVycm9ycygpOiBWYWxpZGF0aW9uRXJyb3JzIHtcclxuICAgIHJldHVybiB0aGlzLnBhcmVudEZvcm1Db250cm9sLmVycm9ycztcclxuICB9XHJcblxyXG4gIGZvY3VzQ2hhbmdlZChoYXNGb2N1czogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5oYXNGb2N1cyA9IGhhc0ZvY3VzO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGlmIChpc0Rpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCgnYW1vdW50JykuZGlzYWJsZSgpO1xyXG4gICAgICBpZiAoIXRoaXMuY3VycmVuY3lEaXNhYmxlZCkge1xyXG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCgnY3VycmVuY3knKS5kaXNhYmxlKCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCgnYW1vdW50JykuZW5hYmxlKCk7XHJcbiAgICAgIGlmICghdGhpcy5jdXJyZW5jeURpc2FibGVkKSB7XHJcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdjdXJyZW5jeScpLmVuYWJsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtR3JvdXAuc2V0VmFsdWUob2JqKTtcclxuICB9XHJcbn1cclxuIiwiPHVpLWJhc2UtbGF5b3V0IFtjdHhdPVwidGhpc1wiPlxyXG5cclxuPGRpdiBjbGFzcz1cImNvbnRyb2wtY29udGFpbmVyXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cclxuICA8dWktaW5wdXQgKm5nSWY9XCIhYW1vdW50SGlkZGVuXCIgW3RleHRBbGlnbl09XCIncmlnaHQnXCIgW2Zvcm1Db250cm9sTmFtZV09XCInYW1vdW50J1wiIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiICNpbnB1dCBbdXNlSW5wdXRNZXNzYWdlc109XCInbmV2ZXInXCIgKGZvY3VzQ2hhbmdlZCk9XCJmb2N1c0NoYW5nZWQoJGV2ZW50KVwiPjwvdWktaW5wdXQ+XHJcbiAgPHVpLXNlbGVjdCBbcGFuZWxDbGFzc109XCJwYW5lbENsYXNzXCIgW2Zvcm1Db250cm9sTmFtZV09XCInY3VycmVuY3knXCIgW2Rpc3BsYXlBdHRyaWJ1dGVdPVwiJ3N5bWJvbCdcIiBbb3B0aW9uc109XCJjdXJyZW5jaWVzXCIgW3VzZUlucHV0TWVzc2FnZXNdPVwiJ25ldmVyJ1wiPjwvdWktc2VsZWN0PlxyXG48L2Rpdj5cclxuXHJcbjwvdWktYmFzZS1sYXlvdXQ+XHJcblxyXG4iXX0=
@@ -1,68 +1,68 @@
1
- import { Component, EventEmitter, Optional, Output, Self, ViewChild } from '@angular/core';
2
- import { UiSimpleComponent } from '../layouts/simple/ui-simple.component';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/forms";
5
- import * as i2 from "@angular/common";
6
- import * as i3 from "@angular/material/icon";
7
- import * as i4 from "@angular/material/datepicker";
8
- import * as i5 from "../layouts/simple/ui-simple-layout.component";
9
- export class DateComponent extends UiSimpleComponent {
10
- constructor(ngControl) {
11
- super(ngControl);
12
- this.ngControl = ngControl;
13
- // @Input() placeholder: string | undefined;
14
- // @Input() control;
15
- // // @Input() controlName;
16
- // @Input() label;
17
- // @Input() type;
18
- // @Input() floatLabel;
19
- this.doKeyup = new EventEmitter();
20
- this.hasFocus = false;
21
- this.controlTypeName = 'date';
22
- this.opening = false;
23
- }
24
- open() {
25
- this.hasFocus = true;
26
- // this.opening = true;
27
- // this.picker.open();
28
- // setTimeout(() => {
29
- // this.input.nativeElement.focus();
30
- // this.opening = false;
31
- // }); // , 150);
32
- }
33
- close() {
34
- this.hasFocus = false;
35
- // if (!this.opening) {
36
- // this.picker.close();h
37
- // }
38
- }
39
- keyup() {
40
- this.doKeyup.emit();
41
- // this.onChange(this.control.value);
42
- }
43
- writeValue(obj) { }
44
- registerOnChange(fn) {
45
- this.onChange = fn;
46
- }
47
- registerOnTouched(fn) { }
48
- setDisabledState(isDisabled) { }
49
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: DateComponent, deps: [{ token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
50
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: DateComponent, selector: "ui-date", outputs: { doKeyup: "doKeyup" }, viewQueries: [{ propertyName: "picker", first: true, predicate: ["picker"], descendants: true }, { propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ui-simple-layout [ctx]=\"this\">\r\n\r\n<div class=\"control-container has-suffix active-icons\" [ngClass]=\"{'has-focus': hasFocus}\">\r\n <input #input (blur)=\"close()\" (focus)=\"open()\" [matDatepicker]=\"picker\" [placeholder]=\"placeholder\" [formControl]=\"componentFormControl\" (keyup)=\"keyup()\">\r\n <mat-icon slot=\"suffix\" (click)=\"picker.open()\" [ngClass]=\"{disabled: componentFormControl.disabled}\">today</mat-icon>\r\n <mat-datepicker #picker></mat-datepicker>\r\n</div>\r\n\r\n</ui-simple-layout>\r\n", styles: [":host{display:flex;flex-direction:column;width:100%}:host .control-container{width:100%;position:relative}:host .control-container.has-prefix ::ng-deep input,:host .control-container.has-prefix ::ng-deep textarea,:host .control-container.has-prefix ::ng-deep .mat-mdc-select-trigger{padding-left:1.8em}:host .control-container.has-suffix:not(.has-clear-icon) ::ng-deep input,:host .control-container.has-suffix:not(.has-clear-icon) ::ng-deep textarea,:host .control-container.has-suffix:not(.has-clear-icon) ::ng-deep .mat-mdc-select-trigger{padding-right:1.8em}:host .control-container.has-clear-icon:not(.has-suffix) ::ng-deep input,:host .control-container.has-clear-icon:not(.has-suffix) ::ng-deep textarea,:host .control-container.has-clear-icon:not(.has-suffix) ::ng-deep .mat-mdc-select-trigger{padding-right:1.8em}:host .control-container.has-suffix.has-clear-icon ::ng-deep input,:host .control-container.has-suffix.has-clear-icon ::ng-deep textarea,:host .control-container.has-suffix.has-clear-icon ::ng-deep .mat-mdc-select-trigger{padding-right:3.6em}:host .control-container.has-suffix.has-clear-icon ::ng-deep .clear-icon{right:1.4em!important}:host ::ng-deep [slot=suffix],:host ::ng-deep .clear-icon,:host ::ng-deep .suffix-icon{position:absolute;-webkit-user-select:none;user-select:none;transition:color .25s;top:calc(50% - .5em);right:.2em;width:1em;height:1em;font-size:1.5em}:host ::ng-deep [slot=suffix]:not(.disabled),:host ::ng-deep .clear-icon:not(.disabled),:host ::ng-deep .suffix-icon:not(.disabled){cursor:pointer}:host ::ng-deep [slot=prefix],:host ::ng-deep .prefix-icon{position:absolute;-webkit-user-select:none;user-select:none;transition:color .25s;top:calc(50% - .5em);left:.2em;width:1em;height:1em;font-size:1.5em}:host ::ng-deep [slot=prefix]:not(.disabled),:host ::ng-deep .prefix-icon:not(.disabled){cursor:pointer}:host ::ng-deep input,:host ::ng-deep textarea,:host ::ng-deep .mat-mdc-select-trigger,:host ::ng-deep .editor-wrapper{resize:none;width:100%;line-height:1.2em;font-size:1em;outline:none;border-style:solid;transition:border-color 333ms}:host ::ng-deep textarea.autoresize{box-sizing:content-box;width:calc(100% - 1.4em)}:host ::ng-deep ::ng-deep .mat-select-trigger,:host ::ng-deep ::ng-deep .mat-mdc-select-trigger{height:100%}:host ::ng-deep ::ng-deep .mat-select-value,:host ::ng-deep ::ng-deep .mat-mdc-select-value{vertical-align:middle}::ng-deep ui-input{display:block}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i4.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i5.UiSimpleLayoutComponent, selector: "ui-simple-layout", inputs: ["ctx"] }] }); }
51
- }
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: DateComponent, decorators: [{
53
- type: Component,
54
- args: [{ selector: 'ui-date', template: "<ui-simple-layout [ctx]=\"this\">\r\n\r\n<div class=\"control-container has-suffix active-icons\" [ngClass]=\"{'has-focus': hasFocus}\">\r\n <input #input (blur)=\"close()\" (focus)=\"open()\" [matDatepicker]=\"picker\" [placeholder]=\"placeholder\" [formControl]=\"componentFormControl\" (keyup)=\"keyup()\">\r\n <mat-icon slot=\"suffix\" (click)=\"picker.open()\" [ngClass]=\"{disabled: componentFormControl.disabled}\">today</mat-icon>\r\n <mat-datepicker #picker></mat-datepicker>\r\n</div>\r\n\r\n</ui-simple-layout>\r\n", styles: [":host{display:flex;flex-direction:column;width:100%}:host .control-container{width:100%;position:relative}:host .control-container.has-prefix ::ng-deep input,:host .control-container.has-prefix ::ng-deep textarea,:host .control-container.has-prefix ::ng-deep .mat-mdc-select-trigger{padding-left:1.8em}:host .control-container.has-suffix:not(.has-clear-icon) ::ng-deep input,:host .control-container.has-suffix:not(.has-clear-icon) ::ng-deep textarea,:host .control-container.has-suffix:not(.has-clear-icon) ::ng-deep .mat-mdc-select-trigger{padding-right:1.8em}:host .control-container.has-clear-icon:not(.has-suffix) ::ng-deep input,:host .control-container.has-clear-icon:not(.has-suffix) ::ng-deep textarea,:host .control-container.has-clear-icon:not(.has-suffix) ::ng-deep .mat-mdc-select-trigger{padding-right:1.8em}:host .control-container.has-suffix.has-clear-icon ::ng-deep input,:host .control-container.has-suffix.has-clear-icon ::ng-deep textarea,:host .control-container.has-suffix.has-clear-icon ::ng-deep .mat-mdc-select-trigger{padding-right:3.6em}:host .control-container.has-suffix.has-clear-icon ::ng-deep .clear-icon{right:1.4em!important}:host ::ng-deep [slot=suffix],:host ::ng-deep .clear-icon,:host ::ng-deep .suffix-icon{position:absolute;-webkit-user-select:none;user-select:none;transition:color .25s;top:calc(50% - .5em);right:.2em;width:1em;height:1em;font-size:1.5em}:host ::ng-deep [slot=suffix]:not(.disabled),:host ::ng-deep .clear-icon:not(.disabled),:host ::ng-deep .suffix-icon:not(.disabled){cursor:pointer}:host ::ng-deep [slot=prefix],:host ::ng-deep .prefix-icon{position:absolute;-webkit-user-select:none;user-select:none;transition:color .25s;top:calc(50% - .5em);left:.2em;width:1em;height:1em;font-size:1.5em}:host ::ng-deep [slot=prefix]:not(.disabled),:host ::ng-deep .prefix-icon:not(.disabled){cursor:pointer}:host ::ng-deep input,:host ::ng-deep textarea,:host ::ng-deep .mat-mdc-select-trigger,:host ::ng-deep .editor-wrapper{resize:none;width:100%;line-height:1.2em;font-size:1em;outline:none;border-style:solid;transition:border-color 333ms}:host ::ng-deep textarea.autoresize{box-sizing:content-box;width:calc(100% - 1.4em)}:host ::ng-deep ::ng-deep .mat-select-trigger,:host ::ng-deep ::ng-deep .mat-mdc-select-trigger{height:100%}:host ::ng-deep ::ng-deep .mat-select-value,:host ::ng-deep ::ng-deep .mat-mdc-select-value{vertical-align:middle}::ng-deep ui-input{display:block}\n"] }]
55
- }], ctorParameters: function () { return [{ type: i1.NgControl, decorators: [{
56
- type: Optional
57
- }, {
58
- type: Self
59
- }] }]; }, propDecorators: { doKeyup: [{
60
- type: Output
61
- }], picker: [{
62
- type: ViewChild,
63
- args: ['picker']
64
- }], input: [{
65
- type: ViewChild,
66
- args: ['input']
67
- }] } });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2RhdGUvZGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2RhdGUvZGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBZSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7Ozs7QUFlMUUsTUFBTSxPQUFPLGFBQWMsU0FBUSxpQkFBaUI7SUFvQmxELFlBQXVDLFNBQW9CO1FBQ3pELEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQURvQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBbkIzRCw0Q0FBNEM7UUFDNUMsb0JBQW9CO1FBQ3BCLDJCQUEyQjtRQUMzQixrQkFBa0I7UUFDbEIsaUJBQWlCO1FBQ2pCLHVCQUF1QjtRQUViLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBTXZDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakIsb0JBQWUsR0FBRyxNQUFNLENBQUM7UUFFekIsWUFBTyxHQUFHLEtBQUssQ0FBQztJQUloQixDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLHVCQUF1QjtRQUN2QixzQkFBc0I7UUFDdEIscUJBQXFCO1FBQ3JCLHNDQUFzQztRQUN0QywwQkFBMEI7UUFDMUIsaUJBQWlCO0lBQ25CLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsdUJBQXVCO1FBQ3ZCLDBCQUEwQjtRQUMxQixJQUFJO0lBQ04sQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BCLHFDQUFxQztJQUN2QyxDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQVEsSUFBVSxDQUFDO0lBRTlCLGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU8sSUFBVSxDQUFDO0lBRXBDLGdCQUFnQixDQUFDLFVBQW1CLElBQVUsQ0FBQzsrR0F0RHBDLGFBQWE7bUdBQWIsYUFBYSwwUkNqQjFCLGtoQkFTQTs7NEZEUWEsYUFBYTtrQkFiekIsU0FBUzsrQkFDRSxTQUFTOzswQkFnQ04sUUFBUTs7MEJBQUksSUFBSTs0Q0FabkIsT0FBTztzQkFBaEIsTUFBTTtnQkFFYyxNQUFNO3NCQUExQixTQUFTO3VCQUFDLFFBQVE7Z0JBQ0MsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE9wdGlvbmFsLCBPdXRwdXQsIFNlbGYsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBVaVNpbXBsZUNvbXBvbmVudCB9IGZyb20gJy4uL2xheW91dHMvc2ltcGxlL3VpLXNpbXBsZS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd1aS1kYXRlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbICcuLi9sYXlvdXRzL3NpbXBsZS91aS1zaW1wbGUtbGF5b3V0LmNvbXBvbmVudC5zY3NzJ11cclxuICAvLyBwcm92aWRlcnM6IFtcclxuICAvLyAgIHtcclxuICAvLyAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgLy8gICAgIG11bHRpOiB0cnVlLFxyXG4gIC8vICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRlQ29tcG9uZW50KSxcclxuICAvLyAgIH1cclxuICAvLyBdXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgRGF0ZUNvbXBvbmVudCBleHRlbmRzIFVpU2ltcGxlQ29tcG9uZW50IHsgLy8gaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgLy8gQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAvLyBASW5wdXQoKSBjb250cm9sO1xyXG4gIC8vIC8vIEBJbnB1dCgpIGNvbnRyb2xOYW1lO1xyXG4gIC8vIEBJbnB1dCgpIGxhYmVsO1xyXG4gIC8vIEBJbnB1dCgpIHR5cGU7XHJcbiAgLy8gQElucHV0KCkgZmxvYXRMYWJlbDtcclxuXHJcbiAgQE91dHB1dCgpIGRvS2V5dXAgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3BpY2tlcicpIHBpY2tlcj86IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXQnKSBpbnB1dD86IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIG9uQ2hhbmdlOiBhbnk7XHJcbiAgaGFzRm9jdXMgPSBmYWxzZTtcclxuXHJcbiAgY29udHJvbFR5cGVOYW1lID0gJ2RhdGUnO1xyXG5cclxuICBvcGVuaW5nID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBTZWxmKCkgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sKSB7XHJcbiAgICBzdXBlcihuZ0NvbnRyb2wpO1xyXG4gIH1cclxuXHJcbiAgb3BlbigpOiB2b2lkIHtcclxuICAgIHRoaXMuaGFzRm9jdXMgPSB0cnVlO1xyXG4gICAgLy8gdGhpcy5vcGVuaW5nID0gdHJ1ZTtcclxuICAgIC8vIHRoaXMucGlja2VyLm9wZW4oKTtcclxuICAgIC8vIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgLy8gICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgIC8vICAgdGhpcy5vcGVuaW5nID0gZmFsc2U7XHJcbiAgICAvLyB9KTsgLy8gLCAxNTApO1xyXG4gIH1cclxuXHJcbiAgY2xvc2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmhhc0ZvY3VzID0gZmFsc2U7XHJcbiAgICAvLyBpZiAoIXRoaXMub3BlbmluZykge1xyXG4gICAgLy8gICB0aGlzLnBpY2tlci5jbG9zZSgpO2hcclxuICAgIC8vIH1cclxuICB9XHJcblxyXG4gIGtleXVwKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kb0tleXVwLmVtaXQoKTtcclxuICAgIC8vIHRoaXMub25DaGFuZ2UodGhpcy5jb250cm9sLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHsgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHsgfVxyXG5cclxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHsgfVxyXG59XHJcbiIsIjx1aS1zaW1wbGUtbGF5b3V0IFtjdHhdPVwidGhpc1wiPlxyXG5cclxuPGRpdiBjbGFzcz1cImNvbnRyb2wtY29udGFpbmVyIGhhcy1zdWZmaXggYWN0aXZlLWljb25zXCIgW25nQ2xhc3NdPVwieydoYXMtZm9jdXMnOiBoYXNGb2N1c31cIj5cclxuICA8aW5wdXQgI2lucHV0IChibHVyKT1cImNsb3NlKClcIiAoZm9jdXMpPVwib3BlbigpXCIgW21hdERhdGVwaWNrZXJdPVwicGlja2VyXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgW2Zvcm1Db250cm9sXT1cImNvbXBvbmVudEZvcm1Db250cm9sXCIgKGtleXVwKT1cImtleXVwKClcIj5cclxuICA8bWF0LWljb24gc2xvdD1cInN1ZmZpeFwiIChjbGljayk9XCJwaWNrZXIub3BlbigpXCIgW25nQ2xhc3NdPVwie2Rpc2FibGVkOiBjb21wb25lbnRGb3JtQ29udHJvbC5kaXNhYmxlZH1cIj50b2RheTwvbWF0LWljb24+XHJcbiAgPG1hdC1kYXRlcGlja2VyICNwaWNrZXI+PC9tYXQtZGF0ZXBpY2tlcj5cclxuPC9kaXY+XHJcblxyXG48L3VpLXNpbXBsZS1sYXlvdXQ+XHJcbiJdfQ==
1
+ import { Component, EventEmitter, Optional, Output, Self, ViewChild } from '@angular/core';
2
+ import { UiSimpleComponent } from '../layouts/simple/ui-simple.component';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/forms";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "@angular/material/icon";
7
+ import * as i4 from "@angular/material/datepicker";
8
+ import * as i5 from "../layouts/simple/ui-simple-layout.component";
9
+ export class DateComponent extends UiSimpleComponent {
10
+ constructor(ngControl) {
11
+ super(ngControl);
12
+ this.ngControl = ngControl;
13
+ // @Input() placeholder: string | undefined;
14
+ // @Input() control;
15
+ // // @Input() controlName;
16
+ // @Input() label;
17
+ // @Input() type;
18
+ // @Input() floatLabel;
19
+ this.doKeyup = new EventEmitter();
20
+ this.hasFocus = false;
21
+ this.controlTypeName = 'date';
22
+ this.opening = false;
23
+ }
24
+ open() {
25
+ this.hasFocus = true;
26
+ // this.opening = true;
27
+ // this.picker.open();
28
+ // setTimeout(() => {
29
+ // this.input.nativeElement.focus();
30
+ // this.opening = false;
31
+ // }); // , 150);
32
+ }
33
+ close() {
34
+ this.hasFocus = false;
35
+ // if (!this.opening) {
36
+ // this.picker.close();h
37
+ // }
38
+ }
39
+ keyup() {
40
+ this.doKeyup.emit();
41
+ // this.onChange(this.control.value);
42
+ }
43
+ writeValue(obj) { }
44
+ registerOnChange(fn) {
45
+ this.onChange = fn;
46
+ }
47
+ registerOnTouched(fn) { }
48
+ setDisabledState(isDisabled) { }
49
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: DateComponent, deps: [{ token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
50
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: DateComponent, selector: "ui-date", outputs: { doKeyup: "doKeyup" }, viewQueries: [{ propertyName: "picker", first: true, predicate: ["picker"], descendants: true }, { propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ui-simple-layout [ctx]=\"this\">\r\n\r\n<div class=\"control-container has-suffix active-icons\" [ngClass]=\"{'has-focus': hasFocus}\">\r\n <input #input (blur)=\"close()\" (focus)=\"open()\" [matDatepicker]=\"picker\" [placeholder]=\"placeholder\" [formControl]=\"componentFormControl\" (keyup)=\"keyup()\">\r\n <mat-icon slot=\"suffix\" (click)=\"picker.open()\" [ngClass]=\"{disabled: componentFormControl.disabled}\">today</mat-icon>\r\n <mat-datepicker #picker></mat-datepicker>\r\n</div>\r\n\r\n</ui-simple-layout>\r\n", styles: [":host{display:flex;flex-direction:column;width:100%}:host .control-container{width:100%;position:relative}:host .control-container.has-prefix ::ng-deep input,:host .control-container.has-prefix ::ng-deep textarea,:host .control-container.has-prefix ::ng-deep .mat-mdc-select-trigger{padding-left:1.8em}:host .control-container.has-suffix:not(.has-clear-icon) ::ng-deep input,:host .control-container.has-suffix:not(.has-clear-icon) ::ng-deep textarea,:host .control-container.has-suffix:not(.has-clear-icon) ::ng-deep .mat-mdc-select-trigger{padding-right:1.8em}:host .control-container.has-clear-icon:not(.has-suffix) ::ng-deep input,:host .control-container.has-clear-icon:not(.has-suffix) ::ng-deep textarea,:host .control-container.has-clear-icon:not(.has-suffix) ::ng-deep .mat-mdc-select-trigger{padding-right:1.8em}:host .control-container.has-suffix.has-clear-icon ::ng-deep input,:host .control-container.has-suffix.has-clear-icon ::ng-deep textarea,:host .control-container.has-suffix.has-clear-icon ::ng-deep .mat-mdc-select-trigger{padding-right:3.6em}:host .control-container.has-suffix.has-clear-icon ::ng-deep .clear-icon{right:1.4em!important}:host ::ng-deep [slot=suffix],:host ::ng-deep .clear-icon,:host ::ng-deep .suffix-icon{position:absolute;-webkit-user-select:none;user-select:none;transition:color .25s;top:calc(50% - .5em);right:.2em;width:1em;height:1em;font-size:1.5em}:host ::ng-deep [slot=suffix]:not(.disabled),:host ::ng-deep .clear-icon:not(.disabled),:host ::ng-deep .suffix-icon:not(.disabled){cursor:pointer}:host ::ng-deep [slot=prefix],:host ::ng-deep .prefix-icon{position:absolute;-webkit-user-select:none;user-select:none;transition:color .25s;top:calc(50% - .5em);left:.2em;width:1em;height:1em;font-size:1.5em}:host ::ng-deep [slot=prefix]:not(.disabled),:host ::ng-deep .prefix-icon:not(.disabled){cursor:pointer}:host ::ng-deep input,:host ::ng-deep textarea,:host ::ng-deep .mat-mdc-select-trigger,:host ::ng-deep .editor-wrapper{resize:none;width:100%;line-height:1.2em;font-size:1em;outline:none;border-style:solid;transition:border-color 333ms}:host ::ng-deep textarea.autoresize{box-sizing:content-box;width:calc(100% - 1.4em)}:host ::ng-deep ::ng-deep .mat-select-trigger,:host ::ng-deep ::ng-deep .mat-mdc-select-trigger{height:100%}:host ::ng-deep ::ng-deep .mat-select-value,:host ::ng-deep ::ng-deep .mat-mdc-select-value{vertical-align:middle}::ng-deep ui-input{display:block}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i4.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i5.UiSimpleLayoutComponent, selector: "ui-simple-layout", inputs: ["ctx"] }] }); }
51
+ }
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: DateComponent, decorators: [{
53
+ type: Component,
54
+ args: [{ selector: 'ui-date', template: "<ui-simple-layout [ctx]=\"this\">\r\n\r\n<div class=\"control-container has-suffix active-icons\" [ngClass]=\"{'has-focus': hasFocus}\">\r\n <input #input (blur)=\"close()\" (focus)=\"open()\" [matDatepicker]=\"picker\" [placeholder]=\"placeholder\" [formControl]=\"componentFormControl\" (keyup)=\"keyup()\">\r\n <mat-icon slot=\"suffix\" (click)=\"picker.open()\" [ngClass]=\"{disabled: componentFormControl.disabled}\">today</mat-icon>\r\n <mat-datepicker #picker></mat-datepicker>\r\n</div>\r\n\r\n</ui-simple-layout>\r\n", styles: [":host{display:flex;flex-direction:column;width:100%}:host .control-container{width:100%;position:relative}:host .control-container.has-prefix ::ng-deep input,:host .control-container.has-prefix ::ng-deep textarea,:host .control-container.has-prefix ::ng-deep .mat-mdc-select-trigger{padding-left:1.8em}:host .control-container.has-suffix:not(.has-clear-icon) ::ng-deep input,:host .control-container.has-suffix:not(.has-clear-icon) ::ng-deep textarea,:host .control-container.has-suffix:not(.has-clear-icon) ::ng-deep .mat-mdc-select-trigger{padding-right:1.8em}:host .control-container.has-clear-icon:not(.has-suffix) ::ng-deep input,:host .control-container.has-clear-icon:not(.has-suffix) ::ng-deep textarea,:host .control-container.has-clear-icon:not(.has-suffix) ::ng-deep .mat-mdc-select-trigger{padding-right:1.8em}:host .control-container.has-suffix.has-clear-icon ::ng-deep input,:host .control-container.has-suffix.has-clear-icon ::ng-deep textarea,:host .control-container.has-suffix.has-clear-icon ::ng-deep .mat-mdc-select-trigger{padding-right:3.6em}:host .control-container.has-suffix.has-clear-icon ::ng-deep .clear-icon{right:1.4em!important}:host ::ng-deep [slot=suffix],:host ::ng-deep .clear-icon,:host ::ng-deep .suffix-icon{position:absolute;-webkit-user-select:none;user-select:none;transition:color .25s;top:calc(50% - .5em);right:.2em;width:1em;height:1em;font-size:1.5em}:host ::ng-deep [slot=suffix]:not(.disabled),:host ::ng-deep .clear-icon:not(.disabled),:host ::ng-deep .suffix-icon:not(.disabled){cursor:pointer}:host ::ng-deep [slot=prefix],:host ::ng-deep .prefix-icon{position:absolute;-webkit-user-select:none;user-select:none;transition:color .25s;top:calc(50% - .5em);left:.2em;width:1em;height:1em;font-size:1.5em}:host ::ng-deep [slot=prefix]:not(.disabled),:host ::ng-deep .prefix-icon:not(.disabled){cursor:pointer}:host ::ng-deep input,:host ::ng-deep textarea,:host ::ng-deep .mat-mdc-select-trigger,:host ::ng-deep .editor-wrapper{resize:none;width:100%;line-height:1.2em;font-size:1em;outline:none;border-style:solid;transition:border-color 333ms}:host ::ng-deep textarea.autoresize{box-sizing:content-box;width:calc(100% - 1.4em)}:host ::ng-deep ::ng-deep .mat-select-trigger,:host ::ng-deep ::ng-deep .mat-mdc-select-trigger{height:100%}:host ::ng-deep ::ng-deep .mat-select-value,:host ::ng-deep ::ng-deep .mat-mdc-select-value{vertical-align:middle}::ng-deep ui-input{display:block}\n"] }]
55
+ }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
56
+ type: Optional
57
+ }, {
58
+ type: Self
59
+ }] }], propDecorators: { doKeyup: [{
60
+ type: Output
61
+ }], picker: [{
62
+ type: ViewChild,
63
+ args: ['picker']
64
+ }], input: [{
65
+ type: ViewChild,
66
+ args: ['input']
67
+ }] } });
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2RhdGUvZGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2RhdGUvZGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBZSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7Ozs7QUFlMUUsTUFBTSxPQUFPLGFBQWMsU0FBUSxpQkFBaUI7SUFvQmxELFlBQXVDLFNBQW9CO1FBQ3pELEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQURvQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBbkIzRCw0Q0FBNEM7UUFDNUMsb0JBQW9CO1FBQ3BCLDJCQUEyQjtRQUMzQixrQkFBa0I7UUFDbEIsaUJBQWlCO1FBQ2pCLHVCQUF1QjtRQUViLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBTXZDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakIsb0JBQWUsR0FBRyxNQUFNLENBQUM7UUFFekIsWUFBTyxHQUFHLEtBQUssQ0FBQztJQUloQixDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLHVCQUF1QjtRQUN2QixzQkFBc0I7UUFDdEIscUJBQXFCO1FBQ3JCLHNDQUFzQztRQUN0QywwQkFBMEI7UUFDMUIsaUJBQWlCO0lBQ25CLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsdUJBQXVCO1FBQ3ZCLDBCQUEwQjtRQUMxQixJQUFJO0lBQ04sQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BCLHFDQUFxQztJQUN2QyxDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQVEsSUFBVSxDQUFDO0lBRTlCLGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU8sSUFBVSxDQUFDO0lBRXBDLGdCQUFnQixDQUFDLFVBQW1CLElBQVUsQ0FBQzs4R0F0RHBDLGFBQWE7a0dBQWIsYUFBYSwwUkNqQjFCLGtoQkFTQTs7MkZEUWEsYUFBYTtrQkFiekIsU0FBUzsrQkFDRSxTQUFTOzswQkFnQ04sUUFBUTs7MEJBQUksSUFBSTt5Q0FabkIsT0FBTztzQkFBaEIsTUFBTTtnQkFFYyxNQUFNO3NCQUExQixTQUFTO3VCQUFDLFFBQVE7Z0JBQ0MsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE9wdGlvbmFsLCBPdXRwdXQsIFNlbGYsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBVaVNpbXBsZUNvbXBvbmVudCB9IGZyb20gJy4uL2xheW91dHMvc2ltcGxlL3VpLXNpbXBsZS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd1aS1kYXRlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbICcuLi9sYXlvdXRzL3NpbXBsZS91aS1zaW1wbGUtbGF5b3V0LmNvbXBvbmVudC5zY3NzJ11cclxuICAvLyBwcm92aWRlcnM6IFtcclxuICAvLyAgIHtcclxuICAvLyAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgLy8gICAgIG11bHRpOiB0cnVlLFxyXG4gIC8vICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRlQ29tcG9uZW50KSxcclxuICAvLyAgIH1cclxuICAvLyBdXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgRGF0ZUNvbXBvbmVudCBleHRlbmRzIFVpU2ltcGxlQ29tcG9uZW50IHsgLy8gaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgLy8gQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAvLyBASW5wdXQoKSBjb250cm9sO1xyXG4gIC8vIC8vIEBJbnB1dCgpIGNvbnRyb2xOYW1lO1xyXG4gIC8vIEBJbnB1dCgpIGxhYmVsO1xyXG4gIC8vIEBJbnB1dCgpIHR5cGU7XHJcbiAgLy8gQElucHV0KCkgZmxvYXRMYWJlbDtcclxuXHJcbiAgQE91dHB1dCgpIGRvS2V5dXAgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3BpY2tlcicpIHBpY2tlcj86IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXQnKSBpbnB1dD86IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIG9uQ2hhbmdlOiBhbnk7XHJcbiAgaGFzRm9jdXMgPSBmYWxzZTtcclxuXHJcbiAgY29udHJvbFR5cGVOYW1lID0gJ2RhdGUnO1xyXG5cclxuICBvcGVuaW5nID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBTZWxmKCkgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sKSB7XHJcbiAgICBzdXBlcihuZ0NvbnRyb2wpO1xyXG4gIH1cclxuXHJcbiAgb3BlbigpOiB2b2lkIHtcclxuICAgIHRoaXMuaGFzRm9jdXMgPSB0cnVlO1xyXG4gICAgLy8gdGhpcy5vcGVuaW5nID0gdHJ1ZTtcclxuICAgIC8vIHRoaXMucGlja2VyLm9wZW4oKTtcclxuICAgIC8vIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgLy8gICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgIC8vICAgdGhpcy5vcGVuaW5nID0gZmFsc2U7XHJcbiAgICAvLyB9KTsgLy8gLCAxNTApO1xyXG4gIH1cclxuXHJcbiAgY2xvc2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmhhc0ZvY3VzID0gZmFsc2U7XHJcbiAgICAvLyBpZiAoIXRoaXMub3BlbmluZykge1xyXG4gICAgLy8gICB0aGlzLnBpY2tlci5jbG9zZSgpO2hcclxuICAgIC8vIH1cclxuICB9XHJcblxyXG4gIGtleXVwKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kb0tleXVwLmVtaXQoKTtcclxuICAgIC8vIHRoaXMub25DaGFuZ2UodGhpcy5jb250cm9sLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHsgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHsgfVxyXG5cclxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHsgfVxyXG59XHJcbiIsIjx1aS1zaW1wbGUtbGF5b3V0IFtjdHhdPVwidGhpc1wiPlxyXG5cclxuPGRpdiBjbGFzcz1cImNvbnRyb2wtY29udGFpbmVyIGhhcy1zdWZmaXggYWN0aXZlLWljb25zXCIgW25nQ2xhc3NdPVwieydoYXMtZm9jdXMnOiBoYXNGb2N1c31cIj5cclxuICA8aW5wdXQgI2lucHV0IChibHVyKT1cImNsb3NlKClcIiAoZm9jdXMpPVwib3BlbigpXCIgW21hdERhdGVwaWNrZXJdPVwicGlja2VyXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgW2Zvcm1Db250cm9sXT1cImNvbXBvbmVudEZvcm1Db250cm9sXCIgKGtleXVwKT1cImtleXVwKClcIj5cclxuICA8bWF0LWljb24gc2xvdD1cInN1ZmZpeFwiIChjbGljayk9XCJwaWNrZXIub3BlbigpXCIgW25nQ2xhc3NdPVwie2Rpc2FibGVkOiBjb21wb25lbnRGb3JtQ29udHJvbC5kaXNhYmxlZH1cIj50b2RheTwvbWF0LWljb24+XHJcbiAgPG1hdC1kYXRlcGlja2VyICNwaWNrZXI+PC9tYXQtZGF0ZXBpY2tlcj5cclxuPC9kaXY+XHJcblxyXG48L3VpLXNpbXBsZS1sYXlvdXQ+XHJcbiJdfQ==