@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,428 @@
1
+ /**
2
+ * Root of the `<mj-form>` custom element. Loads the published form via the S1 API,
3
+ * builds the shared {@link FormRuntime}, themes the host from the form's style tokens,
4
+ * picks the render mode, and handles submit / partial-save.
5
+ *
6
+ * It is a normal standalone Angular component; {@link registerMjFormElement} wraps it
7
+ * as a browser custom element. No Explorer shell, no MJ global provider — everything
8
+ * it needs arrives via DI (the API service) and `@Input` (the distribution slug).
9
+ */
10
+ import { ChangeDetectionStrategy, Component, computed, ElementRef, inject, input, signal, viewChild, } from '@angular/core';
11
+ import { FORMS_API_SERVICE } from './api/forms-api.interface';
12
+ import { FORMS_API_CONFIG } from './api/forms-api.config';
13
+ import { applyStyleTokens } from './core/theming';
14
+ import { FormRuntime } from './core/form-runtime';
15
+ import { AutosaveController } from './core/autosave-controller';
16
+ import { generateClientResponseId } from './core/client-id';
17
+ import { outcomeForResult, shouldIgnoreSubmit } from './core/submit-phase';
18
+ import { canRenderChallenge, canSubmit, captchaRequired, isConfigGap, isTurnstileError, } from './core/turnstile-gate';
19
+ import { FormScrollComponent } from './components/form-scroll.component';
20
+ import { FormOneQuestionComponent } from './components/form-one-question.component';
21
+ import { TurnstileChallengeComponent } from './components/turnstile-challenge.component';
22
+ import * as i0 from "@angular/core";
23
+ function MjFormComponent_Case_1_Template(rf, ctx) { if (rf & 1) {
24
+ i0.ɵɵelementStart(0, "div", 1);
25
+ i0.ɵɵelement(1, "span", 4);
26
+ i0.ɵɵelementStart(2, "span");
27
+ i0.ɵɵtext(3, "Loading form\u2026");
28
+ i0.ɵɵelementEnd()();
29
+ } }
30
+ function MjFormComponent_Case_2_Template(rf, ctx) { if (rf & 1) {
31
+ const _r1 = i0.ɵɵgetCurrentView();
32
+ i0.ɵɵelementStart(0, "div", 2)(1, "p", 5);
33
+ i0.ɵɵtext(2);
34
+ i0.ɵɵelementEnd();
35
+ i0.ɵɵelementStart(3, "button", 6);
36
+ i0.ɵɵlistener("click", function MjFormComponent_Case_2_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.retry()); });
37
+ i0.ɵɵtext(4, "Try again");
38
+ i0.ɵɵelementEnd()();
39
+ } if (rf & 2) {
40
+ const ctx_r1 = i0.ɵɵnextContext();
41
+ i0.ɵɵadvance(2);
42
+ i0.ɵɵtextInterpolate(ctx_r1.errorText());
43
+ } }
44
+ function MjFormComponent_Case_3_Template(rf, ctx) { if (rf & 1) {
45
+ i0.ɵɵelementStart(0, "div", 3);
46
+ i0.ɵɵelement(1, "i", 7);
47
+ i0.ɵɵelementStart(2, "p", 8);
48
+ i0.ɵɵtext(3);
49
+ i0.ɵɵelementEnd()();
50
+ } if (rf & 2) {
51
+ const ctx_r1 = i0.ɵɵnextContext();
52
+ i0.ɵɵadvance(3);
53
+ i0.ɵɵtextInterpolate(ctx_r1.confirmationMessage());
54
+ } }
55
+ function MjFormComponent_Case_4_Conditional_0_Conditional_3_Template(rf, ctx) { if (rf & 1) {
56
+ i0.ɵɵelementStart(0, "p", 11);
57
+ i0.ɵɵtext(1);
58
+ i0.ɵɵelementEnd();
59
+ } if (rf & 2) {
60
+ const def_r3 = i0.ɵɵnextContext();
61
+ i0.ɵɵadvance();
62
+ i0.ɵɵtextInterpolate(def_r3.description);
63
+ } }
64
+ function MjFormComponent_Case_4_Conditional_0_Conditional_4_Template(rf, ctx) { if (rf & 1) {
65
+ i0.ɵɵelementStart(0, "p", 12);
66
+ i0.ɵɵtext(1);
67
+ i0.ɵɵelementEnd();
68
+ } if (rf & 2) {
69
+ const ctx_r1 = i0.ɵɵnextContext(3);
70
+ i0.ɵɵadvance();
71
+ i0.ɵɵtextInterpolate(ctx_r1.errorText());
72
+ } }
73
+ function MjFormComponent_Case_4_Conditional_0_Conditional_5_Conditional_0_Template(rf, ctx) { if (rf & 1) {
74
+ const _r4 = i0.ɵɵgetCurrentView();
75
+ i0.ɵɵelementStart(0, "mjf-form-scroll", 17);
76
+ i0.ɵɵlistener("submit", function MjFormComponent_Case_4_Conditional_0_Conditional_5_Conditional_0_Template_mjf_form_scroll_submit_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onSubmit()); })("progressChange", function MjFormComponent_Case_4_Conditional_0_Conditional_5_Conditional_0_Template_mjf_form_scroll_progressChange_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onProgress()); });
77
+ i0.ɵɵelementEnd();
78
+ } if (rf & 2) {
79
+ const rt_r5 = i0.ɵɵnextContext();
80
+ const ctx_r1 = i0.ɵɵnextContext(3);
81
+ i0.ɵɵproperty("runtime", rt_r5)("submitting", ctx_r1.phase() === "submitting")("submitDisabled", !ctx_r1.submitAllowed())("distributionSlug", ctx_r1.distributionSlug());
82
+ } }
83
+ function MjFormComponent_Case_4_Conditional_0_Conditional_5_Conditional_1_Template(rf, ctx) { if (rf & 1) {
84
+ const _r6 = i0.ɵɵgetCurrentView();
85
+ i0.ɵɵelementStart(0, "mjf-form-one-question", 17);
86
+ i0.ɵɵlistener("submit", function MjFormComponent_Case_4_Conditional_0_Conditional_5_Conditional_1_Template_mjf_form_one_question_submit_0_listener() { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onSubmit()); })("progressChange", function MjFormComponent_Case_4_Conditional_0_Conditional_5_Conditional_1_Template_mjf_form_one_question_progressChange_0_listener() { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onProgress()); });
87
+ i0.ɵɵelementEnd();
88
+ } if (rf & 2) {
89
+ const rt_r5 = i0.ɵɵnextContext();
90
+ const ctx_r1 = i0.ɵɵnextContext(3);
91
+ i0.ɵɵproperty("runtime", rt_r5)("submitting", ctx_r1.phase() === "submitting")("submitDisabled", !ctx_r1.submitAllowed())("distributionSlug", ctx_r1.distributionSlug());
92
+ } }
93
+ function MjFormComponent_Case_4_Conditional_0_Conditional_5_Conditional_2_Template(rf, ctx) { if (rf & 1) {
94
+ const _r7 = i0.ɵɵgetCurrentView();
95
+ i0.ɵɵelementStart(0, "mjf-turnstile-challenge", 18);
96
+ i0.ɵɵlistener("solved", function MjFormComponent_Case_4_Conditional_0_Conditional_5_Conditional_2_Template_mjf_turnstile_challenge_solved_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onTurnstileSolved($event)); })("expired", function MjFormComponent_Case_4_Conditional_0_Conditional_5_Conditional_2_Template_mjf_turnstile_challenge_expired_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onTurnstileExpired()); })("errored", function MjFormComponent_Case_4_Conditional_0_Conditional_5_Conditional_2_Template_mjf_turnstile_challenge_errored_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.onTurnstileErrored()); });
97
+ i0.ɵɵelementEnd();
98
+ } if (rf & 2) {
99
+ const ctx_r1 = i0.ɵɵnextContext(4);
100
+ i0.ɵɵproperty("siteKey", ctx_r1.resolvedSiteKey());
101
+ } }
102
+ function MjFormComponent_Case_4_Conditional_0_Conditional_5_Conditional_3_Template(rf, ctx) { if (rf & 1) {
103
+ i0.ɵɵelementStart(0, "p", 15);
104
+ i0.ɵɵelement(1, "i", 19);
105
+ i0.ɵɵtext(2, " This form requires a security challenge, but it has not been configured yet. It can't be submitted until the site owner adds a Turnstile site key. ");
106
+ i0.ɵɵelementEnd();
107
+ } }
108
+ function MjFormComponent_Case_4_Conditional_0_Conditional_5_Case_4_Template(rf, ctx) { if (rf & 1) {
109
+ i0.ɵɵelementStart(0, "p", 16);
110
+ i0.ɵɵelement(1, "i", 20);
111
+ i0.ɵɵtext(2, " Saving\u2026 ");
112
+ i0.ɵɵelementEnd();
113
+ } }
114
+ function MjFormComponent_Case_4_Conditional_0_Conditional_5_Case_5_Template(rf, ctx) { if (rf & 1) {
115
+ i0.ɵɵelementStart(0, "p", 16);
116
+ i0.ɵɵelement(1, "i", 20);
117
+ i0.ɵɵtext(2, " Progress saved ");
118
+ i0.ɵɵelementEnd();
119
+ } }
120
+ function MjFormComponent_Case_4_Conditional_0_Conditional_5_Template(rf, ctx) { if (rf & 1) {
121
+ i0.ɵɵconditionalCreate(0, MjFormComponent_Case_4_Conditional_0_Conditional_5_Conditional_0_Template, 1, 4, "mjf-form-scroll", 13)(1, MjFormComponent_Case_4_Conditional_0_Conditional_5_Conditional_1_Template, 1, 4, "mjf-form-one-question", 13);
122
+ i0.ɵɵconditionalCreate(2, MjFormComponent_Case_4_Conditional_0_Conditional_5_Conditional_2_Template, 1, 1, "mjf-turnstile-challenge", 14)(3, MjFormComponent_Case_4_Conditional_0_Conditional_5_Conditional_3_Template, 3, 0, "p", 15);
123
+ i0.ɵɵconditionalCreate(4, MjFormComponent_Case_4_Conditional_0_Conditional_5_Case_4_Template, 3, 0, "p", 16)(5, MjFormComponent_Case_4_Conditional_0_Conditional_5_Case_5_Template, 3, 0, "p", 16);
124
+ } if (rf & 2) {
125
+ let tmp_7_0;
126
+ const ctx_r1 = i0.ɵɵnextContext(3);
127
+ i0.ɵɵconditional(ctx_r1.isScroll() ? 0 : 1);
128
+ i0.ɵɵadvance(2);
129
+ i0.ɵɵconditional(ctx_r1.showChallenge() ? 2 : ctx_r1.captchaConfigGap() ? 3 : -1);
130
+ i0.ɵɵadvance(2);
131
+ i0.ɵɵconditional((tmp_7_0 = ctx_r1.autosaveStatus()) === "saving" ? 4 : tmp_7_0 === "saved" ? 5 : -1);
132
+ } }
133
+ function MjFormComponent_Case_4_Conditional_0_Template(rf, ctx) { if (rf & 1) {
134
+ i0.ɵɵelementStart(0, "header", 9)(1, "h1", 10);
135
+ i0.ɵɵtext(2);
136
+ i0.ɵɵelementEnd();
137
+ i0.ɵɵconditionalCreate(3, MjFormComponent_Case_4_Conditional_0_Conditional_3_Template, 2, 1, "p", 11);
138
+ i0.ɵɵelementEnd();
139
+ i0.ɵɵconditionalCreate(4, MjFormComponent_Case_4_Conditional_0_Conditional_4_Template, 2, 1, "p", 12);
140
+ i0.ɵɵconditionalCreate(5, MjFormComponent_Case_4_Conditional_0_Conditional_5_Template, 6, 3);
141
+ } if (rf & 2) {
142
+ let tmp_6_0;
143
+ const def_r3 = ctx;
144
+ const ctx_r1 = i0.ɵɵnextContext(2);
145
+ i0.ɵɵadvance(2);
146
+ i0.ɵɵtextInterpolate(def_r3.name);
147
+ i0.ɵɵadvance();
148
+ i0.ɵɵconditional(def_r3.description ? 3 : -1);
149
+ i0.ɵɵadvance();
150
+ i0.ɵɵconditional(ctx_r1.errorText() ? 4 : -1);
151
+ i0.ɵɵadvance();
152
+ i0.ɵɵconditional((tmp_6_0 = ctx_r1.runtime()) ? 5 : -1, tmp_6_0);
153
+ } }
154
+ function MjFormComponent_Case_4_Template(rf, ctx) { if (rf & 1) {
155
+ i0.ɵɵconditionalCreate(0, MjFormComponent_Case_4_Conditional_0_Template, 6, 4);
156
+ } if (rf & 2) {
157
+ let tmp_1_0;
158
+ const ctx_r1 = i0.ɵɵnextContext();
159
+ i0.ɵɵconditional((tmp_1_0 = ctx_r1.definition()) ? 0 : -1, tmp_1_0);
160
+ } }
161
+ export class MjFormComponent {
162
+ /** Distribution slug identifying which published form to load (element attribute). */
163
+ distributionSlug = input('', { ...(ngDevMode ? { debugName: "distributionSlug" } : {}), alias: 'slug' });
164
+ /**
165
+ * Pre-built definition to render directly, bypassing the API fetch. Used by the
166
+ * builder's WYSIWYG Preview to render the unpublished draft (fillable, themed) with no
167
+ * publish/DB round-trip. When set, {@link load} skips `loadPublishedForm`.
168
+ */
169
+ definitionInput = input(null, { ...(ngDevMode ? { debugName: "definitionInput" } : {}), alias: 'definition' });
170
+ api = inject(FORMS_API_SERVICE);
171
+ config = inject(FORMS_API_CONFIG);
172
+ hostRef = inject(ElementRef);
173
+ startedAt = new Date().toISOString();
174
+ /** The mounted Turnstile challenge (present only when captcha is required + rendered). */
175
+ turnstile = viewChild(TurnstileChallengeComponent, ...(ngDevMode ? [{ debugName: "turnstile" }] : []));
176
+ phase = signal('loading', ...(ngDevMode ? [{ debugName: "phase" }] : []));
177
+ errorText = signal('', ...(ngDevMode ? [{ debugName: "errorText" }] : []));
178
+ definition = signal(null, ...(ngDevMode ? [{ debugName: "definition" }] : []));
179
+ runtime = signal(null, ...(ngDevMode ? [{ debugName: "runtime" }] : []));
180
+ result = signal(null, ...(ngDevMode ? [{ debugName: "result" }] : []));
181
+ /** Subtle, non-blocking autosave indicator. */
182
+ autosaveStatus = signal('idle', ...(ngDevMode ? [{ debugName: "autosaveStatus" }] : []));
183
+ /** Public Cloudflare Turnstile site key (global; from widget config). May be undefined. */
184
+ siteKey = this.config.turnstileSiteKey;
185
+ /** Non-null site key for the template's `[siteKey]` binding (guarded by `showChallenge`). */
186
+ resolvedSiteKey = computed(() => this.siteKey ?? '', ...(ngDevMode ? [{ debugName: "resolvedSiteKey" }] : []));
187
+ /** Solved single-use Turnstile token, held until the final submit consumes it. */
188
+ turnstileToken = signal(null, ...(ngDevMode ? [{ debugName: "turnstileToken" }] : []));
189
+ /** True when this form requires a captcha challenge before submit. */
190
+ needsCaptcha = computed(() => captchaRequired(this.definition()), ...(ngDevMode ? [{ debugName: "needsCaptcha" }] : []));
191
+ /** Render the challenge only when required AND a site key is configured. */
192
+ showChallenge = computed(() => canRenderChallenge(this.definition(), this.siteKey), ...(ngDevMode ? [{ debugName: "showChallenge" }] : []));
193
+ /** Captcha is required but no site key is configured — show the config-gap message. */
194
+ captchaConfigGap = computed(() => isConfigGap(this.definition(), this.siteKey), ...(ngDevMode ? [{ debugName: "captchaConfigGap" }] : []));
195
+ /** Whether the final submit is allowed given the current captcha state. */
196
+ submitAllowed = computed(() => canSubmit(this.definition(), this.siteKey, this.turnstileToken()), ...(ngDevMode ? [{ debugName: "submitAllowed" }] : []));
197
+ /**
198
+ * Stable client-generated response id, minted ONCE per form load. It is the PRIMARY
199
+ * idempotency key: sent as the response target on every partial autosave AND the final
200
+ * submit so they all UPSERT one FormResponse row, independent of debounce/network timing
201
+ * or a blank server session id. The server adopts it as the row's primary key on first
202
+ * save. Regenerated on each {@link load} (a retry starts a fresh response).
203
+ */
204
+ clientResponseId = generateClientResponseId();
205
+ /**
206
+ * Server-echoed response id, if returned. Kept only as a fallback/consistency signal —
207
+ * {@link clientResponseId} is authoritative, so submits never block on the server echo.
208
+ */
209
+ responseId;
210
+ autosave = null;
211
+ async ngOnInit() {
212
+ await this.load();
213
+ }
214
+ ngOnDestroy() {
215
+ this.autosave?.dispose();
216
+ }
217
+ /** Fetch (or accept) the form definition, theme the host, and build the runtime. */
218
+ async load() {
219
+ this.phase.set('loading');
220
+ // Fresh load == fresh response identity: mint a new client id and drop any stale
221
+ // server echo so a retry never upserts a previously-abandoned row.
222
+ this.clientResponseId = generateClientResponseId();
223
+ this.responseId = undefined;
224
+ try {
225
+ const def = this.definitionInput() ?? (await this.api.loadPublishedForm(this.distributionSlug()));
226
+ if (!def) {
227
+ this.fail('This form is not available.');
228
+ return;
229
+ }
230
+ applyStyleTokens(this.hostRef.nativeElement, def.styleTokens);
231
+ this.definition.set(def);
232
+ this.runtime.set(new FormRuntime(def));
233
+ this.autosave?.dispose();
234
+ this.autosave = new AutosaveController(() => this.savePartial(), (status) => this.autosaveStatus.set(status));
235
+ this.phase.set('ready');
236
+ }
237
+ catch (err) {
238
+ this.fail(err instanceof Error ? err.message : 'Failed to load the form.');
239
+ }
240
+ }
241
+ isScroll() {
242
+ return this.definition()?.renderMode !== 'OneQuestion';
243
+ }
244
+ /** Progress checkpoint from a child render mode → schedule a debounced partial save. */
245
+ onProgress() {
246
+ this.autosave?.ping();
247
+ }
248
+ async onSubmit() {
249
+ const def = this.definition();
250
+ const rt = this.runtime();
251
+ if (!def || !rt) {
252
+ return;
253
+ }
254
+ // Double-submit guard: ignore re-entrant submits while one is in flight or already
255
+ // done. Without this, a double-tap (or an Enter + click) fires two mutations and can
256
+ // leave the UI stuck between phases.
257
+ if (shouldIgnoreSubmit(this.phase())) {
258
+ return;
259
+ }
260
+ // Captcha gate: when required, block final submit until the challenge is solved.
261
+ if (!this.submitAllowed()) {
262
+ this.errorText.set(this.captchaBlockedMessage());
263
+ return;
264
+ }
265
+ // Flip to 'submitting' FIRST: this both drives the button's disabled state (no second
266
+ // concurrent submit) and makes savePartial()'s phase guard reject any autosave dispatched
267
+ // from here on. Then await any autosave ALREADY in flight so we never put two writes on
268
+ // the wire carrying the same clientResponseId (the PK-collision source). settle() cancels
269
+ // the pending debounce too, and is fail-soft.
270
+ this.phase.set('submitting');
271
+ this.errorText.set('');
272
+ await this.autosave?.settle();
273
+ const input = this.buildSubmission(def, rt, false);
274
+ try {
275
+ const res = await this.api.submitResponse(input, this.responseTarget());
276
+ this.applySubmitResult(res);
277
+ }
278
+ catch (err) {
279
+ this.result.set(null);
280
+ this.phase.set('ready');
281
+ const message = err instanceof Error ? err.message : 'Submission failed. Please try again.';
282
+ this.errorText.set(message);
283
+ this.handlePossibleTurnstileFailure(message);
284
+ }
285
+ }
286
+ /**
287
+ * Fold the server result into the widget phase. On success we reach the 'done'
288
+ * confirmation for BOTH render modes and ONLY redirect when a redirect URL is actually
289
+ * set; on failure we return to 'ready' with a clear message.
290
+ */
291
+ applySubmitResult(res) {
292
+ this.result.set(res);
293
+ if (res.success && res.responseId) {
294
+ this.responseId = res.responseId;
295
+ }
296
+ const outcome = outcomeForResult(res);
297
+ this.phase.set(outcome.phase);
298
+ if (!res.success) {
299
+ const message = (res.errors ?? []).map((e) => e.message).join(' ').trim();
300
+ if (message) {
301
+ this.errorText.set(message);
302
+ this.handlePossibleTurnstileFailure(message);
303
+ }
304
+ return;
305
+ }
306
+ // Success always reaches 'done' (both render modes). Redirect ONLY when a URL is set, and
307
+ // only after 'done' — so a blocked/slow navigation still shows the confirmation.
308
+ if (outcome.redirect && res.redirectUrl) {
309
+ this.redirect(res.redirectUrl);
310
+ }
311
+ }
312
+ /** Called by the challenge when the respondent solves it — holds the single-use token. */
313
+ onTurnstileSolved(token) {
314
+ this.turnstileToken.set(token);
315
+ }
316
+ /** Token expired (~300s) — clear it so submit re-gates; the child re-arms itself. */
317
+ onTurnstileExpired() {
318
+ this.turnstileToken.set(null);
319
+ }
320
+ /** The challenge failed to load/render — surface a clear, actionable message. */
321
+ onTurnstileErrored() {
322
+ this.turnstileToken.set(null);
323
+ this.errorText.set('The security challenge could not be loaded. Please refresh and try again.');
324
+ }
325
+ /**
326
+ * When a failed submit came from the server's Turnstile check, the single-use token is
327
+ * spent — clear it and reset the challenge so the respondent can solve a fresh one.
328
+ */
329
+ handlePossibleTurnstileFailure(message) {
330
+ if (this.needsCaptcha() && isTurnstileError(message)) {
331
+ this.turnstileToken.set(null);
332
+ this.turnstile()?.reset();
333
+ }
334
+ }
335
+ captchaBlockedMessage() {
336
+ return this.captchaConfigGap()
337
+ ? 'This form requires a security challenge, but it is not configured. Please contact the form owner.'
338
+ : 'Please complete the security challenge before submitting.';
339
+ }
340
+ /**
341
+ * Save the current answers as a Partial response (server upserts, runs no hooks/quota).
342
+ * Reuses the returned {@link responseId} so subsequent autosaves update the same record.
343
+ * Throws on failure so the {@link AutosaveController} can mark the status — it swallows
344
+ * the error, keeping autosave strictly non-blocking for the respondent.
345
+ */
346
+ async savePartial() {
347
+ const def = this.definition();
348
+ const rt = this.runtime();
349
+ if (!def || !rt) {
350
+ return undefined;
351
+ }
352
+ // Never autosave once the respondent has moved past editing — a partial landing after
353
+ // the final submit would resurrect a Partial row (or, worse, revert the confirmation).
354
+ // The autosave is also cancelled in onSubmit(); this is the belt-and-braces guard for a
355
+ // save that was already dispatched before the cancel.
356
+ if (this.phase() !== 'ready') {
357
+ return this.responseTarget();
358
+ }
359
+ const res = await this.api.submitResponse(this.buildSubmission(def, rt, true), this.responseTarget());
360
+ if (res.success && res.responseId) {
361
+ this.responseId = res.responseId;
362
+ }
363
+ return this.responseTarget();
364
+ }
365
+ /**
366
+ * The response id sent to the server as the upsert target. The client-generated id is
367
+ * PRIMARY (stable across the whole fill); the server echo is only a fallback if for some
368
+ * reason the client id were ever unavailable.
369
+ */
370
+ responseTarget() {
371
+ return this.clientResponseId || this.responseId || generateClientResponseId();
372
+ }
373
+ /** Build a submission payload for either a partial autosave or the final submit. */
374
+ buildSubmission(def, rt, partial) {
375
+ return {
376
+ distributionSlug: this.distributionSlug(),
377
+ formVersionId: def.formVersionId,
378
+ partial,
379
+ startedAt: this.startedAt,
380
+ // Only the final submit carries a captcha token; partial autosaves run no captcha
381
+ // check server-side (see submit-pipeline), so we never spend the single-use token
382
+ // on an autosave.
383
+ turnstileToken: partial ? undefined : this.turnstileToken() ?? undefined,
384
+ clientMeta: {
385
+ referrer: typeof document !== 'undefined' ? document.referrer : undefined,
386
+ userAgent: typeof navigator !== 'undefined' ? navigator.userAgent : undefined,
387
+ },
388
+ answers: rt.buildAnswerInputs(),
389
+ };
390
+ }
391
+ confirmationMessage() {
392
+ return (this.result()?.confirmationMessage ??
393
+ this.definition()?.settings.confirmationMessage ??
394
+ 'Thank you — your response has been recorded.');
395
+ }
396
+ retry() {
397
+ void this.load();
398
+ }
399
+ fail(message) {
400
+ this.errorText.set(message);
401
+ this.phase.set('error');
402
+ }
403
+ redirect(url) {
404
+ if (typeof window !== 'undefined') {
405
+ window.location.assign(url);
406
+ }
407
+ }
408
+ static ɵfac = function MjFormComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MjFormComponent)(); };
409
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MjFormComponent, selectors: [["mj-form"]], viewQuery: function MjFormComponent_Query(rf, ctx) { if (rf & 1) {
410
+ i0.ɵɵviewQuerySignal(ctx.turnstile, TurnstileChallengeComponent, 5);
411
+ } if (rf & 2) {
412
+ i0.ɵɵqueryAdvance();
413
+ } }, inputs: { distributionSlug: [1, "slug", "distributionSlug"], definitionInput: [1, "definition", "definitionInput"] }, decls: 5, vars: 1, consts: [[1, "mjf-shell"], ["role", "status", "aria-live", "polite", 1, "mjf-state"], ["role", "alert", 1, "mjf-state", "mjf-state--error"], ["role", "status", "aria-live", "polite", 1, "mjf-state", "mjf-state--done"], ["aria-hidden", "true", 1, "mjf-spinner"], [1, "mjf-state__msg"], ["type", "button", 1, "mjf-retry", 3, "click"], ["aria-hidden", "true", 1, "fa-solid", "fa-circle-check", "mjf-done__icon"], [1, "mjf-done__msg"], [1, "mjf-header"], [1, "mjf-header__title"], [1, "mjf-header__desc"], ["role", "alert", 1, "mjf-banner-error"], [3, "runtime", "submitting", "submitDisabled", "distributionSlug"], [3, "siteKey"], ["role", "alert", 1, "mjf-captcha-gap"], ["aria-live", "polite", 1, "mjf-autosave"], [3, "submit", "progressChange", "runtime", "submitting", "submitDisabled", "distributionSlug"], [3, "solved", "expired", "errored", "siteKey"], ["aria-hidden", "true", 1, "fa-solid", "fa-shield-halved"], ["aria-hidden", "true", 1, "fa-solid", "fa-cloud-arrow-up"]], template: function MjFormComponent_Template(rf, ctx) { if (rf & 1) {
414
+ i0.ɵɵelementStart(0, "div", 0);
415
+ i0.ɵɵconditionalCreate(1, MjFormComponent_Case_1_Template, 4, 0, "div", 1)(2, MjFormComponent_Case_2_Template, 5, 1, "div", 2)(3, MjFormComponent_Case_3_Template, 4, 1, "div", 3)(4, MjFormComponent_Case_4_Template, 1, 1);
416
+ i0.ɵɵelementEnd();
417
+ } if (rf & 2) {
418
+ let tmp_0_0;
419
+ i0.ɵɵadvance();
420
+ i0.ɵɵconditional((tmp_0_0 = ctx.phase()) === "loading" ? 1 : tmp_0_0 === "error" ? 2 : tmp_0_0 === "done" ? 3 : 4);
421
+ } }, dependencies: [FormScrollComponent, FormOneQuestionComponent, TurnstileChallengeComponent], styles: ["\n\n\n[_nghost-%COMP%] {\n display: block;\n \n\n\n --mj-font-family: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;\n --mj-bg-page: #ffffff;\n --mj-bg-surface: #ffffff;\n --mj-bg-surface-sunken: #f1f3f5;\n --mj-text-primary: #1a1d21;\n --mj-text-muted: #5c6670;\n --mj-border-default: #d7dce1;\n --mj-border-strong: #b7bfc7;\n --mj-radius-sm: 6px;\n --mj-radius-md: 10px;\n --mj-radius-lg: 14px;\n --mj-shadow-sm: 0 1px 3px rgba(20, 24, 31, 0.08);\n --mj-status-error: #c1392b;\n --mj-brand-primary: #2f5bea;\n --mj-brand-primary-hover: #2348c4;\n --mj-brand-on-primary: #ffffff;\n\n --mjf-font-body: var(--mj-font-family);\n --mjf-font-display: var(--mj-font-family);\n --mjf-page-bg: var(--mj-bg-page);\n --mjf-page-ink: var(--mj-text-primary);\n --mjf-accent: var(--mj-brand-primary);\n --mjf-accent-strong: var(--mj-brand-primary-hover);\n --mjf-on-accent: var(--mj-brand-on-primary);\n --mjf-accent-soft: color-mix(in srgb, var(--mjf-accent) 12%, var(--mj-bg-surface));\n --mjf-card-bg: var(--mj-bg-surface);\n --mjf-card-border: var(--mj-border-default);\n --mjf-card-radius: var(--mj-radius-lg);\n --mjf-card-shadow: var(--mj-shadow-sm);\n --mjf-input-bg: var(--mj-bg-surface);\n --mjf-input-border: var(--mj-border-strong);\n --mjf-input-radius: var(--mj-radius-md);\n --mjf-choice-bg: var(--mj-bg-surface);\n --mjf-choice-border: var(--mj-border-default);\n --mjf-choice-radius: var(--mj-radius-md);\n --mjf-choice-selected-bg: var(--mjf-accent-soft);\n --mjf-choice-selected-border: var(--mjf-accent);\n --mjf-choice-selected-text: var(--mj-text-primary);\n --mjf-progress-track: var(--mj-bg-surface-sunken);\n --mjf-progress-fill: var(--mjf-accent);\n --mjf-rating-active: var(--mjf-accent);\n --mjf-rating-inactive: var(--mj-border-strong);\n --mjf-btn-radius: var(--mj-radius-md);\n --mjf-pill-radius: 999px;\n --mjf-focus-ring: 0 0 0 3px color-mix(in srgb, var(--mjf-accent) 35%, transparent);\n\n font-family: var(--mjf-font-body);\n color: var(--mjf-page-ink);\n background: var(--mjf-page-bg);\n}\n\n.mjf-shell[_ngcontent-%COMP%] {\n max-width: 680px;\n margin: 0 auto;\n padding: 1.25rem;\n box-sizing: border-box;\n}\n\n.mjf-header[_ngcontent-%COMP%] {\n margin-bottom: 1.5rem;\n}\n\n.mjf-header__title[_ngcontent-%COMP%] {\n margin: 0 0 0.25rem;\n font-family: var(--mjf-font-display);\n font-size: 1.75rem;\n line-height: 1.2;\n color: var(--mjf-page-ink);\n}\n\n.mjf-header__desc[_ngcontent-%COMP%] {\n margin: 0;\n color: var(--mj-text-muted);\n}\n\n.mjf-banner-error[_ngcontent-%COMP%] {\n margin: 0 0 1rem;\n padding: 0.75rem 1rem;\n color: var(--mj-status-error);\n background: color-mix(in srgb, var(--mj-status-error) 10%, transparent);\n border-radius: var(--mjf-input-radius);\n}\n\n.mjf-captcha-gap[_ngcontent-%COMP%] {\n margin: 1rem 0 0;\n padding: 0.75rem 1rem;\n display: flex;\n align-items: flex-start;\n gap: 0.5rem;\n color: var(--mj-status-error);\n background: color-mix(in srgb, var(--mj-status-error) 10%, transparent);\n border-radius: var(--mjf-input-radius);\n font-size: 0.9375rem;\n}\n\n.mjf-autosave[_ngcontent-%COMP%] {\n margin: 0.75rem 0 0;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-size: 0.8125rem;\n color: var(--mj-text-muted);\n}\n\n.mjf-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 1rem;\n padding: 3rem 1rem;\n text-align: center;\n color: var(--mjf-page-ink);\n}\n\n.mjf-state--error[_ngcontent-%COMP%] .mjf-state__msg[_ngcontent-%COMP%] {\n color: var(--mj-status-error);\n}\n\n.mjf-spinner[_ngcontent-%COMP%] {\n width: 2.25rem;\n height: 2.25rem;\n border: 3px solid var(--mjf-progress-track);\n border-top-color: var(--mjf-accent);\n border-radius: var(--mjf-pill-radius);\n animation: _ngcontent-%COMP%_mjf-spin 0.8s linear infinite;\n}\n\n@keyframes _ngcontent-%COMP%_mjf-spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n.mjf-done__icon[_ngcontent-%COMP%] {\n font-size: 2.5rem;\n color: var(--mjf-accent);\n}\n\n.mjf-done__msg[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 1.125rem;\n}\n\n.mjf-retry[_ngcontent-%COMP%] {\n min-height: 2.75rem;\n padding: 0.625rem 1.5rem;\n color: var(--mjf-on-accent);\n background: var(--mjf-accent);\n border: none;\n border-radius: var(--mjf-btn-radius);\n cursor: pointer;\n font-family: var(--mjf-font-body);\n font-size: 1rem;\n}\n\n.mjf-retry[_ngcontent-%COMP%]:focus-visible {\n outline: none;\n box-shadow: var(--mjf-focus-ring);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .mjf-spinner[_ngcontent-%COMP%] {\n animation-duration: 2s;\n }\n}"], changeDetection: 0 });
422
+ }
423
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MjFormComponent, [{
424
+ type: Component,
425
+ args: [{ selector: 'mj-form', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [FormScrollComponent, FormOneQuestionComponent, TurnstileChallengeComponent], template: "<div class=\"mjf-shell\">\n @switch (phase()) {\n @case ('loading') {\n <div class=\"mjf-state\" role=\"status\" aria-live=\"polite\">\n <span class=\"mjf-spinner\" aria-hidden=\"true\"></span>\n <span>Loading form\u2026</span>\n </div>\n }\n @case ('error') {\n <div class=\"mjf-state mjf-state--error\" role=\"alert\">\n <p class=\"mjf-state__msg\">{{ errorText() }}</p>\n <button type=\"button\" class=\"mjf-retry\" (click)=\"retry()\">Try again</button>\n </div>\n }\n @case ('done') {\n <div class=\"mjf-state mjf-state--done\" role=\"status\" aria-live=\"polite\">\n <i class=\"fa-solid fa-circle-check mjf-done__icon\" aria-hidden=\"true\"></i>\n <p class=\"mjf-done__msg\">{{ confirmationMessage() }}</p>\n </div>\n }\n @default {\n @if (definition(); as def) {\n <header class=\"mjf-header\">\n <h1 class=\"mjf-header__title\">{{ def.name }}</h1>\n @if (def.description) {\n <p class=\"mjf-header__desc\">{{ def.description }}</p>\n }\n </header>\n\n @if (errorText()) {\n <p class=\"mjf-banner-error\" role=\"alert\">{{ errorText() }}</p>\n }\n\n @if (runtime(); as rt) {\n @if (isScroll()) {\n <mjf-form-scroll\n [runtime]=\"rt\"\n [submitting]=\"phase() === 'submitting'\"\n [submitDisabled]=\"!submitAllowed()\"\n [distributionSlug]=\"distributionSlug()\"\n (submit)=\"onSubmit()\"\n (progressChange)=\"onProgress()\"\n />\n } @else {\n <mjf-form-one-question\n [runtime]=\"rt\"\n [submitting]=\"phase() === 'submitting'\"\n [submitDisabled]=\"!submitAllowed()\"\n [distributionSlug]=\"distributionSlug()\"\n (submit)=\"onSubmit()\"\n (progressChange)=\"onProgress()\"\n />\n }\n\n @if (showChallenge()) {\n <mjf-turnstile-challenge\n [siteKey]=\"resolvedSiteKey()\"\n (solved)=\"onTurnstileSolved($event)\"\n (expired)=\"onTurnstileExpired()\"\n (errored)=\"onTurnstileErrored()\"\n />\n } @else if (captchaConfigGap()) {\n <p class=\"mjf-captcha-gap\" role=\"alert\">\n <i class=\"fa-solid fa-shield-halved\" aria-hidden=\"true\"></i>\n This form requires a security challenge, but it has not been configured yet.\n It can't be submitted until the site owner adds a Turnstile site key.\n </p>\n }\n\n @switch (autosaveStatus()) {\n @case ('saving') {\n <p class=\"mjf-autosave\" aria-live=\"polite\">\n <i class=\"fa-solid fa-cloud-arrow-up\" aria-hidden=\"true\"></i> Saving\u2026\n </p>\n }\n @case ('saved') {\n <p class=\"mjf-autosave\" aria-live=\"polite\">\n <i class=\"fa-solid fa-cloud-arrow-up\" aria-hidden=\"true\"></i> Progress saved\n </p>\n }\n }\n }\n }\n }\n }\n</div>\n", styles: ["/* Host is the themable surface: style tokens are set on the element by applyStyleTokens.\n Fallbacks keep the widget legible before any FormStyle is applied. */\n:host {\n display: block;\n /* --mjf-* fallbacks (mirror docs/app/design-system.css :root) so the widget renders\n standalone; a published FormStyle overrides these via host inline custom props. */\n --mj-font-family: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;\n --mj-bg-page: #ffffff;\n --mj-bg-surface: #ffffff;\n --mj-bg-surface-sunken: #f1f3f5;\n --mj-text-primary: #1a1d21;\n --mj-text-muted: #5c6670;\n --mj-border-default: #d7dce1;\n --mj-border-strong: #b7bfc7;\n --mj-radius-sm: 6px;\n --mj-radius-md: 10px;\n --mj-radius-lg: 14px;\n --mj-shadow-sm: 0 1px 3px rgba(20, 24, 31, 0.08);\n --mj-status-error: #c1392b;\n --mj-brand-primary: #2f5bea;\n --mj-brand-primary-hover: #2348c4;\n --mj-brand-on-primary: #ffffff;\n\n --mjf-font-body: var(--mj-font-family);\n --mjf-font-display: var(--mj-font-family);\n --mjf-page-bg: var(--mj-bg-page);\n --mjf-page-ink: var(--mj-text-primary);\n --mjf-accent: var(--mj-brand-primary);\n --mjf-accent-strong: var(--mj-brand-primary-hover);\n --mjf-on-accent: var(--mj-brand-on-primary);\n --mjf-accent-soft: color-mix(in srgb, var(--mjf-accent) 12%, var(--mj-bg-surface));\n --mjf-card-bg: var(--mj-bg-surface);\n --mjf-card-border: var(--mj-border-default);\n --mjf-card-radius: var(--mj-radius-lg);\n --mjf-card-shadow: var(--mj-shadow-sm);\n --mjf-input-bg: var(--mj-bg-surface);\n --mjf-input-border: var(--mj-border-strong);\n --mjf-input-radius: var(--mj-radius-md);\n --mjf-choice-bg: var(--mj-bg-surface);\n --mjf-choice-border: var(--mj-border-default);\n --mjf-choice-radius: var(--mj-radius-md);\n --mjf-choice-selected-bg: var(--mjf-accent-soft);\n --mjf-choice-selected-border: var(--mjf-accent);\n --mjf-choice-selected-text: var(--mj-text-primary);\n --mjf-progress-track: var(--mj-bg-surface-sunken);\n --mjf-progress-fill: var(--mjf-accent);\n --mjf-rating-active: var(--mjf-accent);\n --mjf-rating-inactive: var(--mj-border-strong);\n --mjf-btn-radius: var(--mj-radius-md);\n --mjf-pill-radius: 999px;\n --mjf-focus-ring: 0 0 0 3px color-mix(in srgb, var(--mjf-accent) 35%, transparent);\n\n font-family: var(--mjf-font-body);\n color: var(--mjf-page-ink);\n background: var(--mjf-page-bg);\n}\n\n.mjf-shell {\n max-width: 680px;\n margin: 0 auto;\n padding: 1.25rem;\n box-sizing: border-box;\n}\n\n.mjf-header {\n margin-bottom: 1.5rem;\n}\n\n.mjf-header__title {\n margin: 0 0 0.25rem;\n font-family: var(--mjf-font-display);\n font-size: 1.75rem;\n line-height: 1.2;\n color: var(--mjf-page-ink);\n}\n\n.mjf-header__desc {\n margin: 0;\n color: var(--mj-text-muted);\n}\n\n.mjf-banner-error {\n margin: 0 0 1rem;\n padding: 0.75rem 1rem;\n color: var(--mj-status-error);\n background: color-mix(in srgb, var(--mj-status-error) 10%, transparent);\n border-radius: var(--mjf-input-radius);\n}\n\n.mjf-captcha-gap {\n margin: 1rem 0 0;\n padding: 0.75rem 1rem;\n display: flex;\n align-items: flex-start;\n gap: 0.5rem;\n color: var(--mj-status-error);\n background: color-mix(in srgb, var(--mj-status-error) 10%, transparent);\n border-radius: var(--mjf-input-radius);\n font-size: 0.9375rem;\n}\n\n.mjf-autosave {\n margin: 0.75rem 0 0;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-size: 0.8125rem;\n color: var(--mj-text-muted);\n}\n\n.mjf-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 1rem;\n padding: 3rem 1rem;\n text-align: center;\n color: var(--mjf-page-ink);\n}\n\n.mjf-state--error .mjf-state__msg {\n color: var(--mj-status-error);\n}\n\n.mjf-spinner {\n width: 2.25rem;\n height: 2.25rem;\n border: 3px solid var(--mjf-progress-track);\n border-top-color: var(--mjf-accent);\n border-radius: var(--mjf-pill-radius);\n animation: mjf-spin 0.8s linear infinite;\n}\n\n@keyframes mjf-spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n.mjf-done__icon {\n font-size: 2.5rem;\n color: var(--mjf-accent);\n}\n\n.mjf-done__msg {\n margin: 0;\n font-size: 1.125rem;\n}\n\n.mjf-retry {\n min-height: 2.75rem;\n padding: 0.625rem 1.5rem;\n color: var(--mjf-on-accent);\n background: var(--mjf-accent);\n border: none;\n border-radius: var(--mjf-btn-radius);\n cursor: pointer;\n font-family: var(--mjf-font-body);\n font-size: 1rem;\n}\n\n.mjf-retry:focus-visible {\n outline: none;\n box-shadow: var(--mjf-focus-ring);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .mjf-spinner {\n animation-duration: 2s;\n }\n}\n"] }]
426
+ }], null, { distributionSlug: [{ type: i0.Input, args: [{ isSignal: true, alias: "slug", required: false }] }], definitionInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "definition", required: false }] }], turnstile: [{ type: i0.ViewChild, args: [i0.forwardRef(() => TurnstileChallengeComponent), { isSignal: true }] }] }); })();
427
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MjFormComponent, { className: "MjFormComponent", filePath: "lib/widget/mj-form.component.ts", lineNumber: 55 }); })();
428
+ //# sourceMappingURL=mj-form.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mj-form.component.js","sourceRoot":"","sources":["../../../src/lib/widget/mj-form.component.ts","../../../src/lib/widget/mj-form.component.html"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /** Element tag the widget registers under. */
2
+ export declare const MJ_FORM_TAG = "mj-form";
3
+ /**
4
+ * Define the `<mj-form>` custom element. Idempotent: a second call is a no-op if the
5
+ * tag is already registered. Call once at script load.
6
+ */
7
+ export declare function registerMjFormElement(): void;
8
+ //# sourceMappingURL=register-element.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-element.d.ts","sourceRoot":"","sources":["../../../src/lib/widget/register-element.ts"],"names":[],"mappings":"AAiCA,8CAA8C;AAC9C,eAAO,MAAM,WAAW,YAAY,CAAC;AAKrC;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAK5C"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Registers `<mj-form>` as a browser custom element so it can be embedded by a plain
3
+ * `<script>` tag with no Explorer shell:
4
+ *
5
+ * ```html
6
+ * <mj-form slug="my-survey" api-url="https://api.example.com/graphql" token="…"
7
+ * turnstile-site-key="0x4AAAAAAA…"></mj-form>
8
+ * ```
9
+ *
10
+ * `turnstile-site-key` is the PUBLIC Cloudflare Turnstile site key (global, one widget
11
+ * for all forms). It is only consulted when a form has captcha turned on; leave it off
12
+ * for forms that don't require a challenge.
13
+ *
14
+ * This is a thin, dependency-free Angular Elements equivalent: it bootstraps a
15
+ * standalone Angular application per element instance via `createApplication` +
16
+ * `createComponent`, and maps the element's attributes onto the component's signal
17
+ * inputs. We avoid `@angular/elements` here only because it is not part of the
18
+ * widget's dependency set; the registration is isolated to THIS file, so switching to
19
+ * `createCustomElement` later is a localized change.
20
+ *
21
+ * The host chooses the transport: pass `api-url` to use the live GraphQL service, or
22
+ * omit it to fall back to the standalone mock (great for embeds/previews/demos).
23
+ */
24
+ import { createComponent } from '@angular/core';
25
+ import { createApplication } from '@angular/platform-browser';
26
+ import { FORMS_API_SERVICE } from './api/forms-api.interface';
27
+ import { FORMS_API_CONFIG, normalizeApiConfig } from './api/forms-api.config';
28
+ import { FormsGraphQLApiService } from './api/forms-api.graphql.service';
29
+ import { FormsMockApiService } from './api/forms-api.mock.service';
30
+ import { FormUploadService } from './api/form-upload.service';
31
+ import { MjFormComponent } from './mj-form.component';
32
+ /** Element tag the widget registers under. */
33
+ export const MJ_FORM_TAG = 'mj-form';
34
+ /** Attributes the element reflects onto the root component. */
35
+ const OBSERVED_ATTRS = ['slug', 'api-url', 'token', 'turnstile-site-key'];
36
+ /**
37
+ * Define the `<mj-form>` custom element. Idempotent: a second call is a no-op if the
38
+ * tag is already registered. Call once at script load.
39
+ */
40
+ export function registerMjFormElement() {
41
+ if (typeof customElements === 'undefined' || customElements.get(MJ_FORM_TAG)) {
42
+ return;
43
+ }
44
+ customElements.define(MJ_FORM_TAG, MjFormElement);
45
+ }
46
+ /**
47
+ * The custom-element class. Each instance hosts its own bootstrapped Angular
48
+ * application + `MjFormComponent`, wired to whichever transport its attributes select.
49
+ */
50
+ class MjFormElement extends HTMLElement {
51
+ static get observedAttributes() {
52
+ return OBSERVED_ATTRS;
53
+ }
54
+ appRef;
55
+ componentRef;
56
+ async connectedCallback() {
57
+ if (this.componentRef) {
58
+ return;
59
+ }
60
+ const config = normalizeApiConfig({
61
+ graphqlUrl: this.getAttribute('api-url') ?? '',
62
+ token: this.getAttribute('token') ?? undefined,
63
+ turnstileSiteKey: this.getAttribute('turnstile-site-key') ?? undefined,
64
+ });
65
+ const apiServiceProvider = config.graphqlUrl
66
+ ? { provide: FORMS_API_SERVICE, useClass: FormsGraphQLApiService }
67
+ : { provide: FORMS_API_SERVICE, useClass: FormsMockApiService };
68
+ const app = await createApplication({
69
+ providers: [
70
+ { provide: FORMS_API_CONFIG, useValue: config },
71
+ apiServiceProvider,
72
+ FormsGraphQLApiService,
73
+ FormsMockApiService,
74
+ FormUploadService,
75
+ ],
76
+ });
77
+ this.appRef = app;
78
+ const componentRef = createComponent(MjFormComponent, {
79
+ environmentInjector: app.injector,
80
+ hostElement: this,
81
+ });
82
+ componentRef.setInput('slug', this.getAttribute('slug') ?? '');
83
+ app.attachView(componentRef.hostView);
84
+ this.componentRef = componentRef;
85
+ }
86
+ attributeChangedCallback(name, _old, value) {
87
+ if (name === 'slug' && this.componentRef) {
88
+ this.componentRef.setInput('slug', value ?? '');
89
+ }
90
+ }
91
+ disconnectedCallback() {
92
+ this.componentRef?.destroy();
93
+ this.appRef?.destroy();
94
+ this.componentRef = undefined;
95
+ this.appRef = undefined;
96
+ }
97
+ }
98
+ //# sourceMappingURL=register-element.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-element.js","sourceRoot":"","sources":["../../../src/lib/widget/register-element.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Forms Angular Bootstrap
3
+ *
4
+ * Client-side bootstrap package for the Forms Open App.
5
+ * Imports all entity classes and form components to ensure @RegisterClass
6
+ * decorators fire and components are available to MJ's class factory.
7
+ */
8
+ import '@mj-biz-apps/forms-entities';
9
+ import './lib/generated/generated-forms.module';
10
+ import './lib/dashboard';
11
+ export { CLASS_REGISTRATIONS } from './lib/generated/class-registrations-manifest';
12
+ export { GeneratedFormsModule } from './lib/generated/generated-forms.module';
13
+ export * from './lib/dashboard';
14
+ /**
15
+ * Bootstrap function called during MJExplorer initialization.
16
+ * Static imports above handle all registration.
17
+ */
18
+ export declare function LoadBizAppsFormsClient(): void;
19
+ export * from './lib/widget/index';
20
+ export * from './lib/builder';
21
+ import './lib/home';
22
+ export * from './lib/home';
23
+ //# sourceMappingURL=public-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,6BAA6B,CAAC;AAGrC,OAAO,wCAAwC,CAAC;AAMhD,OAAO,iBAAiB,CAAC;AAGzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAG9E,cAAc,iBAAiB,CAAC;AAEhC;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C;AAGD,cAAc,oBAAoB,CAAC;AAEnC,cAAc,eAAe,CAAC;AAE9B,OAAO,YAAY,CAAC;AACpB,cAAc,YAAY,CAAC"}