@ajf/material 13.2.15 → 15.1.1

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 (179) hide show
  1. package/barcode/barcode.d.ts +1 -1
  2. package/calendar/calendar.d.ts +1 -1
  3. package/checkbox-group/checkbox-group-item.d.ts +1 -1
  4. package/esm2020/barcode/barcode-module.mjs +10 -12
  5. package/esm2020/barcode/barcode.mjs +9 -9
  6. package/esm2020/calendar/calendar-module.mjs +5 -5
  7. package/esm2020/calendar/calendar.mjs +6 -6
  8. package/esm2020/checkbox-group/checkbox-group-item.mjs +4 -4
  9. package/esm2020/checkbox-group/checkbox-group-module.mjs +5 -5
  10. package/esm2020/form-builder/branch-line.mjs +3 -3
  11. package/esm2020/form-builder/choices-origin-editor-dialog.mjs +6 -6
  12. package/esm2020/form-builder/choices-origin-editor.mjs +10 -10
  13. package/esm2020/form-builder/condition-editor-dialog.mjs +6 -6
  14. package/esm2020/form-builder/condition-editor.mjs +6 -6
  15. package/esm2020/form-builder/form-builder-module.mjs +30 -32
  16. package/esm2020/form-builder/form-builder-service.mjs +3 -3
  17. package/esm2020/form-builder/form-builder.mjs +13 -13
  18. package/esm2020/form-builder/node-entry.mjs +12 -12
  19. package/esm2020/form-builder/node-properties.mjs +15 -15
  20. package/esm2020/form-builder/node-type-entry.mjs +5 -5
  21. package/esm2020/form-builder/string-identifier-dialog.mjs +16 -16
  22. package/esm2020/form-builder/validation-condition-editor-dialog.mjs +9 -9
  23. package/esm2020/form-builder/warning-condition-editor-dialog.mjs +9 -9
  24. package/esm2020/forms/barcode-field.mjs +4 -4
  25. package/esm2020/forms/boolean-field.mjs +6 -6
  26. package/esm2020/forms/date-field.mjs +4 -4
  27. package/esm2020/forms/date-input-field.mjs +12 -11
  28. package/esm2020/forms/empty-field.mjs +4 -4
  29. package/esm2020/forms/field-service.mjs +3 -3
  30. package/esm2020/forms/field-warning-dialog.mjs +3 -3
  31. package/esm2020/forms/field.mjs +4 -4
  32. package/esm2020/forms/form.mjs +14 -14
  33. package/esm2020/forms/forms-module.mjs +37 -46
  34. package/esm2020/forms/input-field.mjs +6 -6
  35. package/esm2020/forms/multiple-choice-field.mjs +10 -10
  36. package/esm2020/forms/range-field.mjs +8 -8
  37. package/esm2020/forms/single-choice-field.mjs +8 -8
  38. package/esm2020/forms/table-field.mjs +3 -3
  39. package/esm2020/forms/text-field.mjs +6 -6
  40. package/esm2020/forms/time-field.mjs +4 -4
  41. package/esm2020/forms/video-url-field.mjs +5 -5
  42. package/esm2020/forms/warning-alert-service.mjs +3 -3
  43. package/esm2020/image/image-module.mjs +5 -5
  44. package/esm2020/image/image.mjs +5 -5
  45. package/esm2020/monaco-editor/monaco-editor-module.mjs +4 -4
  46. package/esm2020/monaco-editor/monaco-editor.mjs +3 -3
  47. package/esm2020/node-icon/node-icon-module.mjs +5 -5
  48. package/esm2020/node-icon/node-icon.mjs +6 -6
  49. package/esm2020/page-slider/page-slider-module.mjs +5 -5
  50. package/esm2020/page-slider/page-slider.mjs +5 -5
  51. package/esm2020/reports/chart-widget.mjs +7 -7
  52. package/esm2020/reports/filter-widget.mjs +5 -5
  53. package/esm2020/reports/formula-widget.mjs +4 -4
  54. package/esm2020/reports/graph-widget.mjs +3 -3
  55. package/esm2020/reports/heat-map-widget.mjs +3 -3
  56. package/esm2020/reports/image-container-widget.mjs +6 -6
  57. package/esm2020/reports/image-widget.mjs +4 -4
  58. package/esm2020/reports/map-widget.mjs +4 -4
  59. package/esm2020/reports/page-break-widget.mjs +4 -4
  60. package/esm2020/reports/report.mjs +6 -6
  61. package/esm2020/reports/reports-module.mjs +19 -21
  62. package/esm2020/reports/table-widget.mjs +6 -6
  63. package/esm2020/reports/text-widget.mjs +4 -4
  64. package/esm2020/reports/widget.mjs +30 -30
  65. package/esm2020/time/time-module.mjs +5 -5
  66. package/esm2020/time/time.mjs +7 -7
  67. package/fesm2015/ajf-material-barcode.mjs +20 -22
  68. package/fesm2015/ajf-material-barcode.mjs.map +1 -1
  69. package/fesm2015/ajf-material-calendar.mjs +11 -11
  70. package/fesm2015/ajf-material-calendar.mjs.map +1 -1
  71. package/fesm2015/ajf-material-checkbox-group.mjs +8 -8
  72. package/fesm2015/ajf-material-checkbox-group.mjs.map +1 -1
  73. package/fesm2015/ajf-material-form-builder.mjs +326 -328
  74. package/fesm2015/ajf-material-form-builder.mjs.map +1 -1
  75. package/fesm2015/ajf-material-forms.mjs +151 -159
  76. package/fesm2015/ajf-material-forms.mjs.map +1 -1
  77. package/fesm2015/ajf-material-image.mjs +9 -9
  78. package/fesm2015/ajf-material-image.mjs.map +1 -1
  79. package/fesm2015/ajf-material-monaco-editor.mjs +7 -7
  80. package/fesm2015/ajf-material-node-icon.mjs +10 -10
  81. package/fesm2015/ajf-material-node-icon.mjs.map +1 -1
  82. package/fesm2015/ajf-material-page-slider.mjs +11 -11
  83. package/fesm2015/ajf-material-page-slider.mjs.map +1 -1
  84. package/fesm2015/ajf-material-reports.mjs +104 -106
  85. package/fesm2015/ajf-material-reports.mjs.map +1 -1
  86. package/fesm2015/ajf-material-time.mjs +11 -11
  87. package/fesm2015/ajf-material-time.mjs.map +1 -1
  88. package/fesm2020/ajf-material-barcode.mjs +20 -22
  89. package/fesm2020/ajf-material-barcode.mjs.map +1 -1
  90. package/fesm2020/ajf-material-calendar.mjs +11 -11
  91. package/fesm2020/ajf-material-calendar.mjs.map +1 -1
  92. package/fesm2020/ajf-material-checkbox-group.mjs +8 -8
  93. package/fesm2020/ajf-material-checkbox-group.mjs.map +1 -1
  94. package/fesm2020/ajf-material-form-builder.mjs +326 -328
  95. package/fesm2020/ajf-material-form-builder.mjs.map +1 -1
  96. package/fesm2020/ajf-material-forms.mjs +151 -159
  97. package/fesm2020/ajf-material-forms.mjs.map +1 -1
  98. package/fesm2020/ajf-material-image.mjs +9 -9
  99. package/fesm2020/ajf-material-image.mjs.map +1 -1
  100. package/fesm2020/ajf-material-monaco-editor.mjs +7 -7
  101. package/fesm2020/ajf-material-node-icon.mjs +10 -10
  102. package/fesm2020/ajf-material-node-icon.mjs.map +1 -1
  103. package/fesm2020/ajf-material-page-slider.mjs +11 -11
  104. package/fesm2020/ajf-material-page-slider.mjs.map +1 -1
  105. package/fesm2020/ajf-material-reports.mjs +104 -106
  106. package/fesm2020/ajf-material-reports.mjs.map +1 -1
  107. package/fesm2020/ajf-material-time.mjs +11 -11
  108. package/fesm2020/ajf-material-time.mjs.map +1 -1
  109. package/form-builder/branch-line.d.ts +1 -1
  110. package/form-builder/choices-origin-editor-dialog.d.ts +1 -1
  111. package/form-builder/choices-origin-editor.d.ts +1 -1
  112. package/form-builder/condition-editor-dialog.d.ts +1 -1
  113. package/form-builder/condition-editor.d.ts +1 -1
  114. package/form-builder/form-builder.d.ts +1 -1
  115. package/form-builder/node-entry.d.ts +1 -1
  116. package/form-builder/node-properties.d.ts +4 -4
  117. package/form-builder/node-type-entry.d.ts +1 -1
  118. package/form-builder/string-identifier-dialog.d.ts +1 -1
  119. package/form-builder/validation-condition-editor-dialog.d.ts +1 -1
  120. package/form-builder/warning-condition-editor-dialog.d.ts +1 -1
  121. package/forms/barcode-field.d.ts +1 -1
  122. package/forms/boolean-field.d.ts +1 -1
  123. package/forms/date-field.d.ts +1 -1
  124. package/forms/date-input-field.d.ts +1 -1
  125. package/forms/empty-field.d.ts +1 -1
  126. package/forms/field-warning-dialog.d.ts +1 -1
  127. package/forms/field.d.ts +1 -1
  128. package/forms/form.d.ts +1 -1
  129. package/forms/forms-module.d.ts +15 -13
  130. package/forms/input-field.d.ts +1 -1
  131. package/forms/multiple-choice-field.d.ts +1 -1
  132. package/forms/range-field.d.ts +1 -1
  133. package/forms/single-choice-field.d.ts +1 -1
  134. package/forms/table-field.d.ts +1 -1
  135. package/forms/text-field.d.ts +1 -1
  136. package/forms/time-field.d.ts +1 -1
  137. package/forms/video-url-field.d.ts +1 -1
  138. package/image/image.d.ts +1 -1
  139. package/monaco-editor/monaco-editor.d.ts +1 -1
  140. package/node-icon/node-icon.d.ts +1 -1
  141. package/package.json +22 -22
  142. package/page-slider/page-slider.d.ts +1 -1
  143. package/reports/chart-widget.d.ts +1 -1
  144. package/reports/filter-widget.d.ts +1 -1
  145. package/reports/formula-widget.d.ts +1 -1
  146. package/reports/graph-widget.d.ts +1 -1
  147. package/reports/heat-map-widget.d.ts +1 -1
  148. package/reports/image-container-widget.d.ts +1 -1
  149. package/reports/image-widget.d.ts +1 -1
  150. package/reports/map-widget.d.ts +1 -1
  151. package/reports/page-break-widget.d.ts +1 -1
  152. package/reports/report.d.ts +1 -1
  153. package/reports/table-widget.d.ts +1 -1
  154. package/reports/text-widget.d.ts +1 -1
  155. package/reports/widget.d.ts +6 -6
  156. package/time/time.d.ts +1 -1
  157. package/barcode/package.json +0 -10
  158. package/calendar/package.json +0 -10
  159. package/checkbox-group/package.json +0 -10
  160. package/form-builder/package.json +0 -10
  161. package/forms/package.json +0 -10
  162. package/image/package.json +0 -10
  163. package/monaco-editor/package.json +0 -10
  164. package/node-icon/package.json +0 -10
  165. package/page-slider/package.json +0 -10
  166. package/reports/package.json +0 -10
  167. package/time/package.json +0 -10
  168. /package/barcode/{ajf-material-barcode.d.ts → index.d.ts} +0 -0
  169. /package/calendar/{ajf-material-calendar.d.ts → index.d.ts} +0 -0
  170. /package/checkbox-group/{ajf-material-checkbox-group.d.ts → index.d.ts} +0 -0
  171. /package/form-builder/{ajf-material-form-builder.d.ts → index.d.ts} +0 -0
  172. /package/forms/{ajf-material-forms.d.ts → index.d.ts} +0 -0
  173. /package/image/{ajf-material-image.d.ts → index.d.ts} +0 -0
  174. /package/{ajf-material.d.ts → index.d.ts} +0 -0
  175. /package/monaco-editor/{ajf-material-monaco-editor.d.ts → index.d.ts} +0 -0
  176. /package/node-icon/{ajf-material-node-icon.d.ts → index.d.ts} +0 -0
  177. /package/page-slider/{ajf-material-page-slider.d.ts → index.d.ts} +0 -0
  178. /package/reports/{ajf-material-reports.d.ts → index.d.ts} +0 -0
  179. /package/time/{ajf-material-time.d.ts → index.d.ts} +0 -0
@@ -1,15 +1,15 @@
1
- import * as i1$1 from '@ajf/core/forms';
1
+ import * as i1 from '@ajf/core/forms';
2
2
  import { AjfBaseFieldComponent, AJF_WARNING_ALERT_SERVICE, AjfInputFieldComponent as AjfInputFieldComponent$1, AjfFieldWithChoicesComponent, AJF_SEARCH_ALERT_THRESHOLD, AjfTableFieldComponent as AjfTableFieldComponent$1, AjfVideoUrlFieldComponent as AjfVideoUrlFieldComponent$1, AjfFieldService as AjfFieldService$1, AjfFieldType, AjfReadOnlyFieldComponent, AjfReadOnlyTableFieldComponent, AjfReadOnlySelectFieldComponent, AjfFileFieldComponent, AjfReadOnlyFileFieldComponent, AjfImageFieldComponent, AjfReadOnlyImageFieldComponent, AjfReadOnlyVideoUrlFieldComponent, AjfFormField as AjfFormField$1, AjfFormRenderer as AjfFormRenderer$1, AjfFormsModule as AjfFormsModule$1 } from '@ajf/core/forms';
3
3
  import * as i0 from '@angular/core';
4
4
  import { Component, ChangeDetectionStrategy, ViewEncapsulation, Injectable, Inject, ViewChild, Optional, Input, NgModule } from '@angular/core';
5
- import * as i2$1 from '@angular/material/slide-toggle';
6
- import { MatSlideToggleModule } from '@angular/material/slide-toggle';
7
- import * as i3 from '@angular/common';
5
+ import * as i2$1 from '@angular/common';
8
6
  import { CommonModule } from '@angular/common';
9
- import * as i4 from '@angular/forms';
7
+ import * as i3 from '@angular/material/slide-toggle';
8
+ import { MatSlideToggleModule } from '@angular/material/slide-toggle';
9
+ import * as i6 from '@angular/forms';
10
10
  import { ReactiveFormsModule } from '@angular/forms';
11
11
  import { map } from 'rxjs/operators';
12
- import * as i1 from '@angular/material/button';
12
+ import * as i5 from '@angular/material/button';
13
13
  import { MatButtonModule } from '@angular/material/button';
14
14
  import * as i2 from '@angular/material/dialog';
15
15
  import { MatDialogModule } from '@angular/material/dialog';
@@ -17,42 +17,45 @@ import * as i2$2 from '@ajf/material/calendar';
17
17
  import { AjfCalendarModule } from '@ajf/material/calendar';
18
18
  import * as i4$1 from '@angular/material/input';
19
19
  import { MatInput, MatInputModule } from '@angular/material/input';
20
- import * as i2$3 from '@angular/material/form-field';
20
+ import * as i3$1 from '@angular/material/datepicker';
21
+ import { MatDatepickerModule } from '@angular/material/datepicker';
22
+ import * as i4 from '@angular/material/form-field';
21
23
  import { MatFormFieldModule } from '@angular/material/form-field';
22
- import * as i3$1 from '@ngneat/transloco';
23
- import * as i2$4 from '@ajf/material/barcode';
24
+ import * as i3$2 from '@ngneat/transloco';
25
+ import * as i2$3 from '@ajf/material/barcode';
24
26
  import { AjfBarcodeModule } from '@ajf/material/barcode';
25
- import * as i2$5 from '@angular/material/select';
26
- import { MatSelectModule } from '@angular/material/select';
27
- import * as i3$2 from '@angular/material/core';
28
- import * as i4$2 from '@ajf/material/checkbox-group';
27
+ import * as i2$4 from '@ajf/material/checkbox-group';
29
28
  import { AjfCheckboxGroupModule } from '@ajf/material/checkbox-group';
30
- import * as i7 from '@ajf/core/checkbox-group';
29
+ import * as i3$3 from '@ajf/core/checkbox-group';
30
+ import * as i5$1 from '@angular/material/select';
31
+ import { MatSelectModule } from '@angular/material/select';
32
+ import * as i6$1 from '@angular/material/core';
33
+ import { MatNativeDateModule } from '@angular/material/core';
31
34
  import { AjfRange } from '@ajf/core/range';
32
- import * as i2$6 from '@angular/material/slider';
35
+ import * as i4$2 from '@angular/material/slider';
33
36
  import { MatSliderModule } from '@angular/material/slider';
34
- import * as i4$3 from '@angular/material/radio';
37
+ import * as i3$4 from '@angular/material/radio';
35
38
  import { MatRadioModule } from '@angular/material/radio';
36
- import * as i4$4 from '@ajf/core/common';
39
+ import * as i4$3 from '@ajf/core/common';
37
40
  import { AjfCommonModule } from '@ajf/core/common';
38
- import * as i5 from '@angular/cdk/text-field';
41
+ import * as i5$2 from '@angular/cdk/text-field';
39
42
  import { TextFieldModule } from '@angular/cdk/text-field';
40
- import * as i2$7 from '@ajf/material/time';
43
+ import * as i2$5 from '@ajf/material/time';
41
44
  import { AjfTimeModule } from '@ajf/material/time';
42
- import * as i2$8 from '@angular/platform-browser';
43
- import * as i3$3 from '@angular/common/http';
44
- import * as i2$9 from '@angular/material/toolbar';
45
- import { MatToolbarModule } from '@angular/material/toolbar';
46
- import * as i3$4 from '@angular/material/button-toggle';
47
- import { MatButtonToggleModule } from '@angular/material/button-toggle';
48
- import * as i4$5 from '@angular/material/icon';
49
- import { MatIconModule } from '@angular/material/icon';
50
- import * as i6 from '@ajf/material/page-slider';
45
+ import * as i2$6 from '@angular/platform-browser';
46
+ import * as i3$5 from '@angular/common/http';
47
+ import * as i2$7 from '@ajf/core/page-slider';
48
+ import * as i3$6 from '@ajf/material/page-slider';
51
49
  import { AjfPageSliderModule } from '@ajf/material/page-slider';
52
- import * as i7$1 from '@ajf/core/page-slider';
53
- import * as i8 from '@angular/material/card';
50
+ import * as i6$2 from '@angular/material/button-toggle';
51
+ import { MatButtonToggleModule } from '@angular/material/button-toggle';
52
+ import * as i7 from '@angular/material/card';
54
53
  import { MatCardModule } from '@angular/material/card';
55
- import * as i12 from '@angular/material/tooltip';
54
+ import * as i8 from '@angular/material/icon';
55
+ import { MatIconModule } from '@angular/material/icon';
56
+ import * as i9 from '@angular/material/toolbar';
57
+ import { MatToolbarModule } from '@angular/material/toolbar';
58
+ import * as i10 from '@angular/material/tooltip';
56
59
  import { MatTooltipModule } from '@angular/material/tooltip';
57
60
  import { AjfTranslocoModule } from '@ajf/core/transloco';
58
61
 
@@ -82,9 +85,9 @@ class AjfFieldWarningDialog {
82
85
  this.message = '';
83
86
  }
84
87
  }
85
- AjfFieldWarningDialog.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfFieldWarningDialog, deps: [], target: i0.ɵɵFactoryTarget.Component });
86
- AjfFieldWarningDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: AjfFieldWarningDialog, selector: "ng-component", ngImport: i0, template: "<mat-dialog-content><div [innerHTML]=\"message\"></div></mat-dialog-content>\n<mat-dialog-actions>\n <button mat-button [mat-dialog-close]=\"true\">Ok</button>\n <button mat-button [mat-dialog-close]=\"false\">Cancel</button>\n</mat-dialog-actions>\n", components: [{ type: i1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
87
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfFieldWarningDialog, decorators: [{
88
+ AjfFieldWarningDialog.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfFieldWarningDialog, deps: [], target: i0.ɵɵFactoryTarget.Component });
89
+ AjfFieldWarningDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AjfFieldWarningDialog, selector: "ng-component", ngImport: i0, template: "<mat-dialog-content><div [innerHTML]=\"message\"></div></mat-dialog-content>\n<mat-dialog-actions>\n <button mat-button [mat-dialog-close]=\"true\">Ok</button>\n <button mat-button [mat-dialog-close]=\"false\">Cancel</button>\n</mat-dialog-actions>\n", dependencies: [{ kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
90
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfFieldWarningDialog, decorators: [{
88
91
  type: Component,
89
92
  args: [{ changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<mat-dialog-content><div [innerHTML]=\"message\"></div></mat-dialog-content>\n<mat-dialog-actions>\n <button mat-button [mat-dialog-close]=\"true\">Ok</button>\n <button mat-button [mat-dialog-close]=\"false\">Cancel</button>\n</mat-dialog-actions>\n" }]
90
93
  }] });
@@ -99,9 +102,9 @@ class AjfWarningAlertService {
99
102
  return dialog.afterClosed().pipe(map((result) => ({ result })));
100
103
  }
101
104
  }
102
- AjfWarningAlertService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfWarningAlertService, deps: [{ token: i2.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable });
103
- AjfWarningAlertService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfWarningAlertService });
104
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfWarningAlertService, decorators: [{
105
+ AjfWarningAlertService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfWarningAlertService, deps: [{ token: i2.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable });
106
+ AjfWarningAlertService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfWarningAlertService });
107
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfWarningAlertService, decorators: [{
105
108
  type: Injectable
106
109
  }], ctorParameters: function () { return [{ type: i2.MatDialog }]; } });
107
110
 
@@ -131,12 +134,12 @@ class AjfBooleanFieldComponent extends AjfBaseFieldComponent {
131
134
  super(cdr, service, was);
132
135
  }
133
136
  }
134
- AjfBooleanFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfBooleanFieldComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$1.AjfFormRendererService }, { token: AJF_WARNING_ALERT_SERVICE }], target: i0.ɵɵFactoryTarget.Component });
135
- AjfBooleanFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: AjfBooleanFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<mat-slide-toggle *ngIf=\"control|async as ctrl\" [formControl]=\"ctrl!\"></mat-slide-toggle>\n", styles: [""], components: [{ type: i2$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex", "name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "checked"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "async": i3.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
136
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfBooleanFieldComponent, decorators: [{
137
+ AjfBooleanFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfBooleanFieldComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.AjfFormRendererService }, { token: AJF_WARNING_ALERT_SERVICE }], target: i0.ɵɵFactoryTarget.Component });
138
+ AjfBooleanFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AjfBooleanFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<mat-slide-toggle *ngIf=\"control|async as ctrl\" [formControl]=\"ctrl!\"></mat-slide-toggle>\n", styles: [""], dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
139
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfBooleanFieldComponent, decorators: [{
137
140
  type: Component,
138
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<mat-slide-toggle *ngIf=\"control|async as ctrl\" [formControl]=\"ctrl!\"></mat-slide-toggle>\n", styles: [""] }]
139
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1$1.AjfFormRendererService }, { type: AjfWarningAlertService, decorators: [{
141
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<mat-slide-toggle *ngIf=\"control|async as ctrl\" [formControl]=\"ctrl!\"></mat-slide-toggle>\n" }]
142
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.AjfFormRendererService }, { type: AjfWarningAlertService, decorators: [{
140
143
  type: Inject,
141
144
  args: [AJF_WARNING_ALERT_SERVICE]
142
145
  }] }]; } });
@@ -167,12 +170,12 @@ class AjfDateFieldComponent extends AjfBaseFieldComponent {
167
170
  super(cdr, service, was);
168
171
  }
169
172
  }
170
- AjfDateFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfDateFieldComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$1.AjfFormRendererService }, { token: AJF_WARNING_ALERT_SERVICE }], target: i0.ɵɵFactoryTarget.Component });
171
- AjfDateFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: AjfDateFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ajf-calendar\n *ngIf=\"control|async as ctrl\"\n selectionMode=\"day\"\n [dateOnlyForDay]=\"true\"\n [minDate]=\"instance!.node.minDate|ajfDateValue\"\n [maxDate]=\"instance!.node.maxDate|ajfDateValue\"\n [formControl]=\"ctrl!\"\n></ajf-calendar>\n", styles: [""], components: [{ type: i2$2.AjfCalendarComponent, selector: "ajf-calendar" }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "ajfDateValue": i1$1.AjfDateValuePipe, "async": i3.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
172
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfDateFieldComponent, decorators: [{
173
+ AjfDateFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfDateFieldComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.AjfFormRendererService }, { token: AJF_WARNING_ALERT_SERVICE }], target: i0.ɵɵFactoryTarget.Component });
174
+ AjfDateFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AjfDateFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ajf-calendar\n *ngIf=\"control|async as ctrl\"\n selectionMode=\"day\"\n [dateOnlyForDay]=\"true\"\n [minDate]=\"instance!.node.minDate|ajfDateValue\"\n [maxDate]=\"instance!.node.maxDate|ajfDateValue\"\n [formControl]=\"ctrl!\"\n></ajf-calendar>\n", styles: [""], dependencies: [{ kind: "component", type: i2$2.AjfCalendarComponent, selector: "ajf-calendar" }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.AjfDateValuePipe, name: "ajfDateValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
175
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfDateFieldComponent, decorators: [{
173
176
  type: Component,
174
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ajf-calendar\n *ngIf=\"control|async as ctrl\"\n selectionMode=\"day\"\n [dateOnlyForDay]=\"true\"\n [minDate]=\"instance!.node.minDate|ajfDateValue\"\n [maxDate]=\"instance!.node.maxDate|ajfDateValue\"\n [formControl]=\"ctrl!\"\n></ajf-calendar>\n", styles: [""] }]
175
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1$1.AjfFormRendererService }, { type: AjfWarningAlertService, decorators: [{
177
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ajf-calendar\n *ngIf=\"control|async as ctrl\"\n selectionMode=\"day\"\n [dateOnlyForDay]=\"true\"\n [minDate]=\"instance!.node.minDate|ajfDateValue\"\n [maxDate]=\"instance!.node.maxDate|ajfDateValue\"\n [formControl]=\"ctrl!\"\n></ajf-calendar>\n" }]
178
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.AjfFormRendererService }, { type: AjfWarningAlertService, decorators: [{
176
179
  type: Inject,
177
180
  args: [AJF_WARNING_ALERT_SERVICE]
178
181
  }] }]; } });
@@ -223,15 +226,15 @@ class AjfDateInputFieldComponent extends AjfBaseFieldComponent {
223
226
  this._maxDateStr = this._dvs.transform(this.instance.node.maxDate);
224
227
  }
225
228
  }
226
- AjfDateInputFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfDateInputFieldComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$1.AjfFormRendererService }, { token: AJF_WARNING_ALERT_SERVICE }, { token: i1$1.AjfDateValueStringPipe }], target: i0.ɵɵFactoryTarget.Component });
227
- AjfDateInputFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: AjfDateInputFieldComponent, selector: "ng-component", viewQueries: [{ propertyName: "input", first: true, predicate: MatInput, descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-form-field *ngIf=\"control|async as ctrl\">\n <input matInput type=\"date\"\n [attr.aria-label]=\"instance!|ajfNodeCompleteName\"\n [min]=\"instance!.node.minDate|ajfDateValueString\"\n [max]=\"instance!.node.maxDate|ajfDateValueString\"\n (change)=\"onChange()\"\n [formControl]=\"ctrl!\">\n</mat-form-field>\n", styles: [""], components: [{ type: i2$3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "async": i3.AsyncPipe, "ajfNodeCompleteName": i1$1.AjfNodeCompleteNamePipe, "ajfDateValueString": i1$1.AjfDateValueStringPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
228
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfDateInputFieldComponent, decorators: [{
229
+ AjfDateInputFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfDateInputFieldComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.AjfFormRendererService }, { token: AJF_WARNING_ALERT_SERVICE }, { token: i1.AjfDateValueStringPipe }], target: i0.ɵɵFactoryTarget.Component });
230
+ AjfDateInputFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AjfDateInputFieldComponent, selector: "ng-component", viewQueries: [{ propertyName: "input", first: true, predicate: MatInput, descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-form-field *ngIf=\"control|async as ctrl\">\n <input\n matInput\n [matDatepicker]=\"picker\"\n [attr.aria-label]=\"instance!|ajfNodeCompleteName\"\n [min]=\"instance!.node.minDate|ajfDateValueString\"\n [max]=\"instance!.node.maxDate|ajfDateValueString\"\n (change)=\"onChange()\"\n [formControl]=\"ctrl!\"\n />\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n</mat-form-field>\n", styles: [""], dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$1.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i3$1.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i3$1.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i4$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i6.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: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.AjfDateValueStringPipe, name: "ajfDateValueString" }, { kind: "pipe", type: i1.AjfNodeCompleteNamePipe, name: "ajfNodeCompleteName" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
231
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfDateInputFieldComponent, decorators: [{
229
232
  type: Component,
230
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<mat-form-field *ngIf=\"control|async as ctrl\">\n <input matInput type=\"date\"\n [attr.aria-label]=\"instance!|ajfNodeCompleteName\"\n [min]=\"instance!.node.minDate|ajfDateValueString\"\n [max]=\"instance!.node.maxDate|ajfDateValueString\"\n (change)=\"onChange()\"\n [formControl]=\"ctrl!\">\n</mat-form-field>\n", styles: [""] }]
231
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1$1.AjfFormRendererService }, { type: AjfWarningAlertService, decorators: [{
233
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<mat-form-field *ngIf=\"control|async as ctrl\">\n <input\n matInput\n [matDatepicker]=\"picker\"\n [attr.aria-label]=\"instance!|ajfNodeCompleteName\"\n [min]=\"instance!.node.minDate|ajfDateValueString\"\n [max]=\"instance!.node.maxDate|ajfDateValueString\"\n (change)=\"onChange()\"\n [formControl]=\"ctrl!\"\n />\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n</mat-form-field>\n" }]
234
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.AjfFormRendererService }, { type: AjfWarningAlertService, decorators: [{
232
235
  type: Inject,
233
236
  args: [AJF_WARNING_ALERT_SERVICE]
234
- }] }, { type: i1$1.AjfDateValueStringPipe }]; }, propDecorators: { input: [{
237
+ }] }, { type: i1.AjfDateValueStringPipe }]; }, propDecorators: { input: [{
235
238
  type: ViewChild,
236
239
  args: [MatInput, { static: false }]
237
240
  }] } });
@@ -262,12 +265,12 @@ class AjfEmptyFieldComponent extends AjfBaseFieldComponent {
262
265
  super(cdr, service, was);
263
266
  }
264
267
  }
265
- AjfEmptyFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfEmptyFieldComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$1.AjfFormRendererService }, { token: AJF_WARNING_ALERT_SERVICE }], target: i0.ɵɵFactoryTarget.Component });
266
- AjfEmptyFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: AjfEmptyFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"instance\">\n <h1 [innerHTML]=\"instance.node.label | transloco\"></h1>\n <div [innerHTML]=\"instance.node.HTML | transloco\"></div>\n</ng-container>\n", styles: [""], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "transloco": i3$1.TranslocoPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
267
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfEmptyFieldComponent, decorators: [{
268
+ AjfEmptyFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfEmptyFieldComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.AjfFormRendererService }, { token: AJF_WARNING_ALERT_SERVICE }], target: i0.ɵɵFactoryTarget.Component });
269
+ AjfEmptyFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AjfEmptyFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"instance\">\n <h1 [innerHTML]=\"instance.node.label | transloco\"></h1>\n <div [innerHTML]=\"instance.node.HTML | transloco\"></div>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3$2.TranslocoPipe, name: "transloco" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
270
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfEmptyFieldComponent, decorators: [{
268
271
  type: Component,
269
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"instance\">\n <h1 [innerHTML]=\"instance.node.label | transloco\"></h1>\n <div [innerHTML]=\"instance.node.HTML | transloco\"></div>\n</ng-container>\n", styles: [""] }]
270
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1$1.AjfFormRendererService }, { type: AjfWarningAlertService, decorators: [{
272
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"instance\">\n <h1 [innerHTML]=\"instance.node.label | transloco\"></h1>\n <div [innerHTML]=\"instance.node.HTML | transloco\"></div>\n</ng-container>\n" }]
273
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.AjfFormRendererService }, { type: AjfWarningAlertService, decorators: [{
271
274
  type: Inject,
272
275
  args: [AJF_WARNING_ALERT_SERVICE]
273
276
  }] }]; } });
@@ -298,12 +301,12 @@ class AjfBarcodeFieldComponent extends AjfBaseFieldComponent {
298
301
  super(cdr, service, was);
299
302
  }
300
303
  }
301
- AjfBarcodeFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfBarcodeFieldComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$1.AjfFormRendererService }, { token: AJF_WARNING_ALERT_SERVICE }], target: i0.ɵɵFactoryTarget.Component });
302
- AjfBarcodeFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: AjfBarcodeFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ajf-barcode *ngIf=\"control|async as ctrl\" [formControl]=\"ctrl!\"></ajf-barcode>\n", styles: [""], components: [{ type: i2$4.AjfBarcodeComponent, selector: "ajf-barcode" }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "async": i3.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
303
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfBarcodeFieldComponent, decorators: [{
304
+ AjfBarcodeFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfBarcodeFieldComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.AjfFormRendererService }, { token: AJF_WARNING_ALERT_SERVICE }], target: i0.ɵɵFactoryTarget.Component });
305
+ AjfBarcodeFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AjfBarcodeFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ajf-barcode *ngIf=\"control|async as ctrl\" [formControl]=\"ctrl!\"></ajf-barcode>\n", styles: [""], dependencies: [{ kind: "component", type: i2$3.AjfBarcodeComponent, selector: "ajf-barcode" }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
306
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfBarcodeFieldComponent, decorators: [{
304
307
  type: Component,
305
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ajf-barcode *ngIf=\"control|async as ctrl\" [formControl]=\"ctrl!\"></ajf-barcode>\n", styles: [""] }]
306
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1$1.AjfFormRendererService }, { type: AjfWarningAlertService, decorators: [{
308
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ajf-barcode *ngIf=\"control|async as ctrl\" [formControl]=\"ctrl!\"></ajf-barcode>\n" }]
309
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.AjfFormRendererService }, { type: AjfWarningAlertService, decorators: [{
307
310
  type: Inject,
308
311
  args: [AJF_WARNING_ALERT_SERVICE]
309
312
  }] }]; } });
@@ -334,12 +337,12 @@ class AjfInputFieldComponent extends AjfInputFieldComponent$1 {
334
337
  super(cdr, service, was);
335
338
  }
336
339
  }
337
- AjfInputFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfInputFieldComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$1.AjfFormRendererService }, { token: AJF_WARNING_ALERT_SERVICE }], target: i0.ɵɵFactoryTarget.Component });
338
- AjfInputFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: AjfInputFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<mat-form-field *ngIf=\"control|async as ctrl\">\n <input matInput *ngIf=\"type === 'text'\" type=\"text\" [formControl]=\"ctrl!\"\n [readonly]=\"instance!|ajfIsReadonlyInputField\" [attr.aria-labelledby]=\"instance!.node.name\">\n <input matInput *ngIf=\"type === 'number'\" type=\"number\" [formControl]=\"ctrl!\"\n [readonly]=\"instance!|ajfIsReadonlyInputField\" [attr.aria-labelledby]=\"instance!.node.name\">\n</mat-form-field>\n", styles: [""], components: [{ type: i2$3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }], pipes: { "async": i3.AsyncPipe, "ajfIsReadonlyInputField": i1$1.AjfIsReadonlyInputFieldPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
339
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfInputFieldComponent, decorators: [{
340
+ AjfInputFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfInputFieldComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.AjfFormRendererService }, { token: AJF_WARNING_ALERT_SERVICE }], target: i0.ɵɵFactoryTarget.Component });
341
+ AjfInputFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AjfInputFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<mat-form-field *ngIf=\"control|async as ctrl\">\n <input matInput *ngIf=\"type === 'text'\" type=\"text\" [formControl]=\"ctrl!\"\n [readonly]=\"instance!|ajfIsReadonlyInputField\" [attr.aria-labelledby]=\"instance!.node.name\">\n <input matInput *ngIf=\"type === 'number'\" type=\"number\" [formControl]=\"ctrl!\"\n [readonly]=\"instance!|ajfIsReadonlyInputField\" [attr.aria-labelledby]=\"instance!.node.name\">\n</mat-form-field>\n", styles: [""], dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i6.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: i6.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.AjfIsReadonlyInputFieldPipe, name: "ajfIsReadonlyInputField" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
342
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfInputFieldComponent, decorators: [{
340
343
  type: Component,
341
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<mat-form-field *ngIf=\"control|async as ctrl\">\n <input matInput *ngIf=\"type === 'text'\" type=\"text\" [formControl]=\"ctrl!\"\n [readonly]=\"instance!|ajfIsReadonlyInputField\" [attr.aria-labelledby]=\"instance!.node.name\">\n <input matInput *ngIf=\"type === 'number'\" type=\"number\" [formControl]=\"ctrl!\"\n [readonly]=\"instance!|ajfIsReadonlyInputField\" [attr.aria-labelledby]=\"instance!.node.name\">\n</mat-form-field>\n", styles: [""] }]
342
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1$1.AjfFormRendererService }, { type: AjfWarningAlertService, decorators: [{
344
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<mat-form-field *ngIf=\"control|async as ctrl\">\n <input matInput *ngIf=\"type === 'text'\" type=\"text\" [formControl]=\"ctrl!\"\n [readonly]=\"instance!|ajfIsReadonlyInputField\" [attr.aria-labelledby]=\"instance!.node.name\">\n <input matInput *ngIf=\"type === 'number'\" type=\"number\" [formControl]=\"ctrl!\"\n [readonly]=\"instance!|ajfIsReadonlyInputField\" [attr.aria-labelledby]=\"instance!.node.name\">\n</mat-form-field>\n" }]
345
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.AjfFormRendererService }, { type: AjfWarningAlertService, decorators: [{
343
346
  type: Inject,
344
347
  args: [AJF_WARNING_ALERT_SERVICE]
345
348
  }] }]; } });
@@ -370,12 +373,12 @@ class AjfMultipleChoiceFieldComponent extends AjfFieldWithChoicesComponent {
370
373
  super(cdr, service, was, searchThreshold);
371
374
  }
372
375
  }
373
- AjfMultipleChoiceFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfMultipleChoiceFieldComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$1.AjfFormRendererService }, { token: AJF_WARNING_ALERT_SERVICE }, { token: AJF_SEARCH_ALERT_THRESHOLD, optional: true }], target: i0.ɵɵFactoryTarget.Component });
374
- AjfMultipleChoiceFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: AjfMultipleChoiceFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"instance\">\n <ng-container *ngIf=\"!(instance|ajfExpandFieldWithChoices:searchThreshold); else expanded\">\n <mat-select *ngIf=\"control|async as ctrl\" [formControl]=\"ctrl!\" [multiple]=\"true\">\n <mat-option [value]=\"choice.value\"\n *ngFor=\"let choice of instance!.filteredChoices\">\n {{ choice.label | transloco }}\n </mat-option>\n </mat-select>\n </ng-container>\n</ng-container>\n<ng-template #expanded>\n <ajf-checkbox-group *ngIf=\"control|async as ctrl\" class=\"ajf-choices-container\"\n [formControl]=\"ctrl!\">\n <ajf-checkbox-group-item *ngFor=\"let choice of instance!.filteredChoices\"\n [value]=\"choice.value\">\n {{ choice.label | transloco }}\n </ajf-checkbox-group-item>\n </ajf-checkbox-group>\n</ng-template>\n", styles: [""], components: [{ type: i2$5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i3$2.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i4$2.CheckboxGroupItem, selector: "ajf-checkbox-group-item" }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.AjfCheckboxGroup, selector: "ajf-checkbox-group,[ajf-checkbox-group]", inputs: ["value", "name", "disabled"], outputs: ["change"] }], pipes: { "ajfExpandFieldWithChoices": i1$1.AjfExpandFieldWithChoicesPipe, "async": i3.AsyncPipe, "transloco": i3$1.TranslocoPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
375
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfMultipleChoiceFieldComponent, decorators: [{
376
+ AjfMultipleChoiceFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfMultipleChoiceFieldComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.AjfFormRendererService }, { token: AJF_WARNING_ALERT_SERVICE }, { token: AJF_SEARCH_ALERT_THRESHOLD, optional: true }], target: i0.ɵɵFactoryTarget.Component });
377
+ AjfMultipleChoiceFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AjfMultipleChoiceFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"instance\">\n <ng-container *ngIf=\"!(instance|ajfExpandFieldWithChoices:searchThreshold); else expanded\">\n <mat-select *ngIf=\"control|async as ctrl\" [formControl]=\"ctrl!\" [multiple]=\"true\">\n <mat-option [value]=\"choice.value\"\n *ngFor=\"let choice of instance!.filteredChoices\">\n {{ choice.label | transloco }}\n </mat-option>\n </mat-select>\n </ng-container>\n</ng-container>\n<ng-template #expanded>\n <ajf-checkbox-group *ngIf=\"control|async as ctrl\" class=\"ajf-choices-container\"\n [formControl]=\"ctrl!\">\n <ajf-checkbox-group-item *ngFor=\"let choice of instance!.filteredChoices\"\n [value]=\"choice.value\">\n {{ choice.label | transloco }}\n </ajf-checkbox-group-item>\n </ajf-checkbox-group>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "component", type: i2$4.CheckboxGroupItem, selector: "ajf-checkbox-group-item" }, { kind: "directive", type: i3$3.AjfCheckboxGroup, selector: "ajf-checkbox-group,[ajf-checkbox-group]", inputs: ["value", "name", "disabled"], outputs: ["change"] }, { kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5$1.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i6$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i3$2.TranslocoPipe, name: "transloco" }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.AjfExpandFieldWithChoicesPipe, name: "ajfExpandFieldWithChoices" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
378
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfMultipleChoiceFieldComponent, decorators: [{
376
379
  type: Component,
377
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"instance\">\n <ng-container *ngIf=\"!(instance|ajfExpandFieldWithChoices:searchThreshold); else expanded\">\n <mat-select *ngIf=\"control|async as ctrl\" [formControl]=\"ctrl!\" [multiple]=\"true\">\n <mat-option [value]=\"choice.value\"\n *ngFor=\"let choice of instance!.filteredChoices\">\n {{ choice.label | transloco }}\n </mat-option>\n </mat-select>\n </ng-container>\n</ng-container>\n<ng-template #expanded>\n <ajf-checkbox-group *ngIf=\"control|async as ctrl\" class=\"ajf-choices-container\"\n [formControl]=\"ctrl!\">\n <ajf-checkbox-group-item *ngFor=\"let choice of instance!.filteredChoices\"\n [value]=\"choice.value\">\n {{ choice.label | transloco }}\n </ajf-checkbox-group-item>\n </ajf-checkbox-group>\n</ng-template>\n", styles: [""] }]
378
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1$1.AjfFormRendererService }, { type: AjfWarningAlertService, decorators: [{
380
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"instance\">\n <ng-container *ngIf=\"!(instance|ajfExpandFieldWithChoices:searchThreshold); else expanded\">\n <mat-select *ngIf=\"control|async as ctrl\" [formControl]=\"ctrl!\" [multiple]=\"true\">\n <mat-option [value]=\"choice.value\"\n *ngFor=\"let choice of instance!.filteredChoices\">\n {{ choice.label | transloco }}\n </mat-option>\n </mat-select>\n </ng-container>\n</ng-container>\n<ng-template #expanded>\n <ajf-checkbox-group *ngIf=\"control|async as ctrl\" class=\"ajf-choices-container\"\n [formControl]=\"ctrl!\">\n <ajf-checkbox-group-item *ngFor=\"let choice of instance!.filteredChoices\"\n [value]=\"choice.value\">\n {{ choice.label | transloco }}\n </ajf-checkbox-group-item>\n </ajf-checkbox-group>\n</ng-template>\n" }]
381
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.AjfFormRendererService }, { type: AjfWarningAlertService, decorators: [{
379
382
  type: Inject,
380
383
  args: [AJF_WARNING_ALERT_SERVICE]
381
384
  }] }, { type: undefined, decorators: [{
@@ -411,12 +414,12 @@ class AjfRangeFieldComponent extends AjfRange {
411
414
  super(cdr, service, was);
412
415
  }
413
416
  }
414
- AjfRangeFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfRangeFieldComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$1.AjfFormRendererService }, { token: AJF_WARNING_ALERT_SERVICE }], target: i0.ɵɵFactoryTarget.Component });
415
- AjfRangeFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: AjfRangeFieldComponent, selector: "ajf-range", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"control|async as ctrl\">\n <mat-slider\n thumbLabel\n [formControl]=\"ctrl!\"\n [tickInterval]=\"step\"\n [step]=\"step\"\n [min]=\"start\"\n [max]=\"end\"\n [attr.aria-label]=\"name\"\n [attr.name]=\"name\"\n ></mat-slider>\n <div class=\"ajf-range-label\">\n <label>{{ctrl.value}}</label>\n </div>\n</ng-container>\n", styles: [".ajf-range-label{display:inline-block;padding:0 10px}\n"], components: [{ type: i2$6.MatSlider, selector: "mat-slider", inputs: ["disabled", "color", "tabIndex", "invert", "max", "min", "step", "thumbLabel", "tickInterval", "value", "displayWith", "valueText", "vertical"], outputs: ["change", "input", "valueChange"], exportAs: ["matSlider"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "async": i3.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
416
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfRangeFieldComponent, decorators: [{
417
+ AjfRangeFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfRangeFieldComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.AjfFormRendererService }, { token: AJF_WARNING_ALERT_SERVICE }], target: i0.ɵɵFactoryTarget.Component });
418
+ AjfRangeFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AjfRangeFieldComponent, selector: "ajf-range", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"control|async as ctrl\">\n <mat-slider\n discrete\n showTickMarks\n [step]=\"step\"\n [min]=\"start\"\n [max]=\"end\"\n [attr.aria-label]=\"name\"\n [attr.name]=\"name\"\n ><input matSliderThumb [value]=\"ctrl.value\" [formControl]=\"ctrl\" /></mat-slider>\n <div class=\"ajf-range-label\">\n <label>{{ctrl.value}}</label>\n </div>\n</ng-container>\n", styles: [".ajf-range-label{display:inline-block;padding:0 10px}\n"], dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.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: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4$2.MatSlider, selector: "mat-slider", inputs: ["color", "disableRipple", "disabled", "discrete", "showTickMarks", "min", "max", "step", "displayWith"], exportAs: ["matSlider"] }, { kind: "directive", type: i4$2.MatSliderThumb, selector: "input[matSliderThumb]", inputs: ["value"], outputs: ["valueChange", "dragStart", "dragEnd"], exportAs: ["matSliderThumb"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
419
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfRangeFieldComponent, decorators: [{
417
420
  type: Component,
418
- args: [{ selector: 'ajf-range', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"control|async as ctrl\">\n <mat-slider\n thumbLabel\n [formControl]=\"ctrl!\"\n [tickInterval]=\"step\"\n [step]=\"step\"\n [min]=\"start\"\n [max]=\"end\"\n [attr.aria-label]=\"name\"\n [attr.name]=\"name\"\n ></mat-slider>\n <div class=\"ajf-range-label\">\n <label>{{ctrl.value}}</label>\n </div>\n</ng-container>\n", styles: [".ajf-range-label{display:inline-block;padding:0 10px}\n"] }]
419
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1$1.AjfFormRendererService }, { type: AjfWarningAlertService, decorators: [{
421
+ args: [{ selector: 'ajf-range', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"control|async as ctrl\">\n <mat-slider\n discrete\n showTickMarks\n [step]=\"step\"\n [min]=\"start\"\n [max]=\"end\"\n [attr.aria-label]=\"name\"\n [attr.name]=\"name\"\n ><input matSliderThumb [value]=\"ctrl.value\" [formControl]=\"ctrl\" /></mat-slider>\n <div class=\"ajf-range-label\">\n <label>{{ctrl.value}}</label>\n </div>\n</ng-container>\n", styles: [".ajf-range-label{display:inline-block;padding:0 10px}\n"] }]
422
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.AjfFormRendererService }, { type: AjfWarningAlertService, decorators: [{
420
423
  type: Inject,
421
424
  args: [AJF_WARNING_ALERT_SERVICE]
422
425
  }] }]; } });
@@ -447,12 +450,12 @@ class AjfSingleChoiceFieldComponent extends AjfFieldWithChoicesComponent {
447
450
  super(cdr, service, was, searchThreshold);
448
451
  }
449
452
  }
450
- AjfSingleChoiceFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfSingleChoiceFieldComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$1.AjfFormRendererService }, { token: AJF_WARNING_ALERT_SERVICE }, { token: AJF_SEARCH_ALERT_THRESHOLD, optional: true }], target: i0.ɵɵFactoryTarget.Component });
451
- AjfSingleChoiceFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: AjfSingleChoiceFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"instance\">\n <ng-container *ngIf=\"!(instance|ajfExpandFieldWithChoices:searchThreshold) ; else expanded\">\n <mat-select *ngIf=\"control|async as ctrl\" [formControl]=\"ctrl!\">\n <mat-option [value]=\"choice.value\"\n *ngFor=\"let choice of instance!.filteredChoices\">\n {{ choice.label | transloco }}\n </mat-option>\n </mat-select>\n </ng-container>\n</ng-container>\n<ng-template #expanded>\n <mat-radio-group *ngIf=\"control|async as ctrl\" class=\"ajf-choices-container\"\n [attr.aria-labelledby]=\"instance!.node.name\"\n [formControl]=\"ctrl!\">\n <mat-radio-button [value]=\"choice.value\"\n *ngFor=\"let choice of instance!.filteredChoices\">\n {{ choice.label | transloco }}\n </mat-radio-button>\n </mat-radio-group>\n</ng-template>\n", styles: [""], components: [{ type: i2$5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i3$2.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i4$3.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4$3.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }], pipes: { "ajfExpandFieldWithChoices": i1$1.AjfExpandFieldWithChoicesPipe, "async": i3.AsyncPipe, "transloco": i3$1.TranslocoPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
452
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfSingleChoiceFieldComponent, decorators: [{
453
+ AjfSingleChoiceFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfSingleChoiceFieldComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.AjfFormRendererService }, { token: AJF_WARNING_ALERT_SERVICE }, { token: AJF_SEARCH_ALERT_THRESHOLD, optional: true }], target: i0.ɵɵFactoryTarget.Component });
454
+ AjfSingleChoiceFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AjfSingleChoiceFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"instance\">\n <ng-container *ngIf=\"!(instance|ajfExpandFieldWithChoices:searchThreshold) ; else expanded\">\n <mat-select *ngIf=\"control|async as ctrl\" [formControl]=\"ctrl!\">\n <mat-option [value]=\"choice.value\"\n *ngFor=\"let choice of instance!.filteredChoices\">\n {{ choice.label | transloco }}\n </mat-option>\n </mat-select>\n </ng-container>\n</ng-container>\n<ng-template #expanded>\n <mat-radio-group *ngIf=\"control|async as ctrl\" class=\"ajf-choices-container\"\n [attr.aria-labelledby]=\"instance!.node.name\"\n [formControl]=\"ctrl!\">\n <mat-radio-button [value]=\"choice.value\"\n *ngFor=\"let choice of instance!.filteredChoices\">\n {{ choice.label | transloco }}\n </mat-radio-button>\n </mat-radio-group>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$4.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i3$4.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "component", type: i5$1.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i6$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i3$2.TranslocoPipe, name: "transloco" }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.AjfExpandFieldWithChoicesPipe, name: "ajfExpandFieldWithChoices" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
455
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfSingleChoiceFieldComponent, decorators: [{
453
456
  type: Component,
454
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"instance\">\n <ng-container *ngIf=\"!(instance|ajfExpandFieldWithChoices:searchThreshold) ; else expanded\">\n <mat-select *ngIf=\"control|async as ctrl\" [formControl]=\"ctrl!\">\n <mat-option [value]=\"choice.value\"\n *ngFor=\"let choice of instance!.filteredChoices\">\n {{ choice.label | transloco }}\n </mat-option>\n </mat-select>\n </ng-container>\n</ng-container>\n<ng-template #expanded>\n <mat-radio-group *ngIf=\"control|async as ctrl\" class=\"ajf-choices-container\"\n [attr.aria-labelledby]=\"instance!.node.name\"\n [formControl]=\"ctrl!\">\n <mat-radio-button [value]=\"choice.value\"\n *ngFor=\"let choice of instance!.filteredChoices\">\n {{ choice.label | transloco }}\n </mat-radio-button>\n </mat-radio-group>\n</ng-template>\n", styles: [""] }]
455
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1$1.AjfFormRendererService }, { type: AjfWarningAlertService, decorators: [{
457
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"instance\">\n <ng-container *ngIf=\"!(instance|ajfExpandFieldWithChoices:searchThreshold) ; else expanded\">\n <mat-select *ngIf=\"control|async as ctrl\" [formControl]=\"ctrl!\">\n <mat-option [value]=\"choice.value\"\n *ngFor=\"let choice of instance!.filteredChoices\">\n {{ choice.label | transloco }}\n </mat-option>\n </mat-select>\n </ng-container>\n</ng-container>\n<ng-template #expanded>\n <mat-radio-group *ngIf=\"control|async as ctrl\" class=\"ajf-choices-container\"\n [attr.aria-labelledby]=\"instance!.node.name\"\n [formControl]=\"ctrl!\">\n <mat-radio-button [value]=\"choice.value\"\n *ngFor=\"let choice of instance!.filteredChoices\">\n {{ choice.label | transloco }}\n </mat-radio-button>\n </mat-radio-group>\n</ng-template>\n" }]
458
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.AjfFormRendererService }, { type: AjfWarningAlertService, decorators: [{
456
459
  type: Inject,
457
460
  args: [AJF_WARNING_ALERT_SERVICE]
458
461
  }] }, { type: undefined, decorators: [{
@@ -488,12 +491,12 @@ class AjfTableFieldComponent extends AjfTableFieldComponent$1 {
488
491
  super(cdr, service, was);
489
492
  }
490
493
  }
491
- AjfTableFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfTableFieldComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$1.AjfFormRendererService }, { token: AJF_WARNING_ALERT_SERVICE }], target: i0.ɵɵFactoryTarget.Component });
492
- AjfTableFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: AjfTableFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<table *ngIf=\"instance\" class=\"ajf-table-field\">\n <ng-container *ngIf=\"instance.node as node\">\n <ng-container *ngFor=\"let columns of instance.controls; let row = index\">\n <tr [ngClass]=\"row | ajfTableRowClass\">\n <td>\n <ng-container *ngIf=\"columns.length > 0 && columns[0]\">\n {{ columns[0] | ajfTranslateIfString | ajfFormatIfNumber: '.0-2' }}\n </ng-container>\n </td>\n <ng-container *ngIf=\"columns.length > 1\">\n <td *ngFor=\"let c of columns[1]; let column = index\">\n <ng-container *ngIf=\"row === 0; else controlCell\">\n {{ c | ajfTranslateIfString | ajfFormatIfNumber: '.0-2' }}\n </ng-container>\n <ng-template #controlCell>\n <ng-container *ngIf=\"c|ajfGetTableCellControl as contr\">\n <ng-container *ngIf=\"contr\">\n <ng-container\n *ngIf=\"contr!.show && (node.rows[row-1][column]|ajfIsCellEditable); else plainTextCell\"\n >\n <ng-container *ngIf=\"contr.type === 'number';else genericInput\">\n <input\n (focusout)=\"contr!.show = false\"\n type=\"number\"\n [formControl]=\"contr.control\"\n (keydown.tab)=\"goToNextCell($event, row, column)\"\n autofocus\n />\n </ng-container>\n <ng-template #genericInput>\n <input\n (focusout)=\"contr!.show = false\"\n [type]=\"contr.type\"\n [formControl]=\"contr.control\"\n (keydown.tab)=\"goToNextCell($event, row, column)\"\n autofocus\n />\n </ng-template>\n </ng-container>\n\n <ng-template #plainTextCell>\n <span class=\"ajf-table-cell\" (click)=\"goToCell(row, column)\"\n >{{ contr.control!.value | ajfTranslateIfString | ajfFormatIfNumber: '.0-2'\n }}</span\n >\n </ng-template>\n </ng-container>\n </ng-container>\n </ng-template>\n </td>\n </ng-container>\n </tr>\n </ng-container>\n </ng-container>\n</table>\n", styles: ["table.ajf-table-field{border-collapse:collapse;border-spacing:0;width:100%}table.ajf-table-field tr td{position:relative;min-width:2em;border-top:solid 1px #cccccc;border-left:solid 1px #cccccc}table.ajf-table-field tr td span,table.ajf-table-field tr td input{cursor:text;width:100%;box-sizing:border-box;outline:none;display:inline-block;font-family:inherit;font-size:inherit;line-height:inherit;text-align:center;position:relative;min-height:22px;border:none}table.ajf-table-field tr td:last-child span,table.ajf-table-field tr td:last-child input{border-right-color:#ccc}table.ajf-table-field tr:last-of-type td span,table.ajf-table-field tr:last-of-type td input{border-bottom-color:#ccc}\n"], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "ajfTableRowClass": i1$1.AjfTableRowClass, "ajfFormatIfNumber": i4$4.FormatIfNumber, "ajfTranslateIfString": i4$4.TranslateIfString, "ajfGetTableCellControl": i1$1.AjfGetTableCellControlPipe, "ajfIsCellEditable": i1$1.AjfIsCellEditablePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
493
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfTableFieldComponent, decorators: [{
494
+ AjfTableFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfTableFieldComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.AjfFormRendererService }, { token: AJF_WARNING_ALERT_SERVICE }], target: i0.ɵɵFactoryTarget.Component });
495
+ AjfTableFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AjfTableFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<table *ngIf=\"instance\" class=\"ajf-table-field\">\n <ng-container *ngIf=\"instance.node as node\">\n <ng-container *ngFor=\"let columns of instance.controls; let row = index\">\n <tr [ngClass]=\"row | ajfTableRowClass\">\n <td>\n <ng-container *ngIf=\"columns.length > 0 && columns[0]\">\n {{ columns[0] | ajfTranslateIfString | ajfFormatIfNumber: '.0-2' }}\n </ng-container>\n </td>\n <ng-container *ngIf=\"columns.length > 1\">\n <td *ngFor=\"let c of columns[1]; let column = index\">\n <ng-container *ngIf=\"row === 0; else controlCell\">\n {{ c | ajfTranslateIfString | ajfFormatIfNumber: '.0-2' }}\n </ng-container>\n <ng-template #controlCell>\n <ng-container *ngIf=\"c|ajfGetTableCellControl as contr\">\n <ng-container *ngIf=\"contr\">\n <ng-container\n *ngIf=\"contr!.show && (node.rows[row-1][column]|ajfIsCellEditable); else plainTextCell\"\n >\n <ng-container *ngIf=\"contr.type === 'number';else genericInput\">\n <input\n (focusout)=\"contr!.show = false\"\n type=\"number\"\n [formControl]=\"contr.control\"\n (keydown.tab)=\"goToNextCell($event, row, column)\"\n autofocus\n />\n </ng-container>\n <ng-template #genericInput>\n <input\n (focusout)=\"contr!.show = false\"\n [type]=\"contr.type\"\n [formControl]=\"contr.control\"\n (keydown.tab)=\"goToNextCell($event, row, column)\"\n autofocus\n />\n </ng-template>\n </ng-container>\n\n <ng-template #plainTextCell>\n <span class=\"ajf-table-cell\" (click)=\"goToCell(row, column)\"\n >{{ contr.control!.value | ajfTranslateIfString | ajfFormatIfNumber: '.0-2'\n }}</span\n >\n </ng-template>\n </ng-container>\n </ng-container>\n </ng-template>\n </td>\n </ng-container>\n </tr>\n </ng-container>\n </ng-container>\n</table>\n", styles: ["table.ajf-table-field{border-collapse:collapse;border-spacing:0;width:100%}table.ajf-table-field tr td{position:relative;min-width:2em;border-top:solid 1px #cccccc;border-left:solid 1px #cccccc}table.ajf-table-field tr td span,table.ajf-table-field tr td input{cursor:text;width:100%;box-sizing:border-box;outline:none;display:inline-block;font-family:inherit;font-size:inherit;line-height:inherit;text-align:center;position:relative;min-height:22px;border:none}table.ajf-table-field tr td:last-child span,table.ajf-table-field tr td:last-child input{border-right-color:#ccc}table.ajf-table-field tr:last-of-type td span,table.ajf-table-field tr:last-of-type td input{border-bottom-color:#ccc}\n"], dependencies: [{ kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.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: i6.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i4$3.FormatIfNumber, name: "ajfFormatIfNumber" }, { kind: "pipe", type: i4$3.TranslateIfString, name: "ajfTranslateIfString" }, { kind: "pipe", type: i1.AjfGetTableCellControlPipe, name: "ajfGetTableCellControl" }, { kind: "pipe", type: i1.AjfIsCellEditablePipe, name: "ajfIsCellEditable" }, { kind: "pipe", type: i1.AjfTableRowClass, name: "ajfTableRowClass" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
496
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfTableFieldComponent, decorators: [{
494
497
  type: Component,
495
498
  args: [{ changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<table *ngIf=\"instance\" class=\"ajf-table-field\">\n <ng-container *ngIf=\"instance.node as node\">\n <ng-container *ngFor=\"let columns of instance.controls; let row = index\">\n <tr [ngClass]=\"row | ajfTableRowClass\">\n <td>\n <ng-container *ngIf=\"columns.length > 0 && columns[0]\">\n {{ columns[0] | ajfTranslateIfString | ajfFormatIfNumber: '.0-2' }}\n </ng-container>\n </td>\n <ng-container *ngIf=\"columns.length > 1\">\n <td *ngFor=\"let c of columns[1]; let column = index\">\n <ng-container *ngIf=\"row === 0; else controlCell\">\n {{ c | ajfTranslateIfString | ajfFormatIfNumber: '.0-2' }}\n </ng-container>\n <ng-template #controlCell>\n <ng-container *ngIf=\"c|ajfGetTableCellControl as contr\">\n <ng-container *ngIf=\"contr\">\n <ng-container\n *ngIf=\"contr!.show && (node.rows[row-1][column]|ajfIsCellEditable); else plainTextCell\"\n >\n <ng-container *ngIf=\"contr.type === 'number';else genericInput\">\n <input\n (focusout)=\"contr!.show = false\"\n type=\"number\"\n [formControl]=\"contr.control\"\n (keydown.tab)=\"goToNextCell($event, row, column)\"\n autofocus\n />\n </ng-container>\n <ng-template #genericInput>\n <input\n (focusout)=\"contr!.show = false\"\n [type]=\"contr.type\"\n [formControl]=\"contr.control\"\n (keydown.tab)=\"goToNextCell($event, row, column)\"\n autofocus\n />\n </ng-template>\n </ng-container>\n\n <ng-template #plainTextCell>\n <span class=\"ajf-table-cell\" (click)=\"goToCell(row, column)\"\n >{{ contr.control!.value | ajfTranslateIfString | ajfFormatIfNumber: '.0-2'\n }}</span\n >\n </ng-template>\n </ng-container>\n </ng-container>\n </ng-template>\n </td>\n </ng-container>\n </tr>\n </ng-container>\n </ng-container>\n</table>\n", styles: ["table.ajf-table-field{border-collapse:collapse;border-spacing:0;width:100%}table.ajf-table-field tr td{position:relative;min-width:2em;border-top:solid 1px #cccccc;border-left:solid 1px #cccccc}table.ajf-table-field tr td span,table.ajf-table-field tr td input{cursor:text;width:100%;box-sizing:border-box;outline:none;display:inline-block;font-family:inherit;font-size:inherit;line-height:inherit;text-align:center;position:relative;min-height:22px;border:none}table.ajf-table-field tr td:last-child span,table.ajf-table-field tr td:last-child input{border-right-color:#ccc}table.ajf-table-field tr:last-of-type td span,table.ajf-table-field tr:last-of-type td input{border-bottom-color:#ccc}\n"] }]
496
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1$1.AjfFormRendererService }, { type: AjfWarningAlertService, decorators: [{
499
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.AjfFormRendererService }, { type: AjfWarningAlertService, decorators: [{
497
500
  type: Inject,
498
501
  args: [AJF_WARNING_ALERT_SERVICE]
499
502
  }] }]; } });
@@ -524,12 +527,12 @@ class AjfTextFieldComponent extends AjfInputFieldComponent$1 {
524
527
  super(cdr, service, was);
525
528
  }
526
529
  }
527
- AjfTextFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfTextFieldComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$1.AjfFormRendererService }, { token: AJF_WARNING_ALERT_SERVICE }], target: i0.ɵɵFactoryTarget.Component });
528
- AjfTextFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: AjfTextFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<mat-form-field *ngIf=\"control|async as ctrl\">\n <textarea matInput cdkTextareaAutosize [formControl]=\"ctrl!\"></textarea>\n</mat-form-field>\n", styles: [""], components: [{ type: i2$3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i5.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "async": i3.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
529
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfTextFieldComponent, decorators: [{
530
+ AjfTextFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfTextFieldComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.AjfFormRendererService }, { token: AJF_WARNING_ALERT_SERVICE }], target: i0.ɵɵFactoryTarget.Component });
531
+ AjfTextFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AjfTextFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<mat-form-field *ngIf=\"control|async as ctrl\">\n <textarea matInput cdkTextareaAutosize [formControl]=\"ctrl!\"></textarea>\n</mat-form-field>\n", styles: [""], dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i5$2.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "directive", type: i6.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: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
532
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfTextFieldComponent, decorators: [{
530
533
  type: Component,
531
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<mat-form-field *ngIf=\"control|async as ctrl\">\n <textarea matInput cdkTextareaAutosize [formControl]=\"ctrl!\"></textarea>\n</mat-form-field>\n", styles: [""] }]
532
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1$1.AjfFormRendererService }, { type: AjfWarningAlertService, decorators: [{
534
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<mat-form-field *ngIf=\"control|async as ctrl\">\n <textarea matInput cdkTextareaAutosize [formControl]=\"ctrl!\"></textarea>\n</mat-form-field>\n" }]
535
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.AjfFormRendererService }, { type: AjfWarningAlertService, decorators: [{
533
536
  type: Inject,
534
537
  args: [AJF_WARNING_ALERT_SERVICE]
535
538
  }] }]; } });
@@ -560,12 +563,12 @@ class AjfTimeFieldComponent extends AjfBaseFieldComponent {
560
563
  super(cdr, service, was);
561
564
  }
562
565
  }
563
- AjfTimeFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfTimeFieldComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$1.AjfFormRendererService }, { token: AJF_WARNING_ALERT_SERVICE }], target: i0.ɵɵFactoryTarget.Component });
564
- AjfTimeFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: AjfTimeFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ajf-time *ngIf=\"control|async as ctrl\" [formControl]=\"ctrl!\"></ajf-time>\n", styles: [""], components: [{ type: i2$7.AjfTime, selector: "ajf-time" }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "async": i3.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
565
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfTimeFieldComponent, decorators: [{
566
+ AjfTimeFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfTimeFieldComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.AjfFormRendererService }, { token: AJF_WARNING_ALERT_SERVICE }], target: i0.ɵɵFactoryTarget.Component });
567
+ AjfTimeFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AjfTimeFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ajf-time *ngIf=\"control|async as ctrl\" [formControl]=\"ctrl!\"></ajf-time>\n", styles: [""], dependencies: [{ kind: "component", type: i2$5.AjfTime, selector: "ajf-time" }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
568
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfTimeFieldComponent, decorators: [{
566
569
  type: Component,
567
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ajf-time *ngIf=\"control|async as ctrl\" [formControl]=\"ctrl!\"></ajf-time>\n", styles: [""] }]
568
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1$1.AjfFormRendererService }, { type: AjfWarningAlertService, decorators: [{
570
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ajf-time *ngIf=\"control|async as ctrl\" [formControl]=\"ctrl!\"></ajf-time>\n" }]
571
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.AjfFormRendererService }, { type: AjfWarningAlertService, decorators: [{
569
572
  type: Inject,
570
573
  args: [AJF_WARNING_ALERT_SERVICE]
571
574
  }] }]; } });
@@ -596,15 +599,15 @@ class AjfVideoUrlFieldComponent extends AjfVideoUrlFieldComponent$1 {
596
599
  super(cdr, service, was, domSanitizer, httpClient);
597
600
  }
598
601
  }
599
- AjfVideoUrlFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfVideoUrlFieldComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$1.AjfFormRendererService }, { token: AJF_WARNING_ALERT_SERVICE }, { token: i2$8.DomSanitizer }, { token: i3$3.HttpClient }], target: i0.ɵɵFactoryTarget.Component });
600
- AjfVideoUrlFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: AjfVideoUrlFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"control|async as ctrl\">\n <mat-form-field class=\"ajf-video-input\">\n <input matInput type=\"url\" [formControl]=\"ctrl!\">\n </mat-form-field>\n <div class=\"ajf-video-thumbnail\">\n <ng-container *ngIf=\"validUrl|async\">\n <a target=\"_blank\" [href]=\"ctrl.value\">\n <img *ngIf=\"videoThumbnail|async as thumb\" [src]=\"thumb\" class=\"\" alt=\"\">\n </a>\n </ng-container>\n </div>\n</ng-container>\n", styles: [".ajf-video-input{width:100%}.ajf-video-thumbnail{width:212px;height:120px;background-color:#eee;display:flex;align-items:center;justify-content:center}.ajf-video-thumbnail img{flex:1 1 auto}\n"], components: [{ type: i2$3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "async": i3.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
601
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfVideoUrlFieldComponent, decorators: [{
602
+ AjfVideoUrlFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfVideoUrlFieldComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.AjfFormRendererService }, { token: AJF_WARNING_ALERT_SERVICE }, { token: i2$6.DomSanitizer }, { token: i3$5.HttpClient }], target: i0.ɵɵFactoryTarget.Component });
603
+ AjfVideoUrlFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AjfVideoUrlFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"control|async as ctrl\">\n <mat-form-field class=\"ajf-video-input\">\n <input matInput type=\"url\" [formControl]=\"ctrl!\">\n </mat-form-field>\n <div class=\"ajf-video-thumbnail\">\n <ng-container *ngIf=\"validUrl|async\">\n <a target=\"_blank\" [href]=\"ctrl.value\">\n <img *ngIf=\"videoThumbnail|async as thumb\" [src]=\"thumb\" class=\"\" alt=\"\">\n </a>\n </ng-container>\n </div>\n</ng-container>\n", styles: [".ajf-video-input{width:100%}.ajf-video-thumbnail{width:212px;height:120px;background-color:#eee;display:flex;align-items:center;justify-content:center}.ajf-video-thumbnail img{flex:1 1 auto}\n"], dependencies: [{ kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i6.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: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
604
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfVideoUrlFieldComponent, decorators: [{
602
605
  type: Component,
603
606
  args: [{ changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"control|async as ctrl\">\n <mat-form-field class=\"ajf-video-input\">\n <input matInput type=\"url\" [formControl]=\"ctrl!\">\n </mat-form-field>\n <div class=\"ajf-video-thumbnail\">\n <ng-container *ngIf=\"validUrl|async\">\n <a target=\"_blank\" [href]=\"ctrl.value\">\n <img *ngIf=\"videoThumbnail|async as thumb\" [src]=\"thumb\" class=\"\" alt=\"\">\n </a>\n </ng-container>\n </div>\n</ng-container>\n", styles: [".ajf-video-input{width:100%}.ajf-video-thumbnail{width:212px;height:120px;background-color:#eee;display:flex;align-items:center;justify-content:center}.ajf-video-thumbnail img{flex:1 1 auto}\n"] }]
604
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1$1.AjfFormRendererService }, { type: AjfWarningAlertService, decorators: [{
607
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.AjfFormRendererService }, { type: AjfWarningAlertService, decorators: [{
605
608
  type: Inject,
606
609
  args: [AJF_WARNING_ALERT_SERVICE]
607
- }] }, { type: i2$8.DomSanitizer }, { type: i3$3.HttpClient }]; } });
610
+ }] }, { type: i2$6.DomSanitizer }, { type: i3$5.HttpClient }]; } });
608
611
 
609
612
  /**
610
613
  * @license
@@ -699,9 +702,9 @@ class AjfFieldService extends AjfFieldService$1 {
699
702
  };
700
703
  }
701
704
  }
702
- AjfFieldService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfFieldService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
703
- AjfFieldService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfFieldService, providedIn: 'root' });
704
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfFieldService, decorators: [{
705
+ AjfFieldService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfFieldService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
706
+ AjfFieldService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfFieldService, providedIn: 'root' });
707
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfFieldService, decorators: [{
705
708
  type: Injectable,
706
709
  args: [{ providedIn: 'root' }]
707
710
  }], ctorParameters: function () { return []; } });
@@ -733,11 +736,11 @@ class AjfFormField extends AjfFormField$1 {
733
736
  this.componentsMap = fieldService.componentsMap;
734
737
  }
735
738
  }
736
- AjfFormField.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfFormField, deps: [{ token: i0.ChangeDetectorRef }, { token: AjfFieldService }], target: i0.ɵɵFactoryTarget.Component });
737
- AjfFormField.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: AjfFormField, selector: "ajf-field,ajf-form-field", usesInheritance: true, ngImport: i0, template: "<div\n *ngIf=\"instance\"\n [ngClass]=\"'ajf-field-' + (instance|ajfNodeCompleteName)\"\n [class.ajf-validated]=\"instance.validationResults|ajfFieldIsValid\"\n>\n <ng-template ajf-field-host></ng-template>\n</div>\n<ng-container *ngIf=\"instance && instance.node && instance.node.attachments\">\n <a *ngFor=\"let attachment of instance.node.attachments\"\n [href]=\"attachment.value\" target=\"_blank\">{{attachment.label | transloco}}</a>\n</ng-container>\n<div *ngIf=\"!readonly && instance && instance.validationResults\" class=\"ajf-errors\">\n <ng-container *ngFor=\"let res of instance.validationResults\">\n <div class=\"error\" *ngIf=\"!res.result\">\n {{ res.error|transloco }}\n </div>\n </ng-container>\n</div>\n", styles: ["ajf-field .ajf-choices-container{display:flex;flex-direction:row;flex-wrap:wrap;align-items:stretch}ajf-field .ajf-item-container{position:relative}ajf-field .ajf-errors{font-style:italic;padding:5px}ajf-field tr.ajf-row-odd{background-color:gray}table{border-collapse:collapse;border-spacing:0}table tr td{position:relative}table tr td span,table tr td input{cursor:text;position:absolute;width:100%;box-sizing:border-box;outline:none;top:0;right:0;bottom:0;left:0;display:inline-block;border-top:solid 1px #cccccc;border-right:solid 1px transparent;border-bottom:solid 1px transparent;border-left:solid 1px #cccccc;font-family:inherit;font-size:inherit;line-height:inherit;text-align:center}table tr td:last-child span,table tr td:last-child input{border-right-color:#ccc}table tr:last-of-type td span,table tr:last-of-type td input{border-bottom-color:#ccc}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}\n"], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1$1.AjfFieldHost, selector: "[ajf-field-host]" }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "ajfNodeCompleteName": i1$1.AjfNodeCompleteNamePipe, "ajfFieldIsValid": i1$1.AjfFieldIsValidPipe, "transloco": i3$1.TranslocoPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
738
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfFormField, decorators: [{
739
+ AjfFormField.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfFormField, deps: [{ token: i0.ChangeDetectorRef }, { token: AjfFieldService }], target: i0.ɵɵFactoryTarget.Component });
740
+ AjfFormField.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AjfFormField, selector: "ajf-field,ajf-form-field", usesInheritance: true, ngImport: i0, template: "<div\n *ngIf=\"instance\"\n [ngClass]=\"'ajf-field-' + (instance|ajfNodeCompleteName)\"\n [class.ajf-validated]=\"instance.validationResults|ajfFieldIsValid\"\n>\n <ng-template ajf-field-host></ng-template>\n</div>\n<ng-container *ngIf=\"instance && instance.node && instance.node.attachments\">\n <a *ngFor=\"let attachment of instance.node.attachments\"\n [href]=\"attachment.value\" target=\"_blank\">{{attachment.label | transloco}}</a>\n</ng-container>\n<div *ngIf=\"!readonly && instance && instance.validationResults\" class=\"ajf-errors\">\n <ng-container *ngFor=\"let res of instance.validationResults\">\n <div class=\"error\" *ngIf=\"!res.result\">\n {{ res.error|transloco }}\n </div>\n </ng-container>\n</div>\n", styles: ["ajf-field .ajf-choices-container{display:flex;flex-direction:row;flex-wrap:wrap;align-items:stretch}ajf-field .ajf-item-container{position:relative}ajf-field .ajf-errors{font-style:italic;padding:5px}ajf-field tr.ajf-row-odd{background-color:gray}table{border-collapse:collapse;border-spacing:0}table tr td{position:relative}table tr td span,table tr td input{cursor:text;position:absolute;width:100%;box-sizing:border-box;outline:none;inset:0;display:inline-block;border-top:solid 1px #cccccc;border-right:solid 1px transparent;border-bottom:solid 1px transparent;border-left:solid 1px #cccccc;font-family:inherit;font-size:inherit;line-height:inherit;text-align:center}table tr td:last-child span,table tr td:last-child input{border-right-color:#ccc}table tr:last-of-type td span,table tr:last-of-type td input{border-bottom-color:#ccc}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}\n"], dependencies: [{ kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.AjfFieldHost, selector: "[ajf-field-host]" }, { kind: "pipe", type: i3$2.TranslocoPipe, name: "transloco" }, { kind: "pipe", type: i1.AjfFieldIsValidPipe, name: "ajfFieldIsValid" }, { kind: "pipe", type: i1.AjfNodeCompleteNamePipe, name: "ajfNodeCompleteName" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
741
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfFormField, decorators: [{
739
742
  type: Component,
740
- args: [{ selector: 'ajf-field,ajf-form-field', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n *ngIf=\"instance\"\n [ngClass]=\"'ajf-field-' + (instance|ajfNodeCompleteName)\"\n [class.ajf-validated]=\"instance.validationResults|ajfFieldIsValid\"\n>\n <ng-template ajf-field-host></ng-template>\n</div>\n<ng-container *ngIf=\"instance && instance.node && instance.node.attachments\">\n <a *ngFor=\"let attachment of instance.node.attachments\"\n [href]=\"attachment.value\" target=\"_blank\">{{attachment.label | transloco}}</a>\n</ng-container>\n<div *ngIf=\"!readonly && instance && instance.validationResults\" class=\"ajf-errors\">\n <ng-container *ngFor=\"let res of instance.validationResults\">\n <div class=\"error\" *ngIf=\"!res.result\">\n {{ res.error|transloco }}\n </div>\n </ng-container>\n</div>\n", styles: ["ajf-field .ajf-choices-container{display:flex;flex-direction:row;flex-wrap:wrap;align-items:stretch}ajf-field .ajf-item-container{position:relative}ajf-field .ajf-errors{font-style:italic;padding:5px}ajf-field tr.ajf-row-odd{background-color:gray}table{border-collapse:collapse;border-spacing:0}table tr td{position:relative}table tr td span,table tr td input{cursor:text;position:absolute;width:100%;box-sizing:border-box;outline:none;top:0;right:0;bottom:0;left:0;display:inline-block;border-top:solid 1px #cccccc;border-right:solid 1px transparent;border-bottom:solid 1px transparent;border-left:solid 1px #cccccc;font-family:inherit;font-size:inherit;line-height:inherit;text-align:center}table tr td:last-child span,table tr td:last-child input{border-right-color:#ccc}table tr:last-of-type td span,table tr:last-of-type td input{border-bottom-color:#ccc}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}\n"] }]
743
+ args: [{ selector: 'ajf-field,ajf-form-field', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n *ngIf=\"instance\"\n [ngClass]=\"'ajf-field-' + (instance|ajfNodeCompleteName)\"\n [class.ajf-validated]=\"instance.validationResults|ajfFieldIsValid\"\n>\n <ng-template ajf-field-host></ng-template>\n</div>\n<ng-container *ngIf=\"instance && instance.node && instance.node.attachments\">\n <a *ngFor=\"let attachment of instance.node.attachments\"\n [href]=\"attachment.value\" target=\"_blank\">{{attachment.label | transloco}}</a>\n</ng-container>\n<div *ngIf=\"!readonly && instance && instance.validationResults\" class=\"ajf-errors\">\n <ng-container *ngFor=\"let res of instance.validationResults\">\n <div class=\"error\" *ngIf=\"!res.result\">\n {{ res.error|transloco }}\n </div>\n </ng-container>\n</div>\n", styles: ["ajf-field .ajf-choices-container{display:flex;flex-direction:row;flex-wrap:wrap;align-items:stretch}ajf-field .ajf-item-container{position:relative}ajf-field .ajf-errors{font-style:italic;padding:5px}ajf-field tr.ajf-row-odd{background-color:gray}table{border-collapse:collapse;border-spacing:0}table tr td{position:relative}table tr td span,table tr td input{cursor:text;position:absolute;width:100%;box-sizing:border-box;outline:none;inset:0;display:inline-block;border-top:solid 1px #cccccc;border-right:solid 1px transparent;border-bottom:solid 1px transparent;border-left:solid 1px #cccccc;font-family:inherit;font-size:inherit;line-height:inherit;text-align:center}table tr td:last-child span,table tr td:last-child input{border-right-color:#ccc}table tr:last-of-type td span,table tr:last-of-type td input{border-bottom-color:#ccc}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}\n"] }]
741
744
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: AjfFieldService }]; } });
742
745
 
743
746
  /**
@@ -767,12 +770,12 @@ class AjfFormRenderer extends AjfFormRenderer$1 {
767
770
  this.topBar = false;
768
771
  }
769
772
  }
770
- AjfFormRenderer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfFormRenderer, deps: [{ token: i1$1.AjfFormRendererService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
771
- AjfFormRenderer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: AjfFormRenderer, selector: "ajf-form", inputs: { topBar: "topBar" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"formGroup|async as fg\">\n <form [class.ajf-form-readonly]=\"readonly\" novalidate [formGroup]=\"fg!\">\n <div class=\"ajf-form-container\">\n <mat-toolbar *ngIf=\"!hideTopToolbar && topBar\" class=\"ajf-btn-strip\">\n <mat-button-toggle-group>\n <ng-container *ngFor=\"let slideInstance of (slides|async); trackBy: trackNodeById\">\n <mat-button-toggle\n *ngIf=\"slideInstance.node.label && slideInstance.node.label.length > 0\"\n class=\"ajf-topbar-button\"\n (click)=\"scrollToSlide(slideInstance)\"\n >\n {{slideInstance.node.label | transloco}}\n <mat-icon *ngIf=\"!slideInstance.valid\" class=\"ajf-warning\">warning</mat-icon>\n <mat-icon *ngIf=\"slideInstance.valid\" class=\"ajf-success\">check</mat-icon>\n </mat-button-toggle>\n </ng-container>\n </mat-button-toggle-group>\n </mat-toolbar>\n <mat-toolbar *ngIf=\"!hideTopToolbar\">\n {{ title }}\n <span class=\"ajf-spacer\"></span>\n <!-- this content projection allow to add buttons on toolbar -->\n <ng-content select=\"[ajfFormTopToolbarButtons]\"></ng-content>\n <!-- apply a default save button only when ajfFormSaveButton is empty -->\n <span *ngIf=\"!saveDisabled\" (click)=\"onSave($event)\">\n <span #saveButton\n ><ng-content select=\"[ajfFormSaveButton]\"></ng-content\n ></span>\n <button\n *ngIf=\"saveButton && saveButton.childNodes && saveButton.childNodes.length === 0\"\n mat-button\n default\n >\n {{'Save'|transloco}}\n </button>\n </span>\n </mat-toolbar>\n <div class=\"ajf-slider-container\">\n <ajf-page-slider\n (orientationChange)=\"orientationChangeHandler($event)\"\n [fixedOrientation]=\"fixedOrientation\"\n [hideNavigationButtons]=\"hideNavigationButtons\"\n [orientation]=\"orientation\"\n #formSlider\n >\n <ng-container *ngIf=\"(slides|async) as curSlides\">\n <ng-container *ngIf=\"curSlides!.length > 0 && hasStartMessage\">\n <ajf-page-slider-item>\n <div class=\"ajf-form-page\">\n <mat-card>\n <mat-card-header>\n <div class=\"ajf-page-slider-item-header\">\n <h2>\n <span class=\"ajf-form-header-number\"> 1 &rarr; </span>\n <span class=\"ajf-title\">\n <ng-content\n select=\"[ajfFormStartMessageTitle]\"\n ></ng-content>\n </span>\n </h2>\n </div>\n </mat-card-header>\n <mat-card-content>\n <ng-content select=\"[ajfFormStartMessage]\"></ng-content>\n </mat-card-content>\n </mat-card>\n </div>\n </ajf-page-slider-item>\n </ng-container>\n <ng-container\n *ngFor=\"let slideInstance of curSlides; trackBy:trackNodeById\"\n >\n <!-- non repeating slides -->\n <ng-container *ngIf=\"slideInstance.visible\">\n <ng-container\n *ngIf=\"!(slideInstance|ajfIsRepeatingSlideInstance)\"\n >\n <ajf-page-slider-item>\n <div class=\"ajf-form-page\">\n <mat-card>\n <mat-card-header>\n <div class=\"ajf-page-slider-item-header\">\n <h2>\n <span class=\"ajf-form-header-number\"\n >{{ slideInstance.position + (hasStartMessage |\n ajfBoolToInt) }} &rarr;</span\n >\n <span\n [innerHTML]=\"slideInstance.node.label | transloco\"\n ></span>\n </h2>\n <mat-icon\n class=\"ajf-warning\"\n *ngIf=\"!slideInstance.valid\"\n >warning</mat-icon\n >\n <mat-icon\n class=\"ajf-success\"\n *ngIf=\"slideInstance.valid\"\n >check</mat-icon\n >\n </div>\n </mat-card-header>\n <mat-card-content>\n <ng-template\n ngFor\n let-fieldInstance\n [ngForOf]=\"slideInstance.flatNodes\"\n [ngForTrackBy]=\"trackNodeById\"\n >\n <div\n [ngClass]=\"'ajf-' + (fieldInstance|ajfAsFieldInstance).node.size\"\n class=\"ajf-field-entry\"\n *ngIf=\"fieldInstance.visible\"\n >\n <i\n [class]=\"(fieldInstance|ajfAsFieldInstance).node.fieldType | ajfFieldIcon\"\n item-right\n ></i>\n <p>\n {{\n ((fieldInstance|ajfAsFieldInstance).node.description\n || '') | transloco }}\n </p>\n <label\n [attr.id]=\"fieldInstance.node.name\"\n *ngIf=\"(fieldInstance|ajfAsFieldInstance).node.fieldType !== 7\"\n [innerHTML]=\"fieldInstance.node.label | transloco\"\n ></label>\n <mat-icon\n class=\"ajf-tooltip-icon\"\n *ngIf=\"(fieldInstance|ajfAsFieldInstance).node?.hint as hint\"\n [matTooltip]=\"hint\"\n matTooltipPosition=\"right\"\n >\n {{(fieldInstance|ajfAsFieldInstance).node?.hintIcon\n || 'help'}}</mat-icon\n >\n <ajf-field\n [instance]=\"fieldInstance|ajfAsFieldInstance\"\n [readonly]=\"readonly || !slideInstance.editable\"\n >\n </ajf-field>\n </div>\n </ng-template>\n </mat-card-content>\n </mat-card>\n </div>\n </ajf-page-slider-item>\n </ng-container>\n <!-- repeating slides -->\n <ng-container\n *ngIf=\"(slideInstance|ajfIsRepeatingSlideInstance)\"\n >\n <ajf-page-slider-item\n *ngFor=\"let curRep of ((slideInstance|ajfAsRepeatingSlideInstance).reps|ajfRange); let idx = index; let lastSlide = last\"\n >\n <div class=\"ajf-form-page\">\n <mat-card>\n <mat-card-header>\n <div class=\"ajf-page-slider-item-header\">\n <h2>\n <span class=\"ajf-form-header-number\"\n >{{ slideInstance.position|ajfIncrement:idx +\n (hasStartMessage | ajfBoolToInt) }} &rarr;</span\n >\n <span\n [innerHTML]=\"slideInstance.node.label | transloco\"\n ></span>\n </h2>\n <mat-icon\n class=\"ajf-warning\"\n *ngIf=\"!(slideInstance|ajfValidSlide:idx)\"\n >warning</mat-icon\n >\n <mat-icon\n class=\"ajf-success\"\n *ngIf=\"(slideInstance|ajfValidSlide:idx)\"\n >check</mat-icon\n >\n </div>\n </mat-card-header>\n <mat-card-content>\n <div\n *ngIf=\"lastSlide && !readonly\"\n class=\"ajf-group-actions\"\n >\n <button\n (click)=\"addGroup(slideInstance)\"\n [disabled]=\"!(slideInstance|ajfAsRepeatingSlideInstance).canAdd || ((slideInstance|ajfAsRepeatingSlideInstance).node?.disableRemoval && !slideInstance.valid)\"\n mat-mini-fab\n >\n <mat-icon>add</mat-icon>\n </button>\n <button\n (click)=\"removeGroup(slideInstance)\"\n [disabled]=\"!(slideInstance|ajfAsRepeatingSlideInstance).canRemove || (slideInstance|ajfAsRepeatingSlideInstance).node?.disableRemoval\"\n mat-mini-fab\n >\n <mat-icon>remove</mat-icon>\n </button>\n </div>\n <ng-template\n ngFor\n let-fieldInstance\n [ngForOf]=\"slideInstance.slideNodes[idx]\"\n [ngForTrackBy]=\"trackNodeById\"\n >\n <div\n [ngClass]=\"'ajf-' + (fieldInstance|ajfAsFieldInstance).node.size\"\n class=\"ajf-field-entry\"\n *ngIf=\"fieldInstance.visible\"\n >\n <i\n [class]=\"(fieldInstance|ajfAsFieldInstance).node.fieldType | ajfFieldIcon\"\n item-right\n ></i>\n <p>\n {{\n ((fieldInstance|ajfAsFieldInstance).node.description\n || '') | transloco }}\n </p>\n <label\n [attr.id]=\"fieldInstance.node.name\"\n [innerHTML]=\"fieldInstance.node.label | transloco\"\n ></label>\n <mat-icon\n class=\"ajf-tooltip-icon\"\n *ngIf=\"(fieldInstance|ajfAsFieldInstance).node?.hint as hint\"\n [matTooltip]=\"hint\"\n matTooltipPosition=\"right\"\n >\n {{(fieldInstance|ajfAsFieldInstance).node?.hintIcon\n || 'help'}}</mat-icon\n >\n <ajf-field\n [instance]=\"fieldInstance|ajfAsFieldInstance\"\n [readonly]=\"readonly || (!lastSlide && (slideInstance|ajfAsRepeatingSlideInstance).node?.disableRemoval)\"\n >\n </ajf-field>\n </div>\n </ng-template>\n </mat-card-content>\n </mat-card>\n </div>\n </ajf-page-slider-item>\n </ng-container>\n </ng-container>\n </ng-container>\n <ng-container\n *ngIf=\"curSlides && curSlides!.length > 0 && hasEndMessage\"\n >\n <ajf-page-slider-item>\n <div class=\"ajf-form-page\">\n <mat-card>\n <mat-card-header>\n <div class=\"ajf-page-slider-item-header\">\n <h2>\n <span\n *ngIf=\"(slidesNum|async) as snum\"\n class=\"ajf-form-header-number\"\n >\n {{ snum! + (hasStartMessage | ajfBoolToInt ) + 1 }}\n &rarr;\n </span>\n <span class=\"ajf-title\">\n <ng-content\n select=\"[ajfFormEndMessageTitle]\"\n ></ng-content>\n </span>\n </h2>\n </div>\n </mat-card-header>\n <mat-card-content>\n <ng-content select=\"[ajfFormEndMessage]\"></ng-content>\n </mat-card-content>\n </mat-card>\n </div>\n </ajf-page-slider-item>\n </ng-container>\n </ng-container>\n <div ajfPageSliderBar *ngIf=\"!hideBottomToolbar\">\n <div class=\"ajf-left-bar\">\n <div class=\"ajf-errors\" *ngIf=\"((errors | async) || 0) > 0\">\n <button mat-button (click)=\"goToPrevError()\" danger>\n <mat-icon>arrow_upward</mat-icon>\n </button>\n <button mat-button (click)=\"goToNextError()\" danger>\n <mat-icon>arrow_downward</mat-icon>\n </button>\n </div>\n <div class=\"ajf-info-box ajf-error\">\n <div class=\"ajf-title\">{{'Errors'|transloco}}</div>\n <div class=\"ajf-content\">\n {{ errors | async }} / {{ slidesNum|async }}\n </div>\n </div>\n </div>\n </div>\n </ajf-page-slider>\n </div>\n </div>\n </form>\n</ng-container>\n", styles: ["ajf-form{display:block}ajf-form .ajf-form-readonly .ajf-field-entry>label{font-weight:700}ajf-form .ajf-form-container{display:flex;flex-direction:column;position:absolute;top:0;right:0;bottom:0;left:0}ajf-form .ajf-form-container mat-toolbar.ajf-hidden{opacity:0}ajf-form .ajf-form-container .ajf-btn-strip .mat-button-toggle-group{overflow-x:auto}ajf-form .ajf-form-container .ajf-topbar-button{font-size:.8em}ajf-form .ajf-form-container mat-icon.ajf-warning{color:#f53d3d}ajf-form .ajf-form-container mat-icon.ajf-success{color:#32db64}ajf-form .ajf-form-container>.ajf-slider-container{flex:1;position:relative}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider{height:100%}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content{padding:16px}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page{flex:1;max-height:100%}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page>mat-card{margin:1em 0 3em}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page>mat-card>mat-card-content{display:flex;flex-wrap:wrap;flex-direction:row;align-content:flex-start;position:relative}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page>mat-card>mat-card-content .ajf-group-actions{position:absolute;right:0;top:-30px;padding:15px;z-index:10}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page>mat-card>mat-card-content>.ajf-field-entry{flex:1 0 auto;padding-left:10px;padding-right:10px;width:100%}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page>mat-card>mat-card-content>.ajf-field-entry .mat-icon{vertical-align:bottom;margin-left:5px}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page>mat-card>mat-card-content>.ajf-field-entry.ajf-normal{width:100%}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page>mat-card>mat-card-content>.ajf-field-entry.ajf-small{width:50%}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page>mat-card>mat-card-content>.ajf-field-entry.ajf-smaller{width:33%}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page>mat-card>mat-card-content>.ajf-field-entry.ajf-tiny{width:25%}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page>mat-card>mat-card-content>.ajf-field-entry.ajf-mini{width:20%}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider .ajf-page-slider-item-header{display:flex;align-items:center;width:100%}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider .ajf-page-slider-item-header>h2{flex:1}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider .ajf-page-slider-item-header>h2>.ajf-form-header-number{margin-right:.5em}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider .ajf-page-slider-item-header h2>.ajf-title{display:inline-block;margin-right:40px;white-space:normal;vertical-align:top}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider [ajfPageSliderBar] .ajf-left-bar{display:flex;align-items:flex-start;flex-direction:row;position:absolute;bottom:0}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider [ajfPageSliderBar] .ajf-left-bar .ajf-right-button{float:right}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider [ajfPageSliderBar] .ajf-left-bar .ajf-button-icon-only ion-icon{padding:0 .1em}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider [ajfPageSliderBar] .ajf-left-bar .ajf-info-box{height:40px;padding:4px}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider [ajfPageSliderBar] .ajf-left-bar .ajf-info-box>div{height:16px;line-height:16px}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider [ajfPageSliderBar] .ajf-left-bar .ajf-info-box>div.ajf-content{font-weight:700}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider [ajfPageSliderBar] .ajf-left-bar .ajf-info-box.ajf-error{order:2;color:red}ajf-form .ajf-form-container .ajf-spacer{flex:1 0 auto}\n"], components: [{ type: i2$9.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i3$4.MatButtonToggle, selector: "mat-button-toggle", inputs: ["disableRipple", "aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { type: i4$5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i6.AjfPageSlider, selector: "ajf-page-slider" }, { type: i7$1.AjfPageSliderItem, selector: "ajf-page-slider-item", outputs: ["scroll"] }, { type: i8.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i8.MatCardHeader, selector: "mat-card-header" }, { type: AjfFormField, selector: "ajf-field,ajf-form-field" }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i3$4.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i12.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], pipes: { "async": i3.AsyncPipe, "transloco": i3$1.TranslocoPipe, "ajfIsRepeatingSlideInstance": i1$1.AjfIsRepeatingSlideInstancePipe, "ajfBoolToInt": i1$1.AjfBoolToIntPipe, "ajfAsFieldInstance": i1$1.AjfAsFieldInstancePipe, "ajfFieldIcon": i1$1.AjfFieldIconPipe, "ajfRange": i1$1.AjfRangePipe, "ajfAsRepeatingSlideInstance": i1$1.AjfAsRepeatingSlideInstancePipe, "ajfIncrement": i1$1.AjfIncrementPipe, "ajfValidSlide": i1$1.AjfValidSlidePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
772
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfFormRenderer, decorators: [{
773
+ AjfFormRenderer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfFormRenderer, deps: [{ token: i1.AjfFormRendererService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
774
+ AjfFormRenderer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: AjfFormRenderer, selector: "ajf-form", inputs: { topBar: "topBar" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"formGroup|async as fg\">\n <form [class.ajf-form-readonly]=\"readonly\" novalidate [formGroup]=\"fg!\">\n <div class=\"ajf-form-container\">\n <mat-toolbar *ngIf=\"!hideTopToolbar && topBar\" class=\"ajf-btn-strip\">\n <mat-button-toggle-group>\n <ng-container\n *ngFor=\"let slideInstance of (slides|async); let idx = index; trackBy: trackNodeById\"\n >\n <mat-button-toggle\n *ngIf=\"slideInstance.node.label && slideInstance.node.label.length > 0\"\n class=\"ajf-topbar-button\"\n (click)=\"scrollToSlide(slideInstance)\"\n [checked]=\"isSlideToggleChecked(slideInstance, formSlider.currentPage)\"\n [disabled]=\"slideInstance.visible === false\"\n >\n {{slideInstance.node.label | transloco}} {{ getRepeatingSlideRepIndex(slideInstance,\n formSlider.currentPage)|async}}\n <mat-icon *ngIf=\"!slideInstance.valid\" class=\"ajf-warning\">warning</mat-icon>\n <mat-icon *ngIf=\"slideInstance.valid\" class=\"ajf-success\">check</mat-icon>\n </mat-button-toggle>\n </ng-container>\n </mat-button-toggle-group>\n </mat-toolbar>\n <mat-toolbar *ngIf=\"!hideTopToolbar\">\n {{ title }}\n <span class=\"ajf-spacer\"></span>\n <!-- this content projection allow to add buttons on toolbar -->\n <ng-content select=\"[ajfFormTopToolbarButtons]\"></ng-content>\n <!-- apply a default save button only when ajfFormSaveButton is empty -->\n <span *ngIf=\"!saveDisabled\" (click)=\"onSave($event)\">\n <span #saveButton><ng-content select=\"[ajfFormSaveButton]\"></ng-content></span>\n <button\n *ngIf=\"saveButton && saveButton.childNodes && saveButton.childNodes.length === 0\"\n mat-button\n default\n >\n {{'Save'|transloco}}\n </button>\n </span>\n </mat-toolbar>\n <div class=\"ajf-slider-container\">\n <ajf-page-slider\n (orientationChange)=\"orientationChangeHandler($event)\"\n [fixedOrientation]=\"fixedOrientation\"\n [hideNavigationButtons]=\"hideNavigationButtons\"\n [orientation]=\"orientation\"\n #formSlider\n >\n <ng-container *ngIf=\"(slides|async) as curSlides\">\n <ng-container *ngIf=\"curSlides!.length > 0 && hasStartMessage\">\n <ajf-page-slider-item>\n <div class=\"ajf-form-page\">\n <mat-card appearance=\"outlined\">\n <mat-card-header>\n <div class=\"ajf-page-slider-item-header\">\n <h2>\n <span class=\"ajf-form-header-number\"> 1 &rarr; </span>\n <span class=\"ajf-title\">\n <ng-content select=\"[ajfFormStartMessageTitle]\"></ng-content>\n </span>\n </h2>\n </div>\n </mat-card-header>\n <mat-card-content>\n <ng-content select=\"[ajfFormStartMessage]\"></ng-content>\n </mat-card-content>\n </mat-card>\n </div>\n </ajf-page-slider-item>\n </ng-container>\n <ng-container *ngFor=\"let slideInstance of curSlides; trackBy:trackNodeById\">\n <!-- non repeating slides -->\n <ng-container *ngIf=\"slideInstance.visible\">\n <ng-container *ngIf=\"!(slideInstance|ajfIsRepeatingSlideInstance)\">\n <ajf-page-slider-item>\n <div class=\"ajf-form-page\">\n <mat-card appearance=\"outlined\">\n <mat-card-header>\n <div class=\"ajf-page-slider-item-header\">\n <h2>\n <span class=\"ajf-form-header-number\"\n >{{ slideInstance.position + (hasStartMessage | ajfBoolToInt) }}\n &rarr;</span\n >\n <span [innerHTML]=\"slideInstance.node.label | transloco\"></span>\n </h2>\n <mat-icon class=\"ajf-warning\" *ngIf=\"!slideInstance.valid\"\n >warning</mat-icon\n >\n <mat-icon class=\"ajf-success\" *ngIf=\"slideInstance.valid\"\n >check</mat-icon\n >\n </div>\n </mat-card-header>\n <mat-card-content>\n <ng-template\n ngFor\n let-fieldInstance\n [ngForOf]=\"slideInstance.flatNodes\"\n [ngForTrackBy]=\"trackNodeById\"\n >\n <div\n [ngClass]=\"'ajf-' + (fieldInstance|ajfAsFieldInstance).node.size\"\n class=\"ajf-field-entry\"\n *ngIf=\"fieldInstance.visible\"\n >\n <i\n [class]=\"(fieldInstance|ajfAsFieldInstance).node.fieldType | ajfFieldIcon\"\n item-right\n ></i>\n <p>\n {{ ((fieldInstance|ajfAsFieldInstance).node.description || '') |\n transloco }}\n </p>\n <label\n [attr.id]=\"fieldInstance.node.name\"\n *ngIf=\"(fieldInstance|ajfAsFieldInstance).node.fieldType !== 7\"\n [innerHTML]=\"fieldInstance.node.label | transloco\"\n ></label>\n <mat-icon\n class=\"ajf-tooltip-icon\"\n *ngIf=\"(fieldInstance|ajfAsFieldInstance).node?.hint as hint\"\n [matTooltip]=\"hint\"\n matTooltipPosition=\"right\"\n >\n {{(fieldInstance|ajfAsFieldInstance).node.hintIcon ||\n 'help'}}</mat-icon\n >\n <ajf-field\n [instance]=\"fieldInstance|ajfAsFieldInstance\"\n [readonly]=\"readonly || !slideInstance.editable\"\n >\n </ajf-field>\n </div>\n </ng-template>\n </mat-card-content>\n </mat-card>\n </div>\n </ajf-page-slider-item>\n </ng-container>\n <!-- repeating slides -->\n <ng-container *ngIf=\"(slideInstance|ajfIsRepeatingSlideInstance)\">\n <ajf-page-slider-item\n *ngFor=\"let curRep of ((slideInstance|ajfAsRepeatingSlideInstance).reps|ajfRange); let idx = index; let lastSlide = last\"\n >\n <div class=\"ajf-form-page\">\n <mat-card appearance=\"outlined\">\n <mat-card-header>\n <div class=\"ajf-page-slider-item-header\">\n <h2>\n <span class=\"ajf-form-header-number\"\n >{{ slideInstance.position|ajfIncrement:idx + (hasStartMessage |\n ajfBoolToInt) }} &rarr;</span\n >\n <span [innerHTML]=\"slideInstance.node.label | transloco\"></span>\n </h2>\n <mat-icon class=\"ajf-warning\" *ngIf=\"!(slideInstance|ajfValidSlide:idx)\"\n >warning</mat-icon\n >\n <mat-icon class=\"ajf-success\" *ngIf=\"(slideInstance|ajfValidSlide:idx)\"\n >check</mat-icon\n >\n </div>\n </mat-card-header>\n <mat-card-content>\n <div *ngIf=\"lastSlide && !readonly\" class=\"ajf-group-actions\">\n <button\n (click)=\"addGroup(slideInstance)\"\n [disabled]=\"!(slideInstance|ajfAsRepeatingSlideInstance).canAdd || ((slideInstance|ajfAsRepeatingSlideInstance).node.disableRemoval && !slideInstance.valid)\"\n mat-mini-fab\n >\n <mat-icon>add</mat-icon>\n </button>\n <button\n (click)=\"removeGroup(slideInstance)\"\n [disabled]=\"!(slideInstance|ajfAsRepeatingSlideInstance).canRemove || (slideInstance|ajfAsRepeatingSlideInstance).node.disableRemoval\"\n mat-mini-fab\n >\n <mat-icon>remove</mat-icon>\n </button>\n </div>\n <ng-template\n ngFor\n let-fieldInstance\n [ngForOf]=\"slideInstance.slideNodes[idx]\"\n [ngForTrackBy]=\"trackNodeById\"\n >\n <div\n [ngClass]=\"'ajf-' + (fieldInstance|ajfAsFieldInstance).node.size\"\n class=\"ajf-field-entry\"\n *ngIf=\"fieldInstance.visible\"\n >\n <i\n [class]=\"(fieldInstance|ajfAsFieldInstance).node.fieldType | ajfFieldIcon\"\n item-right\n ></i>\n <p>\n {{ ((fieldInstance|ajfAsFieldInstance).node.description || '') |\n transloco }}\n </p>\n <label\n [attr.id]=\"fieldInstance.node.name\"\n [innerHTML]=\"fieldInstance.node.label | transloco\"\n ></label>\n <mat-icon\n class=\"ajf-tooltip-icon\"\n *ngIf=\"(fieldInstance|ajfAsFieldInstance).node?.hint as hint\"\n [matTooltip]=\"hint\"\n matTooltipPosition=\"right\"\n >\n {{(fieldInstance|ajfAsFieldInstance).node.hintIcon ||\n 'help'}}</mat-icon\n >\n <ajf-field\n [instance]=\"fieldInstance|ajfAsFieldInstance\"\n [readonly]=\"readonly || (!lastSlide && (slideInstance|ajfAsRepeatingSlideInstance).node.disableRemoval)\"\n >\n </ajf-field>\n </div>\n </ng-template>\n </mat-card-content>\n </mat-card>\n </div>\n </ajf-page-slider-item>\n </ng-container>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"curSlides && curSlides!.length > 0 && hasEndMessage\">\n <ajf-page-slider-item>\n <div class=\"ajf-form-page\">\n <mat-card appearance=\"outlined\">\n <mat-card-header>\n <div class=\"ajf-page-slider-item-header\">\n <h2>\n <span *ngIf=\"(slidesNum|async) as snum\" class=\"ajf-form-header-number\">\n {{ snum! + (hasStartMessage | ajfBoolToInt ) + 1 }} &rarr;\n </span>\n <span class=\"ajf-title\">\n <ng-content select=\"[ajfFormEndMessageTitle]\"></ng-content>\n </span>\n </h2>\n </div>\n </mat-card-header>\n <mat-card-content>\n <ng-content select=\"[ajfFormEndMessage]\"></ng-content>\n </mat-card-content>\n </mat-card>\n </div>\n </ajf-page-slider-item>\n </ng-container>\n </ng-container>\n <div ajfPageSliderBar *ngIf=\"!hideBottomToolbar\">\n <div class=\"ajf-left-bar\">\n <div class=\"ajf-errors\" *ngIf=\"((errors | async) || 0) > 0\">\n <button mat-button (click)=\"goToPrevError()\" danger>\n <mat-icon>arrow_upward</mat-icon>\n </button>\n <button mat-button (click)=\"goToNextError()\" danger>\n <mat-icon>arrow_downward</mat-icon>\n </button>\n </div>\n <div class=\"ajf-info-box ajf-error\">\n <div class=\"ajf-title\">{{'Errors'|transloco}}</div>\n <div class=\"ajf-content\">{{ errors | async }} / {{ slidesNum|async }}</div>\n </div>\n </div>\n </div>\n </ajf-page-slider>\n </div>\n </div>\n </form>\n</ng-container>\n", styles: ["ajf-form{display:block}ajf-form .ajf-form-readonly .ajf-field-entry>label{font-weight:700}ajf-form .ajf-form-container{display:flex;flex-direction:column;position:absolute;inset:0}ajf-form .ajf-form-container mat-toolbar.ajf-hidden{opacity:0}ajf-form .ajf-form-container .ajf-btn-strip .mat-button-toggle-group{overflow-x:auto}ajf-form .ajf-form-container .ajf-topbar-button{font-size:.8em}ajf-form .ajf-form-container mat-icon.ajf-warning{color:#f53d3d}ajf-form .ajf-form-container mat-icon.ajf-success{color:#32db64}ajf-form .ajf-form-container>.ajf-slider-container{flex:1;position:relative}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider{height:100%}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content{padding:16px}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page{flex:1;max-height:100%}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page>mat-card{margin:1em 0 3em}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page>mat-card>mat-card-content{display:flex;flex-wrap:wrap;flex-direction:row;align-content:flex-start;position:relative}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page>mat-card>mat-card-content .ajf-group-actions{position:absolute;right:0;top:-30px;padding:15px;z-index:10}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page>mat-card>mat-card-content>.ajf-field-entry{flex:1 0 auto;padding-left:10px;padding-right:10px;width:100%}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page>mat-card>mat-card-content>.ajf-field-entry .mat-icon{vertical-align:bottom;margin-left:5px}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page>mat-card>mat-card-content>.ajf-field-entry.ajf-normal{width:100%}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page>mat-card>mat-card-content>.ajf-field-entry.ajf-small{width:50%}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page>mat-card>mat-card-content>.ajf-field-entry.ajf-smaller{width:33%}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page>mat-card>mat-card-content>.ajf-field-entry.ajf-tiny{width:25%}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page>mat-card>mat-card-content>.ajf-field-entry.ajf-mini{width:20%}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider .ajf-page-slider-item-header{display:flex;align-items:center;width:100%}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider .ajf-page-slider-item-header>h2{flex:1}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider .ajf-page-slider-item-header>h2>.ajf-form-header-number{margin-right:.5em}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider .ajf-page-slider-item-header h2>.ajf-title{display:inline-block;margin-right:40px;white-space:normal;vertical-align:top}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider [ajfPageSliderBar] .ajf-left-bar{display:flex;align-items:flex-start;flex-direction:row;position:absolute;bottom:0}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider [ajfPageSliderBar] .ajf-left-bar .ajf-right-button{float:right}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider [ajfPageSliderBar] .ajf-left-bar .ajf-button-icon-only ion-icon{padding:0 .1em}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider [ajfPageSliderBar] .ajf-left-bar .ajf-info-box{height:40px;padding:4px}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider [ajfPageSliderBar] .ajf-left-bar .ajf-info-box>div{height:16px;line-height:16px}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider [ajfPageSliderBar] .ajf-left-bar .ajf-info-box>div.ajf-content{font-weight:700}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider [ajfPageSliderBar] .ajf-left-bar .ajf-info-box.ajf-error{order:2;color:red}ajf-form .ajf-form-container .ajf-spacer{flex:1 0 auto}\n"], dependencies: [{ kind: "component", type: i2$7.AjfPageSliderItem, selector: "ajf-page-slider-item", outputs: ["scroll"] }, { kind: "component", type: i3$6.AjfPageSlider, selector: "ajf-page-slider" }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatMiniFabButton, selector: "button[mat-mini-fab]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i6$2.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i6$2.MatButtonToggle, selector: "mat-button-toggle", inputs: ["disableRipple", "aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "component", type: i7.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i7.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i7.MatCardHeader, selector: "mat-card-header" }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i9.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: i10.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: AjfFormField, selector: "ajf-field,ajf-form-field" }, { kind: "pipe", type: i3$2.TranslocoPipe, name: "transloco" }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.AjfAsFieldInstancePipe, name: "ajfAsFieldInstance" }, { kind: "pipe", type: i1.AjfAsRepeatingSlideInstancePipe, name: "ajfAsRepeatingSlideInstance" }, { kind: "pipe", type: i1.AjfBoolToIntPipe, name: "ajfBoolToInt" }, { kind: "pipe", type: i1.AjfFieldIconPipe, name: "ajfFieldIcon" }, { kind: "pipe", type: i1.AjfIncrementPipe, name: "ajfIncrement" }, { kind: "pipe", type: i1.AjfIsRepeatingSlideInstancePipe, name: "ajfIsRepeatingSlideInstance" }, { kind: "pipe", type: i1.AjfRangePipe, name: "ajfRange" }, { kind: "pipe", type: i1.AjfValidSlidePipe, name: "ajfValidSlide" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
775
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfFormRenderer, decorators: [{
773
776
  type: Component,
774
- args: [{ selector: 'ajf-form', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"formGroup|async as fg\">\n <form [class.ajf-form-readonly]=\"readonly\" novalidate [formGroup]=\"fg!\">\n <div class=\"ajf-form-container\">\n <mat-toolbar *ngIf=\"!hideTopToolbar && topBar\" class=\"ajf-btn-strip\">\n <mat-button-toggle-group>\n <ng-container *ngFor=\"let slideInstance of (slides|async); trackBy: trackNodeById\">\n <mat-button-toggle\n *ngIf=\"slideInstance.node.label && slideInstance.node.label.length > 0\"\n class=\"ajf-topbar-button\"\n (click)=\"scrollToSlide(slideInstance)\"\n >\n {{slideInstance.node.label | transloco}}\n <mat-icon *ngIf=\"!slideInstance.valid\" class=\"ajf-warning\">warning</mat-icon>\n <mat-icon *ngIf=\"slideInstance.valid\" class=\"ajf-success\">check</mat-icon>\n </mat-button-toggle>\n </ng-container>\n </mat-button-toggle-group>\n </mat-toolbar>\n <mat-toolbar *ngIf=\"!hideTopToolbar\">\n {{ title }}\n <span class=\"ajf-spacer\"></span>\n <!-- this content projection allow to add buttons on toolbar -->\n <ng-content select=\"[ajfFormTopToolbarButtons]\"></ng-content>\n <!-- apply a default save button only when ajfFormSaveButton is empty -->\n <span *ngIf=\"!saveDisabled\" (click)=\"onSave($event)\">\n <span #saveButton\n ><ng-content select=\"[ajfFormSaveButton]\"></ng-content\n ></span>\n <button\n *ngIf=\"saveButton && saveButton.childNodes && saveButton.childNodes.length === 0\"\n mat-button\n default\n >\n {{'Save'|transloco}}\n </button>\n </span>\n </mat-toolbar>\n <div class=\"ajf-slider-container\">\n <ajf-page-slider\n (orientationChange)=\"orientationChangeHandler($event)\"\n [fixedOrientation]=\"fixedOrientation\"\n [hideNavigationButtons]=\"hideNavigationButtons\"\n [orientation]=\"orientation\"\n #formSlider\n >\n <ng-container *ngIf=\"(slides|async) as curSlides\">\n <ng-container *ngIf=\"curSlides!.length > 0 && hasStartMessage\">\n <ajf-page-slider-item>\n <div class=\"ajf-form-page\">\n <mat-card>\n <mat-card-header>\n <div class=\"ajf-page-slider-item-header\">\n <h2>\n <span class=\"ajf-form-header-number\"> 1 &rarr; </span>\n <span class=\"ajf-title\">\n <ng-content\n select=\"[ajfFormStartMessageTitle]\"\n ></ng-content>\n </span>\n </h2>\n </div>\n </mat-card-header>\n <mat-card-content>\n <ng-content select=\"[ajfFormStartMessage]\"></ng-content>\n </mat-card-content>\n </mat-card>\n </div>\n </ajf-page-slider-item>\n </ng-container>\n <ng-container\n *ngFor=\"let slideInstance of curSlides; trackBy:trackNodeById\"\n >\n <!-- non repeating slides -->\n <ng-container *ngIf=\"slideInstance.visible\">\n <ng-container\n *ngIf=\"!(slideInstance|ajfIsRepeatingSlideInstance)\"\n >\n <ajf-page-slider-item>\n <div class=\"ajf-form-page\">\n <mat-card>\n <mat-card-header>\n <div class=\"ajf-page-slider-item-header\">\n <h2>\n <span class=\"ajf-form-header-number\"\n >{{ slideInstance.position + (hasStartMessage |\n ajfBoolToInt) }} &rarr;</span\n >\n <span\n [innerHTML]=\"slideInstance.node.label | transloco\"\n ></span>\n </h2>\n <mat-icon\n class=\"ajf-warning\"\n *ngIf=\"!slideInstance.valid\"\n >warning</mat-icon\n >\n <mat-icon\n class=\"ajf-success\"\n *ngIf=\"slideInstance.valid\"\n >check</mat-icon\n >\n </div>\n </mat-card-header>\n <mat-card-content>\n <ng-template\n ngFor\n let-fieldInstance\n [ngForOf]=\"slideInstance.flatNodes\"\n [ngForTrackBy]=\"trackNodeById\"\n >\n <div\n [ngClass]=\"'ajf-' + (fieldInstance|ajfAsFieldInstance).node.size\"\n class=\"ajf-field-entry\"\n *ngIf=\"fieldInstance.visible\"\n >\n <i\n [class]=\"(fieldInstance|ajfAsFieldInstance).node.fieldType | ajfFieldIcon\"\n item-right\n ></i>\n <p>\n {{\n ((fieldInstance|ajfAsFieldInstance).node.description\n || '') | transloco }}\n </p>\n <label\n [attr.id]=\"fieldInstance.node.name\"\n *ngIf=\"(fieldInstance|ajfAsFieldInstance).node.fieldType !== 7\"\n [innerHTML]=\"fieldInstance.node.label | transloco\"\n ></label>\n <mat-icon\n class=\"ajf-tooltip-icon\"\n *ngIf=\"(fieldInstance|ajfAsFieldInstance).node?.hint as hint\"\n [matTooltip]=\"hint\"\n matTooltipPosition=\"right\"\n >\n {{(fieldInstance|ajfAsFieldInstance).node?.hintIcon\n || 'help'}}</mat-icon\n >\n <ajf-field\n [instance]=\"fieldInstance|ajfAsFieldInstance\"\n [readonly]=\"readonly || !slideInstance.editable\"\n >\n </ajf-field>\n </div>\n </ng-template>\n </mat-card-content>\n </mat-card>\n </div>\n </ajf-page-slider-item>\n </ng-container>\n <!-- repeating slides -->\n <ng-container\n *ngIf=\"(slideInstance|ajfIsRepeatingSlideInstance)\"\n >\n <ajf-page-slider-item\n *ngFor=\"let curRep of ((slideInstance|ajfAsRepeatingSlideInstance).reps|ajfRange); let idx = index; let lastSlide = last\"\n >\n <div class=\"ajf-form-page\">\n <mat-card>\n <mat-card-header>\n <div class=\"ajf-page-slider-item-header\">\n <h2>\n <span class=\"ajf-form-header-number\"\n >{{ slideInstance.position|ajfIncrement:idx +\n (hasStartMessage | ajfBoolToInt) }} &rarr;</span\n >\n <span\n [innerHTML]=\"slideInstance.node.label | transloco\"\n ></span>\n </h2>\n <mat-icon\n class=\"ajf-warning\"\n *ngIf=\"!(slideInstance|ajfValidSlide:idx)\"\n >warning</mat-icon\n >\n <mat-icon\n class=\"ajf-success\"\n *ngIf=\"(slideInstance|ajfValidSlide:idx)\"\n >check</mat-icon\n >\n </div>\n </mat-card-header>\n <mat-card-content>\n <div\n *ngIf=\"lastSlide && !readonly\"\n class=\"ajf-group-actions\"\n >\n <button\n (click)=\"addGroup(slideInstance)\"\n [disabled]=\"!(slideInstance|ajfAsRepeatingSlideInstance).canAdd || ((slideInstance|ajfAsRepeatingSlideInstance).node?.disableRemoval && !slideInstance.valid)\"\n mat-mini-fab\n >\n <mat-icon>add</mat-icon>\n </button>\n <button\n (click)=\"removeGroup(slideInstance)\"\n [disabled]=\"!(slideInstance|ajfAsRepeatingSlideInstance).canRemove || (slideInstance|ajfAsRepeatingSlideInstance).node?.disableRemoval\"\n mat-mini-fab\n >\n <mat-icon>remove</mat-icon>\n </button>\n </div>\n <ng-template\n ngFor\n let-fieldInstance\n [ngForOf]=\"slideInstance.slideNodes[idx]\"\n [ngForTrackBy]=\"trackNodeById\"\n >\n <div\n [ngClass]=\"'ajf-' + (fieldInstance|ajfAsFieldInstance).node.size\"\n class=\"ajf-field-entry\"\n *ngIf=\"fieldInstance.visible\"\n >\n <i\n [class]=\"(fieldInstance|ajfAsFieldInstance).node.fieldType | ajfFieldIcon\"\n item-right\n ></i>\n <p>\n {{\n ((fieldInstance|ajfAsFieldInstance).node.description\n || '') | transloco }}\n </p>\n <label\n [attr.id]=\"fieldInstance.node.name\"\n [innerHTML]=\"fieldInstance.node.label | transloco\"\n ></label>\n <mat-icon\n class=\"ajf-tooltip-icon\"\n *ngIf=\"(fieldInstance|ajfAsFieldInstance).node?.hint as hint\"\n [matTooltip]=\"hint\"\n matTooltipPosition=\"right\"\n >\n {{(fieldInstance|ajfAsFieldInstance).node?.hintIcon\n || 'help'}}</mat-icon\n >\n <ajf-field\n [instance]=\"fieldInstance|ajfAsFieldInstance\"\n [readonly]=\"readonly || (!lastSlide && (slideInstance|ajfAsRepeatingSlideInstance).node?.disableRemoval)\"\n >\n </ajf-field>\n </div>\n </ng-template>\n </mat-card-content>\n </mat-card>\n </div>\n </ajf-page-slider-item>\n </ng-container>\n </ng-container>\n </ng-container>\n <ng-container\n *ngIf=\"curSlides && curSlides!.length > 0 && hasEndMessage\"\n >\n <ajf-page-slider-item>\n <div class=\"ajf-form-page\">\n <mat-card>\n <mat-card-header>\n <div class=\"ajf-page-slider-item-header\">\n <h2>\n <span\n *ngIf=\"(slidesNum|async) as snum\"\n class=\"ajf-form-header-number\"\n >\n {{ snum! + (hasStartMessage | ajfBoolToInt ) + 1 }}\n &rarr;\n </span>\n <span class=\"ajf-title\">\n <ng-content\n select=\"[ajfFormEndMessageTitle]\"\n ></ng-content>\n </span>\n </h2>\n </div>\n </mat-card-header>\n <mat-card-content>\n <ng-content select=\"[ajfFormEndMessage]\"></ng-content>\n </mat-card-content>\n </mat-card>\n </div>\n </ajf-page-slider-item>\n </ng-container>\n </ng-container>\n <div ajfPageSliderBar *ngIf=\"!hideBottomToolbar\">\n <div class=\"ajf-left-bar\">\n <div class=\"ajf-errors\" *ngIf=\"((errors | async) || 0) > 0\">\n <button mat-button (click)=\"goToPrevError()\" danger>\n <mat-icon>arrow_upward</mat-icon>\n </button>\n <button mat-button (click)=\"goToNextError()\" danger>\n <mat-icon>arrow_downward</mat-icon>\n </button>\n </div>\n <div class=\"ajf-info-box ajf-error\">\n <div class=\"ajf-title\">{{'Errors'|transloco}}</div>\n <div class=\"ajf-content\">\n {{ errors | async }} / {{ slidesNum|async }}\n </div>\n </div>\n </div>\n </div>\n </ajf-page-slider>\n </div>\n </div>\n </form>\n</ng-container>\n", styles: ["ajf-form{display:block}ajf-form .ajf-form-readonly .ajf-field-entry>label{font-weight:700}ajf-form .ajf-form-container{display:flex;flex-direction:column;position:absolute;top:0;right:0;bottom:0;left:0}ajf-form .ajf-form-container mat-toolbar.ajf-hidden{opacity:0}ajf-form .ajf-form-container .ajf-btn-strip .mat-button-toggle-group{overflow-x:auto}ajf-form .ajf-form-container .ajf-topbar-button{font-size:.8em}ajf-form .ajf-form-container mat-icon.ajf-warning{color:#f53d3d}ajf-form .ajf-form-container mat-icon.ajf-success{color:#32db64}ajf-form .ajf-form-container>.ajf-slider-container{flex:1;position:relative}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider{height:100%}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content{padding:16px}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page{flex:1;max-height:100%}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page>mat-card{margin:1em 0 3em}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page>mat-card>mat-card-content{display:flex;flex-wrap:wrap;flex-direction:row;align-content:flex-start;position:relative}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page>mat-card>mat-card-content .ajf-group-actions{position:absolute;right:0;top:-30px;padding:15px;z-index:10}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page>mat-card>mat-card-content>.ajf-field-entry{flex:1 0 auto;padding-left:10px;padding-right:10px;width:100%}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page>mat-card>mat-card-content>.ajf-field-entry .mat-icon{vertical-align:bottom;margin-left:5px}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page>mat-card>mat-card-content>.ajf-field-entry.ajf-normal{width:100%}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page>mat-card>mat-card-content>.ajf-field-entry.ajf-small{width:50%}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page>mat-card>mat-card-content>.ajf-field-entry.ajf-smaller{width:33%}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page>mat-card>mat-card-content>.ajf-field-entry.ajf-tiny{width:25%}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page>mat-card>mat-card-content>.ajf-field-entry.ajf-mini{width:20%}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider .ajf-page-slider-item-header{display:flex;align-items:center;width:100%}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider .ajf-page-slider-item-header>h2{flex:1}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider .ajf-page-slider-item-header>h2>.ajf-form-header-number{margin-right:.5em}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider .ajf-page-slider-item-header h2>.ajf-title{display:inline-block;margin-right:40px;white-space:normal;vertical-align:top}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider [ajfPageSliderBar] .ajf-left-bar{display:flex;align-items:flex-start;flex-direction:row;position:absolute;bottom:0}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider [ajfPageSliderBar] .ajf-left-bar .ajf-right-button{float:right}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider [ajfPageSliderBar] .ajf-left-bar .ajf-button-icon-only ion-icon{padding:0 .1em}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider [ajfPageSliderBar] .ajf-left-bar .ajf-info-box{height:40px;padding:4px}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider [ajfPageSliderBar] .ajf-left-bar .ajf-info-box>div{height:16px;line-height:16px}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider [ajfPageSliderBar] .ajf-left-bar .ajf-info-box>div.ajf-content{font-weight:700}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider [ajfPageSliderBar] .ajf-left-bar .ajf-info-box.ajf-error{order:2;color:red}ajf-form .ajf-form-container .ajf-spacer{flex:1 0 auto}\n"] }]
775
- }], ctorParameters: function () { return [{ type: i1$1.AjfFormRendererService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { topBar: [{
777
+ args: [{ selector: 'ajf-form', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"formGroup|async as fg\">\n <form [class.ajf-form-readonly]=\"readonly\" novalidate [formGroup]=\"fg!\">\n <div class=\"ajf-form-container\">\n <mat-toolbar *ngIf=\"!hideTopToolbar && topBar\" class=\"ajf-btn-strip\">\n <mat-button-toggle-group>\n <ng-container\n *ngFor=\"let slideInstance of (slides|async); let idx = index; trackBy: trackNodeById\"\n >\n <mat-button-toggle\n *ngIf=\"slideInstance.node.label && slideInstance.node.label.length > 0\"\n class=\"ajf-topbar-button\"\n (click)=\"scrollToSlide(slideInstance)\"\n [checked]=\"isSlideToggleChecked(slideInstance, formSlider.currentPage)\"\n [disabled]=\"slideInstance.visible === false\"\n >\n {{slideInstance.node.label | transloco}} {{ getRepeatingSlideRepIndex(slideInstance,\n formSlider.currentPage)|async}}\n <mat-icon *ngIf=\"!slideInstance.valid\" class=\"ajf-warning\">warning</mat-icon>\n <mat-icon *ngIf=\"slideInstance.valid\" class=\"ajf-success\">check</mat-icon>\n </mat-button-toggle>\n </ng-container>\n </mat-button-toggle-group>\n </mat-toolbar>\n <mat-toolbar *ngIf=\"!hideTopToolbar\">\n {{ title }}\n <span class=\"ajf-spacer\"></span>\n <!-- this content projection allow to add buttons on toolbar -->\n <ng-content select=\"[ajfFormTopToolbarButtons]\"></ng-content>\n <!-- apply a default save button only when ajfFormSaveButton is empty -->\n <span *ngIf=\"!saveDisabled\" (click)=\"onSave($event)\">\n <span #saveButton><ng-content select=\"[ajfFormSaveButton]\"></ng-content></span>\n <button\n *ngIf=\"saveButton && saveButton.childNodes && saveButton.childNodes.length === 0\"\n mat-button\n default\n >\n {{'Save'|transloco}}\n </button>\n </span>\n </mat-toolbar>\n <div class=\"ajf-slider-container\">\n <ajf-page-slider\n (orientationChange)=\"orientationChangeHandler($event)\"\n [fixedOrientation]=\"fixedOrientation\"\n [hideNavigationButtons]=\"hideNavigationButtons\"\n [orientation]=\"orientation\"\n #formSlider\n >\n <ng-container *ngIf=\"(slides|async) as curSlides\">\n <ng-container *ngIf=\"curSlides!.length > 0 && hasStartMessage\">\n <ajf-page-slider-item>\n <div class=\"ajf-form-page\">\n <mat-card appearance=\"outlined\">\n <mat-card-header>\n <div class=\"ajf-page-slider-item-header\">\n <h2>\n <span class=\"ajf-form-header-number\"> 1 &rarr; </span>\n <span class=\"ajf-title\">\n <ng-content select=\"[ajfFormStartMessageTitle]\"></ng-content>\n </span>\n </h2>\n </div>\n </mat-card-header>\n <mat-card-content>\n <ng-content select=\"[ajfFormStartMessage]\"></ng-content>\n </mat-card-content>\n </mat-card>\n </div>\n </ajf-page-slider-item>\n </ng-container>\n <ng-container *ngFor=\"let slideInstance of curSlides; trackBy:trackNodeById\">\n <!-- non repeating slides -->\n <ng-container *ngIf=\"slideInstance.visible\">\n <ng-container *ngIf=\"!(slideInstance|ajfIsRepeatingSlideInstance)\">\n <ajf-page-slider-item>\n <div class=\"ajf-form-page\">\n <mat-card appearance=\"outlined\">\n <mat-card-header>\n <div class=\"ajf-page-slider-item-header\">\n <h2>\n <span class=\"ajf-form-header-number\"\n >{{ slideInstance.position + (hasStartMessage | ajfBoolToInt) }}\n &rarr;</span\n >\n <span [innerHTML]=\"slideInstance.node.label | transloco\"></span>\n </h2>\n <mat-icon class=\"ajf-warning\" *ngIf=\"!slideInstance.valid\"\n >warning</mat-icon\n >\n <mat-icon class=\"ajf-success\" *ngIf=\"slideInstance.valid\"\n >check</mat-icon\n >\n </div>\n </mat-card-header>\n <mat-card-content>\n <ng-template\n ngFor\n let-fieldInstance\n [ngForOf]=\"slideInstance.flatNodes\"\n [ngForTrackBy]=\"trackNodeById\"\n >\n <div\n [ngClass]=\"'ajf-' + (fieldInstance|ajfAsFieldInstance).node.size\"\n class=\"ajf-field-entry\"\n *ngIf=\"fieldInstance.visible\"\n >\n <i\n [class]=\"(fieldInstance|ajfAsFieldInstance).node.fieldType | ajfFieldIcon\"\n item-right\n ></i>\n <p>\n {{ ((fieldInstance|ajfAsFieldInstance).node.description || '') |\n transloco }}\n </p>\n <label\n [attr.id]=\"fieldInstance.node.name\"\n *ngIf=\"(fieldInstance|ajfAsFieldInstance).node.fieldType !== 7\"\n [innerHTML]=\"fieldInstance.node.label | transloco\"\n ></label>\n <mat-icon\n class=\"ajf-tooltip-icon\"\n *ngIf=\"(fieldInstance|ajfAsFieldInstance).node?.hint as hint\"\n [matTooltip]=\"hint\"\n matTooltipPosition=\"right\"\n >\n {{(fieldInstance|ajfAsFieldInstance).node.hintIcon ||\n 'help'}}</mat-icon\n >\n <ajf-field\n [instance]=\"fieldInstance|ajfAsFieldInstance\"\n [readonly]=\"readonly || !slideInstance.editable\"\n >\n </ajf-field>\n </div>\n </ng-template>\n </mat-card-content>\n </mat-card>\n </div>\n </ajf-page-slider-item>\n </ng-container>\n <!-- repeating slides -->\n <ng-container *ngIf=\"(slideInstance|ajfIsRepeatingSlideInstance)\">\n <ajf-page-slider-item\n *ngFor=\"let curRep of ((slideInstance|ajfAsRepeatingSlideInstance).reps|ajfRange); let idx = index; let lastSlide = last\"\n >\n <div class=\"ajf-form-page\">\n <mat-card appearance=\"outlined\">\n <mat-card-header>\n <div class=\"ajf-page-slider-item-header\">\n <h2>\n <span class=\"ajf-form-header-number\"\n >{{ slideInstance.position|ajfIncrement:idx + (hasStartMessage |\n ajfBoolToInt) }} &rarr;</span\n >\n <span [innerHTML]=\"slideInstance.node.label | transloco\"></span>\n </h2>\n <mat-icon class=\"ajf-warning\" *ngIf=\"!(slideInstance|ajfValidSlide:idx)\"\n >warning</mat-icon\n >\n <mat-icon class=\"ajf-success\" *ngIf=\"(slideInstance|ajfValidSlide:idx)\"\n >check</mat-icon\n >\n </div>\n </mat-card-header>\n <mat-card-content>\n <div *ngIf=\"lastSlide && !readonly\" class=\"ajf-group-actions\">\n <button\n (click)=\"addGroup(slideInstance)\"\n [disabled]=\"!(slideInstance|ajfAsRepeatingSlideInstance).canAdd || ((slideInstance|ajfAsRepeatingSlideInstance).node.disableRemoval && !slideInstance.valid)\"\n mat-mini-fab\n >\n <mat-icon>add</mat-icon>\n </button>\n <button\n (click)=\"removeGroup(slideInstance)\"\n [disabled]=\"!(slideInstance|ajfAsRepeatingSlideInstance).canRemove || (slideInstance|ajfAsRepeatingSlideInstance).node.disableRemoval\"\n mat-mini-fab\n >\n <mat-icon>remove</mat-icon>\n </button>\n </div>\n <ng-template\n ngFor\n let-fieldInstance\n [ngForOf]=\"slideInstance.slideNodes[idx]\"\n [ngForTrackBy]=\"trackNodeById\"\n >\n <div\n [ngClass]=\"'ajf-' + (fieldInstance|ajfAsFieldInstance).node.size\"\n class=\"ajf-field-entry\"\n *ngIf=\"fieldInstance.visible\"\n >\n <i\n [class]=\"(fieldInstance|ajfAsFieldInstance).node.fieldType | ajfFieldIcon\"\n item-right\n ></i>\n <p>\n {{ ((fieldInstance|ajfAsFieldInstance).node.description || '') |\n transloco }}\n </p>\n <label\n [attr.id]=\"fieldInstance.node.name\"\n [innerHTML]=\"fieldInstance.node.label | transloco\"\n ></label>\n <mat-icon\n class=\"ajf-tooltip-icon\"\n *ngIf=\"(fieldInstance|ajfAsFieldInstance).node?.hint as hint\"\n [matTooltip]=\"hint\"\n matTooltipPosition=\"right\"\n >\n {{(fieldInstance|ajfAsFieldInstance).node.hintIcon ||\n 'help'}}</mat-icon\n >\n <ajf-field\n [instance]=\"fieldInstance|ajfAsFieldInstance\"\n [readonly]=\"readonly || (!lastSlide && (slideInstance|ajfAsRepeatingSlideInstance).node.disableRemoval)\"\n >\n </ajf-field>\n </div>\n </ng-template>\n </mat-card-content>\n </mat-card>\n </div>\n </ajf-page-slider-item>\n </ng-container>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"curSlides && curSlides!.length > 0 && hasEndMessage\">\n <ajf-page-slider-item>\n <div class=\"ajf-form-page\">\n <mat-card appearance=\"outlined\">\n <mat-card-header>\n <div class=\"ajf-page-slider-item-header\">\n <h2>\n <span *ngIf=\"(slidesNum|async) as snum\" class=\"ajf-form-header-number\">\n {{ snum! + (hasStartMessage | ajfBoolToInt ) + 1 }} &rarr;\n </span>\n <span class=\"ajf-title\">\n <ng-content select=\"[ajfFormEndMessageTitle]\"></ng-content>\n </span>\n </h2>\n </div>\n </mat-card-header>\n <mat-card-content>\n <ng-content select=\"[ajfFormEndMessage]\"></ng-content>\n </mat-card-content>\n </mat-card>\n </div>\n </ajf-page-slider-item>\n </ng-container>\n </ng-container>\n <div ajfPageSliderBar *ngIf=\"!hideBottomToolbar\">\n <div class=\"ajf-left-bar\">\n <div class=\"ajf-errors\" *ngIf=\"((errors | async) || 0) > 0\">\n <button mat-button (click)=\"goToPrevError()\" danger>\n <mat-icon>arrow_upward</mat-icon>\n </button>\n <button mat-button (click)=\"goToNextError()\" danger>\n <mat-icon>arrow_downward</mat-icon>\n </button>\n </div>\n <div class=\"ajf-info-box ajf-error\">\n <div class=\"ajf-title\">{{'Errors'|transloco}}</div>\n <div class=\"ajf-content\">{{ errors | async }} / {{ slidesNum|async }}</div>\n </div>\n </div>\n </div>\n </ajf-page-slider>\n </div>\n </div>\n </form>\n</ng-container>\n", styles: ["ajf-form{display:block}ajf-form .ajf-form-readonly .ajf-field-entry>label{font-weight:700}ajf-form .ajf-form-container{display:flex;flex-direction:column;position:absolute;inset:0}ajf-form .ajf-form-container mat-toolbar.ajf-hidden{opacity:0}ajf-form .ajf-form-container .ajf-btn-strip .mat-button-toggle-group{overflow-x:auto}ajf-form .ajf-form-container .ajf-topbar-button{font-size:.8em}ajf-form .ajf-form-container mat-icon.ajf-warning{color:#f53d3d}ajf-form .ajf-form-container mat-icon.ajf-success{color:#32db64}ajf-form .ajf-form-container>.ajf-slider-container{flex:1;position:relative}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider{height:100%}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content{padding:16px}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page{flex:1;max-height:100%}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page>mat-card{margin:1em 0 3em}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page>mat-card>mat-card-content{display:flex;flex-wrap:wrap;flex-direction:row;align-content:flex-start;position:relative}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page>mat-card>mat-card-content .ajf-group-actions{position:absolute;right:0;top:-30px;padding:15px;z-index:10}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page>mat-card>mat-card-content>.ajf-field-entry{flex:1 0 auto;padding-left:10px;padding-right:10px;width:100%}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page>mat-card>mat-card-content>.ajf-field-entry .mat-icon{vertical-align:bottom;margin-left:5px}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page>mat-card>mat-card-content>.ajf-field-entry.ajf-normal{width:100%}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page>mat-card>mat-card-content>.ajf-field-entry.ajf-small{width:50%}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page>mat-card>mat-card-content>.ajf-field-entry.ajf-smaller{width:33%}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page>mat-card>mat-card-content>.ajf-field-entry.ajf-tiny{width:25%}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider ajf-page-slider-item .ajf-page-slider-item-content .ajf-form-page>mat-card>mat-card-content>.ajf-field-entry.ajf-mini{width:20%}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider .ajf-page-slider-item-header{display:flex;align-items:center;width:100%}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider .ajf-page-slider-item-header>h2{flex:1}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider .ajf-page-slider-item-header>h2>.ajf-form-header-number{margin-right:.5em}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider .ajf-page-slider-item-header h2>.ajf-title{display:inline-block;margin-right:40px;white-space:normal;vertical-align:top}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider [ajfPageSliderBar] .ajf-left-bar{display:flex;align-items:flex-start;flex-direction:row;position:absolute;bottom:0}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider [ajfPageSliderBar] .ajf-left-bar .ajf-right-button{float:right}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider [ajfPageSliderBar] .ajf-left-bar .ajf-button-icon-only ion-icon{padding:0 .1em}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider [ajfPageSliderBar] .ajf-left-bar .ajf-info-box{height:40px;padding:4px}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider [ajfPageSliderBar] .ajf-left-bar .ajf-info-box>div{height:16px;line-height:16px}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider [ajfPageSliderBar] .ajf-left-bar .ajf-info-box>div.ajf-content{font-weight:700}ajf-form .ajf-form-container>.ajf-slider-container>ajf-page-slider [ajfPageSliderBar] .ajf-left-bar .ajf-info-box.ajf-error{order:2;color:red}ajf-form .ajf-form-container .ajf-spacer{flex:1 0 auto}\n"] }]
778
+ }], ctorParameters: function () { return [{ type: i1.AjfFormRendererService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { topBar: [{
776
779
  type: Input
777
780
  }] } });
778
781
 
@@ -805,8 +808,8 @@ class AjfFormsModule {
805
808
  };
806
809
  }
807
810
  }
808
- AjfFormsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfFormsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
809
- AjfFormsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfFormsModule, declarations: [AjfBarcodeFieldComponent,
811
+ AjfFormsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfFormsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
812
+ AjfFormsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.4", ngImport: i0, type: AjfFormsModule, declarations: [AjfBarcodeFieldComponent,
810
813
  AjfBooleanFieldComponent,
811
814
  AjfDateFieldComponent,
812
815
  AjfDateInputFieldComponent,
@@ -833,10 +836,12 @@ AjfFormsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
833
836
  MatButtonModule,
834
837
  MatButtonToggleModule,
835
838
  MatCardModule,
839
+ MatDatepickerModule,
836
840
  MatDialogModule,
837
841
  MatFormFieldModule,
838
842
  MatIconModule,
839
843
  MatInputModule,
844
+ MatNativeDateModule,
840
845
  MatRadioModule,
841
846
  MatSelectModule,
842
847
  MatSlideToggleModule,
@@ -845,36 +850,36 @@ AjfFormsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
845
850
  ReactiveFormsModule,
846
851
  TextFieldModule,
847
852
  MatSliderModule], exports: [AjfFormField, AjfFormRenderer] });
848
- AjfFormsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfFormsModule, providers: [
853
+ AjfFormsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfFormsModule, providers: [
849
854
  AjfFieldService,
850
855
  { provide: AJF_WARNING_ALERT_SERVICE, useClass: AjfWarningAlertService },
851
- ], imports: [[
852
- AjfBarcodeModule,
853
- AjfCalendarModule,
854
- AjfCommonModule,
855
- AjfCheckboxGroupModule,
856
- AjfPageSliderModule,
857
- AjfTimeModule,
858
- AjfTranslocoModule,
859
- CommonModule,
860
- AjfFormsModule$1,
861
- MatButtonModule,
862
- MatButtonToggleModule,
863
- MatCardModule,
864
- MatDialogModule,
865
- MatFormFieldModule,
866
- MatIconModule,
867
- MatInputModule,
868
- MatRadioModule,
869
- MatSelectModule,
870
- MatSlideToggleModule,
871
- MatToolbarModule,
872
- MatTooltipModule,
873
- ReactiveFormsModule,
874
- TextFieldModule,
875
- MatSliderModule,
876
- ]] });
877
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: AjfFormsModule, decorators: [{
856
+ ], imports: [AjfBarcodeModule,
857
+ AjfCalendarModule,
858
+ AjfCommonModule,
859
+ AjfCheckboxGroupModule,
860
+ AjfPageSliderModule,
861
+ AjfTimeModule,
862
+ AjfTranslocoModule,
863
+ CommonModule,
864
+ AjfFormsModule$1,
865
+ MatButtonModule,
866
+ MatButtonToggleModule,
867
+ MatCardModule,
868
+ MatDatepickerModule,
869
+ MatDialogModule,
870
+ MatFormFieldModule,
871
+ MatIconModule,
872
+ MatInputModule,
873
+ MatNativeDateModule,
874
+ MatRadioModule,
875
+ MatSelectModule,
876
+ MatSlideToggleModule,
877
+ MatToolbarModule,
878
+ MatTooltipModule,
879
+ ReactiveFormsModule,
880
+ TextFieldModule,
881
+ MatSliderModule] });
882
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: AjfFormsModule, decorators: [{
878
883
  type: NgModule,
879
884
  args: [{
880
885
  imports: [
@@ -890,10 +895,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
890
895
  MatButtonModule,
891
896
  MatButtonToggleModule,
892
897
  MatCardModule,
898
+ MatDatepickerModule,
893
899
  MatDialogModule,
894
900
  MatFormFieldModule,
895
901
  MatIconModule,
896
902
  MatInputModule,
903
+ MatNativeDateModule,
897
904
  MatRadioModule,
898
905
  MatSelectModule,
899
906
  MatSlideToggleModule,
@@ -921,21 +928,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImpor
921
928
  AjfTimeFieldComponent,
922
929
  AjfVideoUrlFieldComponent,
923
930
  ],
924
- entryComponents: [
925
- AjfBarcodeFieldComponent,
926
- AjfBooleanFieldComponent,
927
- AjfDateFieldComponent,
928
- AjfDateInputFieldComponent,
929
- AjfEmptyFieldComponent,
930
- AjfInputFieldComponent,
931
- AjfMultipleChoiceFieldComponent,
932
- AjfRangeFieldComponent,
933
- AjfSingleChoiceFieldComponent,
934
- AjfTableFieldComponent,
935
- AjfTextFieldComponent,
936
- AjfTimeFieldComponent,
937
- AjfVideoUrlFieldComponent,
938
- ],
939
931
  exports: [AjfFormField, AjfFormRenderer],
940
932
  providers: [
941
933
  AjfFieldService,