@mj-biz-apps/forms-ng 0.0.0 → 0.2.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 (446) hide show
  1. package/dist/lib/builder/builder-models.d.ts +27 -0
  2. package/dist/lib/builder/builder-models.d.ts.map +1 -0
  3. package/dist/lib/builder/builder-models.js +15 -0
  4. package/dist/lib/builder/builder-models.js.map +1 -0
  5. package/dist/lib/builder/builder-state.service.d.ts +48 -0
  6. package/dist/lib/builder/builder-state.service.d.ts.map +1 -0
  7. package/dist/lib/builder/builder-state.service.js +231 -0
  8. package/dist/lib/builder/builder-state.service.js.map +1 -0
  9. package/dist/lib/builder/builder-styles.d.ts +12 -0
  10. package/dist/lib/builder/builder-styles.d.ts.map +1 -0
  11. package/dist/lib/builder/builder-styles.js +74 -0
  12. package/dist/lib/builder/builder-styles.js.map +1 -0
  13. package/dist/lib/builder/conditional-rule-editor.component.d.ts +53 -0
  14. package/dist/lib/builder/conditional-rule-editor.component.d.ts.map +1 -0
  15. package/dist/lib/builder/conditional-rule-editor.component.js +282 -0
  16. package/dist/lib/builder/conditional-rule-editor.component.js.map +1 -0
  17. package/dist/lib/builder/design-panel.component.d.ts +71 -0
  18. package/dist/lib/builder/design-panel.component.d.ts.map +1 -0
  19. package/dist/lib/builder/design-panel.component.js +530 -0
  20. package/dist/lib/builder/design-panel.component.js.map +1 -0
  21. package/dist/lib/builder/design-panel.styles.d.ts +10 -0
  22. package/dist/lib/builder/design-panel.styles.d.ts.map +1 -0
  23. package/dist/lib/builder/design-panel.styles.js +78 -0
  24. package/dist/lib/builder/design-panel.styles.js.map +1 -0
  25. package/dist/lib/builder/design-state.service.d.ts +51 -0
  26. package/dist/lib/builder/design-state.service.d.ts.map +1 -0
  27. package/dist/lib/builder/design-state.service.js +108 -0
  28. package/dist/lib/builder/design-state.service.js.map +1 -0
  29. package/dist/lib/builder/distribution-links.d.ts +29 -0
  30. package/dist/lib/builder/distribution-links.d.ts.map +1 -0
  31. package/dist/lib/builder/distribution-links.js +53 -0
  32. package/dist/lib/builder/distribution-links.js.map +1 -0
  33. package/dist/lib/builder/distribution-manager.component.d.ts +53 -0
  34. package/dist/lib/builder/distribution-manager.component.d.ts.map +1 -0
  35. package/dist/lib/builder/distribution-manager.component.js +330 -0
  36. package/dist/lib/builder/distribution-manager.component.js.map +1 -0
  37. package/dist/lib/builder/distribution.service.d.ts +62 -0
  38. package/dist/lib/builder/distribution.service.d.ts.map +1 -0
  39. package/dist/lib/builder/distribution.service.js +140 -0
  40. package/dist/lib/builder/distribution.service.js.map +1 -0
  41. package/dist/lib/builder/entity-names.d.ts +20 -0
  42. package/dist/lib/builder/entity-names.d.ts.map +1 -0
  43. package/dist/lib/builder/entity-names.js +20 -0
  44. package/dist/lib/builder/entity-names.js.map +1 -0
  45. package/dist/lib/builder/form-builder.component.d.ts +92 -0
  46. package/dist/lib/builder/form-builder.component.d.ts.map +1 -0
  47. package/dist/lib/builder/form-builder.component.js +627 -0
  48. package/dist/lib/builder/form-builder.component.js.map +1 -0
  49. package/dist/lib/builder/form-builder.styles.d.ts +3 -0
  50. package/dist/lib/builder/form-builder.styles.d.ts.map +1 -0
  51. package/dist/lib/builder/form-builder.styles.js +94 -0
  52. package/dist/lib/builder/form-builder.styles.js.map +1 -0
  53. package/dist/lib/builder/form-preview-modal.component.d.ts +25 -0
  54. package/dist/lib/builder/form-preview-modal.component.d.ts.map +1 -0
  55. package/dist/lib/builder/form-preview-modal.component.js +90 -0
  56. package/dist/lib/builder/form-preview-modal.component.js.map +1 -0
  57. package/dist/lib/builder/index.d.ts +31 -0
  58. package/dist/lib/builder/index.d.ts.map +1 -0
  59. package/dist/lib/builder/index.js +32 -0
  60. package/dist/lib/builder/index.js.map +1 -0
  61. package/dist/lib/builder/json-fields.d.ts +14 -0
  62. package/dist/lib/builder/json-fields.d.ts.map +1 -0
  63. package/dist/lib/builder/json-fields.js +100 -0
  64. package/dist/lib/builder/json-fields.js.map +1 -0
  65. package/dist/lib/builder/publish.service.d.ts +34 -0
  66. package/dist/lib/builder/publish.service.d.ts.map +1 -0
  67. package/dist/lib/builder/publish.service.js +110 -0
  68. package/dist/lib/builder/publish.service.js.map +1 -0
  69. package/dist/lib/builder/qr-code.d.ts +26 -0
  70. package/dist/lib/builder/qr-code.d.ts.map +1 -0
  71. package/dist/lib/builder/qr-code.js +361 -0
  72. package/dist/lib/builder/qr-code.js.map +1 -0
  73. package/dist/lib/builder/question-editor.component.d.ts +41 -0
  74. package/dist/lib/builder/question-editor.component.d.ts.map +1 -0
  75. package/dist/lib/builder/question-editor.component.js +228 -0
  76. package/dist/lib/builder/question-editor.component.js.map +1 -0
  77. package/dist/lib/builder/question-type-catalog.d.ts +29 -0
  78. package/dist/lib/builder/question-type-catalog.d.ts.map +1 -0
  79. package/dist/lib/builder/question-type-catalog.js +43 -0
  80. package/dist/lib/builder/question-type-catalog.js.map +1 -0
  81. package/dist/lib/builder/reorder.d.ts +10 -0
  82. package/dist/lib/builder/reorder.d.ts.map +1 -0
  83. package/dist/lib/builder/reorder.js +18 -0
  84. package/dist/lib/builder/reorder.js.map +1 -0
  85. package/dist/lib/builder/snapshot-builder.d.ts +16 -0
  86. package/dist/lib/builder/snapshot-builder.d.ts.map +1 -0
  87. package/dist/lib/builder/snapshot-builder.js +93 -0
  88. package/dist/lib/builder/snapshot-builder.js.map +1 -0
  89. package/dist/lib/builder/style-tokens.d.ts +54 -0
  90. package/dist/lib/builder/style-tokens.d.ts.map +1 -0
  91. package/dist/lib/builder/style-tokens.js +71 -0
  92. package/dist/lib/builder/style-tokens.js.map +1 -0
  93. package/dist/lib/builder/validation-rule-editor.component.d.ts +27 -0
  94. package/dist/lib/builder/validation-rule-editor.component.d.ts.map +1 -0
  95. package/dist/lib/builder/validation-rule-editor.component.js +179 -0
  96. package/dist/lib/builder/validation-rule-editor.component.js.map +1 -0
  97. package/dist/lib/dashboard/components/distribution-chart.component.d.ts +14 -0
  98. package/dist/lib/dashboard/components/distribution-chart.component.d.ts.map +1 -0
  99. package/dist/lib/dashboard/components/distribution-chart.component.js +85 -0
  100. package/dist/lib/dashboard/components/distribution-chart.component.js.map +1 -0
  101. package/dist/lib/dashboard/components/funnel-chart.component.d.ts +14 -0
  102. package/dist/lib/dashboard/components/funnel-chart.component.d.ts.map +1 -0
  103. package/dist/lib/dashboard/components/funnel-chart.component.js +101 -0
  104. package/dist/lib/dashboard/components/funnel-chart.component.js.map +1 -0
  105. package/dist/lib/dashboard/components/question-breakdown.component.d.ts +16 -0
  106. package/dist/lib/dashboard/components/question-breakdown.component.d.ts.map +1 -0
  107. package/dist/lib/dashboard/components/question-breakdown.component.js +213 -0
  108. package/dist/lib/dashboard/components/question-breakdown.component.js.map +1 -0
  109. package/dist/lib/dashboard/components/response-detail.component.d.ts +11 -0
  110. package/dist/lib/dashboard/components/response-detail.component.d.ts.map +1 -0
  111. package/dist/lib/dashboard/components/response-detail.component.js +113 -0
  112. package/dist/lib/dashboard/components/response-detail.component.js.map +1 -0
  113. package/dist/lib/dashboard/components/response-list.component.d.ts +27 -0
  114. package/dist/lib/dashboard/components/response-list.component.d.ts.map +1 -0
  115. package/dist/lib/dashboard/components/response-list.component.js +196 -0
  116. package/dist/lib/dashboard/components/response-list.component.js.map +1 -0
  117. package/dist/lib/dashboard/components/summary-stats.component.d.ts +12 -0
  118. package/dist/lib/dashboard/components/summary-stats.component.d.ts.map +1 -0
  119. package/dist/lib/dashboard/components/summary-stats.component.js +112 -0
  120. package/dist/lib/dashboard/components/summary-stats.component.js.map +1 -0
  121. package/dist/lib/dashboard/forms-reporting-dashboard.component.d.ts +64 -0
  122. package/dist/lib/dashboard/forms-reporting-dashboard.component.d.ts.map +1 -0
  123. package/dist/lib/dashboard/forms-reporting-dashboard.component.js +397 -0
  124. package/dist/lib/dashboard/forms-reporting-dashboard.component.js.map +1 -0
  125. package/dist/lib/dashboard/index.d.ts +19 -0
  126. package/dist/lib/dashboard/index.d.ts.map +1 -0
  127. package/dist/lib/dashboard/index.js +19 -0
  128. package/dist/lib/dashboard/index.js.map +1 -0
  129. package/dist/lib/dashboard/models/reporting.model.d.ts +125 -0
  130. package/dist/lib/dashboard/models/reporting.model.d.ts.map +1 -0
  131. package/dist/lib/dashboard/models/reporting.model.js +2 -0
  132. package/dist/lib/dashboard/models/reporting.model.js.map +1 -0
  133. package/dist/lib/dashboard/services/forms-reporting-export.service.d.ts +21 -0
  134. package/dist/lib/dashboard/services/forms-reporting-export.service.d.ts.map +1 -0
  135. package/dist/lib/dashboard/services/forms-reporting-export.service.js +83 -0
  136. package/dist/lib/dashboard/services/forms-reporting-export.service.js.map +1 -0
  137. package/dist/lib/dashboard/services/forms-reporting-mock.d.ts +18 -0
  138. package/dist/lib/dashboard/services/forms-reporting-mock.d.ts.map +1 -0
  139. package/dist/lib/dashboard/services/forms-reporting-mock.js +147 -0
  140. package/dist/lib/dashboard/services/forms-reporting-mock.js.map +1 -0
  141. package/dist/lib/dashboard/services/forms-reporting.service.d.ts +45 -0
  142. package/dist/lib/dashboard/services/forms-reporting.service.d.ts.map +1 -0
  143. package/dist/lib/dashboard/services/forms-reporting.service.js +230 -0
  144. package/dist/lib/dashboard/services/forms-reporting.service.js.map +1 -0
  145. package/dist/lib/dashboard/services/reporting-aggregations.d.ts +40 -0
  146. package/dist/lib/dashboard/services/reporting-aggregations.d.ts.map +1 -0
  147. package/dist/lib/dashboard/services/reporting-aggregations.js +379 -0
  148. package/dist/lib/dashboard/services/reporting-aggregations.js.map +1 -0
  149. package/dist/lib/generated/Entities/mjBizAppsCommonAddress/mjbizappscommonaddress.form.component.d.ts +10 -0
  150. package/dist/lib/generated/Entities/mjBizAppsCommonAddress/mjbizappscommonaddress.form.component.d.ts.map +1 -0
  151. package/dist/lib/generated/Entities/mjBizAppsCommonAddress/mjbizappscommonaddress.form.component.js +104 -0
  152. package/dist/lib/generated/Entities/mjBizAppsCommonAddress/mjbizappscommonaddress.form.component.js.map +1 -0
  153. package/dist/lib/generated/Entities/mjBizAppsCommonAddressLink/mjbizappscommonaddresslink.form.component.d.ts +10 -0
  154. package/dist/lib/generated/Entities/mjBizAppsCommonAddressLink/mjbizappscommonaddresslink.form.component.d.ts.map +1 -0
  155. package/dist/lib/generated/Entities/mjBizAppsCommonAddressLink/mjbizappscommonaddresslink.form.component.js +83 -0
  156. package/dist/lib/generated/Entities/mjBizAppsCommonAddressLink/mjbizappscommonaddresslink.form.component.js.map +1 -0
  157. package/dist/lib/generated/Entities/mjBizAppsCommonAddressType/mjbizappscommonaddresstype.form.component.d.ts +10 -0
  158. package/dist/lib/generated/Entities/mjBizAppsCommonAddressType/mjbizappscommonaddresstype.form.component.d.ts.map +1 -0
  159. package/dist/lib/generated/Entities/mjBizAppsCommonAddressType/mjbizappscommonaddresstype.form.component.js +96 -0
  160. package/dist/lib/generated/Entities/mjBizAppsCommonAddressType/mjbizappscommonaddresstype.form.component.js.map +1 -0
  161. package/dist/lib/generated/Entities/mjBizAppsCommonContactMethod/mjbizappscommoncontactmethod.form.component.d.ts +10 -0
  162. package/dist/lib/generated/Entities/mjBizAppsCommonContactMethod/mjbizappscommoncontactmethod.form.component.d.ts.map +1 -0
  163. package/dist/lib/generated/Entities/mjBizAppsCommonContactMethod/mjbizappscommoncontactmethod.form.component.js +83 -0
  164. package/dist/lib/generated/Entities/mjBizAppsCommonContactMethod/mjbizappscommoncontactmethod.form.component.js.map +1 -0
  165. package/dist/lib/generated/Entities/mjBizAppsCommonContactType/mjbizappscommoncontacttype.form.component.d.ts +10 -0
  166. package/dist/lib/generated/Entities/mjBizAppsCommonContactType/mjbizappscommoncontacttype.form.component.d.ts.map +1 -0
  167. package/dist/lib/generated/Entities/mjBizAppsCommonContactType/mjbizappscommoncontacttype.form.component.js +96 -0
  168. package/dist/lib/generated/Entities/mjBizAppsCommonContactType/mjbizappscommoncontacttype.form.component.js.map +1 -0
  169. package/dist/lib/generated/Entities/mjBizAppsCommonOrganization/mjbizappscommonorganization.form.component.d.ts +10 -0
  170. package/dist/lib/generated/Entities/mjBizAppsCommonOrganization/mjbizappscommonorganization.form.component.d.ts.map +1 -0
  171. package/dist/lib/generated/Entities/mjBizAppsCommonOrganization/mjbizappscommonorganization.form.component.js +172 -0
  172. package/dist/lib/generated/Entities/mjBizAppsCommonOrganization/mjbizappscommonorganization.form.component.js.map +1 -0
  173. package/dist/lib/generated/Entities/mjBizAppsCommonOrganizationType/mjbizappscommonorganizationtype.form.component.d.ts +10 -0
  174. package/dist/lib/generated/Entities/mjBizAppsCommonOrganizationType/mjbizappscommonorganizationtype.form.component.d.ts.map +1 -0
  175. package/dist/lib/generated/Entities/mjBizAppsCommonOrganizationType/mjbizappscommonorganizationtype.form.component.js +90 -0
  176. package/dist/lib/generated/Entities/mjBizAppsCommonOrganizationType/mjbizappscommonorganizationtype.form.component.js.map +1 -0
  177. package/dist/lib/generated/Entities/mjBizAppsCommonPerson/mjbizappscommonperson.form.component.d.ts +10 -0
  178. package/dist/lib/generated/Entities/mjBizAppsCommonPerson/mjbizappscommonperson.form.component.d.ts.map +1 -0
  179. package/dist/lib/generated/Entities/mjBizAppsCommonPerson/mjbizappscommonperson.form.component.js +274 -0
  180. package/dist/lib/generated/Entities/mjBizAppsCommonPerson/mjbizappscommonperson.form.component.js.map +1 -0
  181. package/dist/lib/generated/Entities/mjBizAppsCommonRelationship/mjbizappscommonrelationship.form.component.d.ts +10 -0
  182. package/dist/lib/generated/Entities/mjBizAppsCommonRelationship/mjbizappscommonrelationship.form.component.d.ts.map +1 -0
  183. package/dist/lib/generated/Entities/mjBizAppsCommonRelationship/mjbizappscommonrelationship.form.component.js +91 -0
  184. package/dist/lib/generated/Entities/mjBizAppsCommonRelationship/mjbizappscommonrelationship.form.component.js.map +1 -0
  185. package/dist/lib/generated/Entities/mjBizAppsCommonRelationshipType/mjbizappscommonrelationshiptype.form.component.d.ts +10 -0
  186. package/dist/lib/generated/Entities/mjBizAppsCommonRelationshipType/mjbizappscommonrelationshiptype.form.component.d.ts.map +1 -0
  187. package/dist/lib/generated/Entities/mjBizAppsCommonRelationshipType/mjbizappscommonrelationshiptype.form.component.js +100 -0
  188. package/dist/lib/generated/Entities/mjBizAppsCommonRelationshipType/mjbizappscommonrelationshiptype.form.component.js.map +1 -0
  189. package/dist/lib/generated/Entities/mjBizAppsFormsForm/mjbizappsformsform.form.component.d.ts +10 -0
  190. package/dist/lib/generated/Entities/mjBizAppsFormsForm/mjbizappsformsform.form.component.d.ts.map +1 -0
  191. package/dist/lib/generated/Entities/mjBizAppsFormsForm/mjbizappsformsform.form.component.js +174 -0
  192. package/dist/lib/generated/Entities/mjBizAppsFormsForm/mjbizappsformsform.form.component.js.map +1 -0
  193. package/dist/lib/generated/Entities/mjBizAppsFormsFormCategory/mjbizappsformsformcategory.form.component.d.ts +10 -0
  194. package/dist/lib/generated/Entities/mjBizAppsFormsFormCategory/mjbizappsformsformcategory.form.component.d.ts.map +1 -0
  195. package/dist/lib/generated/Entities/mjBizAppsFormsFormCategory/mjbizappsformsformcategory.form.component.js +118 -0
  196. package/dist/lib/generated/Entities/mjBizAppsFormsFormCategory/mjbizappsformsformcategory.form.component.js.map +1 -0
  197. package/dist/lib/generated/Entities/mjBizAppsFormsFormDistribution/mjbizappsformsformdistribution.form.component.d.ts +10 -0
  198. package/dist/lib/generated/Entities/mjBizAppsFormsFormDistribution/mjbizappsformsformdistribution.form.component.d.ts.map +1 -0
  199. package/dist/lib/generated/Entities/mjBizAppsFormsFormDistribution/mjbizappsformsformdistribution.form.component.js +93 -0
  200. package/dist/lib/generated/Entities/mjBizAppsFormsFormDistribution/mjbizappsformsformdistribution.form.component.js.map +1 -0
  201. package/dist/lib/generated/Entities/mjBizAppsFormsFormPage/mjbizappsformsformpage.form.component.d.ts +10 -0
  202. package/dist/lib/generated/Entities/mjBizAppsFormsFormPage/mjbizappsformsformpage.form.component.d.ts.map +1 -0
  203. package/dist/lib/generated/Entities/mjBizAppsFormsFormPage/mjbizappsformsformpage.form.component.js +96 -0
  204. package/dist/lib/generated/Entities/mjBizAppsFormsFormPage/mjbizappsformsformpage.form.component.js.map +1 -0
  205. package/dist/lib/generated/Entities/mjBizAppsFormsFormQuestion/mjbizappsformsformquestion.form.component.d.ts +10 -0
  206. package/dist/lib/generated/Entities/mjBizAppsFormsFormQuestion/mjbizappsformsformquestion.form.component.d.ts.map +1 -0
  207. package/dist/lib/generated/Entities/mjBizAppsFormsFormQuestion/mjbizappsformsformquestion.form.component.js +132 -0
  208. package/dist/lib/generated/Entities/mjBizAppsFormsFormQuestion/mjbizappsformsformquestion.form.component.js.map +1 -0
  209. package/dist/lib/generated/Entities/mjBizAppsFormsFormQuestionOption/mjbizappsformsformquestionoption.form.component.d.ts +10 -0
  210. package/dist/lib/generated/Entities/mjBizAppsFormsFormQuestionOption/mjbizappsformsformquestionoption.form.component.d.ts.map +1 -0
  211. package/dist/lib/generated/Entities/mjBizAppsFormsFormQuestionOption/mjbizappsformsformquestionoption.form.component.js +77 -0
  212. package/dist/lib/generated/Entities/mjBizAppsFormsFormQuestionOption/mjbizappsformsformquestionoption.form.component.js.map +1 -0
  213. package/dist/lib/generated/Entities/mjBizAppsFormsFormResponse/mjbizappsformsformresponse.form.component.d.ts +10 -0
  214. package/dist/lib/generated/Entities/mjBizAppsFormsFormResponse/mjbizappsformsformresponse.form.component.d.ts.map +1 -0
  215. package/dist/lib/generated/Entities/mjBizAppsFormsFormResponse/mjbizappsformsformresponse.form.component.js +108 -0
  216. package/dist/lib/generated/Entities/mjBizAppsFormsFormResponse/mjbizappsformsformresponse.form.component.js.map +1 -0
  217. package/dist/lib/generated/Entities/mjBizAppsFormsFormResponseAnswer/mjbizappsformsformresponseanswer.form.component.d.ts +10 -0
  218. package/dist/lib/generated/Entities/mjBizAppsFormsFormResponseAnswer/mjbizappsformsformresponseanswer.form.component.d.ts.map +1 -0
  219. package/dist/lib/generated/Entities/mjBizAppsFormsFormResponseAnswer/mjbizappsformsformresponseanswer.form.component.js +99 -0
  220. package/dist/lib/generated/Entities/mjBizAppsFormsFormResponseAnswer/mjbizappsformsformresponseanswer.form.component.js.map +1 -0
  221. package/dist/lib/generated/Entities/mjBizAppsFormsFormStyle/mjbizappsformsformstyle.form.component.d.ts +10 -0
  222. package/dist/lib/generated/Entities/mjBizAppsFormsFormStyle/mjbizappsformsformstyle.form.component.d.ts.map +1 -0
  223. package/dist/lib/generated/Entities/mjBizAppsFormsFormStyle/mjbizappsformsformstyle.form.component.js +100 -0
  224. package/dist/lib/generated/Entities/mjBizAppsFormsFormStyle/mjbizappsformsformstyle.form.component.js.map +1 -0
  225. package/dist/lib/generated/Entities/mjBizAppsFormsFormVersion/mjbizappsformsformversion.form.component.d.ts +10 -0
  226. package/dist/lib/generated/Entities/mjBizAppsFormsFormVersion/mjbizappsformsformversion.form.component.d.ts.map +1 -0
  227. package/dist/lib/generated/Entities/mjBizAppsFormsFormVersion/mjbizappsformsformversion.form.component.js +96 -0
  228. package/dist/lib/generated/Entities/mjBizAppsFormsFormVersion/mjbizappsformsformversion.form.component.js.map +1 -0
  229. package/dist/lib/generated/Entities/mjBizAppsTasksTask/mjbizappstaskstask.form.component.d.ts +10 -0
  230. package/dist/lib/generated/Entities/mjBizAppsTasksTask/mjbizappstaskstask.form.component.d.ts.map +1 -0
  231. package/dist/lib/generated/Entities/mjBizAppsTasksTask/mjbizappstaskstask.form.component.js +274 -0
  232. package/dist/lib/generated/Entities/mjBizAppsTasksTask/mjbizappstaskstask.form.component.js.map +1 -0
  233. package/dist/lib/generated/Entities/mjBizAppsTasksTaskActivity/mjbizappstaskstaskactivity.form.component.d.ts +10 -0
  234. package/dist/lib/generated/Entities/mjBizAppsTasksTaskActivity/mjbizappstaskstaskactivity.form.component.d.ts.map +1 -0
  235. package/dist/lib/generated/Entities/mjBizAppsTasksTaskActivity/mjbizappstaskstaskactivity.form.component.js +67 -0
  236. package/dist/lib/generated/Entities/mjBizAppsTasksTaskActivity/mjbizappstaskstaskactivity.form.component.js.map +1 -0
  237. package/dist/lib/generated/Entities/mjBizAppsTasksTaskAssignment/mjbizappstaskstaskassignment.form.component.d.ts +10 -0
  238. package/dist/lib/generated/Entities/mjBizAppsTasksTaskAssignment/mjbizappstaskstaskassignment.form.component.d.ts.map +1 -0
  239. package/dist/lib/generated/Entities/mjBizAppsTasksTaskAssignment/mjbizappstaskstaskassignment.form.component.js +90 -0
  240. package/dist/lib/generated/Entities/mjBizAppsTasksTaskAssignment/mjbizappstaskstaskassignment.form.component.js.map +1 -0
  241. package/dist/lib/generated/Entities/mjBizAppsTasksTaskCategory/mjbizappstaskstaskcategory.form.component.d.ts +10 -0
  242. package/dist/lib/generated/Entities/mjBizAppsTasksTaskCategory/mjbizappstaskstaskcategory.form.component.d.ts.map +1 -0
  243. package/dist/lib/generated/Entities/mjBizAppsTasksTaskCategory/mjbizappstaskstaskcategory.form.component.js +124 -0
  244. package/dist/lib/generated/Entities/mjBizAppsTasksTaskCategory/mjbizappstaskstaskcategory.form.component.js.map +1 -0
  245. package/dist/lib/generated/Entities/mjBizAppsTasksTaskComment/mjbizappstaskstaskcomment.form.component.d.ts +10 -0
  246. package/dist/lib/generated/Entities/mjBizAppsTasksTaskComment/mjbizappstaskstaskcomment.form.component.d.ts.map +1 -0
  247. package/dist/lib/generated/Entities/mjBizAppsTasksTaskComment/mjbizappstaskstaskcomment.form.component.js +86 -0
  248. package/dist/lib/generated/Entities/mjBizAppsTasksTaskComment/mjbizappstaskstaskcomment.form.component.js.map +1 -0
  249. package/dist/lib/generated/Entities/mjBizAppsTasksTaskDecision/mjbizappstaskstaskdecision.form.component.d.ts +10 -0
  250. package/dist/lib/generated/Entities/mjBizAppsTasksTaskDecision/mjbizappstaskstaskdecision.form.component.d.ts.map +1 -0
  251. package/dist/lib/generated/Entities/mjBizAppsTasksTaskDecision/mjbizappstaskstaskdecision.form.component.js +67 -0
  252. package/dist/lib/generated/Entities/mjBizAppsTasksTaskDecision/mjbizappstaskstaskdecision.form.component.js.map +1 -0
  253. package/dist/lib/generated/Entities/mjBizAppsTasksTaskDecisionOutcome/mjbizappstaskstaskdecisionoutcome.form.component.d.ts +10 -0
  254. package/dist/lib/generated/Entities/mjBizAppsTasksTaskDecisionOutcome/mjbizappstaskstaskdecisionoutcome.form.component.d.ts.map +1 -0
  255. package/dist/lib/generated/Entities/mjBizAppsTasksTaskDecisionOutcome/mjbizappstaskstaskdecisionoutcome.form.component.js +86 -0
  256. package/dist/lib/generated/Entities/mjBizAppsTasksTaskDecisionOutcome/mjbizappstaskstaskdecisionoutcome.form.component.js.map +1 -0
  257. package/dist/lib/generated/Entities/mjBizAppsTasksTaskDependency/mjbizappstaskstaskdependency.form.component.d.ts +10 -0
  258. package/dist/lib/generated/Entities/mjBizAppsTasksTaskDependency/mjbizappstaskstaskdependency.form.component.d.ts.map +1 -0
  259. package/dist/lib/generated/Entities/mjBizAppsTasksTaskDependency/mjbizappstaskstaskdependency.form.component.js +61 -0
  260. package/dist/lib/generated/Entities/mjBizAppsTasksTaskDependency/mjbizappstaskstaskdependency.form.component.js.map +1 -0
  261. package/dist/lib/generated/Entities/mjBizAppsTasksTaskLink/mjbizappstaskstasklink.form.component.d.ts +10 -0
  262. package/dist/lib/generated/Entities/mjBizAppsTasksTaskLink/mjbizappstaskstasklink.form.component.d.ts.map +1 -0
  263. package/dist/lib/generated/Entities/mjBizAppsTasksTaskLink/mjbizappstaskstasklink.form.component.js +63 -0
  264. package/dist/lib/generated/Entities/mjBizAppsTasksTaskLink/mjbizappstaskstasklink.form.component.js.map +1 -0
  265. package/dist/lib/generated/Entities/mjBizAppsTasksTaskNotificationConfig/mjbizappstaskstasknotificationconfig.form.component.d.ts +10 -0
  266. package/dist/lib/generated/Entities/mjBizAppsTasksTaskNotificationConfig/mjbizappstaskstasknotificationconfig.form.component.d.ts.map +1 -0
  267. package/dist/lib/generated/Entities/mjBizAppsTasksTaskNotificationConfig/mjbizappstaskstasknotificationconfig.form.component.js +69 -0
  268. package/dist/lib/generated/Entities/mjBizAppsTasksTaskNotificationConfig/mjbizappstaskstasknotificationconfig.form.component.js.map +1 -0
  269. package/dist/lib/generated/Entities/mjBizAppsTasksTaskNotificationLog/mjbizappstaskstasknotificationlog.form.component.d.ts +10 -0
  270. package/dist/lib/generated/Entities/mjBizAppsTasksTaskNotificationLog/mjbizappstaskstasknotificationlog.form.component.d.ts.map +1 -0
  271. package/dist/lib/generated/Entities/mjBizAppsTasksTaskNotificationLog/mjbizappstaskstasknotificationlog.form.component.js +63 -0
  272. package/dist/lib/generated/Entities/mjBizAppsTasksTaskNotificationLog/mjbizappstaskstasknotificationlog.form.component.js.map +1 -0
  273. package/dist/lib/generated/Entities/mjBizAppsTasksTaskRole/mjbizappstaskstaskrole.form.component.d.ts +10 -0
  274. package/dist/lib/generated/Entities/mjBizAppsTasksTaskRole/mjbizappstaskstaskrole.form.component.d.ts.map +1 -0
  275. package/dist/lib/generated/Entities/mjBizAppsTasksTaskRole/mjbizappstaskstaskrole.form.component.js +98 -0
  276. package/dist/lib/generated/Entities/mjBizAppsTasksTaskRole/mjbizappstaskstaskrole.form.component.js.map +1 -0
  277. package/dist/lib/generated/Entities/mjBizAppsTasksTaskTag/mjbizappstaskstasktag.form.component.d.ts +10 -0
  278. package/dist/lib/generated/Entities/mjBizAppsTasksTaskTag/mjbizappstaskstasktag.form.component.d.ts.map +1 -0
  279. package/dist/lib/generated/Entities/mjBizAppsTasksTaskTag/mjbizappstaskstasktag.form.component.js +80 -0
  280. package/dist/lib/generated/Entities/mjBizAppsTasksTaskTag/mjbizappstaskstasktag.form.component.js.map +1 -0
  281. package/dist/lib/generated/Entities/mjBizAppsTasksTaskTagLink/mjbizappstaskstasktaglink.form.component.d.ts +10 -0
  282. package/dist/lib/generated/Entities/mjBizAppsTasksTaskTagLink/mjbizappstaskstasktaglink.form.component.d.ts.map +1 -0
  283. package/dist/lib/generated/Entities/mjBizAppsTasksTaskTagLink/mjbizappstaskstasktaglink.form.component.js +59 -0
  284. package/dist/lib/generated/Entities/mjBizAppsTasksTaskTagLink/mjbizappstaskstasktaglink.form.component.js.map +1 -0
  285. package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplate/mjbizappstaskstasktemplate.form.component.d.ts +10 -0
  286. package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplate/mjbizappstaskstasktemplate.form.component.d.ts.map +1 -0
  287. package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplate/mjbizappstaskstasktemplate.form.component.js +84 -0
  288. package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplate/mjbizappstaskstasktemplate.form.component.js.map +1 -0
  289. package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplateItem/mjbizappstaskstasktemplateitem.form.component.d.ts +10 -0
  290. package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplateItem/mjbizappstaskstasktemplateitem.form.component.d.ts.map +1 -0
  291. package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplateItem/mjbizappstaskstasktemplateitem.form.component.js +146 -0
  292. package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplateItem/mjbizappstaskstasktemplateitem.form.component.js.map +1 -0
  293. package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplateItemDependency/mjbizappstaskstasktemplateitemdependency.form.component.d.ts +10 -0
  294. package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplateItemDependency/mjbizappstaskstasktemplateitemdependency.form.component.d.ts.map +1 -0
  295. package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplateItemDependency/mjbizappstaskstasktemplateitemdependency.form.component.js +61 -0
  296. package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplateItemDependency/mjbizappstaskstasktemplateitemdependency.form.component.js.map +1 -0
  297. package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplateItemRole/mjbizappstaskstasktemplateitemrole.form.component.d.ts +10 -0
  298. package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplateItemRole/mjbizappstaskstasktemplateitemrole.form.component.d.ts.map +1 -0
  299. package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplateItemRole/mjbizappstaskstasktemplateitemrole.form.component.js +59 -0
  300. package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplateItemRole/mjbizappstaskstasktemplateitemrole.form.component.js.map +1 -0
  301. package/dist/lib/generated/Entities/mjBizAppsTasksTaskType/mjbizappstaskstasktype.form.component.d.ts +10 -0
  302. package/dist/lib/generated/Entities/mjBizAppsTasksTaskType/mjbizappstaskstasktype.form.component.d.ts.map +1 -0
  303. package/dist/lib/generated/Entities/mjBizAppsTasksTaskType/mjbizappstaskstasktype.form.component.js +132 -0
  304. package/dist/lib/generated/Entities/mjBizAppsTasksTaskType/mjbizappstaskstasktype.form.component.js.map +1 -0
  305. package/dist/lib/generated/class-registrations-manifest.d.ts +6 -0
  306. package/dist/lib/generated/class-registrations-manifest.d.ts.map +1 -0
  307. package/dist/lib/generated/class-registrations-manifest.js +6 -0
  308. package/dist/lib/generated/class-registrations-manifest.js.map +1 -0
  309. package/dist/lib/generated/generated-forms.module.d.ts +61 -0
  310. package/dist/lib/generated/generated-forms.module.d.ts.map +1 -0
  311. package/dist/lib/generated/generated-forms.module.js +207 -0
  312. package/dist/lib/generated/generated-forms.module.js.map +1 -0
  313. package/dist/lib/home/forms-home-dashboard.component.d.ts +61 -0
  314. package/dist/lib/home/forms-home-dashboard.component.d.ts.map +1 -0
  315. package/dist/lib/home/forms-home-dashboard.component.js +379 -0
  316. package/dist/lib/home/forms-home-dashboard.component.js.map +1 -0
  317. package/dist/lib/home/forms-home.service.d.ts +24 -0
  318. package/dist/lib/home/forms-home.service.d.ts.map +1 -0
  319. package/dist/lib/home/forms-home.service.js +92 -0
  320. package/dist/lib/home/forms-home.service.js.map +1 -0
  321. package/dist/lib/home/home-aggregations.d.ts +23 -0
  322. package/dist/lib/home/home-aggregations.d.ts.map +1 -0
  323. package/dist/lib/home/home-aggregations.js +64 -0
  324. package/dist/lib/home/home-aggregations.js.map +1 -0
  325. package/dist/lib/home/home-models.d.ts +60 -0
  326. package/dist/lib/home/home-models.d.ts.map +1 -0
  327. package/dist/lib/home/home-models.js +34 -0
  328. package/dist/lib/home/home-models.js.map +1 -0
  329. package/dist/lib/home/index.d.ts +13 -0
  330. package/dist/lib/home/index.d.ts.map +1 -0
  331. package/dist/lib/home/index.js +13 -0
  332. package/dist/lib/home/index.js.map +1 -0
  333. package/dist/lib/widget/api/form-upload.service.d.ts +41 -0
  334. package/dist/lib/widget/api/form-upload.service.d.ts.map +1 -0
  335. package/dist/lib/widget/api/form-upload.service.js +124 -0
  336. package/dist/lib/widget/api/form-upload.service.js.map +1 -0
  337. package/dist/lib/widget/api/forms-api.config.d.ts +55 -0
  338. package/dist/lib/widget/api/forms-api.config.d.ts.map +1 -0
  339. package/dist/lib/widget/api/forms-api.config.js +40 -0
  340. package/dist/lib/widget/api/forms-api.config.js.map +1 -0
  341. package/dist/lib/widget/api/forms-api.graphql.service.d.ts +20 -0
  342. package/dist/lib/widget/api/forms-api.graphql.service.d.ts.map +1 -0
  343. package/dist/lib/widget/api/forms-api.graphql.service.js +96 -0
  344. package/dist/lib/widget/api/forms-api.graphql.service.js.map +1 -0
  345. package/dist/lib/widget/api/forms-api.interface.d.ts +45 -0
  346. package/dist/lib/widget/api/forms-api.interface.d.ts.map +1 -0
  347. package/dist/lib/widget/api/forms-api.interface.js +8 -0
  348. package/dist/lib/widget/api/forms-api.interface.js.map +1 -0
  349. package/dist/lib/widget/api/forms-api.mock.service.d.ts +12 -0
  350. package/dist/lib/widget/api/forms-api.mock.service.d.ts.map +1 -0
  351. package/dist/lib/widget/api/forms-api.mock.service.js +41 -0
  352. package/dist/lib/widget/api/forms-api.mock.service.js.map +1 -0
  353. package/dist/lib/widget/api/mock-form.data.d.ts +8 -0
  354. package/dist/lib/widget/api/mock-form.data.d.ts.map +1 -0
  355. package/dist/lib/widget/api/mock-form.data.js +192 -0
  356. package/dist/lib/widget/api/mock-form.data.js.map +1 -0
  357. package/dist/lib/widget/api/submission-mapping.d.ts +60 -0
  358. package/dist/lib/widget/api/submission-mapping.d.ts.map +1 -0
  359. package/dist/lib/widget/api/submission-mapping.js +47 -0
  360. package/dist/lib/widget/api/submission-mapping.js.map +1 -0
  361. package/dist/lib/widget/components/form-one-question.component.d.ts +43 -0
  362. package/dist/lib/widget/components/form-one-question.component.d.ts.map +1 -0
  363. package/dist/lib/widget/components/form-one-question.component.js +194 -0
  364. package/dist/lib/widget/components/form-one-question.component.js.map +1 -0
  365. package/dist/lib/widget/components/form-progress.component.d.ts +9 -0
  366. package/dist/lib/widget/components/form-progress.component.d.ts.map +1 -0
  367. package/dist/lib/widget/components/form-progress.component.js +47 -0
  368. package/dist/lib/widget/components/form-progress.component.js.map +1 -0
  369. package/dist/lib/widget/components/form-scroll.component.d.ts +23 -0
  370. package/dist/lib/widget/components/form-scroll.component.d.ts.map +1 -0
  371. package/dist/lib/widget/components/form-scroll.component.js +132 -0
  372. package/dist/lib/widget/components/form-scroll.component.js.map +1 -0
  373. package/dist/lib/widget/components/questions/form-question.component.d.ts +68 -0
  374. package/dist/lib/widget/components/questions/form-question.component.d.ts.map +1 -0
  375. package/dist/lib/widget/components/questions/form-question.component.js +541 -0
  376. package/dist/lib/widget/components/questions/form-question.component.js.map +1 -0
  377. package/dist/lib/widget/components/questions/input-mode.d.ts +13 -0
  378. package/dist/lib/widget/components/questions/input-mode.d.ts.map +1 -0
  379. package/dist/lib/widget/components/questions/input-mode.js +42 -0
  380. package/dist/lib/widget/components/questions/input-mode.js.map +1 -0
  381. package/dist/lib/widget/components/turnstile-challenge.component.d.ts +52 -0
  382. package/dist/lib/widget/components/turnstile-challenge.component.d.ts.map +1 -0
  383. package/dist/lib/widget/components/turnstile-challenge.component.js +123 -0
  384. package/dist/lib/widget/components/turnstile-challenge.component.js.map +1 -0
  385. package/dist/lib/widget/core/answer-value.d.ts +17 -0
  386. package/dist/lib/widget/core/answer-value.d.ts.map +1 -0
  387. package/dist/lib/widget/core/answer-value.js +41 -0
  388. package/dist/lib/widget/core/answer-value.js.map +1 -0
  389. package/dist/lib/widget/core/autosave-controller.d.ts +65 -0
  390. package/dist/lib/widget/core/autosave-controller.d.ts.map +1 -0
  391. package/dist/lib/widget/core/autosave-controller.js +134 -0
  392. package/dist/lib/widget/core/autosave-controller.js.map +1 -0
  393. package/dist/lib/widget/core/client-id.d.ts +17 -0
  394. package/dist/lib/widget/core/client-id.d.ts.map +1 -0
  395. package/dist/lib/widget/core/client-id.js +52 -0
  396. package/dist/lib/widget/core/client-id.js.map +1 -0
  397. package/dist/lib/widget/core/form-runtime.d.ts +34 -0
  398. package/dist/lib/widget/core/form-runtime.d.ts.map +1 -0
  399. package/dist/lib/widget/core/form-runtime.js +123 -0
  400. package/dist/lib/widget/core/form-runtime.js.map +1 -0
  401. package/dist/lib/widget/core/one-question-stepper.d.ts +20 -0
  402. package/dist/lib/widget/core/one-question-stepper.d.ts.map +1 -0
  403. package/dist/lib/widget/core/one-question-stepper.js +23 -0
  404. package/dist/lib/widget/core/one-question-stepper.js.map +1 -0
  405. package/dist/lib/widget/core/submit-phase.d.ts +31 -0
  406. package/dist/lib/widget/core/submit-phase.d.ts.map +1 -0
  407. package/dist/lib/widget/core/submit-phase.js +21 -0
  408. package/dist/lib/widget/core/submit-phase.js.map +1 -0
  409. package/dist/lib/widget/core/theming.d.ts +17 -0
  410. package/dist/lib/widget/core/theming.d.ts.map +1 -0
  411. package/dist/lib/widget/core/theming.js +36 -0
  412. package/dist/lib/widget/core/theming.js.map +1 -0
  413. package/dist/lib/widget/core/turnstile-gate.d.ts +42 -0
  414. package/dist/lib/widget/core/turnstile-gate.d.ts.map +1 -0
  415. package/dist/lib/widget/core/turnstile-gate.js +61 -0
  416. package/dist/lib/widget/core/turnstile-gate.js.map +1 -0
  417. package/dist/lib/widget/core/turnstile-loader.d.ts +34 -0
  418. package/dist/lib/widget/core/turnstile-loader.d.ts.map +1 -0
  419. package/dist/lib/widget/core/turnstile-loader.js +68 -0
  420. package/dist/lib/widget/core/turnstile-loader.js.map +1 -0
  421. package/dist/lib/widget/core/validation.d.ts +19 -0
  422. package/dist/lib/widget/core/validation.d.ts.map +1 -0
  423. package/dist/lib/widget/core/validation.js +105 -0
  424. package/dist/lib/widget/core/validation.js.map +1 -0
  425. package/dist/lib/widget/index.d.ts +27 -0
  426. package/dist/lib/widget/index.d.ts.map +1 -0
  427. package/dist/lib/widget/index.js +30 -0
  428. package/dist/lib/widget/index.js.map +1 -0
  429. package/dist/lib/widget/mj-form.component.d.ts +114 -0
  430. package/dist/lib/widget/mj-form.component.d.ts.map +1 -0
  431. package/dist/lib/widget/mj-form.component.js +428 -0
  432. package/dist/lib/widget/mj-form.component.js.map +1 -0
  433. package/dist/lib/widget/register-element.d.ts +8 -0
  434. package/dist/lib/widget/register-element.d.ts.map +1 -0
  435. package/dist/lib/widget/register-element.js +98 -0
  436. package/dist/lib/widget/register-element.js.map +1 -0
  437. package/dist/public-api.d.ts +23 -0
  438. package/dist/public-api.d.ts.map +1 -0
  439. package/dist/public-api.js +33 -0
  440. package/dist/public-api.js.map +1 -0
  441. package/dist/widget-entry.d.ts +2 -0
  442. package/dist/widget-entry.d.ts.map +1 -0
  443. package/dist/widget-entry.js +20 -0
  444. package/dist/widget-entry.js.map +1 -0
  445. package/package.json +53 -5
  446. package/README.md +0 -3
@@ -0,0 +1,213 @@
1
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
+ import { FormsDistributionChartComponent } from './distribution-chart.component';
3
+ import * as i0 from "@angular/core";
4
+ function FormsQuestionBreakdownComponent_Case_6_Template(rf, ctx) { if (rf & 1) {
5
+ i0.ɵɵelement(0, "mj-forms-distribution-chart", 4);
6
+ } if (rf & 2) {
7
+ const ctx_r0 = i0.ɵɵnextContext();
8
+ i0.ɵɵproperty("buckets", ctx_r0.breakdown.buckets);
9
+ } }
10
+ function FormsQuestionBreakdownComponent_Case_7_Template(rf, ctx) { if (rf & 1) {
11
+ i0.ɵɵelement(0, "mj-forms-distribution-chart", 4);
12
+ } if (rf & 2) {
13
+ const ctx_r0 = i0.ɵɵnextContext();
14
+ i0.ɵɵproperty("buckets", ctx_r0.breakdown.buckets);
15
+ } }
16
+ function FormsQuestionBreakdownComponent_Case_8_Conditional_0_Conditional_1_Conditional_5_Template(rf, ctx) { if (rf & 1) {
17
+ i0.ɵɵelementStart(0, "span", 10);
18
+ i0.ɵɵtext(1);
19
+ i0.ɵɵelementEnd();
20
+ } if (rf & 2) {
21
+ const seg_r2 = ctx;
22
+ i0.ɵɵadvance();
23
+ i0.ɵɵtextInterpolate3(" ", seg_r2.promoters, " promoters \u00B7 ", seg_r2.passives, " passives \u00B7 ", seg_r2.detractors, " detractors ");
24
+ } }
25
+ function FormsQuestionBreakdownComponent_Case_8_Conditional_0_Conditional_1_Template(rf, ctx) { if (rf & 1) {
26
+ i0.ɵɵelementStart(0, "div", 6)(1, "span", 8);
27
+ i0.ɵɵtext(2);
28
+ i0.ɵɵelementEnd();
29
+ i0.ɵɵelementStart(3, "span", 9);
30
+ i0.ɵɵtext(4, "NPS");
31
+ i0.ɵɵelementEnd();
32
+ i0.ɵɵconditionalCreate(5, FormsQuestionBreakdownComponent_Case_8_Conditional_0_Conditional_1_Conditional_5_Template, 2, 3, "span", 10);
33
+ i0.ɵɵelementEnd();
34
+ } if (rf & 2) {
35
+ let tmp_5_0;
36
+ const n_r3 = i0.ɵɵnextContext();
37
+ i0.ɵɵadvance(2);
38
+ i0.ɵɵtextInterpolate(n_r3.npsScore);
39
+ i0.ɵɵadvance(3);
40
+ i0.ɵɵconditional((tmp_5_0 = n_r3.npsSegments) ? 5 : -1, tmp_5_0);
41
+ } }
42
+ function FormsQuestionBreakdownComponent_Case_8_Conditional_0_Template(rf, ctx) { if (rf & 1) {
43
+ i0.ɵɵelementStart(0, "div", 5);
44
+ i0.ɵɵconditionalCreate(1, FormsQuestionBreakdownComponent_Case_8_Conditional_0_Conditional_1_Template, 6, 2, "div", 6);
45
+ i0.ɵɵelementStart(2, "dl", 7)(3, "div")(4, "dt");
46
+ i0.ɵɵtext(5, "Average");
47
+ i0.ɵɵelementEnd();
48
+ i0.ɵɵelementStart(6, "dd");
49
+ i0.ɵɵtext(7);
50
+ i0.ɵɵelementEnd()();
51
+ i0.ɵɵelementStart(8, "div")(9, "dt");
52
+ i0.ɵɵtext(10, "Min");
53
+ i0.ɵɵelementEnd();
54
+ i0.ɵɵelementStart(11, "dd");
55
+ i0.ɵɵtext(12);
56
+ i0.ɵɵelementEnd()();
57
+ i0.ɵɵelementStart(13, "div")(14, "dt");
58
+ i0.ɵɵtext(15, "Max");
59
+ i0.ɵɵelementEnd();
60
+ i0.ɵɵelementStart(16, "dd");
61
+ i0.ɵɵtext(17);
62
+ i0.ɵɵelementEnd()();
63
+ i0.ɵɵelementStart(18, "div")(19, "dt");
64
+ i0.ɵɵtext(20, "Answered");
65
+ i0.ɵɵelementEnd();
66
+ i0.ɵɵelementStart(21, "dd");
67
+ i0.ɵɵtext(22);
68
+ i0.ɵɵelementEnd()()()();
69
+ } if (rf & 2) {
70
+ const n_r3 = ctx;
71
+ const ctx_r0 = i0.ɵɵnextContext(2);
72
+ i0.ɵɵadvance();
73
+ i0.ɵɵconditional(n_r3.npsScore !== null ? 1 : -1);
74
+ i0.ɵɵadvance(6);
75
+ i0.ɵɵtextInterpolate(ctx_r0.fmt(n_r3.average));
76
+ i0.ɵɵadvance(5);
77
+ i0.ɵɵtextInterpolate(ctx_r0.fmt(n_r3.min));
78
+ i0.ɵɵadvance(5);
79
+ i0.ɵɵtextInterpolate(ctx_r0.fmt(n_r3.max));
80
+ i0.ɵɵadvance(5);
81
+ i0.ɵɵtextInterpolate(n_r3.answered);
82
+ } }
83
+ function FormsQuestionBreakdownComponent_Case_8_Template(rf, ctx) { if (rf & 1) {
84
+ i0.ɵɵconditionalCreate(0, FormsQuestionBreakdownComponent_Case_8_Conditional_0_Template, 23, 5, "div", 5);
85
+ } if (rf & 2) {
86
+ let tmp_1_0;
87
+ const ctx_r0 = i0.ɵɵnextContext();
88
+ i0.ɵɵconditional((tmp_1_0 = ctx_r0.breakdown.numeric) ? 0 : -1, tmp_1_0);
89
+ } }
90
+ function FormsQuestionBreakdownComponent_Case_9_Conditional_0_Template(rf, ctx) { if (rf & 1) {
91
+ i0.ɵɵelementStart(0, "p", 11);
92
+ i0.ɵɵtext(1, "No answers yet.");
93
+ i0.ɵɵelementEnd();
94
+ } }
95
+ function FormsQuestionBreakdownComponent_Case_9_Conditional_1_For_2_Template(rf, ctx) { if (rf & 1) {
96
+ i0.ɵɵelementStart(0, "li");
97
+ i0.ɵɵtext(1);
98
+ i0.ɵɵelementEnd();
99
+ } if (rf & 2) {
100
+ const t_r4 = ctx.$implicit;
101
+ i0.ɵɵadvance();
102
+ i0.ɵɵtextInterpolate(t_r4);
103
+ } }
104
+ function FormsQuestionBreakdownComponent_Case_9_Conditional_1_Template(rf, ctx) { if (rf & 1) {
105
+ i0.ɵɵelementStart(0, "ul", 12);
106
+ i0.ɵɵrepeaterCreate(1, FormsQuestionBreakdownComponent_Case_9_Conditional_1_For_2_Template, 2, 1, "li", null, i0.ɵɵrepeaterTrackByIndex);
107
+ i0.ɵɵelementEnd();
108
+ } if (rf & 2) {
109
+ const ctx_r0 = i0.ɵɵnextContext(2);
110
+ i0.ɵɵadvance();
111
+ i0.ɵɵrepeater(ctx_r0.breakdown.textAnswers);
112
+ } }
113
+ function FormsQuestionBreakdownComponent_Case_9_Template(rf, ctx) { if (rf & 1) {
114
+ i0.ɵɵconditionalCreate(0, FormsQuestionBreakdownComponent_Case_9_Conditional_0_Template, 2, 0, "p", 11)(1, FormsQuestionBreakdownComponent_Case_9_Conditional_1_Template, 3, 0, "ul", 12);
115
+ } if (rf & 2) {
116
+ const ctx_r0 = i0.ɵɵnextContext();
117
+ i0.ɵɵconditional(ctx_r0.breakdown.textAnswers.length === 0 ? 0 : 1);
118
+ } }
119
+ /**
120
+ * Renders one question's breakdown card, switching by kind:
121
+ * - distribution/boolean → bar chart
122
+ * - numeric → aggregates (with NPS score + segments when applicable)
123
+ * - freeText → verbatim list
124
+ */
125
+ export class FormsQuestionBreakdownComponent {
126
+ breakdown;
127
+ get typeLabel() {
128
+ return this.breakdown.type;
129
+ }
130
+ fmt(value) {
131
+ if (value === null)
132
+ return '—';
133
+ return Number.isInteger(value) ? String(value) : value.toFixed(2);
134
+ }
135
+ static ɵfac = function FormsQuestionBreakdownComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || FormsQuestionBreakdownComponent)(); };
136
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FormsQuestionBreakdownComponent, selectors: [["mj-forms-question-breakdown"]], inputs: { breakdown: "breakdown" }, decls: 10, vars: 4, consts: [[1, "card"], [1, "card-head"], [1, "prompt"], [1, "meta"], [3, "buckets"], [1, "numeric"], [1, "nps"], [1, "agg"], [1, "nps-score"], [1, "nps-label"], [1, "nps-seg"], [1, "empty"], [1, "text-list"]], template: function FormsQuestionBreakdownComponent_Template(rf, ctx) { if (rf & 1) {
137
+ i0.ɵɵelementStart(0, "article", 0)(1, "header", 1)(2, "h3", 2);
138
+ i0.ɵɵtext(3);
139
+ i0.ɵɵelementEnd();
140
+ i0.ɵɵelementStart(4, "span", 3);
141
+ i0.ɵɵtext(5);
142
+ i0.ɵɵelementEnd()();
143
+ i0.ɵɵconditionalCreate(6, FormsQuestionBreakdownComponent_Case_6_Template, 1, 1, "mj-forms-distribution-chart", 4)(7, FormsQuestionBreakdownComponent_Case_7_Template, 1, 1, "mj-forms-distribution-chart", 4)(8, FormsQuestionBreakdownComponent_Case_8_Template, 1, 1)(9, FormsQuestionBreakdownComponent_Case_9_Template, 2, 1);
144
+ i0.ɵɵelementEnd();
145
+ } if (rf & 2) {
146
+ let tmp_2_0;
147
+ i0.ɵɵadvance(3);
148
+ i0.ɵɵtextInterpolate(ctx.breakdown.prompt);
149
+ i0.ɵɵadvance(2);
150
+ i0.ɵɵtextInterpolate2("", ctx.typeLabel, " \u00B7 ", ctx.breakdown.answeredCount, " answered");
151
+ i0.ɵɵadvance();
152
+ i0.ɵɵconditional((tmp_2_0 = ctx.breakdown.kind) === "distribution" ? 6 : tmp_2_0 === "boolean" ? 7 : tmp_2_0 === "numeric" ? 8 : tmp_2_0 === "freeText" ? 9 : -1);
153
+ } }, dependencies: [FormsDistributionChartComponent], styles: [".card[_ngcontent-%COMP%] {\n padding: var(--mj-space-4);\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-subtle);\n border-radius: var(--mj-radius-lg);\n box-shadow: var(--mj-shadow-sm);\n }\n .card-head[_ngcontent-%COMP%] {\n margin-bottom: var(--mj-space-3);\n }\n .prompt[_ngcontent-%COMP%] {\n margin: 0 0 var(--mj-space-1);\n font-size: 15px;\n font-weight: 600;\n color: var(--mj-text-primary);\n }\n .meta[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n }\n .empty[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-style: italic;\n margin: 0;\n }\n .nps[_ngcontent-%COMP%] {\n display: flex;\n align-items: baseline;\n gap: var(--mj-space-2);\n flex-wrap: wrap;\n margin-bottom: var(--mj-space-3);\n }\n .nps-score[_ngcontent-%COMP%] {\n font-size: 28px;\n font-weight: 700;\n color: var(--mj-brand-primary);\n font-variant-numeric: tabular-nums;\n }\n .nps-label[_ngcontent-%COMP%] {\n font-size: 12px;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: var(--mj-text-secondary);\n }\n .nps-seg[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n }\n .agg[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(90px, 1fr));\n gap: var(--mj-space-2);\n margin: 0;\n }\n .agg[_ngcontent-%COMP%] div[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-sm);\n padding: var(--mj-space-2);\n }\n .agg[_ngcontent-%COMP%] dt[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n }\n .agg[_ngcontent-%COMP%] dd[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n font-variant-numeric: tabular-nums;\n }\n .text-list[_ngcontent-%COMP%] {\n list-style: none;\n margin: 0;\n padding: 0;\n max-height: 240px;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-1-5);\n }\n .text-list[_ngcontent-%COMP%] li[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--mj-text-primary);\n padding: var(--mj-space-2);\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-sm);\n }"], changeDetection: 0 });
154
+ }
155
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FormsQuestionBreakdownComponent, [{
156
+ type: Component,
157
+ args: [{ selector: 'mj-forms-question-breakdown', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [FormsDistributionChartComponent], template: `
158
+ <article class="card">
159
+ <header class="card-head">
160
+ <h3 class="prompt">{{ breakdown.prompt }}</h3>
161
+ <span class="meta">{{ typeLabel }} · {{ breakdown.answeredCount }} answered</span>
162
+ </header>
163
+
164
+ @switch (breakdown.kind) {
165
+ @case ('distribution') {
166
+ <mj-forms-distribution-chart [buckets]="breakdown.buckets"></mj-forms-distribution-chart>
167
+ }
168
+ @case ('boolean') {
169
+ <mj-forms-distribution-chart [buckets]="breakdown.buckets"></mj-forms-distribution-chart>
170
+ }
171
+ @case ('numeric') {
172
+ @if (breakdown.numeric; as n) {
173
+ <div class="numeric">
174
+ @if (n.npsScore !== null) {
175
+ <div class="nps">
176
+ <span class="nps-score">{{ n.npsScore }}</span>
177
+ <span class="nps-label">NPS</span>
178
+ @if (n.npsSegments; as seg) {
179
+ <span class="nps-seg">
180
+ {{ seg.promoters }} promoters · {{ seg.passives }} passives · {{ seg.detractors }} detractors
181
+ </span>
182
+ }
183
+ </div>
184
+ }
185
+ <dl class="agg">
186
+ <div><dt>Average</dt><dd>{{ fmt(n.average) }}</dd></div>
187
+ <div><dt>Min</dt><dd>{{ fmt(n.min) }}</dd></div>
188
+ <div><dt>Max</dt><dd>{{ fmt(n.max) }}</dd></div>
189
+ <div><dt>Answered</dt><dd>{{ n.answered }}</dd></div>
190
+ </dl>
191
+ </div>
192
+ }
193
+ }
194
+ @case ('freeText') {
195
+ @if (breakdown.textAnswers.length === 0) {
196
+ <p class="empty">No answers yet.</p>
197
+ } @else {
198
+ <ul class="text-list">
199
+ @for (t of breakdown.textAnswers; track $index) {
200
+ <li>{{ t }}</li>
201
+ }
202
+ </ul>
203
+ }
204
+ }
205
+ }
206
+ </article>
207
+ `, styles: ["\n .card {\n padding: var(--mj-space-4);\n background: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-subtle);\n border-radius: var(--mj-radius-lg);\n box-shadow: var(--mj-shadow-sm);\n }\n .card-head {\n margin-bottom: var(--mj-space-3);\n }\n .prompt {\n margin: 0 0 var(--mj-space-1);\n font-size: 15px;\n font-weight: 600;\n color: var(--mj-text-primary);\n }\n .meta {\n font-size: 12px;\n color: var(--mj-text-muted);\n }\n .empty {\n color: var(--mj-text-muted);\n font-style: italic;\n margin: 0;\n }\n .nps {\n display: flex;\n align-items: baseline;\n gap: var(--mj-space-2);\n flex-wrap: wrap;\n margin-bottom: var(--mj-space-3);\n }\n .nps-score {\n font-size: 28px;\n font-weight: 700;\n color: var(--mj-brand-primary);\n font-variant-numeric: tabular-nums;\n }\n .nps-label {\n font-size: 12px;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: var(--mj-text-secondary);\n }\n .nps-seg {\n font-size: 12px;\n color: var(--mj-text-muted);\n }\n .agg {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(90px, 1fr));\n gap: var(--mj-space-2);\n margin: 0;\n }\n .agg div {\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-sm);\n padding: var(--mj-space-2);\n }\n .agg dt {\n font-size: 11px;\n color: var(--mj-text-muted);\n text-transform: uppercase;\n }\n .agg dd {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n font-variant-numeric: tabular-nums;\n }\n .text-list {\n list-style: none;\n margin: 0;\n padding: 0;\n max-height: 240px;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-1-5);\n }\n .text-list li {\n font-size: 13px;\n color: var(--mj-text-primary);\n padding: var(--mj-space-2);\n background: var(--mj-bg-surface-sunken);\n border-radius: var(--mj-radius-sm);\n }\n "] }]
208
+ }], null, { breakdown: [{
209
+ type: Input,
210
+ args: [{ required: true }]
211
+ }] }); })();
212
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FormsQuestionBreakdownComponent, { className: "FormsQuestionBreakdownComponent", filePath: "lib/dashboard/components/question-breakdown.component.ts", lineNumber: 160 }); })();
213
+ //# sourceMappingURL=question-breakdown.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"question-breakdown.component.js","sourceRoot":"","sources":["../../../../src/lib/dashboard/components/question-breakdown.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAE1E,OAAO,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;;;IAsBvE,iDAAyF;;;IAA5D,kDAA6B;;;IAG1D,iDAAyF;;;IAA5D,kDAA6B;;;IAUhD,gCAAsB;IACpB,YACF;IAAA,iBAAO;;;IADL,cACF;IADE,2IACF;;;IALF,AADF,8BAAiB,cACS;IAAA,YAAgB;IAAA,iBAAO;IAC/C,+BAAwB;IAAA,mBAAG;IAAA,iBAAO;IAClC,sIAA6B;IAK/B,iBAAM;;;;IAPoB,eAAgB;IAAhB,mCAAgB;IAExC,eAIC;IAJD,gEAIC;;;IATP,8BAAqB;IACnB,sHAA2B;IAYpB,AAAL,AADF,6BAAgB,UACT,SAAI;IAAA,uBAAO;IAAA,iBAAK;IAAA,0BAAI;IAAA,YAAoB;IAAK,AAAL,iBAAK,EAAM;IACnD,AAAL,2BAAK,SAAI;IAAA,oBAAG;IAAA,iBAAK;IAAA,2BAAI;IAAA,aAAgB;IAAK,AAAL,iBAAK,EAAM;IAC3C,AAAL,4BAAK,UAAI;IAAA,oBAAG;IAAA,iBAAK;IAAA,2BAAI;IAAA,aAAgB;IAAK,AAAL,iBAAK,EAAM;IAC3C,AAAL,4BAAK,UAAI;IAAA,yBAAQ;IAAA,iBAAK;IAAA,2BAAI;IAAA,aAAgB;IAE9C,AADE,AADiD,AAAL,iBAAK,EAAM,EAClD,EACD;;;;IAjBJ,cAUC;IAVD,iDAUC;IAE0B,eAAoB;IAApB,8CAAoB;IACxB,eAAgB;IAAhB,0CAAgB;IAChB,eAAgB;IAAhB,0CAAgB;IACX,eAAgB;IAAhB,mCAAgB;;;IAjBhD,yGAA+B;;;;IAA/B,wEAoBC;;;IAIC,6BAAiB;IAAA,+BAAe;IAAA,iBAAI;;;IAIhC,0BAAI;IAAA,YAAO;IAAA,iBAAK;;;IAAZ,cAAO;IAAP,0BAAO;;;IAFf,8BAAsB;IACpB,wIAEC;IACH,iBAAK;;;IAHH,cAEC;IAFD,2CAEC;;;IAJH,AAFF,uGAA0C,kFAEjC;;;IAFT,mEAQC;;AAzDX;;;;;GAKG;AAsJH,MAAM,OAAO,+BAA+B;IACf,SAAS,CAAqB;IAEzD,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC7B,CAAC;IAEM,GAAG,CAAC,KAAoB;QAC7B,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,GAAG,CAAC;QAC/B,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACpE,CAAC;yHAVU,+BAA+B;6DAA/B,+BAA+B;YA7IpC,AADF,AADF,kCAAsB,gBACM,YACL;YAAA,YAAsB;YAAA,iBAAK;YAC9C,+BAAmB;YAAA,YAAwD;YAC7E,AAD6E,iBAAO,EAC3E;YAgCP,AAvBA,AAHA,AAHA,kHAAwB,4FAGL,0DAGA,0DAuBC;YAYxB,iBAAU;;;YA9Ca,eAAsB;YAAtB,0CAAsB;YACtB,eAAwD;YAAxD,8FAAwD;YAG7E,cAyCC;YAzCD,oDAAA,cAAc,mBAAd,SAAS,mBAAT,SAAS,mBAAT,UAAU,UAyCT;4BAjDK,+BAA+B;;iFAiJ9B,+BAA+B;cArJ3C,SAAS;2BACE,6BAA6B,cAC3B,IAAI,mBACC,uBAAuB,CAAC,MAAM,WACtC,CAAC,+BAA+B,CAAC,YAChC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDT;;kBA+FA,KAAK;mBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;kFADd,+BAA+B"}
@@ -0,0 +1,11 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import type { ResponseDetail } from '../models/reporting.model';
3
+ import * as i0 from "@angular/core";
4
+ /** Single-response detail: each answer labelled by its question from the snapshot. */
5
+ export declare class FormsResponseDetailComponent {
6
+ detail: ResponseDetail;
7
+ back: EventEmitter<void>;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<FormsResponseDetailComponent, never>;
9
+ static ɵcmp: i0.ɵɵComponentDeclaration<FormsResponseDetailComponent, "mj-forms-response-detail", never, { "detail": { "alias": "detail"; "required": true; }; }, { "back": "back"; }, never, never, true, never>;
10
+ }
11
+ //# sourceMappingURL=response-detail.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-detail.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/dashboard/components/response-detail.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,YAAY,EAAiB,MAAM,eAAe,CAAC;AAChG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;;AAEhE,sFAAsF;AACtF,qBAqGa,4BAA4B;IACZ,MAAM,EAAG,cAAc,CAAC;IACzC,IAAI,qBAA4B;yCAF/B,4BAA4B;2CAA5B,4BAA4B;CAGxC"}
@@ -0,0 +1,113 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ const _forTrack0 = ($index, $item) => $item.questionId;
4
+ function FormsResponseDetailComponent_Conditional_10_Template(rf, ctx) { if (rf & 1) {
5
+ i0.ɵɵdomElementStart(0, "span", 7);
6
+ i0.ɵɵtext(1);
7
+ i0.ɵɵdomElementEnd();
8
+ } if (rf & 2) {
9
+ const ctx_r0 = i0.ɵɵnextContext();
10
+ i0.ɵɵadvance();
11
+ i0.ɵɵtextInterpolate1("Submitted ", ctx_r0.detail.submittedAt.toLocaleString());
12
+ } }
13
+ function FormsResponseDetailComponent_Conditional_11_Template(rf, ctx) { if (rf & 1) {
14
+ i0.ɵɵdomElementStart(0, "p", 8);
15
+ i0.ɵɵtext(1, "This response has no answers.");
16
+ i0.ɵɵdomElementEnd();
17
+ } }
18
+ function FormsResponseDetailComponent_Conditional_12_For_2_Template(rf, ctx) { if (rf & 1) {
19
+ i0.ɵɵdomElementStart(0, "div", 10)(1, "dt");
20
+ i0.ɵɵtext(2);
21
+ i0.ɵɵdomElementEnd();
22
+ i0.ɵɵdomElementStart(3, "dd");
23
+ i0.ɵɵtext(4);
24
+ i0.ɵɵdomElementEnd()();
25
+ } if (rf & 2) {
26
+ const a_r2 = ctx.$implicit;
27
+ i0.ɵɵadvance(2);
28
+ i0.ɵɵtextInterpolate(a_r2.prompt);
29
+ i0.ɵɵadvance(2);
30
+ i0.ɵɵtextInterpolate(a_r2.displayValue || "\u2014");
31
+ } }
32
+ function FormsResponseDetailComponent_Conditional_12_Template(rf, ctx) { if (rf & 1) {
33
+ i0.ɵɵdomElementStart(0, "dl", 9);
34
+ i0.ɵɵrepeaterCreate(1, FormsResponseDetailComponent_Conditional_12_For_2_Template, 5, 2, "div", 10, _forTrack0);
35
+ i0.ɵɵdomElementEnd();
36
+ } if (rf & 2) {
37
+ const ctx_r0 = i0.ɵɵnextContext();
38
+ i0.ɵɵadvance();
39
+ i0.ɵɵrepeater(ctx_r0.detail.answers);
40
+ } }
41
+ /** Single-response detail: each answer labelled by its question from the snapshot. */
42
+ export class FormsResponseDetailComponent {
43
+ detail;
44
+ back = new EventEmitter();
45
+ static ɵfac = function FormsResponseDetailComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || FormsResponseDetailComponent)(); };
46
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FormsResponseDetailComponent, selectors: [["mj-forms-response-detail"]], inputs: { detail: "detail" }, outputs: { back: "back" }, decls: 13, vars: 6, consts: [[1, "detail"], [1, "detail-head"], ["type", "button", 1, "back", 3, "click"], [1, "fa-solid", "fa-arrow-left"], [1, "meta"], [1, "status"], [1, "respondent"], [1, "ts"], [1, "empty"], [1, "answers"], [1, "answer"]], template: function FormsResponseDetailComponent_Template(rf, ctx) { if (rf & 1) {
47
+ i0.ɵɵdomElementStart(0, "div", 0)(1, "header", 1)(2, "button", 2);
48
+ i0.ɵɵdomListener("click", function FormsResponseDetailComponent_Template_button_click_2_listener() { return ctx.back.emit(); });
49
+ i0.ɵɵdomElement(3, "i", 3);
50
+ i0.ɵɵtext(4, " Back to responses ");
51
+ i0.ɵɵdomElementEnd();
52
+ i0.ɵɵdomElementStart(5, "div", 4)(6, "span", 5);
53
+ i0.ɵɵtext(7);
54
+ i0.ɵɵdomElementEnd();
55
+ i0.ɵɵdomElementStart(8, "span", 6);
56
+ i0.ɵɵtext(9);
57
+ i0.ɵɵdomElementEnd();
58
+ i0.ɵɵconditionalCreate(10, FormsResponseDetailComponent_Conditional_10_Template, 2, 1, "span", 7);
59
+ i0.ɵɵdomElementEnd()();
60
+ i0.ɵɵconditionalCreate(11, FormsResponseDetailComponent_Conditional_11_Template, 2, 0, "p", 8)(12, FormsResponseDetailComponent_Conditional_12_Template, 3, 0, "dl", 9);
61
+ i0.ɵɵdomElementEnd();
62
+ } if (rf & 2) {
63
+ i0.ɵɵadvance(6);
64
+ i0.ɵɵclassProp("status--complete", ctx.detail.status === "Complete");
65
+ i0.ɵɵadvance();
66
+ i0.ɵɵtextInterpolate(ctx.detail.status);
67
+ i0.ɵɵadvance(2);
68
+ i0.ɵɵtextInterpolate(ctx.detail.respondent);
69
+ i0.ɵɵadvance();
70
+ i0.ɵɵconditional(ctx.detail.submittedAt ? 10 : -1);
71
+ i0.ɵɵadvance();
72
+ i0.ɵɵconditional(ctx.detail.answers.length === 0 ? 11 : 12);
73
+ } }, styles: [".detail-head[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-2);\n margin-bottom: var(--mj-space-4);\n }\n .back[_ngcontent-%COMP%] {\n align-self: flex-start;\n background: none;\n border: none;\n color: var(--mj-brand-primary);\n cursor: pointer;\n font-size: 13px;\n padding: 0;\n }\n .meta[_ngcontent-%COMP%] {\n display: flex;\n gap: var(--mj-space-2);\n align-items: center;\n flex-wrap: wrap;\n }\n .respondent[_ngcontent-%COMP%] {\n font-weight: 600;\n color: var(--mj-text-primary);\n }\n .ts[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-muted);\n }\n .status[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 2px var(--mj-space-2);\n border-radius: var(--mj-radius-full);\n font-size: 11px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n }\n .status--complete[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n color: var(--mj-text-inverse);\n }\n .empty[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-style: italic;\n }\n .answers[_ngcontent-%COMP%] {\n margin: 0;\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-3);\n }\n .answer[_ngcontent-%COMP%] dt[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: var(--mj-space-1);\n }\n .answer[_ngcontent-%COMP%] dd[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n color: var(--mj-text-primary);\n white-space: pre-wrap;\n }"], changeDetection: 0 });
74
+ }
75
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FormsResponseDetailComponent, [{
76
+ type: Component,
77
+ args: [{ selector: 'mj-forms-response-detail', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
78
+ <div class="detail">
79
+ <header class="detail-head">
80
+ <button type="button" class="back" (click)="back.emit()">
81
+ <i class="fa-solid fa-arrow-left"></i> Back to responses
82
+ </button>
83
+ <div class="meta">
84
+ <span class="status" [class.status--complete]="detail.status === 'Complete'">{{ detail.status }}</span>
85
+ <span class="respondent">{{ detail.respondent }}</span>
86
+ @if (detail.submittedAt) {
87
+ <span class="ts">Submitted {{ detail.submittedAt.toLocaleString() }}</span>
88
+ }
89
+ </div>
90
+ </header>
91
+
92
+ @if (detail.answers.length === 0) {
93
+ <p class="empty">This response has no answers.</p>
94
+ } @else {
95
+ <dl class="answers">
96
+ @for (a of detail.answers; track a.questionId) {
97
+ <div class="answer">
98
+ <dt>{{ a.prompt }}</dt>
99
+ <dd>{{ a.displayValue || '—' }}</dd>
100
+ </div>
101
+ }
102
+ </dl>
103
+ }
104
+ </div>
105
+ `, styles: ["\n .detail-head {\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-2);\n margin-bottom: var(--mj-space-4);\n }\n .back {\n align-self: flex-start;\n background: none;\n border: none;\n color: var(--mj-brand-primary);\n cursor: pointer;\n font-size: 13px;\n padding: 0;\n }\n .meta {\n display: flex;\n gap: var(--mj-space-2);\n align-items: center;\n flex-wrap: wrap;\n }\n .respondent {\n font-weight: 600;\n color: var(--mj-text-primary);\n }\n .ts {\n font-size: 12px;\n color: var(--mj-text-muted);\n }\n .status {\n display: inline-block;\n padding: 2px var(--mj-space-2);\n border-radius: var(--mj-radius-full);\n font-size: 11px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n }\n .status--complete {\n background: var(--mj-status-success);\n color: var(--mj-text-inverse);\n }\n .empty {\n color: var(--mj-text-muted);\n font-style: italic;\n }\n .answers {\n margin: 0;\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-3);\n }\n .answer dt {\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n margin-bottom: var(--mj-space-1);\n }\n .answer dd {\n margin: 0;\n font-size: 14px;\n color: var(--mj-text-primary);\n white-space: pre-wrap;\n }\n "] }]
106
+ }], null, { detail: [{
107
+ type: Input,
108
+ args: [{ required: true }]
109
+ }], back: [{
110
+ type: Output
111
+ }] }); })();
112
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FormsResponseDetailComponent, { className: "FormsResponseDetailComponent", filePath: "lib/dashboard/components/response-detail.component.ts", lineNumber: 106 }); })();
113
+ //# sourceMappingURL=response-detail.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-detail.component.js","sourceRoot":"","sources":["../../../../src/lib/dashboard/components/response-detail.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;;;;IAkBpF,kCAAiB;IAAA,YAAmD;IAAA,oBAAO;;;IAA1D,cAAmD;IAAnD,+EAAmD;;;IAMxE,+BAAiB;IAAA,6CAA6B;IAAA,oBAAI;;;IAK5C,AADF,kCAAoB,SACd;IAAA,YAAc;IAAA,oBAAK;IACvB,6BAAI;IAAA,YAA2B;IACjC,AADiC,oBAAK,EAChC;;;IAFA,eAAc;IAAd,iCAAc;IACd,eAA2B;IAA3B,mDAA2B;;;IAJrC,gCAAoB;IAClB,+GAKC;IACH,oBAAK;;;IANH,cAKC;IALD,oCAKC;;AA7BX,sFAAsF;AAsGtF,MAAM,OAAO,4BAA4B;IACZ,MAAM,CAAkB;IACzC,IAAI,GAAG,IAAI,YAAY,EAAQ,CAAC;sHAF/B,4BAA4B;6DAA5B,4BAA4B;YA9FjC,AADF,AADF,iCAAoB,gBACU,gBAC+B;YAAtB,4GAAS,eAAW,IAAC;YACtD,0BAAsC;YAAC,mCACzC;YAAA,oBAAS;YAEP,AADF,iCAAkB,cAC6D;YAAA,YAAmB;YAAA,oBAAO;YACvG,kCAAyB;YAAA,YAAuB;YAAA,oBAAO;YACvD,iGAA0B;YAI9B,AADE,oBAAM,EACC;YAIP,AAFF,8FAAmC,yEAE1B;YAUX,oBAAM;;YApBqB,eAAuD;YAAvD,oEAAuD;YAAC,cAAmB;YAAnB,uCAAmB;YACvE,eAAuB;YAAvB,2CAAuB;YAChD,cAEC;YAFD,kDAEC;YAIL,cAWC;YAXD,2DAWC;;;iFAuEM,4BAA4B;cArGxC,SAAS;2BACE,0BAA0B,cACxB,IAAI,mBACC,uBAAuB,CAAC,MAAM,YACrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BT;;kBAsEA,KAAK;mBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;kBACxB,MAAM;;kFAFI,4BAA4B"}
@@ -0,0 +1,27 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import type { ResponseListRow } from '../models/reporting.model';
3
+ import * as i0 from "@angular/core";
4
+ /** Status filter values for the response list. */
5
+ type StatusFilter = 'all' | 'Complete' | 'Partial';
6
+ /**
7
+ * Individual-response list with text search + status filter (simple cross-tab).
8
+ * A semantic, token-styled table — clicking a row emits the response id so the
9
+ * dashboard can open the detail view. Horizontal scroll is contained.
10
+ */
11
+ export declare class FormsResponseListComponent {
12
+ open: EventEmitter<string>;
13
+ readonly search: import("@angular/core").WritableSignal<string>;
14
+ readonly statusFilter: import("@angular/core").WritableSignal<StatusFilter>;
15
+ readonly statusFilters: {
16
+ value: StatusFilter;
17
+ label: string;
18
+ }[];
19
+ private readonly _rows;
20
+ set rows(value: ResponseListRow[]);
21
+ readonly filtered: import("@angular/core").Signal<ResponseListRow[]>;
22
+ submittedLabel(r: ResponseListRow): string;
23
+ static ɵfac: i0.ɵɵFactoryDeclaration<FormsResponseListComponent, never>;
24
+ static ɵcmp: i0.ɵɵComponentDeclaration<FormsResponseListComponent, "mj-forms-response-list", never, { "rows": { "alias": "rows"; "required": true; }; }, { "open": "open"; }, never, never, true, never>;
25
+ }
26
+ export {};
27
+ //# sourceMappingURL=response-list.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-list.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/dashboard/components/response-list.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,YAAY,EAAmC,MAAM,eAAe,CAAC;AAElH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;;AAEjE,kDAAkD;AAClD,KAAK,YAAY,GAAG,KAAK,GAAG,UAAU,GAAG,SAAS,CAAC;AAEnD;;;;GAIG;AACH,qBA2Ja,0BAA0B;IAC3B,IAAI,uBAA8B;IAE5C,SAAgB,MAAM,iDAAc;IACpC,SAAgB,YAAY,uDAA+B;IAE3D,SAAgB,aAAa,EAAE;QAAE,KAAK,EAAE,YAAY,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAIrE;IAEF,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiC;IACvD,IACI,IAAI,CAAC,KAAK,EAAE,eAAe,EAAE,EAEhC;IAED,SAAgB,QAAQ,oDAQrB;IAEI,cAAc,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM;yCA5BtC,0BAA0B;2CAA1B,0BAA0B;CA+BtC"}
@@ -0,0 +1,196 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, computed, signal } from '@angular/core';
2
+ import { FormsModule } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/forms";
5
+ const _forTrack0 = ($index, $item) => $item.value;
6
+ const _forTrack1 = ($index, $item) => $item.responseId;
7
+ function FormsResponseListComponent_For_4_Template(rf, ctx) { if (rf & 1) {
8
+ const _r1 = i0.ɵɵgetCurrentView();
9
+ i0.ɵɵelementStart(0, "button", 6);
10
+ i0.ɵɵlistener("click", function FormsResponseListComponent_For_4_Template_button_click_0_listener() { const f_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.statusFilter.set(f_r2.value)); });
11
+ i0.ɵɵtext(1);
12
+ i0.ɵɵelementEnd();
13
+ } if (rf & 2) {
14
+ const f_r2 = ctx.$implicit;
15
+ const ctx_r2 = i0.ɵɵnextContext();
16
+ i0.ɵɵclassProp("chip--active", ctx_r2.statusFilter() === f_r2.value);
17
+ i0.ɵɵadvance();
18
+ i0.ɵɵtextInterpolate1(" ", f_r2.label, " ");
19
+ } }
20
+ function FormsResponseListComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
21
+ i0.ɵɵelementStart(0, "p", 4);
22
+ i0.ɵɵtext(1, "No responses match.");
23
+ i0.ɵɵelementEnd();
24
+ } }
25
+ function FormsResponseListComponent_Conditional_6_For_15_Template(rf, ctx) { if (rf & 1) {
26
+ const _r4 = i0.ɵɵgetCurrentView();
27
+ i0.ɵɵelementStart(0, "tr", 9);
28
+ i0.ɵɵlistener("click", function FormsResponseListComponent_Conditional_6_For_15_Template_tr_click_0_listener() { const r_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.open.emit(r_r5.responseId)); })("keydown.enter", function FormsResponseListComponent_Conditional_6_For_15_Template_tr_keydown_enter_0_listener() { const r_r5 = i0.ɵɵrestoreView(_r4).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.open.emit(r_r5.responseId)); });
29
+ i0.ɵɵelementStart(1, "td")(2, "span", 10);
30
+ i0.ɵɵtext(3);
31
+ i0.ɵɵelementEnd()();
32
+ i0.ɵɵelementStart(4, "td");
33
+ i0.ɵɵtext(5);
34
+ i0.ɵɵelementEnd();
35
+ i0.ɵɵelementStart(6, "td", 11);
36
+ i0.ɵɵtext(7);
37
+ i0.ɵɵelementEnd();
38
+ i0.ɵɵelementStart(8, "td");
39
+ i0.ɵɵtext(9);
40
+ i0.ɵɵelementEnd();
41
+ i0.ɵɵelementStart(10, "td", 12);
42
+ i0.ɵɵelement(11, "i", 13);
43
+ i0.ɵɵelementEnd()();
44
+ } if (rf & 2) {
45
+ const r_r5 = ctx.$implicit;
46
+ const ctx_r2 = i0.ɵɵnextContext(2);
47
+ i0.ɵɵadvance(2);
48
+ i0.ɵɵclassProp("status--complete", r_r5.status === "Complete");
49
+ i0.ɵɵadvance();
50
+ i0.ɵɵtextInterpolate1(" ", r_r5.status, " ");
51
+ i0.ɵɵadvance(2);
52
+ i0.ɵɵtextInterpolate(r_r5.respondent);
53
+ i0.ɵɵadvance(2);
54
+ i0.ɵɵtextInterpolate(r_r5.answeredCount);
55
+ i0.ɵɵadvance(2);
56
+ i0.ɵɵtextInterpolate(ctx_r2.submittedLabel(r_r5));
57
+ } }
58
+ function FormsResponseListComponent_Conditional_6_Template(rf, ctx) { if (rf & 1) {
59
+ i0.ɵɵelementStart(0, "div", 5)(1, "table", 7)(2, "thead")(3, "tr")(4, "th");
60
+ i0.ɵɵtext(5, "Status");
61
+ i0.ɵɵelementEnd();
62
+ i0.ɵɵelementStart(6, "th");
63
+ i0.ɵɵtext(7, "Respondent");
64
+ i0.ɵɵelementEnd();
65
+ i0.ɵɵelementStart(8, "th");
66
+ i0.ɵɵtext(9, "Answered");
67
+ i0.ɵɵelementEnd();
68
+ i0.ɵɵelementStart(10, "th");
69
+ i0.ɵɵtext(11, "Submitted");
70
+ i0.ɵɵelementEnd();
71
+ i0.ɵɵelement(12, "th");
72
+ i0.ɵɵelementEnd()();
73
+ i0.ɵɵelementStart(13, "tbody");
74
+ i0.ɵɵrepeaterCreate(14, FormsResponseListComponent_Conditional_6_For_15_Template, 12, 6, "tr", 8, _forTrack1);
75
+ i0.ɵɵelementEnd()()();
76
+ } if (rf & 2) {
77
+ const ctx_r2 = i0.ɵɵnextContext();
78
+ i0.ɵɵadvance(14);
79
+ i0.ɵɵrepeater(ctx_r2.filtered());
80
+ } }
81
+ /**
82
+ * Individual-response list with text search + status filter (simple cross-tab).
83
+ * A semantic, token-styled table — clicking a row emits the response id so the
84
+ * dashboard can open the detail view. Horizontal scroll is contained.
85
+ */
86
+ export class FormsResponseListComponent {
87
+ open = new EventEmitter();
88
+ search = signal('', ...(ngDevMode ? [{ debugName: "search" }] : []));
89
+ statusFilter = signal('all', ...(ngDevMode ? [{ debugName: "statusFilter" }] : []));
90
+ statusFilters = [
91
+ { value: 'all', label: 'All' },
92
+ { value: 'Complete', label: 'Complete' },
93
+ { value: 'Partial', label: 'Partial' },
94
+ ];
95
+ _rows = signal([], ...(ngDevMode ? [{ debugName: "_rows" }] : []));
96
+ set rows(value) {
97
+ this._rows.set(value ?? []);
98
+ }
99
+ filtered = computed(() => {
100
+ const term = this.search().trim().toLowerCase();
101
+ const status = this.statusFilter();
102
+ return this._rows().filter((r) => {
103
+ if (status !== 'all' && r.status !== status)
104
+ return false;
105
+ if (term && !r.respondent.toLowerCase().includes(term))
106
+ return false;
107
+ return true;
108
+ });
109
+ }, ...(ngDevMode ? [{ debugName: "filtered" }] : []));
110
+ submittedLabel(r) {
111
+ return r.submittedAt ? r.submittedAt.toLocaleString() : '—';
112
+ }
113
+ static ɵfac = function FormsResponseListComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || FormsResponseListComponent)(); };
114
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FormsResponseListComponent, selectors: [["mj-forms-response-list"]], inputs: { rows: "rows" }, outputs: { open: "open" }, decls: 7, vars: 2, consts: [[1, "toolbar"], ["type", "search", "placeholder", "Search respondent...", "aria-label", "Search responses by respondent", 1, "search", 3, "ngModelChange", "ngModel"], ["role", "group", "aria-label", "Filter by status", 1, "filters"], ["type", "button", 1, "chip", 3, "chip--active"], [1, "empty"], [1, "table-scroll"], ["type", "button", 1, "chip", 3, "click"], [1, "grid"], ["tabindex", "0"], ["tabindex", "0", 3, "click", "keydown.enter"], [1, "status"], [1, "num"], [1, "open-cell"], [1, "fa-solid", "fa-chevron-right"]], template: function FormsResponseListComponent_Template(rf, ctx) { if (rf & 1) {
115
+ i0.ɵɵelementStart(0, "div", 0)(1, "input", 1);
116
+ i0.ɵɵlistener("ngModelChange", function FormsResponseListComponent_Template_input_ngModelChange_1_listener($event) { return ctx.search.set($event); });
117
+ i0.ɵɵelementEnd();
118
+ i0.ɵɵelementStart(2, "div", 2);
119
+ i0.ɵɵrepeaterCreate(3, FormsResponseListComponent_For_4_Template, 2, 3, "button", 3, _forTrack0);
120
+ i0.ɵɵelementEnd()();
121
+ i0.ɵɵconditionalCreate(5, FormsResponseListComponent_Conditional_5_Template, 2, 0, "p", 4)(6, FormsResponseListComponent_Conditional_6_Template, 16, 0, "div", 5);
122
+ } if (rf & 2) {
123
+ i0.ɵɵadvance();
124
+ i0.ɵɵproperty("ngModel", ctx.search());
125
+ i0.ɵɵadvance(2);
126
+ i0.ɵɵrepeater(ctx.statusFilters);
127
+ i0.ɵɵadvance(2);
128
+ i0.ɵɵconditional(ctx.filtered().length === 0 ? 5 : 6);
129
+ } }, dependencies: [FormsModule, i1.DefaultValueAccessor, i1.NgControlStatus, i1.NgModel], styles: ["[_nghost-%COMP%] {\n display: block;\n }\n .toolbar[_ngcontent-%COMP%] {\n display: flex;\n gap: var(--mj-space-2);\n flex-wrap: wrap;\n align-items: center;\n margin-bottom: var(--mj-space-3);\n }\n .search[_ngcontent-%COMP%] {\n flex: 1 1 220px;\n padding: var(--mj-space-2);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n font-size: 13px;\n }\n .filters[_ngcontent-%COMP%] {\n display: flex;\n gap: var(--mj-space-1);\n }\n .chip[_ngcontent-%COMP%] {\n padding: var(--mj-space-1) var(--mj-space-2-5);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-full);\n background: var(--mj-bg-surface);\n color: var(--mj-text-secondary);\n font-size: 12px;\n cursor: pointer;\n }\n .chip--active[_ngcontent-%COMP%] {\n background: var(--mj-brand-primary);\n border-color: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n .empty[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n font-style: italic;\n margin: 0;\n }\n .table-scroll[_ngcontent-%COMP%] {\n overflow-x: auto;\n }\n .grid[_ngcontent-%COMP%] {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n }\n .grid[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n text-align: left;\n padding: var(--mj-space-2);\n color: var(--mj-text-muted);\n font-size: 11px;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n border-bottom: 1px solid var(--mj-border-default);\n }\n .grid[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: var(--mj-space-2);\n color: var(--mj-text-primary);\n border-bottom: 1px solid var(--mj-border-subtle);\n }\n .grid[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] {\n cursor: pointer;\n }\n .grid[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-hover);\n }\n .num[_ngcontent-%COMP%] {\n font-variant-numeric: tabular-nums;\n }\n .status[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 2px var(--mj-space-2);\n border-radius: var(--mj-radius-full);\n font-size: 11px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n }\n .status--complete[_ngcontent-%COMP%] {\n background: var(--mj-status-success);\n color: var(--mj-text-inverse);\n }\n .open-cell[_ngcontent-%COMP%] {\n color: var(--mj-text-muted);\n text-align: right;\n }"], changeDetection: 0 });
130
+ }
131
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FormsResponseListComponent, [{
132
+ type: Component,
133
+ args: [{ selector: 'mj-forms-response-list', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [FormsModule], template: `
134
+ <div class="toolbar">
135
+ <input
136
+ class="search"
137
+ type="search"
138
+ placeholder="Search respondent..."
139
+ [ngModel]="search()"
140
+ (ngModelChange)="search.set($event)"
141
+ aria-label="Search responses by respondent" />
142
+ <div class="filters" role="group" aria-label="Filter by status">
143
+ @for (f of statusFilters; track f.value) {
144
+ <button
145
+ type="button"
146
+ class="chip"
147
+ [class.chip--active]="statusFilter() === f.value"
148
+ (click)="statusFilter.set(f.value)">
149
+ {{ f.label }}
150
+ </button>
151
+ }
152
+ </div>
153
+ </div>
154
+
155
+ @if (filtered().length === 0) {
156
+ <p class="empty">No responses match.</p>
157
+ } @else {
158
+ <div class="table-scroll">
159
+ <table class="grid">
160
+ <thead>
161
+ <tr>
162
+ <th>Status</th>
163
+ <th>Respondent</th>
164
+ <th>Answered</th>
165
+ <th>Submitted</th>
166
+ <th></th>
167
+ </tr>
168
+ </thead>
169
+ <tbody>
170
+ @for (r of filtered(); track r.responseId) {
171
+ <tr (click)="open.emit(r.responseId)" tabindex="0"
172
+ (keydown.enter)="open.emit(r.responseId)">
173
+ <td>
174
+ <span class="status" [class.status--complete]="r.status === 'Complete'">
175
+ {{ r.status }}
176
+ </span>
177
+ </td>
178
+ <td>{{ r.respondent }}</td>
179
+ <td class="num">{{ r.answeredCount }}</td>
180
+ <td>{{ submittedLabel(r) }}</td>
181
+ <td class="open-cell"><i class="fa-solid fa-chevron-right"></i></td>
182
+ </tr>
183
+ }
184
+ </tbody>
185
+ </table>
186
+ </div>
187
+ }
188
+ `, styles: ["\n :host {\n display: block;\n }\n .toolbar {\n display: flex;\n gap: var(--mj-space-2);\n flex-wrap: wrap;\n align-items: center;\n margin-bottom: var(--mj-space-3);\n }\n .search {\n flex: 1 1 220px;\n padding: var(--mj-space-2);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n font-size: 13px;\n }\n .filters {\n display: flex;\n gap: var(--mj-space-1);\n }\n .chip {\n padding: var(--mj-space-1) var(--mj-space-2-5);\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-full);\n background: var(--mj-bg-surface);\n color: var(--mj-text-secondary);\n font-size: 12px;\n cursor: pointer;\n }\n .chip--active {\n background: var(--mj-brand-primary);\n border-color: var(--mj-brand-primary);\n color: var(--mj-text-inverse);\n }\n .empty {\n color: var(--mj-text-muted);\n font-style: italic;\n margin: 0;\n }\n .table-scroll {\n overflow-x: auto;\n }\n .grid {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n }\n .grid th {\n text-align: left;\n padding: var(--mj-space-2);\n color: var(--mj-text-muted);\n font-size: 11px;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n border-bottom: 1px solid var(--mj-border-default);\n }\n .grid td {\n padding: var(--mj-space-2);\n color: var(--mj-text-primary);\n border-bottom: 1px solid var(--mj-border-subtle);\n }\n .grid tbody tr {\n cursor: pointer;\n }\n .grid tbody tr:hover {\n background: var(--mj-bg-surface-hover);\n }\n .num {\n font-variant-numeric: tabular-nums;\n }\n .status {\n display: inline-block;\n padding: 2px var(--mj-space-2);\n border-radius: var(--mj-radius-full);\n font-size: 11px;\n background: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n }\n .status--complete {\n background: var(--mj-status-success);\n color: var(--mj-text-inverse);\n }\n .open-cell {\n color: var(--mj-text-muted);\n text-align: right;\n }\n "] }]
189
+ }], null, { open: [{
190
+ type: Output
191
+ }], rows: [{
192
+ type: Input,
193
+ args: [{ required: true }]
194
+ }] }); })();
195
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FormsResponseListComponent, { className: "FormsResponseListComponent", filePath: "lib/dashboard/components/response-list.component.ts", lineNumber: 168 }); })();
196
+ //# sourceMappingURL=response-list.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-list.component.js","sourceRoot":"","sources":["../../../../src/lib/dashboard/components/response-list.component.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { FormSummaryStats } from '../models/reporting.model';
2
+ import * as i0 from "@angular/core";
3
+ /** Top-line stat cards: total responses, completion rate, avg time, last submit. */
4
+ export declare class FormsSummaryStatsComponent {
5
+ stats: FormSummaryStats;
6
+ pct(fraction: number): string;
7
+ get durationLabel(): string;
8
+ get lastLabel(): string;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<FormsSummaryStatsComponent, never>;
10
+ static ɵcmp: i0.ɵɵComponentDeclaration<FormsSummaryStatsComponent, "mj-forms-summary-stats", never, { "stats": { "alias": "stats"; "required": true; }; }, {}, never, never, true, never>;
11
+ }
12
+ //# sourceMappingURL=summary-stats.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summary-stats.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/dashboard/components/summary-stats.component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;;AAElE,oFAAoF;AACpF,qBAwEa,0BAA0B;IACV,KAAK,EAAG,gBAAgB,CAAC;IAE7C,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAIpC,IAAW,aAAa,IAAI,MAAM,CAOjC;IAED,IAAW,SAAS,IAAI,MAAM,CAI7B;yCApBU,0BAA0B;2CAA1B,0BAA0B;CAqBtC"}