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,85 @@
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 { MatLabel } from '@angular/material/form-field';
6
+ import { F as FieldBase, V as VIEW_PROVIDER, a as ValidationMessage, b as FieldViewer } from './iss-ctrl-iss-ctrl-BG-QWWdq.mjs';
7
+ import { SlideToggleControl } from 'iss-ctrl/slide-toggle';
8
+ import { SlideToggleViewer } from './iss-ctrl-slide-toggle.viewer-hsIHwDj3.mjs';
9
+
10
+ /**
11
+ * `<iss-field-slide-toggle>` — an on/off switch for a boolean value.
12
+ *
13
+ * Rendered by the outlet for fields of type `switch`. In `edit` mode it renders
14
+ * {@link SlideToggleControl} plus the validation message; in `view` mode the matching viewer.
15
+ *
16
+ * ### Supported `config` keys
17
+ * | Key | Type | Description |
18
+ * | --- | --- | --- |
19
+ * | `hideLabel` | `boolean` | Hides the field label. |
20
+ * | `readonly` | `boolean` | Shows the value but blocks interaction. |
21
+ *
22
+ * ### Other field members used
23
+ * `label()`
24
+ *
25
+ * Every field also honours `visible`, `mode`, `validation`, `asyncValidation` and
26
+ * `events` — see {@link IssField} for the full model and {@link FieldConfig} for all keys.
27
+ *
28
+ * @example
29
+ * ```json
30
+ * { "name": "active", "type": "switch", "label": "Active" }
31
+ * ```
32
+ */
33
+ class SlideToggleField extends FieldBase {
34
+ onChange($event) {
35
+ this.field.ctrlJsonValue.set($event);
36
+ }
37
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SlideToggleField, deps: null, target: i0.ɵɵFactoryTarget.Component });
38
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: SlideToggleField, isStandalone: true, selector: "iss-field-slide-toggle", usesInheritance: true, ngImport: i0, template: `
39
+ @if (field.visible()) {
40
+ @if (field.mode() === "edit") {
41
+ @if (!field.config.hideLabel()) {
42
+ <mat-label>{{ field.label() }}</mat-label>
43
+ }
44
+ <iss-ctrl-slide-toggle [formControlName]="field.name" [readonly]="field.config.readonly() ?? false" (onChange)="onChange($event)"/>
45
+ <iss-validation-message-viewer [errors]="ctrl.errors" [showMessage]="!ctrl.untouched"/>
46
+ } @else {
47
+ <iss-field-viewer>
48
+ @if (!field.config.hideLabel()) {
49
+ <label>{{ field.label() }}</label>
50
+ }
51
+ <iss-viewer-slide-toggle [field]="field"/>
52
+ </iss-field-viewer>
53
+ }
54
+ }
55
+ `, 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: "directive", type: MatLabel, selector: "mat-label" }, { kind: "component", type: SlideToggleControl, selector: "iss-ctrl-slide-toggle" }, { kind: "component", type: SlideToggleViewer, selector: "iss-viewer-slide-toggle" }, { kind: "component", type: ValidationMessage, selector: "iss-validation-message-viewer", inputs: ["errors", "showMessage"] }, { kind: "component", type: FieldViewer, selector: "iss-field-viewer" }], viewProviders: [VIEW_PROVIDER] });
56
+ }
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SlideToggleField, decorators: [{
58
+ type: Component,
59
+ args: [{
60
+ selector: "iss-field-slide-toggle",
61
+ viewProviders: [VIEW_PROVIDER],
62
+ imports: [ReactiveFormsModule, MatLabel, SlideToggleControl, SlideToggleViewer, ValidationMessage, FieldViewer],
63
+ template: `
64
+ @if (field.visible()) {
65
+ @if (field.mode() === "edit") {
66
+ @if (!field.config.hideLabel()) {
67
+ <mat-label>{{ field.label() }}</mat-label>
68
+ }
69
+ <iss-ctrl-slide-toggle [formControlName]="field.name" [readonly]="field.config.readonly() ?? false" (onChange)="onChange($event)"/>
70
+ <iss-validation-message-viewer [errors]="ctrl.errors" [showMessage]="!ctrl.untouched"/>
71
+ } @else {
72
+ <iss-field-viewer>
73
+ @if (!field.config.hideLabel()) {
74
+ <label>{{ field.label() }}</label>
75
+ }
76
+ <iss-viewer-slide-toggle [field]="field"/>
77
+ </iss-field-viewer>
78
+ }
79
+ }
80
+ `
81
+ }]
82
+ }] });
83
+
84
+ export { SlideToggleField };
85
+ //# sourceMappingURL=iss-ctrl-slide-toggle.field-vCJHOiSG.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iss-ctrl-slide-toggle.field-vCJHOiSG.mjs","sources":["../../../projects/iss/src/components/controls/slide-toggle/slide-toggle.field.ts"],"sourcesContent":["import { Component } from \"@angular/core\";\nimport { ReactiveFormsModule } from \"@angular/forms\";\nimport { MatLabel } from \"@angular/material/form-field\";\nimport { VIEW_PROVIDER } from \"../../../shared/constants/view-provider.const\";\nimport { FieldViewer } from \"../../shared/field-viewer\";\nimport { ValidationMessage } from \"../../shared/validation-message\";\nimport { FieldBase } from \"../base/field-base\";\nimport { SlideToggleControl } from \"iss-ctrl/slide-toggle\";\nimport { SlideToggleViewer } from \"./slide-toggle.viewer\";\n\n/**\n * `<iss-field-slide-toggle>` — an on/off switch for a boolean value.\n *\n * Rendered by the outlet for fields of type `switch`. In `edit` mode it renders\n * {@link SlideToggleControl} plus the validation message; in `view` mode the matching viewer.\n *\n * ### Supported `config` keys\n * | Key | Type | Description |\n * | --- | --- | --- |\n * | `hideLabel` | `boolean` | Hides the field label. |\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\": \"active\", \"type\": \"switch\", \"label\": \"Active\" }\n * ```\n */\n@Component({\n selector: \"iss-field-slide-toggle\",\n viewProviders: [VIEW_PROVIDER],\n imports: [ReactiveFormsModule, MatLabel, SlideToggleControl, SlideToggleViewer, ValidationMessage, FieldViewer],\n template: `\n @if (field.visible()) {\n @if (field.mode() === \"edit\") {\n @if (!field.config.hideLabel()) {\n <mat-label>{{ field.label() }}</mat-label>\n }\n <iss-ctrl-slide-toggle [formControlName]=\"field.name\" [readonly]=\"field.config.readonly() ?? false\" (onChange)=\"onChange($event)\"/>\n <iss-validation-message-viewer [errors]=\"ctrl.errors\" [showMessage]=\"!ctrl.untouched\"/>\n } @else {\n <iss-field-viewer>\n @if (!field.config.hideLabel()) {\n <label>{{ field.label() }}</label>\n }\n <iss-viewer-slide-toggle [field]=\"field\"/>\n </iss-field-viewer>\n }\n }\n `\n})\nexport class SlideToggleField extends FieldBase {\n onChange($event: any) {\n this.field.ctrlJsonValue.set($event);\n }\n}\n"],"names":[],"mappings":";;;;;;;;;AAUA;;;;;;;;;;;;;;;;;;;;;;AAsBG;AAwBG,MAAO,gBAAiB,SAAQ,SAAS,CAAA;AAC7C,IAAA,QAAQ,CAAC,MAAW,EAAA;QAClB,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC;IACtC;uGAHW,gBAAgB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAnBjB;;;;;;;;;;;;;;;;;AAiBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAlBS,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,EAAE,QAAQ,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,kBAAkB,EAAA,QAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,iBAAiB,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,iBAAiB,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,WAAW,EAAA,QAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,aAAA,EAD/F,CAAC,aAAa,CAAC,EAAA,CAAA;;2FAqBnB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAvB5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;oBAClC,aAAa,EAAE,CAAC,aAAa,CAAC;AAC9B,oBAAA,OAAO,EAAE,CAAC,mBAAmB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,WAAW,CAAC;AAC/G,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;AAiBT,EAAA;AACF,iBAAA;;;;;"}
@@ -0,0 +1,66 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Component } from '@angular/core';
3
+ import * as i2 from '@angular/forms';
4
+ import { ReactiveFormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
5
+ import * as i1 from '@angular/material/slide-toggle';
6
+ import { MatSlideToggleModule } from '@angular/material/slide-toggle';
7
+ import { ControlBase } from 'iss-ctrl/base';
8
+
9
+ /**
10
+ * `<iss-ctrl-slide-toggle>` — an on/off switch for a boolean value.
11
+ *
12
+ * @example
13
+ * ```html
14
+ * <iss-ctrl-slide-toggle formControlName="active" (onChange)="save($event)"/>
15
+ * ```
16
+ *
17
+ * ### Own inputs
18
+ * None — the control is configured entirely through the inherited properties.
19
+ *
20
+ * ### Inherited from {@link ControlBase}
21
+ * `formControlName` · `readonly` · `className` · `(onChange)`
22
+ *
23
+ * Projects a `<label>` above the control — the wrapping `iss-field-*` passes the field label in that way.
24
+ */
25
+ class SlideToggleControl extends ControlBase {
26
+ onSlideToggleChange(checked) {
27
+ if (this.readonly()) {
28
+ return;
29
+ }
30
+ this.markAsTouched();
31
+ this.emitValue(checked);
32
+ }
33
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SlideToggleControl, deps: null, target: i0.ɵɵFactoryTarget.Component });
34
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.9", type: SlideToggleControl, isStandalone: true, selector: "iss-ctrl-slide-toggle", providers: [
35
+ { provide: NG_VALUE_ACCESSOR, useExisting: SlideToggleControl, multi: true }
36
+ ], usesInheritance: true, ngImport: i0, template: `
37
+ <mat-slide-toggle class="d-block" [formControl]="ctrl" [disabled]="readonly()" (change)="onSlideToggleChange($event.checked)">
38
+ <ng-content select="label"></ng-content>
39
+ </mat-slide-toggle>
40
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
41
+ }
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SlideToggleControl, decorators: [{
43
+ type: Component,
44
+ args: [{
45
+ selector: "iss-ctrl-slide-toggle",
46
+ imports: [MatSlideToggleModule, ReactiveFormsModule],
47
+ providers: [
48
+ { provide: NG_VALUE_ACCESSOR, useExisting: SlideToggleControl, multi: true }
49
+ ],
50
+ template: `
51
+ <mat-slide-toggle class="d-block" [formControl]="ctrl" [disabled]="readonly()" (change)="onSlideToggleChange($event.checked)">
52
+ <ng-content select="label"></ng-content>
53
+ </mat-slide-toggle>
54
+ `
55
+ }]
56
+ }] });
57
+
58
+ // The slide-toggle control. Its field and viewer stay in the primary entry point and reach it
59
+ // from there, so the control ships only to an app that renders it or imports it directly.
60
+
61
+ /**
62
+ * Generated bundle index. Do not edit.
63
+ */
64
+
65
+ export { SlideToggleControl };
66
+ //# sourceMappingURL=iss-ctrl-slide-toggle.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iss-ctrl-slide-toggle.mjs","sources":["../../../projects/iss/slide-toggle/src/slide-toggle.control.ts","../../../projects/iss/slide-toggle/src/public-api.ts","../../../projects/iss/slide-toggle/src/iss-ctrl-slide-toggle.ts"],"sourcesContent":["import { Component } from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR, ReactiveFormsModule } from \"@angular/forms\";\nimport { MatSlideToggleModule } from \"@angular/material/slide-toggle\";\nimport { ControlBase } from \"iss-ctrl/base\";\n\n/**\n * `<iss-ctrl-slide-toggle>` — an on/off switch for a boolean value.\n *\n * @example\n * ```html\n * <iss-ctrl-slide-toggle formControlName=\"active\" (onChange)=\"save($event)\"/>\n * ```\n *\n * ### Own inputs\n * None — the control is configured entirely through the inherited properties.\n *\n * ### Inherited from {@link ControlBase}\n * `formControlName` · `readonly` · `className` · `(onChange)`\n *\n * Projects a `<label>` above the control — the wrapping `iss-field-*` passes the field label in that way.\n */\n@Component({\n selector: \"iss-ctrl-slide-toggle\",\n imports: [MatSlideToggleModule, ReactiveFormsModule],\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: SlideToggleControl, multi: true }\n ],\n template: `\n <mat-slide-toggle class=\"d-block\" [formControl]=\"ctrl\" [disabled]=\"readonly()\" (change)=\"onSlideToggleChange($event.checked)\">\n <ng-content select=\"label\"></ng-content>\n </mat-slide-toggle>\n `\n})\nexport class SlideToggleControl extends ControlBase {\n onSlideToggleChange(checked: boolean) {\n if (this.readonly()) {\n return;\n }\n this.markAsTouched();\n this.emitValue(checked);\n }\n}\n","// The slide-toggle 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 \"./slide-toggle.control\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;AAKA;;;;;;;;;;;;;;;AAeG;AAaG,MAAO,kBAAmB,SAAQ,WAAW,CAAA;AACjD,IAAA,mBAAmB,CAAC,OAAgB,EAAA;AAClC,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;YACnB;QACF;QACA,IAAI,CAAC,aAAa,EAAE;AACpB,QAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;IACzB;uGAPW,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,SAAA,EATlB;YACT,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,kBAAkB,EAAE,KAAK,EAAE,IAAI;SAC3E,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EACS;;;;GAIT,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EARS,oBAAoB,yXAAE,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,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAUxC,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAZ9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,OAAO,EAAE,CAAC,oBAAoB,EAAE,mBAAmB,CAAC;AACpD,oBAAA,SAAS,EAAE;wBACT,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,oBAAoB,EAAE,KAAK,EAAE,IAAI;AAC3E,qBAAA;AACD,oBAAA,QAAQ,EAAE;;;;AAIT,EAAA;AACF,iBAAA;;;AChCD;AACA;;ACDA;;AAEG;;;;"}
@@ -0,0 +1,34 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Component } from '@angular/core';
3
+ import { ViewerBase } from 'iss-ctrl/base';
4
+
5
+ class SlideToggleViewer extends ViewerBase {
6
+ // the control writes a boolean, while a value coming from the server is a string
7
+ isChecked(value) {
8
+ return value === true || value === "true";
9
+ }
10
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SlideToggleViewer, deps: null, target: i0.ɵɵFactoryTarget.Component });
11
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: SlideToggleViewer, isStandalone: true, selector: "iss-viewer-slide-toggle", usesInheritance: true, ngImport: i0, template: `
12
+ @if (isChecked(field().ctrlValue())) {
13
+ {{ field().label() + ' Yes' }}
14
+ } @else {
15
+ {{ field().label() + ' No' }}
16
+ }
17
+ `, isInline: true });
18
+ }
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SlideToggleViewer, decorators: [{
20
+ type: Component,
21
+ args: [{
22
+ selector: "iss-viewer-slide-toggle",
23
+ template: `
24
+ @if (isChecked(field().ctrlValue())) {
25
+ {{ field().label() + ' Yes' }}
26
+ } @else {
27
+ {{ field().label() + ' No' }}
28
+ }
29
+ `,
30
+ }]
31
+ }] });
32
+
33
+ export { SlideToggleViewer };
34
+ //# sourceMappingURL=iss-ctrl-slide-toggle.viewer-hsIHwDj3.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iss-ctrl-slide-toggle.viewer-hsIHwDj3.mjs","sources":["../../../projects/iss/src/components/controls/slide-toggle/slide-toggle.viewer.ts"],"sourcesContent":["import { Component } from \"@angular/core\";\nimport { ViewerBase } from \"iss-ctrl/base\";\n\n@Component({\n selector: \"iss-viewer-slide-toggle\",\n template: `\n @if (isChecked(field().ctrlValue())) {\n {{ field().label() + ' Yes' }}\n } @else {\n {{ field().label() + ' No' }}\n }\n `,\n})\nexport class SlideToggleViewer extends ViewerBase {\n // the control writes a boolean, while a value coming from the server is a string\n isChecked(value: unknown): boolean {\n return value === true || value === \"true\";\n }\n}\n"],"names":[],"mappings":";;;;AAaM,MAAO,iBAAkB,SAAQ,UAAU,CAAA;;AAE/C,IAAA,SAAS,CAAC,KAAc,EAAA;AACtB,QAAA,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM;IAC3C;uGAJW,iBAAiB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EARlB;;;;;;AAMT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA;;2FAEU,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAV7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,QAAQ,EAAE;;;;;;AAMT,EAAA,CAAA;AACF,iBAAA;;;;;"}
@@ -2,19 +2,21 @@ import * as i0 from '@angular/core';
2
2
  import { viewChild, ViewContainerRef, inject, DestroyRef, effect, Component, input, signal, computed, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
3
3
  import * as i1$1 from '@angular/forms';
4
4
  import { FormGroup, ReactiveFormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
5
- import { c as ViewerBase, L as Loader, C as ControlBase, d as FormEngine, I as IssField, O as Outlet, F as FieldBase, V as VIEW_PROVIDER, a as ValidationMessage } from './iss-ctrl-iss-ctrl-BKu6a5HF.mjs';
5
+ import { L as Loader, d as FormEngine, I as IssField, O as Outlet, F as FieldBase, V as VIEW_PROVIDER, a as ValidationMessage } from './iss-ctrl-iss-ctrl-BG-QWWdq.mjs';
6
6
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
7
+ import * as i1 from '@angular/material/form-field';
7
8
  import { MatFormFieldModule } from '@angular/material/form-field';
8
- import * as i1 from '@angular/material/input';
9
+ import * as i2 from '@angular/material/input';
9
10
  import { MatInputModule } from '@angular/material/input';
10
- import * as i4 from '@angular/material/paginator';
11
+ import * as i5 from '@angular/material/paginator';
11
12
  import { MatPaginator, MatPaginatorModule } from '@angular/material/paginator';
12
- import * as i5 from '@angular/material/sidenav';
13
+ import * as i6 from '@angular/material/sidenav';
13
14
  import { MatSidenavModule } from '@angular/material/sidenav';
14
- import * as i3 from '@angular/material/sort';
15
+ import * as i4 from '@angular/material/sort';
15
16
  import { MatSort, MatSortModule } from '@angular/material/sort';
16
- import * as i2 from '@angular/material/table';
17
+ import * as i3 from '@angular/material/table';
17
18
  import { MatTableDataSource, MatTableModule } from '@angular/material/table';
19
+ import { ViewerBase, ControlBase } from 'iss-ctrl/base';
18
20
  import { take } from 'rxjs';
19
21
 
20
22
  class FieldViewer extends ViewerBase {
@@ -359,73 +361,73 @@ class TableControl extends ControlBase {
359
361
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TableControl, deps: null, target: i0.ɵɵFactoryTarget.Component });
360
362
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: TableControl, isStandalone: true, selector: "iss-ctrl-table", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: true, transformFunction: null }, withFilter: { classPropertyName: "withFilter", publicName: "withFilter", isSignal: true, isRequired: false, transformFunction: null }, withSort: { classPropertyName: "withSort", publicName: "withSort", isSignal: true, isRequired: false, transformFunction: null }, withPagination: { classPropertyName: "withPagination", publicName: "withPagination", isSignal: true, isRequired: false, transformFunction: null }, jsonValue: { classPropertyName: "jsonValue", publicName: "jsonValue", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
361
363
  { provide: NG_VALUE_ACCESSOR, useExisting: TableControl, multi: true },
362
- ], viewQueries: [{ propertyName: "drawer", first: true, predicate: ["drawer"], descendants: true, isSignal: true }, { propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true, isSignal: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
363
- <mat-sidenav-container [hasBackdrop]="true">
364
- <mat-sidenav #drawer [mode]="'over'" [position]="'start'" [autoFocus]="false">
365
- <form [formGroup]="tableOutletForm">
366
- <iss-form-outlet [fields]="fields()"/>
367
- </form>
368
- <ds-button (click)="saveRow(true)">save
369
- </ds-button>
370
- <ds-button (click)="saveRow(false)">save and add more</ds-button>
371
- </mat-sidenav>
372
- <mat-sidenav-content>
373
- <div>
374
- <ds-button icon="true" (click)="openNewRow()">
375
- <ds-icon icon="plus"></ds-icon>
376
- </ds-button>
377
- <!--<button mat-raised-button (click)="removeRow()" class="demo-button">Remove data</button>-->
378
- </div>
379
- @if (withFilter()) {
380
- <mat-form-field>
381
- <mat-label>Filter</mat-label>
382
- <input matInput (keyup)="applyFilter($event)" placeholder="Search in table" #input>
383
- </mat-form-field>
384
- }
385
- <div class="mat-elevation-z8">
386
- <table mat-table [dataSource]="dataSource" matSort>
387
- <tr mat-header-row *matHeaderRowDef="fieldNames()"></tr>
388
- <tr mat-row *matRowDef="let row; columns: fieldNames();" (click)="onRowClick(row)"></tr>
389
-
390
- @for (col of fieldNames(); track col) {
391
- @if (col !== "actions") {
392
- <ng-container [matColumnDef]="col">
393
- <th mat-header-cell *matHeaderCellDef mat-sort-header [disabled]="!fieldsMap().get(col)?.config?.tableWithSort()">
394
- {{ columnLabels()[$index] }}
395
- </th>
396
- <td mat-cell *matCellDef="let row">
397
- @if (viewFieldOf(row, $index); as viewField) {
398
- <iss-viewer-field [field]="viewField"/>
399
- }
400
- </td>
401
- </ng-container>
402
- }
403
- }
404
-
405
- <!-- Actions -->
406
- <ng-container matColumnDef="actions">
407
- <th mat-header-cell *matHeaderCellDef mat-sort-header></th>
408
- <td mat-cell *matCellDef="let row">
409
- <ds-icon icon="eye" class="cursor-pointer" (click)="viewRow(row)"></ds-icon>
410
- <ds-icon icon="pen" class="cursor-pointer" (click)="editRow(row)"></ds-icon>
411
- <ds-icon icon="trash" class="cursor-pointer fc-red" (click)="removeRow(row)"></ds-icon>
412
- </td>
413
- </ng-container>
414
-
415
- <tr class="mat-row" *matNoDataRow>
416
- <td class="mat-cell" colspan="4">
417
- <ds-message type="emptyCard"></ds-message>
418
- </td>
419
- </tr>
420
- </table>
421
-
422
- @if (withPagination()) {
423
- <mat-paginator [pageSizeOptions]="[5, 10, 25, 100]" aria-label="Select page number"></mat-paginator>
424
- }
425
- </div>
426
- </mat-sidenav-content>
427
- </mat-sidenav-container>
428
- `, isInline: true, styles: [".mat-drawer{position:fixed;left:0}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i1.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: MatTableModule }, { kind: "component", type: i2.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i2.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i2.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i2.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i2.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i2.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i2.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i2.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i2.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i2.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i2.MatNoDataRow, selector: "ng-template[matNoDataRow]" }, { kind: "ngmodule", type: MatSortModule }, { kind: "directive", type: i3.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i3.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i4.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "ngmodule", type: MatSidenavModule }, { kind: "component", type: i5.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i5.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i5.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: Outlet, selector: "iss-form-outlet", inputs: ["fields"], outputs: ["ready"] }, { kind: "component", type: FieldViewer, selector: "iss-viewer-field" }] });
364
+ ], viewQueries: [{ propertyName: "drawer", first: true, predicate: ["drawer"], descendants: true, isSignal: true }, { propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true, isSignal: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
365
+ <mat-sidenav-container [hasBackdrop]="true">
366
+ <mat-sidenav #drawer [mode]="'over'" [position]="'start'" [autoFocus]="false">
367
+ <form [formGroup]="tableOutletForm">
368
+ <iss-form-outlet [fields]="fields()"/>
369
+ </form>
370
+ <ds-button (click)="saveRow(true)">save
371
+ </ds-button>
372
+ <ds-button (click)="saveRow(false)">save and add more</ds-button>
373
+ </mat-sidenav>
374
+ <mat-sidenav-content>
375
+ <div>
376
+ <ds-button icon="true" (click)="openNewRow()">
377
+ <ds-icon icon="plus"></ds-icon>
378
+ </ds-button>
379
+ <!--<button mat-raised-button (click)="removeRow()" class="demo-button">Remove data</button>-->
380
+ </div>
381
+ @if (withFilter()) {
382
+ <mat-form-field>
383
+ <mat-label>Filter</mat-label>
384
+ <input matInput (keyup)="applyFilter($event)" placeholder="Search in table" #input>
385
+ </mat-form-field>
386
+ }
387
+ <div class="mat-elevation-z8">
388
+ <table mat-table [dataSource]="dataSource" matSort>
389
+ <tr mat-header-row *matHeaderRowDef="fieldNames()"></tr>
390
+ <tr mat-row *matRowDef="let row; columns: fieldNames();" (click)="onRowClick(row)"></tr>
391
+
392
+ @for (col of fieldNames(); track col) {
393
+ @if (col !== "actions") {
394
+ <ng-container [matColumnDef]="col">
395
+ <th mat-header-cell *matHeaderCellDef mat-sort-header [disabled]="!fieldsMap().get(col)?.config?.tableWithSort()">
396
+ {{ columnLabels()[$index] }}
397
+ </th>
398
+ <td mat-cell *matCellDef="let row">
399
+ @if (viewFieldOf(row, $index); as viewField) {
400
+ <iss-viewer-field [field]="viewField"/>
401
+ }
402
+ </td>
403
+ </ng-container>
404
+ }
405
+ }
406
+
407
+ <!-- Actions -->
408
+ <ng-container matColumnDef="actions">
409
+ <th mat-header-cell *matHeaderCellDef mat-sort-header></th>
410
+ <td mat-cell *matCellDef="let row">
411
+ <ds-icon icon="eye" class="cursor-pointer" (click)="viewRow(row)"></ds-icon>
412
+ <ds-icon icon="pen" class="cursor-pointer" (click)="editRow(row)"></ds-icon>
413
+ <ds-icon icon="trash" class="cursor-pointer fc-red" (click)="removeRow(row)"></ds-icon>
414
+ </td>
415
+ </ng-container>
416
+
417
+ <tr class="mat-row" *matNoDataRow>
418
+ <td class="mat-cell" colspan="4">
419
+ <ds-message type="emptyCard"></ds-message>
420
+ </td>
421
+ </tr>
422
+ </table>
423
+
424
+ @if (withPagination()) {
425
+ <mat-paginator [pageSizeOptions]="[5, 10, 25, 100]" aria-label="Select page number"></mat-paginator>
426
+ }
427
+ </div>
428
+ </mat-sidenav-content>
429
+ </mat-sidenav-container>
430
+ `, isInline: true, styles: [".mat-drawer{position:fixed;left:0}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.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: MatTableModule }, { kind: "component", type: i3.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i3.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i3.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i3.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i3.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i3.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i3.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i3.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i3.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i3.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i3.MatNoDataRow, selector: "ng-template[matNoDataRow]" }, { kind: "ngmodule", type: MatSortModule }, { kind: "directive", type: i4.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i4.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i5.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "ngmodule", type: MatSidenavModule }, { kind: "component", type: i6.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i6.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i6.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: Outlet, selector: "iss-form-outlet", inputs: ["fields"], outputs: ["ready"] }, { kind: "component", type: FieldViewer, selector: "iss-viewer-field" }] });
429
431
  }
430
432
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TableControl, decorators: [{
431
433
  type: Component,
@@ -441,72 +443,72 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
441
443
  FieldViewer,
442
444
  ], providers: [
443
445
  { provide: NG_VALUE_ACCESSOR, useExisting: TableControl, multi: true },
444
- ], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: `
445
- <mat-sidenav-container [hasBackdrop]="true">
446
- <mat-sidenav #drawer [mode]="'over'" [position]="'start'" [autoFocus]="false">
447
- <form [formGroup]="tableOutletForm">
448
- <iss-form-outlet [fields]="fields()"/>
449
- </form>
450
- <ds-button (click)="saveRow(true)">save
451
- </ds-button>
452
- <ds-button (click)="saveRow(false)">save and add more</ds-button>
453
- </mat-sidenav>
454
- <mat-sidenav-content>
455
- <div>
456
- <ds-button icon="true" (click)="openNewRow()">
457
- <ds-icon icon="plus"></ds-icon>
458
- </ds-button>
459
- <!--<button mat-raised-button (click)="removeRow()" class="demo-button">Remove data</button>-->
460
- </div>
461
- @if (withFilter()) {
462
- <mat-form-field>
463
- <mat-label>Filter</mat-label>
464
- <input matInput (keyup)="applyFilter($event)" placeholder="Search in table" #input>
465
- </mat-form-field>
466
- }
467
- <div class="mat-elevation-z8">
468
- <table mat-table [dataSource]="dataSource" matSort>
469
- <tr mat-header-row *matHeaderRowDef="fieldNames()"></tr>
470
- <tr mat-row *matRowDef="let row; columns: fieldNames();" (click)="onRowClick(row)"></tr>
471
-
472
- @for (col of fieldNames(); track col) {
473
- @if (col !== "actions") {
474
- <ng-container [matColumnDef]="col">
475
- <th mat-header-cell *matHeaderCellDef mat-sort-header [disabled]="!fieldsMap().get(col)?.config?.tableWithSort()">
476
- {{ columnLabels()[$index] }}
477
- </th>
478
- <td mat-cell *matCellDef="let row">
479
- @if (viewFieldOf(row, $index); as viewField) {
480
- <iss-viewer-field [field]="viewField"/>
481
- }
482
- </td>
483
- </ng-container>
484
- }
485
- }
486
-
487
- <!-- Actions -->
488
- <ng-container matColumnDef="actions">
489
- <th mat-header-cell *matHeaderCellDef mat-sort-header></th>
490
- <td mat-cell *matCellDef="let row">
491
- <ds-icon icon="eye" class="cursor-pointer" (click)="viewRow(row)"></ds-icon>
492
- <ds-icon icon="pen" class="cursor-pointer" (click)="editRow(row)"></ds-icon>
493
- <ds-icon icon="trash" class="cursor-pointer fc-red" (click)="removeRow(row)"></ds-icon>
494
- </td>
495
- </ng-container>
496
-
497
- <tr class="mat-row" *matNoDataRow>
498
- <td class="mat-cell" colspan="4">
499
- <ds-message type="emptyCard"></ds-message>
500
- </td>
501
- </tr>
502
- </table>
503
-
504
- @if (withPagination()) {
505
- <mat-paginator [pageSizeOptions]="[5, 10, 25, 100]" aria-label="Select page number"></mat-paginator>
506
- }
507
- </div>
508
- </mat-sidenav-content>
509
- </mat-sidenav-container>
446
+ ], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: `
447
+ <mat-sidenav-container [hasBackdrop]="true">
448
+ <mat-sidenav #drawer [mode]="'over'" [position]="'start'" [autoFocus]="false">
449
+ <form [formGroup]="tableOutletForm">
450
+ <iss-form-outlet [fields]="fields()"/>
451
+ </form>
452
+ <ds-button (click)="saveRow(true)">save
453
+ </ds-button>
454
+ <ds-button (click)="saveRow(false)">save and add more</ds-button>
455
+ </mat-sidenav>
456
+ <mat-sidenav-content>
457
+ <div>
458
+ <ds-button icon="true" (click)="openNewRow()">
459
+ <ds-icon icon="plus"></ds-icon>
460
+ </ds-button>
461
+ <!--<button mat-raised-button (click)="removeRow()" class="demo-button">Remove data</button>-->
462
+ </div>
463
+ @if (withFilter()) {
464
+ <mat-form-field>
465
+ <mat-label>Filter</mat-label>
466
+ <input matInput (keyup)="applyFilter($event)" placeholder="Search in table" #input>
467
+ </mat-form-field>
468
+ }
469
+ <div class="mat-elevation-z8">
470
+ <table mat-table [dataSource]="dataSource" matSort>
471
+ <tr mat-header-row *matHeaderRowDef="fieldNames()"></tr>
472
+ <tr mat-row *matRowDef="let row; columns: fieldNames();" (click)="onRowClick(row)"></tr>
473
+
474
+ @for (col of fieldNames(); track col) {
475
+ @if (col !== "actions") {
476
+ <ng-container [matColumnDef]="col">
477
+ <th mat-header-cell *matHeaderCellDef mat-sort-header [disabled]="!fieldsMap().get(col)?.config?.tableWithSort()">
478
+ {{ columnLabels()[$index] }}
479
+ </th>
480
+ <td mat-cell *matCellDef="let row">
481
+ @if (viewFieldOf(row, $index); as viewField) {
482
+ <iss-viewer-field [field]="viewField"/>
483
+ }
484
+ </td>
485
+ </ng-container>
486
+ }
487
+ }
488
+
489
+ <!-- Actions -->
490
+ <ng-container matColumnDef="actions">
491
+ <th mat-header-cell *matHeaderCellDef mat-sort-header></th>
492
+ <td mat-cell *matCellDef="let row">
493
+ <ds-icon icon="eye" class="cursor-pointer" (click)="viewRow(row)"></ds-icon>
494
+ <ds-icon icon="pen" class="cursor-pointer" (click)="editRow(row)"></ds-icon>
495
+ <ds-icon icon="trash" class="cursor-pointer fc-red" (click)="removeRow(row)"></ds-icon>
496
+ </td>
497
+ </ng-container>
498
+
499
+ <tr class="mat-row" *matNoDataRow>
500
+ <td class="mat-cell" colspan="4">
501
+ <ds-message type="emptyCard"></ds-message>
502
+ </td>
503
+ </tr>
504
+ </table>
505
+
506
+ @if (withPagination()) {
507
+ <mat-paginator [pageSizeOptions]="[5, 10, 25, 100]" aria-label="Select page number"></mat-paginator>
508
+ }
509
+ </div>
510
+ </mat-sidenav-content>
511
+ </mat-sidenav-container>
510
512
  `, styles: [".mat-drawer{position:fixed;left:0}\n"] }]
511
513
  }], propDecorators: { columns: [{ type: i0.Input, args: [{ isSignal: true, alias: "columns", required: true }] }], withFilter: [{ type: i0.Input, args: [{ isSignal: true, alias: "withFilter", required: false }] }], withSort: [{ type: i0.Input, args: [{ isSignal: true, alias: "withSort", required: false }] }], withPagination: [{ type: i0.Input, args: [{ isSignal: true, alias: "withPagination", required: false }] }], jsonValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "jsonValue", required: false }] }], drawer: [{ type: i0.ViewChild, args: ["drawer", { isSignal: true }] }], paginator: [{ type: i0.ViewChild, args: [i0.forwardRef(() => MatPaginator), { isSignal: true }] }], sort: [{ type: i0.ViewChild, args: [i0.forwardRef(() => MatSort), { isSignal: true }] }] } });
512
514
 
@@ -589,4 +591,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
589
591
  }] });
590
592
 
591
593
  export { TableField };
592
- //# sourceMappingURL=iss-ctrl-table.field-B5FxF6hn.mjs.map
594
+ //# sourceMappingURL=iss-ctrl-table.field-DdFjH-D8.mjs.map