@memberjunction/ng-conversations 3.4.0 → 4.0.0

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 (164) hide show
  1. package/dist/lib/components/active-tasks/active-tasks-panel.component.d.ts.map +1 -1
  2. package/dist/lib/components/active-tasks/active-tasks-panel.component.js +46 -41
  3. package/dist/lib/components/active-tasks/active-tasks-panel.component.js.map +1 -1
  4. package/dist/lib/components/agent/active-agent-indicator.component.d.ts.map +1 -1
  5. package/dist/lib/components/agent/active-agent-indicator.component.js +70 -68
  6. package/dist/lib/components/agent/active-agent-indicator.component.js.map +1 -1
  7. package/dist/lib/components/agent/agent-process-panel.component.d.ts.map +1 -1
  8. package/dist/lib/components/agent/agent-process-panel.component.js +13 -12
  9. package/dist/lib/components/agent/agent-process-panel.component.js.map +1 -1
  10. package/dist/lib/components/artifact/artifact-share-modal.component.js +17 -15
  11. package/dist/lib/components/artifact/artifact-share-modal.component.js.map +1 -1
  12. package/dist/lib/components/artifact/artifact-viewer-panel.component.d.ts +48 -0
  13. package/dist/lib/components/artifact/artifact-viewer-panel.component.d.ts.map +1 -0
  14. package/dist/lib/components/artifact/artifact-viewer-panel.component.js +457 -0
  15. package/dist/lib/components/artifact/artifact-viewer-panel.component.js.map +1 -0
  16. package/dist/lib/components/attachment/image-viewer.component.d.ts.map +1 -1
  17. package/dist/lib/components/attachment/image-viewer.component.js +20 -21
  18. package/dist/lib/components/attachment/image-viewer.component.js.map +1 -1
  19. package/dist/lib/components/collection/artifact-collection-picker-modal.component.d.ts.map +1 -1
  20. package/dist/lib/components/collection/artifact-collection-picker-modal.component.js +230 -233
  21. package/dist/lib/components/collection/artifact-collection-picker-modal.component.js.map +1 -1
  22. package/dist/lib/components/collection/artifact-create-modal.component.d.ts.map +1 -1
  23. package/dist/lib/components/collection/artifact-create-modal.component.js +100 -103
  24. package/dist/lib/components/collection/artifact-create-modal.component.js.map +1 -1
  25. package/dist/lib/components/collection/collection-artifact-card.component.d.ts.map +1 -1
  26. package/dist/lib/components/collection/collection-artifact-card.component.js +41 -33
  27. package/dist/lib/components/collection/collection-artifact-card.component.js.map +1 -1
  28. package/dist/lib/components/collection/collection-form-modal.component.d.ts.map +1 -1
  29. package/dist/lib/components/collection/collection-form-modal.component.js +85 -84
  30. package/dist/lib/components/collection/collection-form-modal.component.js.map +1 -1
  31. package/dist/lib/components/collection/collection-share-modal.component.js +20 -15
  32. package/dist/lib/components/collection/collection-share-modal.component.js.map +1 -1
  33. package/dist/lib/components/collection/collection-tree.component.d.ts.map +1 -1
  34. package/dist/lib/components/collection/collection-tree.component.js +13 -11
  35. package/dist/lib/components/collection/collection-tree.component.js.map +1 -1
  36. package/dist/lib/components/collection/collection-view.component.d.ts.map +1 -1
  37. package/dist/lib/components/collection/collection-view.component.js +67 -60
  38. package/dist/lib/components/collection/collection-view.component.js.map +1 -1
  39. package/dist/lib/components/collection/collections-full-view.component.d.ts +4 -3
  40. package/dist/lib/components/collection/collections-full-view.component.d.ts.map +1 -1
  41. package/dist/lib/components/collection/collections-full-view.component.js +619 -549
  42. package/dist/lib/components/collection/collections-full-view.component.js.map +1 -1
  43. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts +3 -3
  44. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts.map +1 -1
  45. package/dist/lib/components/conversation/conversation-chat-area.component.js +145 -143
  46. package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -1
  47. package/dist/lib/components/conversation/conversation-empty-state.component.d.ts.map +1 -1
  48. package/dist/lib/components/conversation/conversation-empty-state.component.js +44 -44
  49. package/dist/lib/components/conversation/conversation-empty-state.component.js.map +1 -1
  50. package/dist/lib/components/conversation/conversation-list.component.d.ts.map +1 -1
  51. package/dist/lib/components/conversation/conversation-list.component.js +18 -18
  52. package/dist/lib/components/conversation/conversation-list.component.js.map +1 -1
  53. package/dist/lib/components/delete-confirm/delete-confirm-modal.component.d.ts +52 -0
  54. package/dist/lib/components/delete-confirm/delete-confirm-modal.component.d.ts.map +1 -0
  55. package/dist/lib/components/delete-confirm/delete-confirm-modal.component.js +276 -0
  56. package/dist/lib/components/delete-confirm/delete-confirm-modal.component.js.map +1 -0
  57. package/dist/lib/components/dialogs/input-dialog.component.d.ts.map +1 -1
  58. package/dist/lib/components/dialogs/input-dialog.component.js +65 -57
  59. package/dist/lib/components/dialogs/input-dialog.component.js.map +1 -1
  60. package/dist/lib/components/export/export-modal.component.d.ts.map +1 -1
  61. package/dist/lib/components/export/export-modal.component.js +126 -134
  62. package/dist/lib/components/export/export-modal.component.js.map +1 -1
  63. package/dist/lib/components/global-tasks/global-tasks-panel.component.d.ts.map +1 -1
  64. package/dist/lib/components/global-tasks/global-tasks-panel.component.js +86 -79
  65. package/dist/lib/components/global-tasks/global-tasks-panel.component.js.map +1 -1
  66. package/dist/lib/components/library/library-full-view.component.d.ts.map +1 -1
  67. package/dist/lib/components/library/library-full-view.component.js +99 -87
  68. package/dist/lib/components/library/library-full-view.component.js.map +1 -1
  69. package/dist/lib/components/members/members-modal.component.d.ts.map +1 -1
  70. package/dist/lib/components/members/members-modal.component.js +124 -119
  71. package/dist/lib/components/members/members-modal.component.js.map +1 -1
  72. package/dist/lib/components/mention/mention-dropdown.component.d.ts.map +1 -1
  73. package/dist/lib/components/mention/mention-dropdown.component.js +50 -46
  74. package/dist/lib/components/mention/mention-dropdown.component.js.map +1 -1
  75. package/dist/lib/components/mention/mention-editor.component.d.ts.map +1 -1
  76. package/dist/lib/components/mention/mention-editor.component.js +39 -38
  77. package/dist/lib/components/mention/mention-editor.component.js.map +1 -1
  78. package/dist/lib/components/message/actionable-commands.component.d.ts.map +1 -1
  79. package/dist/lib/components/message/actionable-commands.component.js +20 -21
  80. package/dist/lib/components/message/actionable-commands.component.js.map +1 -1
  81. package/dist/lib/components/message/agent-response-form.component.d.ts.map +1 -1
  82. package/dist/lib/components/message/agent-response-form.component.js +79 -77
  83. package/dist/lib/components/message/agent-response-form.component.js.map +1 -1
  84. package/dist/lib/components/message/conversation-message-rating.component.d.ts.map +1 -1
  85. package/dist/lib/components/message/conversation-message-rating.component.js +40 -39
  86. package/dist/lib/components/message/conversation-message-rating.component.js.map +1 -1
  87. package/dist/lib/components/message/form-question.component.d.ts.map +1 -1
  88. package/dist/lib/components/message/form-question.component.js +142 -125
  89. package/dist/lib/components/message/form-question.component.js.map +1 -1
  90. package/dist/lib/components/message/message-input-box.component.d.ts.map +1 -1
  91. package/dist/lib/components/message/message-input-box.component.js +10 -11
  92. package/dist/lib/components/message/message-input-box.component.js.map +1 -1
  93. package/dist/lib/components/message/message-input.component.d.ts +2 -2
  94. package/dist/lib/components/message/message-input.component.d.ts.map +1 -1
  95. package/dist/lib/components/message/message-input.component.js +10 -11
  96. package/dist/lib/components/message/message-input.component.js.map +1 -1
  97. package/dist/lib/components/message/message-item.component.d.ts +2 -2
  98. package/dist/lib/components/message/message-item.component.d.ts.map +1 -1
  99. package/dist/lib/components/message/message-item.component.js +121 -107
  100. package/dist/lib/components/message/message-item.component.js.map +1 -1
  101. package/dist/lib/components/message/message-list.component.d.ts +2 -2
  102. package/dist/lib/components/message/message-list.component.d.ts.map +1 -1
  103. package/dist/lib/components/message/message-list.component.js +25 -27
  104. package/dist/lib/components/message/message-list.component.js.map +1 -1
  105. package/dist/lib/components/message/suggested-responses.component.d.ts +1 -1
  106. package/dist/lib/components/message/suggested-responses.component.d.ts.map +1 -1
  107. package/dist/lib/components/message/suggested-responses.component.js +34 -34
  108. package/dist/lib/components/message/suggested-responses.component.js.map +1 -1
  109. package/dist/lib/components/navigation/conversation-navigation.component.d.ts.map +1 -1
  110. package/dist/lib/components/navigation/conversation-navigation.component.js +3 -3
  111. package/dist/lib/components/navigation/conversation-navigation.component.js.map +1 -1
  112. package/dist/lib/components/notification/activity-indicator.component.d.ts.map +1 -1
  113. package/dist/lib/components/notification/activity-indicator.component.js +5 -5
  114. package/dist/lib/components/notification/activity-indicator.component.js.map +1 -1
  115. package/dist/lib/components/notification/notification-badge.component.d.ts.map +1 -1
  116. package/dist/lib/components/notification/notification-badge.component.js +9 -6
  117. package/dist/lib/components/notification/notification-badge.component.js.map +1 -1
  118. package/dist/lib/components/project/project-form-modal.component.d.ts.map +1 -1
  119. package/dist/lib/components/project/project-form-modal.component.js +7 -7
  120. package/dist/lib/components/project/project-form-modal.component.js.map +1 -1
  121. package/dist/lib/components/project/project-selector.component.d.ts.map +1 -1
  122. package/dist/lib/components/project/project-selector.component.js +8 -8
  123. package/dist/lib/components/project/project-selector.component.js.map +1 -1
  124. package/dist/lib/components/search/search-panel.component.d.ts.map +1 -1
  125. package/dist/lib/components/search/search-panel.component.js +32 -27
  126. package/dist/lib/components/search/search-panel.component.js.map +1 -1
  127. package/dist/lib/components/share/share-modal.component.d.ts.map +1 -1
  128. package/dist/lib/components/share/share-modal.component.js +129 -131
  129. package/dist/lib/components/share/share-modal.component.js.map +1 -1
  130. package/dist/lib/components/shared/user-picker.component.js +6 -6
  131. package/dist/lib/components/shared/user-picker.component.js.map +1 -1
  132. package/dist/lib/components/sidebar/conversation-sidebar.component.d.ts.map +1 -1
  133. package/dist/lib/components/sidebar/conversation-sidebar.component.js +41 -37
  134. package/dist/lib/components/sidebar/conversation-sidebar.component.js.map +1 -1
  135. package/dist/lib/components/task/tasks-full-view.component.js +4 -5
  136. package/dist/lib/components/task/tasks-full-view.component.js.map +1 -1
  137. package/dist/lib/components/tasks/task-widget.component.d.ts.map +1 -1
  138. package/dist/lib/components/tasks/task-widget.component.js +144 -118
  139. package/dist/lib/components/tasks/task-widget.component.js.map +1 -1
  140. package/dist/lib/components/tasks/tasks-dropdown.component.d.ts.map +1 -1
  141. package/dist/lib/components/tasks/tasks-dropdown.component.js +176 -149
  142. package/dist/lib/components/tasks/tasks-dropdown.component.js.map +1 -1
  143. package/dist/lib/components/thread/thread-panel.component.d.ts.map +1 -1
  144. package/dist/lib/components/thread/thread-panel.component.js +7 -5
  145. package/dist/lib/components/thread/thread-panel.component.js.map +1 -1
  146. package/dist/lib/components/toast/toast.component.d.ts.map +1 -1
  147. package/dist/lib/components/toast/toast.component.js +10 -11
  148. package/dist/lib/components/toast/toast.component.js.map +1 -1
  149. package/dist/lib/components/workspace/conversation-workspace.component.d.ts +5 -5
  150. package/dist/lib/components/workspace/conversation-workspace.component.d.ts.map +1 -1
  151. package/dist/lib/components/workspace/conversation-workspace.component.js +54 -49
  152. package/dist/lib/components/workspace/conversation-workspace.component.js.map +1 -1
  153. package/dist/lib/directives/search-shortcut.directive.d.ts.map +1 -1
  154. package/dist/lib/directives/search-shortcut.directive.js +3 -2
  155. package/dist/lib/directives/search-shortcut.directive.js.map +1 -1
  156. package/dist/lib/services/conversation-state.service.d.ts +160 -0
  157. package/dist/lib/services/conversation-state.service.d.ts.map +1 -0
  158. package/dist/lib/services/conversation-state.service.js +334 -0
  159. package/dist/lib/services/conversation-state.service.js.map +1 -0
  160. package/dist/lib/services/mention-autocomplete.service.d.ts +6 -0
  161. package/dist/lib/services/mention-autocomplete.service.d.ts.map +1 -1
  162. package/dist/lib/services/mention-autocomplete.service.js +25 -2
  163. package/dist/lib/services/mention-autocomplete.service.js.map +1 -1
  164. package/package.json +38 -38
@@ -6,25 +6,25 @@ import * as i2 from "@angular/forms";
6
6
  import * as i3 from "@progress/kendo-angular-buttons";
7
7
  import * as i4 from "@progress/kendo-angular-inputs";
8
8
  import * as i5 from "@progress/kendo-angular-dateinputs";
9
- function FormQuestionComponent_label_1_span_2_Template(rf, ctx) { if (rf & 1) {
10
- i0.ɵɵelementStart(0, "span", 20);
9
+ function FormQuestionComponent_Conditional_1_Conditional_2_Template(rf, ctx) { if (rf & 1) {
10
+ i0.ɵɵelementStart(0, "span", 18);
11
11
  i0.ɵɵtext(1, "*");
12
12
  i0.ɵɵelementEnd();
13
13
  } }
14
- function FormQuestionComponent_label_1_Template(rf, ctx) { if (rf & 1) {
15
- i0.ɵɵelementStart(0, "label", 18);
14
+ function FormQuestionComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
15
+ i0.ɵɵelementStart(0, "label", 1);
16
16
  i0.ɵɵtext(1);
17
- i0.ɵɵtemplate(2, FormQuestionComponent_label_1_span_2_Template, 2, 0, "span", 19);
17
+ i0.ɵɵconditionalCreate(2, FormQuestionComponent_Conditional_1_Conditional_2_Template, 2, 0, "span", 18);
18
18
  i0.ɵɵelementEnd();
19
19
  } if (rf & 2) {
20
20
  const ctx_r0 = i0.ɵɵnextContext();
21
21
  i0.ɵɵadvance();
22
22
  i0.ɵɵtextInterpolate1(" ", ctx_r0.question.label, " ");
23
23
  i0.ɵɵadvance();
24
- i0.ɵɵproperty("ngIf", ctx_r0.question.required);
24
+ i0.ɵɵconditional(ctx_r0.question.required ? 2 : -1);
25
25
  } }
26
- function FormQuestionComponent_div_2_Template(rf, ctx) { if (rf & 1) {
27
- i0.ɵɵelementStart(0, "div", 21);
26
+ function FormQuestionComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
27
+ i0.ɵɵelementStart(0, "div", 2);
28
28
  i0.ɵɵtext(1);
29
29
  i0.ɵɵelementEnd();
30
30
  } if (rf & 2) {
@@ -32,80 +32,80 @@ function FormQuestionComponent_div_2_Template(rf, ctx) { if (rf & 1) {
32
32
  i0.ɵɵadvance();
33
33
  i0.ɵɵtextInterpolate1(" ", ctx_r0.question.helpText, " ");
34
34
  } }
35
- function FormQuestionComponent_input_4_Template(rf, ctx) { if (rf & 1) {
35
+ function FormQuestionComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
36
36
  const _r2 = i0.ɵɵgetCurrentView();
37
- i0.ɵɵelementStart(0, "input", 22);
38
- i0.ɵɵlistener("input", function FormQuestionComponent_input_4_Template_input_input_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onValueChange($event.target.value)); });
37
+ i0.ɵɵelementStart(0, "input", 19);
38
+ i0.ɵɵlistener("input", function FormQuestionComponent_Conditional_4_Template_input_input_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onValueChange($event.target.value)); });
39
39
  i0.ɵɵelementEnd();
40
40
  } if (rf & 2) {
41
41
  const ctx_r0 = i0.ɵɵnextContext();
42
42
  i0.ɵɵproperty("value", ctx_r0.value || "")("placeholder", ctx_r0.placeholder)("disabled", ctx_r0.disabled);
43
43
  } }
44
- function FormQuestionComponent_input_5_Template(rf, ctx) { if (rf & 1) {
44
+ function FormQuestionComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
45
45
  const _r3 = i0.ɵɵgetCurrentView();
46
- i0.ɵɵelementStart(0, "input", 23);
47
- i0.ɵɵlistener("input", function FormQuestionComponent_input_5_Template_input_input_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onValueChange($event.target.value)); });
46
+ i0.ɵɵelementStart(0, "input", 20);
47
+ i0.ɵɵlistener("input", function FormQuestionComponent_Conditional_5_Template_input_input_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onValueChange($event.target.value)); });
48
48
  i0.ɵɵelementEnd();
49
49
  } if (rf & 2) {
50
50
  const ctx_r0 = i0.ɵɵnextContext();
51
51
  i0.ɵɵproperty("value", ctx_r0.value || "")("placeholder", ctx_r0.placeholder)("disabled", ctx_r0.disabled);
52
52
  } }
53
- function FormQuestionComponent_textarea_6_Template(rf, ctx) { if (rf & 1) {
53
+ function FormQuestionComponent_Conditional_6_Template(rf, ctx) { if (rf & 1) {
54
54
  const _r4 = i0.ɵɵgetCurrentView();
55
- i0.ɵɵelementStart(0, "textarea", 24);
56
- i0.ɵɵlistener("input", function FormQuestionComponent_textarea_6_Template_textarea_input_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onValueChange($event.target.value)); });
55
+ i0.ɵɵelementStart(0, "textarea", 21);
56
+ i0.ɵɵlistener("input", function FormQuestionComponent_Conditional_6_Template_textarea_input_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onValueChange($event.target.value)); });
57
57
  i0.ɵɵelementEnd();
58
58
  } if (rf & 2) {
59
59
  const ctx_r0 = i0.ɵɵnextContext();
60
60
  i0.ɵɵproperty("value", ctx_r0.value || "")("placeholder", ctx_r0.placeholder)("disabled", ctx_r0.disabled);
61
61
  } }
62
- function FormQuestionComponent_kendo_numerictextbox_7_Template(rf, ctx) { if (rf & 1) {
62
+ function FormQuestionComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
63
63
  const _r5 = i0.ɵɵgetCurrentView();
64
- i0.ɵɵelementStart(0, "kendo-numerictextbox", 25);
65
- i0.ɵɵlistener("valueChange", function FormQuestionComponent_kendo_numerictextbox_7_Template_kendo_numerictextbox_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onValueChange($event)); });
64
+ i0.ɵɵelementStart(0, "kendo-numerictextbox", 22);
65
+ i0.ɵɵlistener("valueChange", function FormQuestionComponent_Conditional_7_Template_kendo_numerictextbox_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onValueChange($event)); });
66
66
  i0.ɵɵelementEnd();
67
67
  } if (rf & 2) {
68
68
  const ctx_r0 = i0.ɵɵnextContext();
69
69
  i0.ɵɵproperty("value", ctx_r0.value)("min", ctx_r0.min || 0)("max", ctx_r0.max || 999999999)("step", ctx_r0.step || 1)("disabled", ctx_r0.disabled);
70
70
  } }
71
- function FormQuestionComponent_kendo_numerictextbox_8_Template(rf, ctx) { if (rf & 1) {
71
+ function FormQuestionComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
72
72
  const _r6 = i0.ɵɵgetCurrentView();
73
- i0.ɵɵelementStart(0, "kendo-numerictextbox", 26);
74
- i0.ɵɵlistener("valueChange", function FormQuestionComponent_kendo_numerictextbox_8_Template_kendo_numerictextbox_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onValueChange($event)); });
73
+ i0.ɵɵelementStart(0, "kendo-numerictextbox", 23);
74
+ i0.ɵɵlistener("valueChange", function FormQuestionComponent_Conditional_8_Template_kendo_numerictextbox_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onValueChange($event)); });
75
75
  i0.ɵɵelementEnd();
76
76
  } if (rf & 2) {
77
77
  const ctx_r0 = i0.ɵɵnextContext();
78
78
  i0.ɵɵproperty("value", ctx_r0.value)("min", ctx_r0.min || 0)("max", ctx_r0.max || 999999999)("step", ctx_r0.step || 0.01)("format", "c2")("disabled", ctx_r0.disabled);
79
79
  } }
80
- function FormQuestionComponent_kendo_datepicker_9_Template(rf, ctx) { if (rf & 1) {
80
+ function FormQuestionComponent_Conditional_9_Template(rf, ctx) { if (rf & 1) {
81
81
  const _r7 = i0.ɵɵgetCurrentView();
82
- i0.ɵɵelementStart(0, "kendo-datepicker", 27);
83
- i0.ɵɵlistener("valueChange", function FormQuestionComponent_kendo_datepicker_9_Template_kendo_datepicker_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onValueChange($event)); });
82
+ i0.ɵɵelementStart(0, "kendo-datepicker", 24);
83
+ i0.ɵɵlistener("valueChange", function FormQuestionComponent_Conditional_9_Template_kendo_datepicker_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onValueChange($event)); });
84
84
  i0.ɵɵelementEnd();
85
85
  } if (rf & 2) {
86
86
  const ctx_r0 = i0.ɵɵnextContext();
87
87
  i0.ɵɵproperty("value", ctx_r0.value)("disabled", ctx_r0.disabled);
88
88
  } }
89
- function FormQuestionComponent_kendo_datetimepicker_10_Template(rf, ctx) { if (rf & 1) {
89
+ function FormQuestionComponent_Conditional_10_Template(rf, ctx) { if (rf & 1) {
90
90
  const _r8 = i0.ɵɵgetCurrentView();
91
- i0.ɵɵelementStart(0, "kendo-datetimepicker", 27);
92
- i0.ɵɵlistener("valueChange", function FormQuestionComponent_kendo_datetimepicker_10_Template_kendo_datetimepicker_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onValueChange($event)); });
91
+ i0.ɵɵelementStart(0, "kendo-datetimepicker", 24);
92
+ i0.ɵɵlistener("valueChange", function FormQuestionComponent_Conditional_10_Template_kendo_datetimepicker_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onValueChange($event)); });
93
93
  i0.ɵɵelementEnd();
94
94
  } if (rf & 2) {
95
95
  const ctx_r0 = i0.ɵɵnextContext();
96
96
  i0.ɵɵproperty("value", ctx_r0.value)("disabled", ctx_r0.disabled);
97
97
  } }
98
- function FormQuestionComponent_kendo_buttongroup_11_button_1_i_1_Template(rf, ctx) { if (rf & 1) {
99
- i0.ɵɵelement(0, "i", 32);
98
+ function FormQuestionComponent_Conditional_11_For_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
99
+ i0.ɵɵelement(0, "i", 28);
100
100
  } if (rf & 2) {
101
101
  const option_r10 = i0.ɵɵnextContext().$implicit;
102
- i0.ɵɵclassMapInterpolate1("fa ", option_r10.icon, "");
102
+ i0.ɵɵclassMap(i0.ɵɵinterpolate1("fa ", option_r10.icon));
103
103
  } }
104
- function FormQuestionComponent_kendo_buttongroup_11_button_1_Template(rf, ctx) { if (rf & 1) {
104
+ function FormQuestionComponent_Conditional_11_For_2_Template(rf, ctx) { if (rf & 1) {
105
105
  const _r9 = i0.ɵɵgetCurrentView();
106
- i0.ɵɵelementStart(0, "button", 30);
107
- i0.ɵɵlistener("click", function FormQuestionComponent_kendo_buttongroup_11_button_1_Template_button_click_0_listener() { const option_r10 = i0.ɵɵrestoreView(_r9).$implicit; const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.onValueChange(option_r10.value)); });
108
- i0.ɵɵtemplate(1, FormQuestionComponent_kendo_buttongroup_11_button_1_i_1_Template, 1, 3, "i", 31);
106
+ i0.ɵɵelementStart(0, "button", 26);
107
+ i0.ɵɵlistener("click", function FormQuestionComponent_Conditional_11_For_2_Template_button_click_0_listener() { const option_r10 = i0.ɵɵrestoreView(_r9).$implicit; const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.onValueChange(option_r10.value)); });
108
+ i0.ɵɵconditionalCreate(1, FormQuestionComponent_Conditional_11_For_2_Conditional_1_Template, 1, 3, "i", 27);
109
109
  i0.ɵɵtext(2);
110
110
  i0.ɵɵelementEnd();
111
111
  } if (rf & 2) {
@@ -113,33 +113,33 @@ function FormQuestionComponent_kendo_buttongroup_11_button_1_Template(rf, ctx) {
113
113
  const ctx_r0 = i0.ɵɵnextContext(2);
114
114
  i0.ɵɵproperty("toggleable", true)("selected", ctx_r0.value === option_r10.value)("disabled", ctx_r0.disabled);
115
115
  i0.ɵɵadvance();
116
- i0.ɵɵproperty("ngIf", option_r10.icon);
116
+ i0.ɵɵconditional(option_r10.icon ? 1 : -1);
117
117
  i0.ɵɵadvance();
118
118
  i0.ɵɵtextInterpolate1(" ", option_r10.label, " ");
119
119
  } }
120
- function FormQuestionComponent_kendo_buttongroup_11_Template(rf, ctx) { if (rf & 1) {
121
- i0.ɵɵelementStart(0, "kendo-buttongroup", 28);
122
- i0.ɵɵtemplate(1, FormQuestionComponent_kendo_buttongroup_11_button_1_Template, 3, 5, "button", 29);
120
+ function FormQuestionComponent_Conditional_11_Template(rf, ctx) { if (rf & 1) {
121
+ i0.ɵɵelementStart(0, "kendo-buttongroup", 10);
122
+ i0.ɵɵrepeaterCreate(1, FormQuestionComponent_Conditional_11_For_2_Template, 3, 5, "button", 25, i0.ɵɵcomponentInstance().trackByValue, true);
123
123
  i0.ɵɵelementEnd();
124
124
  } if (rf & 2) {
125
125
  const ctx_r0 = i0.ɵɵnextContext();
126
126
  i0.ɵɵproperty("selection", "single");
127
127
  i0.ɵɵadvance();
128
- i0.ɵɵproperty("ngForOf", ctx_r0.options)("ngForTrackBy", ctx_r0.trackByValue);
128
+ i0.ɵɵrepeater(ctx_r0.options);
129
129
  } }
130
- function FormQuestionComponent_div_12_div_1_i_3_Template(rf, ctx) { if (rf & 1) {
131
- i0.ɵɵelement(0, "i", 32);
130
+ function FormQuestionComponent_Conditional_12_For_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
131
+ i0.ɵɵelement(0, "i", 28);
132
132
  } if (rf & 2) {
133
133
  const option_r12 = i0.ɵɵnextContext().$implicit;
134
- i0.ɵɵclassMapInterpolate1("fa ", option_r12.icon, "");
134
+ i0.ɵɵclassMap(i0.ɵɵinterpolate1("fa ", option_r12.icon));
135
135
  } }
136
- function FormQuestionComponent_div_12_div_1_Template(rf, ctx) { if (rf & 1) {
136
+ function FormQuestionComponent_Conditional_12_For_2_Template(rf, ctx) { if (rf & 1) {
137
137
  const _r11 = i0.ɵɵgetCurrentView();
138
- i0.ɵɵelementStart(0, "div", 35)(1, "input", 36);
139
- i0.ɵɵlistener("change", function FormQuestionComponent_div_12_div_1_Template_input_change_1_listener() { const option_r12 = i0.ɵɵrestoreView(_r11).$implicit; const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.onValueChange(option_r12.value)); });
138
+ i0.ɵɵelementStart(0, "div", 29)(1, "input", 30);
139
+ i0.ɵɵlistener("change", function FormQuestionComponent_Conditional_12_For_2_Template_input_change_1_listener() { const option_r12 = i0.ɵɵrestoreView(_r11).$implicit; const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.onValueChange(option_r12.value)); });
140
140
  i0.ɵɵelementEnd();
141
- i0.ɵɵelementStart(2, "label", 37);
142
- i0.ɵɵtemplate(3, FormQuestionComponent_div_12_div_1_i_3_Template, 1, 3, "i", 31);
141
+ i0.ɵɵelementStart(2, "label", 31);
142
+ i0.ɵɵconditionalCreate(3, FormQuestionComponent_Conditional_12_For_2_Conditional_3_Template, 1, 3, "i", 27);
143
143
  i0.ɵɵtext(4);
144
144
  i0.ɵɵelementEnd()();
145
145
  } if (rf & 2) {
@@ -150,21 +150,21 @@ function FormQuestionComponent_div_12_div_1_Template(rf, ctx) { if (rf & 1) {
150
150
  i0.ɵɵadvance();
151
151
  i0.ɵɵproperty("for", ctx_r0.question.id + "_" + option_r12.value);
152
152
  i0.ɵɵadvance();
153
- i0.ɵɵproperty("ngIf", option_r12.icon);
153
+ i0.ɵɵconditional(option_r12.icon ? 3 : -1);
154
154
  i0.ɵɵadvance();
155
155
  i0.ɵɵtextInterpolate1(" ", option_r12.label, " ");
156
156
  } }
157
- function FormQuestionComponent_div_12_Template(rf, ctx) { if (rf & 1) {
158
- i0.ɵɵelementStart(0, "div", 33);
159
- i0.ɵɵtemplate(1, FormQuestionComponent_div_12_div_1_Template, 5, 8, "div", 34);
157
+ function FormQuestionComponent_Conditional_12_Template(rf, ctx) { if (rf & 1) {
158
+ i0.ɵɵelementStart(0, "div", 11);
159
+ i0.ɵɵrepeaterCreate(1, FormQuestionComponent_Conditional_12_For_2_Template, 5, 8, "div", 29, i0.ɵɵcomponentInstance().trackByValue, true);
160
160
  i0.ɵɵelementEnd();
161
161
  } if (rf & 2) {
162
162
  const ctx_r0 = i0.ɵɵnextContext();
163
163
  i0.ɵɵadvance();
164
- i0.ɵɵproperty("ngForOf", ctx_r0.options)("ngForTrackBy", ctx_r0.trackByValue);
164
+ i0.ɵɵrepeater(ctx_r0.options);
165
165
  } }
166
- function FormQuestionComponent_select_13_option_3_Template(rf, ctx) { if (rf & 1) {
167
- i0.ɵɵelementStart(0, "option", 41);
166
+ function FormQuestionComponent_Conditional_13_For_4_Template(rf, ctx) { if (rf & 1) {
167
+ i0.ɵɵelementStart(0, "option", 33);
168
168
  i0.ɵɵtext(1);
169
169
  i0.ɵɵelementEnd();
170
170
  } if (rf & 2) {
@@ -173,24 +173,24 @@ function FormQuestionComponent_select_13_option_3_Template(rf, ctx) { if (rf & 1
173
173
  i0.ɵɵadvance();
174
174
  i0.ɵɵtextInterpolate1(" ", option_r13.label, " ");
175
175
  } }
176
- function FormQuestionComponent_select_13_Template(rf, ctx) { if (rf & 1) {
177
- i0.ɵɵelementStart(0, "select", 38)(1, "option", 39);
176
+ function FormQuestionComponent_Conditional_13_Template(rf, ctx) { if (rf & 1) {
177
+ i0.ɵɵelementStart(0, "select", 12)(1, "option", 32);
178
178
  i0.ɵɵtext(2, "Select an option...");
179
179
  i0.ɵɵelementEnd();
180
- i0.ɵɵtemplate(3, FormQuestionComponent_select_13_option_3_Template, 2, 2, "option", 40);
180
+ i0.ɵɵrepeaterCreate(3, FormQuestionComponent_Conditional_13_For_4_Template, 2, 2, "option", 33, i0.ɵɵcomponentInstance().trackByValue, true);
181
181
  i0.ɵɵelementEnd();
182
182
  } if (rf & 2) {
183
183
  const ctx_r0 = i0.ɵɵnextContext();
184
184
  i0.ɵɵproperty("formControl", ctx_r0.control)("disabled", ctx_r0.disabled);
185
185
  i0.ɵɵadvance(3);
186
- i0.ɵɵproperty("ngForOf", ctx_r0.options)("ngForTrackBy", ctx_r0.trackByValue);
186
+ i0.ɵɵrepeater(ctx_r0.options);
187
187
  } }
188
- function FormQuestionComponent_div_14_Template(rf, ctx) { if (rf & 1) {
188
+ function FormQuestionComponent_Conditional_14_Template(rf, ctx) { if (rf & 1) {
189
189
  const _r14 = i0.ɵɵgetCurrentView();
190
- i0.ɵɵelementStart(0, "div", 42)(1, "kendo-slider", 43);
191
- i0.ɵɵlistener("valueChange", function FormQuestionComponent_div_14_Template_kendo_slider_valueChange_1_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onValueChange($event)); });
190
+ i0.ɵɵelementStart(0, "div", 13)(1, "kendo-slider", 34);
191
+ i0.ɵɵlistener("valueChange", function FormQuestionComponent_Conditional_14_Template_kendo_slider_valueChange_1_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onValueChange($event)); });
192
192
  i0.ɵɵelementEnd();
193
- i0.ɵɵelementStart(2, "div", 44);
193
+ i0.ɵɵelementStart(2, "div", 35);
194
194
  i0.ɵɵtext(3);
195
195
  i0.ɵɵelementEnd()();
196
196
  } if (rf & 2) {
@@ -200,16 +200,16 @@ function FormQuestionComponent_div_14_Template(rf, ctx) { if (rf & 1) {
200
200
  i0.ɵɵadvance(2);
201
201
  i0.ɵɵtextInterpolate2(" ", ctx_r0.value || ctx_r0.getSliderConfig().min, "", ctx_r0.getSliderConfig().suffix || "", " ");
202
202
  } }
203
- function FormQuestionComponent_div_15_Template(rf, ctx) { if (rf & 1) {
203
+ function FormQuestionComponent_Conditional_15_Template(rf, ctx) { if (rf & 1) {
204
204
  const _r15 = i0.ɵɵgetCurrentView();
205
- i0.ɵɵelementStart(0, "div", 45)(1, "kendo-datepicker", 46);
206
- i0.ɵɵlistener("valueChange", function FormQuestionComponent_div_15_Template_kendo_datepicker_valueChange_1_listener($event) { i0.ɵɵrestoreView(_r15); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onDateRangeStartChange($event)); });
205
+ i0.ɵɵelementStart(0, "div", 14)(1, "kendo-datepicker", 36);
206
+ i0.ɵɵlistener("valueChange", function FormQuestionComponent_Conditional_15_Template_kendo_datepicker_valueChange_1_listener($event) { i0.ɵɵrestoreView(_r15); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onDateRangeStartChange($event)); });
207
207
  i0.ɵɵelementEnd();
208
- i0.ɵɵelementStart(2, "span", 47);
208
+ i0.ɵɵelementStart(2, "span", 37);
209
209
  i0.ɵɵtext(3, "to");
210
210
  i0.ɵɵelementEnd();
211
- i0.ɵɵelementStart(4, "kendo-datepicker", 48);
212
- i0.ɵɵlistener("valueChange", function FormQuestionComponent_div_15_Template_kendo_datepicker_valueChange_4_listener($event) { i0.ɵɵrestoreView(_r15); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onDateRangeEndChange($event)); });
211
+ i0.ɵɵelementStart(4, "kendo-datepicker", 38);
212
+ i0.ɵɵlistener("valueChange", function FormQuestionComponent_Conditional_15_Template_kendo_datepicker_valueChange_4_listener($event) { i0.ɵɵrestoreView(_r15); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onDateRangeEndChange($event)); });
213
213
  i0.ɵɵelementEnd()();
214
214
  } if (rf & 2) {
215
215
  const ctx_r0 = i0.ɵɵnextContext();
@@ -218,28 +218,28 @@ function FormQuestionComponent_div_15_Template(rf, ctx) { if (rf & 1) {
218
218
  i0.ɵɵadvance(3);
219
219
  i0.ɵɵproperty("value", ctx_r0.value == null ? null : ctx_r0.value.end)("disabled", ctx_r0.disabled);
220
220
  } }
221
- function FormQuestionComponent_kendo_timepicker_16_Template(rf, ctx) { if (rf & 1) {
221
+ function FormQuestionComponent_Conditional_16_Template(rf, ctx) { if (rf & 1) {
222
222
  const _r16 = i0.ɵɵgetCurrentView();
223
- i0.ɵɵelementStart(0, "kendo-timepicker", 49);
224
- i0.ɵɵlistener("valueChange", function FormQuestionComponent_kendo_timepicker_16_Template_kendo_timepicker_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onValueChange($event)); });
223
+ i0.ɵɵelementStart(0, "kendo-timepicker", 39);
224
+ i0.ɵɵlistener("valueChange", function FormQuestionComponent_Conditional_16_Template_kendo_timepicker_valueChange_0_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onValueChange($event)); });
225
225
  i0.ɵɵelementEnd();
226
226
  } if (rf & 2) {
227
227
  const ctx_r0 = i0.ɵɵnextContext();
228
228
  i0.ɵɵproperty("value", ctx_r0.value)("disabled", ctx_r0.disabled)("format", "h:mm a");
229
229
  } }
230
- function FormQuestionComponent_div_17_div_1_i_3_Template(rf, ctx) { if (rf & 1) {
231
- i0.ɵɵelement(0, "i", 32);
230
+ function FormQuestionComponent_Conditional_17_For_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
231
+ i0.ɵɵelement(0, "i", 28);
232
232
  } if (rf & 2) {
233
233
  const option_r18 = i0.ɵɵnextContext().$implicit;
234
- i0.ɵɵclassMapInterpolate1("fa ", option_r18.icon, "");
234
+ i0.ɵɵclassMap(i0.ɵɵinterpolate1("fa ", option_r18.icon));
235
235
  } }
236
- function FormQuestionComponent_div_17_div_1_Template(rf, ctx) { if (rf & 1) {
236
+ function FormQuestionComponent_Conditional_17_For_2_Template(rf, ctx) { if (rf & 1) {
237
237
  const _r17 = i0.ɵɵgetCurrentView();
238
- i0.ɵɵelementStart(0, "div", 52)(1, "input", 53);
239
- i0.ɵɵlistener("change", function FormQuestionComponent_div_17_div_1_Template_input_change_1_listener() { const option_r18 = i0.ɵɵrestoreView(_r17).$implicit; const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.toggleCheckbox(option_r18)); });
238
+ i0.ɵɵelementStart(0, "div", 40)(1, "input", 41);
239
+ i0.ɵɵlistener("change", function FormQuestionComponent_Conditional_17_For_2_Template_input_change_1_listener() { const option_r18 = i0.ɵɵrestoreView(_r17).$implicit; const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.toggleCheckbox(option_r18)); });
240
240
  i0.ɵɵelementEnd();
241
- i0.ɵɵelementStart(2, "label", 54);
242
- i0.ɵɵtemplate(3, FormQuestionComponent_div_17_div_1_i_3_Template, 1, 3, "i", 31);
241
+ i0.ɵɵelementStart(2, "label", 42);
242
+ i0.ɵɵconditionalCreate(3, FormQuestionComponent_Conditional_17_For_2_Conditional_3_Template, 1, 3, "i", 27);
243
243
  i0.ɵɵtext(4);
244
244
  i0.ɵɵelementEnd()();
245
245
  } if (rf & 2) {
@@ -250,61 +250,64 @@ function FormQuestionComponent_div_17_div_1_Template(rf, ctx) { if (rf & 1) {
250
250
  i0.ɵɵadvance();
251
251
  i0.ɵɵproperty("for", ctx_r0.question.id + "_" + option_r18.value);
252
252
  i0.ɵɵadvance();
253
- i0.ɵɵproperty("ngIf", option_r18.icon);
253
+ i0.ɵɵconditional(option_r18.icon ? 3 : -1);
254
254
  i0.ɵɵadvance();
255
255
  i0.ɵɵtextInterpolate1(" ", option_r18.label, " ");
256
256
  } }
257
- function FormQuestionComponent_div_17_Template(rf, ctx) { if (rf & 1) {
258
- i0.ɵɵelementStart(0, "div", 50);
259
- i0.ɵɵtemplate(1, FormQuestionComponent_div_17_div_1_Template, 5, 6, "div", 51);
257
+ function FormQuestionComponent_Conditional_17_Template(rf, ctx) { if (rf & 1) {
258
+ i0.ɵɵelementStart(0, "div", 16);
259
+ i0.ɵɵrepeaterCreate(1, FormQuestionComponent_Conditional_17_For_2_Template, 5, 6, "div", 40, i0.ɵɵcomponentInstance().trackByValue, true);
260
260
  i0.ɵɵelementEnd();
261
261
  } if (rf & 2) {
262
262
  const ctx_r0 = i0.ɵɵnextContext();
263
263
  i0.ɵɵadvance();
264
- i0.ɵɵproperty("ngForOf", ctx_r0.options)("ngForTrackBy", ctx_r0.trackByValue);
264
+ i0.ɵɵrepeater(ctx_r0.options);
265
265
  } }
266
- function FormQuestionComponent_div_18_span_1_Template(rf, ctx) { if (rf & 1) {
266
+ function FormQuestionComponent_Conditional_18_Conditional_1_Template(rf, ctx) { if (rf & 1) {
267
267
  i0.ɵɵelementStart(0, "span");
268
268
  i0.ɵɵtext(1, "This field is required");
269
269
  i0.ɵɵelementEnd();
270
270
  } }
271
- function FormQuestionComponent_div_18_span_2_Template(rf, ctx) { if (rf & 1) {
271
+ function FormQuestionComponent_Conditional_18_Conditional_2_Template(rf, ctx) { if (rf & 1) {
272
272
  i0.ɵɵelementStart(0, "span");
273
273
  i0.ɵɵtext(1, "Please enter a valid email address");
274
274
  i0.ɵɵelementEnd();
275
275
  } }
276
- function FormQuestionComponent_div_18_span_3_Template(rf, ctx) { if (rf & 1) {
276
+ function FormQuestionComponent_Conditional_18_Conditional_3_Template(rf, ctx) { if (rf & 1) {
277
277
  i0.ɵɵelementStart(0, "span");
278
278
  i0.ɵɵtext(1);
279
279
  i0.ɵɵelementEnd();
280
280
  } if (rf & 2) {
281
281
  const ctx_r0 = i0.ɵɵnextContext(2);
282
282
  i0.ɵɵadvance();
283
- i0.ɵɵtextInterpolate1("Value must be at least ", ctx_r0.min, "");
283
+ i0.ɵɵtextInterpolate1("Value must be at least ", ctx_r0.min);
284
284
  } }
285
- function FormQuestionComponent_div_18_span_4_Template(rf, ctx) { if (rf & 1) {
285
+ function FormQuestionComponent_Conditional_18_Conditional_4_Template(rf, ctx) { if (rf & 1) {
286
286
  i0.ɵɵelementStart(0, "span");
287
287
  i0.ɵɵtext(1);
288
288
  i0.ɵɵelementEnd();
289
289
  } if (rf & 2) {
290
290
  const ctx_r0 = i0.ɵɵnextContext(2);
291
291
  i0.ɵɵadvance();
292
- i0.ɵɵtextInterpolate1("Value must be at most ", ctx_r0.max, "");
292
+ i0.ɵɵtextInterpolate1("Value must be at most ", ctx_r0.max);
293
293
  } }
294
- function FormQuestionComponent_div_18_Template(rf, ctx) { if (rf & 1) {
295
- i0.ɵɵelementStart(0, "div", 55);
296
- i0.ɵɵtemplate(1, FormQuestionComponent_div_18_span_1_Template, 2, 0, "span", 56)(2, FormQuestionComponent_div_18_span_2_Template, 2, 0, "span", 56)(3, FormQuestionComponent_div_18_span_3_Template, 2, 1, "span", 56)(4, FormQuestionComponent_div_18_span_4_Template, 2, 1, "span", 56);
294
+ function FormQuestionComponent_Conditional_18_Template(rf, ctx) { if (rf & 1) {
295
+ i0.ɵɵelementStart(0, "div", 17);
296
+ i0.ɵɵconditionalCreate(1, FormQuestionComponent_Conditional_18_Conditional_1_Template, 2, 0, "span");
297
+ i0.ɵɵconditionalCreate(2, FormQuestionComponent_Conditional_18_Conditional_2_Template, 2, 0, "span");
298
+ i0.ɵɵconditionalCreate(3, FormQuestionComponent_Conditional_18_Conditional_3_Template, 2, 1, "span");
299
+ i0.ɵɵconditionalCreate(4, FormQuestionComponent_Conditional_18_Conditional_4_Template, 2, 1, "span");
297
300
  i0.ɵɵelementEnd();
298
301
  } if (rf & 2) {
299
302
  const ctx_r0 = i0.ɵɵnextContext();
300
303
  i0.ɵɵadvance();
301
- i0.ɵɵproperty("ngIf", ctx_r0.control == null ? null : ctx_r0.control.errors == null ? null : ctx_r0.control.errors["required"]);
304
+ i0.ɵɵconditional((ctx_r0.control.errors == null ? null : ctx_r0.control.errors["required"]) ? 1 : -1);
302
305
  i0.ɵɵadvance();
303
- i0.ɵɵproperty("ngIf", ctx_r0.control == null ? null : ctx_r0.control.errors == null ? null : ctx_r0.control.errors["email"]);
306
+ i0.ɵɵconditional((ctx_r0.control.errors == null ? null : ctx_r0.control.errors["email"]) ? 2 : -1);
304
307
  i0.ɵɵadvance();
305
- i0.ɵɵproperty("ngIf", ctx_r0.control == null ? null : ctx_r0.control.errors == null ? null : ctx_r0.control.errors["min"]);
308
+ i0.ɵɵconditional((ctx_r0.control.errors == null ? null : ctx_r0.control.errors["min"]) ? 3 : -1);
306
309
  i0.ɵɵadvance();
307
- i0.ɵɵproperty("ngIf", ctx_r0.control == null ? null : ctx_r0.control.errors == null ? null : ctx_r0.control.errors["max"]);
310
+ i0.ɵɵconditional((ctx_r0.control.errors == null ? null : ctx_r0.control.errors["max"]) ? 4 : -1);
308
311
  } }
309
312
  /**
310
313
  * Component for rendering individual form questions with various input types
@@ -549,73 +552,87 @@ export class FormQuestionComponent {
549
552
  return option.value;
550
553
  }
551
554
  static ɵfac = function FormQuestionComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || FormQuestionComponent)(); };
552
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FormQuestionComponent, selectors: [["mj-form-question"]], inputs: { question: "question", control: "control" }, features: [i0.ɵɵProvidersFeature([
555
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FormQuestionComponent, selectors: [["mj-form-question"]], inputs: { question: "question", control: "control" }, standalone: false, features: [i0.ɵɵProvidersFeature([
553
556
  {
554
557
  provide: NG_VALUE_ACCESSOR,
555
558
  useExisting: forwardRef(() => FormQuestionComponent),
556
559
  multi: true
557
560
  }
558
- ])], decls: 19, vars: 20, consts: [[1, "form-question"], ["class", "question-label", 4, "ngIf"], ["class", "help-text", 4, "ngIf"], [1, "input-container", 3, "ngClass"], ["type", "text", "kendoTextBox", "", "class", "question-input", 3, "value", "placeholder", "disabled", "input", 4, "ngIf"], ["type", "email", "kendoTextBox", "", "class", "question-input", 3, "value", "placeholder", "disabled", "input", 4, "ngIf"], ["kendoTextArea", "", "class", "question-textarea", "rows", "5", 3, "value", "placeholder", "disabled", "input", 4, "ngIf"], ["class", "question-input", 3, "value", "min", "max", "step", "disabled", "valueChange", 4, "ngIf"], ["class", "question-input", 3, "value", "min", "max", "step", "format", "disabled", "valueChange", 4, "ngIf"], ["class", "question-input", 3, "value", "disabled", "valueChange", 4, "ngIf"], ["class", "question-buttongroup", 3, "selection", 4, "ngIf"], ["class", "question-radio-group", 4, "ngIf"], ["class", "question-dropdown", 3, "formControl", "disabled", 4, "ngIf"], ["class", "question-slider-container", 4, "ngIf"], ["class", "question-daterange", 4, "ngIf"], ["class", "question-input", 3, "value", "disabled", "format", "valueChange", 4, "ngIf"], ["class", "question-checkbox-group", 4, "ngIf"], ["class", "validation-error", 4, "ngIf"], [1, "question-label"], ["class", "required-indicator", 4, "ngIf"], [1, "required-indicator"], [1, "help-text"], ["type", "text", "kendoTextBox", "", 1, "question-input", 3, "input", "value", "placeholder", "disabled"], ["type", "email", "kendoTextBox", "", 1, "question-input", 3, "input", "value", "placeholder", "disabled"], ["kendoTextArea", "", "rows", "5", 1, "question-textarea", 3, "input", "value", "placeholder", "disabled"], [1, "question-input", 3, "valueChange", "value", "min", "max", "step", "disabled"], [1, "question-input", 3, "valueChange", "value", "min", "max", "step", "format", "disabled"], [1, "question-input", 3, "valueChange", "value", "disabled"], [1, "question-buttongroup", 3, "selection"], ["kendoButton", "", "class", "buttongroup-option", 3, "toggleable", "selected", "disabled", "click", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["kendoButton", "", 1, "buttongroup-option", 3, "click", "toggleable", "selected", "disabled"], ["aria-hidden", "true", 3, "class", 4, "ngIf"], ["aria-hidden", "true"], [1, "question-radio-group"], ["class", "radio-option", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "radio-option"], ["type", "radio", "kendoRadioButton", "", 3, "change", "name", "value", "checked", "disabled", "id"], [1, "radio-label", 3, "for"], [1, "question-dropdown", 3, "formControl", "disabled"], ["value", ""], [3, "value", 4, "ngFor", "ngForOf", "ngForTrackBy"], [3, "value"], [1, "question-slider-container"], [1, "question-slider", 3, "valueChange", "min", "max", "smallStep", "value", "disabled"], [1, "slider-value"], [1, "question-daterange"], ["placeholder", "Start Date", 1, "daterange-start", 3, "valueChange", "value", "disabled"], [1, "daterange-separator"], ["placeholder", "End Date", 1, "daterange-end", 3, "valueChange", "value", "disabled"], [1, "question-input", 3, "valueChange", "value", "disabled", "format"], [1, "question-checkbox-group"], ["class", "checkbox-option", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "checkbox-option"], ["type", "checkbox", "kendoCheckBox", "", 3, "change", "checked", "disabled", "id"], [1, "checkbox-label", 3, "for"], [1, "validation-error"], [4, "ngIf"]], template: function FormQuestionComponent_Template(rf, ctx) { if (rf & 1) {
561
+ ])], decls: 19, vars: 20, consts: [[1, "form-question"], [1, "question-label"], [1, "help-text"], [1, "input-container", 3, "ngClass"], ["type", "text", "kendoTextBox", "", 1, "question-input", 3, "value", "placeholder", "disabled"], ["type", "email", "kendoTextBox", "", 1, "question-input", 3, "value", "placeholder", "disabled"], ["kendoTextArea", "", "rows", "5", 1, "question-textarea", 3, "value", "placeholder", "disabled"], [1, "question-input", 3, "value", "min", "max", "step", "disabled"], [1, "question-input", 3, "value", "min", "max", "step", "format", "disabled"], [1, "question-input", 3, "value", "disabled"], [1, "question-buttongroup", 3, "selection"], [1, "question-radio-group"], [1, "question-dropdown", 3, "formControl", "disabled"], [1, "question-slider-container"], [1, "question-daterange"], [1, "question-input", 3, "value", "disabled", "format"], [1, "question-checkbox-group"], [1, "validation-error"], [1, "required-indicator"], ["type", "text", "kendoTextBox", "", 1, "question-input", 3, "input", "value", "placeholder", "disabled"], ["type", "email", "kendoTextBox", "", 1, "question-input", 3, "input", "value", "placeholder", "disabled"], ["kendoTextArea", "", "rows", "5", 1, "question-textarea", 3, "input", "value", "placeholder", "disabled"], [1, "question-input", 3, "valueChange", "value", "min", "max", "step", "disabled"], [1, "question-input", 3, "valueChange", "value", "min", "max", "step", "format", "disabled"], [1, "question-input", 3, "valueChange", "value", "disabled"], ["kendoButton", "", 1, "buttongroup-option", 3, "toggleable", "selected", "disabled"], ["kendoButton", "", 1, "buttongroup-option", 3, "click", "toggleable", "selected", "disabled"], ["aria-hidden", "true", 3, "class"], ["aria-hidden", "true"], [1, "radio-option"], ["type", "radio", "kendoRadioButton", "", 3, "change", "name", "value", "checked", "disabled", "id"], [1, "radio-label", 3, "for"], ["value", ""], [3, "value"], [1, "question-slider", 3, "valueChange", "min", "max", "smallStep", "value", "disabled"], [1, "slider-value"], ["placeholder", "Start Date", 1, "daterange-start", 3, "valueChange", "value", "disabled"], [1, "daterange-separator"], ["placeholder", "End Date", 1, "daterange-end", 3, "valueChange", "value", "disabled"], [1, "question-input", 3, "valueChange", "value", "disabled", "format"], [1, "checkbox-option"], ["type", "checkbox", "kendoCheckBox", "", 3, "change", "checked", "disabled", "id"], [1, "checkbox-label", 3, "for"]], template: function FormQuestionComponent_Template(rf, ctx) { if (rf & 1) {
559
562
  i0.ɵɵelementStart(0, "div", 0);
560
- i0.ɵɵtemplate(1, FormQuestionComponent_label_1_Template, 3, 2, "label", 1)(2, FormQuestionComponent_div_2_Template, 2, 1, "div", 2);
563
+ i0.ɵɵconditionalCreate(1, FormQuestionComponent_Conditional_1_Template, 3, 2, "label", 1);
564
+ i0.ɵɵconditionalCreate(2, FormQuestionComponent_Conditional_2_Template, 2, 1, "div", 2);
561
565
  i0.ɵɵelementStart(3, "div", 3);
562
- i0.ɵɵtemplate(4, FormQuestionComponent_input_4_Template, 1, 3, "input", 4)(5, FormQuestionComponent_input_5_Template, 1, 3, "input", 5)(6, FormQuestionComponent_textarea_6_Template, 1, 3, "textarea", 6)(7, FormQuestionComponent_kendo_numerictextbox_7_Template, 1, 5, "kendo-numerictextbox", 7)(8, FormQuestionComponent_kendo_numerictextbox_8_Template, 1, 6, "kendo-numerictextbox", 8)(9, FormQuestionComponent_kendo_datepicker_9_Template, 1, 2, "kendo-datepicker", 9)(10, FormQuestionComponent_kendo_datetimepicker_10_Template, 1, 2, "kendo-datetimepicker", 9)(11, FormQuestionComponent_kendo_buttongroup_11_Template, 2, 3, "kendo-buttongroup", 10)(12, FormQuestionComponent_div_12_Template, 2, 2, "div", 11)(13, FormQuestionComponent_select_13_Template, 4, 4, "select", 12)(14, FormQuestionComponent_div_14_Template, 4, 7, "div", 13)(15, FormQuestionComponent_div_15_Template, 5, 4, "div", 14)(16, FormQuestionComponent_kendo_timepicker_16_Template, 1, 3, "kendo-timepicker", 15)(17, FormQuestionComponent_div_17_Template, 2, 2, "div", 16);
566
+ i0.ɵɵconditionalCreate(4, FormQuestionComponent_Conditional_4_Template, 1, 3, "input", 4);
567
+ i0.ɵɵconditionalCreate(5, FormQuestionComponent_Conditional_5_Template, 1, 3, "input", 5);
568
+ i0.ɵɵconditionalCreate(6, FormQuestionComponent_Conditional_6_Template, 1, 3, "textarea", 6);
569
+ i0.ɵɵconditionalCreate(7, FormQuestionComponent_Conditional_7_Template, 1, 5, "kendo-numerictextbox", 7);
570
+ i0.ɵɵconditionalCreate(8, FormQuestionComponent_Conditional_8_Template, 1, 6, "kendo-numerictextbox", 8);
571
+ i0.ɵɵconditionalCreate(9, FormQuestionComponent_Conditional_9_Template, 1, 2, "kendo-datepicker", 9);
572
+ i0.ɵɵconditionalCreate(10, FormQuestionComponent_Conditional_10_Template, 1, 2, "kendo-datetimepicker", 9);
573
+ i0.ɵɵconditionalCreate(11, FormQuestionComponent_Conditional_11_Template, 3, 1, "kendo-buttongroup", 10);
574
+ i0.ɵɵconditionalCreate(12, FormQuestionComponent_Conditional_12_Template, 3, 0, "div", 11);
575
+ i0.ɵɵconditionalCreate(13, FormQuestionComponent_Conditional_13_Template, 5, 2, "select", 12);
576
+ i0.ɵɵconditionalCreate(14, FormQuestionComponent_Conditional_14_Template, 4, 7, "div", 13);
577
+ i0.ɵɵconditionalCreate(15, FormQuestionComponent_Conditional_15_Template, 5, 4, "div", 14);
578
+ i0.ɵɵconditionalCreate(16, FormQuestionComponent_Conditional_16_Template, 1, 3, "kendo-timepicker", 15);
579
+ i0.ɵɵconditionalCreate(17, FormQuestionComponent_Conditional_17_Template, 3, 0, "div", 16);
563
580
  i0.ɵɵelementEnd();
564
- i0.ɵɵtemplate(18, FormQuestionComponent_div_18_Template, 5, 4, "div", 17);
581
+ i0.ɵɵconditionalCreate(18, FormQuestionComponent_Conditional_18_Template, 5, 4, "div", 17);
565
582
  i0.ɵɵelementEnd();
566
583
  } if (rf & 2) {
567
584
  i0.ɵɵclassProp("required", ctx.question.required);
568
585
  i0.ɵɵadvance();
569
- i0.ɵɵproperty("ngIf", ctx.question.label);
586
+ i0.ɵɵconditional(ctx.question.label ? 1 : -1);
570
587
  i0.ɵɵadvance();
571
- i0.ɵɵproperty("ngIf", ctx.question.helpText);
588
+ i0.ɵɵconditional(ctx.question.helpText ? 2 : -1);
572
589
  i0.ɵɵadvance();
573
590
  i0.ɵɵproperty("ngClass", ctx.widthClass);
574
591
  i0.ɵɵadvance();
575
- i0.ɵɵproperty("ngIf", ctx.questionType === "text");
592
+ i0.ɵɵconditional(ctx.questionType === "text" ? 4 : -1);
576
593
  i0.ɵɵadvance();
577
- i0.ɵɵproperty("ngIf", ctx.questionType === "email");
594
+ i0.ɵɵconditional(ctx.questionType === "email" ? 5 : -1);
578
595
  i0.ɵɵadvance();
579
- i0.ɵɵproperty("ngIf", ctx.questionType === "textarea");
596
+ i0.ɵɵconditional(ctx.questionType === "textarea" ? 6 : -1);
580
597
  i0.ɵɵadvance();
581
- i0.ɵɵproperty("ngIf", ctx.questionType === "number");
598
+ i0.ɵɵconditional(ctx.questionType === "number" ? 7 : -1);
582
599
  i0.ɵɵadvance();
583
- i0.ɵɵproperty("ngIf", ctx.questionType === "currency");
600
+ i0.ɵɵconditional(ctx.questionType === "currency" ? 8 : -1);
584
601
  i0.ɵɵadvance();
585
- i0.ɵɵproperty("ngIf", ctx.questionType === "date");
602
+ i0.ɵɵconditional(ctx.questionType === "date" ? 9 : -1);
586
603
  i0.ɵɵadvance();
587
- i0.ɵɵproperty("ngIf", ctx.questionType === "datetime");
604
+ i0.ɵɵconditional(ctx.questionType === "datetime" ? 10 : -1);
588
605
  i0.ɵɵadvance();
589
- i0.ɵɵproperty("ngIf", ctx.questionType === "buttongroup");
606
+ i0.ɵɵconditional(ctx.questionType === "buttongroup" ? 11 : -1);
590
607
  i0.ɵɵadvance();
591
- i0.ɵɵproperty("ngIf", ctx.questionType === "radio");
608
+ i0.ɵɵconditional(ctx.questionType === "radio" ? 12 : -1);
592
609
  i0.ɵɵadvance();
593
- i0.ɵɵproperty("ngIf", ctx.questionType === "dropdown");
610
+ i0.ɵɵconditional(ctx.questionType === "dropdown" ? 13 : -1);
594
611
  i0.ɵɵadvance();
595
- i0.ɵɵproperty("ngIf", ctx.questionType === "slider");
612
+ i0.ɵɵconditional(ctx.questionType === "slider" ? 14 : -1);
596
613
  i0.ɵɵadvance();
597
- i0.ɵɵproperty("ngIf", ctx.questionType === "daterange");
614
+ i0.ɵɵconditional(ctx.questionType === "daterange" ? 15 : -1);
598
615
  i0.ɵɵadvance();
599
- i0.ɵɵproperty("ngIf", ctx.questionType === "time");
616
+ i0.ɵɵconditional(ctx.questionType === "time" ? 16 : -1);
600
617
  i0.ɵɵadvance();
601
- i0.ɵɵproperty("ngIf", ctx.questionType === "checkbox");
618
+ i0.ɵɵconditional(ctx.questionType === "checkbox" ? 17 : -1);
602
619
  i0.ɵɵadvance();
603
- i0.ɵɵproperty("ngIf", (ctx.control == null ? null : ctx.control.invalid) && (ctx.control == null ? null : ctx.control.touched));
604
- } }, dependencies: [i1.NgClass, i1.NgForOf, i1.NgIf, i2.NgSelectOption, i2.ɵNgSelectMultipleOption, i2.SelectControlValueAccessor, i2.NgControlStatus, i2.FormControlDirective, i3.ButtonGroupComponent, i3.ButtonComponent, i4.TextAreaDirective, i4.TextBoxDirective, i4.SliderComponent, i4.NumericTextBoxComponent, i4.CheckBoxDirective, i4.RadioButtonDirective, i5.DatePickerComponent, i5.TimePickerComponent, i5.DateTimePickerComponent], styles: [".form-question[_ngcontent-%COMP%] {\n margin-bottom: 16px;\n}\n\n.question-label[_ngcontent-%COMP%] {\n display: block;\n font-weight: 500;\n margin-bottom: 6px;\n color: #333;\n font-size: 14px;\n}\n\n.required-indicator[_ngcontent-%COMP%] {\n color: #d9534f;\n margin-left: 2px;\n}\n\n.help-text[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #666;\n margin-bottom: 8px;\n font-style: italic;\n}\n\n\n\n.question-input[_ngcontent-%COMP%], \n.question-textarea[_ngcontent-%COMP%], \n.question-dropdown[_ngcontent-%COMP%] {\n width: 100%;\n max-width: 100%;\n}\n\n.question-dropdown[_ngcontent-%COMP%] {\n padding: 8px 12px;\n border: 1px solid #d1d5db;\n border-radius: 4px;\n font-size: 14px;\n font-family: inherit;\n background-color: white;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 9L1 4h10z'/%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n background-position: right 8px center;\n background-size: 12px;\n padding-right: 32px;\n cursor: pointer;\n transition: border-color 0.2s ease, box-shadow 0.2s ease;\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n}\n\n.question-dropdown[_ngcontent-%COMP%]:hover {\n border-color: #9ca3af;\n}\n\n.question-dropdown[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: #667eea;\n box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);\n}\n\n.question-dropdown[_ngcontent-%COMP%]:disabled {\n background-color: #f3f4f6;\n cursor: not-allowed;\n opacity: 0.6;\n}\n\n.question-textarea[_ngcontent-%COMP%] {\n resize: vertical;\n min-height: 100px;\n}\n\n.question-buttongroup[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: nowrap;\n gap: 8px;\n overflow-x: auto;\n overflow-y: hidden;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: thin;\n scrollbar-color: rgba(16, 185, 129, 0.3) transparent;\n}\n\n.question-buttongroup[_ngcontent-%COMP%]::-webkit-scrollbar {\n height: 6px;\n}\n\n.question-buttongroup[_ngcontent-%COMP%]::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.question-buttongroup[_ngcontent-%COMP%]::-webkit-scrollbar-thumb {\n background: rgba(16, 185, 129, 0.3);\n border-radius: 3px;\n}\n\n.question-buttongroup[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover {\n background: rgba(16, 185, 129, 0.5);\n}\n\n.buttongroup-option[_ngcontent-%COMP%] {\n flex: 0 0 auto;\n white-space: nowrap;\n}\n\n.buttongroup-option[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 6px;\n}\n\n.question-radio-group[_ngcontent-%COMP%], \n.question-checkbox-group[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 12px 16px;\n}\n\n.radio-option[_ngcontent-%COMP%], \n.checkbox-option[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n min-width: 120px;\n flex: 0 0 auto;\n}\n\n.radio-label[_ngcontent-%COMP%], \n.checkbox-label[_ngcontent-%COMP%] {\n cursor: pointer;\n user-select: none;\n margin: 0;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.radio-label[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.checkbox-label[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #666;\n}\n\n.validation-error[_ngcontent-%COMP%] {\n color: #d9534f;\n font-size: 12px;\n margin-top: 4px;\n}\n\n\n\n.form-question.required[_ngcontent-%COMP%] .question-label[_ngcontent-%COMP%] {\n font-weight: 600;\n}\n\n\n\n.question-slider-container[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n.question-slider[_ngcontent-%COMP%] {\n width: 100%;\n margin-bottom: 8px;\n}\n\n.slider-value[_ngcontent-%COMP%] {\n text-align: center;\n font-size: 16px;\n font-weight: 600;\n color: #10b981;\n padding: 4px 0;\n}\n\n\n\n.question-daterange[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-wrap: wrap;\n}\n\n.daterange-start[_ngcontent-%COMP%], \n.daterange-end[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 150px;\n}\n\n.daterange-separator[_ngcontent-%COMP%] {\n font-weight: 500;\n color: #666;\n white-space: nowrap;\n}\n\n\n\n@media (max-width: 480px) {\n .question-daterange[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n }\n\n .daterange-separator[_ngcontent-%COMP%] {\n text-align: center;\n padding: 4px 0;\n }\n}\n\n\n\n\n\n\n.input-container[_ngcontent-%COMP%] {\n display: block;\n}\n\n\n\n.input-container.width-narrow[_ngcontent-%COMP%] {\n max-width: 200px;\n}\n\n.input-container.width-narrow[_ngcontent-%COMP%] .question-input[_ngcontent-%COMP%], \n.input-container.width-narrow[_ngcontent-%COMP%] .question-dropdown[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n\n\n.input-container.width-medium[_ngcontent-%COMP%] {\n max-width: 450px;\n}\n\n.input-container.width-medium[_ngcontent-%COMP%] .question-input[_ngcontent-%COMP%], \n.input-container.width-medium[_ngcontent-%COMP%] .question-dropdown[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n\n\n.input-container.width-wide[_ngcontent-%COMP%] {\n max-width: 100%;\n}\n\n.input-container.width-wide[_ngcontent-%COMP%] .question-input[_ngcontent-%COMP%], \n.input-container.width-wide[_ngcontent-%COMP%] .question-dropdown[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n\n\n.input-container.width-full[_ngcontent-%COMP%] {\n max-width: 100%;\n}\n\n.input-container.width-full[_ngcontent-%COMP%] .question-input[_ngcontent-%COMP%], \n.input-container.width-full[_ngcontent-%COMP%] .question-textarea[_ngcontent-%COMP%], \n.input-container.width-full[_ngcontent-%COMP%] .question-dropdown[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n\n\n.input-container.width-auto[_ngcontent-%COMP%] {\n max-width: 350px;\n min-width: 150px;\n width: auto;\n}\n\n.input-container.width-auto[_ngcontent-%COMP%] .question-dropdown[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n\n\n@media (max-width: 600px) {\n .input-container.width-narrow[_ngcontent-%COMP%], \n .input-container.width-medium[_ngcontent-%COMP%], \n .input-container.width-wide[_ngcontent-%COMP%], \n .input-container.width-auto[_ngcontent-%COMP%] {\n max-width: 100%;\n }\n}"] });
620
+ i0.ɵɵconditional(ctx.control.invalid && ctx.control.touched ? 18 : -1);
621
+ } }, dependencies: [i1.NgClass, i2.NgSelectOption, i2.ɵNgSelectMultipleOption, i2.SelectControlValueAccessor, i2.NgControlStatus, i2.FormControlDirective, i3.ButtonComponent, i3.ButtonGroupComponent, i4.TextBoxDirective, i4.NumericTextBoxComponent, i4.TextAreaDirective, i4.CheckBoxDirective, i4.RadioButtonDirective, i4.SliderComponent, i5.DatePickerComponent, i5.DateTimePickerComponent, i5.TimePickerComponent], styles: [".form-question[_ngcontent-%COMP%] {\n margin-bottom: 16px;\n}\n\n.question-label[_ngcontent-%COMP%] {\n display: block;\n font-weight: 500;\n margin-bottom: 6px;\n color: #333;\n font-size: 14px;\n}\n\n.required-indicator[_ngcontent-%COMP%] {\n color: #d9534f;\n margin-left: 2px;\n}\n\n.help-text[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #666;\n margin-bottom: 8px;\n font-style: italic;\n}\n\n\n\n.question-input[_ngcontent-%COMP%], \n.question-textarea[_ngcontent-%COMP%], \n.question-dropdown[_ngcontent-%COMP%] {\n width: 100%;\n max-width: 100%;\n}\n\n.question-dropdown[_ngcontent-%COMP%] {\n padding: 8px 12px;\n border: 1px solid #d1d5db;\n border-radius: 4px;\n font-size: 14px;\n font-family: inherit;\n background-color: white;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 9L1 4h10z'/%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n background-position: right 8px center;\n background-size: 12px;\n padding-right: 32px;\n cursor: pointer;\n transition: border-color 0.2s ease, box-shadow 0.2s ease;\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n}\n\n.question-dropdown[_ngcontent-%COMP%]:hover {\n border-color: #9ca3af;\n}\n\n.question-dropdown[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: #667eea;\n box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);\n}\n\n.question-dropdown[_ngcontent-%COMP%]:disabled {\n background-color: #f3f4f6;\n cursor: not-allowed;\n opacity: 0.6;\n}\n\n.question-textarea[_ngcontent-%COMP%] {\n resize: vertical;\n min-height: 100px;\n}\n\n.question-buttongroup[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: nowrap;\n gap: 8px;\n overflow-x: auto;\n overflow-y: hidden;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: thin;\n scrollbar-color: rgba(16, 185, 129, 0.3) transparent;\n}\n\n.question-buttongroup[_ngcontent-%COMP%]::-webkit-scrollbar {\n height: 6px;\n}\n\n.question-buttongroup[_ngcontent-%COMP%]::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.question-buttongroup[_ngcontent-%COMP%]::-webkit-scrollbar-thumb {\n background: rgba(16, 185, 129, 0.3);\n border-radius: 3px;\n}\n\n.question-buttongroup[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover {\n background: rgba(16, 185, 129, 0.5);\n}\n\n.buttongroup-option[_ngcontent-%COMP%] {\n flex: 0 0 auto;\n white-space: nowrap;\n}\n\n.buttongroup-option[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 6px;\n}\n\n.question-radio-group[_ngcontent-%COMP%], \n.question-checkbox-group[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 12px 16px;\n}\n\n.radio-option[_ngcontent-%COMP%], \n.checkbox-option[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n min-width: 120px;\n flex: 0 0 auto;\n}\n\n.radio-label[_ngcontent-%COMP%], \n.checkbox-label[_ngcontent-%COMP%] {\n cursor: pointer;\n user-select: none;\n margin: 0;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.radio-label[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.checkbox-label[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #666;\n}\n\n.validation-error[_ngcontent-%COMP%] {\n color: #d9534f;\n font-size: 12px;\n margin-top: 4px;\n}\n\n\n\n.form-question.required[_ngcontent-%COMP%] .question-label[_ngcontent-%COMP%] {\n font-weight: 600;\n}\n\n\n\n.question-slider-container[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n.question-slider[_ngcontent-%COMP%] {\n width: 100%;\n margin-bottom: 8px;\n}\n\n.slider-value[_ngcontent-%COMP%] {\n text-align: center;\n font-size: 16px;\n font-weight: 600;\n color: #10b981;\n padding: 4px 0;\n}\n\n\n\n.question-daterange[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-wrap: wrap;\n}\n\n.daterange-start[_ngcontent-%COMP%], \n.daterange-end[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 150px;\n}\n\n.daterange-separator[_ngcontent-%COMP%] {\n font-weight: 500;\n color: #666;\n white-space: nowrap;\n}\n\n\n\n@media (max-width: 480px) {\n .question-daterange[_ngcontent-%COMP%] {\n flex-direction: column;\n align-items: stretch;\n }\n\n .daterange-separator[_ngcontent-%COMP%] {\n text-align: center;\n padding: 4px 0;\n }\n}\n\n\n\n\n\n\n.input-container[_ngcontent-%COMP%] {\n display: block;\n}\n\n\n\n.input-container.width-narrow[_ngcontent-%COMP%] {\n max-width: 200px;\n}\n\n.input-container.width-narrow[_ngcontent-%COMP%] .question-input[_ngcontent-%COMP%], \n.input-container.width-narrow[_ngcontent-%COMP%] .question-dropdown[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n\n\n.input-container.width-medium[_ngcontent-%COMP%] {\n max-width: 450px;\n}\n\n.input-container.width-medium[_ngcontent-%COMP%] .question-input[_ngcontent-%COMP%], \n.input-container.width-medium[_ngcontent-%COMP%] .question-dropdown[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n\n\n.input-container.width-wide[_ngcontent-%COMP%] {\n max-width: 100%;\n}\n\n.input-container.width-wide[_ngcontent-%COMP%] .question-input[_ngcontent-%COMP%], \n.input-container.width-wide[_ngcontent-%COMP%] .question-dropdown[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n\n\n.input-container.width-full[_ngcontent-%COMP%] {\n max-width: 100%;\n}\n\n.input-container.width-full[_ngcontent-%COMP%] .question-input[_ngcontent-%COMP%], \n.input-container.width-full[_ngcontent-%COMP%] .question-textarea[_ngcontent-%COMP%], \n.input-container.width-full[_ngcontent-%COMP%] .question-dropdown[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n\n\n.input-container.width-auto[_ngcontent-%COMP%] {\n max-width: 350px;\n min-width: 150px;\n width: auto;\n}\n\n.input-container.width-auto[_ngcontent-%COMP%] .question-dropdown[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n\n\n@media (max-width: 600px) {\n .input-container.width-narrow[_ngcontent-%COMP%], \n .input-container.width-medium[_ngcontent-%COMP%], \n .input-container.width-wide[_ngcontent-%COMP%], \n .input-container.width-auto[_ngcontent-%COMP%] {\n max-width: 100%;\n }\n}"] });
605
622
  }
606
623
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FormQuestionComponent, [{
607
624
  type: Component,
608
- args: [{ selector: 'mj-form-question', providers: [
625
+ args: [{ standalone: false, selector: 'mj-form-question', providers: [
609
626
  {
610
627
  provide: NG_VALUE_ACCESSOR,
611
628
  useExisting: forwardRef(() => FormQuestionComponent),
612
629
  multi: true
613
630
  }
614
- ], template: "<div class=\"form-question\" [class.required]=\"question.required\">\n <!-- Label -->\n <label *ngIf=\"question.label\" class=\"question-label\">\n {{ question.label }}\n <span *ngIf=\"question.required\" class=\"required-indicator\">*</span>\n </label>\n\n <!-- Help Text -->\n <div *ngIf=\"question.helpText\" class=\"help-text\">\n {{ question.helpText }}\n </div>\n\n <!-- Input Container with width class -->\n <div class=\"input-container\" [ngClass]=\"widthClass\">\n\n <!-- Text Input -->\n <input\n *ngIf=\"questionType === 'text'\"\n type=\"text\"\n kendoTextBox\n [value]=\"value || ''\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n (input)=\"onValueChange($any($event.target).value)\"\n class=\"question-input\"\n />\n\n <!-- Email Input -->\n <input\n *ngIf=\"questionType === 'email'\"\n type=\"email\"\n kendoTextBox\n [value]=\"value || ''\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n (input)=\"onValueChange($any($event.target).value)\"\n class=\"question-input\"\n />\n\n <!-- Textarea -->\n <textarea\n *ngIf=\"questionType === 'textarea'\"\n kendoTextArea\n [value]=\"value || ''\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n (input)=\"onValueChange($any($event.target).value)\"\n class=\"question-textarea\"\n rows=\"5\"\n ></textarea>\n\n <!-- Number Input -->\n <kendo-numerictextbox\n *ngIf=\"questionType === 'number'\"\n [value]=\"value\"\n [min]=\"min || 0\"\n [max]=\"max || 999999999\"\n [step]=\"step || 1\"\n [disabled]=\"disabled\"\n (valueChange)=\"onValueChange($event)\"\n class=\"question-input\"\n ></kendo-numerictextbox>\n\n <!-- Currency Input -->\n <kendo-numerictextbox\n *ngIf=\"questionType === 'currency'\"\n [value]=\"value\"\n [min]=\"min || 0\"\n [max]=\"max || 999999999\"\n [step]=\"step || 0.01\"\n [format]=\"'c2'\"\n [disabled]=\"disabled\"\n (valueChange)=\"onValueChange($event)\"\n class=\"question-input\"\n ></kendo-numerictextbox>\n\n <!-- Date Picker -->\n <kendo-datepicker\n *ngIf=\"questionType === 'date'\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n (valueChange)=\"onValueChange($event)\"\n class=\"question-input\"\n ></kendo-datepicker>\n\n <!-- DateTime Picker -->\n <kendo-datetimepicker\n *ngIf=\"questionType === 'datetime'\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n (valueChange)=\"onValueChange($event)\"\n class=\"question-input\"\n ></kendo-datetimepicker>\n\n <!-- Button Group -->\n <kendo-buttongroup\n *ngIf=\"questionType === 'buttongroup'\"\n [selection]=\"'single'\"\n class=\"question-buttongroup\"\n >\n <button\n *ngFor=\"let option of options; trackBy: trackByValue\"\n kendoButton\n [toggleable]=\"true\"\n [selected]=\"value === option.value\"\n [disabled]=\"disabled\"\n (click)=\"onValueChange(option.value)\"\n class=\"buttongroup-option\"\n >\n <i *ngIf=\"option.icon\" class=\"fa {{ option.icon }}\" aria-hidden=\"true\"></i>\n {{ option.label }}\n </button>\n </kendo-buttongroup>\n\n <!-- Radio Buttons -->\n <div *ngIf=\"questionType === 'radio'\" class=\"question-radio-group\">\n <div *ngFor=\"let option of options; trackBy: trackByValue\" class=\"radio-option\">\n <input\n type=\"radio\"\n kendoRadioButton\n [name]=\"question.id\"\n [value]=\"option.value\"\n [checked]=\"value === option.value\"\n [disabled]=\"disabled\"\n (change)=\"onValueChange(option.value)\"\n [id]=\"question.id + '_' + option.value\"\n />\n <label [for]=\"question.id + '_' + option.value\" class=\"radio-label\">\n <i *ngIf=\"option.icon\" class=\"fa {{ option.icon }}\" aria-hidden=\"true\"></i>\n {{ option.label }}\n </label>\n </div>\n </div>\n\n <!-- Dropdown -->\n <select\n *ngIf=\"questionType === 'dropdown'\"\n [formControl]=\"control\"\n [disabled]=\"disabled\"\n class=\"question-dropdown\"\n >\n <option value=\"\">Select an option...</option>\n <option *ngFor=\"let option of options; trackBy: trackByValue\" [value]=\"option.value\">\n {{ option.label }}\n </option>\n </select>\n\n <!-- Slider -->\n <div *ngIf=\"questionType === 'slider'\" class=\"question-slider-container\">\n <kendo-slider\n [min]=\"getSliderConfig().min\"\n [max]=\"getSliderConfig().max\"\n [smallStep]=\"getSliderConfig().step || 1\"\n [value]=\"value || getSliderConfig().min\"\n [disabled]=\"disabled\"\n (valueChange)=\"onValueChange($event)\"\n class=\"question-slider\"\n ></kendo-slider>\n <div class=\"slider-value\">\n {{ value || getSliderConfig().min }}{{ getSliderConfig().suffix || '' }}\n </div>\n </div>\n\n <!-- Date Range -->\n <div *ngIf=\"questionType === 'daterange'\" class=\"question-daterange\">\n <kendo-datepicker\n [value]=\"value?.start\"\n [disabled]=\"disabled\"\n (valueChange)=\"onDateRangeStartChange($event)\"\n placeholder=\"Start Date\"\n class=\"daterange-start\"\n ></kendo-datepicker>\n <span class=\"daterange-separator\">to</span>\n <kendo-datepicker\n [value]=\"value?.end\"\n [disabled]=\"disabled\"\n (valueChange)=\"onDateRangeEndChange($event)\"\n placeholder=\"End Date\"\n class=\"daterange-end\"\n ></kendo-datepicker>\n </div>\n\n <!-- Time Picker -->\n <kendo-timepicker\n *ngIf=\"questionType === 'time'\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n (valueChange)=\"onValueChange($event)\"\n [format]=\"'h:mm a'\"\n class=\"question-input\"\n ></kendo-timepicker>\n\n <!-- Checkboxes -->\n <div *ngIf=\"questionType === 'checkbox'\" class=\"question-checkbox-group\">\n <div *ngFor=\"let option of options; trackBy: trackByValue\" class=\"checkbox-option\">\n <input\n type=\"checkbox\"\n kendoCheckBox\n [checked]=\"isChecked(option)\"\n [disabled]=\"disabled\"\n (change)=\"toggleCheckbox(option)\"\n [id]=\"question.id + '_' + option.value\"\n />\n <label [for]=\"question.id + '_' + option.value\" class=\"checkbox-label\">\n <i *ngIf=\"option.icon\" class=\"fa {{ option.icon }}\" aria-hidden=\"true\"></i>\n {{ option.label }}\n </label>\n </div>\n </div>\n </div><!-- end input-container -->\n\n <!-- Validation Error -->\n <div *ngIf=\"control?.invalid && control?.touched\" class=\"validation-error\">\n <span *ngIf=\"control?.errors?.['required']\">This field is required</span>\n <span *ngIf=\"control?.errors?.['email']\">Please enter a valid email address</span>\n <span *ngIf=\"control?.errors?.['min']\">Value must be at least {{ min }}</span>\n <span *ngIf=\"control?.errors?.['max']\">Value must be at most {{ max }}</span>\n </div>\n</div>\n", styles: [".form-question {\n margin-bottom: 16px;\n}\n\n.question-label {\n display: block;\n font-weight: 500;\n margin-bottom: 6px;\n color: #333;\n font-size: 14px;\n}\n\n.required-indicator {\n color: #d9534f;\n margin-left: 2px;\n}\n\n.help-text {\n font-size: 12px;\n color: #666;\n margin-bottom: 8px;\n font-style: italic;\n}\n\n/* Default widths - controlled by input-container width classes */\n.question-input,\n.question-textarea,\n.question-dropdown {\n width: 100%;\n max-width: 100%;\n}\n\n.question-dropdown {\n padding: 8px 12px;\n border: 1px solid #d1d5db;\n border-radius: 4px;\n font-size: 14px;\n font-family: inherit;\n background-color: white;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 9L1 4h10z'/%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n background-position: right 8px center;\n background-size: 12px;\n padding-right: 32px;\n cursor: pointer;\n transition: border-color 0.2s ease, box-shadow 0.2s ease;\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n}\n\n.question-dropdown:hover {\n border-color: #9ca3af;\n}\n\n.question-dropdown:focus {\n outline: none;\n border-color: #667eea;\n box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);\n}\n\n.question-dropdown:disabled {\n background-color: #f3f4f6;\n cursor: not-allowed;\n opacity: 0.6;\n}\n\n.question-textarea {\n resize: vertical;\n min-height: 100px;\n}\n\n.question-buttongroup {\n display: flex;\n flex-wrap: nowrap;\n gap: 8px;\n overflow-x: auto;\n overflow-y: hidden;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: thin;\n scrollbar-color: rgba(16, 185, 129, 0.3) transparent;\n}\n\n.question-buttongroup::-webkit-scrollbar {\n height: 6px;\n}\n\n.question-buttongroup::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.question-buttongroup::-webkit-scrollbar-thumb {\n background: rgba(16, 185, 129, 0.3);\n border-radius: 3px;\n}\n\n.question-buttongroup::-webkit-scrollbar-thumb:hover {\n background: rgba(16, 185, 129, 0.5);\n}\n\n.buttongroup-option {\n flex: 0 0 auto;\n white-space: nowrap;\n}\n\n.buttongroup-option i {\n margin-right: 6px;\n}\n\n.question-radio-group,\n.question-checkbox-group {\n display: flex;\n flex-wrap: wrap;\n gap: 12px 16px;\n}\n\n.radio-option,\n.checkbox-option {\n display: flex;\n align-items: center;\n gap: 8px;\n min-width: 120px;\n flex: 0 0 auto;\n}\n\n.radio-label,\n.checkbox-label {\n cursor: pointer;\n user-select: none;\n margin: 0;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.radio-label i,\n.checkbox-label i {\n color: #666;\n}\n\n.validation-error {\n color: #d9534f;\n font-size: 12px;\n margin-top: 4px;\n}\n\n/* Required field styling */\n.form-question.required .question-label {\n font-weight: 600;\n}\n\n/* Slider styling */\n.question-slider-container {\n width: 100%;\n}\n\n.question-slider {\n width: 100%;\n margin-bottom: 8px;\n}\n\n.slider-value {\n text-align: center;\n font-size: 16px;\n font-weight: 600;\n color: #10b981;\n padding: 4px 0;\n}\n\n/* Date range styling */\n.question-daterange {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-wrap: wrap;\n}\n\n.daterange-start,\n.daterange-end {\n flex: 1;\n min-width: 150px;\n}\n\n.daterange-separator {\n font-weight: 500;\n color: #666;\n white-space: nowrap;\n}\n\n/* Mobile adjustments for date range */\n@media (max-width: 480px) {\n .question-daterange {\n flex-direction: column;\n align-items: stretch;\n }\n\n .daterange-separator {\n text-align: center;\n padding: 4px 0;\n }\n}\n\n/* ===== Semantic Width Classes ===== */\n/* Controls field width based on expected content length */\n\n.input-container {\n display: block;\n}\n\n/* Narrow fields - for numbers, dates, times, short codes */\n.input-container.width-narrow {\n max-width: 200px;\n}\n\n.input-container.width-narrow .question-input,\n.input-container.width-narrow .question-dropdown {\n width: 100%;\n}\n\n/* Medium fields - for names, cities, phone numbers (DEFAULT) */\n.input-container.width-medium {\n max-width: 450px;\n}\n\n.input-container.width-medium .question-input,\n.input-container.width-medium .question-dropdown {\n width: 100%;\n}\n\n/* Wide fields - for emails, URLs, long text */\n.input-container.width-wide {\n max-width: 100%;\n}\n\n.input-container.width-wide .question-input,\n.input-container.width-wide .question-dropdown {\n width: 100%;\n}\n\n/* Full width - for textarea, search fields */\n.input-container.width-full {\n max-width: 100%;\n}\n\n.input-container.width-full .question-input,\n.input-container.width-full .question-textarea,\n.input-container.width-full .question-dropdown {\n width: 100%;\n}\n\n/* Auto-width - for dropdowns, radio, checkbox (sizes to content) */\n.input-container.width-auto {\n max-width: 350px;\n min-width: 150px;\n width: auto;\n}\n\n.input-container.width-auto .question-dropdown {\n width: 100%;\n}\n\n/* Responsive adjustments for smaller screens */\n@media (max-width: 600px) {\n .input-container.width-narrow,\n .input-container.width-medium,\n .input-container.width-wide,\n .input-container.width-auto {\n max-width: 100%;\n }\n}\n"] }]
631
+ ], template: "<div class=\"form-question\" [class.required]=\"question.required\">\n <!-- Label -->\n @if (question.label) {\n <label class=\"question-label\">\n {{ question.label }}\n @if (question.required) {\n <span class=\"required-indicator\">*</span>\n }\n </label>\n }\n\n <!-- Help Text -->\n @if (question.helpText) {\n <div class=\"help-text\">\n {{ question.helpText }}\n </div>\n }\n\n <!-- Input Container with width class -->\n <div class=\"input-container\" [ngClass]=\"widthClass\">\n\n <!-- Text Input -->\n @if (questionType === 'text') {\n <input\n type=\"text\"\n kendoTextBox\n [value]=\"value || ''\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n (input)=\"onValueChange($any($event.target).value)\"\n class=\"question-input\"\n />\n }\n\n <!-- Email Input -->\n @if (questionType === 'email') {\n <input\n type=\"email\"\n kendoTextBox\n [value]=\"value || ''\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n (input)=\"onValueChange($any($event.target).value)\"\n class=\"question-input\"\n />\n }\n\n <!-- Textarea -->\n @if (questionType === 'textarea') {\n <textarea\n kendoTextArea\n [value]=\"value || ''\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n (input)=\"onValueChange($any($event.target).value)\"\n class=\"question-textarea\"\n rows=\"5\"\n ></textarea>\n }\n\n <!-- Number Input -->\n @if (questionType === 'number') {\n <kendo-numerictextbox\n [value]=\"value\"\n [min]=\"min || 0\"\n [max]=\"max || 999999999\"\n [step]=\"step || 1\"\n [disabled]=\"disabled\"\n (valueChange)=\"onValueChange($event)\"\n class=\"question-input\"\n ></kendo-numerictextbox>\n }\n\n <!-- Currency Input -->\n @if (questionType === 'currency') {\n <kendo-numerictextbox\n [value]=\"value\"\n [min]=\"min || 0\"\n [max]=\"max || 999999999\"\n [step]=\"step || 0.01\"\n [format]=\"'c2'\"\n [disabled]=\"disabled\"\n (valueChange)=\"onValueChange($event)\"\n class=\"question-input\"\n ></kendo-numerictextbox>\n }\n\n <!-- Date Picker -->\n @if (questionType === 'date') {\n <kendo-datepicker\n [value]=\"value\"\n [disabled]=\"disabled\"\n (valueChange)=\"onValueChange($event)\"\n class=\"question-input\"\n ></kendo-datepicker>\n }\n\n <!-- DateTime Picker -->\n @if (questionType === 'datetime') {\n <kendo-datetimepicker\n [value]=\"value\"\n [disabled]=\"disabled\"\n (valueChange)=\"onValueChange($event)\"\n class=\"question-input\"\n ></kendo-datetimepicker>\n }\n\n <!-- Button Group -->\n @if (questionType === 'buttongroup') {\n <kendo-buttongroup\n [selection]=\"'single'\"\n class=\"question-buttongroup\"\n >\n @for (option of options; track trackByValue($index, option)) {\n <button\n kendoButton\n [toggleable]=\"true\"\n [selected]=\"value === option.value\"\n [disabled]=\"disabled\"\n (click)=\"onValueChange(option.value)\"\n class=\"buttongroup-option\"\n >\n @if (option.icon) {\n <i class=\"fa {{ option.icon }}\" aria-hidden=\"true\"></i>\n }\n {{ option.label }}\n </button>\n }\n </kendo-buttongroup>\n }\n\n <!-- Radio Buttons -->\n @if (questionType === 'radio') {\n <div class=\"question-radio-group\">\n @for (option of options; track trackByValue($index, option)) {\n <div class=\"radio-option\">\n <input\n type=\"radio\"\n kendoRadioButton\n [name]=\"question.id\"\n [value]=\"option.value\"\n [checked]=\"value === option.value\"\n [disabled]=\"disabled\"\n (change)=\"onValueChange(option.value)\"\n [id]=\"question.id + '_' + option.value\"\n />\n <label [for]=\"question.id + '_' + option.value\" class=\"radio-label\">\n @if (option.icon) {\n <i class=\"fa {{ option.icon }}\" aria-hidden=\"true\"></i>\n }\n {{ option.label }}\n </label>\n </div>\n }\n </div>\n }\n\n <!-- Dropdown -->\n @if (questionType === 'dropdown') {\n <select\n [formControl]=\"control\"\n [disabled]=\"disabled\"\n class=\"question-dropdown\"\n >\n <option value=\"\">Select an option...</option>\n @for (option of options; track trackByValue($index, option)) {\n <option [value]=\"option.value\">\n {{ option.label }}\n </option>\n }\n </select>\n }\n\n <!-- Slider -->\n @if (questionType === 'slider') {\n <div class=\"question-slider-container\">\n <kendo-slider\n [min]=\"getSliderConfig().min\"\n [max]=\"getSliderConfig().max\"\n [smallStep]=\"getSliderConfig().step || 1\"\n [value]=\"value || getSliderConfig().min\"\n [disabled]=\"disabled\"\n (valueChange)=\"onValueChange($event)\"\n class=\"question-slider\"\n ></kendo-slider>\n <div class=\"slider-value\">\n {{ value || getSliderConfig().min }}{{ getSliderConfig().suffix || '' }}\n </div>\n </div>\n }\n\n <!-- Date Range -->\n @if (questionType === 'daterange') {\n <div class=\"question-daterange\">\n <kendo-datepicker\n [value]=\"value?.start\"\n [disabled]=\"disabled\"\n (valueChange)=\"onDateRangeStartChange($event)\"\n placeholder=\"Start Date\"\n class=\"daterange-start\"\n ></kendo-datepicker>\n <span class=\"daterange-separator\">to</span>\n <kendo-datepicker\n [value]=\"value?.end\"\n [disabled]=\"disabled\"\n (valueChange)=\"onDateRangeEndChange($event)\"\n placeholder=\"End Date\"\n class=\"daterange-end\"\n ></kendo-datepicker>\n </div>\n }\n\n <!-- Time Picker -->\n @if (questionType === 'time') {\n <kendo-timepicker\n [value]=\"value\"\n [disabled]=\"disabled\"\n (valueChange)=\"onValueChange($event)\"\n [format]=\"'h:mm a'\"\n class=\"question-input\"\n ></kendo-timepicker>\n }\n\n <!-- Checkboxes -->\n @if (questionType === 'checkbox') {\n <div class=\"question-checkbox-group\">\n @for (option of options; track trackByValue($index, option)) {\n <div class=\"checkbox-option\">\n <input\n type=\"checkbox\"\n kendoCheckBox\n [checked]=\"isChecked(option)\"\n [disabled]=\"disabled\"\n (change)=\"toggleCheckbox(option)\"\n [id]=\"question.id + '_' + option.value\"\n />\n <label [for]=\"question.id + '_' + option.value\" class=\"checkbox-label\">\n @if (option.icon) {\n <i class=\"fa {{ option.icon }}\" aria-hidden=\"true\"></i>\n }\n {{ option.label }}\n </label>\n </div>\n }\n </div>\n }\n </div><!-- end input-container -->\n\n <!-- Validation Error -->\n @if (control.invalid && control.touched) {\n <div class=\"validation-error\">\n @if (control.errors?.['required']) {\n <span>This field is required</span>\n }\n @if (control.errors?.['email']) {\n <span>Please enter a valid email address</span>\n }\n @if (control.errors?.['min']) {\n <span>Value must be at least {{ min }}</span>\n }\n @if (control.errors?.['max']) {\n <span>Value must be at most {{ max }}</span>\n }\n </div>\n }\n</div>\n", styles: [".form-question {\n margin-bottom: 16px;\n}\n\n.question-label {\n display: block;\n font-weight: 500;\n margin-bottom: 6px;\n color: #333;\n font-size: 14px;\n}\n\n.required-indicator {\n color: #d9534f;\n margin-left: 2px;\n}\n\n.help-text {\n font-size: 12px;\n color: #666;\n margin-bottom: 8px;\n font-style: italic;\n}\n\n/* Default widths - controlled by input-container width classes */\n.question-input,\n.question-textarea,\n.question-dropdown {\n width: 100%;\n max-width: 100%;\n}\n\n.question-dropdown {\n padding: 8px 12px;\n border: 1px solid #d1d5db;\n border-radius: 4px;\n font-size: 14px;\n font-family: inherit;\n background-color: white;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 9L1 4h10z'/%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n background-position: right 8px center;\n background-size: 12px;\n padding-right: 32px;\n cursor: pointer;\n transition: border-color 0.2s ease, box-shadow 0.2s ease;\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n}\n\n.question-dropdown:hover {\n border-color: #9ca3af;\n}\n\n.question-dropdown:focus {\n outline: none;\n border-color: #667eea;\n box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);\n}\n\n.question-dropdown:disabled {\n background-color: #f3f4f6;\n cursor: not-allowed;\n opacity: 0.6;\n}\n\n.question-textarea {\n resize: vertical;\n min-height: 100px;\n}\n\n.question-buttongroup {\n display: flex;\n flex-wrap: nowrap;\n gap: 8px;\n overflow-x: auto;\n overflow-y: hidden;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: thin;\n scrollbar-color: rgba(16, 185, 129, 0.3) transparent;\n}\n\n.question-buttongroup::-webkit-scrollbar {\n height: 6px;\n}\n\n.question-buttongroup::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.question-buttongroup::-webkit-scrollbar-thumb {\n background: rgba(16, 185, 129, 0.3);\n border-radius: 3px;\n}\n\n.question-buttongroup::-webkit-scrollbar-thumb:hover {\n background: rgba(16, 185, 129, 0.5);\n}\n\n.buttongroup-option {\n flex: 0 0 auto;\n white-space: nowrap;\n}\n\n.buttongroup-option i {\n margin-right: 6px;\n}\n\n.question-radio-group,\n.question-checkbox-group {\n display: flex;\n flex-wrap: wrap;\n gap: 12px 16px;\n}\n\n.radio-option,\n.checkbox-option {\n display: flex;\n align-items: center;\n gap: 8px;\n min-width: 120px;\n flex: 0 0 auto;\n}\n\n.radio-label,\n.checkbox-label {\n cursor: pointer;\n user-select: none;\n margin: 0;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.radio-label i,\n.checkbox-label i {\n color: #666;\n}\n\n.validation-error {\n color: #d9534f;\n font-size: 12px;\n margin-top: 4px;\n}\n\n/* Required field styling */\n.form-question.required .question-label {\n font-weight: 600;\n}\n\n/* Slider styling */\n.question-slider-container {\n width: 100%;\n}\n\n.question-slider {\n width: 100%;\n margin-bottom: 8px;\n}\n\n.slider-value {\n text-align: center;\n font-size: 16px;\n font-weight: 600;\n color: #10b981;\n padding: 4px 0;\n}\n\n/* Date range styling */\n.question-daterange {\n display: flex;\n align-items: center;\n gap: 12px;\n flex-wrap: wrap;\n}\n\n.daterange-start,\n.daterange-end {\n flex: 1;\n min-width: 150px;\n}\n\n.daterange-separator {\n font-weight: 500;\n color: #666;\n white-space: nowrap;\n}\n\n/* Mobile adjustments for date range */\n@media (max-width: 480px) {\n .question-daterange {\n flex-direction: column;\n align-items: stretch;\n }\n\n .daterange-separator {\n text-align: center;\n padding: 4px 0;\n }\n}\n\n/* ===== Semantic Width Classes ===== */\n/* Controls field width based on expected content length */\n\n.input-container {\n display: block;\n}\n\n/* Narrow fields - for numbers, dates, times, short codes */\n.input-container.width-narrow {\n max-width: 200px;\n}\n\n.input-container.width-narrow .question-input,\n.input-container.width-narrow .question-dropdown {\n width: 100%;\n}\n\n/* Medium fields - for names, cities, phone numbers (DEFAULT) */\n.input-container.width-medium {\n max-width: 450px;\n}\n\n.input-container.width-medium .question-input,\n.input-container.width-medium .question-dropdown {\n width: 100%;\n}\n\n/* Wide fields - for emails, URLs, long text */\n.input-container.width-wide {\n max-width: 100%;\n}\n\n.input-container.width-wide .question-input,\n.input-container.width-wide .question-dropdown {\n width: 100%;\n}\n\n/* Full width - for textarea, search fields */\n.input-container.width-full {\n max-width: 100%;\n}\n\n.input-container.width-full .question-input,\n.input-container.width-full .question-textarea,\n.input-container.width-full .question-dropdown {\n width: 100%;\n}\n\n/* Auto-width - for dropdowns, radio, checkbox (sizes to content) */\n.input-container.width-auto {\n max-width: 350px;\n min-width: 150px;\n width: auto;\n}\n\n.input-container.width-auto .question-dropdown {\n width: 100%;\n}\n\n/* Responsive adjustments for smaller screens */\n@media (max-width: 600px) {\n .input-container.width-narrow,\n .input-container.width-medium,\n .input-container.width-wide,\n .input-container.width-auto {\n max-width: 100%;\n }\n}\n"] }]
615
632
  }], null, { question: [{
616
633
  type: Input
617
634
  }], control: [{
618
635
  type: Input
619
636
  }] }); })();
620
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FormQuestionComponent, { className: "FormQuestionComponent", filePath: "src/lib/components/message/form-question.component.ts", lineNumber: 21 }); })();
637
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FormQuestionComponent, { className: "FormQuestionComponent", filePath: "src/lib/components/message/form-question.component.ts", lineNumber: 22 }); })();
621
638
  //# sourceMappingURL=form-question.component.js.map