@piserve-tech/form-submission 1.3.314 → 1.3.316
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/README.md +24 -24
- package/ng-package.json +30 -0
- package/package.json +33 -46
- package/{assets → src/assets}/icons/close-sidebar-mark-icon.svg +3 -3
- package/{assets → src/assets}/icons/copy-icon.svg +5 -5
- package/{assets → src/assets}/icons/delete-icon.svg +7 -7
- package/{assets → src/assets}/icons/delete-no-outline-icon.svg +7 -7
- package/src/environment/environment.ts +6 -0
- package/src/form-fields/aggregate-function/aggregate-function.component.html +63 -0
- package/src/form-fields/aggregate-function/aggregate-function.component.scss +1 -0
- package/src/form-fields/aggregate-function/aggregate-function.component.spec.ts +21 -0
- package/src/form-fields/aggregate-function/aggregate-function.component.ts +148 -0
- package/src/form-fields/check-box-fields/check-box-fields.component.html +81 -0
- package/src/form-fields/check-box-fields/check-box-fields.component.scss +28 -0
- package/src/form-fields/check-box-fields/check-box-fields.component.spec.ts +21 -0
- package/src/form-fields/check-box-fields/check-box-fields.component.ts +538 -0
- package/src/form-fields/currency-fields/currency-fields.component.html +85 -0
- package/src/form-fields/currency-fields/currency-fields.component.scss +48 -0
- package/src/form-fields/currency-fields/currency-fields.component.spec.ts +21 -0
- package/src/form-fields/currency-fields/currency-fields.component.ts +589 -0
- package/src/form-fields/date-time-fields/date-time-fields.component.html +268 -0
- package/src/form-fields/date-time-fields/date-time-fields.component.scss +88 -0
- package/src/form-fields/date-time-fields/date-time-fields.component.spec.ts +21 -0
- package/src/form-fields/date-time-fields/date-time-fields.component.ts +693 -0
- package/src/form-fields/drop-down-fields/drop-down-fields.component.html +77 -0
- package/src/form-fields/drop-down-fields/drop-down-fields.component.scss +12 -0
- package/src/form-fields/drop-down-fields/drop-down-fields.component.spec.ts +21 -0
- package/src/form-fields/drop-down-fields/drop-down-fields.component.ts +698 -0
- package/src/form-fields/file-picker-fields/file-picker-fields.component.html +72 -0
- package/src/form-fields/file-picker-fields/file-picker-fields.component.scss +33 -0
- package/src/form-fields/file-picker-fields/file-picker-fields.component.spec.ts +21 -0
- package/src/form-fields/file-picker-fields/file-picker-fields.component.ts +256 -0
- package/src/form-fields/form-fields.module.ts +110 -0
- package/src/form-fields/hidden-field/hidden-field.component.scss +0 -0
- package/src/form-fields/hidden-field/hidden-field.component.spec.ts +21 -0
- package/src/form-fields/hidden-field/hidden-field.component.ts +156 -0
- package/src/form-fields/iframe-fields/iframe-fields.component.html +31 -0
- package/src/form-fields/iframe-fields/iframe-fields.component.scss +0 -0
- package/src/form-fields/iframe-fields/iframe-fields.component.spec.ts +21 -0
- package/src/form-fields/iframe-fields/iframe-fields.component.ts +225 -0
- package/src/form-fields/location-fields/location-fields.component.html +54 -0
- package/src/form-fields/location-fields/location-fields.component.scss +22 -0
- package/src/form-fields/location-fields/location-fields.component.spec.ts +21 -0
- package/src/form-fields/location-fields/location-fields.component.ts +83 -0
- package/src/form-fields/mail-fields/mail-fields.component.html +66 -0
- package/src/form-fields/mail-fields/mail-fields.component.scss +10 -0
- package/src/form-fields/mail-fields/mail-fields.component.spec.ts +21 -0
- package/src/form-fields/mail-fields/mail-fields.component.ts +127 -0
- package/src/form-fields/mobile-fields/mobile-fields.component.html +97 -0
- package/src/form-fields/mobile-fields/mobile-fields.component.scss +52 -0
- package/src/form-fields/mobile-fields/mobile-fields.component.spec.ts +21 -0
- package/src/form-fields/mobile-fields/mobile-fields.component.ts +310 -0
- package/src/form-fields/number-fields/number-fields.component.html +70 -0
- package/src/form-fields/number-fields/number-fields.component.scss +17 -0
- package/src/form-fields/number-fields/number-fields.component.spec.ts +21 -0
- package/src/form-fields/number-fields/number-fields.component.ts +256 -0
- package/src/form-fields/password-fields/password-fields.component.html +113 -0
- package/src/form-fields/password-fields/password-fields.component.scss +61 -0
- package/src/form-fields/password-fields/password-fields.component.spec.ts +21 -0
- package/src/form-fields/password-fields/password-fields.component.ts +273 -0
- package/src/form-fields/radio-button-fields/radio-button-fields.component.html +82 -0
- package/src/form-fields/radio-button-fields/radio-button-fields.component.scss +28 -0
- package/src/form-fields/radio-button-fields/radio-button-fields.component.spec.ts +21 -0
- package/src/form-fields/radio-button-fields/radio-button-fields.component.ts +391 -0
- package/src/form-fields/rich-text-editor-fields/rich-text-editor-fields.component.html +67 -0
- package/src/form-fields/rich-text-editor-fields/rich-text-editor-fields.component.scss +23 -0
- package/src/form-fields/rich-text-editor-fields/rich-text-editor-fields.component.spec.ts +21 -0
- package/src/form-fields/rich-text-editor-fields/rich-text-editor-fields.component.ts +145 -0
- package/src/form-fields/section-fields/section-fields.component.html +4 -0
- package/src/form-fields/section-fields/section-fields.component.scss +37 -0
- package/src/form-fields/section-fields/section-fields.component.spec.ts +21 -0
- package/src/form-fields/section-fields/section-fields.component.ts +25 -0
- package/src/form-fields/selection-matrix-fields/selection-matrix-fields.component.html +93 -0
- package/src/form-fields/selection-matrix-fields/selection-matrix-fields.component.scss +52 -0
- package/src/form-fields/selection-matrix-fields/selection-matrix-fields.component.spec.ts +21 -0
- package/src/form-fields/selection-matrix-fields/selection-matrix-fields.component.ts +155 -0
- package/src/form-fields/signature-fields/signature-fields.component.html +43 -0
- package/src/form-fields/signature-fields/signature-fields.component.scss +10 -0
- package/src/form-fields/signature-fields/signature-fields.component.spec.ts +21 -0
- package/src/form-fields/signature-fields/signature-fields.component.ts +25 -0
- package/src/form-fields/slider-fields/slider-fields.component.html +67 -0
- package/src/form-fields/slider-fields/slider-fields.component.scss +55 -0
- package/src/form-fields/slider-fields/slider-fields.component.spec.ts +21 -0
- package/src/form-fields/slider-fields/slider-fields.component.ts +63 -0
- package/src/form-fields/terms-and-condition-fields/terms-and-condition-fields.component.html +52 -0
- package/src/form-fields/terms-and-condition-fields/terms-and-condition-fields.component.scss +85 -0
- package/src/form-fields/terms-and-condition-fields/terms-and-condition-fields.component.spec.ts +21 -0
- package/src/form-fields/terms-and-condition-fields/terms-and-condition-fields.component.ts +62 -0
- package/src/form-fields/text-area-fields/text-area-fields.component.html +68 -0
- package/src/form-fields/text-area-fields/text-area-fields.component.scss +19 -0
- package/src/form-fields/text-area-fields/text-area-fields.component.spec.ts +21 -0
- package/src/form-fields/text-area-fields/text-area-fields.component.ts +166 -0
- package/src/form-fields/text-fields/text-fields.component.html +67 -0
- package/src/form-fields/text-fields/text-fields.component.scss +26 -0
- package/src/form-fields/text-fields/text-fields.component.spec.ts +21 -0
- package/src/form-fields/text-fields/text-fields.component.ts +248 -0
- package/src/form-fields/toggle-switch-fields/toggle-switch-fields.component.html +70 -0
- package/src/form-fields/toggle-switch-fields/toggle-switch-fields.component.scss +112 -0
- package/src/form-fields/toggle-switch-fields/toggle-switch-fields.component.spec.ts +21 -0
- package/src/form-fields/toggle-switch-fields/toggle-switch-fields.component.ts +74 -0
- package/src/form-fields/url-fields/url-fields.component.html +109 -0
- package/src/form-fields/url-fields/url-fields.component.scss +22 -0
- package/src/form-fields/url-fields/url-fields.component.spec.ts +21 -0
- package/src/form-fields/url-fields/url-fields.component.ts +123 -0
- package/src/form-submission/form-submission.module.ts +40 -0
- package/src/form-submission/header/header.component.html +6 -0
- package/src/form-submission/header/header.component.scss +26 -0
- package/src/form-submission/header/header.component.spec.ts +21 -0
- package/src/form-submission/header/header.component.ts +12 -0
- package/src/form-submission/navigation-tabs/navigation-tabs.component.html +134 -0
- package/src/form-submission/navigation-tabs/navigation-tabs.component.scss +200 -0
- package/src/form-submission/navigation-tabs/navigation-tabs.component.spec.ts +21 -0
- package/src/form-submission/navigation-tabs/navigation-tabs.component.ts +134 -0
- package/src/form-submission/next-prev-navigation/next-prev-navigation.component.html +207 -0
- package/src/form-submission/next-prev-navigation/next-prev-navigation.component.scss +208 -0
- package/src/form-submission/next-prev-navigation/next-prev-navigation.component.spec.ts +21 -0
- package/src/form-submission/next-prev-navigation/next-prev-navigation.component.ts +74 -0
- package/src/form-submission/save-as-draft/saveDraftModalComponent .ts +60 -0
- package/src/form-submission/save-as-draft/saveDraftModalComponent.html +33 -0
- package/src/form-submission/save-as-draft/saveDraftModalComponent.scss +195 -0
- package/src/form-submission/submission-container/submission-container.component.html +30 -0
- package/src/form-submission/submission-container/submission-container.component.scss +67 -0
- package/src/form-submission/submission-container/submission-container.component.spec.ts +21 -0
- package/src/form-submission/submission-container/submission-container.component.ts +14 -0
- package/src/form-submission/submit-form/submit-form.component.html +76 -0
- package/src/form-submission/submit-form/submit-form.component.scss +88 -0
- package/src/form-submission/submit-form/submit-form.component.spec.ts +21 -0
- package/src/form-submission/submit-form/submit-form.component.ts +1953 -0
- package/src/lib/form-submission.component.html +15 -0
- package/src/lib/form-submission.component.scss +1 -0
- package/src/lib/form-submission.component.ts +120 -0
- package/src/lib/form-submission.module.ts +31 -0
- package/src/lib/form-submission.service.spec.ts +16 -0
- package/src/lib/form-submission.service.ts +9 -0
- package/src/models/aggregate.model.ts +4 -0
- package/{models/answer.model.d.ts → src/models/answer.model.ts} +25 -23
- package/src/models/appearance.model.ts +64 -0
- package/{models/attachment.model.d.ts → src/models/attachment.model.ts} +6 -6
- package/{models/defaultAnswerEntry.model.d.ts → src/models/defaultAnswerEntry.model.ts} +7 -5
- package/{models/defaultAnswersModel.model.d.ts → src/models/defaultAnswersModel.model.ts} +5 -4
- package/{models/defaultQuestionAnswer.model.d.ts → src/models/defaultQuestionAnswer.model.ts} +6 -6
- package/src/models/elementOptionAPI.model.ts +13 -0
- package/src/models/elementOptionAPIData.model.ts +5 -0
- package/src/models/elementOptionDB.model.ts +9 -0
- package/src/models/elementOptionDBCriteria.model.ts +7 -0
- package/{models/emitters.model.d.ts → src/models/emitters.model.ts} +8 -8
- package/{models/enum/condition.enum.d.ts → src/models/enum/condition.enum.ts} +2 -2
- package/src/models/enum/elementType .enum.ts +22 -0
- package/src/models/enum/entityType.enum.ts +10 -0
- package/{models/formConfiguration.model.d.ts → src/models/formConfiguration.model.ts} +2 -2
- package/{models/formElement.model.d.ts → src/models/formElement.model.ts} +22 -22
- package/{models/formElementType.model.d.ts → src/models/formElementType.model.ts} +3 -2
- package/{models/grid.model.d.ts → src/models/grid.model.ts} +14 -13
- package/{models/hiddenField.model.d.ts → src/models/hiddenField.model.ts} +5 -5
- package/{models/iFrameProperties.model.d.ts → src/models/iFrameProperties.model.ts} +13 -13
- package/src/models/logic.model.ts +11 -0
- package/src/models/multifields.model.ts +12 -0
- package/{models/option.model.d.ts → src/models/option.model.ts} +5 -5
- package/src/models/page.model.ts +7 -0
- package/src/models/publicForm.model.ts +19 -0
- package/src/models/question.model.ts +27 -0
- package/src/models/questionAnswer.model.ts +8 -0
- package/src/models/questionGroup.model.ts +12 -0
- package/src/models/response.model.ts +9 -0
- package/src/models/result.model.ts +5 -0
- package/{models/row.model.d.ts → src/models/row.model.ts} +2 -1
- package/src/models/scoring.model.ts +10 -0
- package/src/models/section.model.ts +6 -0
- package/src/models/subForm.model.ts +25 -0
- package/src/models/subformConfiguration.model.ts +4 -0
- package/src/models/subformPropery.model.ts +8 -0
- package/{models/submission.model.d.ts → src/models/submission.model.ts} +16 -14
- package/{models/submissionCopyConfig.mopdel.d.ts → src/models/submissionCopyConfig.mopdel.ts} +4 -4
- package/{models/terms&condition.model.d.ts → src/models/terms&condition.model.ts} +1 -1
- package/src/models/validation.model.ts +48 -0
- package/src/models/whenClause.model.ts +7 -0
- package/{models/whenClauseCondition.model.d.ts → src/models/whenClauseCondition.model.ts} +6 -6
- package/{models/whenClauseElements.model.d.ts → src/models/whenClauseElements.model.ts} +6 -5
- package/{public-api.d.ts → src/public-api.ts} +4 -0
- package/src/question/card-subform/card-subform.component.html +282 -0
- package/src/question/card-subform/card-subform.component.scss +49 -0
- package/src/question/card-subform/card-subform.component.spec.ts +21 -0
- package/src/question/card-subform/card-subform.component.ts +407 -0
- package/src/question/confirm-dialog/confirm-dialog.component.html +32 -0
- package/src/question/confirm-dialog/confirm-dialog.component.scss +109 -0
- package/src/question/confirm-dialog/confirm-dialog.component.spec.ts +21 -0
- package/src/question/confirm-dialog/confirm-dialog.component.ts +24 -0
- package/src/question/form-elements/form-elements.component.html +28 -0
- package/src/question/form-elements/form-elements.component.scss +0 -0
- package/src/question/form-elements/form-elements.component.spec.ts +21 -0
- package/src/question/form-elements/form-elements.component.ts +41 -0
- package/src/question/inline-multiple-subform/inline-multiple-subform.component.html +321 -0
- package/src/question/inline-multiple-subform/inline-multiple-subform.component.scss +78 -0
- package/src/question/inline-multiple-subform/inline-multiple-subform.component.spec.ts +21 -0
- package/src/question/inline-multiple-subform/inline-multiple-subform.component.ts +425 -0
- package/src/question/multifields/multifields.component.html +78 -0
- package/src/question/multifields/multifields.component.scss +6 -0
- package/src/question/multifields/multifields.component.spec.ts +21 -0
- package/src/question/multifields/multifields.component.ts +27 -0
- package/src/question/multiple-subform/multiple-subform.component.html +185 -0
- package/src/question/multiple-subform/multiple-subform.component.scss +52 -0
- package/src/question/multiple-subform/multiple-subform.component.spec.ts +21 -0
- package/src/question/multiple-subform/multiple-subform.component.ts +481 -0
- package/src/question/question/question.component.html +51 -0
- package/src/question/question/question.component.scss +0 -0
- package/src/question/question/question.component.spec.ts +21 -0
- package/src/question/question/question.component.ts +129 -0
- package/src/question/question-group/question-group.component.html +147 -0
- package/src/question/question-group/question-group.component.scss +36 -0
- package/src/question/question-group/question-group.component.spec.ts +21 -0
- package/src/question/question-group/question-group.component.ts +94 -0
- package/src/question/question.module.ts +22 -0
- package/src/question/recursive-logic/recursive-logic.component.html +33 -0
- package/src/question/recursive-logic/recursive-logic.component.scss +0 -0
- package/src/question/recursive-logic/recursive-logic.component.spec.ts +21 -0
- package/src/question/recursive-logic/recursive-logic.component.ts +29 -0
- package/src/question/sub-form/sub-form.component.html +254 -0
- package/src/question/sub-form/sub-form.component.scss +83 -0
- package/src/question/sub-form/sub-form.component.spec.ts +21 -0
- package/src/question/sub-form/sub-form.component.ts +421 -0
- package/src/services/aggregate.service.ts +148 -0
- package/src/services/countryService.ts +92 -0
- package/src/services/data.service.ts +36 -0
- package/src/services/element-tracker.service.spec.ts +16 -0
- package/src/services/element-tracker.service.ts +24 -0
- package/src/services/form-validation.service.ts +151 -0
- package/src/services/form.service.spec.ts +16 -0
- package/src/services/form.service.ts +407 -0
- package/src/services/mapper.service.ts +625 -0
- package/src/services/recaptcha.service.spec.ts +16 -0
- package/src/services/recaptcha.service.ts +179 -0
- package/src/services/score.service.ts +352 -0
- package/src/services/subform-copy.service.ts +148 -0
- package/src/services/validation.service.spec.ts +16 -0
- package/src/services/validation.service.ts +33 -0
- package/src/services/whenClause.service.ts +502 -0
- package/src/shared/shared.module.ts +58 -0
- package/src/styles/shared-style.scss +86 -0
- package/src/sub-form/sub-form.module.ts +24 -0
- package/src/sub-form/submission-modal/submission-modal.component.html +160 -0
- package/src/sub-form/submission-modal/submission-modal.component.scss +54 -0
- package/src/sub-form/submission-modal/submission-modal.component.spec.ts +21 -0
- package/src/sub-form/submission-modal/submission-modal.component.ts +127 -0
- package/tsconfig.lib.json +14 -0
- package/tsconfig.lib.prod.json +10 -0
- package/tsconfig.spec.json +14 -0
- package/environment/environment.d.ts +0 -5
- package/esm2022/environment/environment.mjs +0 -6
- package/esm2022/form-fields/aggregate-function/aggregate-function.component.mjs +0 -146
- package/esm2022/form-fields/check-box-fields/check-box-fields.component.mjs +0 -473
- package/esm2022/form-fields/currency-fields/currency-fields.component.mjs +0 -502
- package/esm2022/form-fields/date-time-fields/date-time-fields.component.mjs +0 -608
- package/esm2022/form-fields/drop-down-fields/drop-down-fields.component.mjs +0 -585
- package/esm2022/form-fields/file-picker-fields/file-picker-fields.component.mjs +0 -224
- package/esm2022/form-fields/form-fields.module.mjs +0 -174
- package/esm2022/form-fields/hidden-field/hidden-field.component.mjs +0 -137
- package/esm2022/form-fields/iframe-fields/iframe-fields.component.mjs +0 -198
- package/esm2022/form-fields/location-fields/location-fields.component.mjs +0 -85
- package/esm2022/form-fields/mail-fields/mail-fields.component.mjs +0 -131
- package/esm2022/form-fields/mobile-fields/mobile-fields.component.mjs +0 -270
- package/esm2022/form-fields/number-fields/number-fields.component.mjs +0 -242
- package/esm2022/form-fields/password-fields/password-fields.component.mjs +0 -257
- package/esm2022/form-fields/radio-button-fields/radio-button-fields.component.mjs +0 -346
- package/esm2022/form-fields/rich-text-editor-fields/rich-text-editor-fields.component.mjs +0 -148
- package/esm2022/form-fields/section-fields/section-fields.component.mjs +0 -29
- package/esm2022/form-fields/selection-matrix-fields/selection-matrix-fields.component.mjs +0 -158
- package/esm2022/form-fields/signature-fields/signature-fields.component.mjs +0 -32
- package/esm2022/form-fields/slider-fields/slider-fields.component.mjs +0 -73
- package/esm2022/form-fields/terms-and-condition-fields/terms-and-condition-fields.component.mjs +0 -66
- package/esm2022/form-fields/text-area-fields/text-area-fields.component.mjs +0 -159
- package/esm2022/form-fields/text-fields/text-fields.component.mjs +0 -245
- package/esm2022/form-fields/toggle-switch-fields/toggle-switch-fields.component.mjs +0 -85
- package/esm2022/form-fields/url-fields/url-fields.component.mjs +0 -124
- package/esm2022/form-submission/form-submission.module.mjs +0 -64
- package/esm2022/form-submission/header/header.component.mjs +0 -20
- package/esm2022/form-submission/navigation-tabs/navigation-tabs.component.mjs +0 -171
- package/esm2022/form-submission/next-prev-navigation/next-prev-navigation.component.mjs +0 -124
- package/esm2022/form-submission/save-as-draft/saveDraftModalComponent .mjs +0 -50
- package/esm2022/form-submission/submission-container/submission-container.component.mjs +0 -17
- package/esm2022/form-submission/submit-form/submit-form.component.mjs +0 -1610
- package/esm2022/lib/form-submission.component.mjs +0 -113
- package/esm2022/lib/form-submission.module.mjs +0 -56
- package/esm2022/lib/form-submission.service.mjs +0 -14
- package/esm2022/models/aggregate.model.mjs +0 -2
- package/esm2022/models/answer.model.mjs +0 -2
- package/esm2022/models/appearance.model.mjs +0 -2
- package/esm2022/models/attachment.model.mjs +0 -2
- package/esm2022/models/defaultAnswerEntry.model.mjs +0 -2
- package/esm2022/models/defaultAnswersModel.model.mjs +0 -2
- package/esm2022/models/defaultQuestionAnswer.model.mjs +0 -2
- package/esm2022/models/elementOptionAPI.model.mjs +0 -2
- package/esm2022/models/elementOptionAPIData.model.mjs +0 -2
- package/esm2022/models/elementOptionDB.model.mjs +0 -2
- package/esm2022/models/elementOptionDBCriteria.model.mjs +0 -2
- package/esm2022/models/emitters.model.mjs +0 -2
- package/esm2022/models/enum/condition.enum.mjs +0 -18
- package/esm2022/models/enum/elementType .enum.mjs +0 -24
- package/esm2022/models/enum/entityType.enum.mjs +0 -12
- package/esm2022/models/formConfiguration.model.mjs +0 -2
- package/esm2022/models/formElement.model.mjs +0 -2
- package/esm2022/models/formElementType.model.mjs +0 -2
- package/esm2022/models/grid.model.mjs +0 -2
- package/esm2022/models/hiddenField.model.mjs +0 -2
- package/esm2022/models/iFrameProperties.model.mjs +0 -2
- package/esm2022/models/logic.model.mjs +0 -2
- package/esm2022/models/multifields.model.mjs +0 -2
- package/esm2022/models/option.model.mjs +0 -2
- package/esm2022/models/page.model.mjs +0 -2
- package/esm2022/models/publicForm.model.mjs +0 -2
- package/esm2022/models/question.model.mjs +0 -2
- package/esm2022/models/questionAnswer.model.mjs +0 -2
- package/esm2022/models/questionGroup.model.mjs +0 -2
- package/esm2022/models/row.model.mjs +0 -2
- package/esm2022/models/scoring.model.mjs +0 -2
- package/esm2022/models/section.model.mjs +0 -2
- package/esm2022/models/subForm.model.mjs +0 -2
- package/esm2022/models/subformConfiguration.model.mjs +0 -2
- package/esm2022/models/subformPropery.model.mjs +0 -2
- package/esm2022/models/submission.model.mjs +0 -2
- package/esm2022/models/submissionCopyConfig.mopdel.mjs +0 -2
- package/esm2022/models/terms&condition.model.mjs +0 -2
- package/esm2022/models/validation.model.mjs +0 -2
- package/esm2022/models/whenClause.model.mjs +0 -2
- package/esm2022/models/whenClauseCondition.model.mjs +0 -2
- package/esm2022/models/whenClauseElements.model.mjs +0 -2
- package/esm2022/piserve-tech-form-submission.mjs +0 -5
- package/esm2022/public-api.mjs +0 -7
- package/esm2022/question/card-subform/card-subform.component.mjs +0 -354
- package/esm2022/question/confirm-dialog/confirm-dialog.component.mjs +0 -27
- package/esm2022/question/form-elements/form-elements.component.mjs +0 -62
- package/esm2022/question/inline-multiple-subform/inline-multiple-subform.component.mjs +0 -384
- package/esm2022/question/multifields/multifields.component.mjs +0 -54
- package/esm2022/question/multiple-subform/multiple-subform.component.mjs +0 -413
- package/esm2022/question/question/question.component.mjs +0 -145
- package/esm2022/question/question-group/question-group.component.mjs +0 -102
- package/esm2022/question/recursive-logic/recursive-logic.component.mjs +0 -49
- package/esm2022/question/sub-form/sub-form.component.mjs +0 -351
- package/esm2022/services/aggregate.service.mjs +0 -139
- package/esm2022/services/countryService.mjs +0 -89
- package/esm2022/services/data.service.mjs +0 -36
- package/esm2022/services/element-tracker.service.mjs +0 -27
- package/esm2022/services/form-validation.service.mjs +0 -128
- package/esm2022/services/form.service.mjs +0 -333
- package/esm2022/services/mapper.service.mjs +0 -519
- package/esm2022/services/recaptcha.service.mjs +0 -136
- package/esm2022/services/score.service.mjs +0 -268
- package/esm2022/services/subform-copy.service.mjs +0 -122
- package/esm2022/services/validation.service.mjs +0 -35
- package/esm2022/services/whenClause.service.mjs +0 -423
- package/esm2022/shared/shared.module.mjs +0 -97
- package/esm2022/sub-form/submission-modal/submission-modal.component.mjs +0 -133
- package/fesm2022/piserve-tech-form-submission.mjs +0 -11658
- package/fesm2022/piserve-tech-form-submission.mjs.map +0 -1
- package/form-fields/aggregate-function/aggregate-function.component.d.ts +0 -43
- package/form-fields/check-box-fields/check-box-fields.component.d.ts +0 -73
- package/form-fields/currency-fields/currency-fields.component.d.ts +0 -62
- package/form-fields/date-time-fields/date-time-fields.component.d.ts +0 -96
- package/form-fields/drop-down-fields/drop-down-fields.component.d.ts +0 -88
- package/form-fields/file-picker-fields/file-picker-fields.component.d.ts +0 -72
- package/form-fields/form-fields.module.d.ts +0 -40
- package/form-fields/hidden-field/hidden-field.component.d.ts +0 -38
- package/form-fields/iframe-fields/iframe-fields.component.d.ts +0 -35
- package/form-fields/location-fields/location-fields.component.d.ts +0 -29
- package/form-fields/mail-fields/mail-fields.component.d.ts +0 -41
- package/form-fields/mobile-fields/mobile-fields.component.d.ts +0 -71
- package/form-fields/number-fields/number-fields.component.d.ts +0 -53
- package/form-fields/password-fields/password-fields.component.d.ts +0 -57
- package/form-fields/radio-button-fields/radio-button-fields.component.d.ts +0 -70
- package/form-fields/rich-text-editor-fields/rich-text-editor-fields.component.d.ts +0 -46
- package/form-fields/section-fields/section-fields.component.d.ts +0 -10
- package/form-fields/selection-matrix-fields/selection-matrix-fields.component.d.ts +0 -45
- package/form-fields/signature-fields/signature-fields.component.d.ts +0 -13
- package/form-fields/slider-fields/slider-fields.component.d.ts +0 -32
- package/form-fields/terms-and-condition-fields/terms-and-condition-fields.component.d.ts +0 -26
- package/form-fields/text-area-fields/text-area-fields.component.d.ts +0 -49
- package/form-fields/text-fields/text-fields.component.d.ts +0 -49
- package/form-fields/toggle-switch-fields/toggle-switch-fields.component.d.ts +0 -29
- package/form-fields/url-fields/url-fields.component.d.ts +0 -41
- package/form-submission/form-submission.module.d.ts +0 -20
- package/form-submission/header/header.component.d.ts +0 -7
- package/form-submission/navigation-tabs/navigation-tabs.component.d.ts +0 -57
- package/form-submission/next-prev-navigation/next-prev-navigation.component.d.ts +0 -46
- package/form-submission/save-as-draft/saveDraftModalComponent .d.ts +0 -17
- package/form-submission/submission-container/submission-container.component.d.ts +0 -7
- package/form-submission/submit-form/submit-form.component.d.ts +0 -237
- package/index.d.ts +0 -5
- package/lib/form-submission.component.d.ts +0 -30
- package/lib/form-submission.module.d.ts +0 -16
- package/lib/form-submission.service.d.ts +0 -6
- package/models/aggregate.model.d.ts +0 -4
- package/models/appearance.model.d.ts +0 -64
- package/models/elementOptionAPI.model.d.ts +0 -12
- package/models/elementOptionAPIData.model.d.ts +0 -5
- package/models/elementOptionDB.model.d.ts +0 -8
- package/models/elementOptionDBCriteria.model.d.ts +0 -7
- package/models/enum/elementType .enum.d.ts +0 -22
- package/models/enum/entityType.enum.d.ts +0 -10
- package/models/logic.model.d.ts +0 -9
- package/models/multifields.model.d.ts +0 -11
- package/models/page.model.d.ts +0 -6
- package/models/publicForm.model.d.ts +0 -18
- package/models/question.model.d.ts +0 -26
- package/models/questionAnswer.model.d.ts +0 -7
- package/models/questionGroup.model.d.ts +0 -11
- package/models/scoring.model.d.ts +0 -10
- package/models/section.model.d.ts +0 -6
- package/models/subForm.model.d.ts +0 -24
- package/models/subformConfiguration.model.d.ts +0 -4
- package/models/subformPropery.model.d.ts +0 -7
- package/models/validation.model.d.ts +0 -48
- package/models/whenClause.model.d.ts +0 -6
- package/question/card-subform/card-subform.component.d.ts +0 -44
- package/question/confirm-dialog/confirm-dialog.component.d.ts +0 -12
- package/question/form-elements/form-elements.component.d.ts +0 -20
- package/question/inline-multiple-subform/inline-multiple-subform.component.d.ts +0 -47
- package/question/multifields/multifields.component.d.ts +0 -11
- package/question/multiple-subform/multiple-subform.component.d.ts +0 -39
- package/question/question/question.component.d.ts +0 -30
- package/question/question-group/question-group.component.d.ts +0 -29
- package/question/recursive-logic/recursive-logic.component.d.ts +0 -19
- package/question/sub-form/sub-form.component.d.ts +0 -70
- package/services/aggregate.service.d.ts +0 -29
- package/services/countryService.d.ts +0 -21
- package/services/data.service.d.ts +0 -19
- package/services/element-tracker.service.d.ts +0 -10
- package/services/form-validation.service.d.ts +0 -16
- package/services/form.service.d.ts +0 -27
- package/services/mapper.service.d.ts +0 -31
- package/services/recaptcha.service.d.ts +0 -46
- package/services/score.service.d.ts +0 -27
- package/services/subform-copy.service.d.ts +0 -10
- package/services/validation.service.d.ts +0 -14
- package/services/whenClause.service.d.ts +0 -45
- package/shared/shared.module.d.ts +0 -25
- package/sub-form/submission-modal/submission-modal.component.d.ts +0 -31
- /package/{assets → src/assets}/fonts/Garamond.woff2 +0 -0
- /package/{assets → src/assets}/fonts/Georgia.woff2 +0 -0
- /package/{assets → src/assets}/fonts/Poppins.woff2 +0 -0
- /package/{assets → src/assets}/fonts/Tahoma.woff2 +0 -0
- /package/{assets → src/assets}/fonts/Tajawal.woff2 +0 -0
- /package/{assets → src/assets}/fonts/Verdana.woff2 +0 -0
- /package/{assets → src/assets}/icons/left_arrow.svg +0 -0
- /package/{assets → src/assets}/icons/right_arrow.svg +0 -0
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "../../services/form-validation.service";
|
|
4
|
-
import * as i2 from "@angular/common";
|
|
5
|
-
import * as i3 from "../../question/form-elements/form-elements.component";
|
|
6
|
-
import * as i4 from "ngx-infinite-scroll";
|
|
7
|
-
export class NavigationTabsComponent {
|
|
8
|
-
constructor(formValidationService, cdr) {
|
|
9
|
-
this.formValidationService = formValidationService;
|
|
10
|
-
this.cdr = cdr;
|
|
11
|
-
this.pages = [];
|
|
12
|
-
this.currentPageIndex = 0;
|
|
13
|
-
this.skipValidation = false;
|
|
14
|
-
this.pageChanged = new EventEmitter();
|
|
15
|
-
this.submitEmit = new EventEmitter();
|
|
16
|
-
this.saveAsDraftEmit = new EventEmitter();
|
|
17
|
-
this.edit = false;
|
|
18
|
-
this.acceptedLanguage = '';
|
|
19
|
-
this.eligibleForSubmission = { status: true, message: '' };
|
|
20
|
-
this.subFormChange = new EventEmitter();
|
|
21
|
-
this.pageDetails = [];
|
|
22
|
-
this.markAllQuestionsAsRequired = false;
|
|
23
|
-
this.skipMargin = false;
|
|
24
|
-
this.rowSetIndex = new EventEmitter();
|
|
25
|
-
this.cancel = new EventEmitter();
|
|
26
|
-
this.primaryColor = '';
|
|
27
|
-
this.secondaryColor = '';
|
|
28
|
-
this.isActionTriggered = false;
|
|
29
|
-
this.submissionInProgress = false;
|
|
30
|
-
this.submissionInDraft = false;
|
|
31
|
-
this.showCancelButton = false;
|
|
32
|
-
this.submissionProgress = 0;
|
|
33
|
-
this.currentStep = 'Submitting form';
|
|
34
|
-
this.animatedDots = '';
|
|
35
|
-
this.loadedPages = {};
|
|
36
|
-
this.showTooltip = false;
|
|
37
|
-
this.showNavArrows = false;
|
|
38
|
-
this.hideTabs = false;
|
|
39
|
-
// Load the first page initially
|
|
40
|
-
this.loadedPages[this.currentPageIndex] = true;
|
|
41
|
-
}
|
|
42
|
-
ngOnInit() {
|
|
43
|
-
this.checkPageDetails();
|
|
44
|
-
}
|
|
45
|
-
ngAfterViewInit() {
|
|
46
|
-
setTimeout(() => this.checkOverflow());
|
|
47
|
-
this.cdr.detectChanges();
|
|
48
|
-
}
|
|
49
|
-
checkPageDetails() {
|
|
50
|
-
if (this.pageDetails && this.pageDetails?.length == 1 && this.pageDetails[0]?.name == '') {
|
|
51
|
-
this.hideTabs = true;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
updateSubFormWithSubmissions(event) {
|
|
55
|
-
this.subFormChange.emit(event);
|
|
56
|
-
}
|
|
57
|
-
triggerFunction(event) {
|
|
58
|
-
this.setCurrentPage(event);
|
|
59
|
-
}
|
|
60
|
-
setCurrentPage(index) {
|
|
61
|
-
if (this.markAllQuestionsAsRequired) {
|
|
62
|
-
const currentPageData = this.pages[this.currentPageIndex];
|
|
63
|
-
let validationResponse = true;
|
|
64
|
-
if (!this.skipValidation) {
|
|
65
|
-
validationResponse = this.formValidationService.validateRequiredQuestions(currentPageData).isValid;
|
|
66
|
-
}
|
|
67
|
-
if (validationResponse) {
|
|
68
|
-
this.pageChanged.emit(index);
|
|
69
|
-
this.currentPageIndex = index;
|
|
70
|
-
// Mark this page as loaded to avoid reloading
|
|
71
|
-
if (!this.loadedPages[index]) {
|
|
72
|
-
this.loadedPages[index] = true;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
this.pageChanged.emit(index);
|
|
78
|
-
this.currentPageIndex = index;
|
|
79
|
-
// Mark this page as loaded to avoid reloading
|
|
80
|
-
if (!this.loadedPages[index]) {
|
|
81
|
-
this.loadedPages[index] = true;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
submitForm() {
|
|
86
|
-
this.submitEmit.emit();
|
|
87
|
-
}
|
|
88
|
-
saveAsDraft() {
|
|
89
|
-
this.saveAsDraftEmit.emit();
|
|
90
|
-
}
|
|
91
|
-
trackByIndex(index, item) {
|
|
92
|
-
return index;
|
|
93
|
-
}
|
|
94
|
-
loadMoreData() {
|
|
95
|
-
this.rowSetIndex.emit(this.currentPageIndex);
|
|
96
|
-
}
|
|
97
|
-
toggleTooltip() {
|
|
98
|
-
this.showTooltip = !this.eligibleForSubmission.status;
|
|
99
|
-
}
|
|
100
|
-
scrollTabs(direction) {
|
|
101
|
-
const tabContainer = document.querySelector('.navTabs');
|
|
102
|
-
if (tabContainer) {
|
|
103
|
-
tabContainer.scrollBy({ left: direction * 100, behavior: 'smooth' });
|
|
104
|
-
setTimeout(() => this.checkOverflow(), 300);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
checkOverflow() {
|
|
108
|
-
const tabContainer = document.querySelector('.navTabs');
|
|
109
|
-
if (tabContainer) {
|
|
110
|
-
this.showNavArrows = (tabContainer.scrollWidth > tabContainer.clientWidth);
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
cancelled() {
|
|
114
|
-
this.cancel.emit();
|
|
115
|
-
}
|
|
116
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NavigationTabsComponent, deps: [{ token: i1.FormValidationService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
117
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NavigationTabsComponent, selector: "lib-navigation-tabs", inputs: { pages: "pages", currentPageIndex: "currentPageIndex", skipValidation: "skipValidation", edit: "edit", acceptedLanguage: "acceptedLanguage", eligibleForSubmission: "eligibleForSubmission", pageDetails: "pageDetails", markAllQuestionsAsRequired: "markAllQuestionsAsRequired", skipMargin: "skipMargin", primaryColor: "primaryColor", secondaryColor: "secondaryColor", isActionTriggered: "isActionTriggered", submissionInProgress: "submissionInProgress", submissionInDraft: "submissionInDraft", showCancelButton: "showCancelButton", submissionProgress: "submissionProgress", currentStep: "currentStep", animatedDots: "animatedDots" }, outputs: { pageChanged: "pageChanged", submitEmit: "submitEmit", saveAsDraftEmit: "saveAsDraftEmit", subFormChange: "subFormChange", rowSetIndex: "rowSetIndex", cancel: "cancel" }, ngImport: i0, template: "<div class=\"tab-inner-container\" [ngClass]=\"{ 'skip-margin': skipMargin}\">\n <div class=\"d-flex gap-2\">\n <div class=\"tab-navigation\" *ngIf=\"!hideTabs\">\n <ul class=\"nav nav-tabs navTabs\" id=\"myTab\" role=\"tablist\">\n <li\n class=\"nav-item\"\n role=\"presentation\"\n *ngFor=\"let page of pageDetails; let i = index; trackBy: trackByIndex\"\n [ngClass]=\"{'nav-item-ara': acceptedLanguage === 'ara', 'nav-item-default': acceptedLanguage !== 'ara'}\"\n >\n <button\n class=\"nav-link\"\n [title]=\"page.name\"\n data-bs-toggle=\"tooltip\"\n data-bs-placement=\"top\"\n data-bs-custom-class=\"custom-tooltip\"\n [class.active]=\"i === currentPageIndex\"\n id=\"tab-{{ i }}\"\n type=\"button\"\n role=\"tab\"\n [attr.aria-controls]=\"'content-' + i\"\n [attr.aria-selected]=\"i === currentPageIndex\"\n (click)=\"setCurrentPage(i)\"\n >\n {{ page.name }}\n </button>\n </li>\n </ul>\n </div>\n <div class=\"d-flex align-items-center\" *ngIf=\"showNavArrows\">\n <button class=\"nav-arrow\">\n <img src=\"assets/icons/left_arrow.svg\" alt=\"left arrow\"\n (click)=\"scrollTabs(-1)\">\n <img src=\"assets/icons/right_arrow.svg\" alt=\"right arrow\"\n (click)=\"scrollTabs(1)\">\n </button>\n </div>\n </div>\n\n\n\n <div class=\"tab-content pt-5 pb-3 px-1\" [attr.name]=\"pages[currentPageIndex].testElementName\">\n <ng-container *ngIf=\"pages[currentPageIndex]\">\n <div\n class=\"tab-pane fade show active\"\n id=\"content-{{ currentPageIndex }}\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + currentPageIndex\"\n >\n <div *ngIf=\"loadedPages[currentPageIndex]\">\n <div class=\"data-container\"\n infiniteScroll\n [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"200\"\n (scrolled)=\"loadMoreData()\">\n <div *ngFor=\"let row of pages[currentPageIndex].rows\">\n <div class=\"margin d-flex\">\n <div *ngFor=\"let grid of row.grid\"\n [ngStyle]=\"{'width.%': (grid.element.count) * (100 / 12)}\">\n <lib-form-elements\n [grid]=\"grid\"\n [edit]=\"edit\"\n [acceptedLanguage]=\"acceptedLanguage\"\n [pages]=\"pages\"\n (subFormChange)=\"updateSubFormWithSubmissions($event)\"\n ></lib-form-elements>\n </div>\n </div>\n </div>\n </div>\n <div class=\"footerButton d-flex justify-content-between align-items-center me-4 ms-4 position-relative\">\n <!-- Hover detection container -->\n <div [ngStyle]=\"{ display: currentPageIndex === pageDetails.length - 1 ? 'block' : 'none' }\" id=\"captcha-container\"></div>\n <div\n class=\"button-container position-relative\"\n (mouseenter)=\"showTooltip = true\"\n (mouseleave)=\"showTooltip = false\"\n >\n\n <div *ngIf=\"currentPageIndex == pageDetails.length - 1\">\n <button *ngIf=\"showCancelButton\" class=\"btn submitButton rounded-pill bg-secondary text-white\"\n (click)=\"cancelled()\" type=\"button\"\n >Cancel</button>\n <button\n *ngIf=\"!isActionTriggered && skipValidation\"\n class=\"btn rounded-pill submitButton text-white\"\n [ngStyle]=\"{ 'background-color': secondaryColor ? secondaryColor : '#084fff' }\"\n type=\"button\"\n (click)=\"saveAsDraft()\"\n [disabled]=\"!eligibleForSubmission.status || submissionInDraft\"\n >\n <ng-container *ngIf=\"submissionInDraft; else showSubmitText\">\n <span class=\"spinner-border spinner-border-sm me-2\" role=\"status\" aria-hidden=\"true\"></span>\n Submitting...\n </ng-container>\n <ng-template #showSubmitText>\n Save Draft\n </ng-template>\n </button>\n \n\n <button\n *ngIf=\"!isActionTriggered\"\n class=\"btn rounded-pill submitButton text-white\"\n [ngStyle]=\"{ 'background-color': primaryColor ? primaryColor: '#084fff' }\"\n type=\"button\"\n (click)=\"submitForm()\"\n [disabled]=\"!eligibleForSubmission.status || submissionInProgress\"\n >\n <ng-container *ngIf=\"submissionInProgress; else showSubmitText\">\n <span class=\"spinner-border spinner-border-sm me-2\" role=\"status\" aria-hidden=\"true\"></span>\n Submitting...\n </ng-container>\n <ng-template #showSubmitText>\n Submit\n </ng-template>\n </button>\n <div *ngIf=\"showTooltip && !eligibleForSubmission.status\" class=\"custom-tooltip\">\n {{eligibleForSubmission.message}}\n </div>\n </div>\n </div>\n\n </div>\n <div *ngIf=\"submissionInProgress\" class=\"text-loader\">\n {{ currentStep }}{{ animatedDots }}\n <span class=\"percentage\">{{ submissionProgress }}%</span>\n </div>\n\n </div>\n </div>\n </ng-container>\n </div>\n</div>\n", styles: [".tab-inner-container{width:100%;position:relative;padding:3rem}@media (max-width: 1024px){.tab-inner-container{padding-left:1rem;padding-right:1rem}}@media (max-width: 576px){.tab-inner-container{padding:2rem .5rem}}.skip-margin{padding:0}.custom-tooltip{visibility:hidden;position:absolute;top:-40px;right:0;background:#efefef;color:#7b7878;padding:8px 12px;border-radius:12px;box-shadow:0 4px 8px #00000026;font-size:14px;white-space:nowrap;z-index:10}.custom-tooltip.warning{background:linear-gradient(135deg,gold,#ffb400)}.fade-in{animation:fadeIn .3s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.footerButton:hover .custom-tooltip{visibility:visible}.navTabs{overflow-x:auto;overflow-y:hidden;flex-wrap:unset;margin:0 0 -1px!important;padding-right:0}.nav-item{background-color:#fff;border-radius:5px}.nav-item.nav-item-default{margin-right:.5%}.nav-item.nav-item-ara{margin-left:.5%}.nav-link{position:relative;margin-bottom:-2px;padding-left:25px;padding-right:25px}.nav-link:after{content:\"\";position:absolute;left:0;bottom:0;width:101%;height:6px;background:#efefef}.nav-link.active:after{display:none}.tab-content{background-color:#fff}.custom-tooltip{--bs-tooltip-bg: var(--bd-violet-bg);--bs-tooltip-color: var(--bs-white)}.tab-navigation{position:relative;display:flex;align-items:center;width:95%}.navTabs{display:flex;overflow-x:auto;scroll-behavior:smooth;white-space:nowrap;width:100%;padding:0;margin:0;scrollbar-width:none;-ms-overflow-style:none}.navTabs::-webkit-scrollbar{display:none}.nav-arrow{position:absolute;background:#fff;border:none;cursor:pointer;font-size:20px;font-weight:700;padding:5px 10px;z-index:1000;box-shadow:0 2px 5px #0003;width:45px;height:27px;gap:13px;display:flex;justify-content:center;align-items:center;border-radius:6px}.nav-arrow img{width:8px;height:15px}.submitButton{margin-right:1rem}.spinner-border{display:inline-block;width:1rem;height:1rem;vertical-align:text-bottom;border:.15em solid currentColor;border-right-color:transparent;border-radius:50%;animation:spinner-border .75s linear infinite}@keyframes spinner-border{to{transform:rotate(360deg)}}.text-loader{font-size:14px;font-weight:500;padding:8px 12px;border-radius:6px;align-items:center;gap:8px;display:flex;justify-content:center}.percentage{font-weight:600;color:var(--primaryColor, #084fff)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.FormElementsComponent, selector: "lib-form-elements", inputs: ["currentPageIndex", "edit", "acceptedLanguage", "answer", "grid", "state", "pages"], outputs: ["subFormChange"] }, { kind: "directive", type: i4.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }] }); }
|
|
118
|
-
}
|
|
119
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NavigationTabsComponent, decorators: [{
|
|
120
|
-
type: Component,
|
|
121
|
-
args: [{ selector: 'lib-navigation-tabs', template: "<div class=\"tab-inner-container\" [ngClass]=\"{ 'skip-margin': skipMargin}\">\n <div class=\"d-flex gap-2\">\n <div class=\"tab-navigation\" *ngIf=\"!hideTabs\">\n <ul class=\"nav nav-tabs navTabs\" id=\"myTab\" role=\"tablist\">\n <li\n class=\"nav-item\"\n role=\"presentation\"\n *ngFor=\"let page of pageDetails; let i = index; trackBy: trackByIndex\"\n [ngClass]=\"{'nav-item-ara': acceptedLanguage === 'ara', 'nav-item-default': acceptedLanguage !== 'ara'}\"\n >\n <button\n class=\"nav-link\"\n [title]=\"page.name\"\n data-bs-toggle=\"tooltip\"\n data-bs-placement=\"top\"\n data-bs-custom-class=\"custom-tooltip\"\n [class.active]=\"i === currentPageIndex\"\n id=\"tab-{{ i }}\"\n type=\"button\"\n role=\"tab\"\n [attr.aria-controls]=\"'content-' + i\"\n [attr.aria-selected]=\"i === currentPageIndex\"\n (click)=\"setCurrentPage(i)\"\n >\n {{ page.name }}\n </button>\n </li>\n </ul>\n </div>\n <div class=\"d-flex align-items-center\" *ngIf=\"showNavArrows\">\n <button class=\"nav-arrow\">\n <img src=\"assets/icons/left_arrow.svg\" alt=\"left arrow\"\n (click)=\"scrollTabs(-1)\">\n <img src=\"assets/icons/right_arrow.svg\" alt=\"right arrow\"\n (click)=\"scrollTabs(1)\">\n </button>\n </div>\n </div>\n\n\n\n <div class=\"tab-content pt-5 pb-3 px-1\" [attr.name]=\"pages[currentPageIndex].testElementName\">\n <ng-container *ngIf=\"pages[currentPageIndex]\">\n <div\n class=\"tab-pane fade show active\"\n id=\"content-{{ currentPageIndex }}\"\n role=\"tabpanel\"\n [attr.aria-labelledby]=\"'tab-' + currentPageIndex\"\n >\n <div *ngIf=\"loadedPages[currentPageIndex]\">\n <div class=\"data-container\"\n infiniteScroll\n [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"200\"\n (scrolled)=\"loadMoreData()\">\n <div *ngFor=\"let row of pages[currentPageIndex].rows\">\n <div class=\"margin d-flex\">\n <div *ngFor=\"let grid of row.grid\"\n [ngStyle]=\"{'width.%': (grid.element.count) * (100 / 12)}\">\n <lib-form-elements\n [grid]=\"grid\"\n [edit]=\"edit\"\n [acceptedLanguage]=\"acceptedLanguage\"\n [pages]=\"pages\"\n (subFormChange)=\"updateSubFormWithSubmissions($event)\"\n ></lib-form-elements>\n </div>\n </div>\n </div>\n </div>\n <div class=\"footerButton d-flex justify-content-between align-items-center me-4 ms-4 position-relative\">\n <!-- Hover detection container -->\n <div [ngStyle]=\"{ display: currentPageIndex === pageDetails.length - 1 ? 'block' : 'none' }\" id=\"captcha-container\"></div>\n <div\n class=\"button-container position-relative\"\n (mouseenter)=\"showTooltip = true\"\n (mouseleave)=\"showTooltip = false\"\n >\n\n <div *ngIf=\"currentPageIndex == pageDetails.length - 1\">\n <button *ngIf=\"showCancelButton\" class=\"btn submitButton rounded-pill bg-secondary text-white\"\n (click)=\"cancelled()\" type=\"button\"\n >Cancel</button>\n <button\n *ngIf=\"!isActionTriggered && skipValidation\"\n class=\"btn rounded-pill submitButton text-white\"\n [ngStyle]=\"{ 'background-color': secondaryColor ? secondaryColor : '#084fff' }\"\n type=\"button\"\n (click)=\"saveAsDraft()\"\n [disabled]=\"!eligibleForSubmission.status || submissionInDraft\"\n >\n <ng-container *ngIf=\"submissionInDraft; else showSubmitText\">\n <span class=\"spinner-border spinner-border-sm me-2\" role=\"status\" aria-hidden=\"true\"></span>\n Submitting...\n </ng-container>\n <ng-template #showSubmitText>\n Save Draft\n </ng-template>\n </button>\n \n\n <button\n *ngIf=\"!isActionTriggered\"\n class=\"btn rounded-pill submitButton text-white\"\n [ngStyle]=\"{ 'background-color': primaryColor ? primaryColor: '#084fff' }\"\n type=\"button\"\n (click)=\"submitForm()\"\n [disabled]=\"!eligibleForSubmission.status || submissionInProgress\"\n >\n <ng-container *ngIf=\"submissionInProgress; else showSubmitText\">\n <span class=\"spinner-border spinner-border-sm me-2\" role=\"status\" aria-hidden=\"true\"></span>\n Submitting...\n </ng-container>\n <ng-template #showSubmitText>\n Submit\n </ng-template>\n </button>\n <div *ngIf=\"showTooltip && !eligibleForSubmission.status\" class=\"custom-tooltip\">\n {{eligibleForSubmission.message}}\n </div>\n </div>\n </div>\n\n </div>\n <div *ngIf=\"submissionInProgress\" class=\"text-loader\">\n {{ currentStep }}{{ animatedDots }}\n <span class=\"percentage\">{{ submissionProgress }}%</span>\n </div>\n\n </div>\n </div>\n </ng-container>\n </div>\n</div>\n", styles: [".tab-inner-container{width:100%;position:relative;padding:3rem}@media (max-width: 1024px){.tab-inner-container{padding-left:1rem;padding-right:1rem}}@media (max-width: 576px){.tab-inner-container{padding:2rem .5rem}}.skip-margin{padding:0}.custom-tooltip{visibility:hidden;position:absolute;top:-40px;right:0;background:#efefef;color:#7b7878;padding:8px 12px;border-radius:12px;box-shadow:0 4px 8px #00000026;font-size:14px;white-space:nowrap;z-index:10}.custom-tooltip.warning{background:linear-gradient(135deg,gold,#ffb400)}.fade-in{animation:fadeIn .3s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.footerButton:hover .custom-tooltip{visibility:visible}.navTabs{overflow-x:auto;overflow-y:hidden;flex-wrap:unset;margin:0 0 -1px!important;padding-right:0}.nav-item{background-color:#fff;border-radius:5px}.nav-item.nav-item-default{margin-right:.5%}.nav-item.nav-item-ara{margin-left:.5%}.nav-link{position:relative;margin-bottom:-2px;padding-left:25px;padding-right:25px}.nav-link:after{content:\"\";position:absolute;left:0;bottom:0;width:101%;height:6px;background:#efefef}.nav-link.active:after{display:none}.tab-content{background-color:#fff}.custom-tooltip{--bs-tooltip-bg: var(--bd-violet-bg);--bs-tooltip-color: var(--bs-white)}.tab-navigation{position:relative;display:flex;align-items:center;width:95%}.navTabs{display:flex;overflow-x:auto;scroll-behavior:smooth;white-space:nowrap;width:100%;padding:0;margin:0;scrollbar-width:none;-ms-overflow-style:none}.navTabs::-webkit-scrollbar{display:none}.nav-arrow{position:absolute;background:#fff;border:none;cursor:pointer;font-size:20px;font-weight:700;padding:5px 10px;z-index:1000;box-shadow:0 2px 5px #0003;width:45px;height:27px;gap:13px;display:flex;justify-content:center;align-items:center;border-radius:6px}.nav-arrow img{width:8px;height:15px}.submitButton{margin-right:1rem}.spinner-border{display:inline-block;width:1rem;height:1rem;vertical-align:text-bottom;border:.15em solid currentColor;border-right-color:transparent;border-radius:50%;animation:spinner-border .75s linear infinite}@keyframes spinner-border{to{transform:rotate(360deg)}}.text-loader{font-size:14px;font-weight:500;padding:8px 12px;border-radius:6px;align-items:center;gap:8px;display:flex;justify-content:center}.percentage{font-weight:600;color:var(--primaryColor, #084fff)}\n"] }]
|
|
122
|
-
}], ctorParameters: function () { return [{ type: i1.FormValidationService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { pages: [{
|
|
123
|
-
type: Input
|
|
124
|
-
}], currentPageIndex: [{
|
|
125
|
-
type: Input
|
|
126
|
-
}], skipValidation: [{
|
|
127
|
-
type: Input
|
|
128
|
-
}], pageChanged: [{
|
|
129
|
-
type: Output
|
|
130
|
-
}], submitEmit: [{
|
|
131
|
-
type: Output
|
|
132
|
-
}], saveAsDraftEmit: [{
|
|
133
|
-
type: Output
|
|
134
|
-
}], edit: [{
|
|
135
|
-
type: Input
|
|
136
|
-
}], acceptedLanguage: [{
|
|
137
|
-
type: Input
|
|
138
|
-
}], eligibleForSubmission: [{
|
|
139
|
-
type: Input
|
|
140
|
-
}], subFormChange: [{
|
|
141
|
-
type: Output
|
|
142
|
-
}], pageDetails: [{
|
|
143
|
-
type: Input
|
|
144
|
-
}], markAllQuestionsAsRequired: [{
|
|
145
|
-
type: Input
|
|
146
|
-
}], skipMargin: [{
|
|
147
|
-
type: Input
|
|
148
|
-
}], rowSetIndex: [{
|
|
149
|
-
type: Output
|
|
150
|
-
}], cancel: [{
|
|
151
|
-
type: Output
|
|
152
|
-
}], primaryColor: [{
|
|
153
|
-
type: Input
|
|
154
|
-
}], secondaryColor: [{
|
|
155
|
-
type: Input
|
|
156
|
-
}], isActionTriggered: [{
|
|
157
|
-
type: Input
|
|
158
|
-
}], submissionInProgress: [{
|
|
159
|
-
type: Input
|
|
160
|
-
}], submissionInDraft: [{
|
|
161
|
-
type: Input
|
|
162
|
-
}], showCancelButton: [{
|
|
163
|
-
type: Input
|
|
164
|
-
}], submissionProgress: [{
|
|
165
|
-
type: Input
|
|
166
|
-
}], currentStep: [{
|
|
167
|
-
type: Input
|
|
168
|
-
}], animatedDots: [{
|
|
169
|
-
type: Input
|
|
170
|
-
}] } });
|
|
171
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi10YWJzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Zvcm0tc3VibWlzc2lvbi9zcmMvZm9ybS1zdWJtaXNzaW9uL25hdmlnYXRpb24tdGFicy9uYXZpZ2F0aW9uLXRhYnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybS1zdWJtaXNzaW9uL3NyYy9mb3JtLXN1Ym1pc3Npb24vbmF2aWdhdGlvbi10YWJzL25hdmlnYXRpb24tdGFicy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBUTFGLE1BQU0sT0FBTyx1QkFBdUI7SUE4QmxDLFlBQ1UscUJBQTRDLEVBQzVDLEdBQXNCO1FBRHRCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDNUMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUEvQnZCLFVBQUssR0FBVSxFQUFFLENBQUM7UUFDbEIscUJBQWdCLEdBQVcsQ0FBQyxDQUFDO1FBQzVCLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBQ2hDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUN6QyxlQUFVLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFDdkQsb0JBQWUsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUMvRCxTQUFJLEdBQWEsS0FBSyxDQUFDO1FBQ3ZCLHFCQUFnQixHQUFVLEVBQUUsQ0FBQztRQUM1QiwwQkFBcUIsR0FBd0MsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUMzRixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDekMsZ0JBQVcsR0FBVSxFQUFFLENBQUM7UUFDeEIsK0JBQTBC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R0E1SFksdUJBQXVCO21HQUF2Qix1QkFBdUIsZzNCQ1JwQyxxOUtBc0lBOzs0RkQ5SGEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHFCQUFxQjs0SUFLdEIsS0FBSztzQkFBYixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDSSxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDSSxlQUFlO3NCQUF4QixNQUFNO2dCQUNDLElBQUk7c0JBQVosS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0kscUJBQXFCO3NCQUE5QixLQUFLO2dCQUNJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0UsV0FBVztzQkFBbkIsS0FBSztnQkFDRywwQkFBMEI7c0JBQWxDLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRSxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1WYWxpZGF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Zvcm0tdmFsaWRhdGlvbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLW5hdmlnYXRpb24tdGFicycsXG4gIHRlbXBsYXRlVXJsOiAnLi9uYXZpZ2F0aW9uLXRhYnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9uYXZpZ2F0aW9uLXRhYnMuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTmF2aWdhdGlvblRhYnNDb21wb25lbnQge1xuICBASW5wdXQoKSBwYWdlczogYW55W10gPSBbXTtcbiAgQElucHV0KCkgY3VycmVudFBhZ2VJbmRleDogbnVtYmVyID0gMDtcbiAgIEBJbnB1dCgpIHNraXBWYWxpZGF0aW9uOiBib29sZWFuID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBwYWdlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICBAT3V0cHV0KCkgc3VibWl0RW1pdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgIEBPdXRwdXQoKSBzYXZlQXNEcmFmdEVtaXQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIGVkaXQgOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGFjY2VwdGVkTGFuZ3VhZ2U6IHN0cmluZyA9Jyc7XG4gIEBJbnB1dCgpICBlbGlnaWJsZUZvclN1Ym1pc3Npb246eyBzdGF0dXM6IGJvb2xlYW47IG1lc3NhZ2U6IHN0cmluZyB9ID0geyBzdGF0dXM6IHRydWUsIG1lc3NhZ2U6ICcnIH07XG4gIEBPdXRwdXQoKSBzdWJGb3JtQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBJbnB1dCgpIHBhZ2VEZXRhaWxzOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBtYXJrQWxsUXVlc3Rpb25zQXNSZXF1aXJlZCA6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2tpcE1hcmdpbjogYm9vbGVhbiA9IGZhbHNlO1xuICBAT3V0cHV0KCkgcm93U2V0SW5kZXggPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgQE91dHB1dCgpIGNhbmNlbDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQElucHV0KCkgcHJpbWFyeUNvbG9yOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgc2Vjb25kYXJ5Q29sb3I6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBpc0FjdGlvblRyaWdnZXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzdWJtaXNzaW9uSW5Qcm9ncmVzczogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzdWJtaXNzaW9uSW5EcmFmdDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzaG93Q2FuY2VsQnV0dG9uOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHN1Ym1pc3Npb25Qcm9ncmVzcyA9IDA7XG4gIEBJbnB1dCgpIGN1cnJlbnRTdGVwID0gJ1N1Ym1pdHRpbmcgZm9ybSc7XG4gIEBJbnB1dCgpIGFuaW1hdGVkRG90cyA9ICcnO1xuICBsb2FkZWRQYWdlczogeyBba2V5OiBudW1iZXJdOiBib29sZWFuIH0gPSB7fTtcbiAgc2hvd1Rvb2x0aXA6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc2hvd05hdkFycm93czogYm9vbGVhbiA9IGZhbHNlO1xuICBoaWRlVGFiczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZm9ybVZhbGlkYXRpb25TZXJ2aWNlOiBGb3JtVmFsaWRhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIC8vIExvYWQgdGhlIGZpcnN0IHBhZ2UgaW5pdGlhbGx5XG4gICAgdGhpcy5sb2FkZWRQYWdlc1t0aGlzLmN1cnJlbnRQYWdlSW5kZXhdID0gdHJ1ZTtcbiAgfVxuXG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jaGVja1BhZ2VEZXRhaWxzKClcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2hlY2tPdmVyZmxvdygpKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBjaGVja1BhZ2VEZXRhaWxzKCl7XG4gICAgaWYodGhpcy5wYWdlRGV0YWlscyAmJiB0aGlzLnBhZ2VEZXRhaWxzPy5sZW5ndGg9PTEgJiYgdGhpcy5wYWdlRGV0YWlsc1swXT8ubmFtZT09Jycpe1xuICAgICAgdGhpcy5oaWRlVGFicz10cnVlO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVN1YkZvcm1XaXRoU3VibWlzc2lvbnMoZXZlbnQ6YW55KXtcbiAgICB0aGlzLnN1YkZvcm1DaGFuZ2UuZW1pdChldmVudCk7XG4gIH1cblxuICB0cmlnZ2VyRnVuY3Rpb24oZXZlbnQ6IG51bWJlcikge1xuICAgIHRoaXMuc2V0Q3VycmVudFBhZ2UoZXZlbnQpO1xuICB9XG5cbiAgc2V0Q3VycmVudFBhZ2UoaW5kZXg6IG51bWJlcikge1xuICAgIGlmKHRoaXMubWFya0FsbFF1ZXN0aW9uc0FzUmVxdWlyZWQpe1xuICAgICAgY29uc3QgY3VycmVudFBhZ2VEYXRhID0gdGhpcy5wYWdlc1t0aGlzLmN1cnJlbnRQYWdlSW5kZXhdO1xuICAgICAgbGV0IHZhbGlkYXRpb25SZXNwb25zZT10cnVlO1xuICAgICAgaWYoIXRoaXMuc2tpcFZhbGlkYXRpb24pIHtcbiAgICAgICAgICAgIHZhbGlkYXRpb25SZXNwb25zZSA9IHRoaXMuZm9ybVZhbGlkYXRpb25TZXJ2aWNlLnZhbGlkYXRlUmVxdWlyZWRRdWVzdGlvbnMoY3VycmVudFBhZ2VEYXRhKS5pc1ZhbGlkO1xuICAgICAgIH1cbiAgICAgIGlmICh2YWxpZGF0aW9uUmVzcG9uc2UpIHtcbiAgICAgICAgdGhpcy5wYWdlQ2hhbmdlZC5lbWl0KGluZGV4KTtcbiAgICAgICAgdGhpcy5jdXJyZW50UGFnZUluZGV4ID0gaW5kZXg7XG4gICAgICAgIC8vIE1hcmsgdGhpcyBwYWdlIGFzIGxvYWRlZCB0byBhdm9pZCByZWxvYWRpbmdcbiAgICAgICAgaWYgKCF0aGlzLmxvYWRlZFBhZ2VzW2luZGV4XSkge1xuICAgICAgICAgIHRoaXMubG9hZGVkUGFnZXNbaW5kZXhdID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1lbHNle1xuICAgICAgdGhpcy5wYWdlQ2hhbmdlZC5lbWl0KGluZGV4KTtcbiAgICAgIHRoaXMuY3VycmVudFBhZ2VJbmRleCA9IGluZGV4O1xuICAgICAgLy8gTWFyayB0aGlzIHBhZ2UgYXMgbG9hZGVkIHRvIGF2b2lkIHJlbG9hZGluZ1xuICAgICAgaWYgKCF0aGlzLmxvYWRlZFBhZ2VzW2luZGV4XSkge1xuICAgICAgICB0aGlzLmxvYWRlZFBhZ2VzW2luZGV4XSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc3VibWl0Rm9ybSgpIHtcbiAgICB0aGlzLnN1Ym1pdEVtaXQuZW1pdCgpO1xuICB9XG5cbiAgICBzYXZlQXNEcmFmdCgpIHtcbiAgICB0aGlzLnNhdmVBc0RyYWZ0RW1pdC5lbWl0KCk7XG4gIH1cblxuICB0cmFja0J5SW5kZXgoaW5kZXg6IG51bWJlciwgaXRlbTogYW55KTogbnVtYmVyIHtcbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cblxuICBsb2FkTW9yZURhdGEoKTogdm9pZCB7XG4gICAgdGhpcy5yb3dTZXRJbmRleC5lbWl0KHRoaXMuY3VycmVudFBhZ2VJbmRleCk7XG4gfVxuXG4gdG9nZ2xlVG9vbHRpcCgpIHtcbiAgdGhpcy5zaG93VG9vbHRpcCA9ICF0aGlzLmVsaWdpYmxlRm9yU3VibWlzc2lvbi5zdGF0dXM7XG59XG5cbnNjcm9sbFRhYnMoZGlyZWN0aW9uOiBudW1iZXIpIHtcbiAgY29uc3QgdGFiQ29udGFpbmVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm5hdlRhYnMnKSBhcyBIVE1MRWxlbWVudDtcbiAgaWYgKHRhYkNvbnRhaW5lcikge1xuICAgIHRhYkNvbnRhaW5lci5zY3JvbGxCeSh7IGxlZnQ6IGRpcmVjdGlvbiAqIDEwMCwgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jaGVja092ZXJmbG93KCksIDMwMCk7XG4gIH1cbn1cblxuY2hlY2tPdmVyZmxvdygpIHtcbiAgY29uc3QgdGFiQ29udGFpbmVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm5hdlRhYnMnKSBhcyBIVE1MRWxlbWVudDtcbiAgaWYgKHRhYkNvbnRhaW5lcikge1xuICAgIHRoaXMuc2hvd05hdkFycm93cyA9ICh0YWJDb250YWluZXIuc2Nyb2xsV2lkdGggPiB0YWJDb250YWluZXIuY2xpZW50V2lkdGgpO1xuICB9XG59XG5cbmNhbmNlbGxlZCgpe1xuICB0aGlzLmNhbmNlbC5lbWl0KCk7XG59XG59XG4iLCI8ZGl2IGNsYXNzPVwidGFiLWlubmVyLWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cInsgJ3NraXAtbWFyZ2luJzogc2tpcE1hcmdpbn1cIj5cbiAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMlwiPlxuICAgIDxkaXYgY2xhc3M9XCJ0YWItbmF2aWdhdGlvblwiICpuZ0lmPVwiIWhpZGVUYWJzXCI+XG4gICAgICA8dWwgY2xhc3M9XCJuYXYgbmF2LXRhYnMgbmF2VGFic1wiIGlkPVwibXlUYWJcIiByb2xlPVwidGFibGlzdFwiPlxuICAgICAgICA8bGlcbiAgICAgICAgICBjbGFzcz1cIm5hdi1pdGVtXCJcbiAgICAgICAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgcGFnZSBvZiBwYWdlRGV0YWlsczsgbGV0IGkgPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeUluZGV4XCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7J25hdi1pdGVtLWFyYSc6IGFjY2VwdGVkTGFuZ3VhZ2UgPT09ICdhcmEnLCAnbmF2LWl0ZW0tZGVmYXVsdCc6IGFjY2VwdGVkTGFuZ3VhZ2UgIT09ICdhcmEnfVwiXG4gICAgICAgID5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cIm5hdi1saW5rXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCJwYWdlLm5hbWVcIlxuICAgICAgICAgICAgZGF0YS1icy10b2dnbGU9XCJ0b29sdGlwXCJcbiAgICAgICAgICAgIGRhdGEtYnMtcGxhY2VtZW50PVwidG9wXCJcbiAgICAgICAgICAgIGRhdGEtYnMtY3VzdG9tLWNsYXNzPVwiY3VzdG9tLXRvb2x0aXBcIlxuICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJpID09PSBjdXJyZW50UGFnZUluZGV4XCJcbiAgICAgICAgICAgIGlkPVwidGFiLXt7IGkgfX1cIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICByb2xlPVwidGFiXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiJ2NvbnRlbnQtJyArIGlcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJpID09PSBjdXJyZW50UGFnZUluZGV4XCJcbiAgICAgICAgICAgIChjbGljayk9XCJzZXRDdXJyZW50UGFnZShpKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgcGFnZS5uYW1lIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbGk+XG4gICAgICA8L3VsPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCIgKm5nSWY9XCJzaG93TmF2QXJyb3dzXCI+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwibmF2LWFycm93XCI+XG4gICAgICAgIDxpbWcgc3JjPVwiYXNzZXRzL2ljb25zL2xlZnRfYXJyb3cuc3ZnXCIgYWx0PVwibGVmdCBhcnJvd1wiXG4gICAgICAgIChjbGljayk9XCJzY3JvbGxUYWJzKC0xKVwiPlxuICAgICAgICA8aW1nIHNyYz1cImFzc2V0cy9pY29ucy9yaWdodF9hcnJvdy5zdmdcIiBhbHQ9XCJyaWdodCBhcnJvd1wiXG4gICAgICAgIChjbGljayk9XCJzY3JvbGxUYWJzKDEpXCI+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cblxuXG4gIDxkaXYgY2xhc3M9XCJ0YWItY29udGVudCBwdC01IHBiLTMgcHgtMVwiIFthdHRyLm5hbWVdPVwicGFnZXNbY3VycmVudFBhZ2VJbmRleF0udGVzdEVsZW1lbnROYW1lXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBhZ2VzW2N1cnJlbnRQYWdlSW5kZXhdXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidGFiLXBhbmUgZmFkZSBzaG93IGFjdGl2ZVwiXG4gICAgICAgIGlkPVwiY29udGVudC17eyBjdXJyZW50UGFnZUluZGV4IH19XCJcbiAgICAgICAgcm9sZT1cInRhYnBhbmVsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIid0YWItJyArIGN1cnJlbnRQYWdlSW5kZXhcIlxuICAgICAgPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwibG9hZGVkUGFnZXNbY3VycmVudFBhZ2VJbmRleF1cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0YS1jb250YWluZXJcIlxuICAgICAgICAgIGluZmluaXRlU2Nyb2xsXG4gICAgICAgICAgW2luZmluaXRlU2Nyb2xsRGlzdGFuY2VdPVwiMlwiXG4gICAgICAgICAgW2luZmluaXRlU2Nyb2xsVGhyb3R0bGVdPVwiMjAwXCJcbiAgICAgICAgICAoc2Nyb2xsZWQpPVwibG9hZE1vcmVEYXRhKClcIj5cbiAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCByb3cgb2YgcGFnZXNbY3VycmVudFBhZ2VJbmRleF0ucm93c1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1hcmdpbiBkLWZsZXhcIj5cbiAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZ3JpZCBvZiByb3cuZ3JpZFwiXG4gICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyd3aWR0aC4lJzogKGdyaWQuZWxlbWVudC5jb3VudCkgKiAoMTAwIC8gMTIpfVwiPlxuICAgICAgICAgICAgICAgIDxsaWItZm9ybS1lbGVtZW50c1xuICAgICAgICAgICAgICAgICAgW2dyaWRdPVwiZ3JpZFwiXG4gICAgICAgICAgICAgICAgICBbZWRpdF09XCJlZGl0XCJcbiAgICAgICAgICAgICAgICAgIFthY2NlcHRlZExhbmd1YWdlXT1cImFjY2VwdGVkTGFuZ3VhZ2VcIlxuICAgICAgICAgICAgICAgICAgW3BhZ2VzXT1cInBhZ2VzXCJcbiAgICAgICAgICAgICAgICAgIChzdWJGb3JtQ2hhbmdlKT1cInVwZGF0ZVN1YkZvcm1XaXRoU3VibWlzc2lvbnMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgPjwvbGliLWZvcm0tZWxlbWVudHM+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvb3RlckJ1dHRvbiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIG1lLTQgbXMtNCBwb3NpdGlvbi1yZWxhdGl2ZVwiPlxuICAgICAgICAgIDwhLS0gSG92ZXIgZGV0ZWN0aW9uIGNvbnRhaW5lciAtLT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAgW25nU3R5bGVdPVwieyBkaXNwbGF5OiBjdXJyZW50UGFnZUluZGV4ID09PSBwYWdlRGV0YWlscy5sZW5ndGggLSAxID8gJ2Jsb2NrJyA6ICdub25lJyB9XCIgaWQ9XCJjYXB0Y2hhLWNvbnRhaW5lclwiPjwvZGl2PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uLWNvbnRhaW5lciBwb3NpdGlvbi1yZWxhdGl2ZVwiXG4gICAgICAgICAgICAobW91c2VlbnRlcik9XCJzaG93VG9vbHRpcCA9IHRydWVcIlxuICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwic2hvd1Rvb2x0aXAgPSBmYWxzZVwiXG4gICAgICAgICAgPlxuXG4gICAgICAgICAgPGRpdiAgKm5nSWY9XCJjdXJyZW50UGFnZUluZGV4ID09IHBhZ2VEZXRhaWxzLmxlbmd0aCAtIDFcIj5cbiAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJzaG93Q2FuY2VsQnV0dG9uXCIgY2xhc3M9XCJidG4gc3VibWl0QnV0dG9uIHJvdW5kZWQtcGlsbCBiZy1zZWNvbmRhcnkgdGV4dC13aGl0ZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2FuY2VsbGVkKClcIiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgID5DYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiIWlzQWN0aW9uVHJpZ2dlcmVkICYmIHNraXBWYWxpZGF0aW9uXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJidG4gcm91bmRlZC1waWxsIHN1Ym1pdEJ1dHRvbiB0ZXh0LXdoaXRlXCJcbiAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyAnYmFja2dyb3VuZC1jb2xvcic6IHNlY29uZGFyeUNvbG9yID8gc2Vjb25kYXJ5Q29sb3IgOiAnIzA4NGZmZicgfVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwic2F2ZUFzRHJhZnQoKVwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhZWxpZ2libGVGb3JTdWJtaXNzaW9uLnN0YXR1cyB8fCBzdWJtaXNzaW9uSW5EcmFmdFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3VibWlzc2lvbkluRHJhZnQ7IGVsc2Ugc2hvd1N1Ym1pdFRleHRcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzcGlubmVyLWJvcmRlciBzcGlubmVyLWJvcmRlci1zbSBtZS0yXCIgcm9sZT1cInN0YXR1c1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgU3VibWl0dGluZy4uLlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3Nob3dTdWJtaXRUZXh0PlxuICAgICAgICAgICAgIFNhdmUgRHJhZnRcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIFxuXG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cIiFpc0FjdGlvblRyaWdnZXJlZFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiYnRuIHJvdW5kZWQtcGlsbCBzdWJtaXRCdXR0b24gdGV4dC13aGl0ZVwiXG4gICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgJ2JhY2tncm91bmQtY29sb3InOiBwcmltYXJ5Q29sb3IgPyBwcmltYXJ5Q29sb3I6ICcjMDg0ZmZmJyB9XCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJzdWJtaXRGb3JtKClcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVsaWdpYmxlRm9yU3VibWlzc2lvbi5zdGF0dXMgfHwgc3VibWlzc2lvbkluUHJvZ3Jlc3NcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN1Ym1pc3Npb25JblByb2dyZXNzOyBlbHNlIHNob3dTdWJtaXRUZXh0XCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Bpbm5lci1ib3JkZXIgc3Bpbm5lci1ib3JkZXItc20gbWUtMlwiIHJvbGU9XCJzdGF0dXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L3NwYW4+XG4gICAgICAgICAgICAgIFN1Ym1pdHRpbmcuLi5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNzaG93U3VibWl0VGV4dD5cbiAgICAgICAgICAgICAgU3VibWl0XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd1Rvb2x0aXAgJiYgIWVsaWdpYmxlRm9yU3VibWlzc2lvbi5zdGF0dXNcIiBjbGFzcz1cImN1c3RvbS10b29sdGlwXCI+XG4gICAgICAgICAgICAgIHt7ZWxpZ2libGVGb3JTdWJtaXNzaW9uLm1lc3NhZ2V9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwic3VibWlzc2lvbkluUHJvZ3Jlc3NcIiBjbGFzcz1cInRleHQtbG9hZGVyXCI+XG4gICAgICAgICAge3sgY3VycmVudFN0ZXAgfX17eyBhbmltYXRlZERvdHMgfX1cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInBlcmNlbnRhZ2VcIj57eyBzdWJtaXNzaW9uUHJvZ3Jlc3MgfX0lPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@angular/common";
|
|
4
|
-
import * as i2 from "../../question/form-elements/form-elements.component";
|
|
5
|
-
import * as i3 from "ngx-infinite-scroll";
|
|
6
|
-
export class NextPrevNavigationComponent {
|
|
7
|
-
constructor() {
|
|
8
|
-
this.skipValidation = false;
|
|
9
|
-
this.currentPageIndex = 0;
|
|
10
|
-
this.pages = [];
|
|
11
|
-
this.previousPage = {};
|
|
12
|
-
this.nextPage = {};
|
|
13
|
-
this.currentPage = {};
|
|
14
|
-
this.pageDetails = [];
|
|
15
|
-
this.skipMargin = false;
|
|
16
|
-
this.navigateNext = new EventEmitter();
|
|
17
|
-
this.navigatePrevious = new EventEmitter();
|
|
18
|
-
this.submitEmit = new EventEmitter();
|
|
19
|
-
this.saveAsDraftEmit = new EventEmitter();
|
|
20
|
-
this.cancel = new EventEmitter();
|
|
21
|
-
this.edit = false;
|
|
22
|
-
this.acceptedLanguage = '';
|
|
23
|
-
this.subFormChange = new EventEmitter();
|
|
24
|
-
this.rowSetIndex = new EventEmitter();
|
|
25
|
-
this.primaryColor = '';
|
|
26
|
-
this.secondaryColor = '';
|
|
27
|
-
this.isActionTriggered = false;
|
|
28
|
-
this.submissionInProgress = false;
|
|
29
|
-
this.submissionInDraft = false;
|
|
30
|
-
this.eligibleForSubmission = { status: true, message: '' };
|
|
31
|
-
this.showCancelButton = false;
|
|
32
|
-
this.submissionProgress = 0;
|
|
33
|
-
this.currentStep = 'Submitting form';
|
|
34
|
-
this.animatedDots = '';
|
|
35
|
-
this.showTooltip = false;
|
|
36
|
-
}
|
|
37
|
-
ngOnInit() {
|
|
38
|
-
}
|
|
39
|
-
updateSubFormWithSubmissions(event) {
|
|
40
|
-
this.subFormChange.emit(event);
|
|
41
|
-
}
|
|
42
|
-
onNavigateNext() {
|
|
43
|
-
this.navigateNext.emit();
|
|
44
|
-
}
|
|
45
|
-
onNavigatePrevious() {
|
|
46
|
-
this.navigatePrevious.emit();
|
|
47
|
-
}
|
|
48
|
-
submitForm() {
|
|
49
|
-
this.submitEmit.emit();
|
|
50
|
-
}
|
|
51
|
-
saveAsDraft() {
|
|
52
|
-
this.saveAsDraftEmit.emit();
|
|
53
|
-
}
|
|
54
|
-
loadMoreData() {
|
|
55
|
-
this.rowSetIndex.emit(this.currentPageIndex);
|
|
56
|
-
}
|
|
57
|
-
toggleTooltip() {
|
|
58
|
-
this.showTooltip = !this.eligibleForSubmission.status;
|
|
59
|
-
}
|
|
60
|
-
cancelled() {
|
|
61
|
-
this.cancel.emit();
|
|
62
|
-
}
|
|
63
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NextPrevNavigationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
64
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NextPrevNavigationComponent, selector: "lib-next-prev-navigation", inputs: { skipValidation: "skipValidation", currentPageIndex: "currentPageIndex", pages: "pages", previousPage: "previousPage", nextPage: "nextPage", currentPage: "currentPage", pageDetails: "pageDetails", skipMargin: "skipMargin", edit: "edit", acceptedLanguage: "acceptedLanguage", primaryColor: "primaryColor", secondaryColor: "secondaryColor", isActionTriggered: "isActionTriggered", submissionInProgress: "submissionInProgress", submissionInDraft: "submissionInDraft", eligibleForSubmission: "eligibleForSubmission", showCancelButton: "showCancelButton", submissionProgress: "submissionProgress", currentStep: "currentStep", animatedDots: "animatedDots" }, outputs: { navigateNext: "navigateNext", navigatePrevious: "navigatePrevious", submitEmit: "submitEmit", saveAsDraftEmit: "saveAsDraftEmit", cancel: "cancel", subFormChange: "subFormChange", rowSetIndex: "rowSetIndex" }, ngImport: i0, template: "<!-- <div class=\"pageTitleDiv\" *ngIf=\"!skipMargin\">\n <p class=\"pageTitle\">{{pageDetails[currentPageIndex]?.name}}</p>\n</div> -->\n<div class=\"button-inner-container rounded\" [ngClass]=\"{ 'skip-margin': skipMargin}\">\n <div class=\"tab-content pt-5 pb-3 row\" [attr.name]=\"pages[currentPageIndex].testElementName\">\n <div class=\"data-container\"\n infiniteScroll\n [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"200\"\n (scrolled)=\"loadMoreData()\">\n\n <div *ngFor=\"let row of pages[currentPageIndex]?.rows\" class=\"marginSize d-flex\">\n <div *ngFor=\"let grid of row.grid\"\n [ngStyle]=\"{'width.%': (grid.element.count) * (100 / (12))}\">\n <lib-form-elements\n [grid]=\"grid\"\n [currentPageIndex]=\"currentPageIndex\"\n [edit]=\"edit\"\n [acceptedLanguage]=\"acceptedLanguage\"\n [pages]=\"pages\"\n (subFormChange)=\"updateSubFormWithSubmissions($event)\"\n state=\"parent\"\n ></lib-form-elements>\n </div>\n </div>\n </div>\n <div [ngStyle]=\"{ display: currentPageIndex === pageDetails.length - 1 ? 'block' : 'none' }\" id=\"captcha-container\"></div>\n\n <div class=\"footerButton\">\n <div\n class=\"prevButtonDiv\"\n [ngClass]=\"{ 'prevDirection-rtl': acceptedLanguage === 'ara' }\">\n <button\n class=\"me-md-2 rounded-pill navButton\"\n [ngStyle]=\"{ 'background-color': primaryColor ? primaryColor: '#084fff' }\"\n type=\"button\"\n (click)=\"onNavigatePrevious()\"\n *ngIf=\"0 < currentPageIndex\"\n >\n <ng-container *ngIf=\"acceptedLanguage === 'ara'; else defaultSvg\">\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M19.4897 12.0117L4.49975 12.0117\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M13.486 6.02344L19.502 12.0004L13.486 17.9774\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </ng-container>\n <ng-template #defaultSvg>\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.51025 11.9883L19.5003 11.9883\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M10.514 17.9766L4.49805 11.9996L10.514 6.02256\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </ng-template>\n Previous | {{ previousPage.name }}\n </button>\n </div>\n <div\n class=\"nextButtonDiv\"\n [ngClass]=\"{ 'nextDirection-rtl': acceptedLanguage === 'ara' }\"\n >\n <button\n class=\"md-2 rounded-pill navButton\"\n [ngStyle]=\"{ 'background-color': primaryColor ? primaryColor: '#084fff' }\"\n type=\"button\"\n (click)=\"onNavigateNext()\"\n *ngIf=\"currentPageIndex < pageDetails.length - 1\"\n >\n Next | {{ nextPage.name }}\n <ng-container *ngIf=\"acceptedLanguage === 'ara'; else defaultSvg\">\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.51025 11.9883L19.5003 11.9883\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M10.514 17.9766L4.49805 11.9996L10.514 6.02256\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </ng-container>\n <ng-template #defaultSvg>\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M19.4897 12.0117L4.49975 12.0117\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M13.486 6.02344L19.502 12.0004L13.486 17.9774\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </ng-template>\n </button>\n <button *ngIf=\"showCancelButton && currentPageIndex == pageDetails.length - 1\" class=\"btn submitButton rounded-pill bg-secondary text-white\"\n (click)=\"cancelled()\" type=\"button\"\n >Cancel</button>\n <div\n *ngIf=\"skipValidation\"\n class=\"button-container position-relative\"\n (mouseenter)=\"showTooltip = true\"\n (mouseleave)=\"showTooltip = false\"\n >\n <button\n class=\"submitBtn ms-md-2 me-md-2 rounded-pill d-flex align-items-center justify-content-center\"\n [ngStyle]=\"{ 'background-color': secondaryColor ? secondaryColor : '#084fff' }\"\n type=\"button\"\n *ngIf=\"currentPageIndex == pageDetails.length - 1 && !isActionTriggered\"\n (click)=\"saveAsDraft()\"\n [disabled]=\"!eligibleForSubmission.status || submissionInDraft\"\n >\n <ng-container *ngIf=\"submissionInDraft; else showSubmitText\">\n\n <span class=\"spinner-border spinner-border-sm me-2\" role=\"status\" aria-hidden=\"true\"></span>\n Submitting...\n </ng-container>\n <ng-template #showSubmitText>\n Save Draft\n </ng-template>\n </button>\n <div *ngIf=\"showTooltip && !eligibleForSubmission.status\" class=\"custom-tooltip\">\n {{eligibleForSubmission.message}}\n </div>\n </div>\n\n <div\n class=\"button-container position-relative\"\n (mouseenter)=\"showTooltip = true\"\n (mouseleave)=\"showTooltip = false\"\n >\n <button\n class=\"submitBtn ms-md-2 me-md-2 rounded-pill d-flex align-items-center justify-content-center\"\n [ngStyle]=\"{ 'background-color': primaryColor ? primaryColor : '#084fff' }\"\n type=\"button\"\n *ngIf=\"currentPageIndex == pageDetails.length - 1 && !isActionTriggered\"\n (click)=\"submitForm()\"\n [disabled]=\"!eligibleForSubmission.status || submissionInProgress\"\n >\n <ng-container *ngIf=\"submissionInProgress; else showSubmitText\">\n <span class=\"spinner-border spinner-border-sm me-2\" role=\"status\" aria-hidden=\"true\"></span>\n Submitting...\n </ng-container>\n <ng-template #showSubmitText>\n Submit\n </ng-template>\n </button>\n <div *ngIf=\"showTooltip && !eligibleForSubmission.status\" class=\"custom-tooltip\">\n {{eligibleForSubmission.message}}\n </div>\n </div>\n\n </div>\n </div>\n <div *ngIf=\"submissionInProgress\" class=\"text-loader\">\n {{ currentStep }}{{ animatedDots }}\n <span class=\"percentage\">{{ submissionProgress }}%</span>\n </div>\n</div>\n", styles: [".pageTitle{font-size:15px;font-weight:500}#captcha-container{display:flex;justify-content:center;align-items:center;padding-left:1.8rem}.grecaptcha-popup{position:fixed!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important;z-index:9999;border-radius:50%}@media (max-width: 480px){.g-recaptcha{transform:scale(.85);transform-origin:center}}.pageTitleDiv{padding-left:3rem;padding-top:3rem;padding-right:3rem}@media (max-width: 1024px){.pageTitleDiv{padding-left:1rem;padding-right:1rem;padding-top:2rem}}@media (max-width: 576px){.pageTitleDiv{padding-left:.4rem;padding-right:.4rem;padding-top:1.5rem}}.button-inner-container{width:100%;position:relative;padding:2rem}@media (max-width: 1024px){.button-inner-container{padding-left:1rem;padding-right:1rem}}@media (max-width: 576px){.button-inner-container{padding:.1rem .5rem 2rem}}.skip-margin{padding:0}@media (max-width: 576px){.marginSize{padding:0!important}}.footerButton{padding:10px 32px 16px 30px;display:flex;flex-wrap:wrap}@media (max-width: 576px){.footerButton{padding-left:20px;padding-right:17px}}.navButton{color:#fff;border:none;padding:10px 8px;width:auto}.submitBtn{color:#fff;border:none;padding:10px 27px;width:auto}.prevButtonDiv{display:flex;justify-content:center;margin-bottom:5px}.nextButtonDiv{display:flex;justify-content:flex-end;margin-left:auto;margin-bottom:5px}.nextDirection-rtl{margin-left:0;margin-right:auto}.tab-content,.row{background-color:#fff}.spinner-border{display:inline-block;width:1rem;height:1rem;vertical-align:text-bottom;border:.15em solid currentColor;border-right-color:transparent;border-radius:50%;animation:spinner-border .75s linear infinite}@keyframes spinner-border{to{transform:rotate(360deg)}}.custom-tooltip{visibility:hidden;position:absolute;top:-40px;right:0;background:#efefef;color:#7b7878;padding:8px 12px;border-radius:12px;box-shadow:0 4px 8px #00000026;font-size:14px;white-space:nowrap;z-index:10}.custom-tooltip.warning{background:linear-gradient(135deg,gold,#ffb400)}.fade-in{animation:fadeIn .3s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.footerButton:hover .custom-tooltip{visibility:visible}.text-loader{font-size:14px;font-weight:500;padding:8px 12px;border-radius:6px;align-items:center;gap:8px;display:flex;justify-content:center}.percentage{font-weight:600;color:var(--primaryColor, #084fff)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.FormElementsComponent, selector: "lib-form-elements", inputs: ["currentPageIndex", "edit", "acceptedLanguage", "answer", "grid", "state", "pages"], outputs: ["subFormChange"] }, { kind: "directive", type: i3.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }] }); }
|
|
65
|
-
}
|
|
66
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NextPrevNavigationComponent, decorators: [{
|
|
67
|
-
type: Component,
|
|
68
|
-
args: [{ selector: 'lib-next-prev-navigation', template: "<!-- <div class=\"pageTitleDiv\" *ngIf=\"!skipMargin\">\n <p class=\"pageTitle\">{{pageDetails[currentPageIndex]?.name}}</p>\n</div> -->\n<div class=\"button-inner-container rounded\" [ngClass]=\"{ 'skip-margin': skipMargin}\">\n <div class=\"tab-content pt-5 pb-3 row\" [attr.name]=\"pages[currentPageIndex].testElementName\">\n <div class=\"data-container\"\n infiniteScroll\n [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"200\"\n (scrolled)=\"loadMoreData()\">\n\n <div *ngFor=\"let row of pages[currentPageIndex]?.rows\" class=\"marginSize d-flex\">\n <div *ngFor=\"let grid of row.grid\"\n [ngStyle]=\"{'width.%': (grid.element.count) * (100 / (12))}\">\n <lib-form-elements\n [grid]=\"grid\"\n [currentPageIndex]=\"currentPageIndex\"\n [edit]=\"edit\"\n [acceptedLanguage]=\"acceptedLanguage\"\n [pages]=\"pages\"\n (subFormChange)=\"updateSubFormWithSubmissions($event)\"\n state=\"parent\"\n ></lib-form-elements>\n </div>\n </div>\n </div>\n <div [ngStyle]=\"{ display: currentPageIndex === pageDetails.length - 1 ? 'block' : 'none' }\" id=\"captcha-container\"></div>\n\n <div class=\"footerButton\">\n <div\n class=\"prevButtonDiv\"\n [ngClass]=\"{ 'prevDirection-rtl': acceptedLanguage === 'ara' }\">\n <button\n class=\"me-md-2 rounded-pill navButton\"\n [ngStyle]=\"{ 'background-color': primaryColor ? primaryColor: '#084fff' }\"\n type=\"button\"\n (click)=\"onNavigatePrevious()\"\n *ngIf=\"0 < currentPageIndex\"\n >\n <ng-container *ngIf=\"acceptedLanguage === 'ara'; else defaultSvg\">\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M19.4897 12.0117L4.49975 12.0117\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M13.486 6.02344L19.502 12.0004L13.486 17.9774\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </ng-container>\n <ng-template #defaultSvg>\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.51025 11.9883L19.5003 11.9883\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M10.514 17.9766L4.49805 11.9996L10.514 6.02256\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </ng-template>\n Previous | {{ previousPage.name }}\n </button>\n </div>\n <div\n class=\"nextButtonDiv\"\n [ngClass]=\"{ 'nextDirection-rtl': acceptedLanguage === 'ara' }\"\n >\n <button\n class=\"md-2 rounded-pill navButton\"\n [ngStyle]=\"{ 'background-color': primaryColor ? primaryColor: '#084fff' }\"\n type=\"button\"\n (click)=\"onNavigateNext()\"\n *ngIf=\"currentPageIndex < pageDetails.length - 1\"\n >\n Next | {{ nextPage.name }}\n <ng-container *ngIf=\"acceptedLanguage === 'ara'; else defaultSvg\">\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.51025 11.9883L19.5003 11.9883\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M10.514 17.9766L4.49805 11.9996L10.514 6.02256\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </ng-container>\n <ng-template #defaultSvg>\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M19.4897 12.0117L4.49975 12.0117\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M13.486 6.02344L19.502 12.0004L13.486 17.9774\"\n stroke=\"white\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </ng-template>\n </button>\n <button *ngIf=\"showCancelButton && currentPageIndex == pageDetails.length - 1\" class=\"btn submitButton rounded-pill bg-secondary text-white\"\n (click)=\"cancelled()\" type=\"button\"\n >Cancel</button>\n <div\n *ngIf=\"skipValidation\"\n class=\"button-container position-relative\"\n (mouseenter)=\"showTooltip = true\"\n (mouseleave)=\"showTooltip = false\"\n >\n <button\n class=\"submitBtn ms-md-2 me-md-2 rounded-pill d-flex align-items-center justify-content-center\"\n [ngStyle]=\"{ 'background-color': secondaryColor ? secondaryColor : '#084fff' }\"\n type=\"button\"\n *ngIf=\"currentPageIndex == pageDetails.length - 1 && !isActionTriggered\"\n (click)=\"saveAsDraft()\"\n [disabled]=\"!eligibleForSubmission.status || submissionInDraft\"\n >\n <ng-container *ngIf=\"submissionInDraft; else showSubmitText\">\n\n <span class=\"spinner-border spinner-border-sm me-2\" role=\"status\" aria-hidden=\"true\"></span>\n Submitting...\n </ng-container>\n <ng-template #showSubmitText>\n Save Draft\n </ng-template>\n </button>\n <div *ngIf=\"showTooltip && !eligibleForSubmission.status\" class=\"custom-tooltip\">\n {{eligibleForSubmission.message}}\n </div>\n </div>\n\n <div\n class=\"button-container position-relative\"\n (mouseenter)=\"showTooltip = true\"\n (mouseleave)=\"showTooltip = false\"\n >\n <button\n class=\"submitBtn ms-md-2 me-md-2 rounded-pill d-flex align-items-center justify-content-center\"\n [ngStyle]=\"{ 'background-color': primaryColor ? primaryColor : '#084fff' }\"\n type=\"button\"\n *ngIf=\"currentPageIndex == pageDetails.length - 1 && !isActionTriggered\"\n (click)=\"submitForm()\"\n [disabled]=\"!eligibleForSubmission.status || submissionInProgress\"\n >\n <ng-container *ngIf=\"submissionInProgress; else showSubmitText\">\n <span class=\"spinner-border spinner-border-sm me-2\" role=\"status\" aria-hidden=\"true\"></span>\n Submitting...\n </ng-container>\n <ng-template #showSubmitText>\n Submit\n </ng-template>\n </button>\n <div *ngIf=\"showTooltip && !eligibleForSubmission.status\" class=\"custom-tooltip\">\n {{eligibleForSubmission.message}}\n </div>\n </div>\n\n </div>\n </div>\n <div *ngIf=\"submissionInProgress\" class=\"text-loader\">\n {{ currentStep }}{{ animatedDots }}\n <span class=\"percentage\">{{ submissionProgress }}%</span>\n </div>\n</div>\n", styles: [".pageTitle{font-size:15px;font-weight:500}#captcha-container{display:flex;justify-content:center;align-items:center;padding-left:1.8rem}.grecaptcha-popup{position:fixed!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important;z-index:9999;border-radius:50%}@media (max-width: 480px){.g-recaptcha{transform:scale(.85);transform-origin:center}}.pageTitleDiv{padding-left:3rem;padding-top:3rem;padding-right:3rem}@media (max-width: 1024px){.pageTitleDiv{padding-left:1rem;padding-right:1rem;padding-top:2rem}}@media (max-width: 576px){.pageTitleDiv{padding-left:.4rem;padding-right:.4rem;padding-top:1.5rem}}.button-inner-container{width:100%;position:relative;padding:2rem}@media (max-width: 1024px){.button-inner-container{padding-left:1rem;padding-right:1rem}}@media (max-width: 576px){.button-inner-container{padding:.1rem .5rem 2rem}}.skip-margin{padding:0}@media (max-width: 576px){.marginSize{padding:0!important}}.footerButton{padding:10px 32px 16px 30px;display:flex;flex-wrap:wrap}@media (max-width: 576px){.footerButton{padding-left:20px;padding-right:17px}}.navButton{color:#fff;border:none;padding:10px 8px;width:auto}.submitBtn{color:#fff;border:none;padding:10px 27px;width:auto}.prevButtonDiv{display:flex;justify-content:center;margin-bottom:5px}.nextButtonDiv{display:flex;justify-content:flex-end;margin-left:auto;margin-bottom:5px}.nextDirection-rtl{margin-left:0;margin-right:auto}.tab-content,.row{background-color:#fff}.spinner-border{display:inline-block;width:1rem;height:1rem;vertical-align:text-bottom;border:.15em solid currentColor;border-right-color:transparent;border-radius:50%;animation:spinner-border .75s linear infinite}@keyframes spinner-border{to{transform:rotate(360deg)}}.custom-tooltip{visibility:hidden;position:absolute;top:-40px;right:0;background:#efefef;color:#7b7878;padding:8px 12px;border-radius:12px;box-shadow:0 4px 8px #00000026;font-size:14px;white-space:nowrap;z-index:10}.custom-tooltip.warning{background:linear-gradient(135deg,gold,#ffb400)}.fade-in{animation:fadeIn .3s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.footerButton:hover .custom-tooltip{visibility:visible}.text-loader{font-size:14px;font-weight:500;padding:8px 12px;border-radius:6px;align-items:center;gap:8px;display:flex;justify-content:center}.percentage{font-weight:600;color:var(--primaryColor, #084fff)}\n"] }]
|
|
69
|
-
}], propDecorators: { skipValidation: [{
|
|
70
|
-
type: Input
|
|
71
|
-
}], currentPageIndex: [{
|
|
72
|
-
type: Input
|
|
73
|
-
}], pages: [{
|
|
74
|
-
type: Input
|
|
75
|
-
}], previousPage: [{
|
|
76
|
-
type: Input
|
|
77
|
-
}], nextPage: [{
|
|
78
|
-
type: Input
|
|
79
|
-
}], currentPage: [{
|
|
80
|
-
type: Input
|
|
81
|
-
}], pageDetails: [{
|
|
82
|
-
type: Input
|
|
83
|
-
}], skipMargin: [{
|
|
84
|
-
type: Input
|
|
85
|
-
}], navigateNext: [{
|
|
86
|
-
type: Output
|
|
87
|
-
}], navigatePrevious: [{
|
|
88
|
-
type: Output
|
|
89
|
-
}], submitEmit: [{
|
|
90
|
-
type: Output
|
|
91
|
-
}], saveAsDraftEmit: [{
|
|
92
|
-
type: Output
|
|
93
|
-
}], cancel: [{
|
|
94
|
-
type: Output
|
|
95
|
-
}], edit: [{
|
|
96
|
-
type: Input
|
|
97
|
-
}], acceptedLanguage: [{
|
|
98
|
-
type: Input
|
|
99
|
-
}], subFormChange: [{
|
|
100
|
-
type: Output
|
|
101
|
-
}], rowSetIndex: [{
|
|
102
|
-
type: Output
|
|
103
|
-
}], primaryColor: [{
|
|
104
|
-
type: Input
|
|
105
|
-
}], secondaryColor: [{
|
|
106
|
-
type: Input
|
|
107
|
-
}], isActionTriggered: [{
|
|
108
|
-
type: Input
|
|
109
|
-
}], submissionInProgress: [{
|
|
110
|
-
type: Input
|
|
111
|
-
}], submissionInDraft: [{
|
|
112
|
-
type: Input
|
|
113
|
-
}], eligibleForSubmission: [{
|
|
114
|
-
type: Input
|
|
115
|
-
}], showCancelButton: [{
|
|
116
|
-
type: Input
|
|
117
|
-
}], submissionProgress: [{
|
|
118
|
-
type: Input
|
|
119
|
-
}], currentStep: [{
|
|
120
|
-
type: Input
|
|
121
|
-
}], animatedDots: [{
|
|
122
|
-
type: Input
|
|
123
|
-
}] } });
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV4dC1wcmV2LW5hdmlnYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybS1zdWJtaXNzaW9uL3NyYy9mb3JtLXN1Ym1pc3Npb24vbmV4dC1wcmV2LW5hdmlnYXRpb24vbmV4dC1wcmV2LW5hdmlnYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybS1zdWJtaXNzaW9uL3NyYy9mb3JtLXN1Ym1pc3Npb24vbmV4dC1wcmV2LW5hdmlnYXRpb24vbmV4dC1wcmV2LW5hdmlnYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFPdkUsTUFBTSxPQUFPLDJCQUEyQjtJQUx4QztRQU9ZLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBQ2pDLHFCQUFnQixHQUFXLENBQUMsQ0FBQztRQUM3QixVQUFLLEdBQVUsRUFBRSxDQUFDO1FBQ2xCLGlCQUFZLEdBQVEsRUFBRSxDQUFDO1FBQ3ZCLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFDbkIsZ0JBQVcsR0FBUSxFQUFFLENBQUM7UUFDdEIsZ0JBQVcsR0FBVSxFQUFFLENBQUM7UUFDeEIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUMzQixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDeEMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUM1QyxlQUFVLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFDeEQsb0JBQWUsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUM3RCxXQUFNLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDM0QsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUN0QixxQkFBZ0IsR0FBVSxFQUFFLENBQUM7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cm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLW5leHQtcHJldi1uYXZpZ2F0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25leHQtcHJldi1uYXZpZ2F0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbmV4dC1wcmV2LW5hdmlnYXRpb24uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBOZXh0UHJldk5hdmlnYXRpb25Db21wb25lbnQge1xuXG4gICBASW5wdXQoKSBza2lwVmFsaWRhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBjdXJyZW50UGFnZUluZGV4OiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBwYWdlczogYW55W10gPSBbXTtcbiAgQElucHV0KCkgcHJldmlvdXNQYWdlOiBhbnkgPSB7fTtcbiAgQElucHV0KCkgbmV4dFBhZ2U6IGFueSA9IHt9O1xuICBASW5wdXQoKSBjdXJyZW50UGFnZTogYW55ID0ge307XG4gIEBJbnB1dCgpIHBhZ2VEZXRhaWxzOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBza2lwTWFyZ2luOiBib29sZWFuID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBuYXZpZ2F0ZU5leHQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBuYXZpZ2F0ZVByZXZpb3VzID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgc3VibWl0RW1pdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIHNhdmVBc0RyYWZ0RW1pdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGNhbmNlbDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQElucHV0KCkgZWRpdDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBhY2NlcHRlZExhbmd1YWdlOiBzdHJpbmcgPScnO1xuICBAT3V0cHV0KCkgc3ViRm9ybUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgcm93U2V0SW5kZXggPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgQElucHV0KCkgcHJpbWFyeUNvbG9yOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgc2Vjb25kYXJ5Q29sb3I6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBpc0FjdGlvblRyaWdnZXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzdWJtaXNzaW9uSW5Qcm9ncmVzczogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzdWJtaXNzaW9uSW5EcmFmdDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSAgZWxpZ2libGVGb3JTdWJtaXNzaW9uOnsgc3RhdHVzOiBib29sZWFuOyBtZXNzYWdlOiBzdHJpbmcgfSA9IHsgc3RhdHVzOiB0cnVlLCBtZXNzYWdlOiAnJyB9O1xuICBASW5wdXQoKSBzaG93Q2FuY2VsQnV0dG9uOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHN1Ym1pc3Npb25Qcm9ncmVzcyA9IDA7XG4gIEBJbnB1dCgpIGN1cnJlbnRTdGVwID0gJ1N1Ym1pdHRpbmcgZm9ybSc7XG4gIEBJbnB1dCgpIGFuaW1hdGVkRG90cyA9ICcnO1xuICBzaG93VG9vbHRpcDogYm9vbGVhbiA9IGZhbHNlO1xuICBuZ09uSW5pdCgpe1xuICB9XG5cblxuICB1cGRhdGVTdWJGb3JtV2l0aFN1Ym1pc3Npb25zKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnN1YkZvcm1DaGFuZ2UuZW1pdChldmVudCk7XG4gIH1cblxuICBvbk5hdmlnYXRlTmV4dCgpIHtcbiAgICB0aGlzLm5hdmlnYXRlTmV4dC5lbWl0KCk7XG4gIH1cblxuICBvbk5hdmlnYXRlUHJldmlvdXMoKSB7XG4gICAgdGhpcy5uYXZpZ2F0ZVByZXZpb3VzLmVtaXQoKTtcbiAgfVxuXG4gIHN1Ym1pdEZvcm0oKSB7XG4gICAgdGhpcy5zdWJtaXRFbWl0LmVtaXQoKTtcbiAgfVxuXG4gIHNhdmVBc0RyYWZ0KCkge1xuICAgIHRoaXMuc2F2ZUFzRHJhZnRFbWl0LmVtaXQoKTtcbiAgfVxuXG5cbiAgbG9hZE1vcmVEYXRhKCk6IHZvaWQge1xuICAgIHRoaXMucm93U2V0SW5kZXguZW1pdCh0aGlzLmN1cnJlbnRQYWdlSW5kZXgpO1xuIH1cblxuICB0b2dnbGVUb29sdGlwKCkge1xuICB0aGlzLnNob3dUb29sdGlwID0gIXRoaXMuZWxpZ2libGVGb3JTdWJtaXNzaW9uLnN0YXR1cztcbn1cblxuY2FuY2VsbGVkKCl7XG4gIHRoaXMuY2FuY2VsLmVtaXQoKTtcbn1cbn1cbiIsIjwhLS0gPGRpdiBjbGFzcz1cInBhZ2VUaXRsZURpdlwiICpuZ0lmPVwiIXNraXBNYXJnaW5cIj5cbiAgPHAgY2xhc3M9XCJwYWdlVGl0bGVcIj57e3BhZ2VEZXRhaWxzW2N1cnJlbnRQYWdlSW5kZXhdPy5uYW1lfX08L3A+XG48L2Rpdj4gLS0+XG48ZGl2IGNsYXNzPVwiYnV0dG9uLWlubmVyLWNvbnRhaW5lciByb3VuZGVkXCIgW25nQ2xhc3NdPVwieyAnc2tpcC1tYXJnaW4nOiBza2lwTWFyZ2lufVwiPlxuICA8ZGl2IGNsYXNzPVwidGFiLWNvbnRlbnQgcHQtNSBwYi0zIHJvd1wiIFthdHRyLm5hbWVdPVwicGFnZXNbY3VycmVudFBhZ2VJbmRleF0udGVzdEVsZW1lbnROYW1lXCI+XG4gICAgPGRpdiBjbGFzcz1cImRhdGEtY29udGFpbmVyXCJcbiAgICBpbmZpbml0ZVNjcm9sbFxuICAgIFtpbmZpbml0ZVNjcm9sbERpc3RhbmNlXT1cIjJcIlxuICAgIFtpbmZpbml0ZVNjcm9sbFRocm90dGxlXT1cIjIwMFwiXG4gICAgKHNjcm9sbGVkKT1cImxvYWRNb3JlRGF0YSgpXCI+XG5cbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCByb3cgb2YgcGFnZXNbY3VycmVudFBhZ2VJbmRleF0/LnJvd3NcIiBjbGFzcz1cIm1hcmdpblNpemUgZC1mbGV4XCI+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBncmlkIG9mIHJvdy5ncmlkXCJcbiAgICAgIFtuZ1N0eWxlXT1cInsnd2lkdGguJSc6IChncmlkLmVsZW1lbnQuY291bnQpICogKDEwMCAvICgxMikpfVwiPlxuICAgICAgICA8bGliLWZvcm0tZWxlbWVudHNcbiAgICAgICAgICBbZ3JpZF09XCJncmlkXCJcbiAgICAgICAgICBbY3VycmVudFBhZ2VJbmRleF09XCJjdXJyZW50UGFnZUluZGV4XCJcbiAgICAgICAgICBbZWRpdF09XCJlZGl0XCJcbiAgICAgICAgICBbYWNjZXB0ZWRMYW5ndWFnZV09XCJhY2NlcHRlZExhbmd1YWdlXCJcbiAgICAgICAgICBbcGFnZXNdPVwicGFnZXNcIlxuICAgICAgICAgIChzdWJGb3JtQ2hhbmdlKT1cInVwZGF0ZVN1YkZvcm1XaXRoU3VibWlzc2lvbnMoJGV2ZW50KVwiXG4gICAgICAgICAgc3RhdGU9XCJwYXJlbnRcIlxuICAgICAgICA+PC9saWItZm9ybS1lbGVtZW50cz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgPGRpdiBbbmdTdHlsZV09XCJ7IGRpc3BsYXk6IGN1cnJlbnRQYWdlSW5kZXggPT09IHBhZ2VEZXRhaWxzLmxlbmd0aCAtIDEgPyAnYmxvY2snIDogJ25vbmUnIH1cIiBpZD1cImNhcHRjaGEtY29udGFpbmVyXCI+PC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyQnV0dG9uXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwicHJldkJ1dHRvbkRpdlwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ3ByZXZEaXJlY3Rpb24tcnRsJzogYWNjZXB0ZWRMYW5ndWFnZSA9PT0gJ2FyYScgfVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJtZS1tZC0yIHJvdW5kZWQtcGlsbCBuYXZCdXR0b25cIlxuICAgICAgICAgIFtuZ1N0eWxlXT1cInsgJ2JhY2tncm91bmQtY29sb3InOiBwcmltYXJ5Q29sb3IgPyBwcmltYXJ5Q29sb3I6ICcjMDg0ZmZmJyB9XCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAoY2xpY2spPVwib25OYXZpZ2F0ZVByZXZpb3VzKClcIlxuICAgICAgICAgICpuZ0lmPVwiMCA8IGN1cnJlbnRQYWdlSW5kZXhcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjY2VwdGVkTGFuZ3VhZ2UgPT09ICdhcmEnOyBlbHNlIGRlZmF1bHRTdmdcIj5cbiAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgd2lkdGg9XCIyNFwiXG4gICAgICAgICAgICAgIGhlaWdodD1cIjI0XCJcbiAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgZD1cIk0xOS40ODk3IDEyLjAxMTdMNC40OTk3NSAxMi4wMTE3XCJcbiAgICAgICAgICAgICAgICBzdHJva2U9XCJ3aGl0ZVwiXG4gICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgIGQ9XCJNMTMuNDg2IDYuMDIzNDRMMTkuNTAyIDEyLjAwMDRMMTMuNDg2IDE3Ljk3NzRcIlxuICAgICAgICAgICAgICAgIHN0cm9rZT1cIndoaXRlXCJcbiAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRTdmc+XG4gICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgIHdpZHRoPVwiMjRcIlxuICAgICAgICAgICAgICBoZWlnaHQ9XCIyNFwiXG4gICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgIGQ9XCJNNC41MTAyNSAxMS45ODgzTDE5LjUwMDMgMTEuOTg4M1wiXG4gICAgICAgICAgICAgICAgc3Ryb2tlPVwid2hpdGVcIlxuICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICBkPVwiTTEwLjUxNCAxNy45NzY2TDQuNDk4MDUgMTEuOTk5NkwxMC41MTQgNi4wMjI1NlwiXG4gICAgICAgICAgICAgICAgc3Ryb2tlPVwid2hpdGVcIlxuICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgUHJldmlvdXMgfCB7eyBwcmV2aW91c1BhZ2UubmFtZSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cIm5leHRCdXR0b25EaXZcIlxuICAgICAgICBbbmdDbGFzc109XCJ7ICduZXh0RGlyZWN0aW9uLXJ0bCc6IGFjY2VwdGVkTGFuZ3VhZ2UgPT09ICdhcmEnIH1cIlxuICAgICAgPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJtZC0yIHJvdW5kZWQtcGlsbCBuYXZCdXR0b25cIlxuICAgICAgICAgIFtuZ1N0eWxlXT1cInsgJ2JhY2tncm91bmQtY29sb3InOiBwcmltYXJ5Q29sb3IgPyBwcmltYXJ5Q29sb3I6ICcjMDg0ZmZmJyB9XCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAoY2xpY2spPVwib25OYXZpZ2F0ZU5leHQoKVwiXG4gICAgICAgICAgKm5nSWY9XCJjdXJyZW50UGFnZUluZGV4IDwgcGFnZURldGFpbHMubGVuZ3RoIC0gMVwiXG4gICAgICAgID5cbiAgICAgICAgICBOZXh0IHwge3sgbmV4dFBhZ2UubmFtZSB9fVxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY2NlcHRlZExhbmd1YWdlID09PSAnYXJhJzsgZWxzZSBkZWZhdWx0U3ZnXCI+XG4gICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgIHdpZHRoPVwiMjRcIlxuICAgICAgICAgICAgICBoZWlnaHQ9XCIyNFwiXG4gICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgIGQ9XCJNNC41MTAyNSAxMS45ODgzTDE5LjUwMDMgMTEuOTg4M1wiXG4gICAgICAgICAgICAgICAgc3Ryb2tlPVwid2hpdGVcIlxuICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICBkPVwiTTEwLjUxNCAxNy45NzY2TDQuNDk4MDUgMTEuOTk5NkwxMC41MTQgNi4wMjI1NlwiXG4gICAgICAgICAgICAgICAgc3Ryb2tlPVwid2hpdGVcIlxuICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFN2Zz5cbiAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgd2lkdGg9XCIyNFwiXG4gICAgICAgICAgICAgIGhlaWdodD1cIjI0XCJcbiAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgZD1cIk0xOS40ODk3IDEyLjAxMTdMNC40OTk3NSAxMi4wMTE3XCJcbiAgICAgICAgICAgICAgICBzdHJva2U9XCJ3aGl0ZVwiXG4gICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgIGQ9XCJNMTMuNDg2IDYuMDIzNDRMMTkuNTAyIDEyLjAwMDRMMTMuNDg2IDE3Ljk3NzRcIlxuICAgICAgICAgICAgICAgIHN0cm9rZT1cIndoaXRlXCJcbiAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInNob3dDYW5jZWxCdXR0b24gJiYgY3VycmVudFBhZ2VJbmRleCA9PSBwYWdlRGV0YWlscy5sZW5ndGggLSAxXCIgY2xhc3M9XCJidG4gc3VibWl0QnV0dG9uIHJvdW5kZWQtcGlsbCBiZy1zZWNvbmRhcnkgdGV4dC13aGl0ZVwiXG4gICAgICAgIChjbGljayk9XCJjYW5jZWxsZWQoKVwiIHR5cGU9XCJidXR0b25cIlxuICAgICAgICA+Q2FuY2VsPC9idXR0b24+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgICAqbmdJZj1cInNraXBWYWxpZGF0aW9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uLWNvbnRhaW5lciBwb3NpdGlvbi1yZWxhdGl2ZVwiXG4gICAgICAgICAgICAobW91c2VlbnRlcik9XCJzaG93VG9vbHRpcCA9IHRydWVcIlxuICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwic2hvd1Rvb2x0aXAgPSBmYWxzZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cInN1Ym1pdEJ0biBtcy1tZC0yIG1lLW1kLTIgcm91bmRlZC1waWxsIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXG4gICAgICAgICAgW25nU3R5bGVdPVwieyAnYmFja2dyb3VuZC1jb2xvcic6IHNlY29uZGFyeUNvbG9yID8gc2Vjb25kYXJ5Q29sb3IgOiAnIzA4NGZmZicgfVwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgKm5nSWY9XCJjdXJyZW50UGFnZUluZGV4ID09IHBhZ2VEZXRhaWxzLmxlbmd0aCAtIDEgJiYgIWlzQWN0aW9uVHJpZ2dlcmVkXCJcbiAgICAgICAgICAoY2xpY2spPVwic2F2ZUFzRHJhZnQoKVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFlbGlnaWJsZUZvclN1Ym1pc3Npb24uc3RhdHVzIHx8IHN1Ym1pc3Npb25JbkRyYWZ0XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdWJtaXNzaW9uSW5EcmFmdDsgZWxzZSBzaG93U3VibWl0VGV4dFwiPlxuXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNwaW5uZXItYm9yZGVyIHNwaW5uZXItYm9yZGVyLXNtIG1lLTJcIiByb2xlPVwic3RhdHVzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgICAgICAgICAgU3VibWl0dGluZy4uLlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc2hvd1N1Ym1pdFRleHQ+XG4gICAgICAgICAgICBTYXZlIERyYWZ0XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93VG9vbHRpcCAmJiAhZWxpZ2libGVGb3JTdWJtaXNzaW9uLnN0YXR1c1wiIGNsYXNzPVwiY3VzdG9tLXRvb2x0aXBcIj5cbiAgICAgICAgICAgICAge3tlbGlnaWJsZUZvclN1Ym1pc3Npb24ubWVzc2FnZX19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uLWNvbnRhaW5lciBwb3NpdGlvbi1yZWxhdGl2ZVwiXG4gICAgICAgICAgICAobW91c2VlbnRlcik9XCJzaG93VG9vbHRpcCA9IHRydWVcIlxuICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwic2hvd1Rvb2x0aXAgPSBmYWxzZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cInN1Ym1pdEJ0biBtcy1tZC0yIG1lLW1kLTIgcm91bmRlZC1waWxsIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXG4gICAgICAgICAgW25nU3R5bGVdPVwieyAnYmFja2dyb3VuZC1jb2xvcic6IHByaW1hcnlDb2xvciA/IHByaW1hcnlDb2xvciA6ICcjMDg0ZmZmJyB9XCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAqbmdJZj1cImN1cnJlbnRQYWdlSW5kZXggPT0gcGFnZURldGFpbHMubGVuZ3RoIC0gMSAmJiAhaXNBY3Rpb25UcmlnZ2VyZWRcIlxuICAgICAgICAgIChjbGljayk9XCJzdWJtaXRGb3JtKClcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhZWxpZ2libGVGb3JTdWJtaXNzaW9uLnN0YXR1cyB8fCBzdWJtaXNzaW9uSW5Qcm9ncmVzc1wiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3VibWlzc2lvbkluUHJvZ3Jlc3M7IGVsc2Ugc2hvd1N1Ym1pdFRleHRcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Bpbm5lci1ib3JkZXIgc3Bpbm5lci1ib3JkZXItc20gbWUtMlwiIHJvbGU9XCJzdGF0dXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L3NwYW4+XG4gICAgICAgICAgICBTdWJtaXR0aW5nLi4uXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNzaG93U3VibWl0VGV4dD5cbiAgICAgICAgICAgIFN1Ym1pdFxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd1Rvb2x0aXAgJiYgIWVsaWdpYmxlRm9yU3VibWlzc2lvbi5zdGF0dXNcIiBjbGFzcz1cImN1c3RvbS10b29sdGlwXCI+XG4gICAgICAgICAgICAgIHt7ZWxpZ2libGVGb3JTdWJtaXNzaW9uLm1lc3NhZ2V9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cInN1Ym1pc3Npb25JblByb2dyZXNzXCIgY2xhc3M9XCJ0ZXh0LWxvYWRlclwiPlxuICAgIHt7IGN1cnJlbnRTdGVwIH19e3sgYW5pbWF0ZWREb3RzIH19XG4gICAgPHNwYW4gY2xhc3M9XCJwZXJjZW50YWdlXCI+e3sgc3VibWlzc2lvblByb2dyZXNzIH19JTwvc3Bhbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { Component, Inject } from '@angular/core';
|
|
2
|
-
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/material/dialog";
|
|
5
|
-
export class SaveDraftModalComponent {
|
|
6
|
-
get primaryColorRgb() {
|
|
7
|
-
let hex = this.primaryColor.trim().replace('#', '');
|
|
8
|
-
const defaultHex = "0d6efd";
|
|
9
|
-
if (!hex)
|
|
10
|
-
hex = defaultHex;
|
|
11
|
-
let s = hex.trim().replace(/^#/, "").toLowerCase();
|
|
12
|
-
// Ensure only valid hex chars
|
|
13
|
-
if (!/^[0-9a-f]+$/.test(s)) {
|
|
14
|
-
s = defaultHex;
|
|
15
|
-
}
|
|
16
|
-
// Expand shorthand (3/4 digits → 6/8 digits)
|
|
17
|
-
if (s.length === 3 || s.length === 4) {
|
|
18
|
-
s = s.split("").map(ch => ch + ch).join("");
|
|
19
|
-
}
|
|
20
|
-
// If still invalid length, fallback
|
|
21
|
-
if (s.length !== 6 && s.length !== 8) {
|
|
22
|
-
s = defaultHex;
|
|
23
|
-
}
|
|
24
|
-
const r = parseInt(s.slice(0, 2), 16);
|
|
25
|
-
const g = parseInt(s.slice(2, 4), 16);
|
|
26
|
-
const b = parseInt(s.slice(4, 6), 16);
|
|
27
|
-
return `${r}, ${g}, ${b}`;
|
|
28
|
-
}
|
|
29
|
-
constructor(dialogRef, data) {
|
|
30
|
-
this.dialogRef = dialogRef;
|
|
31
|
-
this.data = data;
|
|
32
|
-
this.primaryColor = data.primaryColor || '#0d6efd';
|
|
33
|
-
}
|
|
34
|
-
saveAsDraft() {
|
|
35
|
-
this.dialogRef.close(true);
|
|
36
|
-
}
|
|
37
|
-
continueEditing() {
|
|
38
|
-
this.dialogRef.close(false);
|
|
39
|
-
}
|
|
40
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SaveDraftModalComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
41
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SaveDraftModalComponent, selector: "lib-form-submission-conformation", ngImport: i0, template: "<div class=\"save-draft-modal\"\n [style.--primary-color]=\"primaryColor\"\n [style.--primary-color-rgb]=\"primaryColorRgb\">\n <div class=\"modal-card\">\n <div class=\"status-icon\">\n <div class=\"icon-wrapper\">\n <i class=\"bi bi-file-earmark-text-fill\"></i>\n </div>\n </div>\n\n <h3>Form Submission Incomplete</h3>\n <p class=\"subheader\">We noticed some information needs attention</p>\n\n <div class=\"message-card\">\n <div class=\"message-content\">\n <p>Your form contains:</p>\n <ul>\n <li><i class=\"bi bi-x-circle\"></i> Missing required fields</li>\n <li><i class=\"bi bi-exclamation-triangle\"></i> Incorrectly formatted answers</li>\n </ul>\n </div>\n </div>\n\n <div class=\"action-buttons\">\n <button class=\"btn btn-continue\" (click)=\"continueEditing()\">\n <i class=\"bi bi-pencil-square\"></i> Continue Editing\n </button>\n <button class=\"btn btn-save\" (click)=\"saveAsDraft()\">\n <i class=\"bi bi-cloud-arrow-up\"></i> Save as Draft\n </button>\n </div>\n </div>\n</div>\n", styles: [".save-draft-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#0009;display:flex;justify-content:center;align-items:center;z-index:1050;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);overflow:hidden;animation:fadeIn .25s ease-out forwards}.save-draft-modal .modal-card{background:#fff;border-radius:12px;width:90%;max-width:480px;min-height:300px;padding:2.5rem;box-shadow:0 10px 30px #0003;margin:20px;position:relative;display:flex;flex-direction:column;border:1px solid rgba(0,0,0,.1);transform:scale(.98);animation:scaleIn .25s ease-out forwards .1s}.save-draft-modal .status-icon{text-align:center;margin-bottom:1.5rem;flex-shrink:0}.save-draft-modal .status-icon .icon-wrapper{display:inline-flex;background:linear-gradient(135deg,var(--primary-color),color-mix(in srgb,var(--primary-color) 90%,white));box-shadow:0 4px 15px rgba(var(--primary-color-rgb),.3);width:70px;height:70px;border-radius:50%;align-items:center;justify-content:center}.save-draft-modal .status-icon .icon-wrapper i{color:#fff;font-size:2.2rem}.save-draft-modal h3{color:#2c3e50;text-align:center;margin-bottom:.5rem;font-weight:700;font-size:1.5rem}.save-draft-modal .subheader{color:#6c757d;text-align:center;margin-bottom:1.5rem;font-size:1rem}.save-draft-modal .message-card{background:#f8f9fa;border-radius:8px;padding:1.25rem;margin-bottom:2rem;border-left:4px solid var(--primary-color);transition:transform .2s ease}.save-draft-modal .message-card:hover{transform:translateY(-2px)}.save-draft-modal .message-card .message-content p{color:#495057;font-weight:500;margin-bottom:.75rem}.save-draft-modal .message-card .message-content ul{list-style:none;padding-left:0;margin-bottom:0}.save-draft-modal .message-card .message-content ul li{color:#495057;margin-bottom:.5rem;display:flex;align-items:center;font-size:.95rem}.save-draft-modal .message-card .message-content ul li i{margin-right:.5rem;font-size:1.1rem}.save-draft-modal .message-card .message-content ul li .bi-x-circle{color:#dc3545}.save-draft-modal .message-card .message-content ul li .bi-exclamation-triangle{color:#ffc107}.save-draft-modal .action-buttons{margin-top:auto;flex-shrink:0;display:flex;gap:1rem}.save-draft-modal .action-buttons .btn{flex:1;padding:.8rem;border-radius:8px;font-weight:500;display:flex;align-items:center;justify-content:center;transition:all .2s ease;border:none}.save-draft-modal .action-buttons .btn i{margin-right:.5rem;font-size:1.1rem}.save-draft-modal .action-buttons .btn:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}.save-draft-modal .action-buttons .btn:active{transform:translateY(0)}.save-draft-modal .action-buttons .btn-continue{background:#fff;color:var(--primary-color);border:1px solid var(--primary-color)}.save-draft-modal .action-buttons .btn-continue:hover{background-color:color-mix(in srgb,var(--primary-color) 5%,white)}.save-draft-modal .action-buttons .btn-save{background:var(--primary-color);color:#fff;box-shadow:0 4px 15px rgba(var(--primary-color-rgb),.3)}.save-draft-modal .action-buttons .btn-save:hover{background-color:color-mix(in srgb,var(--primary-color) 95%,black)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media (max-width: 576px){.save-draft-modal .modal-card{padding:1.5rem;min-height:auto;height:auto;max-height:90vh;overflow-y:auto}.save-draft-modal .action-buttons{flex-direction:column}}\n"] }); }
|
|
42
|
-
}
|
|
43
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SaveDraftModalComponent, decorators: [{
|
|
44
|
-
type: Component,
|
|
45
|
-
args: [{ selector: 'lib-form-submission-conformation', template: "<div class=\"save-draft-modal\"\n [style.--primary-color]=\"primaryColor\"\n [style.--primary-color-rgb]=\"primaryColorRgb\">\n <div class=\"modal-card\">\n <div class=\"status-icon\">\n <div class=\"icon-wrapper\">\n <i class=\"bi bi-file-earmark-text-fill\"></i>\n </div>\n </div>\n\n <h3>Form Submission Incomplete</h3>\n <p class=\"subheader\">We noticed some information needs attention</p>\n\n <div class=\"message-card\">\n <div class=\"message-content\">\n <p>Your form contains:</p>\n <ul>\n <li><i class=\"bi bi-x-circle\"></i> Missing required fields</li>\n <li><i class=\"bi bi-exclamation-triangle\"></i> Incorrectly formatted answers</li>\n </ul>\n </div>\n </div>\n\n <div class=\"action-buttons\">\n <button class=\"btn btn-continue\" (click)=\"continueEditing()\">\n <i class=\"bi bi-pencil-square\"></i> Continue Editing\n </button>\n <button class=\"btn btn-save\" (click)=\"saveAsDraft()\">\n <i class=\"bi bi-cloud-arrow-up\"></i> Save as Draft\n </button>\n </div>\n </div>\n</div>\n", styles: [".save-draft-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#0009;display:flex;justify-content:center;align-items:center;z-index:1050;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);overflow:hidden;animation:fadeIn .25s ease-out forwards}.save-draft-modal .modal-card{background:#fff;border-radius:12px;width:90%;max-width:480px;min-height:300px;padding:2.5rem;box-shadow:0 10px 30px #0003;margin:20px;position:relative;display:flex;flex-direction:column;border:1px solid rgba(0,0,0,.1);transform:scale(.98);animation:scaleIn .25s ease-out forwards .1s}.save-draft-modal .status-icon{text-align:center;margin-bottom:1.5rem;flex-shrink:0}.save-draft-modal .status-icon .icon-wrapper{display:inline-flex;background:linear-gradient(135deg,var(--primary-color),color-mix(in srgb,var(--primary-color) 90%,white));box-shadow:0 4px 15px rgba(var(--primary-color-rgb),.3);width:70px;height:70px;border-radius:50%;align-items:center;justify-content:center}.save-draft-modal .status-icon .icon-wrapper i{color:#fff;font-size:2.2rem}.save-draft-modal h3{color:#2c3e50;text-align:center;margin-bottom:.5rem;font-weight:700;font-size:1.5rem}.save-draft-modal .subheader{color:#6c757d;text-align:center;margin-bottom:1.5rem;font-size:1rem}.save-draft-modal .message-card{background:#f8f9fa;border-radius:8px;padding:1.25rem;margin-bottom:2rem;border-left:4px solid var(--primary-color);transition:transform .2s ease}.save-draft-modal .message-card:hover{transform:translateY(-2px)}.save-draft-modal .message-card .message-content p{color:#495057;font-weight:500;margin-bottom:.75rem}.save-draft-modal .message-card .message-content ul{list-style:none;padding-left:0;margin-bottom:0}.save-draft-modal .message-card .message-content ul li{color:#495057;margin-bottom:.5rem;display:flex;align-items:center;font-size:.95rem}.save-draft-modal .message-card .message-content ul li i{margin-right:.5rem;font-size:1.1rem}.save-draft-modal .message-card .message-content ul li .bi-x-circle{color:#dc3545}.save-draft-modal .message-card .message-content ul li .bi-exclamation-triangle{color:#ffc107}.save-draft-modal .action-buttons{margin-top:auto;flex-shrink:0;display:flex;gap:1rem}.save-draft-modal .action-buttons .btn{flex:1;padding:.8rem;border-radius:8px;font-weight:500;display:flex;align-items:center;justify-content:center;transition:all .2s ease;border:none}.save-draft-modal .action-buttons .btn i{margin-right:.5rem;font-size:1.1rem}.save-draft-modal .action-buttons .btn:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}.save-draft-modal .action-buttons .btn:active{transform:translateY(0)}.save-draft-modal .action-buttons .btn-continue{background:#fff;color:var(--primary-color);border:1px solid var(--primary-color)}.save-draft-modal .action-buttons .btn-continue:hover{background-color:color-mix(in srgb,var(--primary-color) 5%,white)}.save-draft-modal .action-buttons .btn-save{background:var(--primary-color);color:#fff;box-shadow:0 4px 15px rgba(var(--primary-color-rgb),.3)}.save-draft-modal .action-buttons .btn-save:hover{background-color:color-mix(in srgb,var(--primary-color) 95%,black)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media (max-width: 576px){.save-draft-modal .modal-card{padding:1.5rem;min-height:auto;height:auto;max-height:90vh;overflow-y:auto}.save-draft-modal .action-buttons{flex-direction:column}}\n"] }]
|
|
46
|
-
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
47
|
-
type: Inject,
|
|
48
|
-
args: [MAT_DIALOG_DATA]
|
|
49
|
-
}] }]; } });
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZURyYWZ0TW9kYWxDb21wb25lbnQgLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybS1zdWJtaXNzaW9uL3NyYy9mb3JtLXN1Ym1pc3Npb24vc2F2ZS1hcy1kcmFmdC9zYXZlRHJhZnRNb2RhbENvbXBvbmVudCAudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtLXN1Ym1pc3Npb24vc3JjL2Zvcm0tc3VibWlzc2lvbi9zYXZlLWFzLWRyYWZ0L3NhdmVEcmFmdE1vZGFsQ29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBV3pFLE1BQU0sT0FBTyx1QkFBdUI7SUFHbkMsSUFBSSxlQUFlO1FBQ2xCLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVsRCxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUM7UUFFOUIsSUFBSSxDQUFDLEdBQUc7WUFBRSxHQUFHLEdBQUcsVUFBVSxDQUFDO1FBRTNCLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRW5ELDhCQUE4QjtRQUM5QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMxQixDQUFDLEdBQUcsVUFBVSxDQUFDO1NBQ2hCO1FBRUQsNkNBQTZDO1FBQzdDLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDcEMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUM3QztRQUVELG9DQUFvQztRQUNwQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3BDLENBQUMsR0FBRyxVQUFVLENBQUM7U0FDaEI7UUFFRCxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdEMsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUV0QyxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUMsWUFDUyxTQUFnRCxFQUN0QixJQUFnQjtRQUQxQyxjQUFTLEdBQVQsU0FBUyxDQUF1QztRQUN0QixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksSUFBSSxTQUFTLENBQUM7SUFDdEQsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7K0dBOUNVLHVCQUF1Qiw4Q0FvQ3ZCLGVBQWU7bUdBcENmLHVCQUF1Qix3RUNacEMscW5DQWlDQTs7NEZEckJhLHVCQUF1QjtrQkFObkMsU0FBUzsrQkFDRSxrQ0FBa0M7OzBCQXlDeEMsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbmludGVyZmFjZSBEaWFsb2dEYXRhIHtcbiAgcHJpbWFyeUNvbG9yPzogc3RyaW5nO1xufVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWZvcm0tc3VibWlzc2lvbi1jb25mb3JtYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vc2F2ZURyYWZ0TW9kYWxDb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NhdmVEcmFmdE1vZGFsQ29tcG9uZW50LnNjc3MnXVxufSlcblxuZXhwb3J0IGNsYXNzIFNhdmVEcmFmdE1vZGFsQ29tcG9uZW50IHtcbiBwcmltYXJ5Q29sb3I6IHN0cmluZztcblxuIGdldCBwcmltYXJ5Q29sb3JSZ2IoKTogc3RyaW5nIHtcbiAgbGV0IGhleCA9IHRoaXMucHJpbWFyeUNvbG9yLnRyaW0oKS5yZXBsYWNlKCcjJywgJycpO1xuXG4gICAgY29uc3QgZGVmYXVsdEhleCA9IFwiMGQ2ZWZkXCI7XG5cbiAgaWYgKCFoZXgpIGhleCA9IGRlZmF1bHRIZXg7XG5cbiAgbGV0IHMgPSBoZXgudHJpbSgpLnJlcGxhY2UoL14jLywgXCJcIikudG9Mb3dlckNhc2UoKTtcblxuICAvLyBFbnN1cmUgb25seSB2YWxpZCBoZXggY2hhcnNcbiAgaWYgKCEvXlswLTlhLWZdKyQvLnRlc3QocykpIHtcbiAgICBzID0gZGVmYXVsdEhleDtcbiAgfVxuXG4gIC8vIEV4cGFuZCBzaG9ydGhhbmQgKDMvNCBkaWdpdHMg4oaSIDYvOCBkaWdpdHMpXG4gIGlmIChzLmxlbmd0aCA9PT0gMyB8fCBzLmxlbmd0aCA9PT0gNCkge1xuICAgIHMgPSBzLnNwbGl0KFwiXCIpLm1hcChjaCA9PiBjaCArIGNoKS5qb2luKFwiXCIpO1xuICB9XG5cbiAgLy8gSWYgc3RpbGwgaW52YWxpZCBsZW5ndGgsIGZhbGxiYWNrXG4gIGlmIChzLmxlbmd0aCAhPT0gNiAmJiBzLmxlbmd0aCAhPT0gOCkge1xuICAgIHMgPSBkZWZhdWx0SGV4O1xuICB9XG5cbiAgY29uc3QgciA9IHBhcnNlSW50KHMuc2xpY2UoMCwgMiksIDE2KTtcbiAgY29uc3QgZyA9IHBhcnNlSW50KHMuc2xpY2UoMiwgNCksIDE2KTtcbiAgY29uc3QgYiA9IHBhcnNlSW50KHMuc2xpY2UoNCwgNiksIDE2KTtcblxuICByZXR1cm4gYCR7cn0sICR7Z30sICR7Yn1gO1xufVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxTYXZlRHJhZnRNb2RhbENvbXBvbmVudD4sXG4gICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogRGlhbG9nRGF0YSkge1xuICAgICB0aGlzLnByaW1hcnlDb2xvciA9IGRhdGEucHJpbWFyeUNvbG9yIHx8ICcjMGQ2ZWZkJztcbiAgfVxuXG4gIHNhdmVBc0RyYWZ0KCkge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRydWUpO1xuICB9XG5cbiAgY29udGludWVFZGl0aW5nKCkge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKGZhbHNlKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNhdmUtZHJhZnQtbW9kYWxcIlxuICAgICBbc3R5bGUuLS1wcmltYXJ5LWNvbG9yXT1cInByaW1hcnlDb2xvclwiXG4gICAgIFtzdHlsZS4tLXByaW1hcnktY29sb3ItcmdiXT1cInByaW1hcnlDb2xvclJnYlwiPlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtY2FyZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJzdGF0dXMtaWNvblwiPlxuICAgICAgPGRpdiBjbGFzcz1cImljb24td3JhcHBlclwiPlxuICAgICAgICA8aSBjbGFzcz1cImJpIGJpLWZpbGUtZWFybWFyay10ZXh0LWZpbGxcIj48L2k+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxoMz5Gb3JtIFN1Ym1pc3Npb24gSW5jb21wbGV0ZTwvaDM+XG4gICAgPHAgY2xhc3M9XCJzdWJoZWFkZXJcIj5XZSBub3RpY2VkIHNvbWUgaW5mb3JtYXRpb24gbmVlZHMgYXR0ZW50aW9uPC9wPlxuXG4gICAgPGRpdiBjbGFzcz1cIm1lc3NhZ2UtY2FyZFwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1lc3NhZ2UtY29udGVudFwiPlxuICAgICAgICA8cD5Zb3VyIGZvcm0gY29udGFpbnM6PC9wPlxuICAgICAgICA8dWw+XG4gICAgICAgICAgPGxpPjxpIGNsYXNzPVwiYmkgYmkteC1jaXJjbGVcIj48L2k+IE1pc3NpbmcgcmVxdWlyZWQgZmllbGRzPC9saT5cbiAgICAgICAgICA8bGk+PGkgY2xhc3M9XCJiaSBiaS1leGNsYW1hdGlvbi10cmlhbmdsZVwiPjwvaT4gSW5jb3JyZWN0bHkgZm9ybWF0dGVkIGFuc3dlcnM8L2xpPlxuICAgICAgICA8L3VsPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uLWJ1dHRvbnNcIj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWNvbnRpbnVlXCIgKGNsaWNrKT1cImNvbnRpbnVlRWRpdGluZygpXCI+XG4gICAgICAgIDxpIGNsYXNzPVwiYmkgYmktcGVuY2lsLXNxdWFyZVwiPjwvaT4gQ29udGludWUgRWRpdGluZ1xuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zYXZlXCIgKGNsaWNrKT1cInNhdmVBc0RyYWZ0KClcIj5cbiAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS1jbG91ZC1hcnJvdy11cFwiPjwvaT4gU2F2ZSBhcyBEcmFmdFxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@angular/common";
|
|
4
|
-
export class SubmissionContainerComponent {
|
|
5
|
-
isImageUrl(url) {
|
|
6
|
-
return url.match(/\.(jpeg|jpg|gif|png)$/) != null;
|
|
7
|
-
}
|
|
8
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SubmissionContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SubmissionContainerComponent, selector: "lib-submission-container", inputs: { parentQuestionAnswers: "parentQuestionAnswers" }, ngImport: i0, template: "<div class=\"subModule\">\n <div class=\"submission-container\">\n <div *ngFor=\"let qa of parentQuestionAnswers\" class=\"submission-item\">\n <div class=\"key\">{{ qa.question }}</div>\n <div class=\"value\">\n <ng-container *ngIf=\"qa.elementType === 'FILE_PICKER'; else text\">\n <div class=\"files\" *ngFor=\"let attachment of qa.attachments\">\n <ng-container *ngIf=\"isImageUrl(attachment.fileName); else fileLink\">\n <img [src]=\"attachment.fileUrl\" alt=\"{{ attachment.fileName }}\" class=\"image\">\n </ng-container>\n <ng-template #fileLink>\n <p>{{ attachment.fileName }}</p>\n <a class=\"fileName\" [href]=\"attachment.fileUrl\" target=\"_blank\">\n <i class=\"bi bi-file-earmark\"></i>\n </a>\n </ng-template>\n </div>\n </ng-container>\n <ng-template #text>\n <ng-container [ngSwitch]=\"qa.elementType\">\n <p *ngSwitchCase=\"'RICH_TEXT_EDITOR'\" [innerHTML]=\"qa.values\"></p>\n <p *ngSwitchCase=\"'DROP_DOWN'\">{{ qa.values.join(', ') }}</p>\n <p *ngSwitchCase=\"'SELECTION_MATRIX'\">{{ qa.values.join(', ') }}</p>\n <p *ngSwitchDefault>{{ qa.values }}</p>\n </ng-container>\n </ng-template>\n </div>\n </div>\n</div>\n </div>", styles: [".subModule{width:100%;position:relative;padding-left:3rem;padding-right:3rem;padding-top:4rem}@media (max-width: 1024px){.subModule{padding-left:1rem;padding-right:1rem}}@media (max-width: 576px){.subModule{padding:2rem .5rem}}.submission-container{background:#fff;display:flex;flex-wrap:wrap;box-shadow:0 4px 4px #00000040;border-radius:6px}.submission-item{flex:1 0 15%;margin:5px;padding:10px;border-radius:4px;display:flex;flex-direction:column}.key{font-weight:700;margin-bottom:5px}.value{word-break:break-word}.image{max-width:100%;height:auto;max-height:100px;margin-top:5px;border:1px solid #ddd;border-radius:4px;margin-bottom:10px}.files{display:flex;flex-direction:row}.fileName{text-decoration:none;margin-left:2%}.fileName i{font-size:20px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }] }); }
|
|
10
|
-
}
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SubmissionContainerComponent, decorators: [{
|
|
12
|
-
type: Component,
|
|
13
|
-
args: [{ selector: 'lib-submission-container', template: "<div class=\"subModule\">\n <div class=\"submission-container\">\n <div *ngFor=\"let qa of parentQuestionAnswers\" class=\"submission-item\">\n <div class=\"key\">{{ qa.question }}</div>\n <div class=\"value\">\n <ng-container *ngIf=\"qa.elementType === 'FILE_PICKER'; else text\">\n <div class=\"files\" *ngFor=\"let attachment of qa.attachments\">\n <ng-container *ngIf=\"isImageUrl(attachment.fileName); else fileLink\">\n <img [src]=\"attachment.fileUrl\" alt=\"{{ attachment.fileName }}\" class=\"image\">\n </ng-container>\n <ng-template #fileLink>\n <p>{{ attachment.fileName }}</p>\n <a class=\"fileName\" [href]=\"attachment.fileUrl\" target=\"_blank\">\n <i class=\"bi bi-file-earmark\"></i>\n </a>\n </ng-template>\n </div>\n </ng-container>\n <ng-template #text>\n <ng-container [ngSwitch]=\"qa.elementType\">\n <p *ngSwitchCase=\"'RICH_TEXT_EDITOR'\" [innerHTML]=\"qa.values\"></p>\n <p *ngSwitchCase=\"'DROP_DOWN'\">{{ qa.values.join(', ') }}</p>\n <p *ngSwitchCase=\"'SELECTION_MATRIX'\">{{ qa.values.join(', ') }}</p>\n <p *ngSwitchDefault>{{ qa.values }}</p>\n </ng-container>\n </ng-template>\n </div>\n </div>\n</div>\n </div>", styles: [".subModule{width:100%;position:relative;padding-left:3rem;padding-right:3rem;padding-top:4rem}@media (max-width: 1024px){.subModule{padding-left:1rem;padding-right:1rem}}@media (max-width: 576px){.subModule{padding:2rem .5rem}}.submission-container{background:#fff;display:flex;flex-wrap:wrap;box-shadow:0 4px 4px #00000040;border-radius:6px}.submission-item{flex:1 0 15%;margin:5px;padding:10px;border-radius:4px;display:flex;flex-direction:column}.key{font-weight:700;margin-bottom:5px}.value{word-break:break-word}.image{max-width:100%;height:auto;max-height:100px;margin-top:5px;border:1px solid #ddd;border-radius:4px;margin-bottom:10px}.files{display:flex;flex-direction:row}.fileName{text-decoration:none;margin-left:2%}.fileName i{font-size:20px}\n"] }]
|
|
14
|
-
}], propDecorators: { parentQuestionAnswers: [{
|
|
15
|
-
type: Input
|
|
16
|
-
}] } });
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VibWlzc2lvbi1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybS1zdWJtaXNzaW9uL3NyYy9mb3JtLXN1Ym1pc3Npb24vc3VibWlzc2lvbi1jb250YWluZXIvc3VibWlzc2lvbi1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybS1zdWJtaXNzaW9uL3NyYy9mb3JtLXN1Ym1pc3Npb24vc3VibWlzc2lvbi1jb250YWluZXIvc3VibWlzc2lvbi1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU9qRCxNQUFNLE9BQU8sNEJBQTRCO0lBR3ZDLFVBQVUsQ0FBQyxHQUFXO1FBQ3BCLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLElBQUksQ0FBQztJQUNwRCxDQUFDOytHQUxVLDRCQUE0QjttR0FBNUIsNEJBQTRCLDRIQ1B6QywrMkNBNkJROzs0RkR0QkssNEJBQTRCO2tCQUx4QyxTQUFTOytCQUNFLDBCQUEwQjs4QkFLM0IscUJBQXFCO3NCQUE3QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItc3VibWlzc2lvbi1jb250YWluZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vc3VibWlzc2lvbi1jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zdWJtaXNzaW9uLWNvbnRhaW5lci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFN1Ym1pc3Npb25Db250YWluZXJDb21wb25lbnQge1xuICBASW5wdXQoKSBwYXJlbnRRdWVzdGlvbkFuc3dlcnM6YW55O1xuXG4gIGlzSW1hZ2VVcmwodXJsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdXJsLm1hdGNoKC9cXC4oanBlZ3xqcGd8Z2lmfHBuZykkLykgIT0gbnVsbDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInN1Yk1vZHVsZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJzdWJtaXNzaW9uLWNvbnRhaW5lclwiPlxuICAgIDxkaXYgKm5nRm9yPVwibGV0IHFhIG9mIHBhcmVudFF1ZXN0aW9uQW5zd2Vyc1wiIGNsYXNzPVwic3VibWlzc2lvbi1pdGVtXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwia2V5XCI+e3sgcWEucXVlc3Rpb24gfX08L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicWEuZWxlbWVudFR5cGUgPT09ICdGSUxFX1BJQ0tFUic7IGVsc2UgdGV4dFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlc1wiICpuZ0Zvcj1cImxldCBhdHRhY2htZW50IG9mIHFhLmF0dGFjaG1lbnRzXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNJbWFnZVVybChhdHRhY2htZW50LmZpbGVOYW1lKTsgZWxzZSBmaWxlTGlua1wiPlxuICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiYXR0YWNobWVudC5maWxlVXJsXCIgYWx0PVwie3sgYXR0YWNobWVudC5maWxlTmFtZSB9fVwiIGNsYXNzPVwiaW1hZ2VcIj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNmaWxlTGluaz5cbiAgICAgICAgICAgICAgPHA+e3sgYXR0YWNobWVudC5maWxlTmFtZSB9fTwvcD5cbiAgICAgICAgICAgICAgPGEgY2xhc3M9XCJmaWxlTmFtZVwiIFtocmVmXT1cImF0dGFjaG1lbnQuZmlsZVVybFwiIHRhcmdldD1cIl9ibGFua1wiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmktZmlsZS1lYXJtYXJrXCI+PC9pPlxuICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICN0ZXh0PlxuICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInFhLmVsZW1lbnRUeXBlXCI+XG4gICAgICAgICAgICA8cCAqbmdTd2l0Y2hDYXNlPVwiJ1JJQ0hfVEVYVF9FRElUT1InXCIgW2lubmVySFRNTF09XCJxYS52YWx1ZXNcIj48L3A+XG4gICAgICAgICAgICA8cCAqbmdTd2l0Y2hDYXNlPVwiJ0RST1BfRE9XTidcIj57eyBxYS52YWx1ZXMuam9pbignLCAnKSB9fTwvcD5cbiAgICAgICAgICAgIDxwICpuZ1N3aXRjaENhc2U9XCInU0VMRUNUSU9OX01BVFJJWCdcIj57eyBxYS52YWx1ZXMuam9pbignLCAnKSB9fTwvcD5cbiAgICAgICAgICAgIDxwICpuZ1N3aXRjaERlZmF1bHQ+e3sgcWEudmFsdWVzIH19PC9wPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiAgPC9kaXY+Il19
|