@kato-lee/components 1.0.7 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (199) hide show
  1. package/assets/_grids.scss +5 -5
  2. package/assets/fonts/fonts.scss +11 -0
  3. package/assets/material/themes/dark.scss +2 -1
  4. package/assets/themes/_dark.scss +2 -1
  5. package/assets/themes/_default.scss +0 -1
  6. package/box-form/{box-form.component.d.ts → component.d.ts} +2 -2
  7. package/box-form/index.d.ts +2 -2
  8. package/box-form/module.d.ts +8 -0
  9. package/capsule/{capsule.component.d.ts → component.d.ts} +1 -1
  10. package/capsule/index.d.ts +2 -2
  11. package/capsule/{capsule.module.d.ts → module.d.ts} +3 -2
  12. package/cards/{simple-card.component.d.ts → component.d.ts} +1 -1
  13. package/cards/index.d.ts +2 -2
  14. package/cards/{cards.module.d.ts → module.d.ts} +3 -2
  15. package/dialogs/dismiss-dialog-button.component.d.ts +1 -1
  16. package/dialogs/index.d.ts +1 -1
  17. package/dialogs/module.d.ts +9 -0
  18. package/esm2022/box-form/component.mjs +112 -0
  19. package/esm2022/box-form/index.mjs +3 -3
  20. package/esm2022/box-form/module.mjs +17 -0
  21. package/esm2022/capsule/component.mjs +78 -0
  22. package/esm2022/capsule/index.mjs +3 -3
  23. package/esm2022/capsule/module.mjs +17 -0
  24. package/esm2022/cards/component.mjs +48 -0
  25. package/esm2022/cards/index.mjs +3 -3
  26. package/esm2022/cards/module.mjs +18 -0
  27. package/esm2022/dialogs/dismiss-dialog-button.component.mjs +14 -12
  28. package/esm2022/dialogs/index.mjs +2 -2
  29. package/esm2022/dialogs/module.mjs +19 -0
  30. package/esm2022/fields/autocomplete/component.mjs +259 -0
  31. package/esm2022/fields/autocomplete/index.mjs +2 -0
  32. package/esm2022/fields/common.mjs +11 -0
  33. package/esm2022/fields/date/component.mjs +163 -0
  34. package/esm2022/fields/date/index.mjs +2 -0
  35. package/esm2022/fields/date-range/component.mjs +85 -0
  36. package/esm2022/fields/date-range/index.mjs +2 -0
  37. package/esm2022/fields/error/component.mjs +57 -0
  38. package/esm2022/fields/error/error-equals.pipe.mjs +3 -3
  39. package/esm2022/fields/error/error.msg.pipe.mjs +3 -3
  40. package/esm2022/fields/general/component.mjs +202 -0
  41. package/esm2022/fields/general/index.mjs +2 -0
  42. package/esm2022/fields/index.mjs +14 -14
  43. package/esm2022/fields/module.mjs +82 -0
  44. package/esm2022/fields/money/component.mjs +202 -0
  45. package/esm2022/fields/money/index.mjs +2 -0
  46. package/esm2022/fields/number/component.mjs +179 -0
  47. package/esm2022/fields/number/index.mjs +2 -0
  48. package/esm2022/fields/remote-autocomplete/component.mjs +188 -0
  49. package/esm2022/fields/remote-autocomplete/index.mjs +2 -0
  50. package/esm2022/fields/select/component.mjs +158 -0
  51. package/esm2022/fields/select/index.mjs +2 -0
  52. package/esm2022/fields/text-area/component.mjs +186 -0
  53. package/esm2022/fields/validators.mjs +11 -0
  54. package/esm2022/modal/component.mjs +66 -0
  55. package/esm2022/modal/index.mjs +4 -4
  56. package/esm2022/modal/module.mjs +17 -0
  57. package/esm2022/modal/service.mjs +33 -0
  58. package/esm2022/pretty-box/component.mjs +94 -0
  59. package/esm2022/pretty-box/index.mjs +2 -2
  60. package/esm2022/tables/index.mjs +2 -2
  61. package/esm2022/tables/module.mjs +23 -0
  62. package/esm2022/toast/index.mjs +2 -2
  63. package/esm2022/toast/service.mjs +42 -0
  64. package/fesm2022/kato-lee-components-box-form.mjs +19 -29
  65. package/fesm2022/kato-lee-components-box-form.mjs.map +1 -1
  66. package/fesm2022/kato-lee-components-capsule.mjs +5 -4
  67. package/fesm2022/kato-lee-components-capsule.mjs.map +1 -1
  68. package/fesm2022/kato-lee-components-cards.mjs +7 -5
  69. package/fesm2022/kato-lee-components-cards.mjs.map +1 -1
  70. package/fesm2022/kato-lee-components-dialogs.mjs +16 -18
  71. package/fesm2022/kato-lee-components-dialogs.mjs.map +1 -1
  72. package/fesm2022/kato-lee-components-fields.mjs +135 -106
  73. package/fesm2022/kato-lee-components-fields.mjs.map +1 -1
  74. package/fesm2022/kato-lee-components-modal.mjs +9 -10
  75. package/fesm2022/kato-lee-components-modal.mjs.map +1 -1
  76. package/fesm2022/kato-lee-components-pretty-box.mjs +6 -6
  77. package/fesm2022/kato-lee-components-pretty-box.mjs.map +1 -1
  78. package/fesm2022/kato-lee-components-tables.mjs +1 -0
  79. package/fesm2022/kato-lee-components-tables.mjs.map +1 -1
  80. package/fesm2022/kato-lee-components-toast.mjs.map +1 -1
  81. package/fields/{autocomplete-field/autocomplete-field.component.d.ts → autocomplete/component.d.ts} +2 -2
  82. package/fields/autocomplete/index.d.ts +1 -0
  83. package/fields/{date-field/date-field.component.d.ts → date/component.d.ts} +2 -2
  84. package/fields/date/index.d.ts +1 -0
  85. package/fields/{date-range-field/date-range-field.component.d.ts → date-range/component.d.ts} +2 -2
  86. package/fields/date-range/index.d.ts +1 -0
  87. package/fields/error/{error.component.d.ts → component.d.ts} +1 -1
  88. package/fields/error/error-equals.pipe.d.ts +1 -1
  89. package/fields/error/error.msg.pipe.d.ts +1 -1
  90. package/fields/{general-field/general-field.component.d.ts → general/component.d.ts} +2 -2
  91. package/fields/general/index.d.ts +1 -0
  92. package/fields/index.d.ts +13 -13
  93. package/fields/module.d.ts +19 -0
  94. package/fields/{money-field/money-field.component.d.ts → money/component.d.ts} +1 -1
  95. package/fields/money/index.d.ts +1 -0
  96. package/fields/{number-field/number-field.component.d.ts → number/component.d.ts} +1 -1
  97. package/fields/number/index.d.ts +1 -0
  98. package/fields/remote-autocomplete/index.d.ts +1 -0
  99. package/fields/{select-field/select-field.component.d.ts → select/component.d.ts} +2 -2
  100. package/fields/select/index.d.ts +1 -0
  101. package/fields/text-area/{textarea.component.d.ts → component.d.ts} +1 -1
  102. package/modal/{modal.component.d.ts → component.d.ts} +1 -1
  103. package/modal/index.d.ts +3 -3
  104. package/modal/module.d.ts +8 -0
  105. package/package.json +1 -7
  106. package/pretty-box/component.d.ts +24 -0
  107. package/pretty-box/index.d.ts +1 -1
  108. package/tables/index.d.ts +1 -1
  109. package/tables/{tables.module.d.ts → module.d.ts} +1 -0
  110. package/toast/index.d.ts +1 -1
  111. package/assets/fonts/body/Transpass-Bold.ttf +0 -0
  112. package/assets/fonts/body/Transpass-Light.ttf +0 -0
  113. package/assets/fonts/body/Transpass-Medium.ttf +0 -0
  114. package/assets/fonts/body/Transpass-Regular.ttf +0 -0
  115. package/assets/fonts/body/style-font.scss +0 -40
  116. package/assets/fonts/main.scss +0 -18
  117. package/assets/fonts/title/Poppins-Bold.ttf +0 -0
  118. package/assets/fonts/title/Poppins-Light.ttf +0 -0
  119. package/assets/fonts/title/Poppins-Medium.ttf +0 -0
  120. package/assets/fonts/title/Poppins-Regular.ttf +0 -0
  121. package/assets/fonts/title/Poppins-SemiBold.ttf +0 -0
  122. package/assets/fonts/title/style-font.scss +0 -39
  123. package/assets/layouts/_loader.scss +0 -71
  124. package/assets/layouts/origin.scss +0 -775
  125. package/box-form/box-form.module.d.ts +0 -13
  126. package/dialogs/dialogs.module.d.ts +0 -11
  127. package/esm2022/box-form/box-form.component.mjs +0 -99
  128. package/esm2022/box-form/box-form.module.mjs +0 -40
  129. package/esm2022/capsule/capsule.component.mjs +0 -78
  130. package/esm2022/capsule/capsule.module.mjs +0 -16
  131. package/esm2022/cards/cards.module.mjs +0 -17
  132. package/esm2022/cards/simple-card.component.mjs +0 -47
  133. package/esm2022/dialogs/dialogs.module.mjs +0 -22
  134. package/esm2022/fields/autocomplete-field/autocomplete-field.component.mjs +0 -240
  135. package/esm2022/fields/date-field/date-field.component.mjs +0 -148
  136. package/esm2022/fields/date-range-field/date-range-field.component.mjs +0 -70
  137. package/esm2022/fields/error/error.component.mjs +0 -55
  138. package/esm2022/fields/error/error.module.mjs +0 -21
  139. package/esm2022/fields/fields.common.mjs +0 -11
  140. package/esm2022/fields/fields.module.mjs +0 -128
  141. package/esm2022/fields/fields.validators.mjs +0 -11
  142. package/esm2022/fields/general-field/general-field.component.mjs +0 -188
  143. package/esm2022/fields/money-field/money-field.component.mjs +0 -188
  144. package/esm2022/fields/number-field/number-field.component.mjs +0 -165
  145. package/esm2022/fields/remote-autocomplete-field/remote-autocomplete-field.component.mjs +0 -188
  146. package/esm2022/fields/select-field/select-field.component.mjs +0 -135
  147. package/esm2022/fields/text-area/textarea.component.mjs +0 -171
  148. package/esm2022/layouts/origin/breadcrumb/breadcrumb.component.mjs +0 -65
  149. package/esm2022/layouts/origin/footer/footer.component.mjs +0 -11
  150. package/esm2022/layouts/origin/header/header.component.mjs +0 -46
  151. package/esm2022/layouts/origin/index.mjs +0 -12
  152. package/esm2022/layouts/origin/kato-lee-components-layouts-origin.mjs +0 -5
  153. package/esm2022/layouts/origin/layout.component.mjs +0 -210
  154. package/esm2022/layouts/origin/layout.module.mjs +0 -52
  155. package/esm2022/layouts/origin/layout.navigation.mjs +0 -19
  156. package/esm2022/layouts/origin/navigation-interfaces.mjs +0 -2
  157. package/esm2022/layouts/origin/services/index.mjs +0 -4
  158. package/esm2022/layouts/origin/services/route-parts.service.mjs +0 -28
  159. package/esm2022/layouts/origin/services/toggle-sidebar.mjs +0 -48
  160. package/esm2022/layouts/origin/services/validate-access.pipe.mjs +0 -53
  161. package/esm2022/layouts/origin/sidebar/sidebar.component.mjs +0 -69
  162. package/esm2022/layouts/origin/sidebar/sidenav/expansion/accordion.component.mjs +0 -74
  163. package/esm2022/layouts/origin/sidebar/sidenav/expansion/expansion-panel-header.component.mjs +0 -51
  164. package/esm2022/layouts/origin/sidebar/sidenav/expansion/expansion-panel.component.mjs +0 -63
  165. package/esm2022/layouts/origin/sidebar/sidenav/sidenav.component.mjs +0 -130
  166. package/esm2022/modal/modal.component.mjs +0 -63
  167. package/esm2022/modal/modal.module.mjs +0 -21
  168. package/esm2022/modal/modal.service.mjs +0 -33
  169. package/esm2022/pretty-box/pretty-box.component.mjs +0 -94
  170. package/esm2022/tables/tables.module.mjs +0 -22
  171. package/esm2022/toast/toast.service.mjs +0 -42
  172. package/fesm2022/kato-lee-components-layouts-origin.mjs +0 -872
  173. package/fesm2022/kato-lee-components-layouts-origin.mjs.map +0 -1
  174. package/fields/error/error.module.d.ts +0 -11
  175. package/fields/fields.module.d.ts +0 -29
  176. package/layouts/origin/breadcrumb/breadcrumb.component.d.ts +0 -24
  177. package/layouts/origin/footer/footer.component.d.ts +0 -5
  178. package/layouts/origin/header/header.component.d.ts +0 -15
  179. package/layouts/origin/index.d.ts +0 -8
  180. package/layouts/origin/layout.component.d.ts +0 -58
  181. package/layouts/origin/layout.module.d.ts +0 -18
  182. package/layouts/origin/layout.navigation.d.ts +0 -10
  183. package/layouts/origin/navigation-interfaces.d.ts +0 -24
  184. package/layouts/origin/services/index.d.ts +0 -3
  185. package/layouts/origin/services/route-parts.service.d.ts +0 -15
  186. package/layouts/origin/services/toggle-sidebar.d.ts +0 -10
  187. package/layouts/origin/services/validate-access.pipe.d.ts +0 -7
  188. package/layouts/origin/sidebar/sidebar.component.d.ts +0 -27
  189. package/layouts/origin/sidebar/sidenav/expansion/accordion.component.d.ts +0 -10
  190. package/layouts/origin/sidebar/sidenav/expansion/expansion-panel-header.component.d.ts +0 -11
  191. package/layouts/origin/sidebar/sidenav/expansion/expansion-panel.component.d.ts +0 -12
  192. package/layouts/origin/sidebar/sidenav/sidenav.component.d.ts +0 -23
  193. package/modal/modal.module.d.ts +0 -11
  194. package/pretty-box/pretty-box.component.d.ts +0 -24
  195. /package/fields/{fields.common.d.ts → common.d.ts} +0 -0
  196. /package/fields/{remote-autocomplete-field/remote-autocomplete-field.component.d.ts → remote-autocomplete/component.d.ts} +0 -0
  197. /package/fields/{fields.validators.d.ts → validators.d.ts} +0 -0
  198. /package/modal/{modal.service.d.ts → service.d.ts} +0 -0
  199. /package/toast/{toast.service.d.ts → service.d.ts} +0 -0
@@ -0,0 +1,158 @@
1
+ import { Component, Optional, Input, Self, EventEmitter, Output, } from '@angular/core';
2
+ import { FormsModule, ReactiveFormsModule, } from '@angular/forms';
3
+ import { takeUntil } from 'rxjs/operators';
4
+ import { Subject } from 'rxjs';
5
+ import { TAK_DEFAULT_APPEARANCE_FORM } from '../common';
6
+ import { CommonModule } from '@angular/common';
7
+ import { MatFormFieldModule } from '@kato-lee/material/form-field';
8
+ import { MatTooltipModule } from '@kato-lee/material/tooltip';
9
+ import { TakErrorComponent } from '../error/component';
10
+ import { MatSelectModule } from '@kato-lee/material/select';
11
+ import { MatButtonModule } from '@kato-lee/material/button';
12
+ import { MatOptionModule } from '@kato-lee/material/core';
13
+ import { MatInputModule } from '@kato-lee/material/input';
14
+ import { MatIconModule } from '@kato-lee/material/icon';
15
+ import { MatMenuModule } from '@kato-lee/material/menu';
16
+ import * as i0 from "@angular/core";
17
+ import * as i1 from "@angular/forms";
18
+ import * as i2 from "@kato-lee/material/tooltip";
19
+ import * as i3 from "@kato-lee/material/menu";
20
+ import * as i4 from "@kato-lee/material/form-field";
21
+ import * as i5 from "@kato-lee/material/select";
22
+ import * as i6 from "@kato-lee/material/core";
23
+ import * as i7 from "@kato-lee/material/button";
24
+ import * as i8 from "@kato-lee/material/icon";
25
+ export class TakSelectFieldComponent {
26
+ constructor(_ngControl, _formGroupDirective, _cd) {
27
+ this._ngControl = _ngControl;
28
+ this._formGroupDirective = _formGroupDirective;
29
+ this._cd = _cd;
30
+ this.autocomplete = 'off';
31
+ this.appearance = TAK_DEFAULT_APPEARANCE_FORM;
32
+ this.color = 'primary';
33
+ this.suggestions = [];
34
+ this.disabled = false;
35
+ this.type = 'select';
36
+ this.tooltip = '';
37
+ this.icon = 'filter_list';
38
+ this.option = 'option';
39
+ this.extraInfo = '';
40
+ this.hasDefaultValue = false;
41
+ this.onSelect = new EventEmitter();
42
+ this.onChangeFn = (_) => { };
43
+ this.onTouchFn = (_) => { };
44
+ this.isInvalid = false;
45
+ this.isSubmitted = false;
46
+ this._unsubscribe$ = new Subject();
47
+ if (_ngControl)
48
+ this._ngControl.valueAccessor = this;
49
+ if (_formGroupDirective) {
50
+ _formGroupDirective.ngSubmit.pipe(takeUntil(this._unsubscribe$)).subscribe(() => {
51
+ this.isSubmitted = true;
52
+ _cd.markForCheck();
53
+ });
54
+ }
55
+ }
56
+ ngOnInit() {
57
+ if (this.suggestions.length && this.hasDefaultValue) {
58
+ this._ngControl.control?.setValue(this.suggestions[0]);
59
+ }
60
+ if (this.disabled)
61
+ this.control.disable();
62
+ }
63
+ writeValue(value) { }
64
+ registerOnChange(fn) {
65
+ this.onChangeFn = fn;
66
+ }
67
+ registerOnTouched(fn) {
68
+ this.onTouchFn = fn;
69
+ }
70
+ onChange(event) {
71
+ this.onChangeFn(event.target.value);
72
+ if (this.control.touched)
73
+ this._onValidate();
74
+ }
75
+ emit(el) {
76
+ if (el.isUserInput) {
77
+ this.onSelect.emit(el.source.value);
78
+ this.isInvalid = false;
79
+ }
80
+ }
81
+ justEmit(el) {
82
+ this.control.setValue(el);
83
+ this.onSelect.emit(el);
84
+ this.isInvalid = false;
85
+ }
86
+ onFocusOut() {
87
+ this._onValidate();
88
+ }
89
+ _onValidate() {
90
+ if (this.control.invalid)
91
+ this.isInvalid = true;
92
+ else
93
+ this.isInvalid = false;
94
+ }
95
+ ngOnDestroy() {
96
+ this._unsubscribe$.next();
97
+ this._unsubscribe$.complete();
98
+ }
99
+ get control() {
100
+ return this._ngControl?.control;
101
+ }
102
+ get directive() {
103
+ return this._formGroupDirective;
104
+ }
105
+ get isDisabled() {
106
+ return this._ngControl.disabled;
107
+ }
108
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TakSelectFieldComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i1.FormGroupDirective, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
109
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: TakSelectFieldComponent, isStandalone: true, selector: "tak-select-field", inputs: { autocomplete: "autocomplete", appearance: "appearance", color: "color", suggestions: "suggestions", disabled: "disabled", type: "type", tooltip: "tooltip", icon: "icon", option: "option", extraInfo: "extraInfo", hasDefaultValue: "hasDefaultValue" }, outputs: { onSelect: "onSelect" }, ngImport: i0, template: "@if (type === 'select') {\r\n <div class=\"tak-form-container\">\r\n <mat-form-field [appearance]=\"appearance\" [color]=\"color\">\r\n <mat-label><ng-content /></mat-label>\r\n <mat-select [formControl]=\"control\" (focusout)=\"onFocusOut()\">\r\n @for (suggestion of suggestions; track suggestion) {\r\n <mat-option\r\n [value]=\"suggestion\"\r\n (onSelectionChange)=\"emit($event)\"\r\n title=\"{{ suggestion[option] }} {{\r\n extraInfo ? '(' + suggestion[extraInfo] + ')' : ''\r\n }}\"\r\n >\r\n {{ suggestion[option] }}\r\n @if (extraInfo) {\r\n <span class=\"tak-option-span-extra\">{{ suggestion[extraInfo] }}</span>\r\n }\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n @if (isInvalid || (isSubmitted && control.invalid)) {\r\n <tak-error [control]=\"control\"></tak-error>\r\n }\r\n </div>\r\n} @else {\r\n <div [matTooltip]=\"tooltip\">\r\n @if (type === 'menu') {\r\n <span>\r\n <button mat-icon-button type=\"button\" [matMenuTriggerFor]=\"menu\" [disabled]=\"isDisabled\">\r\n <mat-icon>{{ icon }}</mat-icon>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n @for (item of suggestions; track item) {\r\n <a tak-menu-item (click)=\"justEmit(item)\">\r\n {{ item[option] }}\r\n </a>\r\n }\r\n </mat-menu>\r\n </span>\r\n }\r\n </div>\r\n}\r\n", dependencies: [{ kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i3.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i3.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "component", type: TakErrorComponent, selector: "tak-error", inputs: ["control", "start", "end", "isDateField", "isNumberField", "marginTop"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }] }); }
110
+ }
111
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TakSelectFieldComponent, decorators: [{
112
+ type: Component,
113
+ args: [{ standalone: true, imports: [
114
+ MatTooltipModule,
115
+ MatMenuModule,
116
+ MatSelectModule,
117
+ MatOptionModule,
118
+ TakErrorComponent,
119
+ FormsModule,
120
+ CommonModule,
121
+ ReactiveFormsModule,
122
+ MatFormFieldModule,
123
+ MatButtonModule,
124
+ MatIconModule,
125
+ MatInputModule,
126
+ ], selector: 'tak-select-field', template: "@if (type === 'select') {\r\n <div class=\"tak-form-container\">\r\n <mat-form-field [appearance]=\"appearance\" [color]=\"color\">\r\n <mat-label><ng-content /></mat-label>\r\n <mat-select [formControl]=\"control\" (focusout)=\"onFocusOut()\">\r\n @for (suggestion of suggestions; track suggestion) {\r\n <mat-option\r\n [value]=\"suggestion\"\r\n (onSelectionChange)=\"emit($event)\"\r\n title=\"{{ suggestion[option] }} {{\r\n extraInfo ? '(' + suggestion[extraInfo] + ')' : ''\r\n }}\"\r\n >\r\n {{ suggestion[option] }}\r\n @if (extraInfo) {\r\n <span class=\"tak-option-span-extra\">{{ suggestion[extraInfo] }}</span>\r\n }\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n @if (isInvalid || (isSubmitted && control.invalid)) {\r\n <tak-error [control]=\"control\"></tak-error>\r\n }\r\n </div>\r\n} @else {\r\n <div [matTooltip]=\"tooltip\">\r\n @if (type === 'menu') {\r\n <span>\r\n <button mat-icon-button type=\"button\" [matMenuTriggerFor]=\"menu\" [disabled]=\"isDisabled\">\r\n <mat-icon>{{ icon }}</mat-icon>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n @for (item of suggestions; track item) {\r\n <a tak-menu-item (click)=\"justEmit(item)\">\r\n {{ item[option] }}\r\n </a>\r\n }\r\n </mat-menu>\r\n </span>\r\n }\r\n </div>\r\n}\r\n" }]
127
+ }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
128
+ type: Self
129
+ }, {
130
+ type: Optional
131
+ }] }, { type: i1.FormGroupDirective, decorators: [{
132
+ type: Optional
133
+ }] }, { type: i0.ChangeDetectorRef }], propDecorators: { autocomplete: [{
134
+ type: Input
135
+ }], appearance: [{
136
+ type: Input
137
+ }], color: [{
138
+ type: Input
139
+ }], suggestions: [{
140
+ type: Input
141
+ }], disabled: [{
142
+ type: Input
143
+ }], type: [{
144
+ type: Input
145
+ }], tooltip: [{
146
+ type: Input
147
+ }], icon: [{
148
+ type: Input
149
+ }], option: [{
150
+ type: Input
151
+ }], extraInfo: [{
152
+ type: Input
153
+ }], hasDefaultValue: [{
154
+ type: Input
155
+ }], onSelect: [{
156
+ type: Output
157
+ }] } });
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvbXBvbmVudHMvZmllbGRzL3NlbGVjdC9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29tcG9uZW50cy9maWVsZHMvc2VsZWN0L2NvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxTQUFTLEVBQ1QsUUFBUSxFQUNSLEtBQUssRUFDTCxJQUFJLEVBRUosWUFBWSxFQUNaLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBSUwsV0FBVyxFQUVYLG1CQUFtQixHQUNwQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRy9CLE9BQU8sRUFBNEIsMkJBQTJCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFF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WixtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGNBQWM7cUJBQ2YsWUFDUyxrQkFBa0I7OzBCQTZCekIsSUFBSTs7MEJBQUksUUFBUTs7MEJBQ2hCLFFBQVE7eUVBMUJGLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUksUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgT25EZXN0cm95LFxyXG4gIENvbXBvbmVudCxcclxuICBPcHRpb25hbCxcclxuICBJbnB1dCxcclxuICBTZWxmLFxyXG4gIE9uSW5pdCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgT3V0cHV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxyXG4gIEZvcm1Db250cm9sLFxyXG4gIEZvcm1Hcm91cERpcmVjdGl2ZSxcclxuICBGb3Jtc01vZHVsZSxcclxuICBOZ0NvbnRyb2wsXHJcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRBcHBlYXJhbmNlIH0gZnJvbSAnQGthdG8tbGVlL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBNYXRPcHRpb25TZWxlY3Rpb25DaGFuZ2UsIFRoZW1lUGFsZXR0ZSB9IGZyb20gJ0BrYXRvLWxlZS9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgVGFrQXV0b2NvbXBsZXRlRmllbGRUeXBlLCBUQUtfREVGQVVMVF9BUFBFQVJBTkNFX0ZPUk0gfSBmcm9tICcuLi9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAa2F0by1sZWUvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAa2F0by1sZWUvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7IFRha0Vycm9yQ29tcG9uZW50IH0gZnJvbSAnLi4vZXJyb3IvY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGthdG8tbGVlL21hdGVyaWFsL3NlbGVjdCc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BrYXRvLWxlZS9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRPcHRpb25Nb2R1bGUgfSBmcm9tICdAa2F0by1sZWUvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGthdG8tbGVlL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0BrYXRvLWxlZS9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0BrYXRvLWxlZS9tYXRlcmlhbC9tZW51JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICAgIE1hdE1lbnVNb2R1bGUsXHJcbiAgICBNYXRTZWxlY3RNb2R1bGUsXHJcbiAgICBNYXRPcHRpb25Nb2R1bGUsXHJcbiAgICBUYWtFcnJvckNvbXBvbmVudCxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBNYXRJbnB1dE1vZHVsZSxcclxuICBdLFxyXG4gIHNlbGVjdG9yOiAndGFrLXNlbGVjdC1maWVsZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbXBvbmVudC5odG1sJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRha1NlbGVjdEZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICBASW5wdXQoKSBhdXRvY29tcGxldGU6IFRha0F1dG9jb21wbGV0ZUZpZWxkVHlwZSA9ICdvZmYnO1xyXG4gIEBJbnB1dCgpIGFwcGVhcmFuY2U6IE1hdEZvcm1GaWVsZEFwcGVhcmFuY2UgPSBUQUtfREVGQVVMVF9BUFBFQVJBTkNFX0ZPUk07XHJcbiAgQElucHV0KCkgY29sb3I6IFRoZW1lUGFsZXR0ZSA9ICdwcmltYXJ5JztcclxuICBASW5wdXQoKSBzdWdnZXN0aW9uczogYW55W10gPSBbXTtcclxuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSB0eXBlOiAnbWVudScgfCAnc2VsZWN0JyA9ICdzZWxlY3QnO1xyXG4gIEBJbnB1dCgpIHRvb2x0aXAgPSAnJztcclxuICBASW5wdXQoKSBpY29uID0gJ2ZpbHRlcl9saXN0JztcclxuXHJcbiAgQElucHV0KCkgb3B0aW9uID0gJ29wdGlvbic7XHJcbiAgQElucHV0KCkgZXh0cmFJbmZvID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpIGhhc0RlZmF1bHRWYWx1ZSA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgb25TZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgcHVibGljIG9uQ2hhbmdlRm4gPSAoXzogYW55KSA9PiB7fTtcclxuICBwdWJsaWMgb25Ub3VjaEZuID0gKF86IGFueSkgPT4ge307XHJcblxyXG4gIHB1YmxpYyBpc0ludmFsaWQgPSBmYWxzZTtcclxuICBwdWJsaWMgaXNTdWJtaXR0ZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIF91bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfbmdDb250cm9sOiBOZ0NvbnRyb2wsXHJcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9mb3JtR3JvdXBEaXJlY3RpdmU6IEZvcm1Hcm91cERpcmVjdGl2ZSxcclxuICAgIHByaXZhdGUgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge1xyXG4gICAgaWYgKF9uZ0NvbnRyb2wpIHRoaXMuX25nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcclxuICAgIGlmIChfZm9ybUdyb3VwRGlyZWN0aXZlKSB7XHJcbiAgICAgIF9mb3JtR3JvdXBEaXJlY3RpdmUubmdTdWJtaXQucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmUkKSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmlzU3VibWl0dGVkID0gdHJ1ZTtcclxuICAgICAgICBfY2QubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc3VnZ2VzdGlvbnMubGVuZ3RoICYmIHRoaXMuaGFzRGVmYXVsdFZhbHVlKSB7XHJcbiAgICAgIHRoaXMuX25nQ29udHJvbC5jb250cm9sPy5zZXRWYWx1ZSh0aGlzLnN1Z2dlc3Rpb25zWzBdKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgdGhpcy5jb250cm9sLmRpc2FibGUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHt9XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2VGbiA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaEZuID0gZm47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DaGFuZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZUZuKGV2ZW50LnRhcmdldC52YWx1ZSk7XHJcbiAgICBpZiAodGhpcy5jb250cm9sLnRvdWNoZWQpIHRoaXMuX29uVmFsaWRhdGUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBlbWl0KGVsOiBNYXRPcHRpb25TZWxlY3Rpb25DaGFuZ2UpIHtcclxuICAgIGlmIChlbC5pc1VzZXJJbnB1dCkge1xyXG4gICAgICB0aGlzLm9uU2VsZWN0LmVtaXQoZWwuc291cmNlLnZhbHVlKTtcclxuICAgICAgdGhpcy5pc0ludmFsaWQgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBqdXN0RW1pdChlbDogYW55KSB7XHJcbiAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoZWwpO1xyXG4gICAgdGhpcy5vblNlbGVjdC5lbWl0KGVsKTtcclxuICAgIHRoaXMuaXNJbnZhbGlkID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25Gb2N1c091dCgpIHtcclxuICAgIHRoaXMuX29uVmFsaWRhdGUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX29uVmFsaWRhdGUoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jb250cm9sLmludmFsaWQpIHRoaXMuaXNJbnZhbGlkID0gdHJ1ZTtcclxuICAgIGVsc2UgdGhpcy5pc0ludmFsaWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3Vuc3Vic2NyaWJlJC5uZXh0KCk7XHJcbiAgICB0aGlzLl91bnN1YnNjcmliZSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIGdldCBjb250cm9sKCk6IEZvcm1Db250cm9sIHtcclxuICAgIHJldHVybiB0aGlzLl9uZ0NvbnRyb2w/LmNvbnRyb2wgYXMgRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgZGlyZWN0aXZlKCk6IEZvcm1Hcm91cERpcmVjdGl2ZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZm9ybUdyb3VwRGlyZWN0aXZlIGFzIEZvcm1Hcm91cERpcmVjdGl2ZTtcclxuICB9XHJcblxyXG4gIGdldCBpc0Rpc2FibGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX25nQ29udHJvbC5kaXNhYmxlZDtcclxuICB9XHJcbn1cclxuIiwiQGlmICh0eXBlID09PSAnc2VsZWN0Jykge1xyXG4gIDxkaXYgY2xhc3M9XCJ0YWstZm9ybS1jb250YWluZXJcIj5cclxuICAgIDxtYXQtZm9ybS1maWVsZCBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCIgW2NvbG9yXT1cImNvbG9yXCI+XHJcbiAgICAgIDxtYXQtbGFiZWw+PG5nLWNvbnRlbnQgLz48L21hdC1sYWJlbD5cclxuICAgICAgPG1hdC1zZWxlY3QgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIiAoZm9jdXNvdXQpPVwib25Gb2N1c091dCgpXCI+XHJcbiAgICAgICAgQGZvciAoc3VnZ2VzdGlvbiBvZiBzdWdnZXN0aW9uczsgdHJhY2sgc3VnZ2VzdGlvbikge1xyXG4gICAgICAgICAgPG1hdC1vcHRpb25cclxuICAgICAgICAgICAgW3ZhbHVlXT1cInN1Z2dlc3Rpb25cIlxyXG4gICAgICAgICAgICAob25TZWxlY3Rpb25DaGFuZ2UpPVwiZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgdGl0bGU9XCJ7eyBzdWdnZXN0aW9uW29wdGlvbl0gfX0ge3tcclxuICAgICAgICAgICAgICBleHRyYUluZm8gPyAnKCcgKyBzdWdnZXN0aW9uW2V4dHJhSW5mb10gKyAnKScgOiAnJ1xyXG4gICAgICAgICAgICB9fVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IHN1Z2dlc3Rpb25bb3B0aW9uXSB9fVxyXG4gICAgICAgICAgICBAaWYgKGV4dHJhSW5mbykge1xyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGFrLW9wdGlvbi1zcGFuLWV4dHJhXCI+e3sgc3VnZ2VzdGlvbltleHRyYUluZm9dIH19PC9zcGFuPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgQGlmIChpc0ludmFsaWQgfHwgKGlzU3VibWl0dGVkICYmIGNvbnRyb2wuaW52YWxpZCkpIHtcclxuICAgICAgPHRhay1lcnJvciBbY29udHJvbF09XCJjb250cm9sXCI+PC90YWstZXJyb3I+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbn0gQGVsc2Uge1xyXG4gIDxkaXYgW21hdFRvb2x0aXBdPVwidG9vbHRpcFwiPlxyXG4gICAgQGlmICh0eXBlID09PSAnbWVudScpIHtcclxuICAgICAgPHNwYW4+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gdHlwZT1cImJ1dHRvblwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCIgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbj57eyBpY29uIH19PC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XHJcbiAgICAgICAgICBAZm9yIChpdGVtIG9mIHN1Z2dlc3Rpb25zOyB0cmFjayBpdGVtKSB7XHJcbiAgICAgICAgICAgIDxhIHRhay1tZW51LWl0ZW0gKGNsaWNrKT1cImp1c3RFbWl0KGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAge3sgaXRlbVtvcHRpb25dIH19XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L21hdC1tZW51PlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbn1cclxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29tcG9uZW50cy9maWVsZHMvc2VsZWN0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnQnO1xyXG4iXX0=
@@ -0,0 +1,186 @@
1
+ import { Component, Optional, Input, Self, Output, EventEmitter, } from '@angular/core';
2
+ import { FormsModule, ReactiveFormsModule, } from '@angular/forms';
3
+ import { TAK_DEFAULT_APPEARANCE_FORM } from '../common';
4
+ import { CommonModule } from '@angular/common';
5
+ import { MatFormFieldModule } from '@kato-lee/material/form-field';
6
+ import { TakErrorComponent } from '../error/component';
7
+ import { MatButtonModule } from '@kato-lee/material/button';
8
+ import { MatInputModule } from '@kato-lee/material/input';
9
+ import { MatIconModule } from '@kato-lee/material/icon';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@angular/forms";
12
+ import * as i2 from "@kato-lee/material/form-field";
13
+ import * as i3 from "@kato-lee/material/button";
14
+ import * as i4 from "@kato-lee/material/icon";
15
+ import * as i5 from "@kato-lee/material/input";
16
+ export class TakTextareaComponent {
17
+ constructor(_ngControl, _formGroupDirective, _cd) {
18
+ this._ngControl = _ngControl;
19
+ this._formGroupDirective = _formGroupDirective;
20
+ this._cd = _cd;
21
+ this.autocomplete = 'off';
22
+ this.appearance = TAK_DEFAULT_APPEARANCE_FORM;
23
+ this.floatLabel = 'auto';
24
+ this.color = 'primary';
25
+ this.actionIcon = 'search';
26
+ this.defaultFilterStyle = true;
27
+ this.hasActionButton = false;
28
+ this.hasClearButton = false;
29
+ this.countCaracters = false;
30
+ this.isTextArea = false;
31
+ this.placeholder = '';
32
+ this.heightInPx = 60;
33
+ this.disabled = false;
34
+ this.onExecuteAction = new EventEmitter();
35
+ this.onKeyUp = new EventEmitter();
36
+ this.onChangeFn = (_) => { };
37
+ this.onTouchFn = (_) => { };
38
+ this._isSubmitted = false;
39
+ this._isInvalid = false;
40
+ this._required = false;
41
+ this._value = '';
42
+ this._decrypted = false;
43
+ if (_ngControl)
44
+ this._ngControl.valueAccessor = this;
45
+ if (_formGroupDirective) {
46
+ this._subscription = _formGroupDirective.ngSubmit.subscribe(() => {
47
+ this._isSubmitted = true;
48
+ _cd.markForCheck();
49
+ });
50
+ }
51
+ }
52
+ ngOnInit() {
53
+ const form = this.control;
54
+ if (form?._rawValidators) {
55
+ form._rawValidators.forEach((r) => {
56
+ if (r.name.includes('required'))
57
+ this._required = true;
58
+ });
59
+ }
60
+ if (this.disabled)
61
+ this.control.disable();
62
+ }
63
+ writeValue(value) {
64
+ if (value === null) {
65
+ this._isInvalid = false;
66
+ }
67
+ this._value = value;
68
+ this._isSubmitted = false;
69
+ this._cd.markForCheck();
70
+ }
71
+ registerOnChange(fn) {
72
+ this.onChangeFn = fn;
73
+ }
74
+ registerOnTouched(fn) {
75
+ this.onTouchFn = fn;
76
+ }
77
+ onChange(event) {
78
+ this._value = event.target.value;
79
+ this.onChangeFn(event.target.value);
80
+ if (this.control.touched)
81
+ this._onValidate();
82
+ }
83
+ onFocusOut() {
84
+ this.onTouchFn(true);
85
+ this._onValidate();
86
+ }
87
+ _onValidate() {
88
+ if (this.control.invalid)
89
+ this._isInvalid = true;
90
+ else
91
+ this._isInvalid = false;
92
+ }
93
+ onClearControl() {
94
+ if (['', null, undefined].indexOf(this.control.value) >= 0) {
95
+ this.control.setValue('', { emitEvent: false });
96
+ }
97
+ else {
98
+ this.control.setValue('');
99
+ }
100
+ this._value = '';
101
+ }
102
+ ngOnDestroy() {
103
+ if (this._subscription)
104
+ this._subscription.unsubscribe();
105
+ }
106
+ get control() {
107
+ return this._ngControl.control;
108
+ }
109
+ get directive() {
110
+ return this._formGroupDirective;
111
+ }
112
+ get decrypted() {
113
+ return this._decrypted;
114
+ }
115
+ get isDisabled() {
116
+ return this._ngControl.disabled;
117
+ }
118
+ get isSubmitted() {
119
+ return this._isSubmitted;
120
+ }
121
+ get isInvalid() {
122
+ return this._isInvalid;
123
+ }
124
+ get required() {
125
+ return this._required;
126
+ }
127
+ get value() {
128
+ return this._value;
129
+ }
130
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TakTextareaComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i1.FormGroupDirective, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
131
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: TakTextareaComponent, isStandalone: true, selector: "tak-textarea", inputs: { autocomplete: "autocomplete", appearance: "appearance", floatLabel: "floatLabel", color: "color", actionIcon: "actionIcon", defaultFilterStyle: "defaultFilterStyle", hasActionButton: "hasActionButton", hasClearButton: "hasClearButton", countCaracters: "countCaracters", isTextArea: "isTextArea", placeholder: "placeholder", heightInPx: "heightInPx", minLength: "minLength", maxLength: "maxLength", disabled: "disabled" }, outputs: { onExecuteAction: "onExecuteAction", onKeyUp: "onKeyUp" }, ngImport: i0, template: "<div class=\"tak-form-container\">\r\n <mat-form-field\r\n [floatLabel]=\"floatLabel\"\r\n [class.mat-form-field-invalid]=\"isInvalid || (isSubmitted && control.invalid)\"\r\n [appearance]=\"appearance\"\r\n [color]=\"color\"\r\n >\r\n <mat-label>\r\n <ng-content />{{ ' ' }}\r\n @if (required) {\r\n <span class=\"tak-field__danger-x\">*</span>\r\n }\r\n </mat-label>\r\n <textarea\r\n matInput\r\n [autocomplete]=\"autocomplete\"\r\n [value]=\"value\"\r\n [style.height.px]=\"heightInPx\"\r\n [placeholder]=\"placeholder\"\r\n (keyup)=\"onChange($event)\"\r\n (change)=\"onChange($event)\"\r\n [disabled]=\"isDisabled\"\r\n [attr.minLength]=\"minLength\"\r\n [attr.maxLength]=\"maxLength\"\r\n (focusout)=\"onFocusOut()\"\r\n ></textarea>\r\n @if (control.value && hasClearButton && !isDisabled) {\r\n <button mat-icon-button type=\"button\" matSuffix (click)=\"onClearControl()\">\r\n <mat-icon class=\"tak-suffix-icon-button\">close</mat-icon>\r\n </button>\r\n }\r\n @if (control.value && hasActionButton) {\r\n <button mat-icon-button type=\"button\" matSuffix (click)=\"onExecuteAction.emit(control.value)\">\r\n <mat-icon class=\"tak-suffix-icon-button\">{{ actionIcon }}</mat-icon>\r\n </button>\r\n }\r\n @if (countCaracters) {\r\n <mat-hint align=\"end\" class=\"tak-hint\">\r\n {{ control.value?.length || 0 }}/{{ maxLength }}\r\n </mat-hint>\r\n }\r\n </mat-form-field>\r\n <div [style.maxWidth]=\"countCaracters ? '80%' : '100%'\">\r\n @if (isInvalid || (isSubmitted && control.invalid)) {\r\n <tak-error [control]=\"control\"></tak-error>\r\n }\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "component", type: TakErrorComponent, selector: "tak-error", inputs: ["control", "start", "end", "isDateField", "isNumberField", "marginTop"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }] }); }
132
+ }
133
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TakTextareaComponent, decorators: [{
134
+ type: Component,
135
+ args: [{ standalone: true, imports: [
136
+ TakErrorComponent,
137
+ FormsModule,
138
+ CommonModule,
139
+ ReactiveFormsModule,
140
+ MatFormFieldModule,
141
+ MatButtonModule,
142
+ MatIconModule,
143
+ MatInputModule,
144
+ ], selector: 'tak-textarea', template: "<div class=\"tak-form-container\">\r\n <mat-form-field\r\n [floatLabel]=\"floatLabel\"\r\n [class.mat-form-field-invalid]=\"isInvalid || (isSubmitted && control.invalid)\"\r\n [appearance]=\"appearance\"\r\n [color]=\"color\"\r\n >\r\n <mat-label>\r\n <ng-content />{{ ' ' }}\r\n @if (required) {\r\n <span class=\"tak-field__danger-x\">*</span>\r\n }\r\n </mat-label>\r\n <textarea\r\n matInput\r\n [autocomplete]=\"autocomplete\"\r\n [value]=\"value\"\r\n [style.height.px]=\"heightInPx\"\r\n [placeholder]=\"placeholder\"\r\n (keyup)=\"onChange($event)\"\r\n (change)=\"onChange($event)\"\r\n [disabled]=\"isDisabled\"\r\n [attr.minLength]=\"minLength\"\r\n [attr.maxLength]=\"maxLength\"\r\n (focusout)=\"onFocusOut()\"\r\n ></textarea>\r\n @if (control.value && hasClearButton && !isDisabled) {\r\n <button mat-icon-button type=\"button\" matSuffix (click)=\"onClearControl()\">\r\n <mat-icon class=\"tak-suffix-icon-button\">close</mat-icon>\r\n </button>\r\n }\r\n @if (control.value && hasActionButton) {\r\n <button mat-icon-button type=\"button\" matSuffix (click)=\"onExecuteAction.emit(control.value)\">\r\n <mat-icon class=\"tak-suffix-icon-button\">{{ actionIcon }}</mat-icon>\r\n </button>\r\n }\r\n @if (countCaracters) {\r\n <mat-hint align=\"end\" class=\"tak-hint\">\r\n {{ control.value?.length || 0 }}/{{ maxLength }}\r\n </mat-hint>\r\n }\r\n </mat-form-field>\r\n <div [style.maxWidth]=\"countCaracters ? '80%' : '100%'\">\r\n @if (isInvalid || (isSubmitted && control.invalid)) {\r\n <tak-error [control]=\"control\"></tak-error>\r\n }\r\n </div>\r\n</div>\r\n" }]
145
+ }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
146
+ type: Self
147
+ }, {
148
+ type: Optional
149
+ }] }, { type: i1.FormGroupDirective, decorators: [{
150
+ type: Optional
151
+ }] }, { type: i0.ChangeDetectorRef }], propDecorators: { autocomplete: [{
152
+ type: Input
153
+ }], appearance: [{
154
+ type: Input
155
+ }], floatLabel: [{
156
+ type: Input
157
+ }], color: [{
158
+ type: Input
159
+ }], actionIcon: [{
160
+ type: Input
161
+ }], defaultFilterStyle: [{
162
+ type: Input
163
+ }], hasActionButton: [{
164
+ type: Input
165
+ }], hasClearButton: [{
166
+ type: Input
167
+ }], countCaracters: [{
168
+ type: Input
169
+ }], isTextArea: [{
170
+ type: Input
171
+ }], placeholder: [{
172
+ type: Input
173
+ }], heightInPx: [{
174
+ type: Input
175
+ }], minLength: [{
176
+ type: Input
177
+ }], maxLength: [{
178
+ type: Input
179
+ }], disabled: [{
180
+ type: Input
181
+ }], onExecuteAction: [{
182
+ type: Output
183
+ }], onKeyUp: [{
184
+ type: Output
185
+ }] } });
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvbXBvbmVudHMvZmllbGRzL3RleHQtYXJlYS9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29tcG9uZW50cy9maWVsZHMvdGV4dC1hcmVhL2NvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsUUFBUSxFQUVSLEtBQUssRUFDTCxJQUFJLEVBQ0osTUFBTSxFQUNOLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBS0wsV0FBVyxFQUNYLG1CQUFtQixHQUNwQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUd4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7QUFpQnhELE1BQU0sT0FBTyxvQkFBb0I7SUFtQy9CLFlBQzhCLFVBQXFCLEVBQzdCLG1CQUF1QyxFQUNuRCxHQUFzQjtRQUZGLGVBQVUsR0FBVixVQUFVLENBQVc7UUFDN0Isd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFvQjtRQUNuRCxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQXJDdkIsaUJBQVksR0FBaUIsS0FBSyxDQUFDO1FBRW5DLGVBQVUsR0FBMkIsMkJBQTJCLENBQUM7UUFDakUsZUFB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RGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIE9uRGVzdHJveSxcclxuICBPcHRpb25hbCxcclxuICBPbkluaXQsXHJcbiAgSW5wdXQsXHJcbiAgU2VsZixcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxyXG4gIEZvcm1Hcm91cERpcmVjdGl2ZSxcclxuICBGb3JtQ29udHJvbCxcclxuICBOZ0NvbnRyb2wsXHJcbiAgRm9ybXNNb2R1bGUsXHJcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUQUtfREVGQVVMVF9BUFBFQVJBTkNFX0ZPUk0gfSBmcm9tICcuLi9jb21tb24nO1xyXG5pbXBvcnQgeyBGbG9hdExhYmVsVHlwZSwgTWF0Rm9ybUZpZWxkQXBwZWFyYW5jZSB9IGZyb20gJ0BrYXRvLWxlZS9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgVGhlbWVQYWxldHRlIH0gZnJvbSAnQGthdG8tbGVlL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAa2F0by1sZWUvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IFRha0Vycm9yQ29tcG9uZW50IH0gZnJvbSAnLi4vZXJyb3IvY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGthdG8tbGVlL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGthdG8tbGVlL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0BrYXRvLWxlZS9tYXRlcmlhbC9pY29uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgVGFrRXJyb3JDb21wb25lbnQsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgTWF0SW5wdXRNb2R1bGUsXHJcbiAgXSxcclxuICBzZWxlY3RvcjogJ3Rhay10ZXh0YXJlYScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbXBvbmVudC5odG1sJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRha1RleHRhcmVhQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICBASW5wdXQoKSBhdXRvY29tcGxldGU6ICdvZmYnIHwgJ29uJyA9ICdvZmYnO1xyXG5cclxuICBASW5wdXQoKSBhcHBlYXJhbmNlOiBNYXRGb3JtRmllbGRBcHBlYXJhbmNlID0gVEFLX0RFRkFVTFRfQVBQRUFSQU5DRV9GT1JNO1xyXG4gIEBJbnB1dCgpIGZsb2F0TGFiZWw6IEZsb2F0TGFiZWxUeXBlID0gJ2F1dG8nO1xyXG4gIEBJbnB1dCgpIGNvbG9yOiBUaGVtZVBhbGV0dGUgPSAncHJpbWFyeSc7XHJcbiAgQElucHV0KCkgYWN0aW9uSWNvbiA9ICdzZWFyY2gnO1xyXG5cclxuICBASW5wdXQoKSBkZWZhdWx0RmlsdGVyU3R5bGUgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGhhc0FjdGlvbkJ1dHRvbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGhhc0NsZWFyQnV0dG9uID0gZmFsc2U7XHJcbiAgQElucHV0KCkgY291bnRDYXJhY3RlcnMgPSBmYWxzZTtcclxuICBASW5wdXQoKSBpc1RleHRBcmVhID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcclxuICBASW5wdXQoKSBoZWlnaHRJblB4ID0gNjA7XHJcblxyXG4gIEBJbnB1dCgpIG1pbkxlbmd0aCE6IG51bWJlcjtcclxuICBASW5wdXQoKSBtYXhMZW5ndGghOiBudW1iZXI7XHJcblxyXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKSBvbkV4ZWN1dGVBY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uS2V5VXAgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHB1YmxpYyBvbkNoYW5nZUZuID0gKF86IGFueSkgPT4ge307XHJcbiAgcHVibGljIG9uVG91Y2hGbiA9IChfOiBhbnkpID0+IHt9O1xyXG5cclxuICBwdWJsaWMgX2lzU3VibWl0dGVkID0gZmFsc2U7XHJcbiAgcHVibGljIF9pc0ludmFsaWQgPSBmYWxzZTtcclxuICBwdWJsaWMgX3JlcXVpcmVkID0gZmFsc2U7XHJcbiAgcHVibGljIF92YWx1ZSA9ICcnO1xyXG5cclxuICBwcml2YXRlIF9zdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBfZGVjcnlwdGVkID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBwcml2YXRlIF9uZ0NvbnRyb2w6IE5nQ29udHJvbCxcclxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2Zvcm1Hcm91cERpcmVjdGl2ZTogRm9ybUdyb3VwRGlyZWN0aXZlLFxyXG4gICAgcHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7XHJcbiAgICBpZiAoX25nQ29udHJvbCkgdGhpcy5fbmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xyXG5cclxuICAgIGlmIChfZm9ybUdyb3VwRGlyZWN0aXZlKSB7XHJcbiAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbiA9IF9mb3JtR3JvdXBEaXJlY3RpdmUubmdTdWJtaXQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLl9pc1N1Ym1pdHRlZCA9IHRydWU7XHJcbiAgICAgICAgX2NkLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGZvcm06IGFueSA9IHRoaXMuY29udHJvbDtcclxuXHJcbiAgICBpZiAoZm9ybT8uX3Jhd1ZhbGlkYXRvcnMpIHtcclxuICAgICAgZm9ybS5fcmF3VmFsaWRhdG9ycy5mb3JFYWNoKChyOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoci5uYW1lLmluY2x1ZGVzKCdyZXF1aXJlZCcpKSB0aGlzLl9yZXF1aXJlZCA9IHRydWU7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmRpc2FibGVkKSB0aGlzLmNvbnRyb2wuZGlzYWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKHZhbHVlID09PSBudWxsKSB7XHJcbiAgICAgIHRoaXMuX2lzSW52YWxpZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuX2lzU3VibWl0dGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2VGbiA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaEZuID0gZm47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DaGFuZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5fdmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XHJcbiAgICB0aGlzLm9uQ2hhbmdlRm4oZXZlbnQudGFyZ2V0LnZhbHVlKTtcclxuICAgIGlmICh0aGlzLmNvbnRyb2wudG91Y2hlZCkgdGhpcy5fb25WYWxpZGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uRm9jdXNPdXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hGbih0cnVlKTtcclxuICAgIHRoaXMuX29uVmFsaWRhdGUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX29uVmFsaWRhdGUoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jb250cm9sLmludmFsaWQpIHRoaXMuX2lzSW52YWxpZCA9IHRydWU7XHJcbiAgICBlbHNlIHRoaXMuX2lzSW52YWxpZCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQ2xlYXJDb250cm9sKCk6IHZvaWQge1xyXG4gICAgaWYgKFsnJywgbnVsbCwgdW5kZWZpbmVkXS5pbmRleE9mKHRoaXMuY29udHJvbC52YWx1ZSkgPj0gMCkge1xyXG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoJycsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSgnJyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fdmFsdWUgPSAnJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9zdWJzY3JpcHRpb24pIHRoaXMuX3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNvbnRyb2woKTogRm9ybUNvbnRyb2wge1xyXG4gICAgcmV0dXJuIHRoaXMuX25nQ29udHJvbC5jb250cm9sIGFzIEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGRpcmVjdGl2ZSgpOiBGb3JtR3JvdXBEaXJlY3RpdmUge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1Hcm91cERpcmVjdGl2ZSBhcyBGb3JtR3JvdXBEaXJlY3RpdmU7XHJcbiAgfVxyXG5cclxuICBnZXQgZGVjcnlwdGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RlY3J5cHRlZDtcclxuICB9XHJcblxyXG4gIGdldCBpc0Rpc2FibGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX25nQ29udHJvbC5kaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIGdldCBpc1N1Ym1pdHRlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9pc1N1Ym1pdHRlZDtcclxuICB9XHJcblxyXG4gIGdldCBpc0ludmFsaWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5faXNJbnZhbGlkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJlcXVpcmVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHZhbHVlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwidGFrLWZvcm0tY29udGFpbmVyXCI+XHJcbiAgPG1hdC1mb3JtLWZpZWxkXHJcbiAgICBbZmxvYXRMYWJlbF09XCJmbG9hdExhYmVsXCJcclxuICAgIFtjbGFzcy5tYXQtZm9ybS1maWVsZC1pbnZhbGlkXT1cImlzSW52YWxpZCB8fCAoaXNTdWJtaXR0ZWQgJiYgY29udHJvbC5pbnZhbGlkKVwiXHJcbiAgICBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCJcclxuICAgIFtjb2xvcl09XCJjb2xvclwiXHJcbiAgPlxyXG4gICAgPG1hdC1sYWJlbD5cclxuICAgICAgPG5nLWNvbnRlbnQgLz57eyAnICcgfX1cclxuICAgICAgQGlmIChyZXF1aXJlZCkge1xyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwidGFrLWZpZWxkX19kYW5nZXIteFwiPio8L3NwYW4+XHJcbiAgICAgIH1cclxuICAgIDwvbWF0LWxhYmVsPlxyXG4gICAgPHRleHRhcmVhXHJcbiAgICAgIG1hdElucHV0XHJcbiAgICAgIFthdXRvY29tcGxldGVdPVwiYXV0b2NvbXBsZXRlXCJcclxuICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcclxuICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJoZWlnaHRJblB4XCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgKGtleXVwKT1cIm9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAoY2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXHJcbiAgICAgIFthdHRyLm1pbkxlbmd0aF09XCJtaW5MZW5ndGhcIlxyXG4gICAgICBbYXR0ci5tYXhMZW5ndGhdPVwibWF4TGVuZ3RoXCJcclxuICAgICAgKGZvY3Vzb3V0KT1cIm9uRm9jdXNPdXQoKVwiXHJcbiAgICA+PC90ZXh0YXJlYT5cclxuICAgIEBpZiAoY29udHJvbC52YWx1ZSAmJiBoYXNDbGVhckJ1dHRvbiAmJiAhaXNEaXNhYmxlZCkge1xyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0U3VmZml4IChjbGljayk9XCJvbkNsZWFyQ29udHJvbCgpXCI+XHJcbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwidGFrLXN1ZmZpeC1pY29uLWJ1dHRvblwiPmNsb3NlPC9tYXQtaWNvbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICB9XHJcbiAgICBAaWYgKGNvbnRyb2wudmFsdWUgJiYgaGFzQWN0aW9uQnV0dG9uKSB7XHJcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXRTdWZmaXggKGNsaWNrKT1cIm9uRXhlY3V0ZUFjdGlvbi5lbWl0KGNvbnRyb2wudmFsdWUpXCI+XHJcbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwidGFrLXN1ZmZpeC1pY29uLWJ1dHRvblwiPnt7IGFjdGlvbkljb24gfX08L21hdC1pY29uPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIH1cclxuICAgIEBpZiAoY291bnRDYXJhY3RlcnMpIHtcclxuICAgICAgPG1hdC1oaW50IGFsaWduPVwiZW5kXCIgY2xhc3M9XCJ0YWstaGludFwiPlxyXG4gICAgICAgIHt7IGNvbnRyb2wudmFsdWU/Lmxlbmd0aCB8fCAwIH19L3t7IG1heExlbmd0aCB9fVxyXG4gICAgICA8L21hdC1oaW50PlxyXG4gICAgfVxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPGRpdiBbc3R5bGUubWF4V2lkdGhdPVwiY291bnRDYXJhY3RlcnMgPyAnODAlJyA6ICcxMDAlJ1wiPlxyXG4gICAgQGlmIChpc0ludmFsaWQgfHwgKGlzU3VibWl0dGVkICYmIGNvbnRyb2wuaW52YWxpZCkpIHtcclxuICAgICAgPHRhay1lcnJvciBbY29udHJvbF09XCJjb250cm9sXCI+PC90YWstZXJyb3I+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -0,0 +1,11 @@
1
+ import { Validators } from '@angular/forms';
2
+ import { TAK_PTRN_EMAIL, TAK_PTRN_NONSP, TAK_PTRN_NUMRC } from './common';
3
+ export const required = Validators.required;
4
+ export const max = (max) => Validators.max(max);
5
+ export const min = (min) => Validators.min(min);
6
+ export const maxLength = (maxLength) => Validators.maxLength(maxLength);
7
+ export const minLength = (minLength) => Validators.minLength(minLength);
8
+ export const withOutSpaces = Validators.pattern(TAK_PTRN_NONSP);
9
+ export const onlyNumber = Validators.pattern(TAK_PTRN_NUMRC);
10
+ export const email = Validators.pattern(TAK_PTRN_EMAIL);
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb21wb25lbnRzL2ZpZWxkcy92YWxpZGF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFMUUsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUM7QUFFNUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3hELE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUV4RCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxTQUFpQixFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ2hGLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLFNBQWlCLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFaEYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDaEUsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDN0QsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUQUtfUFRSTl9FTUFJTCwgVEFLX1BUUk5fTk9OU1AsIFRBS19QVFJOX05VTVJDIH0gZnJvbSAnLi9jb21tb24nO1xyXG5cclxuZXhwb3J0IGNvbnN0IHJlcXVpcmVkID0gVmFsaWRhdG9ycy5yZXF1aXJlZDtcclxuXHJcbmV4cG9ydCBjb25zdCBtYXggPSAobWF4OiBudW1iZXIpID0+IFZhbGlkYXRvcnMubWF4KG1heCk7XHJcbmV4cG9ydCBjb25zdCBtaW4gPSAobWluOiBudW1iZXIpID0+IFZhbGlkYXRvcnMubWluKG1pbik7XHJcblxyXG5leHBvcnQgY29uc3QgbWF4TGVuZ3RoID0gKG1heExlbmd0aDogbnVtYmVyKSA9PiBWYWxpZGF0b3JzLm1heExlbmd0aChtYXhMZW5ndGgpO1xyXG5leHBvcnQgY29uc3QgbWluTGVuZ3RoID0gKG1pbkxlbmd0aDogbnVtYmVyKSA9PiBWYWxpZGF0b3JzLm1pbkxlbmd0aChtaW5MZW5ndGgpO1xyXG5cclxuZXhwb3J0IGNvbnN0IHdpdGhPdXRTcGFjZXMgPSBWYWxpZGF0b3JzLnBhdHRlcm4oVEFLX1BUUk5fTk9OU1ApO1xyXG5leHBvcnQgY29uc3Qgb25seU51bWJlciA9IFZhbGlkYXRvcnMucGF0dGVybihUQUtfUFRSTl9OVU1SQyk7XHJcbmV4cG9ydCBjb25zdCBlbWFpbCA9IFZhbGlkYXRvcnMucGF0dGVybihUQUtfUFRSTl9FTUFJTCk7XHJcbiJdfQ==
@@ -0,0 +1,66 @@
1
+ import { Component, Inject, ViewEncapsulation } from '@angular/core';
2
+ import { MAT_DIALOG_DATA, MatDialogModule } from '@kato-lee/material/dialog';
3
+ import { MatButtonModule } from '@kato-lee/material/button';
4
+ import { MatIconModule } from '@kato-lee/material/icon';
5
+ import { MatDividerModule } from '@kato-lee/material/divider';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@kato-lee/material/dialog";
8
+ import * as i2 from "@kato-lee/material/button";
9
+ import * as i3 from "@kato-lee/material/divider";
10
+ import * as i4 from "@kato-lee/material/icon";
11
+ export class TakModalComponent {
12
+ constructor(href, _dialogRef, data) {
13
+ this._dialogRef = _dialogRef;
14
+ this.data = data;
15
+ this._isAlert = false;
16
+ this._confirmButton = '';
17
+ this._deniedButton = '';
18
+ this._okButton = '';
19
+ this._hasTopCloseButton = true;
20
+ href.nativeElement.classList.add('tak-modal');
21
+ }
22
+ ngOnInit() {
23
+ if (this.data.type === 'alert')
24
+ this._isAlert = true;
25
+ else
26
+ this._isAlert = false;
27
+ this._confirmButton = this.data.options?.confirmButton || 'SI';
28
+ this._deniedButton = this.data.options?.deniedButton || 'NO';
29
+ this._okButton = this.data.options?.okButton || 'OK';
30
+ this._hasTopCloseButton = this.data.options?.hasTopCloseButton || true;
31
+ }
32
+ onConfirm() {
33
+ this._dialogRef.close(true);
34
+ }
35
+ onClose() {
36
+ this._dialogRef.close(false);
37
+ }
38
+ onCloseFromButton() {
39
+ this._dialogRef.close(undefined);
40
+ }
41
+ get isAlert() {
42
+ return this._isAlert;
43
+ }
44
+ get confirmButton() {
45
+ return this._confirmButton;
46
+ }
47
+ get deniedButton() {
48
+ return this._deniedButton;
49
+ }
50
+ get okButton() {
51
+ return this._okButton;
52
+ }
53
+ get hasTopCloseButton() {
54
+ return this._hasTopCloseButton;
55
+ }
56
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TakModalComponent, deps: [{ token: i0.ElementRef }, { token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
57
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: TakModalComponent, isStandalone: true, selector: "tak-modal", ngImport: i0, template: "@if (hasTopCloseButton) {\r\n <div mat-dialog-title>\r\n @if (data.title !== '') {\r\n <span class=\"tak-modal__title\">{{ data.title }}</span>\r\n }\r\n <div>\r\n <button mat-icon-button (click)=\"onCloseFromButton()\"><mat-icon>close</mat-icon></button>\r\n </div>\r\n </div>\r\n}\r\n@if (hasTopCloseButton) {\r\n <mat-divider />\r\n}\r\n<div mat-dialog-content>\r\n <div class=\"tak-modal__content\">\r\n <p>{{ data.content }}</p>\r\n </div>\r\n</div>\r\n<mat-divider />\r\n<mat-dialog-actions align=\"end\">\r\n @if (!isAlert) {\r\n <button mat-button color=\"accent\" (click)=\"onConfirm()\">\r\n {{ confirmButton }}\r\n </button>\r\n }\r\n @if (!isAlert) {\r\n <button mat-button color=\"warn\" (click)=\"onClose()\" cdkFocusInitial>\r\n {{ deniedButton }}\r\n </button>\r\n }\r\n @if (isAlert) {\r\n <button mat-button color=\"accent\" (click)=\"onClose()\" style=\"float: right\" cdkFocusInitial>\r\n {{ okButton }}\r\n </button>\r\n }\r\n</mat-dialog-actions>\r\n", styles: [".tak-modal .mat-dialog-title,.tak-modal .mat-dialog__content{padding:0}.tak-modal [mat-button]{font-weight:bolder}.tak-modal [mat-dialog-title]{display:flex;align-items:center;justify-content:space-between}.tak-modal__title{padding:10px;font-size:20px;font-weight:bolder}.tak-modal__content{padding:0 24px;font-size:14px;color:var(--mdc-dialog-subhead-color)}.tak-modal__buttons{display:flex}.tak-modal__buttons button{font-weight:bolder;text-transform:uppercase}.tak-modal__buttons.tak-modal-one{justify-content:end}.tak-modal__buttons.tak-modal-two{justify-content:space-between}.tak-modal .tak-dialog-content{padding:0}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i3.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], encapsulation: i0.ViewEncapsulation.None }); }
58
+ }
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TakModalComponent, decorators: [{
60
+ type: Component,
61
+ args: [{ standalone: true, imports: [MatButtonModule, MatDialogModule, MatDividerModule, MatIconModule], selector: 'tak-modal', encapsulation: ViewEncapsulation.None, template: "@if (hasTopCloseButton) {\r\n <div mat-dialog-title>\r\n @if (data.title !== '') {\r\n <span class=\"tak-modal__title\">{{ data.title }}</span>\r\n }\r\n <div>\r\n <button mat-icon-button (click)=\"onCloseFromButton()\"><mat-icon>close</mat-icon></button>\r\n </div>\r\n </div>\r\n}\r\n@if (hasTopCloseButton) {\r\n <mat-divider />\r\n}\r\n<div mat-dialog-content>\r\n <div class=\"tak-modal__content\">\r\n <p>{{ data.content }}</p>\r\n </div>\r\n</div>\r\n<mat-divider />\r\n<mat-dialog-actions align=\"end\">\r\n @if (!isAlert) {\r\n <button mat-button color=\"accent\" (click)=\"onConfirm()\">\r\n {{ confirmButton }}\r\n </button>\r\n }\r\n @if (!isAlert) {\r\n <button mat-button color=\"warn\" (click)=\"onClose()\" cdkFocusInitial>\r\n {{ deniedButton }}\r\n </button>\r\n }\r\n @if (isAlert) {\r\n <button mat-button color=\"accent\" (click)=\"onClose()\" style=\"float: right\" cdkFocusInitial>\r\n {{ okButton }}\r\n </button>\r\n }\r\n</mat-dialog-actions>\r\n", styles: [".tak-modal .mat-dialog-title,.tak-modal .mat-dialog__content{padding:0}.tak-modal [mat-button]{font-weight:bolder}.tak-modal [mat-dialog-title]{display:flex;align-items:center;justify-content:space-between}.tak-modal__title{padding:10px;font-size:20px;font-weight:bolder}.tak-modal__content{padding:0 24px;font-size:14px;color:var(--mdc-dialog-subhead-color)}.tak-modal__buttons{display:flex}.tak-modal__buttons button{font-weight:bolder;text-transform:uppercase}.tak-modal__buttons.tak-modal-one{justify-content:end}.tak-modal__buttons.tak-modal-two{justify-content:space-between}.tak-modal .tak-dialog-content{padding:0}\n"] }]
62
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.MatDialogRef }, { type: undefined, decorators: [{
63
+ type: Inject,
64
+ args: [MAT_DIALOG_DATA]
65
+ }] }] });
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvbXBvbmVudHMvbW9kYWwvY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvbXBvbmVudHMvbW9kYWwvY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLEVBQVUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFnQixlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFM0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7O0FBVTlELE1BQU0sT0FBTyxpQkFBaUI7SUFRNUIsWUFDRSxJQUE2QixFQUNyQixVQUEyQyxFQUU1QyxJQUFzRjtRQUZyRixlQUFVLEdBQVYsVUFBVSxDQUFpQztRQUU1QyxTQUFJLEdBQUosSUFBSSxDQUFrRjtRQVh2RixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWpCLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDZix1QkFBa0IsR0FBRyxJQUFJLENBQUM7UUFRaEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxPQUFPO1lBQUUsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7O1lBQ2hELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBRTNCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsYUFBYSxJQUFJLElBQUksQ0FBQztRQUMvRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFlBQVksSUFBSSxJQUFJLENBQUM7UUFDN0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLElBQUksSUFBSSxDQUFDO1FBQ3JELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxpQkFBaUIsSUFBSSxJQUFJLENBQUM7SUFDekUsQ0FBQztJQUVNLFNBQVM7UUFDZCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRU0sT0FBTztRQUNaLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFTSxpQkFBaUI7UUFDdEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDakMsQ0FBQzs4R0F6RFUsaUJBQWlCLHdFQVdsQixlQUFlO2tHQVhkLGlCQUFpQixxRUNmOUIsbWhDQW9DQSx5cUJEM0JZLGVBQWUsMFZBQUUsZUFBZSx5YkFBRSxnQkFBZ0Isa0lBQUUsYUFBYTs7MkZBTWhFLGlCQUFpQjtrQkFSN0IsU0FBUztpQ0FDSSxJQUFJLFdBQ1AsQ0FBQyxlQUFlLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLGFBQWEsQ0FBQyxZQUNsRSxXQUFXLGlCQUdOLGlCQUFpQixDQUFDLElBQUk7OzBCQWFsQyxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGthdG8tbGVlL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFRha01vZGFsQ29uZmlnLCBUYWtNb2RhbFR5cGUgfSBmcm9tICcuL2NvbmZpZyc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BrYXRvLWxlZS9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGthdG8tbGVlL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXREaXZpZGVyTW9kdWxlIH0gZnJvbSAnQGthdG8tbGVlL21hdGVyaWFsL2RpdmlkZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbTWF0QnV0dG9uTW9kdWxlLCBNYXREaWFsb2dNb2R1bGUsIE1hdERpdmlkZXJNb2R1bGUsIE1hdEljb25Nb2R1bGVdLFxyXG4gIHNlbGVjdG9yOiAndGFrLW1vZGFsJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRha01vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBwcml2YXRlIF9pc0FsZXJ0ID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgX2NvbmZpcm1CdXR0b24gPSAnJztcclxuICBwcml2YXRlIF9kZW5pZWRCdXR0b24gPSAnJztcclxuICBwcml2YXRlIF9va0J1dHRvbiA9ICcnO1xyXG4gIHByaXZhdGUgX2hhc1RvcENsb3NlQnV0dG9uID0gdHJ1ZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBocmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcclxuICAgIHByaXZhdGUgX2RpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFRha01vZGFsQ29tcG9uZW50PixcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKVxyXG4gICAgcHVibGljIGRhdGE6IHsgY29udGVudDogc3RyaW5nOyB0aXRsZTogc3RyaW5nOyBvcHRpb25zPzogVGFrTW9kYWxDb25maWc7IHR5cGU6IFRha01vZGFsVHlwZSB9XHJcbiAgKSB7XHJcbiAgICBocmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgndGFrLW1vZGFsJyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5kYXRhLnR5cGUgPT09ICdhbGVydCcpIHRoaXMuX2lzQWxlcnQgPSB0cnVlO1xyXG4gICAgZWxzZSB0aGlzLl9pc0FsZXJ0ID0gZmFsc2U7XHJcblxyXG4gICAgdGhpcy5fY29uZmlybUJ1dHRvbiA9IHRoaXMuZGF0YS5vcHRpb25zPy5jb25maXJtQnV0dG9uIHx8ICdTSSc7XHJcbiAgICB0aGlzLl9kZW5pZWRCdXR0b24gPSB0aGlzLmRhdGEub3B0aW9ucz8uZGVuaWVkQnV0dG9uIHx8ICdOTyc7XHJcbiAgICB0aGlzLl9va0J1dHRvbiA9IHRoaXMuZGF0YS5vcHRpb25zPy5va0J1dHRvbiB8fCAnT0snO1xyXG4gICAgdGhpcy5faGFzVG9wQ2xvc2VCdXR0b24gPSB0aGlzLmRhdGEub3B0aW9ucz8uaGFzVG9wQ2xvc2VCdXR0b24gfHwgdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNvbmZpcm0oKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kaWFsb2dSZWYuY2xvc2UodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DbG9zZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2RpYWxvZ1JlZi5jbG9zZShmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DbG9zZUZyb21CdXR0b24oKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kaWFsb2dSZWYuY2xvc2UodW5kZWZpbmVkKTtcclxuICB9XHJcblxyXG4gIGdldCBpc0FsZXJ0KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lzQWxlcnQ7XHJcbiAgfVxyXG5cclxuICBnZXQgY29uZmlybUJ1dHRvbigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpcm1CdXR0b247XHJcbiAgfVxyXG5cclxuICBnZXQgZGVuaWVkQnV0dG9uKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGVuaWVkQnV0dG9uO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG9rQnV0dG9uKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fb2tCdXR0b247XHJcbiAgfVxyXG5cclxuICBnZXQgaGFzVG9wQ2xvc2VCdXR0b24oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5faGFzVG9wQ2xvc2VCdXR0b247XHJcbiAgfVxyXG59XHJcbiIsIkBpZiAoaGFzVG9wQ2xvc2VCdXR0b24pIHtcclxuICA8ZGl2IG1hdC1kaWFsb2ctdGl0bGU+XHJcbiAgICBAaWYgKGRhdGEudGl0bGUgIT09ICcnKSB7XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwidGFrLW1vZGFsX190aXRsZVwiPnt7IGRhdGEudGl0bGUgfX08L3NwYW4+XHJcbiAgICB9XHJcbiAgICA8ZGl2PlxyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwib25DbG9zZUZyb21CdXR0b24oKVwiPjxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxufVxyXG5AaWYgKGhhc1RvcENsb3NlQnV0dG9uKSB7XHJcbiAgPG1hdC1kaXZpZGVyIC8+XHJcbn1cclxuPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbiAgPGRpdiBjbGFzcz1cInRhay1tb2RhbF9fY29udGVudFwiPlxyXG4gICAgPHA+e3sgZGF0YS5jb250ZW50IH19PC9wPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuPG1hdC1kaXZpZGVyIC8+XHJcbjxtYXQtZGlhbG9nLWFjdGlvbnMgYWxpZ249XCJlbmRcIj5cclxuICBAaWYgKCFpc0FsZXJ0KSB7XHJcbiAgICA8YnV0dG9uIG1hdC1idXR0b24gY29sb3I9XCJhY2NlbnRcIiAoY2xpY2spPVwib25Db25maXJtKClcIj5cclxuICAgICAge3sgY29uZmlybUJ1dHRvbiB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgfVxyXG4gIEBpZiAoIWlzQWxlcnQpIHtcclxuICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cIndhcm5cIiAoY2xpY2spPVwib25DbG9zZSgpXCIgY2RrRm9jdXNJbml0aWFsPlxyXG4gICAgICB7eyBkZW5pZWRCdXR0b24gfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gIH1cclxuICBAaWYgKGlzQWxlcnQpIHtcclxuICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cImFjY2VudFwiIChjbGljayk9XCJvbkNsb3NlKClcIiBzdHlsZT1cImZsb2F0OiByaWdodFwiIGNka0ZvY3VzSW5pdGlhbD5cclxuICAgICAge3sgb2tCdXR0b24gfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gIH1cclxuPC9tYXQtZGlhbG9nLWFjdGlvbnM+XHJcbiJdfQ==
@@ -2,7 +2,7 @@
2
2
  * Public API Surface of @kato-lee/components/modal
3
3
  */
4
4
  export * from './config';
5
- export * from './modal.component';
6
- export * from './modal.module';
7
- export * from './modal.service';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJyYXJpZXMvY29tcG9uZW50cy9tb2RhbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIEBrYXRvLWxlZS9jb21wb25lbnRzL21vZGFsXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9jb25maWcnO1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGFsLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kYWwubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RhbC5zZXJ2aWNlJztcclxuIl19
5
+ export * from './component';
6
+ export * from './module';
7
+ export * from './service';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJyYXJpZXMvY29tcG9uZW50cy9tb2RhbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIEBrYXRvLWxlZS9jb21wb25lbnRzL21vZGFsXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9jb25maWcnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlJztcclxuIl19
@@ -0,0 +1,17 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { TakModalComponent } from './component';
3
+ import * as i0 from "@angular/core";
4
+ /** @deprecated Use standalone */
5
+ export class TakModalModule {
6
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TakModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: TakModalModule, imports: [TakModalComponent], exports: [TakModalComponent] }); }
8
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TakModalModule, imports: [TakModalComponent] }); }
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TakModalModule, decorators: [{
11
+ type: NgModule,
12
+ args: [{
13
+ imports: [TakModalComponent],
14
+ exports: [TakModalComponent],
15
+ }]
16
+ }] });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvbXBvbmVudHMvbW9kYWwvbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDOztBQUVoRCxpQ0FBaUM7QUFLakMsTUFBTSxPQUFPLGNBQWM7OEdBQWQsY0FBYzsrR0FBZCxjQUFjLFlBSGYsaUJBQWlCLGFBQ2pCLGlCQUFpQjsrR0FFaEIsY0FBYyxZQUhmLGlCQUFpQjs7MkZBR2hCLGNBQWM7a0JBSjFCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQUM7b0JBQzVCLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixDQUFDO2lCQUM3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRha01vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnQnO1xyXG5cclxuLyoqIEBkZXByZWNhdGVkIFVzZSBzdGFuZGFsb25lICovXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1Rha01vZGFsQ29tcG9uZW50XSxcclxuICBleHBvcnRzOiBbVGFrTW9kYWxDb21wb25lbnRdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFrTW9kYWxNb2R1bGUge31cclxuIl19
@@ -0,0 +1,33 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { TakModalComponent } from './component';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@kato-lee/material/dialog";
5
+ export class TakModal {
6
+ constructor(dialog) {
7
+ this.dialog = dialog;
8
+ }
9
+ alert(content, title = '', options) {
10
+ return this._generateDialog(content, title, 'alert', options);
11
+ }
12
+ confirm(content, title = '', options) {
13
+ return this._generateDialog(content, title, 'confirm', options);
14
+ }
15
+ _generateDialog(content, title, type, options) {
16
+ const dialog = this.dialog.open(TakModalComponent, {
17
+ data: {
18
+ content,
19
+ title,
20
+ options,
21
+ type,
22
+ },
23
+ });
24
+ return dialog.afterClosed();
25
+ }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TakModal, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable }); }
27
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TakModal, providedIn: 'root' }); }
28
+ }
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TakModal, decorators: [{
30
+ type: Injectable,
31
+ args: [{ providedIn: 'root' }]
32
+ }], ctorParameters: () => [{ type: i1.MatDialog }] });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb21wb25lbnRzL21vZGFsL3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7OztBQUtoRCxNQUFNLE9BQU8sUUFBUTtJQUNuQixZQUFvQixNQUFpQjtRQUFqQixXQUFNLEdBQU4sTUFBTSxDQUFXO0lBQUcsQ0FBQztJQUVsQyxLQUFLLENBQUMsT0FBZSxFQUFFLFFBQWdCLEVBQUUsRUFBRSxPQUF3QjtRQUN4RSxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVNLE9BQU8sQ0FDWixPQUFlLEVBQ2YsUUFBZ0IsRUFBRSxFQUNsQixPQUF3QjtRQUV4QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVPLGVBQWUsQ0FDckIsT0FBZSxFQUNmLEtBQWEsRUFDYixJQUFrQixFQUNsQixPQUF3QjtRQUV4QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUNqRCxJQUFJLEVBQUU7Z0JBQ0osT0FBTztnQkFDUCxLQUFLO2dCQUNMLE9BQU87Z0JBQ1AsSUFBSTthQUNMO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDOUIsQ0FBQzs4R0E5QlUsUUFBUTtrSEFBUixRQUFRLGNBREssTUFBTTs7MkZBQ25CLFFBQVE7a0JBRHBCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAa2F0by1sZWUvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgVGFrTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRha01vZGFsQ29uZmlnLCBUYWtNb2RhbFR5cGUgfSBmcm9tICcuL2NvbmZpZyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBUYWtNb2RhbCB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZykge31cclxuXHJcbiAgcHVibGljIGFsZXJ0KGNvbnRlbnQ6IHN0cmluZywgdGl0bGU6IHN0cmluZyA9ICcnLCBvcHRpb25zPzogVGFrTW9kYWxDb25maWcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiB0aGlzLl9nZW5lcmF0ZURpYWxvZyhjb250ZW50LCB0aXRsZSwgJ2FsZXJ0Jywgb3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY29uZmlybShcclxuICAgIGNvbnRlbnQ6IHN0cmluZyxcclxuICAgIHRpdGxlOiBzdHJpbmcgPSAnJyxcclxuICAgIG9wdGlvbnM/OiBUYWtNb2RhbENvbmZpZ1xyXG4gICk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2dlbmVyYXRlRGlhbG9nKGNvbnRlbnQsIHRpdGxlLCAnY29uZmlybScsIG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZ2VuZXJhdGVEaWFsb2coXHJcbiAgICBjb250ZW50OiBzdHJpbmcsXHJcbiAgICB0aXRsZTogc3RyaW5nLFxyXG4gICAgdHlwZTogVGFrTW9kYWxUeXBlLFxyXG4gICAgb3B0aW9ucz86IFRha01vZGFsQ29uZmlnXHJcbiAgKSB7XHJcbiAgICBjb25zdCBkaWFsb2cgPSB0aGlzLmRpYWxvZy5vcGVuKFRha01vZGFsQ29tcG9uZW50LCB7XHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBjb250ZW50LFxyXG4gICAgICAgIHRpdGxlLFxyXG4gICAgICAgIG9wdGlvbnMsXHJcbiAgICAgICAgdHlwZSxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGRpYWxvZy5hZnRlckNsb3NlZCgpO1xyXG4gIH1cclxufVxyXG4iXX0=