ng-tailwind 4.1.13 → 4.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/README.md +24 -24
  2. package/animations/ngt-angular-animations.d.ts +5 -5
  3. package/base/ngt-base-ng-model.d.ts +32 -32
  4. package/components/ngt-action/ngt-action.component.d.ts +16 -16
  5. package/components/ngt-action/ngt-action.module.d.ts +10 -10
  6. package/components/ngt-button/ngt-button.component.d.ts +25 -25
  7. package/components/ngt-button/ngt-button.module.d.ts +10 -10
  8. package/components/ngt-checkbox/ngt-checkbox.component.d.ts +47 -46
  9. package/components/ngt-checkbox/ngt-checkbox.module.d.ts +10 -10
  10. package/components/ngt-content/ngt-content.component.d.ts +12 -12
  11. package/components/ngt-content/ngt-content.module.d.ts +8 -8
  12. package/components/ngt-datatable/ngt-datatable.component.d.ts +117 -117
  13. package/components/ngt-datatable/ngt-datatable.module.d.ts +24 -24
  14. package/components/ngt-datatable/ngt-tbody/ngt-tbody.component.d.ts +14 -14
  15. package/components/ngt-datatable/ngt-td/ngt-td.component.d.ts +14 -14
  16. package/components/ngt-datatable/ngt-td-check/ngt-td-check.component.d.ts +29 -29
  17. package/components/ngt-datatable/ngt-th/ngt-th.component.d.ts +51 -51
  18. package/components/ngt-datatable/ngt-th-check/ngt-th-check.component.d.ts +22 -22
  19. package/components/ngt-datatable/ngt-thead/ngt-thead.component.d.ts +13 -13
  20. package/components/ngt-datatable/ngt-tr/ngt-tr.component.d.ts +20 -20
  21. package/components/ngt-date/ngt-date.component.d.ts +79 -79
  22. package/components/ngt-date/ngt-date.module.d.ts +13 -13
  23. package/components/ngt-dropdown/ngt-dropdown-container/ngt-dropdown-container.component.d.ts +8 -8
  24. package/components/ngt-dropdown/ngt-dropdown.component.d.ts +53 -53
  25. package/components/ngt-dropdown/ngt-dropdown.module.d.ts +9 -9
  26. package/components/ngt-dropzone/custom-dropzone-preview/custom-dropzone-preview.component.d.ts +14 -14
  27. package/components/ngt-dropzone/ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component.d.ts +25 -25
  28. package/components/ngt-dropzone/ngt-dropzone-view/ngt-dropzone-view.component.d.ts +35 -35
  29. package/components/ngt-dropzone/ngt-dropzone.component.d.ts +86 -86
  30. package/components/ngt-dropzone/ngt-dropzone.meta.d.ts +27 -27
  31. package/components/ngt-dropzone/ngt-dropzone.module.d.ts +17 -17
  32. package/components/ngt-floating-button/ngt-floating-button.component.d.ts +35 -35
  33. package/components/ngt-floating-button/ngt-floating-button.module.d.ts +10 -10
  34. package/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.component.d.ts +10 -10
  35. package/components/ngt-form/ngt-form.component.d.ts +55 -55
  36. package/components/ngt-form/ngt-form.module.d.ts +9 -9
  37. package/components/ngt-header-nav/ngt-header-nav.component.d.ts +14 -14
  38. package/components/ngt-header-nav/ngt-header-nav.module.d.ts +8 -8
  39. package/components/ngt-helper/ngt-helper.component.d.ts +25 -25
  40. package/components/ngt-helper/ngt-helper.module.d.ts +10 -10
  41. package/components/ngt-input/ngt-input.component.d.ts +109 -109
  42. package/components/ngt-input/ngt-input.module.d.ts +14 -14
  43. package/components/ngt-modal/ngt-modal-body/ngt-modal-body.component.d.ts +5 -5
  44. package/components/ngt-modal/ngt-modal-footer/ngt-modal-footer.component.d.ts +5 -5
  45. package/components/ngt-modal/ngt-modal-header/ngt-modal-header.component.d.ts +15 -15
  46. package/components/ngt-modal/ngt-modal.component.d.ts +25 -25
  47. package/components/ngt-modal/ngt-modal.module.d.ts +11 -11
  48. package/components/ngt-multi-select/ngt-multi-select.component.d.ts +103 -103
  49. package/components/ngt-multi-select/ngt-multi-select.module.d.ts +15 -15
  50. package/components/ngt-pagination/ngt-pagination.component.d.ts +43 -43
  51. package/components/ngt-pagination/ngt-pagination.module.d.ts +12 -12
  52. package/components/ngt-popover/ngt-popover-tooltip/ngt-popover-tooltip.component.d.ts +15 -15
  53. package/components/ngt-popover/ngt-popover.component.d.ts +31 -31
  54. package/components/ngt-popover/ngt-popover.directive.d.ts +27 -27
  55. package/components/ngt-popover/ngt-popover.module.d.ts +11 -11
  56. package/components/ngt-portlet/ngt-portlet-body/ngt-portlet-body.component.d.ts +12 -12
  57. package/components/ngt-portlet/ngt-portlet-footer/ngt-portlet-footer.component.d.ts +12 -12
  58. package/components/ngt-portlet/ngt-portlet-header/ngt-portlet-header.component.d.ts +17 -17
  59. package/components/ngt-portlet/ngt-portlet.component.d.ts +20 -20
  60. package/components/ngt-portlet/ngt-portlet.module.d.ts +13 -13
  61. package/components/ngt-radio-button/ngt-radio-button-container/ngt-radio-button-container.component.d.ts +9 -9
  62. package/components/ngt-radio-button/ngt-radio-button.component.d.ts +35 -35
  63. package/components/ngt-radio-button/ngt-radio-button.module.d.ts +11 -11
  64. package/components/ngt-section/ngt-section.component.d.ts +29 -29
  65. package/components/ngt-section/ngt-section.module.d.ts +11 -11
  66. package/components/ngt-select/ngt-select.component.d.ts +135 -135
  67. package/components/ngt-select/ngt-select.directive.d.ts +20 -20
  68. package/components/ngt-select/ngt-select.module.d.ts +16 -16
  69. package/components/ngt-shining/ngt-shining.component.d.ts +19 -19
  70. package/components/ngt-shining/ngt-shining.module.d.ts +8 -8
  71. package/components/ngt-sidenav/ngt-sidenav.component.d.ts +32 -32
  72. package/components/ngt-sidenav/ngt-sidenav.module.d.ts +8 -8
  73. package/components/ngt-slider/ngt-slider.component.d.ts +34 -34
  74. package/components/ngt-slider/ngt-slider.module.d.ts +9 -9
  75. package/components/ngt-svg/ngt-svg.component.d.ts +13 -13
  76. package/components/ngt-svg/ngt-svg.module.d.ts +10 -10
  77. package/components/ngt-tag/ngt-tag.component.d.ts +13 -13
  78. package/components/ngt-tag/ngt-tag.module.d.ts +9 -9
  79. package/components/ngt-textarea/ngt-textarea.component.d.ts +49 -49
  80. package/components/ngt-textarea/ngt-textarea.module.d.ts +13 -13
  81. package/components/ngt-validation/ngt-validation.component.d.ts +13 -13
  82. package/components/ngt-validation/ngt-validation.module.d.ts +8 -8
  83. package/directives/ngt-stylizable/ngt-stylizable.directive.d.ts +68 -68
  84. package/directives/ngt-stylizable/ngt-stylizable.module.d.ts +8 -8
  85. package/enums/size.enum.d.ts +8 -8
  86. package/esm2020/animations/ngt-angular-animations.mjs +34 -34
  87. package/esm2020/base/ngt-base-ng-model.mjs +90 -90
  88. package/esm2020/components/ngt-action/ngt-action.component.mjs +54 -54
  89. package/esm2020/components/ngt-action/ngt-action.module.mjs +28 -28
  90. package/esm2020/components/ngt-button/ngt-button.component.mjs +115 -115
  91. package/esm2020/components/ngt-button/ngt-button.module.mjs +28 -28
  92. package/esm2020/components/ngt-checkbox/ngt-checkbox.component.mjs +177 -175
  93. package/esm2020/components/ngt-checkbox/ngt-checkbox.module.mjs +28 -28
  94. package/esm2020/components/ngt-content/ngt-content.component.mjs +32 -32
  95. package/esm2020/components/ngt-content/ngt-content.module.mjs +20 -20
  96. package/esm2020/components/ngt-datatable/ngt-datatable.component.mjs +431 -431
  97. package/esm2020/components/ngt-datatable/ngt-datatable.module.mjs +95 -95
  98. package/esm2020/components/ngt-datatable/ngt-tbody/ngt-tbody.component.mjs +57 -57
  99. package/esm2020/components/ngt-datatable/ngt-td/ngt-td.component.mjs +62 -62
  100. package/esm2020/components/ngt-datatable/ngt-td-check/ngt-td-check.component.mjs +113 -113
  101. package/esm2020/components/ngt-datatable/ngt-th/ngt-th.component.mjs +211 -211
  102. package/esm2020/components/ngt-datatable/ngt-th-check/ngt-th-check.component.mjs +91 -91
  103. package/esm2020/components/ngt-datatable/ngt-thead/ngt-thead.component.mjs +55 -55
  104. package/esm2020/components/ngt-datatable/ngt-tr/ngt-tr.component.mjs +86 -86
  105. package/esm2020/components/ngt-date/ngt-date.component.mjs +418 -418
  106. package/esm2020/components/ngt-date/ngt-date.module.mjs +40 -40
  107. package/esm2020/components/ngt-dropdown/ngt-dropdown-container/ngt-dropdown-container.component.mjs +19 -19
  108. package/esm2020/components/ngt-dropdown/ngt-dropdown.component.mjs +204 -204
  109. package/esm2020/components/ngt-dropdown/ngt-dropdown.module.mjs +21 -21
  110. package/esm2020/components/ngt-dropzone/custom-dropzone-preview/custom-dropzone-preview.component.mjs +54 -54
  111. package/esm2020/components/ngt-dropzone/ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component.mjs +66 -66
  112. package/esm2020/components/ngt-dropzone/ngt-dropzone-view/ngt-dropzone-view.component.mjs +94 -94
  113. package/esm2020/components/ngt-dropzone/ngt-dropzone.component.mjs +464 -464
  114. package/esm2020/components/ngt-dropzone/ngt-dropzone.meta.mjs +24 -24
  115. package/esm2020/components/ngt-dropzone/ngt-dropzone.module.mjs +55 -55
  116. package/esm2020/components/ngt-floating-button/ngt-floating-button.component.mjs +119 -119
  117. package/esm2020/components/ngt-floating-button/ngt-floating-button.module.mjs +28 -28
  118. package/esm2020/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.component.mjs +22 -22
  119. package/esm2020/components/ngt-form/ngt-form.component.mjs +193 -193
  120. package/esm2020/components/ngt-form/ngt-form.module.mjs +29 -29
  121. package/esm2020/components/ngt-header-nav/ngt-header-nav.component.mjs +39 -39
  122. package/esm2020/components/ngt-header-nav/ngt-header-nav.module.mjs +20 -20
  123. package/esm2020/components/ngt-helper/ngt-helper.component.mjs +68 -68
  124. package/esm2020/components/ngt-helper/ngt-helper.module.mjs +28 -28
  125. package/esm2020/components/ngt-input/ngt-input.component.mjs +722 -722
  126. package/esm2020/components/ngt-input/ngt-input.module.mjs +47 -47
  127. package/esm2020/components/ngt-modal/ngt-modal-body/ngt-modal-body.component.mjs +11 -11
  128. package/esm2020/components/ngt-modal/ngt-modal-footer/ngt-modal-footer.component.mjs +11 -11
  129. package/esm2020/components/ngt-modal/ngt-modal-header/ngt-modal-header.component.mjs +38 -38
  130. package/esm2020/components/ngt-modal/ngt-modal.component.mjs +102 -102
  131. package/esm2020/components/ngt-modal/ngt-modal.module.mjs +39 -39
  132. package/esm2020/components/ngt-multi-select/ngt-multi-select.component.mjs +446 -446
  133. package/esm2020/components/ngt-multi-select/ngt-multi-select.module.mjs +52 -52
  134. package/esm2020/components/ngt-pagination/ngt-pagination.component.mjs +162 -162
  135. package/esm2020/components/ngt-pagination/ngt-pagination.module.mjs +36 -36
  136. package/esm2020/components/ngt-popover/ngt-popover-tooltip/ngt-popover-tooltip.component.mjs +40 -40
  137. package/esm2020/components/ngt-popover/ngt-popover.component.mjs +85 -85
  138. package/esm2020/components/ngt-popover/ngt-popover.directive.mjs +105 -105
  139. package/esm2020/components/ngt-popover/ngt-popover.module.mjs +36 -36
  140. package/esm2020/components/ngt-portlet/ngt-portlet-body/ngt-portlet-body.component.mjs +34 -34
  141. package/esm2020/components/ngt-portlet/ngt-portlet-footer/ngt-portlet-footer.component.mjs +33 -33
  142. package/esm2020/components/ngt-portlet/ngt-portlet-header/ngt-portlet-header.component.mjs +53 -53
  143. package/esm2020/components/ngt-portlet/ngt-portlet.component.mjs +74 -74
  144. package/esm2020/components/ngt-portlet/ngt-portlet.module.mjs +47 -47
  145. package/esm2020/components/ngt-radio-button/ngt-radio-button-container/ngt-radio-button-container.component.mjs +19 -19
  146. package/esm2020/components/ngt-radio-button/ngt-radio-button.component.mjs +125 -125
  147. package/esm2020/components/ngt-radio-button/ngt-radio-button.module.mjs +29 -29
  148. package/esm2020/components/ngt-section/ngt-section.component.mjs +119 -119
  149. package/esm2020/components/ngt-section/ngt-section.module.mjs +32 -32
  150. package/esm2020/components/ngt-select/ngt-select.component.mjs +552 -552
  151. package/esm2020/components/ngt-select/ngt-select.directive.mjs +36 -36
  152. package/esm2020/components/ngt-select/ngt-select.module.mjs +65 -65
  153. package/esm2020/components/ngt-shining/ngt-shining.component.mjs +40 -40
  154. package/esm2020/components/ngt-shining/ngt-shining.module.mjs +20 -20
  155. package/esm2020/components/ngt-sidenav/ngt-sidenav.component.mjs +132 -132
  156. package/esm2020/components/ngt-sidenav/ngt-sidenav.module.mjs +20 -20
  157. package/esm2020/components/ngt-slider/ngt-slider.component.mjs +99 -99
  158. package/esm2020/components/ngt-slider/ngt-slider.module.mjs +24 -24
  159. package/esm2020/components/ngt-svg/ngt-svg.component.mjs +53 -53
  160. package/esm2020/components/ngt-svg/ngt-svg.module.mjs +28 -28
  161. package/esm2020/components/ngt-tag/ngt-tag.component.mjs +37 -37
  162. package/esm2020/components/ngt-tag/ngt-tag.module.mjs +24 -24
  163. package/esm2020/components/ngt-textarea/ngt-textarea.component.mjs +238 -238
  164. package/esm2020/components/ngt-textarea/ngt-textarea.module.mjs +43 -43
  165. package/esm2020/components/ngt-validation/ngt-validation.component.mjs +26 -26
  166. package/esm2020/components/ngt-validation/ngt-validation.module.mjs +20 -20
  167. package/esm2020/directives/ngt-stylizable/ngt-stylizable.directive.mjs +290 -290
  168. package/esm2020/directives/ngt-stylizable/ngt-stylizable.module.mjs +20 -20
  169. package/esm2020/enums/size.enum.mjs +11 -11
  170. package/esm2020/helpers/enum/enum.mjs +7 -7
  171. package/esm2020/helpers/form/form.mjs +14 -14
  172. package/esm2020/helpers/input-mask/input-mask.helper.mjs +23 -23
  173. package/esm2020/helpers/routing/route.mjs +11 -11
  174. package/esm2020/helpers/uuid.mjs +10 -10
  175. package/esm2020/ng-tailwind.mjs +4 -4
  176. package/esm2020/public-api.mjs +121 -121
  177. package/esm2020/services/http/ngt-attachment-http.service.mjs +3 -3
  178. package/esm2020/services/http/ngt-http-form.service.mjs +3 -3
  179. package/esm2020/services/http/ngt-http-resource.service.mjs +3 -3
  180. package/esm2020/services/http/ngt-http-validation.service.mjs +3 -3
  181. package/esm2020/services/http/ngt-http.service.mjs +3 -3
  182. package/esm2020/services/http/ngt-translate.service.mjs +3 -3
  183. package/esm2020/services/ngt-stylizable/ngt-stylizable.service.mjs +273 -273
  184. package/fesm2015/ng-tailwind.mjs +7792 -7790
  185. package/fesm2015/ng-tailwind.mjs.map +1 -1
  186. package/fesm2020/ng-tailwind.mjs +7655 -7653
  187. package/fesm2020/ng-tailwind.mjs.map +1 -1
  188. package/helpers/enum/enum.d.ts +1 -1
  189. package/helpers/form/form.d.ts +4 -4
  190. package/helpers/input-mask/input-mask.helper.d.ts +17 -17
  191. package/helpers/routing/route.d.ts +2 -2
  192. package/helpers/uuid.d.ts +1 -1
  193. package/index.d.ts +5 -5
  194. package/package.json +1 -1
  195. package/public-api.d.ts +83 -83
  196. package/services/http/ngt-attachment-http.service.d.ts +10 -10
  197. package/services/http/ngt-http-form.service.d.ts +5 -5
  198. package/services/http/ngt-http-resource.service.d.ts +12 -12
  199. package/services/http/ngt-http-validation.service.d.ts +11 -11
  200. package/services/http/ngt-http.service.d.ts +27 -27
  201. package/services/http/ngt-translate.service.d.ts +29 -29
  202. package/services/ngt-stylizable/ngt-stylizable.service.d.ts +96 -96
@@ -1,175 +1,177 @@
1
- import { animate, state, style, transition, trigger } from '@angular/animations';
2
- import { Component, Host, Input, Optional, Self, SkipSelf, ViewChild, } from '@angular/core';
3
- import { ControlContainer, NgForm } from '@angular/forms';
4
- import { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';
5
- import { getEnumFromString } from '../../helpers/enum/enum';
6
- import { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/forms";
9
- import * as i2 from "../../directives/ngt-stylizable/ngt-stylizable.directive";
10
- import * as i3 from "../ngt-form/ngt-form.component";
11
- import * as i4 from "@angular/common";
12
- import * as i5 from "../ngt-shining/ngt-shining.component";
13
- import * as i6 from "../ngt-helper/ngt-helper.component";
14
- export class NgtCheckboxComponent extends NgtBaseNgModel {
15
- constructor(injector, formContainer, renderer, ngtStylizableDirective, ngtFormComponent) {
16
- super();
17
- this.injector = injector;
18
- this.formContainer = formContainer;
19
- this.renderer = renderer;
20
- this.ngtStylizableDirective = ngtStylizableDirective;
21
- this.ngtFormComponent = ngtFormComponent;
22
- this.shining = false;
23
- this.isDisabled = false;
24
- this.isClickDisabled = false;
25
- this.mode = NgtCheckboxMode.DEFAULT;
26
- this.helpTextColor = 'text-green-500';
27
- this.subscriptions = [];
28
- if (this.ngtFormComponent) {
29
- this.shining = this.ngtFormComponent.isShining();
30
- this.subscriptions.push(this.ngtFormComponent.onShiningChange.subscribe((shining) => {
31
- this.shining = shining;
32
- }));
33
- }
34
- if (this.ngtStylizableDirective) {
35
- this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();
36
- }
37
- else {
38
- this.ngtStyle = new NgtStylizableService();
39
- }
40
- this.ngtStyle.load(this.injector, 'NgtCheckbox', {
41
- h: 'h-6',
42
- w: 'w-6',
43
- text: 'text-sm',
44
- fontCase: '',
45
- color: {
46
- bg: 'bg-gray-500',
47
- text: 'text-gray-500',
48
- border: 'border-gray-500',
49
- }
50
- });
51
- }
52
- ngAfterViewInit() {
53
- this.renderer.listen(this.element.nativeElement, 'change', (value) => {
54
- this.onNativeChange(this.element.nativeElement.checked);
55
- });
56
- }
57
- ngOnDestroy() {
58
- this.destroySubscriptions();
59
- }
60
- change(value) {
61
- if (this.hasChangesBetweenModels()) {
62
- this.element.nativeElement.checked = value;
63
- }
64
- }
65
- onNativeChange(value) {
66
- if (this.hasChangesBetweenModels()) {
67
- this.value = value;
68
- }
69
- }
70
- hasChangesBetweenModels() {
71
- return this.element.nativeElement.checked !== this.value;
72
- }
73
- isToggleMode() {
74
- return this.mode === NgtCheckboxMode.TOGGLE;
75
- }
76
- isSideToggleMode() {
77
- return this.mode === NgtCheckboxMode.SIDE_TOGGLE;
78
- }
79
- isDefaultMode() {
80
- return this.mode === NgtCheckboxMode.DEFAULT;
81
- }
82
- isRadioMode() {
83
- return this.mode === NgtCheckboxMode.RADIO;
84
- }
85
- ngOnChanges(changes) {
86
- if (changes.mode) {
87
- this.mode = getEnumFromString(changes.mode.currentValue, NgtCheckboxMode);
88
- }
89
- }
90
- destroySubscriptions() {
91
- this.subscriptions.forEach(subscription => subscription.unsubscribe());
92
- this.subscriptions = [];
93
- }
94
- }
95
- NgtCheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NgtCheckboxComponent, deps: [{ token: i0.Injector }, { token: i1.ControlContainer, host: true, optional: true }, { token: i0.Renderer2 }, { token: i2.NgtStylizableDirective, optional: true, self: true }, { token: i3.NgtFormComponent, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
96
- NgtCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: NgtCheckboxComponent, selector: "ngt-checkbox", inputs: { label: "label", shining: "shining", isDisabled: "isDisabled", isClickDisabled: "isClickDisabled", name: "name", mode: "mode", helpTitle: "helpTitle", helpTextColor: "helpTextColor", helpText: "helpText" }, providers: [
97
- NgtMakeProvider(NgtCheckboxComponent)
98
- ], viewQueries: [{ propertyName: "element", first: true, predicate: ["element"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<label class=\"flex items-center {{ isDisabled ? 'cursor-not-allowed' : 'cursor-pointer' }}\"\n [class.flex-col]='isToggleMode()' style=\"max-width: max-content;\">\n <input type=\"checkbox\" [name]='name' class=\"hidden\" ([ngModel])='value' [disabled]=\"isDisabled || isClickDisabled\"\n #element>\n\n <span *ngIf=\"isToggleMode() && label\" class=\"flex\">\n <span class=\"{{ ngtStyle.compile(['text', 'fontCase']) }} mb-2\">{{ label }}</span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\" class=\"ml-1\">\n {{ helpText }}\n </ngt-helper>\n </span>\n\n <ng-container *ngIf=\"isDefaultMode()\">\n <div style=\"transition: background-color .2s ease-out\"\n class=\"{{ value ? ngtStyle.compile(['color.bg']) : 'bg-white' }} {{ ngtStyle.compile(['h', 'w']) }}\n shadow rounded border border-gray-400 {{ isDisabled ? 'opacity-50' : '' }} {{ !shining ? 'flex justify-center' : 'hidden' }}\">\n <svg class=\"fill-current self-center text-white pointer-events-none\" xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\">\n <path d=\"M0 11l2-2 5 5L18 3l2 2L7 18z\" />\n </svg>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"isRadioMode()\">\n <div style=\"transition: background-color .2s ease-out\"\n class=\"{{ value ? ngtStyle.compile(['color.border', 'color.text']) : 'border-gray-500' }} {{ isDisabled ? 'opacity-50' : '' }}\n shadow w-6 h-6 rounded-full border-2 border-gray-400 {{ !shining ? 'flex justify-center' : 'hidden' }}\">\n <svg *ngIf=\"value\" class=\"fill-current self-center h-3\" xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 29.107 29.107\">\n <path\n d=\"M14.554 0C6.561 0 0 6.562 0 14.552c0 7.996 6.561 14.555 14.554 14.555 7.996 0 14.553-6.559 14.553-14.555C29.106 6.562 22.55 0 14.554 0z\" />\n </svg>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"isToggleMode() || isSideToggleMode()\">\n <div class=\"shadow w-16 h-8 rounded-full border border-gray-400 {{ shining ? 'hidden' : 'flex' }}\"\n [class.justify-end]=\"value\" [class.opacity-50]=\"isDisabled\" style=\"padding: 1px;\">\n <div *ngIf=\"value\"\n class=\"flex text-xs text-white {{ ngtStyle.compile(['color.bg']) }} pointer-events-none rounded-full px-2 py-3\"\n @slideLeftToRight>\n <svg class=\"fill-current self-center\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path d=\"M0 11l2-2 5 5L18 3l2 2L7 18z\" />\n </svg>\n </div>\n\n <div *ngIf=\"!value\" class=\"flex text-xl text-white bg-gray-300 pointer-events-none rounded-full px-1 py-3\"\n @slideRightToLeft>\n <svg class=\"fill-current self-center\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path class=\"heroicon-ui\"\n d=\"M16.24 14.83a1 1 0 0 1-1.41 1.41L12 13.41l-2.83 2.83a1 1 0 0 1-1.41-1.41L10.59 12 7.76 9.17a1 1 0 0 1 1.41-1.41L12 10.59l2.83-2.83a1 1 0 0 1 1.41 1.41L13.41 12l2.83 2.83z\" />\n </svg>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf='label && !shining && !isToggleMode()'>\n <span class=\"{{ ngtStyle.compile(['text', 'fontCase']) }} ml-2\">{{ label }}</span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\" class=\"ml-1\">\n {{ helpText }}\n </ngt-helper>\n </ng-container>\n</label>\n\n<ng-container *ngIf='shining'>\n <div class=\"flex\">\n <ngt-shining class=\"w-16 h-12\"></ngt-shining>\n </div>\n</ng-container>", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.NgtShiningComponent, selector: "ngt-shining", inputs: ["shiningWidth"] }, { kind: "component", type: i6.NgtHelperComponent, selector: "ngt-helper", inputs: ["helpTextColor", "helpText", "helpTitle", "icon", "iconSize", "iconColor", "iconTitle", "tooltipSize", "autoXReverse", "helperReverseYPosition"] }], viewProviders: [
99
- { provide: ControlContainer, useExisting: NgForm }
100
- ], animations: [
101
- trigger('slideLeftToRight', [
102
- state('void', style({ transform: 'translateX(-4px) rotate(45deg)', opacity: 0 })),
103
- transition(':enter', [
104
- animate(200)
105
- ])
106
- ]),
107
- trigger('slideRightToLeft', [
108
- state('void', style({ transform: 'translateX(4px) rotate(45deg)', opacity: 0 })),
109
- transition(':enter', [
110
- animate(200)
111
- ])
112
- ])
113
- ] });
114
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NgtCheckboxComponent, decorators: [{
115
- type: Component,
116
- args: [{ selector: 'ngt-checkbox', providers: [
117
- NgtMakeProvider(NgtCheckboxComponent)
118
- ], viewProviders: [
119
- { provide: ControlContainer, useExisting: NgForm }
120
- ], animations: [
121
- trigger('slideLeftToRight', [
122
- state('void', style({ transform: 'translateX(-4px) rotate(45deg)', opacity: 0 })),
123
- transition(':enter', [
124
- animate(200)
125
- ])
126
- ]),
127
- trigger('slideRightToLeft', [
128
- state('void', style({ transform: 'translateX(4px) rotate(45deg)', opacity: 0 })),
129
- transition(':enter', [
130
- animate(200)
131
- ])
132
- ])
133
- ], template: "<label class=\"flex items-center {{ isDisabled ? 'cursor-not-allowed' : 'cursor-pointer' }}\"\n [class.flex-col]='isToggleMode()' style=\"max-width: max-content;\">\n <input type=\"checkbox\" [name]='name' class=\"hidden\" ([ngModel])='value' [disabled]=\"isDisabled || isClickDisabled\"\n #element>\n\n <span *ngIf=\"isToggleMode() && label\" class=\"flex\">\n <span class=\"{{ ngtStyle.compile(['text', 'fontCase']) }} mb-2\">{{ label }}</span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\" class=\"ml-1\">\n {{ helpText }}\n </ngt-helper>\n </span>\n\n <ng-container *ngIf=\"isDefaultMode()\">\n <div style=\"transition: background-color .2s ease-out\"\n class=\"{{ value ? ngtStyle.compile(['color.bg']) : 'bg-white' }} {{ ngtStyle.compile(['h', 'w']) }}\n shadow rounded border border-gray-400 {{ isDisabled ? 'opacity-50' : '' }} {{ !shining ? 'flex justify-center' : 'hidden' }}\">\n <svg class=\"fill-current self-center text-white pointer-events-none\" xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\">\n <path d=\"M0 11l2-2 5 5L18 3l2 2L7 18z\" />\n </svg>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"isRadioMode()\">\n <div style=\"transition: background-color .2s ease-out\"\n class=\"{{ value ? ngtStyle.compile(['color.border', 'color.text']) : 'border-gray-500' }} {{ isDisabled ? 'opacity-50' : '' }}\n shadow w-6 h-6 rounded-full border-2 border-gray-400 {{ !shining ? 'flex justify-center' : 'hidden' }}\">\n <svg *ngIf=\"value\" class=\"fill-current self-center h-3\" xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 29.107 29.107\">\n <path\n d=\"M14.554 0C6.561 0 0 6.562 0 14.552c0 7.996 6.561 14.555 14.554 14.555 7.996 0 14.553-6.559 14.553-14.555C29.106 6.562 22.55 0 14.554 0z\" />\n </svg>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"isToggleMode() || isSideToggleMode()\">\n <div class=\"shadow w-16 h-8 rounded-full border border-gray-400 {{ shining ? 'hidden' : 'flex' }}\"\n [class.justify-end]=\"value\" [class.opacity-50]=\"isDisabled\" style=\"padding: 1px;\">\n <div *ngIf=\"value\"\n class=\"flex text-xs text-white {{ ngtStyle.compile(['color.bg']) }} pointer-events-none rounded-full px-2 py-3\"\n @slideLeftToRight>\n <svg class=\"fill-current self-center\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n <path d=\"M0 11l2-2 5 5L18 3l2 2L7 18z\" />\n </svg>\n </div>\n\n <div *ngIf=\"!value\" class=\"flex text-xl text-white bg-gray-300 pointer-events-none rounded-full px-1 py-3\"\n @slideRightToLeft>\n <svg class=\"fill-current self-center\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path class=\"heroicon-ui\"\n d=\"M16.24 14.83a1 1 0 0 1-1.41 1.41L12 13.41l-2.83 2.83a1 1 0 0 1-1.41-1.41L10.59 12 7.76 9.17a1 1 0 0 1 1.41-1.41L12 10.59l2.83-2.83a1 1 0 0 1 1.41 1.41L13.41 12l2.83 2.83z\" />\n </svg>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf='label && !shining && !isToggleMode()'>\n <span class=\"{{ ngtStyle.compile(['text', 'fontCase']) }} ml-2\">{{ label }}</span>\n\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\" class=\"ml-1\">\n {{ helpText }}\n </ngt-helper>\n </ng-container>\n</label>\n\n<ng-container *ngIf='shining'>\n <div class=\"flex\">\n <ngt-shining class=\"w-16 h-12\"></ngt-shining>\n </div>\n</ng-container>" }]
134
- }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.ControlContainer, decorators: [{
135
- type: Optional
136
- }, {
137
- type: Host
138
- }] }, { type: i0.Renderer2 }, { type: i2.NgtStylizableDirective, decorators: [{
139
- type: Self
140
- }, {
141
- type: Optional
142
- }] }, { type: i3.NgtFormComponent, decorators: [{
143
- type: Optional
144
- }, {
145
- type: SkipSelf
146
- }] }]; }, propDecorators: { element: [{
147
- type: ViewChild,
148
- args: ['element', { static: true }]
149
- }], label: [{
150
- type: Input
151
- }], shining: [{
152
- type: Input
153
- }], isDisabled: [{
154
- type: Input
155
- }], isClickDisabled: [{
156
- type: Input
157
- }], name: [{
158
- type: Input
159
- }], mode: [{
160
- type: Input
161
- }], helpTitle: [{
162
- type: Input
163
- }], helpTextColor: [{
164
- type: Input
165
- }], helpText: [{
166
- type: Input
167
- }] } });
168
- export var NgtCheckboxMode;
169
- (function (NgtCheckboxMode) {
170
- NgtCheckboxMode["DEFAULT"] = "DEFAULT";
171
- NgtCheckboxMode["TOGGLE"] = "TOGGLE";
172
- NgtCheckboxMode["SIDE_TOGGLE"] = "SIDE_TOGGLE";
173
- NgtCheckboxMode["RADIO"] = "RADIO";
174
- })(NgtCheckboxMode || (NgtCheckboxMode = {}));
175
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LWNoZWNrYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRhaWx3aW5kL3NyYy9jb21wb25lbnRzL25ndC1jaGVja2JveC9uZ3QtY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LWNoZWNrYm94L25ndC1jaGVja2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFFSCxTQUFTLEVBRVQsSUFBSSxFQUVKLEtBQUssRUFFTCxRQUFRLEVBRVIsSUFBSSxFQUVKLFFBQVEsRUFDUixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFL0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0RBQXNELENBQUM7Ozs7Ozs7O0FBNEI1RixNQUFNLE9BQU8sb0JBQXFCLFNBQVEsY0FBYztJQWlCcEQsWUFDWSxRQUFrQixFQUVuQixhQUErQixFQUM5QixRQUFtQixFQUVuQixzQkFBOEMsRUFFOUMsZ0JBQWtDO1FBRTFDLEtBQUssRUFBRSxDQUFDO1FBVEEsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUVuQixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFDOUIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUVuQiwyQkFBc0IsR0FBdEIsc0JBQXNC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Q0FBQTtJQUMzQixrQ0FBZSxDQUFBO0FBQ25CLENBQUMsRUFMVyxlQUFlLEtBQWYsZUFBZSxRQUsxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3QsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9wdGlvbmFsLFxuICAgIFJlbmRlcmVyMixcbiAgICBTZWxmLFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgU2tpcFNlbGYsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBOZ3RCYXNlTmdNb2RlbCwgTmd0TWFrZVByb3ZpZGVyIH0gZnJvbSAnLi4vLi4vYmFzZS9uZ3QtYmFzZS1uZy1tb2RlbCc7XG5pbXBvcnQgeyBOZ3RTdHlsaXphYmxlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9uZ3Qtc3R5bGl6YWJsZS9uZ3Qtc3R5bGl6YWJsZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgZ2V0RW51bUZyb21TdHJpbmcgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2VudW0vZW51bSc7XG5pbXBvcnQgeyBOZ3RTdHlsaXphYmxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25ndC1zdHlsaXphYmxlL25ndC1zdHlsaXphYmxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmd0Rm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL25ndC1mb3JtL25ndC1mb3JtLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd0LWNoZWNrYm94JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbmd0LWNoZWNrYm94LmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgTmd0TWFrZVByb3ZpZGVyKE5ndENoZWNrYm94Q29tcG9uZW50KVxuICAgIF0sXG4gICAgdmlld1Byb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IENvbnRyb2xDb250YWluZXIsIHVzZUV4aXN0aW5nOiBOZ0Zvcm0gfVxuICAgIF0sXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICB0cmlnZ2VyKCdzbGlkZUxlZnRUb1JpZ2h0JywgW1xuICAgICAgICAgICAgc3RhdGUoJ3ZvaWQnLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoLTRweCkgcm90YXRlKDQ1ZGVnKScsIG9wYWNpdHk6IDAgfSkpLFxuICAgICAgICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xuICAgICAgICAgICAgICAgIGFuaW1hdGUoMjAwKVxuICAgICAgICAgICAgXSlcbiAgICAgICAgXSksXG5cbiAgICAgICAgdHJpZ2dlcignc2xpZGVSaWdodFRvTGVmdCcsIFtcbiAgICAgICAgICAgIHN0YXRlKCd2b2lkJywgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDRweCkgcm90YXRlKDQ1ZGVnKScsIG9wYWNpdHk6IDAgfSkpLFxuICAgICAgICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xuICAgICAgICAgICAgICAgIGFuaW1hdGUoMjAwKVxuICAgICAgICAgICAgXSlcbiAgICAgICAgXSlcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIE5ndENoZWNrYm94Q29tcG9uZW50IGV4dGVuZHMgTmd0QmFzZU5nTW9kZWwgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIEBWaWV3Q2hpbGQoJ2VsZW1lbnQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBwdWJsaWMgZWxlbWVudDogRWxlbWVudFJlZjtcblxuICAgIEBJbnB1dCgpIHB1YmxpYyBsYWJlbDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzaGluaW5nOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgcHVibGljIGlzRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBwdWJsaWMgaXNDbGlja0Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgcHVibGljIG5hbWU6IHN0cmluZztcbiAgICBASW5wdXQoKSBwdWJsaWMgbW9kZTogTmd0Q2hlY2tib3hNb2RlID0gTmd0Q2hlY2tib3hNb2RlLkRFRkFVTFQ7XG4gICAgQElucHV0KCkgcHVibGljIGhlbHBUaXRsZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBoZWxwVGV4dENvbG9yOiBzdHJpbmcgPSAndGV4dC1ncmVlbi01MDAnO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBoZWxwVGV4dDogc3RyaW5nO1xuXG4gICAgcHVibGljIG5ndFN0eWxlOiBOZ3RTdHlsaXphYmxlU2VydmljZTtcblxuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uczogQXJyYXk8U3Vic2NyaXB0aW9uPiA9IFtdO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgQE9wdGlvbmFsKCkgQEhvc3QoKVxuICAgICAgICBwdWJsaWMgZm9ybUNvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lcixcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBAU2VsZigpIEBPcHRpb25hbCgpXG4gICAgICAgIHByaXZhdGUgbmd0U3R5bGl6YWJsZURpcmVjdGl2ZTogTmd0U3R5bGl6YWJsZURpcmVjdGl2ZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKClcbiAgICAgICAgcHJpdmF0ZSBuZ3RGb3JtQ29tcG9uZW50OiBOZ3RGb3JtQ29tcG9uZW50LFxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIGlmICh0aGlzLm5ndEZvcm1Db21wb25lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuc2hpbmluZyA9IHRoaXMubmd0Rm9ybUNvbXBvbmVudC5pc1NoaW5pbmcoKTtcblxuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgICAgICAgICAgdGhpcy5uZ3RGb3JtQ29tcG9uZW50Lm9uU2hpbmluZ0NoYW5nZS5zdWJzY3JpYmUoKHNoaW5pbmc6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaGluaW5nID0gc2hpbmluZztcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm5ndFN0eWxpemFibGVEaXJlY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMubmd0U3R5bGUgPSB0aGlzLm5ndFN0eWxpemFibGVEaXJlY3RpdmUuZ2V0Tmd0U3R5bGl6YWJsZVNlcnZpY2UoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubmd0U3R5bGUgPSBuZXcgTmd0U3R5bGl6YWJsZVNlcnZpY2UoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubmd0U3R5bGUubG9hZCh0aGlzLmluamVjdG9yLCAnTmd0Q2hlY2tib3gnLCB7XG4gICAgICAgICAgICBoOiAnaC02JyxcbiAgICAgICAgICAgIHc6ICd3LTYnLFxuICAgICAgICAgICAgdGV4dDogJ3RleHQtc20nLFxuICAgICAgICAgICAgZm9udENhc2U6ICcnLFxuICAgICAgICAgICAgY29sb3I6IHtcbiAgICAgICAgICAgICAgICBiZzogJ2JnLWdyYXktNTAwJyxcbiAgICAgICAgICAgICAgICB0ZXh0OiAndGV4dC1ncmF5LTUwMCcsXG4gICAgICAgICAgICAgICAgYm9yZGVyOiAnYm9yZGVyLWdyYXktNTAwJyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdjaGFuZ2UnLCAodmFsdWUpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25OYXRpdmVDaGFuZ2UodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2hlY2tlZCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95U3Vic2NyaXB0aW9ucygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjaGFuZ2UodmFsdWUpIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzQ2hhbmdlc0JldHdlZW5Nb2RlbHMoKSkge1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2hlY2tlZCA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uTmF0aXZlQ2hhbmdlKHZhbHVlKSB7XG4gICAgICAgIGlmICh0aGlzLmhhc0NoYW5nZXNCZXR3ZWVuTW9kZWxzKCkpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBoYXNDaGFuZ2VzQmV0d2Vlbk1vZGVscygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmNoZWNrZWQgIT09IHRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGlzVG9nZ2xlTW9kZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZSA9PT0gTmd0Q2hlY2tib3hNb2RlLlRPR0dMRTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNTaWRlVG9nZ2xlTW9kZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZSA9PT0gTmd0Q2hlY2tib3hNb2RlLlNJREVfVE9HR0xFO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0RlZmF1bHRNb2RlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlID09PSBOZ3RDaGVja2JveE1vZGUuREVGQVVMVDtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNSYWRpb01vZGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vZGUgPT09IE5ndENoZWNrYm94TW9kZS5SQURJTztcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAoY2hhbmdlcy5tb2RlKSB7XG4gICAgICAgICAgICB0aGlzLm1vZGUgPSBnZXRFbnVtRnJvbVN0cmluZyhjaGFuZ2VzLm1vZGUuY3VycmVudFZhbHVlLCBOZ3RDaGVja2JveE1vZGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZXN0cm95U3Vic2NyaXB0aW9ucygpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3Vic2NyaXB0aW9uID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zID0gW107XG4gICAgfVxufVxuXG5leHBvcnQgZW51bSBOZ3RDaGVja2JveE1vZGUge1xuICAgIERFRkFVTFQgPSAnREVGQVVMVCcsXG4gICAgVE9HR0xFID0gJ1RPR0dMRScsXG4gICAgU0lERV9UT0dHTEUgPSAnU0lERV9UT0dHTEUnLFxuICAgIFJBRElPID0gJ1JBRElPJ1xufVxuIiwiPGxhYmVsIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIge3sgaXNEaXNhYmxlZCA/ICdjdXJzb3Itbm90LWFsbG93ZWQnIDogJ2N1cnNvci1wb2ludGVyJyB9fVwiXG4gICAgW2NsYXNzLmZsZXgtY29sXT0naXNUb2dnbGVNb2RlKCknIHN0eWxlPVwibWF4LXdpZHRoOiBtYXgtY29udGVudDtcIj5cbiAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgW25hbWVdPSduYW1lJyBjbGFzcz1cImhpZGRlblwiIChbbmdNb2RlbF0pPSd2YWx1ZScgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWQgfHwgaXNDbGlja0Rpc2FibGVkXCJcbiAgICAgICAgI2VsZW1lbnQ+XG5cbiAgICA8c3BhbiAqbmdJZj1cImlzVG9nZ2xlTW9kZSgpICYmIGxhYmVsXCIgY2xhc3M9XCJmbGV4XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwie3sgbmd0U3R5bGUuY29tcGlsZShbJ3RleHQnLCAnZm9udENhc2UnXSkgfX0gbWItMlwiPnt7IGxhYmVsIH19PC9zcGFuPlxuXG4gICAgICAgIDxuZ3QtaGVscGVyICpuZ0lmPVwiaGVscFRleHRcIiBbaGVscFRpdGxlXT1cImhlbHBUaXRsZVwiIFtpY29uQ29sb3JdPVwiaGVscFRleHRDb2xvclwiIGNsYXNzPVwibWwtMVwiPlxuICAgICAgICAgICAge3sgaGVscFRleHQgfX1cbiAgICAgICAgPC9uZ3QtaGVscGVyPlxuICAgIDwvc3Bhbj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0RlZmF1bHRNb2RlKClcIj5cbiAgICAgICAgPGRpdiBzdHlsZT1cInRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgLjJzIGVhc2Utb3V0XCJcbiAgICAgICAgICAgIGNsYXNzPVwie3sgdmFsdWUgPyBuZ3RTdHlsZS5jb21waWxlKFsnY29sb3IuYmcnXSkgOiAnYmctd2hpdGUnIH19ICB7eyBuZ3RTdHlsZS5jb21waWxlKFsnaCcsICd3J10pIH19XG4gICAgICAgICAgICAgICAgICAgIHNoYWRvdyByb3VuZGVkIGJvcmRlciBib3JkZXItZ3JheS00MDAge3sgaXNEaXNhYmxlZCA/ICdvcGFjaXR5LTUwJyA6ICcnIH19IHt7ICFzaGluaW5nID8gJ2ZsZXgganVzdGlmeS1jZW50ZXInIDogJ2hpZGRlbicgfX1cIj5cbiAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJmaWxsLWN1cnJlbnQgc2VsZi1jZW50ZXIgdGV4dC13aGl0ZSBwb2ludGVyLWV2ZW50cy1ub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMCAyMFwiPlxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMCAxMWwyLTIgNSA1TDE4IDNsMiAyTDcgMTh6XCIgLz5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1JhZGlvTW9kZSgpXCI+XG4gICAgICAgIDxkaXYgc3R5bGU9XCJ0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4ycyBlYXNlLW91dFwiXG4gICAgICAgICAgICBjbGFzcz1cInt7IHZhbHVlID8gbmd0U3R5bGUuY29tcGlsZShbJ2NvbG9yLmJvcmRlcicsICdjb2xvci50ZXh0J10pIDogJ2JvcmRlci1ncmF5LTUwMCcgfX0ge3sgaXNEaXNhYmxlZCA/ICdvcGFjaXR5LTUwJyA6ICcnIH19XG4gICAgICAgICAgICAgICAgICAgIHNoYWRvdyB3LTYgaC02IHJvdW5kZWQtZnVsbCBib3JkZXItMiBib3JkZXItZ3JheS00MDAge3sgIXNoaW5pbmcgPyAnZmxleCBqdXN0aWZ5LWNlbnRlcicgOiAnaGlkZGVuJyB9fVwiPlxuICAgICAgICAgICAgPHN2ZyAqbmdJZj1cInZhbHVlXCIgY2xhc3M9XCJmaWxsLWN1cnJlbnQgc2VsZi1jZW50ZXIgaC0zXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyOS4xMDcgMjkuMTA3XCI+XG4gICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgZD1cIk0xNC41NTQgMEM2LjU2MSAwIDAgNi41NjIgMCAxNC41NTJjMCA3Ljk5NiA2LjU2MSAxNC41NTUgMTQuNTU0IDE0LjU1NSA3Ljk5NiAwIDE0LjU1My02LjU1OSAxNC41NTMtMTQuNTU1QzI5LjEwNiA2LjU2MiAyMi41NSAwIDE0LjU1NCAwelwiIC8+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNUb2dnbGVNb2RlKCkgfHwgaXNTaWRlVG9nZ2xlTW9kZSgpXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaGFkb3cgdy0xNiBoLTggcm91bmRlZC1mdWxsIGJvcmRlciBib3JkZXItZ3JheS00MDAge3sgc2hpbmluZyA/ICdoaWRkZW4nIDogJ2ZsZXgnIH19XCJcbiAgICAgICAgICAgIFtjbGFzcy5qdXN0aWZ5LWVuZF09XCJ2YWx1ZVwiIFtjbGFzcy5vcGFjaXR5LTUwXT1cImlzRGlzYWJsZWRcIiBzdHlsZT1cInBhZGRpbmc6IDFweDtcIj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IHRleHQteHMgdGV4dC13aGl0ZSB7eyBuZ3RTdHlsZS5jb21waWxlKFsnY29sb3IuYmcnXSkgfX0gcG9pbnRlci1ldmVudHMtbm9uZSByb3VuZGVkLWZ1bGwgcHgtMiBweS0zXCJcbiAgICAgICAgICAgICAgICBAc2xpZGVMZWZ0VG9SaWdodD5cbiAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiZmlsbC1jdXJyZW50IHNlbGYtY2VudGVyXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIj5cbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0wIDExbDItMiA1IDVMMTggM2wyIDJMNyAxOHpcIiAvPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhdmFsdWVcIiBjbGFzcz1cImZsZXggdGV4dC14bCB0ZXh0LXdoaXRlIGJnLWdyYXktMzAwIHBvaW50ZXItZXZlbnRzLW5vbmUgcm91bmRlZC1mdWxsIHB4LTEgcHktM1wiXG4gICAgICAgICAgICAgICAgQHNsaWRlUmlnaHRUb0xlZnQ+XG4gICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImZpbGwtY3VycmVudCBzZWxmLWNlbnRlclwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPVwiaGVyb2ljb24tdWlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNi4yNCAxNC44M2ExIDEgMCAwIDEtMS40MSAxLjQxTDEyIDEzLjQxbC0yLjgzIDIuODNhMSAxIDAgMCAxLTEuNDEtMS40MUwxMC41OSAxMiA3Ljc2IDkuMTdhMSAxIDAgMCAxIDEuNDEtMS40MUwxMiAxMC41OWwyLjgzLTIuODNhMSAxIDAgMCAxIDEuNDEgMS40MUwxMy40MSAxMmwyLjgzIDIuODN6XCIgLz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9J2xhYmVsICYmICFzaGluaW5nICYmICFpc1RvZ2dsZU1vZGUoKSc+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwie3sgbmd0U3R5bGUuY29tcGlsZShbJ3RleHQnLCAnZm9udENhc2UnXSkgfX0gbWwtMlwiPnt7IGxhYmVsIH19PC9zcGFuPlxuXG4gICAgICAgIDxuZ3QtaGVscGVyICpuZ0lmPVwiaGVscFRleHRcIiBbaGVscFRpdGxlXT1cImhlbHBUaXRsZVwiIFtpY29uQ29sb3JdPVwiaGVscFRleHRDb2xvclwiIGNsYXNzPVwibWwtMVwiPlxuICAgICAgICAgICAge3sgaGVscFRleHQgfX1cbiAgICAgICAgPC9uZ3QtaGVscGVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9sYWJlbD5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj0nc2hpbmluZyc+XG4gICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cbiAgICAgICAgPG5ndC1zaGluaW5nIGNsYXNzPVwidy0xNiBoLTEyXCI+PC9uZ3Qtc2hpbmluZz5cbiAgICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPiJdfQ==
1
+ import { animate, state, style, transition, trigger } from '@angular/animations';
2
+ import { Component, Host, Input, Optional, Self, SkipSelf, ViewChild, } from '@angular/core';
3
+ import { ControlContainer, NgForm } from '@angular/forms';
4
+ import { NgtBaseNgModel, NgtMakeProvider } from '../../base/ngt-base-ng-model';
5
+ import { getEnumFromString } from '../../helpers/enum/enum';
6
+ import { NgtStylizableService } from '../../services/ngt-stylizable/ngt-stylizable.service';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/forms";
9
+ import * as i2 from "../../directives/ngt-stylizable/ngt-stylizable.directive";
10
+ import * as i3 from "../ngt-form/ngt-form.component";
11
+ import * as i4 from "@angular/common";
12
+ import * as i5 from "../ngt-shining/ngt-shining.component";
13
+ import * as i6 from "../ngt-helper/ngt-helper.component";
14
+ export class NgtCheckboxComponent extends NgtBaseNgModel {
15
+ constructor(injector, formContainer, renderer, ngtStylizableDirective, ngtFormComponent) {
16
+ super();
17
+ this.injector = injector;
18
+ this.formContainer = formContainer;
19
+ this.renderer = renderer;
20
+ this.ngtStylizableDirective = ngtStylizableDirective;
21
+ this.ngtFormComponent = ngtFormComponent;
22
+ this.shining = false;
23
+ this.isDisabled = false;
24
+ this.isClickDisabled = false;
25
+ this.mode = NgtCheckboxMode.DEFAULT;
26
+ this.helpTextColor = 'text-green-500';
27
+ this.subscriptions = [];
28
+ if (this.ngtFormComponent) {
29
+ this.shining = this.ngtFormComponent.isShining();
30
+ this.subscriptions.push(this.ngtFormComponent.onShiningChange.subscribe((shining) => {
31
+ this.shining = shining;
32
+ }));
33
+ }
34
+ if (this.ngtStylizableDirective) {
35
+ this.ngtStyle = this.ngtStylizableDirective.getNgtStylizableService();
36
+ }
37
+ else {
38
+ this.ngtStyle = new NgtStylizableService();
39
+ }
40
+ this.ngtStyle.load(this.injector, 'NgtCheckbox', {
41
+ h: 'h-6',
42
+ w: 'w-6',
43
+ text: 'text-sm',
44
+ fontCase: '',
45
+ color: {
46
+ bg: 'bg-gray-500',
47
+ text: 'text-gray-500',
48
+ border: 'border-gray-500',
49
+ }
50
+ });
51
+ }
52
+ ngAfterViewInit() {
53
+ this.renderer.listen(this.element.nativeElement, 'change', (value) => {
54
+ this.onNativeChange(this.element.nativeElement.checked);
55
+ });
56
+ }
57
+ ngOnDestroy() {
58
+ this.destroySubscriptions();
59
+ }
60
+ change(value) {
61
+ if (this.hasChangesBetweenModels()) {
62
+ this.element.nativeElement.checked = value;
63
+ }
64
+ }
65
+ onNativeChange(value) {
66
+ if (this.hasChangesBetweenModels()) {
67
+ this.value = value;
68
+ }
69
+ }
70
+ hasChangesBetweenModels() {
71
+ return this.element.nativeElement.checked !== this.value;
72
+ }
73
+ isToggleMode() {
74
+ return this.mode === NgtCheckboxMode.TOGGLE;
75
+ }
76
+ isSideToggleMode() {
77
+ return this.mode === NgtCheckboxMode.SIDE_TOGGLE;
78
+ }
79
+ isDefaultMode() {
80
+ return this.mode === NgtCheckboxMode.DEFAULT;
81
+ }
82
+ isRadioMode() {
83
+ return this.mode === NgtCheckboxMode.RADIO;
84
+ }
85
+ ngOnChanges(changes) {
86
+ if (changes.mode) {
87
+ this.mode = getEnumFromString(changes.mode.currentValue, NgtCheckboxMode);
88
+ }
89
+ }
90
+ destroySubscriptions() {
91
+ this.subscriptions.forEach(subscription => subscription.unsubscribe());
92
+ this.subscriptions = [];
93
+ }
94
+ }
95
+ NgtCheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtCheckboxComponent, deps: [{ token: i0.Injector }, { token: i1.ControlContainer, host: true, optional: true }, { token: i0.Renderer2 }, { token: i2.NgtStylizableDirective, optional: true, self: true }, { token: i3.NgtFormComponent, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
96
+ NgtCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtCheckboxComponent, selector: "ngt-checkbox", inputs: { label: "label", shining: "shining", isDisabled: "isDisabled", isClickDisabled: "isClickDisabled", name: "name", mode: "mode", helpTitle: "helpTitle", helpTextColor: "helpTextColor", helpText: "helpText", helperAutoXReverse: "helperAutoXReverse" }, providers: [
97
+ NgtMakeProvider(NgtCheckboxComponent)
98
+ ], viewQueries: [{ propertyName: "element", first: true, predicate: ["element"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<label class=\"flex items-center {{ isDisabled ? 'cursor-not-allowed' : 'cursor-pointer' }}\"\r\n [class.flex-col]='isToggleMode()' style=\"max-width: max-content;\">\r\n <input type=\"checkbox\" [name]='name' class=\"hidden\" ([ngModel])='value' [disabled]=\"isDisabled || isClickDisabled\"\r\n #element>\r\n\r\n <span *ngIf=\"isToggleMode() && label\" class=\"flex\">\r\n <span class=\"{{ ngtStyle.compile(['text', 'fontCase']) }} mb-2\">{{ label }}</span>\r\n\r\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\"\r\n [autoXReverse]=\"helperAutoXReverse\" class=\"ml-1\">\r\n {{ helpText }}\r\n </ngt-helper>\r\n </span>\r\n\r\n <ng-container *ngIf=\"isDefaultMode()\">\r\n <div style=\"transition: background-color .2s ease-out\"\r\n class=\"{{ value ? ngtStyle.compile(['color.bg']) : 'bg-white' }} {{ ngtStyle.compile(['h', 'w']) }}\r\n shadow rounded border border-gray-400 {{ isDisabled ? 'opacity-50' : '' }} {{ !shining ? 'flex justify-center' : 'hidden' }}\">\r\n <svg class=\"fill-current self-center text-white pointer-events-none\" xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\">\r\n <path d=\"M0 11l2-2 5 5L18 3l2 2L7 18z\" />\r\n </svg>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"isRadioMode()\">\r\n <div style=\"transition: background-color .2s ease-out\"\r\n class=\"{{ value ? ngtStyle.compile(['color.border', 'color.text']) : 'border-gray-500' }} {{ isDisabled ? 'opacity-50' : '' }}\r\n shadow w-6 h-6 rounded-full border-2 border-gray-400 {{ !shining ? 'flex justify-center' : 'hidden' }}\">\r\n <svg *ngIf=\"value\" class=\"fill-current self-center h-3\" xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 29.107 29.107\">\r\n <path\r\n d=\"M14.554 0C6.561 0 0 6.562 0 14.552c0 7.996 6.561 14.555 14.554 14.555 7.996 0 14.553-6.559 14.553-14.555C29.106 6.562 22.55 0 14.554 0z\" />\r\n </svg>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"isToggleMode() || isSideToggleMode()\">\r\n <div class=\"shadow w-16 h-8 rounded-full border border-gray-400 {{ shining ? 'hidden' : 'flex' }}\"\r\n [class.justify-end]=\"value\" [class.opacity-50]=\"isDisabled\" style=\"padding: 1px;\">\r\n <div *ngIf=\"value\"\r\n class=\"flex text-xs text-white {{ ngtStyle.compile(['color.bg']) }} pointer-events-none rounded-full px-2 py-3\"\r\n @slideLeftToRight>\r\n <svg class=\"fill-current self-center\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\r\n <path d=\"M0 11l2-2 5 5L18 3l2 2L7 18z\" />\r\n </svg>\r\n </div>\r\n\r\n <div *ngIf=\"!value\" class=\"flex text-xl text-white bg-gray-300 pointer-events-none rounded-full px-1 py-3\"\r\n @slideRightToLeft>\r\n <svg class=\"fill-current self-center\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\r\n <path class=\"heroicon-ui\"\r\n d=\"M16.24 14.83a1 1 0 0 1-1.41 1.41L12 13.41l-2.83 2.83a1 1 0 0 1-1.41-1.41L10.59 12 7.76 9.17a1 1 0 0 1 1.41-1.41L12 10.59l2.83-2.83a1 1 0 0 1 1.41 1.41L13.41 12l2.83 2.83z\" />\r\n </svg>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf='label && !shining && !isToggleMode()'>\r\n <span class=\"{{ ngtStyle.compile(['text', 'fontCase']) }} ml-2\">{{ label }}</span>\r\n\r\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\"\r\n [autoXReverse]=\"helperAutoXReverse\" class=\"ml-1\">\r\n {{ helpText }}\r\n </ngt-helper>\r\n </ng-container>\r\n</label>\r\n\r\n<ng-container *ngIf='shining'>\r\n <div class=\"flex\">\r\n <ngt-shining class=\"w-16 h-12\"></ngt-shining>\r\n </div>\r\n</ng-container>\r\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.NgtShiningComponent, selector: "ngt-shining", inputs: ["shiningWidth"] }, { kind: "component", type: i6.NgtHelperComponent, selector: "ngt-helper", inputs: ["helpTextColor", "helpText", "helpTitle", "icon", "iconSize", "iconColor", "iconTitle", "tooltipSize", "autoXReverse", "helperReverseYPosition"] }], viewProviders: [
99
+ { provide: ControlContainer, useExisting: NgForm }
100
+ ], animations: [
101
+ trigger('slideLeftToRight', [
102
+ state('void', style({ transform: 'translateX(-4px) rotate(45deg)', opacity: 0 })),
103
+ transition(':enter', [
104
+ animate(200)
105
+ ])
106
+ ]),
107
+ trigger('slideRightToLeft', [
108
+ state('void', style({ transform: 'translateX(4px) rotate(45deg)', opacity: 0 })),
109
+ transition(':enter', [
110
+ animate(200)
111
+ ])
112
+ ])
113
+ ] });
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtCheckboxComponent, decorators: [{
115
+ type: Component,
116
+ args: [{ selector: 'ngt-checkbox', providers: [
117
+ NgtMakeProvider(NgtCheckboxComponent)
118
+ ], viewProviders: [
119
+ { provide: ControlContainer, useExisting: NgForm }
120
+ ], animations: [
121
+ trigger('slideLeftToRight', [
122
+ state('void', style({ transform: 'translateX(-4px) rotate(45deg)', opacity: 0 })),
123
+ transition(':enter', [
124
+ animate(200)
125
+ ])
126
+ ]),
127
+ trigger('slideRightToLeft', [
128
+ state('void', style({ transform: 'translateX(4px) rotate(45deg)', opacity: 0 })),
129
+ transition(':enter', [
130
+ animate(200)
131
+ ])
132
+ ])
133
+ ], template: "<label class=\"flex items-center {{ isDisabled ? 'cursor-not-allowed' : 'cursor-pointer' }}\"\r\n [class.flex-col]='isToggleMode()' style=\"max-width: max-content;\">\r\n <input type=\"checkbox\" [name]='name' class=\"hidden\" ([ngModel])='value' [disabled]=\"isDisabled || isClickDisabled\"\r\n #element>\r\n\r\n <span *ngIf=\"isToggleMode() && label\" class=\"flex\">\r\n <span class=\"{{ ngtStyle.compile(['text', 'fontCase']) }} mb-2\">{{ label }}</span>\r\n\r\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\"\r\n [autoXReverse]=\"helperAutoXReverse\" class=\"ml-1\">\r\n {{ helpText }}\r\n </ngt-helper>\r\n </span>\r\n\r\n <ng-container *ngIf=\"isDefaultMode()\">\r\n <div style=\"transition: background-color .2s ease-out\"\r\n class=\"{{ value ? ngtStyle.compile(['color.bg']) : 'bg-white' }} {{ ngtStyle.compile(['h', 'w']) }}\r\n shadow rounded border border-gray-400 {{ isDisabled ? 'opacity-50' : '' }} {{ !shining ? 'flex justify-center' : 'hidden' }}\">\r\n <svg class=\"fill-current self-center text-white pointer-events-none\" xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\">\r\n <path d=\"M0 11l2-2 5 5L18 3l2 2L7 18z\" />\r\n </svg>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"isRadioMode()\">\r\n <div style=\"transition: background-color .2s ease-out\"\r\n class=\"{{ value ? ngtStyle.compile(['color.border', 'color.text']) : 'border-gray-500' }} {{ isDisabled ? 'opacity-50' : '' }}\r\n shadow w-6 h-6 rounded-full border-2 border-gray-400 {{ !shining ? 'flex justify-center' : 'hidden' }}\">\r\n <svg *ngIf=\"value\" class=\"fill-current self-center h-3\" xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 29.107 29.107\">\r\n <path\r\n d=\"M14.554 0C6.561 0 0 6.562 0 14.552c0 7.996 6.561 14.555 14.554 14.555 7.996 0 14.553-6.559 14.553-14.555C29.106 6.562 22.55 0 14.554 0z\" />\r\n </svg>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"isToggleMode() || isSideToggleMode()\">\r\n <div class=\"shadow w-16 h-8 rounded-full border border-gray-400 {{ shining ? 'hidden' : 'flex' }}\"\r\n [class.justify-end]=\"value\" [class.opacity-50]=\"isDisabled\" style=\"padding: 1px;\">\r\n <div *ngIf=\"value\"\r\n class=\"flex text-xs text-white {{ ngtStyle.compile(['color.bg']) }} pointer-events-none rounded-full px-2 py-3\"\r\n @slideLeftToRight>\r\n <svg class=\"fill-current self-center\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\r\n <path d=\"M0 11l2-2 5 5L18 3l2 2L7 18z\" />\r\n </svg>\r\n </div>\r\n\r\n <div *ngIf=\"!value\" class=\"flex text-xl text-white bg-gray-300 pointer-events-none rounded-full px-1 py-3\"\r\n @slideRightToLeft>\r\n <svg class=\"fill-current self-center\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\r\n <path class=\"heroicon-ui\"\r\n d=\"M16.24 14.83a1 1 0 0 1-1.41 1.41L12 13.41l-2.83 2.83a1 1 0 0 1-1.41-1.41L10.59 12 7.76 9.17a1 1 0 0 1 1.41-1.41L12 10.59l2.83-2.83a1 1 0 0 1 1.41 1.41L13.41 12l2.83 2.83z\" />\r\n </svg>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf='label && !shining && !isToggleMode()'>\r\n <span class=\"{{ ngtStyle.compile(['text', 'fontCase']) }} ml-2\">{{ label }}</span>\r\n\r\n <ngt-helper *ngIf=\"helpText\" [helpTitle]=\"helpTitle\" [iconColor]=\"helpTextColor\"\r\n [autoXReverse]=\"helperAutoXReverse\" class=\"ml-1\">\r\n {{ helpText }}\r\n </ngt-helper>\r\n </ng-container>\r\n</label>\r\n\r\n<ng-container *ngIf='shining'>\r\n <div class=\"flex\">\r\n <ngt-shining class=\"w-16 h-12\"></ngt-shining>\r\n </div>\r\n</ng-container>\r\n" }]
134
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.ControlContainer, decorators: [{
135
+ type: Optional
136
+ }, {
137
+ type: Host
138
+ }] }, { type: i0.Renderer2 }, { type: i2.NgtStylizableDirective, decorators: [{
139
+ type: Self
140
+ }, {
141
+ type: Optional
142
+ }] }, { type: i3.NgtFormComponent, decorators: [{
143
+ type: Optional
144
+ }, {
145
+ type: SkipSelf
146
+ }] }]; }, propDecorators: { element: [{
147
+ type: ViewChild,
148
+ args: ['element', { static: true }]
149
+ }], label: [{
150
+ type: Input
151
+ }], shining: [{
152
+ type: Input
153
+ }], isDisabled: [{
154
+ type: Input
155
+ }], isClickDisabled: [{
156
+ type: Input
157
+ }], name: [{
158
+ type: Input
159
+ }], mode: [{
160
+ type: Input
161
+ }], helpTitle: [{
162
+ type: Input
163
+ }], helpTextColor: [{
164
+ type: Input
165
+ }], helpText: [{
166
+ type: Input
167
+ }], helperAutoXReverse: [{
168
+ type: Input
169
+ }] } });
170
+ export var NgtCheckboxMode;
171
+ (function (NgtCheckboxMode) {
172
+ NgtCheckboxMode["DEFAULT"] = "DEFAULT";
173
+ NgtCheckboxMode["TOGGLE"] = "TOGGLE";
174
+ NgtCheckboxMode["SIDE_TOGGLE"] = "SIDE_TOGGLE";
175
+ NgtCheckboxMode["RADIO"] = "RADIO";
176
+ })(NgtCheckboxMode || (NgtCheckboxMode = {}));
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LWNoZWNrYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRhaWx3aW5kL3NyYy9jb21wb25lbnRzL25ndC1jaGVja2JveC9uZ3QtY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LWNoZWNrYm94L25ndC1jaGVja2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFFSCxTQUFTLEVBRVQsSUFBSSxFQUVKLEtBQUssRUFFTCxRQUFRLEVBRVIsSUFBSSxFQUVKLFFBQVEsRUFDUixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFL0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0RBQXNELENBQUM7Ozs7Ozs7O0FBNEI1RixNQUFNLE9BQU8sb0JBQXFCLFNBQVEsY0FBYztJQWtCcEQsWUFDWSxRQUFrQixFQUVuQixhQUErQixFQUM5QixRQUFtQixFQUVuQixzQkFBOEMsRUFFOUMsZ0JBQWtDO1FBRTFDLEtBQUssRUFBRSxDQUFDO1FBVEEsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUVuQixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFDOUIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUVuQiwyQkFBc0IsR0FBdEIsc0JBQXNC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LG9DQUFpQixDQUFBO0lBQ2pCLDhDQUEyQixDQUFBO0lBQzNCLGtDQUFlLENBQUE7QUFDbkIsQ0FBQyxFQUxXLGVBQWUsS0FBZixlQUFlLFFBSzFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7XHJcbiAgICBBZnRlclZpZXdJbml0LFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEhvc3QsXHJcbiAgICBJbmplY3RvcixcclxuICAgIElucHV0LFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgT3B0aW9uYWwsXHJcbiAgICBSZW5kZXJlcjIsXHJcbiAgICBTZWxmLFxyXG4gICAgU2ltcGxlQ2hhbmdlcyxcclxuICAgIFNraXBTZWxmLFxyXG4gICAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sQ29udGFpbmVyLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgTmd0QmFzZU5nTW9kZWwsIE5ndE1ha2VQcm92aWRlciB9IGZyb20gJy4uLy4uL2Jhc2Uvbmd0LWJhc2UtbmctbW9kZWwnO1xyXG5pbXBvcnQgeyBOZ3RTdHlsaXphYmxlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9uZ3Qtc3R5bGl6YWJsZS9uZ3Qtc3R5bGl6YWJsZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBnZXRFbnVtRnJvbVN0cmluZyB9IGZyb20gJy4uLy4uL2hlbHBlcnMvZW51bS9lbnVtJztcclxuaW1wb3J0IHsgTmd0U3R5bGl6YWJsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9uZ3Qtc3R5bGl6YWJsZS9uZ3Qtc3R5bGl6YWJsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTmd0Rm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL25ndC1mb3JtL25ndC1mb3JtLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnbmd0LWNoZWNrYm94JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9uZ3QtY2hlY2tib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgTmd0TWFrZVByb3ZpZGVyKE5ndENoZWNrYm94Q29tcG9uZW50KVxyXG4gICAgXSxcclxuICAgIHZpZXdQcm92aWRlcnM6IFtcclxuICAgICAgICB7IHByb3ZpZGU6IENvbnRyb2xDb250YWluZXIsIHVzZUV4aXN0aW5nOiBOZ0Zvcm0gfVxyXG4gICAgXSxcclxuICAgIGFuaW1hdGlvbnM6IFtcclxuICAgICAgICB0cmlnZ2VyKCdzbGlkZUxlZnRUb1JpZ2h0JywgW1xyXG4gICAgICAgICAgICBzdGF0ZSgndm9pZCcsIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgtNHB4KSByb3RhdGUoNDVkZWcpJywgb3BhY2l0eTogMCB9KSksXHJcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcclxuICAgICAgICAgICAgICAgIGFuaW1hdGUoMjAwKVxyXG4gICAgICAgICAgICBdKVxyXG4gICAgICAgIF0pLFxyXG5cclxuICAgICAgICB0cmlnZ2VyKCdzbGlkZVJpZ2h0VG9MZWZ0JywgW1xyXG4gICAgICAgICAgICBzdGF0ZSgndm9pZCcsIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCg0cHgpIHJvdGF0ZSg0NWRlZyknLCBvcGFjaXR5OiAwIH0pKSxcclxuICAgICAgICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xyXG4gICAgICAgICAgICAgICAgYW5pbWF0ZSgyMDApXHJcbiAgICAgICAgICAgIF0pXHJcbiAgICAgICAgXSlcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE5ndENoZWNrYm94Q29tcG9uZW50IGV4dGVuZHMgTmd0QmFzZU5nTW9kZWwgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgQFZpZXdDaGlsZCgnZWxlbWVudCcsIHsgc3RhdGljOiB0cnVlIH0pIHB1YmxpYyBlbGVtZW50OiBFbGVtZW50UmVmO1xyXG5cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBsYWJlbDogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgcHVibGljIHNoaW5pbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIHB1YmxpYyBpc0Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgaXNDbGlja0Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgbmFtZTogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgcHVibGljIG1vZGU6IE5ndENoZWNrYm94TW9kZSA9IE5ndENoZWNrYm94TW9kZS5ERUZBVUxUO1xyXG4gICAgQElucHV0KCkgcHVibGljIGhlbHBUaXRsZTogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgcHVibGljIGhlbHBUZXh0Q29sb3I6IHN0cmluZyA9ICd0ZXh0LWdyZWVuLTUwMCc7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgaGVscFRleHQ6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHB1YmxpYyBoZWxwZXJBdXRvWFJldmVyc2U6IGJvb2xlYW47XHJcblxyXG4gICAgcHVibGljIG5ndFN0eWxlOiBOZ3RTdHlsaXphYmxlU2VydmljZTtcclxuXHJcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IEFycmF5PFN1YnNjcmlwdGlvbj4gPSBbXTtcclxuXHJcbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICAgICAgQE9wdGlvbmFsKCkgQEhvc3QoKVxyXG4gICAgICAgIHB1YmxpYyBmb3JtQ29udGFpbmVyOiBDb250cm9sQ29udGFpbmVyLFxyXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgICAgICBAU2VsZigpIEBPcHRpb25hbCgpXHJcbiAgICAgICAgcHJpdmF0ZSBuZ3RTdHlsaXphYmxlRGlyZWN0aXZlOiBOZ3RTdHlsaXphYmxlRGlyZWN0aXZlLFxyXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpXHJcbiAgICAgICAgcHJpdmF0ZSBuZ3RGb3JtQ29tcG9uZW50OiBOZ3RGb3JtQ29tcG9uZW50LFxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMubmd0Rm9ybUNvbXBvbmVudCkge1xyXG4gICAgICAgICAgICB0aGlzLnNoaW5pbmcgPSB0aGlzLm5ndEZvcm1Db21wb25lbnQuaXNTaGluaW5nKCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICAgICAgICAgIHRoaXMubmd0Rm9ybUNvbXBvbmVudC5vblNoaW5pbmdDaGFuZ2Uuc3Vic2NyaWJlKChzaGluaW5nOiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaGluaW5nID0gc2hpbmluZztcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5uZ3RTdHlsaXphYmxlRGlyZWN0aXZlKSB7XHJcbiAgICAgICAgICAgIHRoaXMubmd0U3R5bGUgPSB0aGlzLm5ndFN0eWxpemFibGVEaXJlY3RpdmUuZ2V0Tmd0U3R5bGl6YWJsZVNlcnZpY2UoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLm5ndFN0eWxlID0gbmV3IE5ndFN0eWxpemFibGVTZXJ2aWNlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLm5ndFN0eWxlLmxvYWQodGhpcy5pbmplY3RvciwgJ05ndENoZWNrYm94Jywge1xyXG4gICAgICAgICAgICBoOiAnaC02JyxcclxuICAgICAgICAgICAgdzogJ3ctNicsXHJcbiAgICAgICAgICAgIHRleHQ6ICd0ZXh0LXNtJyxcclxuICAgICAgICAgICAgZm9udENhc2U6ICcnLFxyXG4gICAgICAgICAgICBjb2xvcjoge1xyXG4gICAgICAgICAgICAgICAgYmc6ICdiZy1ncmF5LTUwMCcsXHJcbiAgICAgICAgICAgICAgICB0ZXh0OiAndGV4dC1ncmF5LTUwMCcsXHJcbiAgICAgICAgICAgICAgICBib3JkZXI6ICdib3JkZXItZ3JheS01MDAnLFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2NoYW5nZScsICh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm9uTmF0aXZlQ2hhbmdlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmNoZWNrZWQpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLmRlc3Ryb3lTdWJzY3JpcHRpb25zKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNoYW5nZSh2YWx1ZSkge1xyXG4gICAgICAgIGlmICh0aGlzLmhhc0NoYW5nZXNCZXR3ZWVuTW9kZWxzKCkpIHtcclxuICAgICAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2hlY2tlZCA9IHZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25OYXRpdmVDaGFuZ2UodmFsdWUpIHtcclxuICAgICAgICBpZiAodGhpcy5oYXNDaGFuZ2VzQmV0d2Vlbk1vZGVscygpKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhc0NoYW5nZXNCZXR3ZWVuTW9kZWxzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5jaGVja2VkICE9PSB0aGlzLnZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBpc1RvZ2dsZU1vZGUoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZSA9PT0gTmd0Q2hlY2tib3hNb2RlLlRPR0dMRTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaXNTaWRlVG9nZ2xlTW9kZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5tb2RlID09PSBOZ3RDaGVja2JveE1vZGUuU0lERV9UT0dHTEU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGlzRGVmYXVsdE1vZGUoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZSA9PT0gTmd0Q2hlY2tib3hNb2RlLkRFRkFVTFQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGlzUmFkaW9Nb2RlKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm1vZGUgPT09IE5ndENoZWNrYm94TW9kZS5SQURJTztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIGlmIChjaGFuZ2VzLm1vZGUpIHtcclxuICAgICAgICAgICAgdGhpcy5tb2RlID0gZ2V0RW51bUZyb21TdHJpbmcoY2hhbmdlcy5tb2RlLmN1cnJlbnRWYWx1ZSwgTmd0Q2hlY2tib3hNb2RlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBkZXN0cm95U3Vic2NyaXB0aW9ucygpIHtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWJzY3JpcHRpb24gPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtdO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgZW51bSBOZ3RDaGVja2JveE1vZGUge1xyXG4gICAgREVGQVVMVCA9ICdERUZBVUxUJyxcclxuICAgIFRPR0dMRSA9ICdUT0dHTEUnLFxyXG4gICAgU0lERV9UT0dHTEUgPSAnU0lERV9UT0dHTEUnLFxyXG4gICAgUkFESU8gPSAnUkFESU8nXHJcbn1cclxuIiwiPGxhYmVsIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIge3sgaXNEaXNhYmxlZCA/ICdjdXJzb3Itbm90LWFsbG93ZWQnIDogJ2N1cnNvci1wb2ludGVyJyB9fVwiXHJcbiAgICBbY2xhc3MuZmxleC1jb2xdPSdpc1RvZ2dsZU1vZGUoKScgc3R5bGU9XCJtYXgtd2lkdGg6IG1heC1jb250ZW50O1wiPlxyXG4gICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFtuYW1lXT0nbmFtZScgY2xhc3M9XCJoaWRkZW5cIiAoW25nTW9kZWxdKT0ndmFsdWUnIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkIHx8IGlzQ2xpY2tEaXNhYmxlZFwiXHJcbiAgICAgICAgI2VsZW1lbnQ+XHJcblxyXG4gICAgPHNwYW4gKm5nSWY9XCJpc1RvZ2dsZU1vZGUoKSAmJiBsYWJlbFwiIGNsYXNzPVwiZmxleFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwie3sgbmd0U3R5bGUuY29tcGlsZShbJ3RleHQnLCAnZm9udENhc2UnXSkgfX0gbWItMlwiPnt7IGxhYmVsIH19PC9zcGFuPlxyXG5cclxuICAgICAgICA8bmd0LWhlbHBlciAqbmdJZj1cImhlbHBUZXh0XCIgW2hlbHBUaXRsZV09XCJoZWxwVGl0bGVcIiBbaWNvbkNvbG9yXT1cImhlbHBUZXh0Q29sb3JcIlxyXG4gICAgICAgIFthdXRvWFJldmVyc2VdPVwiaGVscGVyQXV0b1hSZXZlcnNlXCIgY2xhc3M9XCJtbC0xXCI+XHJcbiAgICAgICAgICAgIHt7IGhlbHBUZXh0IH19XHJcbiAgICAgICAgPC9uZ3QtaGVscGVyPlxyXG4gICAgPC9zcGFuPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0RlZmF1bHRNb2RlKClcIj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwidHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAuMnMgZWFzZS1vdXRcIlxyXG4gICAgICAgICAgICBjbGFzcz1cInt7IHZhbHVlID8gbmd0U3R5bGUuY29tcGlsZShbJ2NvbG9yLmJnJ10pIDogJ2JnLXdoaXRlJyB9fSAge3sgbmd0U3R5bGUuY29tcGlsZShbJ2gnLCAndyddKSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIHNoYWRvdyByb3VuZGVkIGJvcmRlciBib3JkZXItZ3JheS00MDAge3sgaXNEaXNhYmxlZCA/ICdvcGFjaXR5LTUwJyA6ICcnIH19IHt7ICFzaGluaW5nID8gJ2ZsZXgganVzdGlmeS1jZW50ZXInIDogJ2hpZGRlbicgfX1cIj5cclxuICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImZpbGwtY3VycmVudCBzZWxmLWNlbnRlciB0ZXh0LXdoaXRlIHBvaW50ZXItZXZlbnRzLW5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIj5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMCAxMWwyLTIgNSA1TDE4IDNsMiAyTDcgMTh6XCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNSYWRpb01vZGUoKVwiPlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJ0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4ycyBlYXNlLW91dFwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwie3sgdmFsdWUgPyBuZ3RTdHlsZS5jb21waWxlKFsnY29sb3IuYm9yZGVyJywgJ2NvbG9yLnRleHQnXSkgOiAnYm9yZGVyLWdyYXktNTAwJyB9fSB7eyBpc0Rpc2FibGVkID8gJ29wYWNpdHktNTAnIDogJycgfX1cclxuICAgICAgICAgICAgICAgICAgICBzaGFkb3cgdy02IGgtNiByb3VuZGVkLWZ1bGwgYm9yZGVyLTIgYm9yZGVyLWdyYXktNDAwIHt7ICFzaGluaW5nID8gJ2ZsZXgganVzdGlmeS1jZW50ZXInIDogJ2hpZGRlbicgfX1cIj5cclxuICAgICAgICAgICAgPHN2ZyAqbmdJZj1cInZhbHVlXCIgY2xhc3M9XCJmaWxsLWN1cnJlbnQgc2VsZi1jZW50ZXIgaC0zXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI5LjEwNyAyOS4xMDdcIj5cclxuICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgZD1cIk0xNC41NTQgMEM2LjU2MSAwIDAgNi41NjIgMCAxNC41NTJjMCA3Ljk5NiA2LjU2MSAxNC41NTUgMTQuNTU0IDE0LjU1NSA3Ljk5NiAwIDE0LjU1My02LjU1OSAxNC41NTMtMTQuNTU1QzI5LjEwNiA2LjU2MiAyMi41NSAwIDE0LjU1NCAwelwiIC8+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzVG9nZ2xlTW9kZSgpIHx8IGlzU2lkZVRvZ2dsZU1vZGUoKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaGFkb3cgdy0xNiBoLTggcm91bmRlZC1mdWxsIGJvcmRlciBib3JkZXItZ3JheS00MDAge3sgc2hpbmluZyA/ICdoaWRkZW4nIDogJ2ZsZXgnIH19XCJcclxuICAgICAgICAgICAgW2NsYXNzLmp1c3RpZnktZW5kXT1cInZhbHVlXCIgW2NsYXNzLm9wYWNpdHktNTBdPVwiaXNEaXNhYmxlZFwiIHN0eWxlPVwicGFkZGluZzogMXB4O1wiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IHRleHQteHMgdGV4dC13aGl0ZSB7eyBuZ3RTdHlsZS5jb21waWxlKFsnY29sb3IuYmcnXSkgfX0gcG9pbnRlci1ldmVudHMtbm9uZSByb3VuZGVkLWZ1bGwgcHgtMiBweS0zXCJcclxuICAgICAgICAgICAgICAgIEBzbGlkZUxlZnRUb1JpZ2h0PlxyXG4gICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImZpbGwtY3VycmVudCBzZWxmLWNlbnRlclwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0wIDExbDItMiA1IDVMMTggM2wyIDJMNyAxOHpcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiF2YWx1ZVwiIGNsYXNzPVwiZmxleCB0ZXh0LXhsIHRleHQtd2hpdGUgYmctZ3JheS0zMDAgcG9pbnRlci1ldmVudHMtbm9uZSByb3VuZGVkLWZ1bGwgcHgtMSBweS0zXCJcclxuICAgICAgICAgICAgICAgIEBzbGlkZVJpZ2h0VG9MZWZ0PlxyXG4gICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImZpbGwtY3VycmVudCBzZWxmLWNlbnRlclwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9XCJoZXJvaWNvbi11aVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTYuMjQgMTQuODNhMSAxIDAgMCAxLTEuNDEgMS40MUwxMiAxMy40MWwtMi44MyAyLjgzYTEgMSAwIDAgMS0xLjQxLTEuNDFMMTAuNTkgMTIgNy43NiA5LjE3YTEgMSAwIDAgMSAxLjQxLTEuNDFMMTIgMTAuNTlsMi44My0yLjgzYTEgMSAwIDAgMSAxLjQxIDEuNDFMMTMuNDEgMTJsMi44MyAyLjgzelwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPSdsYWJlbCAmJiAhc2hpbmluZyAmJiAhaXNUb2dnbGVNb2RlKCknPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwie3sgbmd0U3R5bGUuY29tcGlsZShbJ3RleHQnLCAnZm9udENhc2UnXSkgfX0gbWwtMlwiPnt7IGxhYmVsIH19PC9zcGFuPlxyXG5cclxuICAgICAgICA8bmd0LWhlbHBlciAqbmdJZj1cImhlbHBUZXh0XCIgW2hlbHBUaXRsZV09XCJoZWxwVGl0bGVcIiBbaWNvbkNvbG9yXT1cImhlbHBUZXh0Q29sb3JcIlxyXG4gICAgICAgIFthdXRvWFJldmVyc2VdPVwiaGVscGVyQXV0b1hSZXZlcnNlXCIgY2xhc3M9XCJtbC0xXCI+XHJcbiAgICAgICAgICAgIHt7IGhlbHBUZXh0IH19XHJcbiAgICAgICAgPC9uZ3QtaGVscGVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbjwvbGFiZWw+XHJcblxyXG48bmctY29udGFpbmVyICpuZ0lmPSdzaGluaW5nJz5cclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4XCI+XHJcbiAgICAgICAgPG5ndC1zaGluaW5nIGNsYXNzPVwidy0xNiBoLTEyXCI+PC9uZ3Qtc2hpbmluZz5cclxuICAgIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuIl19
@@ -1,28 +1,28 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
- import { NgtHelperModule } from '../ngt-helper/ngt-helper.module';
4
- import { NgtShiningModule } from '../ngt-shining/ngt-shining.module';
5
- import { NgtCheckboxComponent } from './ngt-checkbox.component';
6
- import * as i0 from "@angular/core";
7
- export class NgtCheckboxModule {
8
- }
9
- NgtCheckboxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NgtCheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
- NgtCheckboxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: NgtCheckboxModule, declarations: [NgtCheckboxComponent], imports: [CommonModule,
11
- NgtShiningModule,
12
- NgtHelperModule], exports: [NgtCheckboxComponent] });
13
- NgtCheckboxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NgtCheckboxModule, imports: [CommonModule,
14
- NgtShiningModule,
15
- NgtHelperModule] });
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: NgtCheckboxModule, decorators: [{
17
- type: NgModule,
18
- args: [{
19
- declarations: [NgtCheckboxComponent],
20
- exports: [NgtCheckboxComponent],
21
- imports: [
22
- CommonModule,
23
- NgtShiningModule,
24
- NgtHelperModule,
25
- ]
26
- }]
27
- }] });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LWNoZWNrYm94Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRhaWx3aW5kL3NyYy9jb21wb25lbnRzL25ndC1jaGVja2JveC9uZ3QtY2hlY2tib3gubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFXaEUsTUFBTSxPQUFPLGlCQUFpQjs7OEdBQWpCLGlCQUFpQjsrR0FBakIsaUJBQWlCLGlCQVJYLG9CQUFvQixhQUcvQixZQUFZO1FBQ1osZ0JBQWdCO1FBQ2hCLGVBQWUsYUFKVCxvQkFBb0I7K0dBT3JCLGlCQUFpQixZQUx0QixZQUFZO1FBQ1osZ0JBQWdCO1FBQ2hCLGVBQWU7MkZBR1YsaUJBQWlCO2tCQVQ3QixRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRSxDQUFDLG9CQUFvQixDQUFDO29CQUNwQyxPQUFPLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztvQkFDL0IsT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixlQUFlO3FCQUNsQjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBOZ3RIZWxwZXJNb2R1bGUgfSBmcm9tICcuLi9uZ3QtaGVscGVyL25ndC1oZWxwZXIubW9kdWxlJztcbmltcG9ydCB7IE5ndFNoaW5pbmdNb2R1bGUgfSBmcm9tICcuLi9uZ3Qtc2hpbmluZy9uZ3Qtc2hpbmluZy5tb2R1bGUnO1xuaW1wb3J0IHsgTmd0Q2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL25ndC1jaGVja2JveC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW05ndENoZWNrYm94Q29tcG9uZW50XSxcbiAgICBleHBvcnRzOiBbTmd0Q2hlY2tib3hDb21wb25lbnRdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBOZ3RTaGluaW5nTW9kdWxlLFxuICAgICAgICBOZ3RIZWxwZXJNb2R1bGUsXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBOZ3RDaGVja2JveE1vZHVsZSB7IH1cbiJdfQ==
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { NgtHelperModule } from '../ngt-helper/ngt-helper.module';
4
+ import { NgtShiningModule } from '../ngt-shining/ngt-shining.module';
5
+ import { NgtCheckboxComponent } from './ngt-checkbox.component';
6
+ import * as i0 from "@angular/core";
7
+ export class NgtCheckboxModule {
8
+ }
9
+ NgtCheckboxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtCheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ NgtCheckboxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.8", ngImport: i0, type: NgtCheckboxModule, declarations: [NgtCheckboxComponent], imports: [CommonModule,
11
+ NgtShiningModule,
12
+ NgtHelperModule], exports: [NgtCheckboxComponent] });
13
+ NgtCheckboxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtCheckboxModule, imports: [CommonModule,
14
+ NgtShiningModule,
15
+ NgtHelperModule] });
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtCheckboxModule, decorators: [{
17
+ type: NgModule,
18
+ args: [{
19
+ declarations: [NgtCheckboxComponent],
20
+ exports: [NgtCheckboxComponent],
21
+ imports: [
22
+ CommonModule,
23
+ NgtShiningModule,
24
+ NgtHelperModule,
25
+ ]
26
+ }]
27
+ }] });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LWNoZWNrYm94Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRhaWx3aW5kL3NyYy9jb21wb25lbnRzL25ndC1jaGVja2JveC9uZ3QtY2hlY2tib3gubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFXaEUsTUFBTSxPQUFPLGlCQUFpQjs7OEdBQWpCLGlCQUFpQjsrR0FBakIsaUJBQWlCLGlCQVJYLG9CQUFvQixhQUcvQixZQUFZO1FBQ1osZ0JBQWdCO1FBQ2hCLGVBQWUsYUFKVCxvQkFBb0I7K0dBT3JCLGlCQUFpQixZQUx0QixZQUFZO1FBQ1osZ0JBQWdCO1FBQ2hCLGVBQWU7MkZBR1YsaUJBQWlCO2tCQVQ3QixRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRSxDQUFDLG9CQUFvQixDQUFDO29CQUNwQyxPQUFPLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztvQkFDL0IsT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixlQUFlO3FCQUNsQjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBOZ3RIZWxwZXJNb2R1bGUgfSBmcm9tICcuLi9uZ3QtaGVscGVyL25ndC1oZWxwZXIubW9kdWxlJztcclxuaW1wb3J0IHsgTmd0U2hpbmluZ01vZHVsZSB9IGZyb20gJy4uL25ndC1zaGluaW5nL25ndC1zaGluaW5nLm1vZHVsZSc7XHJcbmltcG9ydCB7IE5ndENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9uZ3QtY2hlY2tib3guY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBkZWNsYXJhdGlvbnM6IFtOZ3RDaGVja2JveENvbXBvbmVudF0sXHJcbiAgICBleHBvcnRzOiBbTmd0Q2hlY2tib3hDb21wb25lbnRdLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZSxcclxuICAgICAgICBOZ3RTaGluaW5nTW9kdWxlLFxyXG4gICAgICAgIE5ndEhlbHBlck1vZHVsZSxcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE5ndENoZWNrYm94TW9kdWxlIHsgfVxyXG4iXX0=