@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.
- package/dist/lib/builder/builder-models.d.ts +27 -0
- package/dist/lib/builder/builder-models.d.ts.map +1 -0
- package/dist/lib/builder/builder-models.js +15 -0
- package/dist/lib/builder/builder-models.js.map +1 -0
- package/dist/lib/builder/builder-state.service.d.ts +48 -0
- package/dist/lib/builder/builder-state.service.d.ts.map +1 -0
- package/dist/lib/builder/builder-state.service.js +231 -0
- package/dist/lib/builder/builder-state.service.js.map +1 -0
- package/dist/lib/builder/builder-styles.d.ts +12 -0
- package/dist/lib/builder/builder-styles.d.ts.map +1 -0
- package/dist/lib/builder/builder-styles.js +74 -0
- package/dist/lib/builder/builder-styles.js.map +1 -0
- package/dist/lib/builder/conditional-rule-editor.component.d.ts +53 -0
- package/dist/lib/builder/conditional-rule-editor.component.d.ts.map +1 -0
- package/dist/lib/builder/conditional-rule-editor.component.js +282 -0
- package/dist/lib/builder/conditional-rule-editor.component.js.map +1 -0
- package/dist/lib/builder/design-panel.component.d.ts +71 -0
- package/dist/lib/builder/design-panel.component.d.ts.map +1 -0
- package/dist/lib/builder/design-panel.component.js +530 -0
- package/dist/lib/builder/design-panel.component.js.map +1 -0
- package/dist/lib/builder/design-panel.styles.d.ts +10 -0
- package/dist/lib/builder/design-panel.styles.d.ts.map +1 -0
- package/dist/lib/builder/design-panel.styles.js +78 -0
- package/dist/lib/builder/design-panel.styles.js.map +1 -0
- package/dist/lib/builder/design-state.service.d.ts +51 -0
- package/dist/lib/builder/design-state.service.d.ts.map +1 -0
- package/dist/lib/builder/design-state.service.js +108 -0
- package/dist/lib/builder/design-state.service.js.map +1 -0
- package/dist/lib/builder/distribution-links.d.ts +29 -0
- package/dist/lib/builder/distribution-links.d.ts.map +1 -0
- package/dist/lib/builder/distribution-links.js +53 -0
- package/dist/lib/builder/distribution-links.js.map +1 -0
- package/dist/lib/builder/distribution-manager.component.d.ts +53 -0
- package/dist/lib/builder/distribution-manager.component.d.ts.map +1 -0
- package/dist/lib/builder/distribution-manager.component.js +330 -0
- package/dist/lib/builder/distribution-manager.component.js.map +1 -0
- package/dist/lib/builder/distribution.service.d.ts +62 -0
- package/dist/lib/builder/distribution.service.d.ts.map +1 -0
- package/dist/lib/builder/distribution.service.js +140 -0
- package/dist/lib/builder/distribution.service.js.map +1 -0
- package/dist/lib/builder/entity-names.d.ts +20 -0
- package/dist/lib/builder/entity-names.d.ts.map +1 -0
- package/dist/lib/builder/entity-names.js +20 -0
- package/dist/lib/builder/entity-names.js.map +1 -0
- package/dist/lib/builder/form-builder.component.d.ts +92 -0
- package/dist/lib/builder/form-builder.component.d.ts.map +1 -0
- package/dist/lib/builder/form-builder.component.js +627 -0
- package/dist/lib/builder/form-builder.component.js.map +1 -0
- package/dist/lib/builder/form-builder.styles.d.ts +3 -0
- package/dist/lib/builder/form-builder.styles.d.ts.map +1 -0
- package/dist/lib/builder/form-builder.styles.js +94 -0
- package/dist/lib/builder/form-builder.styles.js.map +1 -0
- package/dist/lib/builder/form-preview-modal.component.d.ts +25 -0
- package/dist/lib/builder/form-preview-modal.component.d.ts.map +1 -0
- package/dist/lib/builder/form-preview-modal.component.js +90 -0
- package/dist/lib/builder/form-preview-modal.component.js.map +1 -0
- package/dist/lib/builder/index.d.ts +31 -0
- package/dist/lib/builder/index.d.ts.map +1 -0
- package/dist/lib/builder/index.js +32 -0
- package/dist/lib/builder/index.js.map +1 -0
- package/dist/lib/builder/json-fields.d.ts +14 -0
- package/dist/lib/builder/json-fields.d.ts.map +1 -0
- package/dist/lib/builder/json-fields.js +100 -0
- package/dist/lib/builder/json-fields.js.map +1 -0
- package/dist/lib/builder/publish.service.d.ts +34 -0
- package/dist/lib/builder/publish.service.d.ts.map +1 -0
- package/dist/lib/builder/publish.service.js +110 -0
- package/dist/lib/builder/publish.service.js.map +1 -0
- package/dist/lib/builder/qr-code.d.ts +26 -0
- package/dist/lib/builder/qr-code.d.ts.map +1 -0
- package/dist/lib/builder/qr-code.js +361 -0
- package/dist/lib/builder/qr-code.js.map +1 -0
- package/dist/lib/builder/question-editor.component.d.ts +41 -0
- package/dist/lib/builder/question-editor.component.d.ts.map +1 -0
- package/dist/lib/builder/question-editor.component.js +228 -0
- package/dist/lib/builder/question-editor.component.js.map +1 -0
- package/dist/lib/builder/question-type-catalog.d.ts +29 -0
- package/dist/lib/builder/question-type-catalog.d.ts.map +1 -0
- package/dist/lib/builder/question-type-catalog.js +43 -0
- package/dist/lib/builder/question-type-catalog.js.map +1 -0
- package/dist/lib/builder/reorder.d.ts +10 -0
- package/dist/lib/builder/reorder.d.ts.map +1 -0
- package/dist/lib/builder/reorder.js +18 -0
- package/dist/lib/builder/reorder.js.map +1 -0
- package/dist/lib/builder/snapshot-builder.d.ts +16 -0
- package/dist/lib/builder/snapshot-builder.d.ts.map +1 -0
- package/dist/lib/builder/snapshot-builder.js +93 -0
- package/dist/lib/builder/snapshot-builder.js.map +1 -0
- package/dist/lib/builder/style-tokens.d.ts +54 -0
- package/dist/lib/builder/style-tokens.d.ts.map +1 -0
- package/dist/lib/builder/style-tokens.js +71 -0
- package/dist/lib/builder/style-tokens.js.map +1 -0
- package/dist/lib/builder/validation-rule-editor.component.d.ts +27 -0
- package/dist/lib/builder/validation-rule-editor.component.d.ts.map +1 -0
- package/dist/lib/builder/validation-rule-editor.component.js +179 -0
- package/dist/lib/builder/validation-rule-editor.component.js.map +1 -0
- package/dist/lib/dashboard/components/distribution-chart.component.d.ts +14 -0
- package/dist/lib/dashboard/components/distribution-chart.component.d.ts.map +1 -0
- package/dist/lib/dashboard/components/distribution-chart.component.js +85 -0
- package/dist/lib/dashboard/components/distribution-chart.component.js.map +1 -0
- package/dist/lib/dashboard/components/funnel-chart.component.d.ts +14 -0
- package/dist/lib/dashboard/components/funnel-chart.component.d.ts.map +1 -0
- package/dist/lib/dashboard/components/funnel-chart.component.js +101 -0
- package/dist/lib/dashboard/components/funnel-chart.component.js.map +1 -0
- package/dist/lib/dashboard/components/question-breakdown.component.d.ts +16 -0
- package/dist/lib/dashboard/components/question-breakdown.component.d.ts.map +1 -0
- package/dist/lib/dashboard/components/question-breakdown.component.js +213 -0
- package/dist/lib/dashboard/components/question-breakdown.component.js.map +1 -0
- package/dist/lib/dashboard/components/response-detail.component.d.ts +11 -0
- package/dist/lib/dashboard/components/response-detail.component.d.ts.map +1 -0
- package/dist/lib/dashboard/components/response-detail.component.js +113 -0
- package/dist/lib/dashboard/components/response-detail.component.js.map +1 -0
- package/dist/lib/dashboard/components/response-list.component.d.ts +27 -0
- package/dist/lib/dashboard/components/response-list.component.d.ts.map +1 -0
- package/dist/lib/dashboard/components/response-list.component.js +196 -0
- package/dist/lib/dashboard/components/response-list.component.js.map +1 -0
- package/dist/lib/dashboard/components/summary-stats.component.d.ts +12 -0
- package/dist/lib/dashboard/components/summary-stats.component.d.ts.map +1 -0
- package/dist/lib/dashboard/components/summary-stats.component.js +112 -0
- package/dist/lib/dashboard/components/summary-stats.component.js.map +1 -0
- package/dist/lib/dashboard/forms-reporting-dashboard.component.d.ts +64 -0
- package/dist/lib/dashboard/forms-reporting-dashboard.component.d.ts.map +1 -0
- package/dist/lib/dashboard/forms-reporting-dashboard.component.js +397 -0
- package/dist/lib/dashboard/forms-reporting-dashboard.component.js.map +1 -0
- package/dist/lib/dashboard/index.d.ts +19 -0
- package/dist/lib/dashboard/index.d.ts.map +1 -0
- package/dist/lib/dashboard/index.js +19 -0
- package/dist/lib/dashboard/index.js.map +1 -0
- package/dist/lib/dashboard/models/reporting.model.d.ts +125 -0
- package/dist/lib/dashboard/models/reporting.model.d.ts.map +1 -0
- package/dist/lib/dashboard/models/reporting.model.js +2 -0
- package/dist/lib/dashboard/models/reporting.model.js.map +1 -0
- package/dist/lib/dashboard/services/forms-reporting-export.service.d.ts +21 -0
- package/dist/lib/dashboard/services/forms-reporting-export.service.d.ts.map +1 -0
- package/dist/lib/dashboard/services/forms-reporting-export.service.js +83 -0
- package/dist/lib/dashboard/services/forms-reporting-export.service.js.map +1 -0
- package/dist/lib/dashboard/services/forms-reporting-mock.d.ts +18 -0
- package/dist/lib/dashboard/services/forms-reporting-mock.d.ts.map +1 -0
- package/dist/lib/dashboard/services/forms-reporting-mock.js +147 -0
- package/dist/lib/dashboard/services/forms-reporting-mock.js.map +1 -0
- package/dist/lib/dashboard/services/forms-reporting.service.d.ts +45 -0
- package/dist/lib/dashboard/services/forms-reporting.service.d.ts.map +1 -0
- package/dist/lib/dashboard/services/forms-reporting.service.js +230 -0
- package/dist/lib/dashboard/services/forms-reporting.service.js.map +1 -0
- package/dist/lib/dashboard/services/reporting-aggregations.d.ts +40 -0
- package/dist/lib/dashboard/services/reporting-aggregations.d.ts.map +1 -0
- package/dist/lib/dashboard/services/reporting-aggregations.js +379 -0
- package/dist/lib/dashboard/services/reporting-aggregations.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsCommonAddress/mjbizappscommonaddress.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsCommonAddress/mjbizappscommonaddress.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsCommonAddress/mjbizappscommonaddress.form.component.js +104 -0
- package/dist/lib/generated/Entities/mjBizAppsCommonAddress/mjbizappscommonaddress.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsCommonAddressLink/mjbizappscommonaddresslink.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsCommonAddressLink/mjbizappscommonaddresslink.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsCommonAddressLink/mjbizappscommonaddresslink.form.component.js +83 -0
- package/dist/lib/generated/Entities/mjBizAppsCommonAddressLink/mjbizappscommonaddresslink.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsCommonAddressType/mjbizappscommonaddresstype.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsCommonAddressType/mjbizappscommonaddresstype.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsCommonAddressType/mjbizappscommonaddresstype.form.component.js +96 -0
- package/dist/lib/generated/Entities/mjBizAppsCommonAddressType/mjbizappscommonaddresstype.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsCommonContactMethod/mjbizappscommoncontactmethod.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsCommonContactMethod/mjbizappscommoncontactmethod.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsCommonContactMethod/mjbizappscommoncontactmethod.form.component.js +83 -0
- package/dist/lib/generated/Entities/mjBizAppsCommonContactMethod/mjbizappscommoncontactmethod.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsCommonContactType/mjbizappscommoncontacttype.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsCommonContactType/mjbizappscommoncontacttype.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsCommonContactType/mjbizappscommoncontacttype.form.component.js +96 -0
- package/dist/lib/generated/Entities/mjBizAppsCommonContactType/mjbizappscommoncontacttype.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsCommonOrganization/mjbizappscommonorganization.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsCommonOrganization/mjbizappscommonorganization.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsCommonOrganization/mjbizappscommonorganization.form.component.js +172 -0
- package/dist/lib/generated/Entities/mjBizAppsCommonOrganization/mjbizappscommonorganization.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsCommonOrganizationType/mjbizappscommonorganizationtype.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsCommonOrganizationType/mjbizappscommonorganizationtype.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsCommonOrganizationType/mjbizappscommonorganizationtype.form.component.js +90 -0
- package/dist/lib/generated/Entities/mjBizAppsCommonOrganizationType/mjbizappscommonorganizationtype.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsCommonPerson/mjbizappscommonperson.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsCommonPerson/mjbizappscommonperson.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsCommonPerson/mjbizappscommonperson.form.component.js +274 -0
- package/dist/lib/generated/Entities/mjBizAppsCommonPerson/mjbizappscommonperson.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsCommonRelationship/mjbizappscommonrelationship.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsCommonRelationship/mjbizappscommonrelationship.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsCommonRelationship/mjbizappscommonrelationship.form.component.js +91 -0
- package/dist/lib/generated/Entities/mjBizAppsCommonRelationship/mjbizappscommonrelationship.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsCommonRelationshipType/mjbizappscommonrelationshiptype.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsCommonRelationshipType/mjbizappscommonrelationshiptype.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsCommonRelationshipType/mjbizappscommonrelationshiptype.form.component.js +100 -0
- package/dist/lib/generated/Entities/mjBizAppsCommonRelationshipType/mjbizappscommonrelationshiptype.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsFormsForm/mjbizappsformsform.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsFormsForm/mjbizappsformsform.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsFormsForm/mjbizappsformsform.form.component.js +174 -0
- package/dist/lib/generated/Entities/mjBizAppsFormsForm/mjbizappsformsform.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsFormsFormCategory/mjbizappsformsformcategory.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsFormsFormCategory/mjbizappsformsformcategory.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsFormsFormCategory/mjbizappsformsformcategory.form.component.js +118 -0
- package/dist/lib/generated/Entities/mjBizAppsFormsFormCategory/mjbizappsformsformcategory.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsFormsFormDistribution/mjbizappsformsformdistribution.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsFormsFormDistribution/mjbizappsformsformdistribution.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsFormsFormDistribution/mjbizappsformsformdistribution.form.component.js +93 -0
- package/dist/lib/generated/Entities/mjBizAppsFormsFormDistribution/mjbizappsformsformdistribution.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsFormsFormPage/mjbizappsformsformpage.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsFormsFormPage/mjbizappsformsformpage.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsFormsFormPage/mjbizappsformsformpage.form.component.js +96 -0
- package/dist/lib/generated/Entities/mjBizAppsFormsFormPage/mjbizappsformsformpage.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsFormsFormQuestion/mjbizappsformsformquestion.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsFormsFormQuestion/mjbizappsformsformquestion.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsFormsFormQuestion/mjbizappsformsformquestion.form.component.js +132 -0
- package/dist/lib/generated/Entities/mjBizAppsFormsFormQuestion/mjbizappsformsformquestion.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsFormsFormQuestionOption/mjbizappsformsformquestionoption.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsFormsFormQuestionOption/mjbizappsformsformquestionoption.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsFormsFormQuestionOption/mjbizappsformsformquestionoption.form.component.js +77 -0
- package/dist/lib/generated/Entities/mjBizAppsFormsFormQuestionOption/mjbizappsformsformquestionoption.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsFormsFormResponse/mjbizappsformsformresponse.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsFormsFormResponse/mjbizappsformsformresponse.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsFormsFormResponse/mjbizappsformsformresponse.form.component.js +108 -0
- package/dist/lib/generated/Entities/mjBizAppsFormsFormResponse/mjbizappsformsformresponse.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsFormsFormResponseAnswer/mjbizappsformsformresponseanswer.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsFormsFormResponseAnswer/mjbizappsformsformresponseanswer.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsFormsFormResponseAnswer/mjbizappsformsformresponseanswer.form.component.js +99 -0
- package/dist/lib/generated/Entities/mjBizAppsFormsFormResponseAnswer/mjbizappsformsformresponseanswer.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsFormsFormStyle/mjbizappsformsformstyle.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsFormsFormStyle/mjbizappsformsformstyle.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsFormsFormStyle/mjbizappsformsformstyle.form.component.js +100 -0
- package/dist/lib/generated/Entities/mjBizAppsFormsFormStyle/mjbizappsformsformstyle.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsFormsFormVersion/mjbizappsformsformversion.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsFormsFormVersion/mjbizappsformsformversion.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsFormsFormVersion/mjbizappsformsformversion.form.component.js +96 -0
- package/dist/lib/generated/Entities/mjBizAppsFormsFormVersion/mjbizappsformsformversion.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTask/mjbizappstaskstask.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTask/mjbizappstaskstask.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTask/mjbizappstaskstask.form.component.js +274 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTask/mjbizappstaskstask.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskActivity/mjbizappstaskstaskactivity.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskActivity/mjbizappstaskstaskactivity.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskActivity/mjbizappstaskstaskactivity.form.component.js +67 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskActivity/mjbizappstaskstaskactivity.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskAssignment/mjbizappstaskstaskassignment.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskAssignment/mjbizappstaskstaskassignment.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskAssignment/mjbizappstaskstaskassignment.form.component.js +90 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskAssignment/mjbizappstaskstaskassignment.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskCategory/mjbizappstaskstaskcategory.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskCategory/mjbizappstaskstaskcategory.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskCategory/mjbizappstaskstaskcategory.form.component.js +124 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskCategory/mjbizappstaskstaskcategory.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskComment/mjbizappstaskstaskcomment.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskComment/mjbizappstaskstaskcomment.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskComment/mjbizappstaskstaskcomment.form.component.js +86 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskComment/mjbizappstaskstaskcomment.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskDecision/mjbizappstaskstaskdecision.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskDecision/mjbizappstaskstaskdecision.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskDecision/mjbizappstaskstaskdecision.form.component.js +67 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskDecision/mjbizappstaskstaskdecision.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskDecisionOutcome/mjbizappstaskstaskdecisionoutcome.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskDecisionOutcome/mjbizappstaskstaskdecisionoutcome.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskDecisionOutcome/mjbizappstaskstaskdecisionoutcome.form.component.js +86 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskDecisionOutcome/mjbizappstaskstaskdecisionoutcome.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskDependency/mjbizappstaskstaskdependency.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskDependency/mjbizappstaskstaskdependency.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskDependency/mjbizappstaskstaskdependency.form.component.js +61 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskDependency/mjbizappstaskstaskdependency.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskLink/mjbizappstaskstasklink.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskLink/mjbizappstaskstasklink.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskLink/mjbizappstaskstasklink.form.component.js +63 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskLink/mjbizappstaskstasklink.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskNotificationConfig/mjbizappstaskstasknotificationconfig.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskNotificationConfig/mjbizappstaskstasknotificationconfig.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskNotificationConfig/mjbizappstaskstasknotificationconfig.form.component.js +69 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskNotificationConfig/mjbizappstaskstasknotificationconfig.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskNotificationLog/mjbizappstaskstasknotificationlog.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskNotificationLog/mjbizappstaskstasknotificationlog.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskNotificationLog/mjbizappstaskstasknotificationlog.form.component.js +63 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskNotificationLog/mjbizappstaskstasknotificationlog.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskRole/mjbizappstaskstaskrole.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskRole/mjbizappstaskstaskrole.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskRole/mjbizappstaskstaskrole.form.component.js +98 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskRole/mjbizappstaskstaskrole.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTag/mjbizappstaskstasktag.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTag/mjbizappstaskstasktag.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTag/mjbizappstaskstasktag.form.component.js +80 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTag/mjbizappstaskstasktag.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTagLink/mjbizappstaskstasktaglink.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTagLink/mjbizappstaskstasktaglink.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTagLink/mjbizappstaskstasktaglink.form.component.js +59 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTagLink/mjbizappstaskstasktaglink.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplate/mjbizappstaskstasktemplate.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplate/mjbizappstaskstasktemplate.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplate/mjbizappstaskstasktemplate.form.component.js +84 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplate/mjbizappstaskstasktemplate.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplateItem/mjbizappstaskstasktemplateitem.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplateItem/mjbizappstaskstasktemplateitem.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplateItem/mjbizappstaskstasktemplateitem.form.component.js +146 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplateItem/mjbizappstaskstasktemplateitem.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplateItemDependency/mjbizappstaskstasktemplateitemdependency.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplateItemDependency/mjbizappstaskstasktemplateitemdependency.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplateItemDependency/mjbizappstaskstasktemplateitemdependency.form.component.js +61 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplateItemDependency/mjbizappstaskstasktemplateitemdependency.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplateItemRole/mjbizappstaskstasktemplateitemrole.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplateItemRole/mjbizappstaskstasktemplateitemrole.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplateItemRole/mjbizappstaskstasktemplateitemrole.form.component.js +59 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskTemplateItemRole/mjbizappstaskstasktemplateitemrole.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskType/mjbizappstaskstasktype.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskType/mjbizappstaskstasktype.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskType/mjbizappstaskstasktype.form.component.js +132 -0
- package/dist/lib/generated/Entities/mjBizAppsTasksTaskType/mjbizappstaskstasktype.form.component.js.map +1 -0
- package/dist/lib/generated/class-registrations-manifest.d.ts +6 -0
- package/dist/lib/generated/class-registrations-manifest.d.ts.map +1 -0
- package/dist/lib/generated/class-registrations-manifest.js +6 -0
- package/dist/lib/generated/class-registrations-manifest.js.map +1 -0
- package/dist/lib/generated/generated-forms.module.d.ts +61 -0
- package/dist/lib/generated/generated-forms.module.d.ts.map +1 -0
- package/dist/lib/generated/generated-forms.module.js +207 -0
- package/dist/lib/generated/generated-forms.module.js.map +1 -0
- package/dist/lib/home/forms-home-dashboard.component.d.ts +61 -0
- package/dist/lib/home/forms-home-dashboard.component.d.ts.map +1 -0
- package/dist/lib/home/forms-home-dashboard.component.js +379 -0
- package/dist/lib/home/forms-home-dashboard.component.js.map +1 -0
- package/dist/lib/home/forms-home.service.d.ts +24 -0
- package/dist/lib/home/forms-home.service.d.ts.map +1 -0
- package/dist/lib/home/forms-home.service.js +92 -0
- package/dist/lib/home/forms-home.service.js.map +1 -0
- package/dist/lib/home/home-aggregations.d.ts +23 -0
- package/dist/lib/home/home-aggregations.d.ts.map +1 -0
- package/dist/lib/home/home-aggregations.js +64 -0
- package/dist/lib/home/home-aggregations.js.map +1 -0
- package/dist/lib/home/home-models.d.ts +60 -0
- package/dist/lib/home/home-models.d.ts.map +1 -0
- package/dist/lib/home/home-models.js +34 -0
- package/dist/lib/home/home-models.js.map +1 -0
- package/dist/lib/home/index.d.ts +13 -0
- package/dist/lib/home/index.d.ts.map +1 -0
- package/dist/lib/home/index.js +13 -0
- package/dist/lib/home/index.js.map +1 -0
- package/dist/lib/widget/api/form-upload.service.d.ts +41 -0
- package/dist/lib/widget/api/form-upload.service.d.ts.map +1 -0
- package/dist/lib/widget/api/form-upload.service.js +124 -0
- package/dist/lib/widget/api/form-upload.service.js.map +1 -0
- package/dist/lib/widget/api/forms-api.config.d.ts +55 -0
- package/dist/lib/widget/api/forms-api.config.d.ts.map +1 -0
- package/dist/lib/widget/api/forms-api.config.js +40 -0
- package/dist/lib/widget/api/forms-api.config.js.map +1 -0
- package/dist/lib/widget/api/forms-api.graphql.service.d.ts +20 -0
- package/dist/lib/widget/api/forms-api.graphql.service.d.ts.map +1 -0
- package/dist/lib/widget/api/forms-api.graphql.service.js +96 -0
- package/dist/lib/widget/api/forms-api.graphql.service.js.map +1 -0
- package/dist/lib/widget/api/forms-api.interface.d.ts +45 -0
- package/dist/lib/widget/api/forms-api.interface.d.ts.map +1 -0
- package/dist/lib/widget/api/forms-api.interface.js +8 -0
- package/dist/lib/widget/api/forms-api.interface.js.map +1 -0
- package/dist/lib/widget/api/forms-api.mock.service.d.ts +12 -0
- package/dist/lib/widget/api/forms-api.mock.service.d.ts.map +1 -0
- package/dist/lib/widget/api/forms-api.mock.service.js +41 -0
- package/dist/lib/widget/api/forms-api.mock.service.js.map +1 -0
- package/dist/lib/widget/api/mock-form.data.d.ts +8 -0
- package/dist/lib/widget/api/mock-form.data.d.ts.map +1 -0
- package/dist/lib/widget/api/mock-form.data.js +192 -0
- package/dist/lib/widget/api/mock-form.data.js.map +1 -0
- package/dist/lib/widget/api/submission-mapping.d.ts +60 -0
- package/dist/lib/widget/api/submission-mapping.d.ts.map +1 -0
- package/dist/lib/widget/api/submission-mapping.js +47 -0
- package/dist/lib/widget/api/submission-mapping.js.map +1 -0
- package/dist/lib/widget/components/form-one-question.component.d.ts +43 -0
- package/dist/lib/widget/components/form-one-question.component.d.ts.map +1 -0
- package/dist/lib/widget/components/form-one-question.component.js +194 -0
- package/dist/lib/widget/components/form-one-question.component.js.map +1 -0
- package/dist/lib/widget/components/form-progress.component.d.ts +9 -0
- package/dist/lib/widget/components/form-progress.component.d.ts.map +1 -0
- package/dist/lib/widget/components/form-progress.component.js +47 -0
- package/dist/lib/widget/components/form-progress.component.js.map +1 -0
- package/dist/lib/widget/components/form-scroll.component.d.ts +23 -0
- package/dist/lib/widget/components/form-scroll.component.d.ts.map +1 -0
- package/dist/lib/widget/components/form-scroll.component.js +132 -0
- package/dist/lib/widget/components/form-scroll.component.js.map +1 -0
- package/dist/lib/widget/components/questions/form-question.component.d.ts +68 -0
- package/dist/lib/widget/components/questions/form-question.component.d.ts.map +1 -0
- package/dist/lib/widget/components/questions/form-question.component.js +541 -0
- package/dist/lib/widget/components/questions/form-question.component.js.map +1 -0
- package/dist/lib/widget/components/questions/input-mode.d.ts +13 -0
- package/dist/lib/widget/components/questions/input-mode.d.ts.map +1 -0
- package/dist/lib/widget/components/questions/input-mode.js +42 -0
- package/dist/lib/widget/components/questions/input-mode.js.map +1 -0
- package/dist/lib/widget/components/turnstile-challenge.component.d.ts +52 -0
- package/dist/lib/widget/components/turnstile-challenge.component.d.ts.map +1 -0
- package/dist/lib/widget/components/turnstile-challenge.component.js +123 -0
- package/dist/lib/widget/components/turnstile-challenge.component.js.map +1 -0
- package/dist/lib/widget/core/answer-value.d.ts +17 -0
- package/dist/lib/widget/core/answer-value.d.ts.map +1 -0
- package/dist/lib/widget/core/answer-value.js +41 -0
- package/dist/lib/widget/core/answer-value.js.map +1 -0
- package/dist/lib/widget/core/autosave-controller.d.ts +65 -0
- package/dist/lib/widget/core/autosave-controller.d.ts.map +1 -0
- package/dist/lib/widget/core/autosave-controller.js +134 -0
- package/dist/lib/widget/core/autosave-controller.js.map +1 -0
- package/dist/lib/widget/core/client-id.d.ts +17 -0
- package/dist/lib/widget/core/client-id.d.ts.map +1 -0
- package/dist/lib/widget/core/client-id.js +52 -0
- package/dist/lib/widget/core/client-id.js.map +1 -0
- package/dist/lib/widget/core/form-runtime.d.ts +34 -0
- package/dist/lib/widget/core/form-runtime.d.ts.map +1 -0
- package/dist/lib/widget/core/form-runtime.js +123 -0
- package/dist/lib/widget/core/form-runtime.js.map +1 -0
- package/dist/lib/widget/core/one-question-stepper.d.ts +20 -0
- package/dist/lib/widget/core/one-question-stepper.d.ts.map +1 -0
- package/dist/lib/widget/core/one-question-stepper.js +23 -0
- package/dist/lib/widget/core/one-question-stepper.js.map +1 -0
- package/dist/lib/widget/core/submit-phase.d.ts +31 -0
- package/dist/lib/widget/core/submit-phase.d.ts.map +1 -0
- package/dist/lib/widget/core/submit-phase.js +21 -0
- package/dist/lib/widget/core/submit-phase.js.map +1 -0
- package/dist/lib/widget/core/theming.d.ts +17 -0
- package/dist/lib/widget/core/theming.d.ts.map +1 -0
- package/dist/lib/widget/core/theming.js +36 -0
- package/dist/lib/widget/core/theming.js.map +1 -0
- package/dist/lib/widget/core/turnstile-gate.d.ts +42 -0
- package/dist/lib/widget/core/turnstile-gate.d.ts.map +1 -0
- package/dist/lib/widget/core/turnstile-gate.js +61 -0
- package/dist/lib/widget/core/turnstile-gate.js.map +1 -0
- package/dist/lib/widget/core/turnstile-loader.d.ts +34 -0
- package/dist/lib/widget/core/turnstile-loader.d.ts.map +1 -0
- package/dist/lib/widget/core/turnstile-loader.js +68 -0
- package/dist/lib/widget/core/turnstile-loader.js.map +1 -0
- package/dist/lib/widget/core/validation.d.ts +19 -0
- package/dist/lib/widget/core/validation.d.ts.map +1 -0
- package/dist/lib/widget/core/validation.js +105 -0
- package/dist/lib/widget/core/validation.js.map +1 -0
- package/dist/lib/widget/index.d.ts +27 -0
- package/dist/lib/widget/index.d.ts.map +1 -0
- package/dist/lib/widget/index.js +30 -0
- package/dist/lib/widget/index.js.map +1 -0
- package/dist/lib/widget/mj-form.component.d.ts +114 -0
- package/dist/lib/widget/mj-form.component.d.ts.map +1 -0
- package/dist/lib/widget/mj-form.component.js +428 -0
- package/dist/lib/widget/mj-form.component.js.map +1 -0
- package/dist/lib/widget/register-element.d.ts +8 -0
- package/dist/lib/widget/register-element.d.ts.map +1 -0
- package/dist/lib/widget/register-element.js +98 -0
- package/dist/lib/widget/register-element.js.map +1 -0
- package/dist/public-api.d.ts +23 -0
- package/dist/public-api.d.ts.map +1 -0
- package/dist/public-api.js +33 -0
- package/dist/public-api.js.map +1 -0
- package/dist/widget-entry.d.ts +2 -0
- package/dist/widget-entry.d.ts.map +1 -0
- package/dist/widget-entry.js +20 -0
- package/dist/widget-entry.js.map +1 -0
- package/package.json +53 -5
- package/README.md +0 -3
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Forms reporting dashboard (WP-F) public surface.
|
|
3
|
+
*
|
|
4
|
+
* Importing this barrel triggers the `@RegisterClass(BaseDashboard,
|
|
5
|
+
* 'FormsReportingDashboard')` decorator on the dashboard component, making it
|
|
6
|
+
* resolvable by the MJ ClassFactory from the Dashboard metadata's DriverClass.
|
|
7
|
+
*/
|
|
8
|
+
export * from './models/reporting.model';
|
|
9
|
+
export * from './services/reporting-aggregations';
|
|
10
|
+
export * from './services/forms-reporting.service';
|
|
11
|
+
export * from './services/forms-reporting-export.service';
|
|
12
|
+
export * from './components/summary-stats.component';
|
|
13
|
+
export * from './components/question-breakdown.component';
|
|
14
|
+
export * from './components/distribution-chart.component';
|
|
15
|
+
export * from './components/funnel-chart.component';
|
|
16
|
+
export * from './components/response-list.component';
|
|
17
|
+
export * from './components/response-detail.component';
|
|
18
|
+
export * from './forms-reporting-dashboard.component';
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/dashboard/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,cAAc,0BAA0B,CAAC;AACzC,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sCAAsC,CAAC;AACrD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,qCAAqC,CAAC;AACpD,cAAc,sCAAsC,CAAC;AACrD,cAAc,wCAAwC,CAAC;AACvD,cAAc,uCAAuC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Forms reporting dashboard (WP-F) public surface.
|
|
3
|
+
*
|
|
4
|
+
* Importing this barrel triggers the `@RegisterClass(BaseDashboard,
|
|
5
|
+
* 'FormsReportingDashboard')` decorator on the dashboard component, making it
|
|
6
|
+
* resolvable by the MJ ClassFactory from the Dashboard metadata's DriverClass.
|
|
7
|
+
*/
|
|
8
|
+
export * from './models/reporting.model';
|
|
9
|
+
export * from './services/reporting-aggregations';
|
|
10
|
+
export * from './services/forms-reporting.service';
|
|
11
|
+
export * from './services/forms-reporting-export.service';
|
|
12
|
+
export * from './components/summary-stats.component';
|
|
13
|
+
export * from './components/question-breakdown.component';
|
|
14
|
+
export * from './components/distribution-chart.component';
|
|
15
|
+
export * from './components/funnel-chart.component';
|
|
16
|
+
export * from './components/response-list.component';
|
|
17
|
+
export * from './components/response-detail.component';
|
|
18
|
+
export * from './forms-reporting-dashboard.component';
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/dashboard/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,cAAc,0BAA0B,CAAC;AACzC,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sCAAsC,CAAC;AACrD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,qCAAqC,CAAC;AACpD,cAAc,sCAAsC,CAAC;AACrD,cAAc,wCAAwC,CAAC;AACvD,cAAc,uCAAuC,CAAC"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* View-model types for the Forms reporting dashboard (WP-F).
|
|
3
|
+
*
|
|
4
|
+
* These are the shapes the dashboard components render. The data service
|
|
5
|
+
* (`FormsReportingService`) builds them from RunView/RunViews results and the
|
|
6
|
+
* published-form snapshot (`PublishedFormDefinition` from `@mj-biz-apps/forms-entities`).
|
|
7
|
+
* Nothing here is persisted — they are purely the report's read-model.
|
|
8
|
+
*/
|
|
9
|
+
import type { FormQuestionType, PublishedFormQuestion } from '@mj-biz-apps/forms-entities';
|
|
10
|
+
/** A form the user can pick to report on, plus its published-version pointer. */
|
|
11
|
+
export interface ReportableForm {
|
|
12
|
+
formId: string;
|
|
13
|
+
formVersionId: string;
|
|
14
|
+
name: string;
|
|
15
|
+
/** Complete responses (Partials excluded) — used to disable empty forms in the picker. */
|
|
16
|
+
responseCount: number;
|
|
17
|
+
}
|
|
18
|
+
/** Top-line summary statistics for the selected form. */
|
|
19
|
+
export interface FormSummaryStats {
|
|
20
|
+
/** Total responses regardless of status. */
|
|
21
|
+
totalResponses: number;
|
|
22
|
+
/** Responses with Status = 'Complete'. */
|
|
23
|
+
completeResponses: number;
|
|
24
|
+
/** Responses with Status = 'Partial'. */
|
|
25
|
+
partialResponses: number;
|
|
26
|
+
/** completeResponses / totalResponses, 0..1. 0 when no responses. */
|
|
27
|
+
completionRate: number;
|
|
28
|
+
/**
|
|
29
|
+
* Average seconds between StartedAt and SubmittedAt across complete responses
|
|
30
|
+
* that have both timestamps. Null when not computable.
|
|
31
|
+
*/
|
|
32
|
+
averageCompletionSeconds: number | null;
|
|
33
|
+
/** Most recent SubmittedAt across complete responses, or null. */
|
|
34
|
+
lastSubmittedAt: Date | null;
|
|
35
|
+
}
|
|
36
|
+
/** One bucket in a choice/distribution breakdown. */
|
|
37
|
+
export interface DistributionBucket {
|
|
38
|
+
/** Option label (or raw value for non-option answers). */
|
|
39
|
+
label: string;
|
|
40
|
+
/** Number of answers in this bucket. */
|
|
41
|
+
count: number;
|
|
42
|
+
/** count / total answered for the question, 0..1. */
|
|
43
|
+
fraction: number;
|
|
44
|
+
}
|
|
45
|
+
/** Aggregates for numeric-family questions (Number, Rating, NPS). */
|
|
46
|
+
export interface NumericAggregate {
|
|
47
|
+
answered: number;
|
|
48
|
+
min: number | null;
|
|
49
|
+
max: number | null;
|
|
50
|
+
average: number | null;
|
|
51
|
+
/** NPS score (-100..100); only populated for NPS questions. */
|
|
52
|
+
npsScore: number | null;
|
|
53
|
+
/** NPS segment counts; only populated for NPS questions. */
|
|
54
|
+
npsSegments?: {
|
|
55
|
+
detractors: number;
|
|
56
|
+
passives: number;
|
|
57
|
+
promoters: number;
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/** How a given question's answers should be visualised. */
|
|
61
|
+
export type BreakdownKind = 'distribution' | 'numeric' | 'freeText' | 'boolean';
|
|
62
|
+
/** Per-question breakdown view-model. */
|
|
63
|
+
export interface QuestionBreakdown {
|
|
64
|
+
questionId: string;
|
|
65
|
+
prompt: string;
|
|
66
|
+
type: FormQuestionType;
|
|
67
|
+
kind: BreakdownKind;
|
|
68
|
+
/** Total responses that answered this question. */
|
|
69
|
+
answeredCount: number;
|
|
70
|
+
/** Choice/boolean distribution buckets (kind 'distribution' | 'boolean'). */
|
|
71
|
+
buckets: DistributionBucket[];
|
|
72
|
+
/** Numeric aggregates (kind 'numeric'). */
|
|
73
|
+
numeric: NumericAggregate | null;
|
|
74
|
+
/** Free-text answers (kind 'freeText'); capped for display. */
|
|
75
|
+
textAnswers: string[];
|
|
76
|
+
}
|
|
77
|
+
/** One step in the page completion / drop-off funnel. */
|
|
78
|
+
export interface FunnelStep {
|
|
79
|
+
pageId: string;
|
|
80
|
+
title: string;
|
|
81
|
+
displayOrder: number;
|
|
82
|
+
/** Responses that reached (answered at least one question on) this page. */
|
|
83
|
+
reached: number;
|
|
84
|
+
/** reached / firstStepReached, 0..1. */
|
|
85
|
+
retention: number;
|
|
86
|
+
/** Drop relative to the previous step, 0..1. */
|
|
87
|
+
dropOff: number;
|
|
88
|
+
}
|
|
89
|
+
/** A row in the individual-response list/grid. */
|
|
90
|
+
export interface ResponseListRow {
|
|
91
|
+
responseId: string;
|
|
92
|
+
status: 'Complete' | 'Partial';
|
|
93
|
+
startedAt: Date | null;
|
|
94
|
+
submittedAt: Date | null;
|
|
95
|
+
respondent: string;
|
|
96
|
+
answeredCount: number;
|
|
97
|
+
}
|
|
98
|
+
/** One labelled answer in the individual-response detail view. */
|
|
99
|
+
export interface ResponseAnswerView {
|
|
100
|
+
questionId: string;
|
|
101
|
+
prompt: string;
|
|
102
|
+
type: FormQuestionType;
|
|
103
|
+
/** Human-readable rendering of the answer. */
|
|
104
|
+
displayValue: string;
|
|
105
|
+
}
|
|
106
|
+
/** The full individual-response detail view-model. */
|
|
107
|
+
export interface ResponseDetail {
|
|
108
|
+
responseId: string;
|
|
109
|
+
status: 'Complete' | 'Partial';
|
|
110
|
+
startedAt: Date | null;
|
|
111
|
+
submittedAt: Date | null;
|
|
112
|
+
respondent: string;
|
|
113
|
+
answers: ResponseAnswerView[];
|
|
114
|
+
}
|
|
115
|
+
/** The complete dashboard data bundle for one form version. */
|
|
116
|
+
export interface FormReportData {
|
|
117
|
+
form: ReportableForm;
|
|
118
|
+
/** The published questions, flattened in page/display order, for labelling. */
|
|
119
|
+
questions: PublishedFormQuestion[];
|
|
120
|
+
summary: FormSummaryStats;
|
|
121
|
+
breakdowns: QuestionBreakdown[];
|
|
122
|
+
funnel: FunnelStep[];
|
|
123
|
+
responses: ResponseListRow[];
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=reporting.model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reporting.model.d.ts","sourceRoot":"","sources":["../../../../src/lib/dashboard/models/reporting.model.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reporting.model.js","sourceRoot":"","sources":["../../../../src/lib/dashboard/models/reporting.model.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ExportFormat } from '@memberjunction/export-engine';
|
|
2
|
+
import type { mjBizAppsFormsFormResponseAnswerEntityType } from '@mj-biz-apps/forms-entities';
|
|
3
|
+
import type { FormReportData } from '../models/reporting.model';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
type AnswerRow = mjBizAppsFormsFormResponseAnswerEntityType;
|
|
6
|
+
export declare class FormsReportingExportService {
|
|
7
|
+
private readonly exporter;
|
|
8
|
+
/**
|
|
9
|
+
* Exports the response matrix for a report. The caller supplies the raw
|
|
10
|
+
* answer rows (the dashboard already holds them) so we can pivot to one row
|
|
11
|
+
* per response with a column per non-display question.
|
|
12
|
+
*/
|
|
13
|
+
exportResponses(report: FormReportData, answers: AnswerRow[], format: ExportFormat): Promise<void>;
|
|
14
|
+
private buildColumns;
|
|
15
|
+
private buildMatrix;
|
|
16
|
+
private safeName;
|
|
17
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FormsReportingExportService, never>;
|
|
18
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<FormsReportingExportService>;
|
|
19
|
+
}
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=forms-reporting-export.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forms-reporting-export.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/dashboard/services/forms-reporting-export.service.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAA4B,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC5F,OAAO,KAAK,EACV,0CAA0C,EAE3C,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;;AAGhE,KAAK,SAAS,GAAG,0CAA0C,CAAC;AAE5D,qBACa,2BAA2B;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAElD;;;;OAIG;IACU,eAAe,CAC1B,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,SAAS,EAAE,EACpB,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,IAAI,CAAC;IAchB,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,WAAW;IAkCnB,OAAO,CAAC,QAAQ;yCA1EL,2BAA2B;6CAA3B,2BAA2B;CA6EvC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CSV/Excel export for the Forms reporting dashboard (WP-F).
|
|
3
|
+
*
|
|
4
|
+
* Wraps MJ's `ExportService` (`@memberjunction/ng-export-service`) — no bespoke
|
|
5
|
+
* file writing. Builds a flat response x question matrix (one row per response,
|
|
6
|
+
* one column per question) so the export is analysis-ready in Excel/CSV.
|
|
7
|
+
*/
|
|
8
|
+
import { Injectable, inject } from '@angular/core';
|
|
9
|
+
import { ExportService } from '@memberjunction/ng-export-service';
|
|
10
|
+
import { renderAnswer } from './reporting-aggregations';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
export class FormsReportingExportService {
|
|
13
|
+
exporter = inject(ExportService);
|
|
14
|
+
/**
|
|
15
|
+
* Exports the response matrix for a report. The caller supplies the raw
|
|
16
|
+
* answer rows (the dashboard already holds them) so we can pivot to one row
|
|
17
|
+
* per response with a column per non-display question.
|
|
18
|
+
*/
|
|
19
|
+
async exportResponses(report, answers, format) {
|
|
20
|
+
const questions = report.questions.filter((q) => q.type !== 'Statement');
|
|
21
|
+
const columns = this.buildColumns(questions);
|
|
22
|
+
const data = this.buildMatrix(report, questions, answers);
|
|
23
|
+
const fileName = `${this.safeName(report.form.name)}-responses`;
|
|
24
|
+
await this.exporter.exportAndDownload(data, {
|
|
25
|
+
format,
|
|
26
|
+
columns,
|
|
27
|
+
fileName,
|
|
28
|
+
sheetName: 'Responses',
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
buildColumns(questions) {
|
|
32
|
+
const cols = [
|
|
33
|
+
{ name: 'responseId', displayName: 'Response ID', dataType: 'string' },
|
|
34
|
+
{ name: 'status', displayName: 'Status', dataType: 'string' },
|
|
35
|
+
{ name: 'startedAt', displayName: 'Started At', dataType: 'date' },
|
|
36
|
+
{ name: 'submittedAt', displayName: 'Submitted At', dataType: 'date' },
|
|
37
|
+
{ name: 'respondent', displayName: 'Respondent', dataType: 'string' },
|
|
38
|
+
];
|
|
39
|
+
for (const q of questions) {
|
|
40
|
+
cols.push({ name: q.id, displayName: q.prompt, dataType: 'string' });
|
|
41
|
+
}
|
|
42
|
+
return cols;
|
|
43
|
+
}
|
|
44
|
+
buildMatrix(report, questions, answers) {
|
|
45
|
+
const answersByResponse = new Map();
|
|
46
|
+
for (const a of answers) {
|
|
47
|
+
const arr = answersByResponse.get(a.ResponseID);
|
|
48
|
+
if (arr)
|
|
49
|
+
arr.push(a);
|
|
50
|
+
else
|
|
51
|
+
answersByResponse.set(a.ResponseID, [a]);
|
|
52
|
+
}
|
|
53
|
+
const rows = [];
|
|
54
|
+
for (const r of report.responses) {
|
|
55
|
+
const row = {
|
|
56
|
+
responseId: r.responseId,
|
|
57
|
+
status: r.status,
|
|
58
|
+
startedAt: r.startedAt,
|
|
59
|
+
submittedAt: r.submittedAt,
|
|
60
|
+
respondent: r.respondent,
|
|
61
|
+
};
|
|
62
|
+
const answerByQuestion = new Map();
|
|
63
|
+
for (const a of answersByResponse.get(r.responseId) ?? []) {
|
|
64
|
+
answerByQuestion.set(a.QuestionID, a);
|
|
65
|
+
}
|
|
66
|
+
for (const q of questions) {
|
|
67
|
+
const a = answerByQuestion.get(q.id);
|
|
68
|
+
row[q.id] = a ? renderAnswer(q, a) : '';
|
|
69
|
+
}
|
|
70
|
+
rows.push(row);
|
|
71
|
+
}
|
|
72
|
+
return rows;
|
|
73
|
+
}
|
|
74
|
+
safeName(name) {
|
|
75
|
+
return name.replace(/[^a-z0-9-_]+/gi, '-').replace(/-+/g, '-').slice(0, 80) || 'form';
|
|
76
|
+
}
|
|
77
|
+
static ɵfac = function FormsReportingExportService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || FormsReportingExportService)(); };
|
|
78
|
+
static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: FormsReportingExportService, factory: FormsReportingExportService.ɵfac });
|
|
79
|
+
}
|
|
80
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FormsReportingExportService, [{
|
|
81
|
+
type: Injectable
|
|
82
|
+
}], null, null); })();
|
|
83
|
+
//# sourceMappingURL=forms-reporting-export.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forms-reporting-export.service.js","sourceRoot":"","sources":["../../../../src/lib/dashboard/services/forms-reporting-export.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Seeded mock data for the Forms reporting dashboard (WP-F).
|
|
3
|
+
*
|
|
4
|
+
* Lets the dashboard render end-to-end before any real responses exist in the
|
|
5
|
+
* DB. The swap to live data is trivial: the dashboard calls
|
|
6
|
+
* `FormsReportingService` when `useMock` is false and these builders when true.
|
|
7
|
+
* The shapes returned here are EXACTLY what the service produces, so no UI code
|
|
8
|
+
* changes between the two modes.
|
|
9
|
+
*/
|
|
10
|
+
import type { PublishedFormDefinition } from '@mj-biz-apps/forms-entities';
|
|
11
|
+
import type { FormReportData, ReportableForm } from '../models/reporting.model';
|
|
12
|
+
/** Builds the sample published definition used by the mock report. */
|
|
13
|
+
export declare function mockDefinition(): PublishedFormDefinition;
|
|
14
|
+
/** Builds the full mock report bundle. */
|
|
15
|
+
export declare function mockReport(): FormReportData;
|
|
16
|
+
/** The single mock reportable form (for the picker). */
|
|
17
|
+
export declare function mockReportableForms(): ReportableForm[];
|
|
18
|
+
//# sourceMappingURL=forms-reporting-mock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forms-reporting-mock.d.ts","sourceRoot":"","sources":["../../../../src/lib/dashboard/services/forms-reporting-mock.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EACV,uBAAuB,EAIxB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAgBhF,sEAAsE;AACtE,wBAAgB,cAAc,IAAI,uBAAuB,CAwDxD;AAED,0CAA0C;AAC1C,wBAAgB,UAAU,IAAI,cAAc,CAc3C;AAED,wDAAwD;AACxD,wBAAgB,mBAAmB,IAAI,cAAc,EAAE,CAEtD"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { flattenQuestions, buildSummary, buildBreakdowns, buildFunnel, buildResponseRows, } from './reporting-aggregations';
|
|
2
|
+
const MOCK_FORM = {
|
|
3
|
+
formId: 'mock-form-0001',
|
|
4
|
+
formVersionId: 'mock-version-0001',
|
|
5
|
+
name: 'Customer Satisfaction Survey (sample)',
|
|
6
|
+
responseCount: 42,
|
|
7
|
+
};
|
|
8
|
+
/** Builds the sample published definition used by the mock report. */
|
|
9
|
+
export function mockDefinition() {
|
|
10
|
+
const q = (id, type, prompt, options = [], displayOrder = 0) => ({
|
|
11
|
+
id,
|
|
12
|
+
type,
|
|
13
|
+
prompt,
|
|
14
|
+
isRequired: false,
|
|
15
|
+
displayOrder,
|
|
16
|
+
options,
|
|
17
|
+
settings: {},
|
|
18
|
+
});
|
|
19
|
+
return {
|
|
20
|
+
formId: MOCK_FORM.formId,
|
|
21
|
+
formVersionId: MOCK_FORM.formVersionId,
|
|
22
|
+
name: MOCK_FORM.name,
|
|
23
|
+
renderMode: 'Scroll',
|
|
24
|
+
settings: { anonymousAllowed: true, captchaRequired: false },
|
|
25
|
+
styleTokens: { cssVariables: {} },
|
|
26
|
+
pages: [
|
|
27
|
+
{
|
|
28
|
+
id: 'pg-1',
|
|
29
|
+
title: 'About you',
|
|
30
|
+
displayOrder: 0,
|
|
31
|
+
questions: [
|
|
32
|
+
q('q-channel', 'SingleChoice', 'How did you hear about us?', [
|
|
33
|
+
{ id: 'o1', label: 'Search', value: 'search', displayOrder: 0 },
|
|
34
|
+
{ id: 'o2', label: 'Social media', value: 'social', displayOrder: 1 },
|
|
35
|
+
{ id: 'o3', label: 'Friend', value: 'friend', displayOrder: 2 },
|
|
36
|
+
{ id: 'o4', label: 'Other', value: 'other', displayOrder: 3 },
|
|
37
|
+
], 0),
|
|
38
|
+
q('q-features', 'MultiChoice', 'Which features do you use?', [
|
|
39
|
+
{ id: 'f1', label: 'Reporting', value: 'reporting', displayOrder: 0 },
|
|
40
|
+
{ id: 'f2', label: 'Forms', value: 'forms', displayOrder: 1 },
|
|
41
|
+
{ id: 'f3', label: 'Automation', value: 'automation', displayOrder: 2 },
|
|
42
|
+
], 1),
|
|
43
|
+
],
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
id: 'pg-2',
|
|
47
|
+
title: 'Your experience',
|
|
48
|
+
displayOrder: 1,
|
|
49
|
+
questions: [
|
|
50
|
+
q('q-rating', 'Rating', 'Rate your overall experience (1-5)', [], 0),
|
|
51
|
+
q('q-nps', 'NPS', 'How likely are you to recommend us? (0-10)', [], 1),
|
|
52
|
+
q('q-recommend', 'YesNo', 'Would you use us again?', [], 2),
|
|
53
|
+
q('q-comments', 'LongText', 'Any additional comments?', [], 3),
|
|
54
|
+
],
|
|
55
|
+
},
|
|
56
|
+
],
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
/** Builds the full mock report bundle. */
|
|
60
|
+
export function mockReport() {
|
|
61
|
+
const definition = mockDefinition();
|
|
62
|
+
const questions = flattenQuestions(definition);
|
|
63
|
+
const responses = mockResponses();
|
|
64
|
+
const answers = mockAnswers(responses);
|
|
65
|
+
return {
|
|
66
|
+
form: MOCK_FORM,
|
|
67
|
+
questions,
|
|
68
|
+
summary: buildSummary(responses),
|
|
69
|
+
breakdowns: buildBreakdowns(questions, answers),
|
|
70
|
+
funnel: buildFunnel(definition, answers),
|
|
71
|
+
responses: buildResponseRows(responses, answers),
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
/** The single mock reportable form (for the picker). */
|
|
75
|
+
export function mockReportableForms() {
|
|
76
|
+
return [MOCK_FORM];
|
|
77
|
+
}
|
|
78
|
+
function mockResponses() {
|
|
79
|
+
const rows = [];
|
|
80
|
+
const now = Date.now();
|
|
81
|
+
for (let i = 0; i < 42; i++) {
|
|
82
|
+
const complete = i % 4 !== 0; // ~75% complete
|
|
83
|
+
const started = new Date(now - i * 3_600_000);
|
|
84
|
+
const submitted = complete ? new Date(started.getTime() + (90 + (i % 7) * 30) * 1000) : null;
|
|
85
|
+
rows.push(stubResponse(`r-${i}`, complete ? 'Complete' : 'Partial', started, submitted, i));
|
|
86
|
+
}
|
|
87
|
+
return rows;
|
|
88
|
+
}
|
|
89
|
+
function stubResponse(id, status, started, submitted, i) {
|
|
90
|
+
return {
|
|
91
|
+
ID: id,
|
|
92
|
+
FormID: MOCK_FORM.formId,
|
|
93
|
+
FormVersionID: MOCK_FORM.formVersionId,
|
|
94
|
+
Status: status,
|
|
95
|
+
AnonymousSessionID: `sess-${id}`,
|
|
96
|
+
RespondentPersonID: null,
|
|
97
|
+
StartedAt: started,
|
|
98
|
+
SubmittedAt: submitted,
|
|
99
|
+
SourceMetadata: null,
|
|
100
|
+
__mj_CreatedAt: started,
|
|
101
|
+
__mj_UpdatedAt: submitted ?? started,
|
|
102
|
+
Form: MOCK_FORM.name,
|
|
103
|
+
RespondentPerson: i % 5 === 0 ? `Sample Person ${i}` : null,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
function mockAnswers(responses) {
|
|
107
|
+
const channels = ['search', 'social', 'friend', 'other'];
|
|
108
|
+
const out = [];
|
|
109
|
+
let aid = 0;
|
|
110
|
+
for (let i = 0; i < responses.length; i++) {
|
|
111
|
+
const r = responses[i];
|
|
112
|
+
const push = (questionId, vals) => out.push(stubAnswer(`a-${aid++}`, r.ID, questionId, vals));
|
|
113
|
+
// Page 1 — everyone answers
|
|
114
|
+
push('q-channel', { TextValue: channels[i % channels.length] });
|
|
115
|
+
push('q-features', { JSONValue: JSON.stringify(i % 2 === 0 ? ['reporting', 'forms'] : ['automation']) });
|
|
116
|
+
// Page 2 — only complete responses go this far (drives the funnel)
|
|
117
|
+
if (r.Status === 'Complete') {
|
|
118
|
+
push('q-rating', { NumericValue: 1 + (i % 5) });
|
|
119
|
+
push('q-nps', { NumericValue: i % 11 });
|
|
120
|
+
push('q-recommend', { BooleanValue: i % 3 !== 0 });
|
|
121
|
+
if (i % 2 === 0) {
|
|
122
|
+
push('q-comments', { TextValue: `Sample comment from respondent ${i}.` });
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return out;
|
|
127
|
+
}
|
|
128
|
+
function stubAnswer(id, responseId, questionId, vals) {
|
|
129
|
+
const now = new Date();
|
|
130
|
+
return {
|
|
131
|
+
ID: id,
|
|
132
|
+
ResponseID: responseId,
|
|
133
|
+
QuestionID: questionId,
|
|
134
|
+
TextValue: vals.TextValue ?? null,
|
|
135
|
+
NumericValue: vals.NumericValue ?? null,
|
|
136
|
+
DateValue: null,
|
|
137
|
+
BooleanValue: vals.BooleanValue ?? null,
|
|
138
|
+
JSONValue: vals.JSONValue ?? null,
|
|
139
|
+
FileID: null,
|
|
140
|
+
Score: null,
|
|
141
|
+
ScoreRationale: null,
|
|
142
|
+
__mj_CreatedAt: now,
|
|
143
|
+
__mj_UpdatedAt: now,
|
|
144
|
+
File: null,
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=forms-reporting-mock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forms-reporting-mock.js","sourceRoot":"","sources":["../../../../src/lib/dashboard/services/forms-reporting-mock.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { mjBizAppsFormsFormResponseAnswerEntityType, PublishedFormQuestion } from '@mj-biz-apps/forms-entities';
|
|
2
|
+
import type { FormReportData, ReportableForm, ResponseDetail } from '../models/reporting.model';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* Build the answers `ExtraFilter` that scopes to a form's responses across all versions.
|
|
6
|
+
* The `vwFormResponses` view MUST be schema-qualified: the connection's default schema is
|
|
7
|
+
* not `__mj_BizAppsForms`, so a bare name resolves against `dbo` and throws
|
|
8
|
+
* "Invalid object name 'vwFormResponses'". Exported for unit testing.
|
|
9
|
+
*/
|
|
10
|
+
export declare function answersForFormFilter(formId: string): string;
|
|
11
|
+
export declare class FormsReportingService {
|
|
12
|
+
private readonly rv;
|
|
13
|
+
/**
|
|
14
|
+
* Lists forms that have at least one published version, with their latest
|
|
15
|
+
* published version id and COMPLETE response count, for the form picker. Partial
|
|
16
|
+
* (in-progress) autosaves are excluded from the count.
|
|
17
|
+
*/
|
|
18
|
+
loadReportableForms(): Promise<ReportableForm[]>;
|
|
19
|
+
/**
|
|
20
|
+
* Loads the full report bundle for a form — across ALL its versions.
|
|
21
|
+
*
|
|
22
|
+
* Responses are scoped by `FormID`, NOT by a single `FormVersionID`. Every response
|
|
23
|
+
* pins the form version that was live at submission, so a form with multiple
|
|
24
|
+
* published versions has responses spread across them; filtering to only the latest
|
|
25
|
+
* version silently hides every response submitted against an earlier one (the "I
|
|
26
|
+
* submitted a response but the dashboard shows nothing" bug). Question labels/options
|
|
27
|
+
* come from the latest published definition; answers map back by `QuestionID`.
|
|
28
|
+
*/
|
|
29
|
+
loadReport(form: ReportableForm): Promise<FormReportData>;
|
|
30
|
+
/**
|
|
31
|
+
* Loads one response's labelled answers for the detail view.
|
|
32
|
+
*/
|
|
33
|
+
loadResponseDetail(responseId: string, questions: PublishedFormQuestion[]): Promise<ResponseDetail>;
|
|
34
|
+
/**
|
|
35
|
+
* Loads all answer rows for a form (across ALL its versions' responses). Used by the
|
|
36
|
+
* export service to pivot responses into a wide matrix. Scoped by `FormID` for the
|
|
37
|
+
* same reason as {@link loadReport} — responses span versions.
|
|
38
|
+
*/
|
|
39
|
+
loadAnswersForForm(formId: string): Promise<mjBizAppsFormsFormResponseAnswerEntityType[]>;
|
|
40
|
+
/** Loads + parses the published `DefinitionSnapshot` for a version. */
|
|
41
|
+
private loadDefinition;
|
|
42
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FormsReportingService, never>;
|
|
43
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<FormsReportingService>;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=forms-reporting.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forms-reporting.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/dashboard/services/forms-reporting.service.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAEV,0CAA0C,EAI1C,qBAAqB,EACtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,cAAc,EACf,MAAM,2BAA2B,CAAC;;AAqBnC;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,qBACa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAiB;IAEpC;;;;OAIG;IACU,mBAAmB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAoE7D;;;;;;;;;OASG;IACU,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IA6DtE;;OAEG;IACU,kBAAkB,CAC7B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,qBAAqB,EAAE,GACjC,OAAO,CAAC,cAAc,CAAC;IA4B1B;;;;OAIG;IACU,kBAAkB,CAC7B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,0CAA0C,EAAE,CAAC;IAuBxD,uEAAuE;YACzD,cAAc;yCApNjB,qBAAqB;6CAArB,qBAAqB;CAqOjC"}
|