coer-elements 0.0.23 → 0.0.25

Sign up to get free protection for your applications and to get access to all the features.
Files changed (181) hide show
  1. package/components/index.d.ts +5 -0
  2. package/components/lib/coer-button/coer-button.component.d.ts +44 -0
  3. package/components/lib/coer-checkbox/coer-checkbox.component.d.ts +28 -0
  4. package/components/lib/coer-filebox/coer-filebox.component.d.ts +33 -0
  5. package/components/lib/coer-form/coer-form.component.d.ts +33 -0
  6. package/components/lib/coer-grid/coer-grid.component.d.ts +53 -0
  7. package/components/lib/coer-grid/coer-grid.extension.d.ts +103 -0
  8. package/components/lib/coer-grid/coer-grid.templates.d.ts +9 -0
  9. package/components/lib/coer-modal/coer-modal.component.d.ts +38 -0
  10. package/components/lib/coer-numberbox/coer-numberbox.component.d.ts +55 -0
  11. package/components/lib/coer-page-title/coer-page-title.component.d.ts +12 -0
  12. package/components/lib/coer-selectbox/coer-selectbox.component.d.ts +75 -0
  13. package/components/lib/coer-switch/coer-switch.component.d.ts +31 -0
  14. package/components/lib/coer-tab/coer-tab.component.d.ts +35 -0
  15. package/components/lib/coer-textarea/coer-textarea.component.d.ts +51 -0
  16. package/components/lib/coer-textbox/coer-textbox.component.d.ts +57 -0
  17. package/components/lib/components.module.d.ts +30 -0
  18. package/components/public-api.d.ts +15 -0
  19. package/directives/index.d.ts +5 -0
  20. package/directives/lib/coer-ref.directive.d.ts +14 -0
  21. package/directives/lib/directives.module.d.ts +8 -0
  22. package/directives/lib/life-cycle.directive.d.ts +16 -0
  23. package/directives/public-api.d.ts +3 -0
  24. package/esm2022/components/coer-elements-components.mjs +5 -0
  25. package/esm2022/components/lib/coer-button/coer-button.component.mjs +133 -0
  26. package/esm2022/components/lib/coer-checkbox/coer-checkbox.component.mjs +83 -0
  27. package/esm2022/components/lib/coer-filebox/coer-filebox.component.mjs +102 -0
  28. package/esm2022/components/lib/coer-form/coer-form.component.mjs +101 -0
  29. package/esm2022/components/lib/coer-grid/coer-grid.component.mjs +512 -0
  30. package/esm2022/components/lib/coer-grid/coer-grid.extension.mjs +408 -0
  31. package/esm2022/components/lib/coer-grid/coer-grid.templates.mjs +30 -0
  32. package/esm2022/components/lib/coer-modal/coer-modal.component.mjs +107 -0
  33. package/esm2022/components/lib/coer-numberbox/coer-numberbox.component.mjs +258 -0
  34. package/esm2022/components/lib/coer-page-title/coer-page-title.component.mjs +44 -0
  35. package/esm2022/components/lib/coer-selectbox/coer-selectbox.component.mjs +338 -0
  36. package/esm2022/components/lib/coer-switch/coer-switch.component.mjs +93 -0
  37. package/esm2022/components/lib/coer-tab/coer-tab.component.mjs +116 -0
  38. package/esm2022/components/lib/coer-textarea/coer-textarea.component.mjs +156 -0
  39. package/esm2022/components/lib/coer-textbox/coer-textbox.component.mjs +195 -0
  40. package/esm2022/components/lib/components.module.mjs +129 -0
  41. package/esm2022/components/public-api.mjs +16 -0
  42. package/esm2022/directives/coer-elements-directives.mjs +5 -0
  43. package/esm2022/directives/lib/coer-ref.directive.mjs +23 -0
  44. package/esm2022/directives/lib/directives.module.mjs +25 -0
  45. package/esm2022/directives/lib/life-cycle.directive.mjs +33 -0
  46. package/esm2022/directives/public-api.mjs +4 -0
  47. package/esm2022/interfaces/coer-elements-interfaces.mjs +5 -0
  48. package/esm2022/interfaces/lib/app-source.interface.mjs +2 -0
  49. package/esm2022/interfaces/lib/coer-filebox/file-image.interface.mjs +2 -0
  50. package/esm2022/interfaces/lib/coer-filebox/file.interface.mjs +2 -0
  51. package/esm2022/interfaces/lib/coer-grid/grid-button-by-row.interface.mjs +2 -0
  52. package/esm2022/interfaces/lib/coer-grid/grid-checkbox.interface.mjs +2 -0
  53. package/esm2022/interfaces/lib/coer-grid/grid-coer-numberbox.interface.mjs +2 -0
  54. package/esm2022/interfaces/lib/coer-grid/grid-coer-selectbox.interface.mjs +2 -0
  55. package/esm2022/interfaces/lib/coer-grid/grid-coer-switch.interface.mjs +2 -0
  56. package/esm2022/interfaces/lib/coer-grid/grid-coer-textbox.interface.mjs +2 -0
  57. package/esm2022/interfaces/lib/coer-grid/grid-column.interface.mjs +2 -0
  58. package/esm2022/interfaces/lib/coer-grid/grid-data-source.interface.mjs +2 -0
  59. package/esm2022/interfaces/lib/coer-grid/grid-header-button.interface.mjs +2 -0
  60. package/esm2022/interfaces/lib/coer-grid/grid-header-export-button.interface.mjs +2 -0
  61. package/esm2022/interfaces/lib/coer-grid/grid-header.interface.mjs +2 -0
  62. package/esm2022/interfaces/lib/coer-grid/grid-import.interface.mjs +2 -0
  63. package/esm2022/interfaces/lib/coer-grid/grid-input-checkbox.interface.mjs +2 -0
  64. package/esm2022/interfaces/lib/coer-grid/grid-input-switch-change.interface.mjs +2 -0
  65. package/esm2022/interfaces/lib/coer-grid/grid-input-textbox.interface.mjs +2 -0
  66. package/esm2022/interfaces/lib/coer-grid/grid-item.interface.mjs +2 -0
  67. package/esm2022/interfaces/lib/coer-grid/grid-keyup-enter.interface.mjs +2 -0
  68. package/esm2022/interfaces/lib/coer-grid/grid-length.interface.mjs +2 -0
  69. package/esm2022/interfaces/lib/coer-grid/grid-search.interface.mjs +2 -0
  70. package/esm2022/interfaces/lib/coer-grid/grid-sort.interface.mjs +2 -0
  71. package/esm2022/interfaces/lib/coer-menu/menu-option-selected.interface.mjs +2 -0
  72. package/esm2022/interfaces/lib/coer-menu/menu-selected.interface.mjs +2 -0
  73. package/esm2022/interfaces/lib/coer-menu/menu.interface.mjs +2 -0
  74. package/esm2022/interfaces/lib/coer-ref.interface.mjs +2 -0
  75. package/esm2022/interfaces/lib/page-title/breadcrumb.interface.mjs +2 -0
  76. package/esm2022/interfaces/lib/page-title/go-back.interface.mjs +2 -0
  77. package/esm2022/interfaces/lib/screen-size.interface.mjs +2 -0
  78. package/esm2022/interfaces/lib/service/http-request.interface.mjs +2 -0
  79. package/esm2022/interfaces/lib/service/http-response.interface.mjs +2 -0
  80. package/esm2022/interfaces/lib/service/patch.interface.mjs +2 -0
  81. package/esm2022/interfaces/public-api.mjs +39 -0
  82. package/esm2022/pipes/coer-elements-pipes.mjs +5 -0
  83. package/esm2022/pipes/lib/html.pipe.mjs +18 -0
  84. package/esm2022/pipes/lib/no-image.pipe.mjs +23 -0
  85. package/esm2022/pipes/lib/numeric-format.pipe.mjs +15 -0
  86. package/esm2022/pipes/lib/pipes.module.mjs +31 -0
  87. package/esm2022/pipes/public-api.mjs +5 -0
  88. package/esm2022/signals/coer-elements-signals.mjs +5 -0
  89. package/esm2022/signals/lib/breakpoint.signal.mjs +4 -0
  90. package/esm2022/signals/lib/is-loading.signal.mjs +3 -0
  91. package/esm2022/signals/lib/is-menu-open.signal.mjs +3 -0
  92. package/esm2022/signals/lib/is-modal-open.signal.mjs +3 -0
  93. package/esm2022/signals/lib/menu.signal.mjs +3 -0
  94. package/esm2022/signals/public-api.mjs +6 -0
  95. package/esm2022/tools/coer-elements-tools.mjs +5 -0
  96. package/esm2022/tools/lib/breadcrumbs.class.mjs +63 -0
  97. package/esm2022/tools/lib/coer-alert/coer-alert.component.mjs +228 -0
  98. package/esm2022/tools/lib/control-value.class.mjs +46 -0
  99. package/esm2022/tools/lib/date-time.class.mjs +29 -0
  100. package/esm2022/tools/lib/files.class.mjs +91 -0
  101. package/esm2022/tools/lib/menu.class.mjs +23 -0
  102. package/esm2022/tools/lib/page.class.mjs +156 -0
  103. package/esm2022/tools/lib/screen.class.mjs +51 -0
  104. package/esm2022/tools/lib/service.class.mjs +247 -0
  105. package/esm2022/tools/lib/source.class.mjs +80 -0
  106. package/esm2022/tools/lib/tools.mjs +220 -0
  107. package/esm2022/tools/public-api.mjs +12 -0
  108. package/fesm2022/coer-elements-components.mjs +2718 -0
  109. package/fesm2022/coer-elements-components.mjs.map +1 -0
  110. package/fesm2022/coer-elements-directives.mjs +82 -0
  111. package/fesm2022/coer-elements-directives.mjs.map +1 -0
  112. package/fesm2022/coer-elements-interfaces.mjs +6 -0
  113. package/fesm2022/coer-elements-interfaces.mjs.map +1 -0
  114. package/fesm2022/coer-elements-pipes.mjs +83 -0
  115. package/fesm2022/coer-elements-pipes.mjs.map +1 -0
  116. package/fesm2022/coer-elements-signals.mjs +19 -0
  117. package/fesm2022/coer-elements-signals.mjs.map +1 -0
  118. package/fesm2022/coer-elements-tools.mjs +1223 -0
  119. package/fesm2022/coer-elements-tools.mjs.map +1 -0
  120. package/interfaces/index.d.ts +5 -0
  121. package/interfaces/lib/app-source.interface.d.ts +4 -0
  122. package/interfaces/lib/coer-filebox/file-image.interface.d.ts +14 -0
  123. package/interfaces/lib/coer-filebox/file.interface.d.ts +5 -0
  124. package/interfaces/lib/coer-grid/grid-button-by-row.interface.d.ts +6 -0
  125. package/interfaces/lib/coer-grid/grid-checkbox.interface.d.ts +5 -0
  126. package/interfaces/lib/coer-grid/grid-coer-numberbox.interface.d.ts +12 -0
  127. package/interfaces/lib/coer-grid/grid-coer-selectbox.interface.d.ts +9 -0
  128. package/interfaces/lib/coer-grid/grid-coer-switch.interface.d.ts +6 -0
  129. package/interfaces/lib/coer-grid/grid-coer-textbox.interface.d.ts +11 -0
  130. package/interfaces/lib/coer-grid/grid-column.interface.d.ts +22 -0
  131. package/interfaces/lib/coer-grid/grid-data-source.interface.d.ts +6 -0
  132. package/interfaces/lib/coer-grid/grid-header-button.interface.d.ts +8 -0
  133. package/interfaces/lib/coer-grid/grid-header-export-button.interface.d.ts +10 -0
  134. package/interfaces/lib/coer-grid/grid-header.interface.d.ts +5 -0
  135. package/interfaces/lib/coer-grid/grid-import.interface.d.ts +4 -0
  136. package/interfaces/lib/coer-grid/grid-input-checkbox.interface.d.ts +5 -0
  137. package/interfaces/lib/coer-grid/grid-input-switch-change.interface.d.ts +5 -0
  138. package/interfaces/lib/coer-grid/grid-input-textbox.interface.d.ts +5 -0
  139. package/interfaces/lib/coer-grid/grid-item.interface.d.ts +5 -0
  140. package/interfaces/lib/coer-grid/grid-keyup-enter.interface.d.ts +6 -0
  141. package/interfaces/lib/coer-grid/grid-length.interface.d.ts +5 -0
  142. package/interfaces/lib/coer-grid/grid-search.interface.d.ts +4 -0
  143. package/interfaces/lib/coer-grid/grid-sort.interface.d.ts +5 -0
  144. package/interfaces/lib/coer-menu/menu-option-selected.interface.d.ts +9 -0
  145. package/interfaces/lib/coer-menu/menu-selected.interface.d.ts +10 -0
  146. package/interfaces/lib/coer-menu/menu.interface.d.ts +6 -0
  147. package/interfaces/lib/coer-ref.interface.d.ts +10 -0
  148. package/interfaces/lib/page-title/breadcrumb.interface.d.ts +6 -0
  149. package/interfaces/lib/page-title/go-back.interface.d.ts +6 -0
  150. package/interfaces/lib/screen-size.interface.d.ts +5 -0
  151. package/interfaces/lib/service/http-request.interface.d.ts +10 -0
  152. package/interfaces/lib/service/http-response.interface.d.ts +6 -0
  153. package/interfaces/lib/service/patch.interface.d.ts +5 -0
  154. package/interfaces/public-api.d.ts +33 -0
  155. package/package.json +37 -1
  156. package/pipes/index.d.ts +5 -0
  157. package/pipes/lib/html.pipe.d.ts +10 -0
  158. package/pipes/lib/no-image.pipe.d.ts +7 -0
  159. package/pipes/lib/numeric-format.pipe.d.ts +7 -0
  160. package/pipes/lib/pipes.module.d.ts +9 -0
  161. package/pipes/public-api.d.ts +4 -0
  162. package/signals/index.d.ts +5 -0
  163. package/signals/lib/breakpoint.signal.d.ts +1 -0
  164. package/signals/lib/is-loading.signal.d.ts +1 -0
  165. package/signals/lib/is-menu-open.signal.d.ts +1 -0
  166. package/signals/lib/is-modal-open.signal.d.ts +1 -0
  167. package/signals/lib/menu.signal.d.ts +2 -0
  168. package/signals/public-api.d.ts +5 -0
  169. package/tools/index.d.ts +5 -0
  170. package/tools/lib/breadcrumbs.class.d.ts +18 -0
  171. package/tools/lib/coer-alert/coer-alert.component.d.ts +23 -0
  172. package/tools/lib/control-value.class.d.ts +25 -0
  173. package/tools/lib/date-time.class.d.ts +13 -0
  174. package/tools/lib/files.class.d.ts +16 -0
  175. package/tools/lib/menu.class.d.ts +8 -0
  176. package/tools/lib/page.class.d.ts +60 -0
  177. package/tools/lib/screen.class.d.ts +13 -0
  178. package/tools/lib/service.class.d.ts +39 -0
  179. package/tools/lib/source.class.d.ts +20 -0
  180. package/tools/lib/tools.d.ts +34 -0
  181. package/tools/public-api.d.ts +11 -0
@@ -0,0 +1,51 @@
1
+ import { ElementRef, OnInit } from '@angular/core';
2
+ import { ControlValue } from 'coer-elements/tools';
3
+ import * as i0 from "@angular/core";
4
+ export declare class CoerTextarea extends ControlValue implements OnInit {
5
+ protected _value: string | number;
6
+ protected matFormField: import("@angular/core").Signal<ElementRef<any>>;
7
+ protected coerTextBox: import("@angular/core").Signal<ElementRef<any>>;
8
+ protected _id: string;
9
+ protected _isLoadingEvent: import("@angular/core").WritableSignal<boolean>;
10
+ private element;
11
+ set value(value: string | number | null | undefined);
12
+ id: string;
13
+ label: import("@angular/core").InputSignal<string>;
14
+ placeholder: import("@angular/core").InputSignal<string>;
15
+ minLength: import("@angular/core").InputSignal<string | number>;
16
+ maxLength: import("@angular/core").InputSignal<string | number>;
17
+ width: import("@angular/core").InputSignal<string>;
18
+ minWidth: import("@angular/core").InputSignal<string>;
19
+ maxWidth: import("@angular/core").InputSignal<string>;
20
+ marginTop: import("@angular/core").InputSignal<string>;
21
+ marginRight: import("@angular/core").InputSignal<string>;
22
+ marginBottom: import("@angular/core").InputSignal<string>;
23
+ marginLeft: import("@angular/core").InputSignal<string>;
24
+ isInvalid: import("@angular/core").InputSignal<boolean>;
25
+ isValid: import("@angular/core").InputSignal<boolean>;
26
+ isDisabled: import("@angular/core").InputSignal<boolean>;
27
+ isReadonly: import("@angular/core").InputSignal<boolean>;
28
+ isLoading: import("@angular/core").InputSignal<boolean>;
29
+ showFooter: import("@angular/core").InputSignal<boolean>;
30
+ resize: import("@angular/core").InputSignal<boolean>;
31
+ textPosition: import("@angular/core").InputSignal<"left" | "right" | "center">;
32
+ onInput: import("@angular/core").OutputEmitterRef<string | number>;
33
+ ngOnInit(): void;
34
+ get value(): string | number | null | undefined;
35
+ get footer(): string;
36
+ protected _isEnable: import("@angular/core").Signal<boolean>;
37
+ protected floatLabel: import("@angular/core").Signal<"auto" | "always">;
38
+ protected paddingRight: import("@angular/core").Signal<"0px" | "18px">;
39
+ /** */
40
+ private SetEvents;
41
+ /** */
42
+ Focus(timeout?: number): void;
43
+ /** */
44
+ Select(timeout?: number): void;
45
+ /** */
46
+ Blur(): void;
47
+ /** */
48
+ Clear(): void;
49
+ static ɵfac: i0.ɵɵFactoryDeclaration<CoerTextarea, never>;
50
+ static ɵcmp: i0.ɵɵComponentDeclaration<CoerTextarea, "coer-textarea", never, { "value": { "alias": "value"; "required": false; }; "id": { "alias": "id"; "required": false; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "minLength": { "alias": "minLength"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "minWidth": { "alias": "minWidth"; "required": false; "isSignal": true; }; "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "marginTop": { "alias": "marginTop"; "required": false; "isSignal": true; }; "marginRight": { "alias": "marginRight"; "required": false; "isSignal": true; }; "marginBottom": { "alias": "marginBottom"; "required": false; "isSignal": true; }; "marginLeft": { "alias": "marginLeft"; "required": false; "isSignal": true; }; "isInvalid": { "alias": "isInvalid"; "required": false; "isSignal": true; }; "isValid": { "alias": "isValid"; "required": false; "isSignal": true; }; "isDisabled": { "alias": "isDisabled"; "required": false; "isSignal": true; }; "isReadonly": { "alias": "isReadonly"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "showFooter": { "alias": "showFooter"; "required": false; "isSignal": true; }; "resize": { "alias": "resize"; "required": false; "isSignal": true; }; "textPosition": { "alias": "textPosition"; "required": false; "isSignal": true; }; }, { "onInput": "onInput"; }, never, never, false, never>;
51
+ }
@@ -0,0 +1,57 @@
1
+ import { ElementRef, OnInit } from '@angular/core';
2
+ import { ControlValue } from 'coer-elements/tools';
3
+ import * as i0 from "@angular/core";
4
+ export declare class CoerTextBox extends ControlValue implements OnInit {
5
+ protected _value: string | number;
6
+ protected matFormField: import("@angular/core").Signal<ElementRef<any>>;
7
+ protected coerTextBox: import("@angular/core").Signal<ElementRef<any>>;
8
+ protected _id: string;
9
+ protected _isLoadingEvent: import("@angular/core").WritableSignal<boolean>;
10
+ private element;
11
+ set value(value: string | number | null | undefined);
12
+ id: string;
13
+ label: import("@angular/core").InputSignal<string>;
14
+ placeholder: import("@angular/core").InputSignal<string>;
15
+ minLength: import("@angular/core").InputSignal<string | number>;
16
+ maxLength: import("@angular/core").InputSignal<string | number>;
17
+ showSearchIcon: import("@angular/core").InputSignal<boolean>;
18
+ showClearIcon: import("@angular/core").InputSignal<boolean>;
19
+ width: import("@angular/core").InputSignal<string>;
20
+ minWidth: import("@angular/core").InputSignal<string>;
21
+ maxWidth: import("@angular/core").InputSignal<string>;
22
+ marginTop: import("@angular/core").InputSignal<string>;
23
+ marginRight: import("@angular/core").InputSignal<string>;
24
+ marginBottom: import("@angular/core").InputSignal<string>;
25
+ marginLeft: import("@angular/core").InputSignal<string>;
26
+ isInvalid: import("@angular/core").InputSignal<boolean>;
27
+ isValid: import("@angular/core").InputSignal<boolean>;
28
+ isDisabled: import("@angular/core").InputSignal<boolean>;
29
+ isReadonly: import("@angular/core").InputSignal<boolean>;
30
+ isLoading: import("@angular/core").InputSignal<boolean>;
31
+ selectOnFocus: import("@angular/core").InputSignal<boolean>;
32
+ textPosition: import("@angular/core").InputSignal<"left" | "right" | "center">;
33
+ onKeyupEnter: import("@angular/core").OutputEmitterRef<string | number>;
34
+ onInput: import("@angular/core").OutputEmitterRef<string | number>;
35
+ onClickClear: import("@angular/core").OutputEmitterRef<void>;
36
+ ngOnInit(): void;
37
+ protected get _showSearchIcon(): boolean;
38
+ protected get _showClearIcon(): boolean;
39
+ get value(): string | number | null | undefined;
40
+ protected _isEnable: import("@angular/core").Signal<boolean>;
41
+ protected floatLabel: import("@angular/core").Signal<"auto" | "always">;
42
+ protected paddingRight: import("@angular/core").Signal<"0px" | "18px">;
43
+ /** */
44
+ private SetEvents;
45
+ /** */
46
+ Focus(timeout?: number): void;
47
+ /** */
48
+ Select(timeout?: number): void;
49
+ /** */
50
+ Blur(): void;
51
+ /** */
52
+ Clear(): void;
53
+ /** */
54
+ protected ClickSearch(): void;
55
+ static ɵfac: i0.ɵɵFactoryDeclaration<CoerTextBox, never>;
56
+ static ɵcmp: i0.ɵɵComponentDeclaration<CoerTextBox, "coer-textbox", never, { "value": { "alias": "value"; "required": false; }; "id": { "alias": "id"; "required": false; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "minLength": { "alias": "minLength"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "showSearchIcon": { "alias": "showSearchIcon"; "required": false; "isSignal": true; }; "showClearIcon": { "alias": "showClearIcon"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "minWidth": { "alias": "minWidth"; "required": false; "isSignal": true; }; "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "marginTop": { "alias": "marginTop"; "required": false; "isSignal": true; }; "marginRight": { "alias": "marginRight"; "required": false; "isSignal": true; }; "marginBottom": { "alias": "marginBottom"; "required": false; "isSignal": true; }; "marginLeft": { "alias": "marginLeft"; "required": false; "isSignal": true; }; "isInvalid": { "alias": "isInvalid"; "required": false; "isSignal": true; }; "isValid": { "alias": "isValid"; "required": false; "isSignal": true; }; "isDisabled": { "alias": "isDisabled"; "required": false; "isSignal": true; }; "isReadonly": { "alias": "isReadonly"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "selectOnFocus": { "alias": "selectOnFocus"; "required": false; "isSignal": true; }; "textPosition": { "alias": "textPosition"; "required": false; "isSignal": true; }; }, { "onKeyupEnter": "onKeyupEnter"; "onInput": "onInput"; "onClickClear": "onClickClear"; }, never, never, false, never>;
57
+ }
@@ -0,0 +1,30 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./coer-button/coer-button.component";
3
+ import * as i2 from "./coer-checkbox/coer-checkbox.component";
4
+ import * as i3 from "./coer-filebox/coer-filebox.component";
5
+ import * as i4 from "./coer-form/coer-form.component";
6
+ import * as i5 from "./coer-grid/coer-grid.component";
7
+ import * as i6 from "./coer-modal/coer-modal.component";
8
+ import * as i7 from "./coer-numberbox/coer-numberbox.component";
9
+ import * as i8 from "./coer-page-title/coer-page-title.component";
10
+ import * as i9 from "./coer-selectbox/coer-selectbox.component";
11
+ import * as i10 from "./coer-switch/coer-switch.component";
12
+ import * as i11 from "./coer-tab/coer-tab.component";
13
+ import * as i12 from "./coer-textarea/coer-textarea.component";
14
+ import * as i13 from "./coer-textbox/coer-textbox.component";
15
+ import * as i14 from "@angular/common";
16
+ import * as i15 from "@angular/router";
17
+ import * as i16 from "@angular/forms";
18
+ import * as i17 from "@angular/material/button";
19
+ import * as i18 from "@angular/material/checkbox";
20
+ import * as i19 from "@angular/material/input";
21
+ import * as i20 from "@angular/material/form-field";
22
+ import * as i21 from "@angular/material/slide-toggle";
23
+ import * as i22 from "@angular/material/tabs";
24
+ import * as i23 from "coer-elements/directives";
25
+ import * as i24 from "coer-elements/pipes";
26
+ export declare class ComponentsModule {
27
+ static ɵfac: i0.ɵɵFactoryDeclaration<ComponentsModule, never>;
28
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ComponentsModule, [typeof i1.CoerButton, typeof i2.CoerCheckbox, typeof i3.CoerFilebox, typeof i4.CoerForm, typeof i5.CoerGrid, typeof i6.CoerModal, typeof i7.CoerNumberBox, typeof i8.CoerPageTitle, typeof i9.CoerSelectbox, typeof i10.CoerSwitch, typeof i11.CoerTab, typeof i12.CoerTextarea, typeof i13.CoerTextBox], [typeof i14.CommonModule, typeof i15.RouterModule, typeof i16.FormsModule, typeof i16.ReactiveFormsModule, typeof i17.MatButtonModule, typeof i18.MatCheckboxModule, typeof i19.MatInputModule, typeof i20.MatFormFieldModule, typeof i21.MatSlideToggleModule, typeof i22.MatTabsModule, typeof i23.DirectivesModule, typeof i24.PipesModule], [typeof i1.CoerButton, typeof i2.CoerCheckbox, typeof i3.CoerFilebox, typeof i4.CoerForm, typeof i5.CoerGrid, typeof i6.CoerModal, typeof i7.CoerNumberBox, typeof i8.CoerPageTitle, typeof i9.CoerSelectbox, typeof i10.CoerSwitch, typeof i11.CoerTab, typeof i12.CoerTextarea, typeof i13.CoerTextBox]>;
29
+ static ɵinj: i0.ɵɵInjectorDeclaration<ComponentsModule>;
30
+ }
@@ -0,0 +1,15 @@
1
+ export * from './lib/components.module';
2
+ export * from './lib/coer-button/coer-button.component';
3
+ export * from './lib/coer-checkbox/coer-checkbox.component';
4
+ export * from './lib/coer-filebox/coer-filebox.component';
5
+ export * from './lib/coer-form/coer-form.component';
6
+ export * from './lib/coer-grid/coer-grid.component';
7
+ export * from './lib/coer-grid/coer-grid.templates';
8
+ export * from './lib/coer-modal/coer-modal.component';
9
+ export * from './lib/coer-numberbox/coer-numberbox.component';
10
+ export * from './lib/coer-page-title/coer-page-title.component';
11
+ export * from './lib/coer-selectbox/coer-selectbox.component';
12
+ export * from './lib/coer-switch/coer-switch.component';
13
+ export * from './lib/coer-tab/coer-tab.component';
14
+ export * from './lib/coer-textarea/coer-textarea.component';
15
+ export * from './lib/coer-textbox/coer-textbox.component';
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="coer-elements/directives" />
5
+ export * from './public-api';
@@ -0,0 +1,14 @@
1
+ import { TemplateRef } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ export declare class CoerRefDirective {
4
+ template: TemplateRef<any>;
5
+ coerRef: import("@angular/core").InputSignal<string>;
6
+ title: import("@angular/core").InputSignal<string>;
7
+ icon: import("@angular/core").InputSignal<string>;
8
+ isDisabled: import("@angular/core").InputSignal<boolean>;
9
+ show: import("@angular/core").InputSignal<boolean>;
10
+ tooltip: import("@angular/core").InputSignal<string>;
11
+ constructor(template: TemplateRef<any>);
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<CoerRefDirective, never>;
13
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CoerRefDirective, "[coerRef]", never, { "coerRef": { "alias": "coerRef"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "isDisabled": { "alias": "isDisabled"; "required": false; "isSignal": true; }; "show": { "alias": "show"; "required": false; "isSignal": true; }; "tooltip": { "alias": "tooltip"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
14
+ }
@@ -0,0 +1,8 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./coer-ref.directive";
3
+ import * as i2 from "./life-cycle.directive";
4
+ export declare class DirectivesModule {
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<DirectivesModule, never>;
6
+ static ɵmod: i0.ɵɵNgModuleDeclaration<DirectivesModule, [typeof i1.CoerRefDirective, typeof i2.LifeCycleDirective], never, [typeof i1.CoerRefDirective, typeof i2.LifeCycleDirective]>;
7
+ static ɵinj: i0.ɵɵInjectorDeclaration<DirectivesModule>;
8
+ }
@@ -0,0 +1,16 @@
1
+ import { OnDestroy, OnInit, ElementRef, AfterViewInit, OnChanges, SimpleChanges } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class LifeCycleDirective implements OnChanges, OnInit, AfterViewInit, OnDestroy {
4
+ private element;
5
+ OnChanges: import("@angular/core").OutputEmitterRef<SimpleChanges>;
6
+ onInit: import("@angular/core").OutputEmitterRef<HTMLElement>;
7
+ afterViewInit: import("@angular/core").OutputEmitterRef<HTMLElement>;
8
+ onDestroy: import("@angular/core").OutputEmitterRef<HTMLElement>;
9
+ constructor(element: ElementRef);
10
+ ngOnChanges(changes: SimpleChanges): void;
11
+ ngOnInit(): void;
12
+ ngAfterViewInit(): void;
13
+ ngOnDestroy(): void;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<LifeCycleDirective, never>;
15
+ static ɵdir: i0.ɵɵDirectiveDeclaration<LifeCycleDirective, "[lifecycle]", never, {}, { "OnChanges": "OnChanges"; "onInit": "onInit"; "afterViewInit": "afterViewInit"; "onDestroy": "onDestroy"; }, never, never, false, never>;
16
+ }
@@ -0,0 +1,3 @@
1
+ export * from './lib/directives.module';
2
+ export * from './lib/coer-ref.directive';
3
+ export * from './lib/life-cycle.directive';
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lci1lbGVtZW50cy1jb21wb25lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29lci1lbGVtZW50cy9jb21wb25lbnRzL2NvZXItZWxlbWVudHMtY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,133 @@
1
+ import { Component, computed, EventEmitter, input, Input, Output } from '@angular/core';
2
+ import { Tools } from 'coer-elements/tools';
3
+ import { Tooltip } from 'bootstrap';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "@angular/router";
7
+ import * as i3 from "@angular/material/button";
8
+ export class CoerButton {
9
+ constructor() {
10
+ //Variables
11
+ this._id = Tools.GetGuid('coer-button');
12
+ this._tooltip = '';
13
+ //Inputs
14
+ this.id = '';
15
+ this.color = input('default');
16
+ this.type = input('filled');
17
+ this.icon = input('');
18
+ this.iconPosition = input('left');
19
+ this.animation = input(false);
20
+ this.isLoading = input(false);
21
+ this.isDisabled = input(false);
22
+ this.isInvisible = input(false);
23
+ this.width = input('125px');
24
+ this.minWidth = input('30px');
25
+ this.height = input('40px');
26
+ this.minHeight = input('30px');
27
+ this.marginTop = input('0px');
28
+ this.marginRight = input('0px');
29
+ this.marginBottom = input('0px');
30
+ this.marginLeft = input('0px');
31
+ this.path = input([]);
32
+ this.tooltipPosition = input('left');
33
+ //Outputs
34
+ this.onClick = new EventEmitter();
35
+ //computed
36
+ this._isEnable = computed(() => {
37
+ return !this.isLoading() && !this.isDisabled() && !this.isInvisible();
38
+ });
39
+ //computed
40
+ this._icon = computed(() => {
41
+ switch (this.icon()) {
42
+ case 'new': return 'fa-solid fa-plus fa-lg';
43
+ case 'save': return 'fa-solid fa-floppy-disk fa-lg';
44
+ case 'cancel': return 'fa-solid fa-xmark fa-lg';
45
+ case 'import': return 'fa-solid fa-file-arrow-up fa-lg';
46
+ case 'excel': return 'bi bi-filetype-xlsx fa-lg';
47
+ case 'menu': return 'fa-solid fa-bars';
48
+ case 'delete': return 'fa-solid fa-trash-can';
49
+ case 'edit': return 'fa-solid fa-pen fa-lg';
50
+ case 'go': return 'bi bi-box-arrow-right';
51
+ case 'back': return 'bi bi-box-arrow-left';
52
+ default: return '';
53
+ }
54
+ });
55
+ }
56
+ set tooltip(value) {
57
+ this._tooltip = value;
58
+ if (value && this._tooltipElement) {
59
+ this._tooltipElement.setContent({ '.tooltip-inner': this._tooltip });
60
+ }
61
+ }
62
+ ngOnInit() {
63
+ this.SetToolTip();
64
+ this.SetEvents();
65
+ }
66
+ ngOnDestroy() {
67
+ if (this._tooltipElement) {
68
+ Tools.Sleep().then(() => this._tooltipElement.dispose());
69
+ }
70
+ }
71
+ /** */
72
+ SetEvents() {
73
+ Tools.Sleep().then(() => {
74
+ this._element = document.getElementById(`${this._id}-inner-button`);
75
+ if (Tools.IsNotNull(this._element)) {
76
+ this._element.addEventListener('focus', () => {
77
+ if (!this._isEnable())
78
+ this.Blur();
79
+ });
80
+ }
81
+ });
82
+ }
83
+ SetToolTip() {
84
+ Tools.Sleep().then(() => {
85
+ const htmlElement = document.getElementById(`${this._id}-container`);
86
+ if (Tools.IsNotNull(htmlElement)) {
87
+ htmlElement.addEventListener('mouseleave', () => {
88
+ if (Tools.IsNotNull(htmlElement) && Tools.IsNotNull(this._tooltipElement)) {
89
+ this._tooltipElement.hide();
90
+ }
91
+ });
92
+ this._tooltipElement = new Tooltip(htmlElement, {
93
+ html: true,
94
+ title: this._tooltip,
95
+ placement: this.tooltipPosition
96
+ });
97
+ }
98
+ });
99
+ }
100
+ /** */
101
+ Click(event) {
102
+ if (this._isEnable()) {
103
+ this.onClick.emit(event);
104
+ }
105
+ this.Blur();
106
+ }
107
+ /** */
108
+ Focus(timeout = 0) {
109
+ Tools.Sleep(timeout).then(() => {
110
+ if (this._isEnable())
111
+ this._element.focus();
112
+ });
113
+ }
114
+ /** */
115
+ Blur() {
116
+ Tools.Sleep().then(() => {
117
+ this._element.blur();
118
+ });
119
+ }
120
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CoerButton, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
121
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: CoerButton, selector: "coer-button", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: false, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, iconPosition: { classPropertyName: "iconPosition", publicName: "iconPosition", isSignal: true, isRequired: false, transformFunction: null }, animation: { classPropertyName: "animation", publicName: "animation", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null }, isInvisible: { classPropertyName: "isInvisible", publicName: "isInvisible", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, minWidth: { classPropertyName: "minWidth", publicName: "minWidth", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, minHeight: { classPropertyName: "minHeight", publicName: "minHeight", isSignal: true, isRequired: false, transformFunction: null }, marginTop: { classPropertyName: "marginTop", publicName: "marginTop", isSignal: true, isRequired: false, transformFunction: null }, marginRight: { classPropertyName: "marginRight", publicName: "marginRight", isSignal: true, isRequired: false, transformFunction: null }, marginBottom: { classPropertyName: "marginBottom", publicName: "marginBottom", isSignal: true, isRequired: false, transformFunction: null }, marginLeft: { classPropertyName: "marginLeft", publicName: "marginLeft", isSignal: true, isRequired: false, transformFunction: null }, path: { classPropertyName: "path", publicName: "path", isSignal: true, isRequired: false, transformFunction: null }, tooltipPosition: { classPropertyName: "tooltipPosition", publicName: "tooltipPosition", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { onClick: "onClick" }, ngImport: i0, template: "<div [ngClass]=\"{ 'coer-button': true, 'invisible': isInvisible() }\">\r\n <a [id]=\"_id + '-container'\"\r\n [routerLink]=\"(path().length > 0 && _isEnable()) ? path() : null\"\r\n [ngClass]=\"{ 'loading': isLoading(), 'animate__animated animate__zoomIn': true, 'animate__disabled': !animation() }\"\r\n [ngStyle]=\"{ 'margin-top': marginTop(), 'margin-right': marginRight(), 'margin-bottom': marginBottom(), 'margin-left': marginLeft() }\">\r\n @if(type() =='filled' || type() == 'outline') {\r\n <button mat-button\r\n [id]=\"_id + '-inner-button'\"\r\n type=\"button\"\r\n (click)=\"Click($event)\"\r\n [ngClass]=\"{\r\n 'primary-filled': (color() == 'primary' && type() =='filled'),\r\n 'secondary-filled': (color() == 'secondary' && type() =='filled'),\r\n 'success-filled': (color() == 'success' && type() =='filled'),\r\n 'warning-filled': (color() == 'warning' && type() =='filled'),\r\n 'danger-filled': (color() == 'danger' && type() =='filled'),\r\n 'navigation-filled': (color() == 'navigation' && type() =='filled'),\r\n 'primary-outline': (color() == 'primary' && type() =='outline'),\r\n 'secondary-outline': (color() == 'secondary' && type() =='outline'),\r\n 'success-outline': (color() == 'success' && type() =='outline'),\r\n 'warning-outline': (color() == 'warning' && type() =='outline'),\r\n 'danger-outline': (color() == 'danger' && type() =='outline'),\r\n 'navigation-outline': (color() == 'navigation'),\r\n 'readonly': isDisabled(),\r\n 'cursor-wait': isLoading()\r\n }\"\r\n [ngStyle]=\"{\r\n 'width': width(),\r\n 'min-width': minWidth(),\r\n 'height': height(),\r\n 'min-height': minHeight()\r\n }\">\r\n <span class=\"slot\" *ngIf=\"!isLoading(); else loading\" >\r\n <span *ngIf=\"(iconPosition() == 'left')\">\r\n <i [class]=\"_icon()\"></i>\r\n </span>\r\n\r\n <span [ngClass]=\"{ 'ms-2': (iconPosition() == 'left'), 'me-2': (iconPosition() == 'right') }\">\r\n <ng-content></ng-content>\r\n </span>\r\n\r\n <span *ngIf=\"(iconPosition() == 'right')\">\r\n <i [class]=\"_icon()\"></i>\r\n </span>\r\n </span>\r\n\r\n <ng-template #loading>\r\n <span class=\"slot fa-fade\">\r\n <span class=\"me-2\"> Loading </span>\r\n <i class=\"spinner-border\"></i>\r\n </span>\r\n </ng-template>\r\n </button>\r\n }\r\n\r\n @else {\r\n @if (type() == 'icon') {\r\n <button mat-icon-button\r\n [id]=\"_id + '-inner-button'\"\r\n (click)=\"Click($event)\"\r\n [ngClass]=\"{\r\n 'primary-filled': (color() == 'primary'),\r\n 'secondary-filled': (color() == 'secondary'),\r\n 'success-filled': (color() == 'success'),\r\n 'warning-filled': (color() == 'warning'),\r\n 'danger-filled': (color() == 'danger'),\r\n 'navigation-filled': (color() == 'navigation'),\r\n 'readonly': (isDisabled() || isLoading()),\r\n 'cursor-wait': isLoading()\r\n }\">\r\n <i [class]=\"_icon()\"></i>\r\n </button>\r\n }\r\n\r\n @else if (type() == 'icon-outline') {\r\n <button mat-icon-button\r\n [id]=\"_id + '-inner-button'\"\r\n (click)=\"Click($event)\"\r\n [ngClass]=\"{\r\n 'primary-outline': (color() == 'primary'),\r\n 'secondary-outline': (color() == 'secondary'),\r\n 'success-outline': (color() == 'success'),\r\n 'warning-outline': (color() == 'warning'),\r\n 'danger-outline': (color() == 'danger'),\r\n 'navigation-outline': (color() == 'navigation'),\r\n 'readonly': (isDisabled() || isLoading()),\r\n 'cursor-wait': isLoading()\r\n }\">\r\n <i [class]=\"_icon()\"></i>\r\n </button>\r\n }\r\n\r\n @else if (type() == 'icon-no-border') {\r\n <button mat-icon-button\r\n [id]=\"_id + '-inner-button'\"\r\n (click)=\"Click($event)\"\r\n [ngClass]=\"{\r\n 'primary-outline': (color() == 'primary'),\r\n 'secondary-outline': (color() == 'secondary'),\r\n 'success-outline': (color() == 'success'),\r\n 'warning-outline': (color() == 'warning'),\r\n 'danger-outline': (color() == 'danger'),\r\n 'navigation-outline': (color() == 'navigation'),\r\n 'readonly': (isDisabled() || isLoading()),\r\n 'icon-no-border': true\r\n }\">\r\n <i [class]=\"_icon()\"></i>\r\n </button>\r\n }\r\n }\r\n </a>\r\n</div>", styles: ["*{--blue: #0d6efd;--gray: #6c757d;--green: #198754;--yellow: #ffc107;--red: #dc3545;--white: #f5f5f5;--black: #252525;--orange: #fd6031}.text-blue{color:#0d6efd!important}.text-blue-bold{color:#0d6efd!important;font-weight:700!important}.background-blue{background-color:#0d6efd!important}.background-border-blue{background-color:#0d6efd!important;border-color:#0d6efd!important}.border-blue{border-color:#0d6efd!important}.text-gray{color:#6c757d!important}.text-gray-bold{color:#6c757d!important;font-weight:700!important}.background-gray{background-color:#6c757d!important}.background-border-gray{background-color:#6c757d!important;border-color:#6c757d!important}.border-gray{border-color:#6c757d!important}.text-green{color:#198754!important}.text-green-bold{color:#198754!important;font-weight:700!important}.background-green{background-color:#198754!important}.background-border-green{background-color:#198754!important;border-color:#198754!important}.border-green{border-color:#198754!important}.text-yellow{color:#ffc107!important}.text-yellow-bold{color:#ffc107!important;font-weight:700!important}.background-yellow{background-color:#ffc107!important}.background-border-yellow{background-color:#ffc107!important;border-color:#ffc107!important}.border-yellow{border-color:#ffc107!important}.text-red{color:#dc3545!important}.text-red-bold{color:#dc3545!important;font-weight:700!important}.background-red{background-color:#dc3545!important}.background-border-red{background-color:#dc3545!important;border-color:#dc3545!important}.border-red{border-color:#dc3545!important}.text-white{color:#f5f5f5!important}.text-white-bold{color:#f5f5f5!important;font-weight:700!important}.background-white{background-color:#f5f5f5!important}.background-border-white{background-color:#f5f5f5!important;border-color:#f5f5f5!important}.border-white{border-color:#f5f5f5!important}.text-black{color:#252525!important}.text-black-bold{color:#252525!important;font-weight:700!important}.background-black{background-color:#252525!important}.background-border-black{background-color:#252525!important;border-color:#252525!important}.border-black{border-color:#252525!important}.text-orange{color:#fd6031!important}.text-orange-bold{color:#fd6031!important;font-weight:700!important}.background-orange{background-color:#fd6031!important}.background-border-orange{background-color:#fd6031!important;border-color:#fd6031!important}.border-orange{border-color:#fd6031!important}coer-button{display:contents!important}div.coer-button{display:contents!important}div.coer-button a{display:inline-block!important}div.coer-button a.animate__disabled{animation-duration:0s!important}div.coer-button button{font-size:17px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}div.coer-button .slot{width:100px!important;display:flex!important;align-items:center!important;justify-content:center!important;text-overflow:ellipsis!important;overflow:hidden!important}div.coer-button button.primary-filled{background-color:#0d6efd!important;color:#f5f5f5!important}div.coer-button button.secondary-filled{background-color:#6c757d!important;color:#f5f5f5!important}div.coer-button button.success-filled{background-color:#198754!important;color:#f5f5f5!important}div.coer-button button.warning-filled{background-color:#ffc107!important;color:#252525!important}div.coer-button button.danger-filled{background-color:#dc3545!important;color:#f5f5f5!important}div.coer-button button.navigation-filled{background-color:#fd6031!important;color:#f5f5f5!important}div.coer-button button.primary-outline{background-color:#fff!important;border:1px solid #0d6efd!important;color:#0d6efd!important}div.coer-button button.secondary-outline{background-color:#fff!important;border:1px solid #6c757d!important;color:#6c757d!important}div.coer-button button.success-outline{background-color:#fff!important;border:1px solid #198754!important;color:#198754!important}div.coer-button button.warning-outline{background-color:#fff!important;border:1px solid #ffc107!important;color:#ffc107!important}div.coer-button button.danger-outline{background-color:#fff!important;border:1px solid #dc3545!important;color:#dc3545!important}div.coer-button button.navigation-outline{background-color:#fff!important;border:1px solid #fd6031!important;color:#fd6031!important}div.coer-button button.primary-filled:not(.readonly):hover,div.coer-button button.primary-filled:not(.readonly):focus,div.coer-button button.primary-outline:not(.readonly):hover,div.coer-button button.primary-outline:not(.readonly):focus,div.coer-button button.secondary-filled:not(.readonly):hover,div.coer-button button.secondary-filled:not(.readonly):focus,div.coer-button button.secondary-outline:not(.readonly):hover,div.coer-button button.secondary-outline:not(.readonly):focus,div.coer-button button.success-filled:not(.readonly):hover,div.coer-button button.success-filled:not(.readonly):focus,div.coer-button button.success-outline:not(.readonly):hover,div.coer-button button.success-outline:not(.readonly):focus,div.coer-button button.warning-filled:not(.readonly):hover,div.coer-button button.warning-filled:not(.readonly):focus,div.coer-button button.warning-outline:not(.readonly):hover,div.coer-button button.warning-outline:not(.readonly):focus,div.coer-button button.danger-filled:not(.readonly):hover,div.coer-button button.danger-filled:not(.readonly):focus,div.coer-button button.danger-outline:not(.readonly):hover,div.coer-button button.danger-outline:not(.readonly):focus{filter:brightness(1.1)!important}div.coer-button button.primary-filled:not(.readonly):focus,div.coer-button button.primary-outline:not(.readonly):focus{box-shadow:0 0 20px #0d6efd!important}div.coer-button button.secondary-filled:not(.readonly):focus,div.coer-button button.secondary-outline:not(.readonly):focus{box-shadow:0 0 20px #6c757d!important}div.coer-button button.success-filled:not(.readonly):focus,div.coer-button button.success-outline:not(.readonly):focus{box-shadow:0 0 20px #198754!important}div.coer-button button.warning-filled:not(.readonly):focus,div.coer-button button.warning-outline:not(.readonly):focus{box-shadow:0 0 20px #ffc107!important}div.coer-button button.danger-filled:not(.readonly):focus,div.coer-button button.danger-outline:not(.readonly):focus{box-shadow:0 0 20px #dc3545!important}div.coer-button button.navigation-filled:not(.readonly):focus,div.coer-button button.navigation-outline:not(.readonly):focus{box-shadow:0 0 20px #fd6031!important}div.coer-button button.mdc-icon-button.mat-mdc-icon-button{width:40px!important;height:40px!important;padding:0!important}div.coer-button button.mdc-icon-button.mat-mdc-icon-button.icon-no-border{width:25px!important;height:25px!important;background-color:transparent!important;border:none!important;overflow:visible!important}div.coer-button button.mdc-icon-button.mat-mdc-icon-button.icon-no-border *{font-size:medium!important}div.coer-button button.mdc-icon-button.mat-mdc-icon-button.icon-no-border i.bi-box-arrow-left,div.coer-button button.mdc-icon-button.mat-mdc-icon-button.icon-no-border i.bi-box-arrow-in-right{font-size:20px!important}div.coer-button button.readonly,div.coer-button button.readonly:hover,div.coer-button button.readonly:focus{background-color:#dfdede!important;border-color:#dfdede!important;color:#fff!important}div.coer-button coer-button[ishidden=true],div.coer-button coer-button[ng-reflect-invisible=true]{position:relative!important;top:10000vh;left:10000vw}div.coer-button a.loading{cursor:wait!important}div.coer-button i{vertical-align:middle!important}div.coer-button i.spinner-border{width:15px!important;height:15px!important;font-size:16px!important}div.coer-button span{font-weight:700!important}div#coer-tool-bar coer-button *{color:#fd6031!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }] }); }
122
+ }
123
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CoerButton, decorators: [{
124
+ type: Component,
125
+ args: [{ selector: 'coer-button', template: "<div [ngClass]=\"{ 'coer-button': true, 'invisible': isInvisible() }\">\r\n <a [id]=\"_id + '-container'\"\r\n [routerLink]=\"(path().length > 0 && _isEnable()) ? path() : null\"\r\n [ngClass]=\"{ 'loading': isLoading(), 'animate__animated animate__zoomIn': true, 'animate__disabled': !animation() }\"\r\n [ngStyle]=\"{ 'margin-top': marginTop(), 'margin-right': marginRight(), 'margin-bottom': marginBottom(), 'margin-left': marginLeft() }\">\r\n @if(type() =='filled' || type() == 'outline') {\r\n <button mat-button\r\n [id]=\"_id + '-inner-button'\"\r\n type=\"button\"\r\n (click)=\"Click($event)\"\r\n [ngClass]=\"{\r\n 'primary-filled': (color() == 'primary' && type() =='filled'),\r\n 'secondary-filled': (color() == 'secondary' && type() =='filled'),\r\n 'success-filled': (color() == 'success' && type() =='filled'),\r\n 'warning-filled': (color() == 'warning' && type() =='filled'),\r\n 'danger-filled': (color() == 'danger' && type() =='filled'),\r\n 'navigation-filled': (color() == 'navigation' && type() =='filled'),\r\n 'primary-outline': (color() == 'primary' && type() =='outline'),\r\n 'secondary-outline': (color() == 'secondary' && type() =='outline'),\r\n 'success-outline': (color() == 'success' && type() =='outline'),\r\n 'warning-outline': (color() == 'warning' && type() =='outline'),\r\n 'danger-outline': (color() == 'danger' && type() =='outline'),\r\n 'navigation-outline': (color() == 'navigation'),\r\n 'readonly': isDisabled(),\r\n 'cursor-wait': isLoading()\r\n }\"\r\n [ngStyle]=\"{\r\n 'width': width(),\r\n 'min-width': minWidth(),\r\n 'height': height(),\r\n 'min-height': minHeight()\r\n }\">\r\n <span class=\"slot\" *ngIf=\"!isLoading(); else loading\" >\r\n <span *ngIf=\"(iconPosition() == 'left')\">\r\n <i [class]=\"_icon()\"></i>\r\n </span>\r\n\r\n <span [ngClass]=\"{ 'ms-2': (iconPosition() == 'left'), 'me-2': (iconPosition() == 'right') }\">\r\n <ng-content></ng-content>\r\n </span>\r\n\r\n <span *ngIf=\"(iconPosition() == 'right')\">\r\n <i [class]=\"_icon()\"></i>\r\n </span>\r\n </span>\r\n\r\n <ng-template #loading>\r\n <span class=\"slot fa-fade\">\r\n <span class=\"me-2\"> Loading </span>\r\n <i class=\"spinner-border\"></i>\r\n </span>\r\n </ng-template>\r\n </button>\r\n }\r\n\r\n @else {\r\n @if (type() == 'icon') {\r\n <button mat-icon-button\r\n [id]=\"_id + '-inner-button'\"\r\n (click)=\"Click($event)\"\r\n [ngClass]=\"{\r\n 'primary-filled': (color() == 'primary'),\r\n 'secondary-filled': (color() == 'secondary'),\r\n 'success-filled': (color() == 'success'),\r\n 'warning-filled': (color() == 'warning'),\r\n 'danger-filled': (color() == 'danger'),\r\n 'navigation-filled': (color() == 'navigation'),\r\n 'readonly': (isDisabled() || isLoading()),\r\n 'cursor-wait': isLoading()\r\n }\">\r\n <i [class]=\"_icon()\"></i>\r\n </button>\r\n }\r\n\r\n @else if (type() == 'icon-outline') {\r\n <button mat-icon-button\r\n [id]=\"_id + '-inner-button'\"\r\n (click)=\"Click($event)\"\r\n [ngClass]=\"{\r\n 'primary-outline': (color() == 'primary'),\r\n 'secondary-outline': (color() == 'secondary'),\r\n 'success-outline': (color() == 'success'),\r\n 'warning-outline': (color() == 'warning'),\r\n 'danger-outline': (color() == 'danger'),\r\n 'navigation-outline': (color() == 'navigation'),\r\n 'readonly': (isDisabled() || isLoading()),\r\n 'cursor-wait': isLoading()\r\n }\">\r\n <i [class]=\"_icon()\"></i>\r\n </button>\r\n }\r\n\r\n @else if (type() == 'icon-no-border') {\r\n <button mat-icon-button\r\n [id]=\"_id + '-inner-button'\"\r\n (click)=\"Click($event)\"\r\n [ngClass]=\"{\r\n 'primary-outline': (color() == 'primary'),\r\n 'secondary-outline': (color() == 'secondary'),\r\n 'success-outline': (color() == 'success'),\r\n 'warning-outline': (color() == 'warning'),\r\n 'danger-outline': (color() == 'danger'),\r\n 'navigation-outline': (color() == 'navigation'),\r\n 'readonly': (isDisabled() || isLoading()),\r\n 'icon-no-border': true\r\n }\">\r\n <i [class]=\"_icon()\"></i>\r\n </button>\r\n }\r\n }\r\n </a>\r\n</div>", styles: ["*{--blue: #0d6efd;--gray: #6c757d;--green: #198754;--yellow: #ffc107;--red: #dc3545;--white: #f5f5f5;--black: #252525;--orange: #fd6031}.text-blue{color:#0d6efd!important}.text-blue-bold{color:#0d6efd!important;font-weight:700!important}.background-blue{background-color:#0d6efd!important}.background-border-blue{background-color:#0d6efd!important;border-color:#0d6efd!important}.border-blue{border-color:#0d6efd!important}.text-gray{color:#6c757d!important}.text-gray-bold{color:#6c757d!important;font-weight:700!important}.background-gray{background-color:#6c757d!important}.background-border-gray{background-color:#6c757d!important;border-color:#6c757d!important}.border-gray{border-color:#6c757d!important}.text-green{color:#198754!important}.text-green-bold{color:#198754!important;font-weight:700!important}.background-green{background-color:#198754!important}.background-border-green{background-color:#198754!important;border-color:#198754!important}.border-green{border-color:#198754!important}.text-yellow{color:#ffc107!important}.text-yellow-bold{color:#ffc107!important;font-weight:700!important}.background-yellow{background-color:#ffc107!important}.background-border-yellow{background-color:#ffc107!important;border-color:#ffc107!important}.border-yellow{border-color:#ffc107!important}.text-red{color:#dc3545!important}.text-red-bold{color:#dc3545!important;font-weight:700!important}.background-red{background-color:#dc3545!important}.background-border-red{background-color:#dc3545!important;border-color:#dc3545!important}.border-red{border-color:#dc3545!important}.text-white{color:#f5f5f5!important}.text-white-bold{color:#f5f5f5!important;font-weight:700!important}.background-white{background-color:#f5f5f5!important}.background-border-white{background-color:#f5f5f5!important;border-color:#f5f5f5!important}.border-white{border-color:#f5f5f5!important}.text-black{color:#252525!important}.text-black-bold{color:#252525!important;font-weight:700!important}.background-black{background-color:#252525!important}.background-border-black{background-color:#252525!important;border-color:#252525!important}.border-black{border-color:#252525!important}.text-orange{color:#fd6031!important}.text-orange-bold{color:#fd6031!important;font-weight:700!important}.background-orange{background-color:#fd6031!important}.background-border-orange{background-color:#fd6031!important;border-color:#fd6031!important}.border-orange{border-color:#fd6031!important}coer-button{display:contents!important}div.coer-button{display:contents!important}div.coer-button a{display:inline-block!important}div.coer-button a.animate__disabled{animation-duration:0s!important}div.coer-button button{font-size:17px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}div.coer-button .slot{width:100px!important;display:flex!important;align-items:center!important;justify-content:center!important;text-overflow:ellipsis!important;overflow:hidden!important}div.coer-button button.primary-filled{background-color:#0d6efd!important;color:#f5f5f5!important}div.coer-button button.secondary-filled{background-color:#6c757d!important;color:#f5f5f5!important}div.coer-button button.success-filled{background-color:#198754!important;color:#f5f5f5!important}div.coer-button button.warning-filled{background-color:#ffc107!important;color:#252525!important}div.coer-button button.danger-filled{background-color:#dc3545!important;color:#f5f5f5!important}div.coer-button button.navigation-filled{background-color:#fd6031!important;color:#f5f5f5!important}div.coer-button button.primary-outline{background-color:#fff!important;border:1px solid #0d6efd!important;color:#0d6efd!important}div.coer-button button.secondary-outline{background-color:#fff!important;border:1px solid #6c757d!important;color:#6c757d!important}div.coer-button button.success-outline{background-color:#fff!important;border:1px solid #198754!important;color:#198754!important}div.coer-button button.warning-outline{background-color:#fff!important;border:1px solid #ffc107!important;color:#ffc107!important}div.coer-button button.danger-outline{background-color:#fff!important;border:1px solid #dc3545!important;color:#dc3545!important}div.coer-button button.navigation-outline{background-color:#fff!important;border:1px solid #fd6031!important;color:#fd6031!important}div.coer-button button.primary-filled:not(.readonly):hover,div.coer-button button.primary-filled:not(.readonly):focus,div.coer-button button.primary-outline:not(.readonly):hover,div.coer-button button.primary-outline:not(.readonly):focus,div.coer-button button.secondary-filled:not(.readonly):hover,div.coer-button button.secondary-filled:not(.readonly):focus,div.coer-button button.secondary-outline:not(.readonly):hover,div.coer-button button.secondary-outline:not(.readonly):focus,div.coer-button button.success-filled:not(.readonly):hover,div.coer-button button.success-filled:not(.readonly):focus,div.coer-button button.success-outline:not(.readonly):hover,div.coer-button button.success-outline:not(.readonly):focus,div.coer-button button.warning-filled:not(.readonly):hover,div.coer-button button.warning-filled:not(.readonly):focus,div.coer-button button.warning-outline:not(.readonly):hover,div.coer-button button.warning-outline:not(.readonly):focus,div.coer-button button.danger-filled:not(.readonly):hover,div.coer-button button.danger-filled:not(.readonly):focus,div.coer-button button.danger-outline:not(.readonly):hover,div.coer-button button.danger-outline:not(.readonly):focus{filter:brightness(1.1)!important}div.coer-button button.primary-filled:not(.readonly):focus,div.coer-button button.primary-outline:not(.readonly):focus{box-shadow:0 0 20px #0d6efd!important}div.coer-button button.secondary-filled:not(.readonly):focus,div.coer-button button.secondary-outline:not(.readonly):focus{box-shadow:0 0 20px #6c757d!important}div.coer-button button.success-filled:not(.readonly):focus,div.coer-button button.success-outline:not(.readonly):focus{box-shadow:0 0 20px #198754!important}div.coer-button button.warning-filled:not(.readonly):focus,div.coer-button button.warning-outline:not(.readonly):focus{box-shadow:0 0 20px #ffc107!important}div.coer-button button.danger-filled:not(.readonly):focus,div.coer-button button.danger-outline:not(.readonly):focus{box-shadow:0 0 20px #dc3545!important}div.coer-button button.navigation-filled:not(.readonly):focus,div.coer-button button.navigation-outline:not(.readonly):focus{box-shadow:0 0 20px #fd6031!important}div.coer-button button.mdc-icon-button.mat-mdc-icon-button{width:40px!important;height:40px!important;padding:0!important}div.coer-button button.mdc-icon-button.mat-mdc-icon-button.icon-no-border{width:25px!important;height:25px!important;background-color:transparent!important;border:none!important;overflow:visible!important}div.coer-button button.mdc-icon-button.mat-mdc-icon-button.icon-no-border *{font-size:medium!important}div.coer-button button.mdc-icon-button.mat-mdc-icon-button.icon-no-border i.bi-box-arrow-left,div.coer-button button.mdc-icon-button.mat-mdc-icon-button.icon-no-border i.bi-box-arrow-in-right{font-size:20px!important}div.coer-button button.readonly,div.coer-button button.readonly:hover,div.coer-button button.readonly:focus{background-color:#dfdede!important;border-color:#dfdede!important;color:#fff!important}div.coer-button coer-button[ishidden=true],div.coer-button coer-button[ng-reflect-invisible=true]{position:relative!important;top:10000vh;left:10000vw}div.coer-button a.loading{cursor:wait!important}div.coer-button i{vertical-align:middle!important}div.coer-button i.spinner-border{width:15px!important;height:15px!important;font-size:16px!important}div.coer-button span{font-weight:700!important}div#coer-tool-bar coer-button *{color:#fd6031!important}\n"] }]
126
+ }], propDecorators: { id: [{
127
+ type: Input
128
+ }], tooltip: [{
129
+ type: Input
130
+ }], onClick: [{
131
+ type: Output
132
+ }] } });
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lci1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29lci1lbGVtZW50cy9jb21wb25lbnRzL2xpYi9jb2VyLWJ1dHRvbi9jb2VyLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2VyLWVsZW1lbnRzL2NvbXBvbmVudHMvbGliL2NvZXItYnV0dG9uL2NvZXItYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0csT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7O0FBT3BDLE1BQU0sT0FBTyxVQUFVO0lBTHZCO1FBT0ksV0FBVztRQUNELFFBQUcsR0FBVyxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRTdDLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFHOUIsUUFBUTtRQUNDLE9BQUUsR0FBVyxFQUFFLENBQUM7UUFDbEIsVUFBSyxHQUFHLEtBQUssQ0FBd0YsU0FBUyxDQUFDLENBQUM7UUFDaEgsU0FBSSxHQUFHLEtBQUssQ0FBbUUsUUFBUSxDQUFDLENBQUM7UUFDekYsU0FBSSxHQUFHLEtBQUssQ0FBbUcsRUFBRSxDQUFDLENBQUM7UUFDbkgsaUJBQVksR0FBRyxLQUFLLENBQW1CLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLGNBQVMsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDbEMsY0FBUyxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNsQyxlQUFVLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ25DLGdCQUFXLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLFVBQUssR0FBRyxLQUFLLENBQVMsT0FBTyxDQUFDLENBQUM7UUFDL0IsYUFBUSxHQUFHLEtBQUssQ0FBUyxNQUFNLENBQUMsQ0FBQztRQUNqQyxXQUFNLEdBQUcsS0FBSyxDQUFTLE1BQU0sQ0FBQyxDQUFDO1FBQy9CLGNBQVMsR0FBRyxLQUFLLENBQVMsTUFBTSxDQUFDLENBQUM7UUFDbEMsY0FBUyxHQUFHLEtBQUssQ0FBUyxLQUFLLENBQUMsQ0FBQztRQUNqQyxnQkFBVyxHQUFHLEtBQUssQ0FBUyxLQUFLLENBQUMsQ0FBQztRQUNuQyxpQkFBWSxHQUFHLEtBQUssQ0FBUyxLQUFLLENBQUMsQ0FBQztRQUNwQyxlQUFVLEdBQUcsS0FBSyxDQUFTLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLFNBQUksR0FBRyxLQUFLLENBQStCLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLG9CQUFlLEdBQUcsS0FBSyxDQUFzQyxNQUFNLENBQUMsQ0FBQztRQVM1RSxTQUFTO1FBQ0MsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFjLENBQUM7UUFHbkQsVUFBVTtRQUNBLGNBQVMsR0FBRyxRQUFRLENBQVUsR0FBRyxFQUFFO1lBQ3pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDMUUsQ0FBQyxDQUFDLENBQUM7UUFHSCxVQUFVO1FBQ0EsVUFBSyxHQUFHLFFBQVEsQ0FBUyxHQUFHLEVBQUU7WUFDcEMsUUFBTyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztnQkFDakIsS0FBSyxLQUFLLENBQUMsQ0FBQyxPQUFPLHdCQUF3QixDQUFDO2dCQUM1QyxLQUFLLE1BQU0sQ0FBQyxDQUFDLE9BQU8sK0JBQStCLENBQUM7Z0JBQ3BELEtBQUssUUFBUSxDQUFDLENBQUMsT0FBTyx5QkFBeUIsQ0FBQztnQkFDaEQsS0FBSyxRQUFRLENBQUMsQ0FBQyxPQUFPLGlDQUFpQyxDQUFDO2dCQUN4RCxLQUFLLE9BQU8sQ0FBQyxDQUFDLE9BQU8sMkJBQTJCLENBQUM7Z0JBQ2pELEtBQUssTUFBTSxDQUFDLENBQUMsT0FBTyxrQkFBa0IsQ0FBQztnQkFDdkMsS0FBSyxRQUFRLENBQUMsQ0FBQyxPQUFPLHVCQUF1QixDQUFDO2dCQUM5QyxLQUFLLE1BQU0sQ0FBQyxDQUFDLE9BQU8sdUJBQXVCLENBQUM7Z0JBQzVDLEtBQUssSUFBSSxDQUFDLENBQUMsT0FBTyx1QkFBdUIsQ0FBQztnQkFDMUMsS0FBSyxNQUFNLENBQUMsQ0FBQyxPQUFPLHNCQUFzQixDQUFDO2dCQUMzQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN2QixDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7S0EwRU47SUExR0csSUFBYSxPQUFPLENBQUMsS0FBYTtRQUM5QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN6RSxDQUFDO0lBQ0wsQ0FBQztJQThCRCxRQUFRO1FBQ0osSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3ZCLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQzdELENBQUM7SUFDTCxDQUFDO0lBR0QsTUFBTTtJQUNFLFNBQVM7UUFDYixLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxlQUFlLENBQXVCLENBQUM7WUFFMUYsSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7b0JBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO3dCQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDdkMsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBR08sVUFBVTtRQUNkLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ3BCLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxZQUFZLENBQUUsQ0FBQztZQUV0RSxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztnQkFDL0IsV0FBVyxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxHQUFHLEVBQUU7b0JBQzVDLElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO3dCQUN4RSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO29CQUNoQyxDQUFDO2dCQUNMLENBQUMsQ0FBQyxDQUFDO2dCQUVILElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxPQUFPLENBQUMsV0FBVyxFQUFFO29CQUM1QyxJQUFJLEVBQUUsSUFBSTtvQkFDVixLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVE7b0JBQ3BCLFNBQVMsRUFBRSxJQUFJLENBQUMsZUFBZTtpQkFDbEMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUdELE1BQU07SUFDSSxLQUFLLENBQUMsS0FBaUI7UUFDN0IsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFHRCxNQUFNO0lBQ0MsS0FBSyxDQUFDLFVBQWtCLENBQUM7UUFDNUIsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQzNCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2hELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUdELE1BQU07SUFDQyxJQUFJO1FBQ1AsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7K0dBdElRLFVBQVU7bUdBQVYsVUFBVSw0bkZDVHZCLG91TEErR007OzRGRHRHTyxVQUFVO2tCQUx0QixTQUFTOytCQUNJLGFBQWE7OEJBYWQsRUFBRTtzQkFBVixLQUFLO2dCQW9CTyxPQUFPO3NCQUFuQixLQUFLO2dCQVFJLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBFdmVudEVtaXR0ZXIsIGlucHV0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUb29scyB9IGZyb20gJ2NvZXItZWxlbWVudHMvdG9vbHMnXHJcbmltcG9ydCB7IFRvb2x0aXAgfSBmcm9tICdib290c3RyYXAnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2NvZXItYnV0dG9uJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb2VyLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybDogJy4vY29lci1idXR0b24uY29tcG9uZW50LnNjc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29lckJ1dHRvbiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgICAvL1ZhcmlhYmxlc1xyXG4gICAgcHJvdGVjdGVkIF9pZDogc3RyaW5nID0gVG9vbHMuR2V0R3VpZCgnY29lci1idXR0b24nKTtcclxuICAgIHByaXZhdGUgX2VsZW1lbnQhOiBIVE1MQnV0dG9uRWxlbWVudDtcclxuICAgIHByaXZhdGUgX3Rvb2x0aXA6IHN0cmluZyA9ICcnO1xyXG4gICAgcHJpdmF0ZSBfdG9vbHRpcEVsZW1lbnQhOiBUb29sdGlwO1xyXG5cclxuICAgIC8vSW5wdXRzXHJcbiAgICBASW5wdXQoKSBpZDogc3RyaW5nID0gJyc7XHJcbiAgICBwdWJsaWMgY29sb3IgPSBpbnB1dDwnZGVmYXVsdCcgfCAncHJpbWFyeScgfCAnc2Vjb25kYXJ5JyB8ICdzdWNjZXNzJyB8ICd3YXJuaW5nJyB8ICdkYW5nZXInIHwgJ25hdmlnYXRpb24nPignZGVmYXVsdCcpO1xyXG4gICAgcHVibGljIHR5cGUgPSBpbnB1dDwnZmlsbGVkJyB8ICdvdXRsaW5lJyB8ICdpY29uJ3wgJ2ljb24tb3V0bGluZScgfCAnaWNvbi1uby1ib3JkZXInPignZmlsbGVkJyk7XHJcbiAgICBwdWJsaWMgaWNvbiA9IGlucHV0PCduZXcnIHwgJ3NhdmUnIHwgJ2NhbmNlbCcgfCAnaW1wb3J0JyB8ICdleGNlbCcgfCAnbWVudScgfCAnZGVsZXRlJyB8ICdlZGl0JyB8ICdnbycgfCAnYmFjaycgfCAnJz4oJycpO1xyXG4gICAgcHVibGljIGljb25Qb3NpdGlvbiA9IGlucHV0PCdsZWZ0JyB8ICdyaWdodCc+KCdsZWZ0Jyk7XHJcbiAgICBwdWJsaWMgYW5pbWF0aW9uID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICAgcHVibGljIGlzTG9hZGluZyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICAgIHB1YmxpYyBpc0Rpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICAgcHVibGljIGlzSW52aXNpYmxlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICAgcHVibGljIHdpZHRoID0gaW5wdXQ8c3RyaW5nPignMTI1cHgnKTtcclxuICAgIHB1YmxpYyBtaW5XaWR0aCA9IGlucHV0PHN0cmluZz4oJzMwcHgnKTtcclxuICAgIHB1YmxpYyBoZWlnaHQgPSBpbnB1dDxzdHJpbmc+KCc0MHB4Jyk7XHJcbiAgICBwdWJsaWMgbWluSGVpZ2h0ID0gaW5wdXQ8c3RyaW5nPignMzBweCcpO1xyXG4gICAgcHVibGljIG1hcmdpblRvcCA9IGlucHV0PHN0cmluZz4oJzBweCcpO1xyXG4gICAgcHVibGljIG1hcmdpblJpZ2h0ID0gaW5wdXQ8c3RyaW5nPignMHB4Jyk7XHJcbiAgICBwdWJsaWMgbWFyZ2luQm90dG9tID0gaW5wdXQ8c3RyaW5nPignMHB4Jyk7XHJcbiAgICBwdWJsaWMgbWFyZ2luTGVmdCA9IGlucHV0PHN0cmluZz4oJzBweCcpO1xyXG4gICAgcHVibGljIHBhdGggPSBpbnB1dDxzdHJpbmcgfCAoc3RyaW5nIHwgbnVtYmVyKVtdPihbXSk7XHJcbiAgICBwdWJsaWMgdG9vbHRpcFBvc2l0aW9uID0gaW5wdXQ8J3RvcCcgfCAncmlnaHQnIHwgJ2JvdHRvbScgfCAnbGVmdCc+KCdsZWZ0Jyk7XHJcblxyXG4gICAgQElucHV0KCkgc2V0IHRvb2x0aXAodmFsdWU6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX3Rvb2x0aXAgPSB2YWx1ZTtcclxuICAgICAgICBpZiAodmFsdWUgJiYgdGhpcy5fdG9vbHRpcEVsZW1lbnQpIHtcclxuICAgICAgICAgICAgdGhpcy5fdG9vbHRpcEVsZW1lbnQuc2V0Q29udGVudCh7ICcudG9vbHRpcC1pbm5lcic6IHRoaXMuX3Rvb2x0aXAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vT3V0cHV0c1xyXG4gICAgQE91dHB1dCgpIG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XHJcblxyXG5cclxuICAgIC8vY29tcHV0ZWRcclxuICAgIHByb3RlY3RlZCBfaXNFbmFibGUgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuICF0aGlzLmlzTG9hZGluZygpICYmICF0aGlzLmlzRGlzYWJsZWQoKSAmJiAhdGhpcy5pc0ludmlzaWJsZSgpO1xyXG4gICAgfSk7XHJcblxyXG5cclxuICAgIC8vY29tcHV0ZWRcclxuICAgIHByb3RlY3RlZCBfaWNvbiA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4ge1xyXG4gICAgICAgIHN3aXRjaCh0aGlzLmljb24oKSkge1xyXG4gICAgICAgICAgICBjYXNlICduZXcnOiByZXR1cm4gJ2ZhLXNvbGlkIGZhLXBsdXMgZmEtbGcnO1xyXG4gICAgICAgICAgICBjYXNlICdzYXZlJzogcmV0dXJuICdmYS1zb2xpZCBmYS1mbG9wcHktZGlzayBmYS1sZyc7XHJcbiAgICAgICAgICAgIGNhc2UgJ2NhbmNlbCc6IHJldHVybiAnZmEtc29saWQgZmEteG1hcmsgZmEtbGcnO1xyXG4gICAgICAgICAgICBjYXNlICdpbXBvcnQnOiByZXR1cm4gJ2ZhLXNvbGlkIGZhLWZpbGUtYXJyb3ctdXAgZmEtbGcnO1xyXG4gICAgICAgICAgICBjYXNlICdleGNlbCc6IHJldHVybiAnYmkgYmktZmlsZXR5cGUteGxzeCBmYS1sZyc7XHJcbiAgICAgICAgICAgIGNhc2UgJ21lbnUnOiByZXR1cm4gJ2ZhLXNvbGlkIGZhLWJhcnMnO1xyXG4gICAgICAgICAgICBjYXNlICdkZWxldGUnOiByZXR1cm4gJ2ZhLXNvbGlkIGZhLXRyYXNoLWNhbic7XHJcbiAgICAgICAgICAgIGNhc2UgJ2VkaXQnOiByZXR1cm4gJ2ZhLXNvbGlkIGZhLXBlbiBmYS1sZyc7XHJcbiAgICAgICAgICAgIGNhc2UgJ2dvJzogcmV0dXJuICdiaSBiaS1ib3gtYXJyb3ctcmlnaHQnO1xyXG4gICAgICAgICAgICBjYXNlICdiYWNrJzogcmV0dXJuICdiaSBiaS1ib3gtYXJyb3ctbGVmdCc7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHJldHVybiAnJztcclxuICAgICAgICB9XHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5TZXRUb29sVGlwKCk7XHJcbiAgICAgICAgdGhpcy5TZXRFdmVudHMoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICBpZiAodGhpcy5fdG9vbHRpcEVsZW1lbnQpIHtcclxuICAgICAgICAgICAgVG9vbHMuU2xlZXAoKS50aGVuKCgpID0+IHRoaXMuX3Rvb2x0aXBFbGVtZW50LmRpc3Bvc2UoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKiogKi9cclxuICAgIHByaXZhdGUgU2V0RXZlbnRzKCk6IHZvaWQge1xyXG4gICAgICAgIFRvb2xzLlNsZWVwKCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChgJHt0aGlzLl9pZH0taW5uZXItYnV0dG9uYCkhIGFzIEhUTUxCdXR0b25FbGVtZW50O1xyXG5cclxuICAgICAgICAgICAgaWYgKFRvb2xzLklzTm90TnVsbCh0aGlzLl9lbGVtZW50KSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuX2lzRW5hYmxlKCkpIHRoaXMuQmx1cigpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgcHJpdmF0ZSBTZXRUb29sVGlwKCk6IHZvaWQge1xyXG4gICAgICAgIFRvb2xzLlNsZWVwKCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGh0bWxFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYCR7dGhpcy5faWR9LWNvbnRhaW5lcmApITtcclxuXHJcbiAgICAgICAgICAgIGlmIChUb29scy5Jc05vdE51bGwoaHRtbEVsZW1lbnQpKSB7XHJcbiAgICAgICAgICAgICAgICBodG1sRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChUb29scy5Jc05vdE51bGwoaHRtbEVsZW1lbnQpICYmIFRvb2xzLklzTm90TnVsbCh0aGlzLl90b29sdGlwRWxlbWVudCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdG9vbHRpcEVsZW1lbnQuaGlkZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuX3Rvb2x0aXBFbGVtZW50ID0gbmV3IFRvb2x0aXAoaHRtbEVsZW1lbnQsIHtcclxuICAgICAgICAgICAgICAgICAgICBodG1sOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiB0aGlzLl90b29sdGlwLFxyXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudDogdGhpcy50b29sdGlwUG9zaXRpb25cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHJvdGVjdGVkIENsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2lzRW5hYmxlKCkpIHtcclxuICAgICAgICAgICAgdGhpcy5vbkNsaWNrLmVtaXQoZXZlbnQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5CbHVyKCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHVibGljIEZvY3VzKHRpbWVvdXQ6IG51bWJlciA9IDApOiB2b2lkIHtcclxuICAgICAgICBUb29scy5TbGVlcCh0aW1lb3V0KS50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX2lzRW5hYmxlKCkpIHRoaXMuX2VsZW1lbnQuZm9jdXMoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqICovXHJcbiAgICBwdWJsaWMgQmx1cigpOiB2b2lkIHtcclxuICAgICAgICBUb29scy5TbGVlcCgpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9lbGVtZW50LmJsdXIoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufSIsIjxkaXYgW25nQ2xhc3NdPVwieyAnY29lci1idXR0b24nOiB0cnVlLCAnaW52aXNpYmxlJzogaXNJbnZpc2libGUoKSB9XCI+XHJcbiAgICA8YSBbaWRdPVwiX2lkICsgJy1jb250YWluZXInXCJcclxuICAgICAgICBbcm91dGVyTGlua109XCIocGF0aCgpLmxlbmd0aCA+IDAgJiYgX2lzRW5hYmxlKCkpID8gcGF0aCgpIDogbnVsbFwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnbG9hZGluZyc6IGlzTG9hZGluZygpLCAnYW5pbWF0ZV9fYW5pbWF0ZWQgYW5pbWF0ZV9fem9vbUluJzogdHJ1ZSwgJ2FuaW1hdGVfX2Rpc2FibGVkJzogIWFuaW1hdGlvbigpIH1cIlxyXG4gICAgICAgIFtuZ1N0eWxlXT1cInsgJ21hcmdpbi10b3AnOiBtYXJnaW5Ub3AoKSwgJ21hcmdpbi1yaWdodCc6IG1hcmdpblJpZ2h0KCksICdtYXJnaW4tYm90dG9tJzogbWFyZ2luQm90dG9tKCksICdtYXJnaW4tbGVmdCc6IG1hcmdpbkxlZnQoKSAgfVwiPlxyXG4gICAgICAgIEBpZih0eXBlKCkgPT0nZmlsbGVkJyB8fCB0eXBlKCkgPT0gJ291dGxpbmUnKSB7XHJcbiAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgW2lkXT1cIl9pZCArICctaW5uZXItYnV0dG9uJ1wiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAncHJpbWFyeS1maWxsZWQnOiAoY29sb3IoKSA9PSAncHJpbWFyeScgJiYgdHlwZSgpID09J2ZpbGxlZCcpLFxyXG4gICAgICAgICAgICAgICAgICAgICdzZWNvbmRhcnktZmlsbGVkJzogKGNvbG9yKCkgPT0gJ3NlY29uZGFyeScgJiYgdHlwZSgpID09J2ZpbGxlZCcpLFxyXG4gICAgICAgICAgICAgICAgICAgICdzdWNjZXNzLWZpbGxlZCc6IChjb2xvcigpID09ICdzdWNjZXNzJyAmJiB0eXBlKCkgPT0nZmlsbGVkJyksXHJcbiAgICAgICAgICAgICAgICAgICAgJ3dhcm5pbmctZmlsbGVkJzogKGNvbG9yKCkgPT0gJ3dhcm5pbmcnICYmIHR5cGUoKSA9PSdmaWxsZWQnKSxcclxuICAgICAgICAgICAgICAgICAgICAnZGFuZ2VyLWZpbGxlZCc6IChjb2xvcigpID09ICdkYW5nZXInICYmIHR5cGUoKSA9PSdmaWxsZWQnKSxcclxuICAgICAgICAgICAgICAgICAgICAnbmF2aWdhdGlvbi1maWxsZWQnOiAoY29sb3IoKSA9PSAnbmF2aWdhdGlvbicgJiYgdHlwZSgpID09J2ZpbGxlZCcpLFxyXG4gICAgICAgICAgICAgICAgICAgICdwcmltYXJ5LW91dGxpbmUnOiAoY29sb3IoKSA9PSAncHJpbWFyeScgJiYgdHlwZSgpID09J291dGxpbmUnKSxcclxuICAgICAgICAgICAgICAgICAgICAnc2Vjb25kYXJ5LW91dGxpbmUnOiAoY29sb3IoKSA9PSAnc2Vjb25kYXJ5JyAmJiB0eXBlKCkgPT0nb3V0bGluZScpLFxyXG4gICAgICAgICAgICAgICAgICAgICdzdWNjZXNzLW91dGxpbmUnOiAoY29sb3IoKSA9PSAnc3VjY2VzcycgJiYgdHlwZSgpID09J291dGxpbmUnKSxcclxuICAgICAgICAgICAgICAgICAgICAnd2FybmluZy1vdXRsaW5lJzogKGNvbG9yKCkgPT0gJ3dhcm5pbmcnICYmIHR5cGUoKSA9PSdvdXRsaW5lJyksXHJcbiAgICAgICAgICAgICAgICAgICAgJ2Rhbmdlci1vdXRsaW5lJzogKGNvbG9yKCkgPT0gJ2RhbmdlcicgJiYgdHlwZSgpID09J291dGxpbmUnKSxcclxuICAgICAgICAgICAgICAgICAgICAnbmF2aWdhdGlvbi1vdXRsaW5lJzogKGNvbG9yKCkgPT0gJ25hdmlnYXRpb24nKSxcclxuICAgICAgICAgICAgICAgICAgICAncmVhZG9ubHknOiBpc0Rpc2FibGVkKCksXHJcbiAgICAgICAgICAgICAgICAgICAgJ2N1cnNvci13YWl0JzogaXNMb2FkaW5nKClcclxuICAgICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICAgICAgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICd3aWR0aCc6IHdpZHRoKCksXHJcbiAgICAgICAgICAgICAgICAgICAgJ21pbi13aWR0aCc6IG1pbldpZHRoKCksXHJcbiAgICAgICAgICAgICAgICAgICAgJ2hlaWdodCc6IGhlaWdodCgpLFxyXG4gICAgICAgICAgICAgICAgICAgICdtaW4taGVpZ2h0JzogbWluSGVpZ2h0KClcclxuICAgICAgICAgICAgICAgIH1cIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2xvdFwiICpuZ0lmPVwiIWlzTG9hZGluZygpOyBlbHNlIGxvYWRpbmdcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIoaWNvblBvc2l0aW9uKCkgPT0gJ2xlZnQnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiX2ljb24oKVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIFtuZ0NsYXNzXT1cInsgJ21zLTInOiAoaWNvblBvc2l0aW9uKCkgPT0gJ2xlZnQnKSwgJ21lLTInOiAoaWNvblBvc2l0aW9uKCkgPT0gJ3JpZ2h0JykgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIihpY29uUG9zaXRpb24oKSA9PSAncmlnaHQnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiX2ljb24oKVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcblxyXG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNsb2FkaW5nPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2xvdCBmYS1mYWRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWUtMlwiPiBMb2FkaW5nIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJzcGlubmVyLWJvcmRlclwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBlbHNlIHtcclxuICAgICAgICAgICAgQGlmICh0eXBlKCkgPT0gJ2ljb24nKSB7XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCJfaWQgKyAnLWlubmVyLWJ1dHRvbidcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdwcmltYXJ5LWZpbGxlZCc6IChjb2xvcigpID09ICdwcmltYXJ5JyksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdzZWNvbmRhcnktZmlsbGVkJzogKGNvbG9yKCkgPT0gJ3NlY29uZGFyeScpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnc3VjY2Vzcy1maWxsZWQnOiAoY29sb3IoKSA9PSAnc3VjY2VzcycpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnd2FybmluZy1maWxsZWQnOiAoY29sb3IoKSA9PSAnd2FybmluZycpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnZGFuZ2VyLWZpbGxlZCc6IChjb2xvcigpID09ICdkYW5nZXInKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ25hdmlnYXRpb24tZmlsbGVkJzogKGNvbG9yKCkgPT0gJ25hdmlnYXRpb24nKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ3JlYWRvbmx5JzogKGlzRGlzYWJsZWQoKSB8fCBpc0xvYWRpbmcoKSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdjdXJzb3Itd2FpdCc6IGlzTG9hZGluZygpXHJcbiAgICAgICAgICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIFtjbGFzc109XCJfaWNvbigpXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIEBlbHNlIGlmICh0eXBlKCkgPT0gJ2ljb24tb3V0bGluZScpIHtcclxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgW2lkXT1cIl9pZCArICctaW5uZXItYnV0dG9uJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIkNsaWNrKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ3ByaW1hcnktb3V0bGluZSc6IChjb2xvcigpID09ICdwcmltYXJ5JyksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdzZWNvbmRhcnktb3V0bGluZSc6IChjb2xvcigpID09ICdzZWNvbmRhcnknKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ3N1Y2Nlc3Mtb3V0bGluZSc6IChjb2xvcigpID09ICdzdWNjZXNzJyksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICd3YXJuaW5nLW91dGxpbmUnOiAoY29sb3IoKSA9PSAnd2FybmluZycpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnZGFuZ2VyLW91dGxpbmUnOiAoY29sb3IoKSA9PSAnZGFuZ2VyJyksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICduYXZpZ2F0aW9uLW91dGxpbmUnOiAoY29sb3IoKSA9PSAnbmF2aWdhdGlvbicpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAncmVhZG9ubHknOiAoaXNEaXNhYmxlZCgpIHx8IGlzTG9hZGluZygpKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ2N1cnNvci13YWl0JzogaXNMb2FkaW5nKClcclxuICAgICAgICAgICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cIl9pY29uKClcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgQGVsc2UgaWYgKHR5cGUoKSA9PSAnaWNvbi1uby1ib3JkZXInKSB7XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCJfaWQgKyAnLWlubmVyLWJ1dHRvbidcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdwcmltYXJ5LW91dGxpbmUnOiAoY29sb3IoKSA9PSAncHJpbWFyeScpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnc2Vjb25kYXJ5LW91dGxpbmUnOiAoY29sb3IoKSA9PSAnc2Vjb25kYXJ5JyksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdzdWNjZXNzLW91dGxpbmUnOiAoY29sb3IoKSA9PSAnc3VjY2VzcycpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnd2FybmluZy1vdXRsaW5lJzogKGNvbG9yKCkgPT0gJ3dhcm5pbmcnKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ2Rhbmdlci1vdXRsaW5lJzogKGNvbG9yKCkgPT0gJ2RhbmdlcicpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnbmF2aWdhdGlvbi1vdXRsaW5lJzogKGNvbG9yKCkgPT0gJ25hdmlnYXRpb24nKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ3JlYWRvbmx5JzogKGlzRGlzYWJsZWQoKSB8fCBpc0xvYWRpbmcoKSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdpY29uLW5vLWJvcmRlcic6IHRydWVcclxuICAgICAgICAgICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cIl9pY29uKClcIj48L2k+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIDwvYT5cclxuPC9kaXY+Il19
@@ -0,0 +1,83 @@
1
+ import { Component, computed, Input, input, output } from '@angular/core';
2
+ import { CONTROL_VALUE, ControlValue, Tools } from 'coer-elements/tools';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "@angular/forms";
6
+ import * as i3 from "@angular/material/checkbox";
7
+ export class CoerCheckbox extends ControlValue {
8
+ constructor() {
9
+ super(...arguments);
10
+ //Variables
11
+ this._value = false;
12
+ this._id = Tools.GetGuid('coer-checkbox');
13
+ this._isLoading = true;
14
+ this.id = input('');
15
+ this.label = input('');
16
+ this.labelPosition = input('after');
17
+ this.isDisabled = input(false);
18
+ this.isLoading = input(false);
19
+ this.isInvisible = input(false);
20
+ this.ignoreModel = input(false);
21
+ //Outputs
22
+ this.onChange = output();
23
+ //computed
24
+ this._isEnable = computed(() => {
25
+ return !this.isLoading() && !this.isDisabled() && !this.isInvisible();
26
+ });
27
+ }
28
+ //Inputs
29
+ set value(value) {
30
+ if (Tools.IsNull(value))
31
+ value = false;
32
+ this.SetValue(value);
33
+ }
34
+ //getter
35
+ get value() {
36
+ return this._value;
37
+ }
38
+ ngAfterViewInit() {
39
+ Tools.Sleep().then(_ => this._isLoading = false);
40
+ }
41
+ //ControlValueAccessor
42
+ SetValue(value) {
43
+ if (Tools.IsNotNull(value)) {
44
+ if (!this.ignoreModel()) {
45
+ this._UpdateValue(value);
46
+ }
47
+ this._value = value;
48
+ if (!this._isLoading && this._isEnable()) {
49
+ this.onChange.emit(value);
50
+ }
51
+ }
52
+ }
53
+ //ControlValueAccessor
54
+ writeValue(value) {
55
+ if (Tools.IsNotNull(value)) {
56
+ this._value = value;
57
+ if (!this._isLoading && this._isEnable()) {
58
+ this.onChange.emit(value);
59
+ }
60
+ }
61
+ }
62
+ /** */
63
+ Check() {
64
+ if (!this._isLoading && this._isEnable()) {
65
+ this.SetValue(true);
66
+ }
67
+ }
68
+ /** */
69
+ Uncheck() {
70
+ if (!this._isLoading && this._isEnable()) {
71
+ this.SetValue(false);
72
+ }
73
+ }
74
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CoerCheckbox, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
75
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.12", type: CoerCheckbox, selector: "coer-checkbox", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: false, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, labelPosition: { classPropertyName: "labelPosition", publicName: "labelPosition", isSignal: true, isRequired: false, transformFunction: null }, isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, isInvisible: { classPropertyName: "isInvisible", publicName: "isInvisible", isSignal: true, isRequired: false, transformFunction: null }, ignoreModel: { classPropertyName: "ignoreModel", publicName: "ignoreModel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onChange: "onChange" }, providers: [CONTROL_VALUE(CoerCheckbox)], usesInheritance: true, ngImport: i0, template: "<div [ngClass]=\"{ 'coer-checkbox': true, 'placeholder-glow': isLoading(), 'invisible': isInvisible() }\">\r\n <div [id]=\"_id\" [ngClass]=\"{ 'placeholder': isLoading() }\">\r\n <mat-checkbox\r\n [ngModel]=\"_value\"\r\n [indeterminate]=\"false\"\r\n [labelPosition]=\"labelPosition()\"\r\n [disabled]=\"!_isEnable()\"\r\n (change)=\"this.SetValue($event.checked)\"\r\n > {{ label() }} </mat-checkbox>\r\n </div>\r\n</div>", styles: ["div.coer-checkbox *{--blue: #0d6efd;--gray: #6c757d;--green: #198754;--yellow: #ffc107;--red: #dc3545;--white: #f5f5f5;--black: #252525;--orange: #fd6031}div.coer-checkbox .text-blue{color:#0d6efd!important}div.coer-checkbox .text-blue-bold{color:#0d6efd!important;font-weight:700!important}div.coer-checkbox .background-blue{background-color:#0d6efd!important}div.coer-checkbox .background-border-blue{background-color:#0d6efd!important;border-color:#0d6efd!important}div.coer-checkbox .border-blue{border-color:#0d6efd!important}div.coer-checkbox .text-gray{color:#6c757d!important}div.coer-checkbox .text-gray-bold{color:#6c757d!important;font-weight:700!important}div.coer-checkbox .background-gray{background-color:#6c757d!important}div.coer-checkbox .background-border-gray{background-color:#6c757d!important;border-color:#6c757d!important}div.coer-checkbox .border-gray{border-color:#6c757d!important}div.coer-checkbox .text-green{color:#198754!important}div.coer-checkbox .text-green-bold{color:#198754!important;font-weight:700!important}div.coer-checkbox .background-green{background-color:#198754!important}div.coer-checkbox .background-border-green{background-color:#198754!important;border-color:#198754!important}div.coer-checkbox .border-green{border-color:#198754!important}div.coer-checkbox .text-yellow{color:#ffc107!important}div.coer-checkbox .text-yellow-bold{color:#ffc107!important;font-weight:700!important}div.coer-checkbox .background-yellow{background-color:#ffc107!important}div.coer-checkbox .background-border-yellow{background-color:#ffc107!important;border-color:#ffc107!important}div.coer-checkbox .border-yellow{border-color:#ffc107!important}div.coer-checkbox .text-red{color:#dc3545!important}div.coer-checkbox .text-red-bold{color:#dc3545!important;font-weight:700!important}div.coer-checkbox .background-red{background-color:#dc3545!important}div.coer-checkbox .background-border-red{background-color:#dc3545!important;border-color:#dc3545!important}div.coer-checkbox .border-red{border-color:#dc3545!important}div.coer-checkbox .text-white{color:#f5f5f5!important}div.coer-checkbox .text-white-bold{color:#f5f5f5!important;font-weight:700!important}div.coer-checkbox .background-white{background-color:#f5f5f5!important}div.coer-checkbox .background-border-white{background-color:#f5f5f5!important;border-color:#f5f5f5!important}div.coer-checkbox .border-white{border-color:#f5f5f5!important}div.coer-checkbox .text-black{color:#252525!important}div.coer-checkbox .text-black-bold{color:#252525!important;font-weight:700!important}div.coer-checkbox .background-black{background-color:#252525!important}div.coer-checkbox .background-border-black{background-color:#252525!important;border-color:#252525!important}div.coer-checkbox .border-black{border-color:#252525!important}div.coer-checkbox .text-orange{color:#fd6031!important}div.coer-checkbox .text-orange-bold{color:#fd6031!important;font-weight:700!important}div.coer-checkbox .background-orange{background-color:#fd6031!important}div.coer-checkbox .background-border-orange{background-color:#fd6031!important;border-color:#fd6031!important}div.coer-checkbox .border-orange{border-color:#fd6031!important}div.coer-checkbox mat-checkbox div.mdc-form-field.mat-internal-form-field div.mdc-checkbox{padding:10px!important}div.coer-checkbox mat-checkbox div.mdc-form-field.mat-internal-form-field div.mdc-checkbox div.mdc-checkbox__background{background-color:#f5f5f5!important;border-radius:5px!important}div.coer-checkbox mat-checkbox div.mdc-form-field.mat-internal-form-field div.mdc-checkbox div.mdc-checkbox__ripple{width:30px!important;height:30px!important;top:5px!important;left:5px!important}div.coer-checkbox mat-checkbox div.mdc-form-field.mat-internal-form-field div.mdc-checkbox div.mat-ripple.mat-mdc-checkbox-ripple.mat-mdc-focus-indicator *{display:none!important}div.coer-checkbox mat-checkbox div.mdc-form-field.mat-internal-form-field label.mdc-label{padding-top:3px!important;padding-left:0!important}div.coer-checkbox mat-checkbox div.mdc-form-field.mat-internal-form-field label.mdc-label::selection{background-color:transparent!important}div.coer-checkbox mat-checkbox.mat-mdc-checkbox-checked div.mdc-form-field.mat-internal-form-field div.mdc-checkbox div.mdc-checkbox__background{background-color:#fd6031!important;border-color:#fd6031!important}coer-grid table tbody tr td.check-box mat-checkbox div.mdc-form-field.mat-internal-form-field div.mdc-checkbox,coer-grid table tbody tr td.check-box mat-checkbox.mat-mdc-checkbox-checked div.mdc-form-field.mat-internal-form-field div.mdc-checkbox{padding:0!important}coer-grid table tbody tr td.check-box mat-checkbox div.mdc-form-field.mat-internal-form-field div.mdc-checkbox div.mat-mdc-checkbox-touch-target,coer-grid table tbody tr td.check-box mat-checkbox.mat-mdc-checkbox-checked div.mdc-form-field.mat-internal-form-field div.mdc-checkbox div.mat-mdc-checkbox-touch-target{top:8px!important;width:39px!important;height:30px!important}coer-grid table tbody tr td.check-box mat-checkbox div.mdc-form-field.mat-internal-form-field div.mdc-checkbox input,coer-grid table tbody tr td.check-box mat-checkbox.mat-mdc-checkbox-checked div.mdc-form-field.mat-internal-form-field div.mdc-checkbox input{display:none!important}coer-grid table tbody tr td.check-box mat-checkbox div.mdc-form-field.mat-internal-form-field div.mdc-checkbox div.mdc-checkbox__ripple,coer-grid table tbody tr td.check-box mat-checkbox.mat-mdc-checkbox-checked div.mdc-form-field.mat-internal-form-field div.mdc-checkbox div.mdc-checkbox__ripple{top:-7px!important;left:-6px!important}coer-grid table tbody tr td.check-box mat-checkbox div.mdc-form-field.mat-internal-form-field div.mdc-checkbox div.mdc-checkbox__background,coer-grid table tbody tr td.check-box mat-checkbox.mat-mdc-checkbox-checked div.mdc-form-field.mat-internal-form-field div.mdc-checkbox div.mdc-checkbox__background{transform:translateY(-1px)!important;position:static!important}coer-grid table tbody tr td.check-box mat-checkbox div.mdc-form-field.mat-internal-form-field label.mdc-label,coer-grid table tbody tr td.check-box mat-checkbox.mat-mdc-checkbox-checked div.mdc-form-field.mat-internal-form-field label.mdc-label{display:none!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }] }); }
76
+ }
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CoerCheckbox, decorators: [{
78
+ type: Component,
79
+ args: [{ selector: 'coer-checkbox', providers: [CONTROL_VALUE(CoerCheckbox)], template: "<div [ngClass]=\"{ 'coer-checkbox': true, 'placeholder-glow': isLoading(), 'invisible': isInvisible() }\">\r\n <div [id]=\"_id\" [ngClass]=\"{ 'placeholder': isLoading() }\">\r\n <mat-checkbox\r\n [ngModel]=\"_value\"\r\n [indeterminate]=\"false\"\r\n [labelPosition]=\"labelPosition()\"\r\n [disabled]=\"!_isEnable()\"\r\n (change)=\"this.SetValue($event.checked)\"\r\n > {{ label() }} </mat-checkbox>\r\n </div>\r\n</div>", styles: ["div.coer-checkbox *{--blue: #0d6efd;--gray: #6c757d;--green: #198754;--yellow: #ffc107;--red: #dc3545;--white: #f5f5f5;--black: #252525;--orange: #fd6031}div.coer-checkbox .text-blue{color:#0d6efd!important}div.coer-checkbox .text-blue-bold{color:#0d6efd!important;font-weight:700!important}div.coer-checkbox .background-blue{background-color:#0d6efd!important}div.coer-checkbox .background-border-blue{background-color:#0d6efd!important;border-color:#0d6efd!important}div.coer-checkbox .border-blue{border-color:#0d6efd!important}div.coer-checkbox .text-gray{color:#6c757d!important}div.coer-checkbox .text-gray-bold{color:#6c757d!important;font-weight:700!important}div.coer-checkbox .background-gray{background-color:#6c757d!important}div.coer-checkbox .background-border-gray{background-color:#6c757d!important;border-color:#6c757d!important}div.coer-checkbox .border-gray{border-color:#6c757d!important}div.coer-checkbox .text-green{color:#198754!important}div.coer-checkbox .text-green-bold{color:#198754!important;font-weight:700!important}div.coer-checkbox .background-green{background-color:#198754!important}div.coer-checkbox .background-border-green{background-color:#198754!important;border-color:#198754!important}div.coer-checkbox .border-green{border-color:#198754!important}div.coer-checkbox .text-yellow{color:#ffc107!important}div.coer-checkbox .text-yellow-bold{color:#ffc107!important;font-weight:700!important}div.coer-checkbox .background-yellow{background-color:#ffc107!important}div.coer-checkbox .background-border-yellow{background-color:#ffc107!important;border-color:#ffc107!important}div.coer-checkbox .border-yellow{border-color:#ffc107!important}div.coer-checkbox .text-red{color:#dc3545!important}div.coer-checkbox .text-red-bold{color:#dc3545!important;font-weight:700!important}div.coer-checkbox .background-red{background-color:#dc3545!important}div.coer-checkbox .background-border-red{background-color:#dc3545!important;border-color:#dc3545!important}div.coer-checkbox .border-red{border-color:#dc3545!important}div.coer-checkbox .text-white{color:#f5f5f5!important}div.coer-checkbox .text-white-bold{color:#f5f5f5!important;font-weight:700!important}div.coer-checkbox .background-white{background-color:#f5f5f5!important}div.coer-checkbox .background-border-white{background-color:#f5f5f5!important;border-color:#f5f5f5!important}div.coer-checkbox .border-white{border-color:#f5f5f5!important}div.coer-checkbox .text-black{color:#252525!important}div.coer-checkbox .text-black-bold{color:#252525!important;font-weight:700!important}div.coer-checkbox .background-black{background-color:#252525!important}div.coer-checkbox .background-border-black{background-color:#252525!important;border-color:#252525!important}div.coer-checkbox .border-black{border-color:#252525!important}div.coer-checkbox .text-orange{color:#fd6031!important}div.coer-checkbox .text-orange-bold{color:#fd6031!important;font-weight:700!important}div.coer-checkbox .background-orange{background-color:#fd6031!important}div.coer-checkbox .background-border-orange{background-color:#fd6031!important;border-color:#fd6031!important}div.coer-checkbox .border-orange{border-color:#fd6031!important}div.coer-checkbox mat-checkbox div.mdc-form-field.mat-internal-form-field div.mdc-checkbox{padding:10px!important}div.coer-checkbox mat-checkbox div.mdc-form-field.mat-internal-form-field div.mdc-checkbox div.mdc-checkbox__background{background-color:#f5f5f5!important;border-radius:5px!important}div.coer-checkbox mat-checkbox div.mdc-form-field.mat-internal-form-field div.mdc-checkbox div.mdc-checkbox__ripple{width:30px!important;height:30px!important;top:5px!important;left:5px!important}div.coer-checkbox mat-checkbox div.mdc-form-field.mat-internal-form-field div.mdc-checkbox div.mat-ripple.mat-mdc-checkbox-ripple.mat-mdc-focus-indicator *{display:none!important}div.coer-checkbox mat-checkbox div.mdc-form-field.mat-internal-form-field label.mdc-label{padding-top:3px!important;padding-left:0!important}div.coer-checkbox mat-checkbox div.mdc-form-field.mat-internal-form-field label.mdc-label::selection{background-color:transparent!important}div.coer-checkbox mat-checkbox.mat-mdc-checkbox-checked div.mdc-form-field.mat-internal-form-field div.mdc-checkbox div.mdc-checkbox__background{background-color:#fd6031!important;border-color:#fd6031!important}coer-grid table tbody tr td.check-box mat-checkbox div.mdc-form-field.mat-internal-form-field div.mdc-checkbox,coer-grid table tbody tr td.check-box mat-checkbox.mat-mdc-checkbox-checked div.mdc-form-field.mat-internal-form-field div.mdc-checkbox{padding:0!important}coer-grid table tbody tr td.check-box mat-checkbox div.mdc-form-field.mat-internal-form-field div.mdc-checkbox div.mat-mdc-checkbox-touch-target,coer-grid table tbody tr td.check-box mat-checkbox.mat-mdc-checkbox-checked div.mdc-form-field.mat-internal-form-field div.mdc-checkbox div.mat-mdc-checkbox-touch-target{top:8px!important;width:39px!important;height:30px!important}coer-grid table tbody tr td.check-box mat-checkbox div.mdc-form-field.mat-internal-form-field div.mdc-checkbox input,coer-grid table tbody tr td.check-box mat-checkbox.mat-mdc-checkbox-checked div.mdc-form-field.mat-internal-form-field div.mdc-checkbox input{display:none!important}coer-grid table tbody tr td.check-box mat-checkbox div.mdc-form-field.mat-internal-form-field div.mdc-checkbox div.mdc-checkbox__ripple,coer-grid table tbody tr td.check-box mat-checkbox.mat-mdc-checkbox-checked div.mdc-form-field.mat-internal-form-field div.mdc-checkbox div.mdc-checkbox__ripple{top:-7px!important;left:-6px!important}coer-grid table tbody tr td.check-box mat-checkbox div.mdc-form-field.mat-internal-form-field div.mdc-checkbox div.mdc-checkbox__background,coer-grid table tbody tr td.check-box mat-checkbox.mat-mdc-checkbox-checked div.mdc-form-field.mat-internal-form-field div.mdc-checkbox div.mdc-checkbox__background{transform:translateY(-1px)!important;position:static!important}coer-grid table tbody tr td.check-box mat-checkbox div.mdc-form-field.mat-internal-form-field label.mdc-label,coer-grid table tbody tr td.check-box mat-checkbox.mat-mdc-checkbox-checked div.mdc-form-field.mat-internal-form-field label.mdc-label{display:none!important}\n"] }]
80
+ }], propDecorators: { value: [{
81
+ type: Input
82
+ }] } });
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lci1jaGVja2JveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2VyLWVsZW1lbnRzL2NvbXBvbmVudHMvbGliL2NvZXItY2hlY2tib3gvY29lci1jaGVja2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2VyLWVsZW1lbnRzL2NvbXBvbmVudHMvbGliL2NvZXItY2hlY2tib3gvY29lci1jaGVja2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBUXpFLE1BQU0sT0FBTyxZQUFhLFNBQVEsWUFBWTtJQU45Qzs7UUFRSSxXQUFXO1FBQ0ssV0FBTSxHQUFZLEtBQUssQ0FBQztRQUM5QixRQUFHLEdBQVcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMvQyxlQUFVLEdBQVksSUFBSSxDQUFDO1FBUTVCLE9BQUUsR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDdkIsVUFBSyxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUMxQixrQkFBYSxHQUFHLEtBQUssQ0FBcUIsT0FBTyxDQUFDLENBQUM7UUFDbkQsZUFBVSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNuQyxjQUFTLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLGdCQUFXLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLGdCQUFXLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRTNDLFNBQVM7UUFDRixhQUFRLEdBQUcsTUFBTSxFQUFXLENBQUM7UUFPcEMsVUFBVTtRQUNBLGNBQVMsR0FBRyxRQUFRLENBQVUsR0FBRyxFQUFFO1lBQ3pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDMUUsQ0FBQyxDQUFDLENBQUM7S0FrRE47SUEzRUcsUUFBUTtJQUNSLElBQWEsS0FBSyxDQUFDLEtBQWlDO1FBQ2hELElBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFBRSxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBZ0IsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFhRCxRQUFRO0lBQ1IsSUFBVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFRRCxlQUFlO1FBQ1gsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUdELHNCQUFzQjtJQUNOLFFBQVEsQ0FBQyxLQUFjO1FBQ25DLElBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3hCLElBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QixDQUFDO1lBRUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFFcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlCLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUdELHNCQUFzQjtJQUNOLFVBQVUsQ0FBQyxLQUFjO1FBQ3JDLElBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBRXBCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO2dCQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM5QixDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFHRCxNQUFNO0lBQ0MsS0FBSztRQUNSLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEIsQ0FBQztJQUNMLENBQUM7SUFHRCxNQUFNO0lBQ0MsT0FBTztRQUNWLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsQ0FBQztJQUNMLENBQUM7K0dBakZRLFlBQVk7bUdBQVosWUFBWSxzbUNBRlYsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUMsaURDUDVDLG9mQVVNOzs0RkRETyxZQUFZO2tCQU54QixTQUFTOytCQUNJLGVBQWUsYUFHZCxDQUFDLGFBQWEsY0FBYyxDQUFDOzhCQVUzQixLQUFLO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBjb21wdXRlZCwgSW5wdXQsIGlucHV0LCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ09OVFJPTF9WQUxVRSwgQ29udHJvbFZhbHVlLCBUb29scyB9IGZyb20gJ2NvZXItZWxlbWVudHMvdG9vbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2NvZXItY2hlY2tib3gnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvZXItY2hlY2tib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmw6ICcuL2NvZXItY2hlY2tib3guY29tcG9uZW50LnNjc3MnLFxyXG4gICAgcHJvdmlkZXJzOiBbQ09OVFJPTF9WQUxVRShDb2VyQ2hlY2tib3gpXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvZXJDaGVja2JveCBleHRlbmRzIENvbnRyb2xWYWx1ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xyXG5cclxuICAgIC8vVmFyaWFibGVzXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgX3ZhbHVlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwcm90ZWN0ZWQgX2lkOiBzdHJpbmcgPSBUb29scy5HZXRHdWlkKCdjb2VyLWNoZWNrYm94Jyk7XHJcbiAgICBwcml2YXRlIF9pc0xvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIC8vSW5wdXRzXHJcbiAgICBASW5wdXQoKSBzZXQgdmFsdWUodmFsdWU6IGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgaWYoVG9vbHMuSXNOdWxsKHZhbHVlKSkgdmFsdWUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLlNldFZhbHVlKHZhbHVlIGFzIGJvb2xlYW4pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBpZCA9IGlucHV0PHN0cmluZz4oJycpO1xyXG4gICAgcHVibGljIGxhYmVsID0gaW5wdXQ8c3RyaW5nPignJyk7XHJcbiAgICBwdWJsaWMgbGFiZWxQb3NpdGlvbiA9IGlucHV0PCdiZWZvcmUnIHwgJ2FmdGVyJz4oJ2FmdGVyJyk7XHJcbiAgICBwdWJsaWMgaXNEaXNhYmxlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICAgIHB1YmxpYyBpc0xvYWRpbmcgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgICBwdWJsaWMgaXNJbnZpc2libGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgICBwdWJsaWMgaWdub3JlTW9kZWwgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblxyXG4gICAgLy9PdXRwdXRzXHJcbiAgICBwdWJsaWMgb25DaGFuZ2UgPSBvdXRwdXQ8Ym9vbGVhbj4oKTtcclxuXHJcbiAgICAvL2dldHRlclxyXG4gICAgcHVibGljIGdldCB2YWx1ZSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy9jb21wdXRlZFxyXG4gICAgcHJvdGVjdGVkIF9pc0VuYWJsZSA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcclxuICAgICAgICByZXR1cm4gIXRoaXMuaXNMb2FkaW5nKCkgJiYgIXRoaXMuaXNEaXNhYmxlZCgpICYmICF0aGlzLmlzSW52aXNpYmxlKCk7XHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICAgIFRvb2xzLlNsZWVwKCkudGhlbihfID0+IHRoaXMuX2lzTG9hZGluZyA9IGZhbHNlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLy9Db250cm9sVmFsdWVBY2Nlc3NvclxyXG4gICAgcHVibGljIG92ZXJyaWRlIFNldFZhbHVlKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgaWYoVG9vbHMuSXNOb3ROdWxsKHZhbHVlKSkge1xyXG4gICAgICAgICAgICBpZighdGhpcy5pZ25vcmVNb2RlbCgpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9VcGRhdGVWYWx1ZSh2YWx1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XHJcblxyXG4gICAgICAgICAgICBpZiAoIXRoaXMuX2lzTG9hZGluZyAmJiB0aGlzLl9pc0VuYWJsZSgpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQodmFsdWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvL0NvbnRyb2xWYWx1ZUFjY2Vzc29yXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIGlmKFRvb2xzLklzTm90TnVsbCh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgICAgIGlmICghdGhpcy5faXNMb2FkaW5nICYmIHRoaXMuX2lzRW5hYmxlKCkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCh2YWx1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHVibGljIENoZWNrKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5faXNMb2FkaW5nICYmIHRoaXMuX2lzRW5hYmxlKCkpIHtcclxuICAgICAgICAgICAgdGhpcy5TZXRWYWx1ZSh0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKiAqL1xyXG4gICAgcHVibGljIFVuY2hlY2soKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9pc0xvYWRpbmcgJiYgdGhpcy5faXNFbmFibGUoKSkge1xyXG4gICAgICAgICAgICB0aGlzLlNldFZhbHVlKGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iLCI8ZGl2IFtuZ0NsYXNzXT1cInsgJ2NvZXItY2hlY2tib3gnOiB0cnVlLCAncGxhY2Vob2xkZXItZ2xvdyc6IGlzTG9hZGluZygpLCAnaW52aXNpYmxlJzogaXNJbnZpc2libGUoKSB9XCI+XHJcbiAgICA8ZGl2IFtpZF09XCJfaWRcIiBbbmdDbGFzc109XCJ7ICdwbGFjZWhvbGRlcic6IGlzTG9hZGluZygpIH1cIj5cclxuICAgICAgICA8bWF0LWNoZWNrYm94XHJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cIl92YWx1ZVwiXHJcbiAgICAgICAgICAgIFtpbmRldGVybWluYXRlXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgW2xhYmVsUG9zaXRpb25dPVwibGFiZWxQb3NpdGlvbigpXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFfaXNFbmFibGUoKVwiXHJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwidGhpcy5TZXRWYWx1ZSgkZXZlbnQuY2hlY2tlZClcIlxyXG4gICAgICAgID4ge3sgbGFiZWwoKSB9fSA8L21hdC1jaGVja2JveD5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=