iss-ctrl 0.0.21 → 0.0.23

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 (141) hide show
  1. package/README.md +33 -0
  2. package/fesm2022/iss-ctrl-attachment.viewer-DVUL39xd.mjs +110 -0
  3. package/fesm2022/iss-ctrl-attachment.viewer-DVUL39xd.mjs.map +1 -0
  4. package/fesm2022/iss-ctrl-base.mjs +682 -0
  5. package/fesm2022/iss-ctrl-base.mjs.map +1 -0
  6. package/fesm2022/iss-ctrl-checkbox.field-CILXADas.mjs +88 -0
  7. package/fesm2022/iss-ctrl-checkbox.field-CILXADas.mjs.map +1 -0
  8. package/fesm2022/iss-ctrl-checkbox.mjs +146 -0
  9. package/fesm2022/iss-ctrl-checkbox.mjs.map +1 -0
  10. package/fesm2022/iss-ctrl-checkbox.viewer-C3SEUszR.mjs +31 -0
  11. package/fesm2022/iss-ctrl-checkbox.viewer-C3SEUszR.mjs.map +1 -0
  12. package/fesm2022/iss-ctrl-chips.field-445Ds3V7.mjs +76 -0
  13. package/fesm2022/iss-ctrl-chips.field-445Ds3V7.mjs.map +1 -0
  14. package/fesm2022/iss-ctrl-chips.mjs +168 -0
  15. package/fesm2022/iss-ctrl-chips.mjs.map +1 -0
  16. package/fesm2022/iss-ctrl-chips.viewer-BcKT2hcq.mjs +38 -0
  17. package/fesm2022/iss-ctrl-chips.viewer-BcKT2hcq.mjs.map +1 -0
  18. package/fesm2022/iss-ctrl-date-picker.field-Djhh1FsR.mjs +98 -0
  19. package/fesm2022/iss-ctrl-date-picker.field-Djhh1FsR.mjs.map +1 -0
  20. package/fesm2022/iss-ctrl-date-picker.mjs +200 -0
  21. package/fesm2022/iss-ctrl-date-picker.mjs.map +1 -0
  22. package/fesm2022/iss-ctrl-date-picker.viewer-Dsmsf91t.mjs +40 -0
  23. package/fesm2022/iss-ctrl-date-picker.viewer-Dsmsf91t.mjs.map +1 -0
  24. package/fesm2022/iss-ctrl-date-range-picker.field-Dv636SAm.mjs +97 -0
  25. package/fesm2022/iss-ctrl-date-range-picker.field-Dv636SAm.mjs.map +1 -0
  26. package/fesm2022/iss-ctrl-date-range-picker.mjs +307 -0
  27. package/fesm2022/iss-ctrl-date-range-picker.mjs.map +1 -0
  28. package/fesm2022/iss-ctrl-date-range-picker.viewer-tmTQGPFh.mjs +41 -0
  29. package/fesm2022/iss-ctrl-date-range-picker.viewer-tmTQGPFh.mjs.map +1 -0
  30. package/fesm2022/iss-ctrl-datetime-picker.field-DldY8vke.mjs +98 -0
  31. package/fesm2022/iss-ctrl-datetime-picker.field-DldY8vke.mjs.map +1 -0
  32. package/fesm2022/iss-ctrl-datetime-picker.mjs +226 -0
  33. package/fesm2022/iss-ctrl-datetime-picker.mjs.map +1 -0
  34. package/fesm2022/iss-ctrl-datetime-picker.viewer-BeUyEBKo.mjs +42 -0
  35. package/fesm2022/iss-ctrl-datetime-picker.viewer-BeUyEBKo.mjs.map +1 -0
  36. package/fesm2022/iss-ctrl-dropdownlist.field-DikBAtc_.mjs +87 -0
  37. package/fesm2022/iss-ctrl-dropdownlist.field-DikBAtc_.mjs.map +1 -0
  38. package/fesm2022/iss-ctrl-dropdownlist.mjs +398 -0
  39. package/fesm2022/iss-ctrl-dropdownlist.mjs.map +1 -0
  40. package/fesm2022/iss-ctrl-dropdownlist.viewer-OWJxDpr8.mjs +30 -0
  41. package/fesm2022/iss-ctrl-dropdownlist.viewer-OWJxDpr8.mjs.map +1 -0
  42. package/fesm2022/iss-ctrl-file-picker.field-BMZaJxvj.mjs +210 -0
  43. package/fesm2022/iss-ctrl-file-picker.field-BMZaJxvj.mjs.map +1 -0
  44. package/fesm2022/iss-ctrl-file-picker.mjs +274 -0
  45. package/fesm2022/iss-ctrl-file-picker.mjs.map +1 -0
  46. package/fesm2022/iss-ctrl-input.field-BiwBFYx3.mjs +104 -0
  47. package/fesm2022/iss-ctrl-input.field-BiwBFYx3.mjs.map +1 -0
  48. package/fesm2022/iss-ctrl-input.mjs +204 -0
  49. package/fesm2022/iss-ctrl-input.mjs.map +1 -0
  50. package/fesm2022/iss-ctrl-input.viewer-BOZnW0_e.mjs +22 -0
  51. package/fesm2022/iss-ctrl-input.viewer-BOZnW0_e.mjs.map +1 -0
  52. package/fesm2022/iss-ctrl-iss-ctrl-BG-QWWdq.mjs +1770 -0
  53. package/fesm2022/iss-ctrl-iss-ctrl-BG-QWWdq.mjs.map +1 -0
  54. package/fesm2022/{iss-ctrl-load-event-bOt6IlIo.mjs → iss-ctrl-load-event-T4L3k9XO.mjs} +4 -3
  55. package/fesm2022/iss-ctrl-load-event-T4L3k9XO.mjs.map +1 -0
  56. package/fesm2022/{iss-ctrl-load-options-event-CxyAyNMe.mjs → iss-ctrl-load-options-event-tG258cbP.mjs} +3 -3
  57. package/fesm2022/{iss-ctrl-load-options-event-CxyAyNMe.mjs.map → iss-ctrl-load-options-event-tG258cbP.mjs.map} +1 -1
  58. package/fesm2022/{iss-ctrl-load-value-event-DJKJ5S3h.mjs → iss-ctrl-load-value-event--7zt90Dl.mjs} +3 -3
  59. package/fesm2022/{iss-ctrl-load-value-event-DJKJ5S3h.mjs.map → iss-ctrl-load-value-event--7zt90Dl.mjs.map} +1 -1
  60. package/fesm2022/iss-ctrl-mobile.field-DLccnWKX.mjs +77 -0
  61. package/fesm2022/iss-ctrl-mobile.field-DLccnWKX.mjs.map +1 -0
  62. package/fesm2022/iss-ctrl-mobile.mjs +2465 -0
  63. package/fesm2022/iss-ctrl-mobile.mjs.map +1 -0
  64. package/fesm2022/iss-ctrl-mobile.viewer-DQgxAcR-.mjs +22 -0
  65. package/fesm2022/iss-ctrl-mobile.viewer-DQgxAcR-.mjs.map +1 -0
  66. package/fesm2022/{iss-ctrl-note.field-B_Lbp28X.mjs → iss-ctrl-note.field-CT1wVmfF.mjs} +2 -2
  67. package/fesm2022/{iss-ctrl-note.field-B_Lbp28X.mjs.map → iss-ctrl-note.field-CT1wVmfF.mjs.map} +1 -1
  68. package/fesm2022/iss-ctrl-plate.field-CQQY8rnE.mjs +92 -0
  69. package/fesm2022/iss-ctrl-plate.field-CQQY8rnE.mjs.map +1 -0
  70. package/fesm2022/iss-ctrl-plate.mjs +493 -0
  71. package/fesm2022/iss-ctrl-plate.mjs.map +1 -0
  72. package/fesm2022/iss-ctrl-plate.viewer-B8PUBLH8.mjs +179 -0
  73. package/fesm2022/iss-ctrl-plate.viewer-B8PUBLH8.mjs.map +1 -0
  74. package/fesm2022/iss-ctrl-radio.field-Dp5D-AXQ.mjs +88 -0
  75. package/fesm2022/iss-ctrl-radio.field-Dp5D-AXQ.mjs.map +1 -0
  76. package/fesm2022/iss-ctrl-radio.mjs +104 -0
  77. package/fesm2022/iss-ctrl-radio.mjs.map +1 -0
  78. package/fesm2022/iss-ctrl-radio.viewer-EiDliZro.mjs +30 -0
  79. package/fesm2022/iss-ctrl-radio.viewer-EiDliZro.mjs.map +1 -0
  80. package/fesm2022/{iss-ctrl-replace-api-keys-C0XYQW4i.mjs → iss-ctrl-replace-api-keys-COUv4Kin.mjs} +2 -2
  81. package/fesm2022/{iss-ctrl-replace-api-keys-C0XYQW4i.mjs.map → iss-ctrl-replace-api-keys-COUv4Kin.mjs.map} +1 -1
  82. package/fesm2022/{iss-ctrl-set-value-event-CgXhi0Bv.mjs → iss-ctrl-set-value-event-D0-_qIyS.mjs} +2 -2
  83. package/fesm2022/{iss-ctrl-set-value-event-CgXhi0Bv.mjs.map → iss-ctrl-set-value-event-D0-_qIyS.mjs.map} +1 -1
  84. package/fesm2022/iss-ctrl-slide-toggle.field-vCJHOiSG.mjs +85 -0
  85. package/fesm2022/iss-ctrl-slide-toggle.field-vCJHOiSG.mjs.map +1 -0
  86. package/fesm2022/iss-ctrl-slide-toggle.mjs +66 -0
  87. package/fesm2022/iss-ctrl-slide-toggle.mjs.map +1 -0
  88. package/fesm2022/iss-ctrl-slide-toggle.viewer-hsIHwDj3.mjs +34 -0
  89. package/fesm2022/iss-ctrl-slide-toggle.viewer-hsIHwDj3.mjs.map +1 -0
  90. package/fesm2022/{iss-ctrl-table.field-B5FxF6hn.mjs → iss-ctrl-table.field-DdFjH-D8.mjs} +142 -140
  91. package/fesm2022/iss-ctrl-table.field-DdFjH-D8.mjs.map +1 -0
  92. package/fesm2022/iss-ctrl-textarea.field-Dqhhu2m4.mjs +82 -0
  93. package/fesm2022/iss-ctrl-textarea.field-Dqhhu2m4.mjs.map +1 -0
  94. package/fesm2022/iss-ctrl-textarea.mjs +115 -0
  95. package/fesm2022/iss-ctrl-textarea.mjs.map +1 -0
  96. package/fesm2022/iss-ctrl-textarea.viewer-CpmLauik.mjs +22 -0
  97. package/fesm2022/iss-ctrl-textarea.viewer-CpmLauik.mjs.map +1 -0
  98. package/fesm2022/iss-ctrl-time-picker.field-CdmxRiH8.mjs +77 -0
  99. package/fesm2022/iss-ctrl-time-picker.field-CdmxRiH8.mjs.map +1 -0
  100. package/fesm2022/iss-ctrl-time-picker.mjs +170 -0
  101. package/fesm2022/iss-ctrl-time-picker.mjs.map +1 -0
  102. package/fesm2022/iss-ctrl-time-picker.viewer-CJeFLrdI.mjs +22 -0
  103. package/fesm2022/iss-ctrl-time-picker.viewer-CJeFLrdI.mjs.map +1 -0
  104. package/fesm2022/iss-ctrl-toggle-button.field-rAT7dVFC.mjs +101 -0
  105. package/fesm2022/iss-ctrl-toggle-button.field-rAT7dVFC.mjs.map +1 -0
  106. package/fesm2022/iss-ctrl-toggle-button.mjs +158 -0
  107. package/fesm2022/iss-ctrl-toggle-button.mjs.map +1 -0
  108. package/fesm2022/iss-ctrl-toggle-button.viewer-CC-8_Dy4.mjs +30 -0
  109. package/fesm2022/iss-ctrl-toggle-button.viewer-CC-8_Dy4.mjs.map +1 -0
  110. package/fesm2022/iss-ctrl-tokens.mjs +25 -0
  111. package/fesm2022/iss-ctrl-tokens.mjs.map +1 -0
  112. package/fesm2022/{iss-ctrl-trigger-based-on-json-value-2v1kLVHZ.mjs → iss-ctrl-trigger-based-on-json-value-I92SNsv9.mjs} +2 -2
  113. package/fesm2022/{iss-ctrl-trigger-based-on-json-value-2v1kLVHZ.mjs.map → iss-ctrl-trigger-based-on-json-value-I92SNsv9.mjs.map} +1 -1
  114. package/fesm2022/{iss-ctrl-user-picker.field-BH63sZ-X.mjs → iss-ctrl-user-picker.field-DpmYCfpD.mjs} +154 -153
  115. package/fesm2022/iss-ctrl-user-picker.field-DpmYCfpD.mjs.map +1 -0
  116. package/fesm2022/iss-ctrl.mjs +3 -1
  117. package/fesm2022/iss-ctrl.mjs.map +1 -1
  118. package/package.json +69 -1
  119. package/types/iss-ctrl-base.d.ts +318 -0
  120. package/types/iss-ctrl-checkbox.d.ts +46 -0
  121. package/types/iss-ctrl-chips.d.ts +41 -0
  122. package/types/iss-ctrl-date-picker.d.ts +75 -0
  123. package/types/iss-ctrl-date-range-picker.d.ts +95 -0
  124. package/types/iss-ctrl-datetime-picker.d.ts +77 -0
  125. package/types/iss-ctrl-dropdownlist.d.ts +78 -0
  126. package/types/iss-ctrl-file-picker.d.ts +95 -0
  127. package/types/iss-ctrl-input.d.ts +76 -0
  128. package/types/iss-ctrl-mobile.d.ts +91 -0
  129. package/types/iss-ctrl-plate.d.ts +54 -0
  130. package/types/iss-ctrl-radio.d.ts +34 -0
  131. package/types/iss-ctrl-slide-toggle.d.ts +26 -0
  132. package/types/iss-ctrl-textarea.d.ts +30 -0
  133. package/types/iss-ctrl-time-picker.d.ts +48 -0
  134. package/types/iss-ctrl-toggle-button.d.ts +41 -0
  135. package/types/iss-ctrl-tokens.d.ts +21 -0
  136. package/types/iss-ctrl.d.ts +303 -2005
  137. package/fesm2022/iss-ctrl-iss-ctrl-BKu6a5HF.mjs +0 -9683
  138. package/fesm2022/iss-ctrl-iss-ctrl-BKu6a5HF.mjs.map +0 -1
  139. package/fesm2022/iss-ctrl-load-event-bOt6IlIo.mjs.map +0 -1
  140. package/fesm2022/iss-ctrl-table.field-B5FxF6hn.mjs.map +0 -1
  141. package/fesm2022/iss-ctrl-user-picker.field-BH63sZ-X.mjs.map +0 -1
@@ -0,0 +1,104 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Component } from '@angular/core';
3
+ import * as i1 from '@angular/forms';
4
+ import { ReactiveFormsModule } from '@angular/forms';
5
+ import { F as FieldBase, V as VIEW_PROVIDER, a as ValidationMessage, b as FieldViewer } from './iss-ctrl-iss-ctrl-BG-QWWdq.mjs';
6
+ import { InputControl } from 'iss-ctrl/input';
7
+ import { InputViewer } from './iss-ctrl-input.viewer-BOZnW0_e.mjs';
8
+
9
+ /**
10
+ * `<iss-field-input>` — single line text, number, email or password entry.
11
+ *
12
+ * Rendered by the outlet for fields of type `text_input`. In `edit` mode it renders
13
+ * {@link InputControl} plus the validation message; in `view` mode the matching viewer.
14
+ *
15
+ * ### Supported `config` keys
16
+ * | Key | Type | Description |
17
+ * | --- | --- | --- |
18
+ * | `type` | `string` | Native input type — `text`, `number`, `email`, `password`, … |
19
+ * | `placeholder` | `string` | Placeholder shown while empty. |
20
+ * | `min` | `number` | Minimum numeric value. |
21
+ * | `max` | `number` | Maximum numeric value. |
22
+ * | `minLength` | `number` | Minimum number of characters. |
23
+ * | `maxLength` | `number` | Maximum number of characters. |
24
+ * | `readonly` | `boolean` | Shows the value but blocks interaction. |
25
+ *
26
+ * ### Other field members used
27
+ * `label()`
28
+ *
29
+ * Every field also honours `visible`, `mode`, `validation`, `asyncValidation` and
30
+ * `events` — see {@link IssField} for the full model and {@link FieldConfig} for all keys.
31
+ *
32
+ * @example
33
+ * ```json
34
+ * { "name": "email", "type": "text_input", "label": "Email", "config": { "type": "email", "maxLength": 120 } }
35
+ * ```
36
+ */
37
+ class InputField extends FieldBase {
38
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: InputField, deps: null, target: i0.ɵɵFactoryTarget.Component });
39
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: InputField, isStandalone: true, selector: "iss-field-input", usesInheritance: true, ngImport: i0, template: `
40
+ @if (field.visible()) {
41
+ @if (field.mode() === "edit") {
42
+ <iss-ctrl-input
43
+ [formControlName]="field.name"
44
+ [type]="field.config.type() ?? ''"
45
+ [placeholder]="field.config.placeholder() ?? ''"
46
+ [min]="field.config.min() ?? null"
47
+ [max]="field.config.max() ?? null"
48
+ [readonly]="field.config.readonly() ?? false"
49
+ [minLength]="field.config.minLength() ?? null"
50
+ [maxLength]="field.config.maxLength() ?? null"
51
+ >
52
+ <label>{{ field.label() }}</label>
53
+ </iss-ctrl-input>
54
+ <iss-validation-message-viewer [errors]="ctrl.errors" [showMessage]="!ctrl.untouched"/>
55
+ } @else {
56
+ <iss-field-viewer>
57
+ <label>{{ field.label() }}</label>
58
+ <iss-viewer-input [field]="field"/>
59
+ </iss-field-viewer>
60
+ }
61
+ }
62
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: InputControl, selector: "iss-ctrl-input", inputs: ["type", "prefixIcon", "prefixText", "suffixIcon", "suffixText"], outputs: ["onPrefixClick", "onSuffixClick"] }, { kind: "component", type: ValidationMessage, selector: "iss-validation-message-viewer", inputs: ["errors", "showMessage"] }, { kind: "component", type: InputViewer, selector: "iss-viewer-input" }, { kind: "component", type: FieldViewer, selector: "iss-field-viewer" }], viewProviders: [VIEW_PROVIDER] });
63
+ }
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: InputField, decorators: [{
65
+ type: Component,
66
+ args: [{
67
+ selector: "iss-field-input",
68
+ viewProviders: [VIEW_PROVIDER],
69
+ imports: [
70
+ ReactiveFormsModule,
71
+ InputControl,
72
+ ValidationMessage,
73
+ InputViewer,
74
+ FieldViewer
75
+ ],
76
+ template: `
77
+ @if (field.visible()) {
78
+ @if (field.mode() === "edit") {
79
+ <iss-ctrl-input
80
+ [formControlName]="field.name"
81
+ [type]="field.config.type() ?? ''"
82
+ [placeholder]="field.config.placeholder() ?? ''"
83
+ [min]="field.config.min() ?? null"
84
+ [max]="field.config.max() ?? null"
85
+ [readonly]="field.config.readonly() ?? false"
86
+ [minLength]="field.config.minLength() ?? null"
87
+ [maxLength]="field.config.maxLength() ?? null"
88
+ >
89
+ <label>{{ field.label() }}</label>
90
+ </iss-ctrl-input>
91
+ <iss-validation-message-viewer [errors]="ctrl.errors" [showMessage]="!ctrl.untouched"/>
92
+ } @else {
93
+ <iss-field-viewer>
94
+ <label>{{ field.label() }}</label>
95
+ <iss-viewer-input [field]="field"/>
96
+ </iss-field-viewer>
97
+ }
98
+ }
99
+ `
100
+ }]
101
+ }] });
102
+
103
+ export { InputField };
104
+ //# sourceMappingURL=iss-ctrl-input.field-BiwBFYx3.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iss-ctrl-input.field-BiwBFYx3.mjs","sources":["../../../projects/iss/src/components/controls/input/input.field.ts"],"sourcesContent":["import { Component } from \"@angular/core\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\nimport { VIEW_PROVIDER } from \"../../../shared/constants/view-provider.const\";\nimport { ValidationMessage } from \"../../shared/validation-message\";\nimport { FieldBase } from \"../base/field-base\";\nimport { InputControl } from \"iss-ctrl/input\";\nimport { InputViewer } from \"./input.viewer\";\nimport { FieldViewer } from \"../../shared/field-viewer\";\n\n/**\n * `<iss-field-input>` — single line text, number, email or password entry.\n *\n * Rendered by the outlet for fields of type `text_input`. In `edit` mode it renders\n * {@link InputControl} plus the validation message; in `view` mode the matching viewer.\n *\n * ### Supported `config` keys\n * | Key | Type | Description |\n * | --- | --- | --- |\n * | `type` | `string` | Native input type — `text`, `number`, `email`, `password`, … |\n * | `placeholder` | `string` | Placeholder shown while empty. |\n * | `min` | `number` | Minimum numeric value. |\n * | `max` | `number` | Maximum numeric value. |\n * | `minLength` | `number` | Minimum number of characters. |\n * | `maxLength` | `number` | Maximum number of characters. |\n * | `readonly` | `boolean` | Shows the value but blocks interaction. |\n *\n * ### Other field members used\n * `label()`\n *\n * Every field also honours `visible`, `mode`, `validation`, `asyncValidation` and\n * `events` — see {@link IssField} for the full model and {@link FieldConfig} for all keys.\n *\n * @example\n * ```json\n * { \"name\": \"email\", \"type\": \"text_input\", \"label\": \"Email\", \"config\": { \"type\": \"email\", \"maxLength\": 120 } }\n * ```\n */\n@Component({\n selector: \"iss-field-input\",\n viewProviders: [VIEW_PROVIDER],\n imports: [\n ReactiveFormsModule,\n InputControl,\n ValidationMessage,\n InputViewer,\n FieldViewer\n ],\n template: `\n @if (field.visible()) {\n @if (field.mode() === \"edit\") {\n <iss-ctrl-input\n [formControlName]=\"field.name\"\n [type]=\"field.config.type() ?? ''\"\n [placeholder]=\"field.config.placeholder() ?? ''\"\n [min]=\"field.config.min() ?? null\"\n [max]=\"field.config.max() ?? null\"\n [readonly]=\"field.config.readonly() ?? false\"\n [minLength]=\"field.config.minLength() ?? null\"\n [maxLength]=\"field.config.maxLength() ?? null\"\n >\n <label>{{ field.label() }}</label>\n </iss-ctrl-input>\n <iss-validation-message-viewer [errors]=\"ctrl.errors\" [showMessage]=\"!ctrl.untouched\"/>\n } @else {\n <iss-field-viewer>\n <label>{{ field.label() }}</label>\n <iss-viewer-input [field]=\"field\"/>\n </iss-field-viewer>\n }\n }\n `\n})\nexport class InputField extends FieldBase {}\n"],"names":[],"mappings":";;;;;;;;AASA;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BG;AAoCG,MAAO,UAAW,SAAQ,SAAS,CAAA;uGAA5B,UAAU,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAV,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAzBX;;;;;;;;;;;;;;;;;;;;;;;AAuBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EA7BC,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,YAAY,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACZ,iBAAiB,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACjB,WAAW,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACX,WAAW,EAAA,QAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,aAAA,EANE,CAAC,aAAa,CAAC,EAAA,CAAA;;2FAiCnB,UAAU,EAAA,UAAA,EAAA,CAAA;kBAnCtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;oBAC3B,aAAa,EAAE,CAAC,aAAa,CAAC;AAC9B,oBAAA,OAAO,EAAE;wBACP,mBAAmB;wBACnB,YAAY;wBACZ,iBAAiB;wBACjB,WAAW;wBACX;AACD,qBAAA;AACD,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;AAuBT,EAAA;AACF,iBAAA;;;;;"}
@@ -0,0 +1,204 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, output, effect, ChangeDetectionStrategy, CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';
3
+ import * as i1 from '@angular/forms';
4
+ import { ReactiveFormsModule, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
5
+ import * as i2 from '@angular/material/form-field';
6
+ import { MatFormFieldModule } from '@angular/material/form-field';
7
+ import { MatInput, MatInputModule } from '@angular/material/input';
8
+ import { ControlBase, Hints } from 'iss-ctrl/base';
9
+
10
+ /**
11
+ * `<iss-ctrl-input>` — single line text input, the base for every scalar text field.
12
+ *
13
+ * `type` is forwarded to the native input, so `number`, `email` and `password` variants all
14
+ * come from this one control.
15
+ *
16
+ * @example
17
+ * ```html
18
+ * <iss-ctrl-input formControlName="amount" type="number" [min]="0" suffixText="SAR">
19
+ * <label>Amount</label>
20
+ * </iss-ctrl-input>
21
+ * ```
22
+ *
23
+ * ### Own inputs
24
+ * | Property | Type | Default | Description |
25
+ * | --- | --- | --- | --- |
26
+ * | `type` | `string` | `"text"` | Native input type: `text`, `number`, `email`, `password`, … |
27
+ * | `prefixIcon` | `string` | `""` | Icon rendered before the value. |
28
+ * | `prefixText` | `string` | `""` | Text rendered before the value. |
29
+ * | `suffixIcon` | `string` | `""` | Icon rendered after the value. |
30
+ * | `suffixText` | `string` | `""` | Text rendered after the value. |
31
+ *
32
+ * ### Inherited from {@link ControlBase}
33
+ * `formControlName` · `readonly` · `className` · `(onChange)` · `placeholder` · `min` · `max` · `minLength` · `maxLength` · `hints`
34
+ *
35
+ * ### Outputs
36
+ * - `(onPrefixClick)` — `string`, the prefix affix was clicked.
37
+ * - `(onSuffixClick)` — `string`, the suffix affix was clicked.
38
+ *
39
+ * Projects `<label>` into the floating label; omit it to render the control without one.
40
+ *
41
+ * Also projects `[issPrefix]` and `[issSuffix]` for fully custom affixes.
42
+ */
43
+ class InputControl extends ControlBase {
44
+ /**
45
+ * Native input type — `text`, `number`, `email`, `password`, and so on.
46
+ */
47
+ type = input("text", ...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []));
48
+ /**
49
+ * Icon name rendered before the value.
50
+ */
51
+ prefixIcon = input("", ...(ngDevMode ? [{ debugName: "prefixIcon" }] : /* istanbul ignore next */ []));
52
+ /**
53
+ * Static text rendered before the value.
54
+ */
55
+ prefixText = input("", ...(ngDevMode ? [{ debugName: "prefixText" }] : /* istanbul ignore next */ []));
56
+ /**
57
+ * Icon name rendered after the value.
58
+ */
59
+ suffixIcon = input("", ...(ngDevMode ? [{ debugName: "suffixIcon" }] : /* istanbul ignore next */ []));
60
+ /**
61
+ * Static text rendered after the value, a unit or currency for example.
62
+ */
63
+ suffixText = input("", ...(ngDevMode ? [{ debugName: "suffixText" }] : /* istanbul ignore next */ []));
64
+ /**
65
+ * Emits when the prefix affix is clicked.
66
+ */
67
+ onPrefixClick = output();
68
+ /**
69
+ * Emits when the suffix affix is clicked.
70
+ */
71
+ onSuffixClick = output();
72
+ #disabledEffect = effect(() => {
73
+ if (this.disabled()) {
74
+ this.ctrl.disable();
75
+ }
76
+ else {
77
+ this.ctrl.enable();
78
+ }
79
+ }, ...(ngDevMode ? [{ debugName: "#disabledEffect" }] : /* istanbul ignore next */ []));
80
+ emitSuffixClick() {
81
+ this.onSuffixClick.emit(this.ctrl.getRawValue());
82
+ }
83
+ emitPrefixClick() {
84
+ this.onPrefixClick.emit(this.ctrl.getRawValue());
85
+ }
86
+ ngOnDestroy() {
87
+ this.#disabledEffect.destroy();
88
+ }
89
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: InputControl, deps: null, target: i0.ɵɵFactoryTarget.Component });
90
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: InputControl, isStandalone: true, selector: "iss-ctrl-input", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, prefixIcon: { classPropertyName: "prefixIcon", publicName: "prefixIcon", isSignal: true, isRequired: false, transformFunction: null }, prefixText: { classPropertyName: "prefixText", publicName: "prefixText", isSignal: true, isRequired: false, transformFunction: null }, suffixIcon: { classPropertyName: "suffixIcon", publicName: "suffixIcon", isSignal: true, isRequired: false, transformFunction: null }, suffixText: { classPropertyName: "suffixText", publicName: "suffixText", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onPrefixClick: "onPrefixClick", onSuffixClick: "onSuffixClick" }, providers: [
91
+ { provide: NG_VALUE_ACCESSOR, useExisting: InputControl, multi: true },
92
+ { provide: NG_VALIDATORS, useExisting: InputControl, multi: true }
93
+ ], usesInheritance: true, ngImport: i0, template: `
94
+ <mat-form-field floatLabel="auto" class="">
95
+ <!-- Always rendered: upgrade.scss shows the floating label only while the projected <label> carries text, so an omitted or empty one collapses on its own. -->
96
+ <mat-label class="fs-16 fc-dark-gray">
97
+ <ng-content select="label"></ng-content>
98
+ </mat-label>
99
+ <ng-content select="[issPrefix]"></ng-content>
100
+ <div (click)="emitPrefixClick()" class="cursor-pointer">
101
+ @if (prefixText()) {
102
+ <span matTextPrefix>{{ prefixText() }}</span>
103
+ }
104
+ @if (prefixIcon()) {
105
+ <ds-icon matPrefix icon="{{prefixIcon()}}"></ds-icon>
106
+ }
107
+ </div>
108
+ <input
109
+ matInput
110
+ [errorStateMatcher]="errorStateMatcher"
111
+ (blur)="markAsTouched()"
112
+ (input)="emitValue()"
113
+ [formControl]="ctrl"
114
+ [attr.maxlength]="maxLength()"
115
+ [attr.minlength]="minLength()"
116
+ [attr.max]="max()"
117
+ [attr.min]="min()"
118
+ [placeholder]="placeholder()"
119
+ [readonly]="readonly()"
120
+ [type]="type()"
121
+ />
122
+ <ng-content select="[issSuffix]"></ng-content>
123
+ <div (click)="emitSuffixClick()" class="cursor-pointer">
124
+ @if (suffixText()) {
125
+ <span matTextSuffix>{{ suffixText() }}</span>
126
+ }
127
+ @if (suffixIcon()) {
128
+ <ds-icon matSuffix icon="{{suffixIcon()}}"></ds-icon>
129
+ }
130
+ </div>
131
+ <iss-ctrl-hints [hints]="hints()" [touched]="touched()"/>
132
+ </mat-form-field>
133
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: Hints, selector: "iss-ctrl-hints", inputs: ["hints", "touched"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatInputModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
134
+ }
135
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: InputControl, decorators: [{
136
+ type: Component,
137
+ args: [{
138
+ selector: "iss-ctrl-input",
139
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
140
+ changeDetection: ChangeDetectionStrategy.OnPush,
141
+ imports: [
142
+ ReactiveFormsModule,
143
+ MatFormFieldModule,
144
+ Hints,
145
+ MatInput,
146
+ MatInputModule,
147
+ ],
148
+ providers: [
149
+ { provide: NG_VALUE_ACCESSOR, useExisting: InputControl, multi: true },
150
+ { provide: NG_VALIDATORS, useExisting: InputControl, multi: true }
151
+ ],
152
+ template: `
153
+ <mat-form-field floatLabel="auto" class="">
154
+ <!-- Always rendered: upgrade.scss shows the floating label only while the projected <label> carries text, so an omitted or empty one collapses on its own. -->
155
+ <mat-label class="fs-16 fc-dark-gray">
156
+ <ng-content select="label"></ng-content>
157
+ </mat-label>
158
+ <ng-content select="[issPrefix]"></ng-content>
159
+ <div (click)="emitPrefixClick()" class="cursor-pointer">
160
+ @if (prefixText()) {
161
+ <span matTextPrefix>{{ prefixText() }}</span>
162
+ }
163
+ @if (prefixIcon()) {
164
+ <ds-icon matPrefix icon="{{prefixIcon()}}"></ds-icon>
165
+ }
166
+ </div>
167
+ <input
168
+ matInput
169
+ [errorStateMatcher]="errorStateMatcher"
170
+ (blur)="markAsTouched()"
171
+ (input)="emitValue()"
172
+ [formControl]="ctrl"
173
+ [attr.maxlength]="maxLength()"
174
+ [attr.minlength]="minLength()"
175
+ [attr.max]="max()"
176
+ [attr.min]="min()"
177
+ [placeholder]="placeholder()"
178
+ [readonly]="readonly()"
179
+ [type]="type()"
180
+ />
181
+ <ng-content select="[issSuffix]"></ng-content>
182
+ <div (click)="emitSuffixClick()" class="cursor-pointer">
183
+ @if (suffixText()) {
184
+ <span matTextSuffix>{{ suffixText() }}</span>
185
+ }
186
+ @if (suffixIcon()) {
187
+ <ds-icon matSuffix icon="{{suffixIcon()}}"></ds-icon>
188
+ }
189
+ </div>
190
+ <iss-ctrl-hints [hints]="hints()" [touched]="touched()"/>
191
+ </mat-form-field>
192
+ `
193
+ }]
194
+ }], propDecorators: { type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: false }] }], prefixIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "prefixIcon", required: false }] }], prefixText: [{ type: i0.Input, args: [{ isSignal: true, alias: "prefixText", required: false }] }], suffixIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "suffixIcon", required: false }] }], suffixText: [{ type: i0.Input, args: [{ isSignal: true, alias: "suffixText", required: false }] }], onPrefixClick: [{ type: i0.Output, args: ["onPrefixClick"] }], onSuffixClick: [{ type: i0.Output, args: ["onSuffixClick"] }] } });
195
+
196
+ // The input control. Its field and viewer stay in the primary entry point and reach it
197
+ // from there, so the control ships only to an app that renders it or imports it directly.
198
+
199
+ /**
200
+ * Generated bundle index. Do not edit.
201
+ */
202
+
203
+ export { InputControl };
204
+ //# sourceMappingURL=iss-ctrl-input.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iss-ctrl-input.mjs","sources":["../../../projects/iss/input/src/input.control.ts","../../../projects/iss/input/src/public-api.ts","../../../projects/iss/input/src/iss-ctrl-input.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, CUSTOM_ELEMENTS_SCHEMA, effect, EffectRef, input, InputSignal, OnDestroy, output, OutputEmitterRef } from \"@angular/core\";\nimport { NG_VALIDATORS, NG_VALUE_ACCESSOR, ReactiveFormsModule, Validator } from \"@angular/forms\";\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\nimport { MatInput, MatInputModule } from \"@angular/material/input\";\nimport { Hints } from \"iss-ctrl/base\";\nimport { ControlBase } from \"iss-ctrl/base\";\n\n/**\n * `<iss-ctrl-input>` — single line text input, the base for every scalar text field.\n *\n * `type` is forwarded to the native input, so `number`, `email` and `password` variants all\n * come from this one control.\n *\n * @example\n * ```html\n * <iss-ctrl-input formControlName=\"amount\" type=\"number\" [min]=\"0\" suffixText=\"SAR\">\n * <label>Amount</label>\n * </iss-ctrl-input>\n * ```\n *\n * ### Own inputs\n * | Property | Type | Default | Description |\n * | --- | --- | --- | --- |\n * | `type` | `string` | `\"text\"` | Native input type: `text`, `number`, `email`, `password`, … |\n * | `prefixIcon` | `string` | `\"\"` | Icon rendered before the value. |\n * | `prefixText` | `string` | `\"\"` | Text rendered before the value. |\n * | `suffixIcon` | `string` | `\"\"` | Icon rendered after the value. |\n * | `suffixText` | `string` | `\"\"` | Text rendered after the value. |\n *\n * ### Inherited from {@link ControlBase}\n * `formControlName` · `readonly` · `className` · `(onChange)` · `placeholder` · `min` · `max` · `minLength` · `maxLength` · `hints`\n *\n * ### Outputs\n * - `(onPrefixClick)` — `string`, the prefix affix was clicked.\n * - `(onSuffixClick)` — `string`, the suffix affix was clicked.\n *\n * Projects `<label>` into the floating label; omit it to render the control without one.\n *\n * Also projects `[issPrefix]` and `[issSuffix]` for fully custom affixes.\n */\n@Component({\n selector: \"iss-ctrl-input\",\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n ReactiveFormsModule,\n MatFormFieldModule,\n Hints,\n MatInput,\n MatInputModule,\n ],\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: InputControl, multi: true },\n { provide: NG_VALIDATORS, useExisting: InputControl, multi: true }\n ],\n template: `\n <mat-form-field floatLabel=\"auto\" class=\"\">\n <!-- Always rendered: upgrade.scss shows the floating label only while the projected <label> carries text, so an omitted or empty one collapses on its own. -->\n <mat-label class=\"fs-16 fc-dark-gray\">\n <ng-content select=\"label\"></ng-content>\n </mat-label>\n <ng-content select=\"[issPrefix]\"></ng-content>\n <div (click)=\"emitPrefixClick()\" class=\"cursor-pointer\">\n @if (prefixText()) {\n <span matTextPrefix>{{ prefixText() }}</span>\n }\n @if (prefixIcon()) {\n <ds-icon matPrefix icon=\"{{prefixIcon()}}\"></ds-icon>\n }\n </div>\n <input\n matInput\n [errorStateMatcher]=\"errorStateMatcher\"\n (blur)=\"markAsTouched()\"\n (input)=\"emitValue()\"\n [formControl]=\"ctrl\"\n [attr.maxlength]=\"maxLength()\"\n [attr.minlength]=\"minLength()\"\n [attr.max]=\"max()\"\n [attr.min]=\"min()\"\n [placeholder]=\"placeholder()\"\n [readonly]=\"readonly()\"\n [type]=\"type()\"\n />\n <ng-content select=\"[issSuffix]\"></ng-content>\n <div (click)=\"emitSuffixClick()\" class=\"cursor-pointer\">\n @if (suffixText()) {\n <span matTextSuffix>{{ suffixText() }}</span>\n }\n @if (suffixIcon()) {\n <ds-icon matSuffix icon=\"{{suffixIcon()}}\"></ds-icon>\n }\n </div>\n <iss-ctrl-hints [hints]=\"hints()\" [touched]=\"touched()\"/>\n </mat-form-field>\n `\n})\nexport class InputControl extends ControlBase implements Validator, OnDestroy {\n /**\n * Native input type — `text`, `number`, `email`, `password`, and so on.\n */\n type: InputSignal<string> = input(\"text\");\n /**\n * Icon name rendered before the value.\n */\n prefixIcon: InputSignal<string> = input(\"\");\n /**\n * Static text rendered before the value.\n */\n prefixText: InputSignal<string> = input(\"\");\n /**\n * Icon name rendered after the value.\n */\n suffixIcon: InputSignal<string> = input(\"\");\n /**\n * Static text rendered after the value, a unit or currency for example.\n */\n suffixText: InputSignal<string> = input(\"\");\n /**\n * Emits when the prefix affix is clicked.\n */\n onPrefixClick: OutputEmitterRef<string> = output();\n /**\n * Emits when the suffix affix is clicked.\n */\n onSuffixClick: OutputEmitterRef<string> = output();\n #disabledEffect: EffectRef = effect(() => {\n if (this.disabled()) {\n this.ctrl.disable();\n } else {\n this.ctrl.enable();\n }\n });\n\n emitSuffixClick() {\n this.onSuffixClick.emit(this.ctrl.getRawValue());\n }\n\n emitPrefixClick() {\n this.onPrefixClick.emit(this.ctrl.getRawValue());\n }\n\n ngOnDestroy() {\n this.#disabledEffect.destroy();\n }\n}\n","// The input control. Its field and viewer stay in the primary entry point and reach it\n// from there, so the control ships only to an app that renders it or imports it directly.\n\nexport * from \"./input.control\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Component } from '@angular/core';
3
+ import { ViewerBase } from 'iss-ctrl/base';
4
+
5
+ class InputViewer extends ViewerBase {
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: InputViewer, deps: null, target: i0.ɵɵFactoryTarget.Component });
7
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: InputViewer, isStandalone: true, selector: "iss-viewer-input", usesInheritance: true, ngImport: i0, template: `
8
+ {{ field().ctrlValue() }}
9
+ `, isInline: true });
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: InputViewer, decorators: [{
12
+ type: Component,
13
+ args: [{
14
+ selector: "iss-viewer-input",
15
+ template: `
16
+ {{ field().ctrlValue() }}
17
+ `,
18
+ }]
19
+ }] });
20
+
21
+ export { InputViewer };
22
+ //# sourceMappingURL=iss-ctrl-input.viewer-BOZnW0_e.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iss-ctrl-input.viewer-BOZnW0_e.mjs","sources":["../../../projects/iss/src/components/controls/input/input.viewer.ts"],"sourcesContent":["import { Component } from \"@angular/core\";\nimport { ViewerBase } from \"iss-ctrl/base\";\n\n@Component({\n selector: \"iss-viewer-input\",\n template: `\n {{ field().ctrlValue() }}\n `,\n})\nexport class InputViewer extends ViewerBase {}\n"],"names":[],"mappings":";;;;AASM,MAAO,WAAY,SAAQ,UAAU,CAAA;uGAA9B,WAAW,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAJZ;;AAET,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA;;2FAEU,WAAW,EAAA,UAAA,EAAA,CAAA;kBANvB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,QAAQ,EAAE;;AAET,EAAA,CAAA;AACF,iBAAA;;;;;"}