vcomply-workflow-engine 0.2.2 → 1.0.2
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/bundles/vcomply-workflow-engine.umd.js +6561 -171
- package/bundles/vcomply-workflow-engine.umd.js.map +1 -1
- package/esm2015/lib/add-multiple-responsibility/add-multiple-responsibility.component.js +18 -25
- package/esm2015/lib/add-multiple-responsibility/add-multiple-responsibility.component.ngfactory.js +2 -2
- package/esm2015/lib/add-multiple-risk/add-multiple-risk.component.js +1 -1
- package/esm2015/lib/log-an-issue/log-an-issue.component.js +1 -1
- package/esm2015/lib/sharedComponents/assessment-editor/components/add-logic/add-logic.component.js +333 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/add-logic/add-logic.component.ngfactory.js +160 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/add-logic/add-logic.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/add-page-details/add-page-details.component.js +73 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/add-page-details/add-page-details.component.ngfactory.js +39 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/add-page-details/add-page-details.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/add-response-set-popup/add-response-set-popup.component.js +27 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/add-response-set-popup/add-response-set-popup.component.ngfactory.js +153 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/add-response-set-popup/add-response-set-popup.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/add-segment-popup/add-segment-popup.component.js +116 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/add-segment-popup/add-segment-popup.component.ngfactory.js +116 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/add-segment-popup/add-segment-popup.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/assessment-settings/assessment-settings.component.js +165 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/assessment-settings/assessment-settings.component.ngfactory.js +85 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/assessment-settings/assessment-settings.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/build.module.js +71 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/build.module.ngfactory.js +17 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/build.module.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/checkbox/checkbox.component.js +35 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/checkbox/checkbox.component.ngfactory.js +89 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/checkbox/checkbox.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/choice-settings-panel/choice-settings-panel.component.js +66 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/choice-settings-panel/choice-settings-panel.component.ngfactory.js +72 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/choice-settings-panel/choice-settings-panel.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/date-time/date-time.component.js +18 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/date-time/date-time.component.ngfactory.js +51 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/date-time/date-time.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/dropdown/dropdown.component.js +35 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/dropdown/dropdown.component.ngfactory.js +104 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/dropdown/dropdown.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/image-choice/image-choice.component.js +15 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/image-choice/image-choice.component.ngfactory.js +20 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/image-choice/image-choice.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/matrix-dropdown/matrix-dropdown.component.js +15 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/matrix-dropdown/matrix-dropdown.component.ngfactory.js +17 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/matrix-dropdown/matrix-dropdown.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/matrix-rating-scale/matrix-rating-scale.component.js +15 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/matrix-rating-scale/matrix-rating-scale.component.ngfactory.js +17 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/matrix-rating-scale/matrix-rating-scale.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/multiple-choice/multiple-choice.component.js +35 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/multiple-choice/multiple-choice.component.ngfactory.js +104 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/multiple-choice/multiple-choice.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/multiple-textbox/multiple-textbox.component.js +15 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/multiple-textbox/multiple-textbox.component.ngfactory.js +17 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/multiple-textbox/multiple-textbox.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/ranking/ranking.component.js +15 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/ranking/ranking.component.ngfactory.js +17 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/ranking/ranking.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/slider/slider.component.js +15 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/slider/slider.component.ngfactory.js +17 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/slider/slider.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/star-rating/star-rating.component.js +26 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/star-rating/star-rating.component.ngfactory.js +60 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/star-rating/star-rating.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/thank-you/thank-you.component.js +15 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/thank-you/thank-you.component.ngfactory.js +17 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/thank-you/thank-you.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/weightage-selector/weightage-selector.component.js +55 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/weightage-selector/weightage-selector.component.ngfactory.js +51 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/weightage-selector/weightage-selector.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/welcome/welcome.component.js +15 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/welcome/welcome.component.ngfactory.js +17 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/build/welcome/welcome.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/editor-wrapper/editor-wrapper.component.js +152 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/editor-wrapper/editor-wrapper.component.ngfactory.js +205 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/editor-wrapper/editor-wrapper.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/errorInterface/error.js +2 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/errorInterface/error.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/errorInterface/question.js +2 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/errorInterface/question.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/errorInterface/validateStructure.js +2 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/errorInterface/validateStructure.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic/logic.component.js +100 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic/logic.component.ngfactory.js +119 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic/logic.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-checkbox/logic-checkbox.component.js +24 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-checkbox/logic-checkbox.component.ngfactory.js +59 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-checkbox/logic-checkbox.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-comment-box/logic-comment-box.component.js +15 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-comment-box/logic-comment-box.component.ngfactory.js +17 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-comment-box/logic-comment-box.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-date-time/logic-date-time.component.js +37 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-date-time/logic-date-time.component.ngfactory.js +105 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-date-time/logic-date-time.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-dropdown/logic-dropdown.component.js +31 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-dropdown/logic-dropdown.component.ngfactory.js +22 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-dropdown/logic-dropdown.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-image-choice/logic-image-choice.component.js +15 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-image-choice/logic-image-choice.component.ngfactory.js +37 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-image-choice/logic-image-choice.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-choice/logic-multiple-choice.component.js +24 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-choice/logic-multiple-choice.component.ngfactory.js +59 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-choice/logic-multiple-choice.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-textbox/logic-multiple-textbox.component.js +15 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-textbox/logic-multiple-textbox.component.ngfactory.js +35 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-textbox/logic-multiple-textbox.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-questions.module.js +64 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-questions.module.ngfactory.js +21 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-questions.module.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-ranking/logic-ranking.component.js +15 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-ranking/logic-ranking.component.ngfactory.js +36 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-ranking/logic-ranking.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-single-textbox/logic-single-textbox.component.js +24 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-single-textbox/logic-single-textbox.component.ngfactory.js +36 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-single-textbox/logic-single-textbox.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-slider/logic-slider.component.js +15 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-slider/logic-slider.component.ngfactory.js +17 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-slider/logic-slider.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-star-rating/logic-star-rating.component.js +15 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-star-rating/logic-star-rating.component.ngfactory.js +40 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/logic-questions/logic-star-rating/logic-star-rating.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/move/move.component.js +95 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/move/move.component.ngfactory.js +102 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/move/move.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/page-header/page-header.component.js +22 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/page-header/page-header.component.ngfactory.js +23 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/page-header/page-header.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/current-page-question.pipe.js +18 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/current-page-question.pipe.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/error-message.pipe.js +23 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/error-message.pipe.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/formatter.pipe.js +17 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/formatter.pipe.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/question-filter.pipe.js +13 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/question-filter.pipe.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/question-page-filter.pipe.js +12 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/question-page-filter.pipe.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/question-parser.pipe.js +17 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/question-parser.pipe.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/type-of.pipe.js +12 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/pipes/type-of.pipe.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-checkbox/preview-checkbox.component.js +28 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-checkbox/preview-checkbox.component.ngfactory.js +22 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-checkbox/preview-checkbox.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-comment-box/preview-comment-box.component.js +15 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-comment-box/preview-comment-box.component.ngfactory.js +17 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-comment-box/preview-comment-box.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-date-time/preview-date-time.component.js +31 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-date-time/preview-date-time.component.ngfactory.js +81 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-date-time/preview-date-time.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-dropdown/preview-dropdown.component.js +31 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-dropdown/preview-dropdown.component.ngfactory.js +19 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-dropdown/preview-dropdown.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-file-upload/preview-file-upload.component.js +23 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-file-upload/preview-file-upload.component.ngfactory.js +20 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-file-upload/preview-file-upload.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-image-choice/preview-image-choice.component.js +15 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-image-choice/preview-image-choice.component.ngfactory.js +37 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-image-choice/preview-image-choice.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-dropdown/preview-matrix-dropdown.component.js +24 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-dropdown/preview-matrix-dropdown.component.ngfactory.js +60 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-dropdown/preview-matrix-dropdown.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-rating-scale/preview-matrix-rating-scale.component.js +24 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-rating-scale/preview-matrix-rating-scale.component.ngfactory.js +60 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-rating-scale/preview-matrix-rating-scale.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-choice/preview-multiple-choice.component.js +28 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-choice/preview-multiple-choice.component.ngfactory.js +22 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-choice/preview-multiple-choice.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-textbox/preview-multiple-textbox.component.js +15 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-textbox/preview-multiple-textbox.component.ngfactory.js +35 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-textbox/preview-multiple-textbox.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-ranking/preview-ranking.component.js +15 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-ranking/preview-ranking.component.ngfactory.js +36 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-ranking/preview-ranking.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-single-textbox/preview-single-textbox.component.js +18 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-single-textbox/preview-single-textbox.component.ngfactory.js +17 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-single-textbox/preview-single-textbox.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-slider/preview-slider.component.js +15 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-slider/preview-slider.component.ngfactory.js +17 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-slider/preview-slider.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-star-rating/preview-star-rating.component.js +15 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-star-rating/preview-star-rating.component.ngfactory.js +40 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-star-rating/preview-star-rating.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-wrapper/preview-wrapper.component.js +67 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-wrapper/preview-wrapper.component.ngfactory.js +90 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview-wrapper/preview-wrapper.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview.module.js +90 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview.module.ngfactory.js +29 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/preview.module.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/thank-you/thank-you.component.js +15 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/thank-you/thank-you.component.ngfactory.js +17 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/thank-you/thank-you.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/welcome/welcome.component.js +15 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/welcome/welcome.component.ngfactory.js +17 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/preview/welcome/welcome.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/question-type/question-type.component.js +20 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/question-type/question-type.component.ngfactory.js +76 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/question-type/question-type.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/quick-settings/quick-settings.component.js +248 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/quick-settings/quick-settings.component.ngfactory.js +109 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/quick-settings/quick-settings.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/response-selector/response-selector.component.js +35 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/response-selector/response-selector.component.ngfactory.js +95 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/response-selector/response-selector.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/setting-anonymous/setting-anonymous.component.js +56 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/setting-anonymous/setting-anonymous.component.ngfactory.js +108 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/setting-anonymous/setting-anonymous.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/setting-response-segment/setting-response-segment.component.js +153 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/setting-response-segment/setting-response-segment.component.ngfactory.js +130 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/setting-response-segment/setting-response-segment.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/single-line-editor/single-line-editor.component.js +123 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/single-line-editor/single-line-editor.component.ngfactory.js +47 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/single-line-editor/single-line-editor.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/toolkit/toolkit.component.js +24 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/toolkit/toolkit.component.ngfactory.js +97 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/toolkit/toolkit.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.js +50 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.ngfactory.js +47 -0
- package/esm2015/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.js +424 -0
- package/esm2015/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.ngfactory.js +222 -0
- package/esm2015/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/create-assessment.module.js +86 -0
- package/esm2015/lib/sharedComponents/assessment-editor/create-assessment.module.ngfactory.js +37 -0
- package/esm2015/lib/sharedComponents/assessment-editor/create-assessment.module.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/services/editor.service.js +636 -0
- package/esm2015/lib/sharedComponents/assessment-editor/services/editor.service.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/services/result-criteria.service.js +48 -0
- package/esm2015/lib/sharedComponents/assessment-editor/services/result-criteria.service.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/assessment-editor/services/validator.service.js +543 -0
- package/esm2015/lib/sharedComponents/assessment-editor/services/validator.service.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.js +2 -2
- package/esm2015/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.ngfactory.js +29 -363
- package/esm2015/lib/sharedComponents/format-and-evidence/format-and-evidence.component.js +1 -1
- package/esm2015/lib/sharedComponents/risk-classification/risk-classification.component.js +1 -1
- package/esm2015/lib/ui-kit/action-dialog/action-dialog.module.js +16 -0
- package/esm2015/lib/ui-kit/action-dialog/action-dialog.module.ngfactory.js +12 -0
- package/esm2015/lib/ui-kit/action-dialog/action-dialog.module.ngsummary.json +1 -0
- package/esm2015/lib/ui-kit/action-dialog/active/active.component.js +36 -0
- package/esm2015/lib/ui-kit/action-dialog/active/active.component.ngfactory.js +25 -0
- package/esm2015/lib/ui-kit/action-dialog/active/active.component.ngsummary.json +1 -0
- package/esm2015/lib/ui-kit/action-dialog/deactivate/deactivate.component.js +38 -0
- package/esm2015/lib/ui-kit/action-dialog/deactivate/deactivate.component.ngfactory.js +25 -0
- package/esm2015/lib/ui-kit/action-dialog/deactivate/deactivate.component.ngsummary.json +1 -0
- package/esm2015/lib/ui-kit/action-dialog/delete/delete.component.js +30 -0
- package/esm2015/lib/ui-kit/action-dialog/delete/delete.component.ngfactory.js +25 -0
- package/esm2015/lib/ui-kit/action-dialog/delete/delete.component.ngsummary.json +1 -0
- package/esm2015/lib/ui-kit/action-dialog/duplicate/duplicate.component.js +32 -0
- package/esm2015/lib/ui-kit/action-dialog/duplicate/duplicate.component.ngfactory.js +25 -0
- package/esm2015/lib/ui-kit/action-dialog/duplicate/duplicate.component.ngsummary.json +1 -0
- package/esm2015/lib/ui-kit/dialog/dialog-config.js +3 -0
- package/esm2015/lib/ui-kit/dialog/dialog-config.ngsummary.json +1 -0
- package/esm2015/lib/ui-kit/dialog/dialog-injector.js +15 -0
- package/esm2015/lib/ui-kit/dialog/dialog-injector.ngsummary.json +1 -0
- package/esm2015/lib/ui-kit/dialog/dialog-ref.js +11 -0
- package/esm2015/lib/ui-kit/dialog/dialog-ref.ngsummary.json +1 -0
- package/esm2015/lib/ui-kit/dialog/dialog.component.js +90 -0
- package/esm2015/lib/ui-kit/dialog/dialog.component.ngfactory.js +29 -0
- package/esm2015/lib/ui-kit/dialog/dialog.component.ngsummary.json +1 -0
- package/esm2015/lib/ui-kit/dialog/dialog.module.js +16 -0
- package/esm2015/lib/ui-kit/dialog/dialog.module.ngfactory.js +14 -0
- package/esm2015/lib/ui-kit/dialog/dialog.module.ngsummary.json +1 -0
- package/esm2015/lib/ui-kit/dialog/dialog.service.js +60 -0
- package/esm2015/lib/ui-kit/dialog/dialog.service.ngsummary.json +1 -0
- package/esm2015/lib/ui-kit/dialog/insertion.directive.js +15 -0
- package/esm2015/lib/ui-kit/dialog/insertion.directive.ngsummary.json +1 -0
- package/esm2015/lib/ui-kit/editor-loader/editor-loader/editor-loader.component.js +15 -0
- package/esm2015/lib/ui-kit/editor-loader/editor-loader/editor-loader.component.ngfactory.js +23 -0
- package/esm2015/lib/ui-kit/editor-loader/editor-loader/editor-loader.component.ngsummary.json +1 -0
- package/esm2015/lib/ui-kit/editor-loader/editor-loader.module.js +17 -0
- package/esm2015/lib/ui-kit/editor-loader/editor-loader.module.ngfactory.js +12 -0
- package/esm2015/lib/ui-kit/editor-loader/editor-loader.module.ngsummary.json +1 -0
- package/esm2015/lib/ui-kit/formgroup/click-outside.directive.js +26 -0
- package/esm2015/lib/ui-kit/formgroup/click-outside.directive.ngsummary.json +1 -0
- package/esm2015/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.js +26 -0
- package/esm2015/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.ngfactory.js +30 -0
- package/esm2015/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.ngsummary.json +1 -0
- package/esm2015/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.js +30 -0
- package/esm2015/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.ngfactory.js +30 -0
- package/esm2015/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.ngsummary.json +1 -0
- package/esm2015/lib/ui-kit/formgroup/cs-radio/cs-radio.component.js +27 -0
- package/esm2015/lib/ui-kit/formgroup/cs-radio/cs-radio.component.ngfactory.js +20 -0
- package/esm2015/lib/ui-kit/formgroup/cs-radio/cs-radio.component.ngsummary.json +1 -0
- package/esm2015/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.js +14 -0
- package/esm2015/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.ngfactory.js +19 -0
- package/esm2015/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.ngsummary.json +1 -0
- package/esm2015/lib/ui-kit/formgroup/cs-select/cs-select.component.js +80 -0
- package/esm2015/lib/ui-kit/formgroup/cs-select/cs-select.component.ngfactory.js +89 -0
- package/esm2015/lib/ui-kit/formgroup/cs-select/cs-select.component.ngsummary.json +1 -0
- package/esm2015/lib/ui-kit/formgroup/cs-switch/cs-switch.component.js +29 -0
- package/esm2015/lib/ui-kit/formgroup/cs-switch/cs-switch.component.ngfactory.js +62 -0
- package/esm2015/lib/ui-kit/formgroup/cs-switch/cs-switch.component.ngsummary.json +1 -0
- package/esm2015/lib/ui-kit/formgroup/formgroup.module.js +41 -0
- package/esm2015/lib/ui-kit/formgroup/formgroup.module.ngfactory.js +14 -0
- package/esm2015/lib/ui-kit/formgroup/formgroup.module.ngsummary.json +1 -0
- package/esm2015/lib/ui-kit/formgroup/pipes/pascal.pipe.js +15 -0
- package/esm2015/lib/ui-kit/formgroup/pipes/pascal.pipe.ngsummary.json +1 -0
- package/esm2015/lib/ui-kit/formgroup/pipes/searchMultiSelect.pipe.js +20 -0
- package/esm2015/lib/ui-kit/formgroup/pipes/searchMultiSelect.pipe.ngsummary.json +1 -0
- package/esm2015/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.js +557 -0
- package/esm2015/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.ngfactory.js +82 -0
- package/esm2015/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.ngsummary.json +1 -0
- package/esm2015/lib/workflow-assessment/workflow-assessment.component.js +3 -3
- package/esm2015/lib/workflow-assessment/workflow-assessment.component.ngfactory.js +1 -1
- package/esm2015/lib/workflow-compliance/workflow-compliance.component.js +4 -1521
- package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.js +20 -8
- package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.ngfactory.js +62 -34
- package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.ngsummary.json +1 -1
- package/esm2015/lib/workflow-engine.module.js +8 -1
- package/esm2015/lib/workflow-engine.module.ngfactory.js +36 -24
- package/esm2015/lib/workflow-engine.module.ngsummary.json +1 -1
- package/esm2015/lib/workflow-policy/workflow-policy.component.js +1 -1
- package/esm2015/lib/workflow-risk/workflow-risk.component.js +3 -2
- package/esm2015/lib/workflow-services/add-risk.service.js +2 -1
- package/esm2015/lib/workflow-services/assessment.service.js +47 -1
- package/esm2015/lib/workflow-services/assessment.service.ngsummary.json +1 -1
- package/esm2015/lib/workflow-survey-form/workflow-survey-form.component.js +1 -1
- package/esm2015/vcomply-workflow-engine.js +160 -61
- package/esm2015/vcomply-workflow-engine.ngsummary.json +1 -1
- package/fesm2015/vcomply-workflow-engine.js +6007 -112
- package/fesm2015/vcomply-workflow-engine.js.map +1 -1
- package/lib/sharedComponents/assessment-editor/components/add-logic/add-logic.component.d.ts +117 -0
- package/lib/sharedComponents/assessment-editor/components/add-logic/add-logic.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/add-page-details/add-page-details.component.d.ts +18 -0
- package/lib/sharedComponents/assessment-editor/components/add-page-details/add-page-details.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/add-response-set-popup/add-response-set-popup.component.d.ts +10 -0
- package/lib/sharedComponents/assessment-editor/components/add-response-set-popup/add-response-set-popup.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/add-segment-popup/add-segment-popup.component.d.ts +22 -0
- package/lib/sharedComponents/assessment-editor/components/add-segment-popup/add-segment-popup.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/assessment-settings/assessment-settings.component.d.ts +47 -0
- package/lib/sharedComponents/assessment-editor/components/assessment-settings/assessment-settings.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/build/build.module.d.ts +2 -0
- package/lib/sharedComponents/assessment-editor/components/build/build.module.ngfactory.d.ts +3 -0
- package/lib/sharedComponents/assessment-editor/components/build/checkbox/checkbox.component.d.ts +11 -0
- package/lib/sharedComponents/assessment-editor/components/build/checkbox/checkbox.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/build/choice-settings-panel/choice-settings-panel.component.d.ts +16 -0
- package/lib/sharedComponents/assessment-editor/components/build/choice-settings-panel/choice-settings-panel.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/build/date-time/date-time.component.d.ts +6 -0
- package/lib/sharedComponents/assessment-editor/components/build/date-time/date-time.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/build/dropdown/dropdown.component.d.ts +11 -0
- package/lib/sharedComponents/assessment-editor/components/build/dropdown/dropdown.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/build/image-choice/image-choice.component.d.ts +5 -0
- package/lib/sharedComponents/assessment-editor/components/build/image-choice/image-choice.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/build/matrix-dropdown/matrix-dropdown.component.d.ts +5 -0
- package/lib/sharedComponents/assessment-editor/components/build/matrix-dropdown/matrix-dropdown.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/build/matrix-rating-scale/matrix-rating-scale.component.d.ts +5 -0
- package/lib/sharedComponents/assessment-editor/components/build/matrix-rating-scale/matrix-rating-scale.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/build/multiple-choice/multiple-choice.component.d.ts +11 -0
- package/lib/sharedComponents/assessment-editor/components/build/multiple-choice/multiple-choice.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/build/multiple-textbox/multiple-textbox.component.d.ts +5 -0
- package/lib/sharedComponents/assessment-editor/components/build/multiple-textbox/multiple-textbox.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/build/ranking/ranking.component.d.ts +5 -0
- package/lib/sharedComponents/assessment-editor/components/build/ranking/ranking.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/build/slider/slider.component.d.ts +5 -0
- package/lib/sharedComponents/assessment-editor/components/build/slider/slider.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/build/star-rating/star-rating.component.d.ts +9 -0
- package/lib/sharedComponents/assessment-editor/components/build/star-rating/star-rating.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/build/thank-you/thank-you.component.d.ts +5 -0
- package/lib/sharedComponents/assessment-editor/components/build/thank-you/thank-you.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/build/weightage-selector/weightage-selector.component.d.ts +12 -0
- package/lib/sharedComponents/assessment-editor/components/build/weightage-selector/weightage-selector.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/build/welcome/welcome.component.d.ts +5 -0
- package/lib/sharedComponents/assessment-editor/components/build/welcome/welcome.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/editor-wrapper/editor-wrapper.component.d.ts +56 -0
- package/lib/sharedComponents/assessment-editor/components/editor-wrapper/editor-wrapper.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/errorInterface/error.d.ts +14 -0
- package/lib/sharedComponents/assessment-editor/components/errorInterface/question.d.ts +5 -0
- package/lib/sharedComponents/assessment-editor/components/errorInterface/validateStructure.d.ts +6 -0
- package/lib/sharedComponents/assessment-editor/components/logic/logic.component.d.ts +24 -0
- package/lib/sharedComponents/assessment-editor/components/logic/logic.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-checkbox/logic-checkbox.component.d.ts +8 -0
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-checkbox/logic-checkbox.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-comment-box/logic-comment-box.component.d.ts +5 -0
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-comment-box/logic-comment-box.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-date-time/logic-date-time.component.d.ts +14 -0
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-date-time/logic-date-time.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-dropdown/logic-dropdown.component.d.ts +9 -0
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-dropdown/logic-dropdown.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-image-choice/logic-image-choice.component.d.ts +5 -0
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-image-choice/logic-image-choice.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-choice/logic-multiple-choice.component.d.ts +8 -0
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-choice/logic-multiple-choice.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-textbox/logic-multiple-textbox.component.d.ts +5 -0
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-textbox/logic-multiple-textbox.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-questions.module.d.ts +2 -0
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-questions.module.ngfactory.d.ts +3 -0
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-ranking/logic-ranking.component.d.ts +5 -0
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-ranking/logic-ranking.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-single-textbox/logic-single-textbox.component.d.ts +9 -0
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-single-textbox/logic-single-textbox.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-slider/logic-slider.component.d.ts +5 -0
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-slider/logic-slider.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-star-rating/logic-star-rating.component.d.ts +5 -0
- package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-star-rating/logic-star-rating.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/move/move.component.d.ts +22 -0
- package/lib/sharedComponents/assessment-editor/components/move/move.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/page-header/page-header.component.d.ts +8 -0
- package/lib/sharedComponents/assessment-editor/components/page-header/page-header.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/pipes/current-page-question.pipe.d.ts +4 -0
- package/lib/sharedComponents/assessment-editor/components/pipes/error-message.pipe.d.ts +4 -0
- package/lib/sharedComponents/assessment-editor/components/pipes/formatter.pipe.d.ts +4 -0
- package/lib/sharedComponents/assessment-editor/components/pipes/question-filter.pipe.d.ts +4 -0
- package/lib/sharedComponents/assessment-editor/components/pipes/question-page-filter.pipe.d.ts +4 -0
- package/lib/sharedComponents/assessment-editor/components/pipes/question-parser.pipe.d.ts +4 -0
- package/lib/sharedComponents/assessment-editor/components/pipes/type-of.pipe.d.ts +4 -0
- package/lib/sharedComponents/assessment-editor/components/preview/preview-checkbox/preview-checkbox.component.d.ts +8 -0
- package/lib/sharedComponents/assessment-editor/components/preview/preview-checkbox/preview-checkbox.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/preview/preview-comment-box/preview-comment-box.component.d.ts +5 -0
- package/lib/sharedComponents/assessment-editor/components/preview/preview-comment-box/preview-comment-box.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/preview/preview-date-time/preview-date-time.component.d.ts +11 -0
- package/lib/sharedComponents/assessment-editor/components/preview/preview-date-time/preview-date-time.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/preview/preview-dropdown/preview-dropdown.component.d.ts +8 -0
- package/lib/sharedComponents/assessment-editor/components/preview/preview-dropdown/preview-dropdown.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/preview/preview-file-upload/preview-file-upload.component.d.ts +8 -0
- package/lib/sharedComponents/assessment-editor/components/preview/preview-file-upload/preview-file-upload.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/preview/preview-image-choice/preview-image-choice.component.d.ts +5 -0
- package/lib/sharedComponents/assessment-editor/components/preview/preview-image-choice/preview-image-choice.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-dropdown/preview-matrix-dropdown.component.d.ts +7 -0
- package/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-dropdown/preview-matrix-dropdown.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-rating-scale/preview-matrix-rating-scale.component.d.ts +7 -0
- package/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-rating-scale/preview-matrix-rating-scale.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-choice/preview-multiple-choice.component.d.ts +8 -0
- package/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-choice/preview-multiple-choice.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-textbox/preview-multiple-textbox.component.d.ts +5 -0
- package/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-textbox/preview-multiple-textbox.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/preview/preview-ranking/preview-ranking.component.d.ts +5 -0
- package/lib/sharedComponents/assessment-editor/components/preview/preview-ranking/preview-ranking.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/preview/preview-single-textbox/preview-single-textbox.component.d.ts +6 -0
- package/lib/sharedComponents/assessment-editor/components/preview/preview-single-textbox/preview-single-textbox.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/preview/preview-slider/preview-slider.component.d.ts +5 -0
- package/lib/sharedComponents/assessment-editor/components/preview/preview-slider/preview-slider.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/preview/preview-star-rating/preview-star-rating.component.d.ts +5 -0
- package/lib/sharedComponents/assessment-editor/components/preview/preview-star-rating/preview-star-rating.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/preview/preview-wrapper/preview-wrapper.component.d.ts +27 -0
- package/lib/sharedComponents/assessment-editor/components/preview/preview-wrapper/preview-wrapper.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/preview/preview.module.d.ts +2 -0
- package/lib/sharedComponents/assessment-editor/components/preview/preview.module.ngfactory.d.ts +3 -0
- package/lib/sharedComponents/assessment-editor/components/preview/thank-you/thank-you.component.d.ts +5 -0
- package/lib/sharedComponents/assessment-editor/components/preview/thank-you/thank-you.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/preview/welcome/welcome.component.d.ts +5 -0
- package/lib/sharedComponents/assessment-editor/components/preview/welcome/welcome.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/question-type/question-type.component.d.ts +6 -0
- package/lib/sharedComponents/assessment-editor/components/question-type/question-type.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/quick-settings/quick-settings.component.d.ts +28 -0
- package/lib/sharedComponents/assessment-editor/components/quick-settings/quick-settings.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/response-selector/response-selector.component.d.ts +11 -0
- package/lib/sharedComponents/assessment-editor/components/response-selector/response-selector.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/setting-anonymous/setting-anonymous.component.d.ts +16 -0
- package/lib/sharedComponents/assessment-editor/components/setting-anonymous/setting-anonymous.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/setting-response-segment/setting-response-segment.component.d.ts +47 -0
- package/lib/sharedComponents/assessment-editor/components/setting-response-segment/setting-response-segment.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/single-line-editor/single-line-editor.component.d.ts +35 -0
- package/lib/sharedComponents/assessment-editor/components/single-line-editor/single-line-editor.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/toolkit/toolkit.component.d.ts +8 -0
- package/lib/sharedComponents/assessment-editor/components/toolkit/toolkit.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.d.ts +12 -0
- package/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.d.ts +64 -0
- package/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/assessment-editor/create-assessment.module.d.ts +2 -0
- package/lib/sharedComponents/assessment-editor/create-assessment.module.ngfactory.d.ts +3 -0
- package/lib/sharedComponents/assessment-editor/services/editor.service.d.ts +185 -0
- package/lib/sharedComponents/assessment-editor/services/result-criteria.service.d.ts +4 -0
- package/lib/sharedComponents/assessment-editor/services/validator.service.d.ts +31 -0
- package/lib/ui-kit/action-dialog/action-dialog.module.d.ts +2 -0
- package/lib/ui-kit/action-dialog/action-dialog.module.ngfactory.d.ts +3 -0
- package/lib/ui-kit/action-dialog/active/active.component.d.ts +12 -0
- package/lib/ui-kit/action-dialog/active/active.component.ngfactory.d.ts +1 -0
- package/lib/ui-kit/action-dialog/deactivate/deactivate.component.d.ts +12 -0
- package/lib/ui-kit/action-dialog/deactivate/deactivate.component.ngfactory.d.ts +1 -0
- package/lib/ui-kit/action-dialog/delete/delete.component.d.ts +11 -0
- package/lib/ui-kit/action-dialog/delete/delete.component.ngfactory.d.ts +1 -0
- package/lib/ui-kit/action-dialog/duplicate/duplicate.component.d.ts +12 -0
- package/lib/ui-kit/action-dialog/duplicate/duplicate.component.ngfactory.d.ts +1 -0
- package/lib/ui-kit/dialog/dialog-config.d.ts +5 -0
- package/lib/ui-kit/dialog/dialog-injector.d.ts +7 -0
- package/lib/ui-kit/dialog/dialog-ref.d.ts +7 -0
- package/lib/ui-kit/dialog/dialog.component.d.ts +29 -0
- package/lib/ui-kit/dialog/dialog.component.ngfactory.d.ts +1 -0
- package/lib/ui-kit/dialog/dialog.module.d.ts +2 -0
- package/lib/ui-kit/dialog/dialog.module.ngfactory.d.ts +3 -0
- package/lib/ui-kit/dialog/dialog.service.d.ts +15 -0
- package/lib/ui-kit/dialog/insertion.directive.d.ts +5 -0
- package/lib/ui-kit/editor-loader/editor-loader/editor-loader.component.d.ts +5 -0
- package/lib/ui-kit/editor-loader/editor-loader/editor-loader.component.ngfactory.d.ts +1 -0
- package/lib/ui-kit/editor-loader/editor-loader.module.d.ts +2 -0
- package/lib/ui-kit/editor-loader/editor-loader.module.ngfactory.d.ts +3 -0
- package/lib/ui-kit/formgroup/click-outside.directive.d.ts +7 -0
- package/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.d.ts +10 -0
- package/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.ngfactory.d.ts +1 -0
- package/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.d.ts +10 -0
- package/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.ngfactory.d.ts +1 -0
- package/lib/ui-kit/formgroup/cs-radio/cs-radio.component.d.ts +12 -0
- package/lib/ui-kit/formgroup/cs-radio/cs-radio.component.ngfactory.d.ts +1 -0
- package/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.d.ts +5 -0
- package/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.ngfactory.d.ts +1 -0
- package/lib/ui-kit/formgroup/cs-select/cs-select.component.d.ts +33 -0
- package/lib/ui-kit/formgroup/cs-select/cs-select.component.ngfactory.d.ts +1 -0
- package/lib/ui-kit/formgroup/cs-switch/cs-switch.component.d.ts +12 -0
- package/lib/ui-kit/formgroup/cs-switch/cs-switch.component.ngfactory.d.ts +1 -0
- package/lib/ui-kit/formgroup/formgroup.module.d.ts +2 -0
- package/lib/ui-kit/formgroup/formgroup.module.ngfactory.d.ts +3 -0
- package/lib/ui-kit/formgroup/pipes/pascal.pipe.d.ts +4 -0
- package/lib/ui-kit/formgroup/pipes/searchMultiSelect.pipe.d.ts +4 -0
- package/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.d.ts +231 -0
- package/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.ngfactory.d.ts +1 -0
- package/lib/workflow-engine-container/workflow-engine-container.component.d.ts +2 -0
- package/lib/workflow-services/assessment.service.d.ts +10 -1
- package/package.json +1 -1
- package/vcomply-workflow-engine.d.ts +159 -60
- package/vcomply-workflow-engine.metadata.json +1 -1
package/esm2015/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.js
ADDED
|
@@ -0,0 +1,557 @@
|
|
|
1
|
+
import { Component, Output, EventEmitter, ViewChild } from '@angular/core';
|
|
2
|
+
import * as XLSX from 'xlsx';
|
|
3
|
+
import { AuthService } from '../../workflow-services/auth.service';
|
|
4
|
+
import { AssessmentService } from '../../workflow-services/assessment.service';
|
|
5
|
+
const smileyActions = { IMPORT_MORE: "IMPORT_MORE", VIEW_ASSESSMENTS: "VIEW_ASSESSMENTS" };
|
|
6
|
+
export class ImportAnAssessmentComponent {
|
|
7
|
+
constructor(auth, assessmentService) {
|
|
8
|
+
this.auth = auth;
|
|
9
|
+
this.assessmentService = assessmentService;
|
|
10
|
+
this.closeWorkflow = new EventEmitter();
|
|
11
|
+
this.disconnectRefresh = new EventEmitter();
|
|
12
|
+
this.isShowLoader = false;
|
|
13
|
+
this.isWrongFormat = false;
|
|
14
|
+
this.uploadedFiles = [];
|
|
15
|
+
this.fileResponse = [];
|
|
16
|
+
this.organizationId = 0;
|
|
17
|
+
this.errorMessage = "invalid file error";
|
|
18
|
+
this.downloadStatus = 'NOT_DOWNLOADING';
|
|
19
|
+
this.downloadPercent = 0;
|
|
20
|
+
this.smileyMessage = `You're All Set! We're processing your request and you will be notified via email upon completion.`;
|
|
21
|
+
this.actionButtons = [
|
|
22
|
+
{ buttonText: 'Import More Assessments', class: 'white-btn', id: smileyActions.IMPORT_MORE },
|
|
23
|
+
{ buttonText: 'View Assessments', class: 'blue-btn', id: smileyActions.VIEW_ASSESSMENTS },
|
|
24
|
+
];
|
|
25
|
+
this.showSmiley = false;
|
|
26
|
+
this.isUploaded = false;
|
|
27
|
+
this.colMap = {
|
|
28
|
+
type: 0,
|
|
29
|
+
title: 1,
|
|
30
|
+
score: 2,
|
|
31
|
+
opt1: 3,
|
|
32
|
+
opt2: 4,
|
|
33
|
+
opt3: 5,
|
|
34
|
+
opt4: 6,
|
|
35
|
+
opt5: 7,
|
|
36
|
+
opt6: 8,
|
|
37
|
+
required: 9,
|
|
38
|
+
failed: 10,
|
|
39
|
+
description: 11,
|
|
40
|
+
placeholder: 12,
|
|
41
|
+
comment: 13,
|
|
42
|
+
other: 14,
|
|
43
|
+
randomize: 15,
|
|
44
|
+
alignment: 16,
|
|
45
|
+
userattachment: 17,
|
|
46
|
+
usercomment: 18
|
|
47
|
+
};
|
|
48
|
+
this.settings = {
|
|
49
|
+
assessmentMode: false,
|
|
50
|
+
defaultScore: 1,
|
|
51
|
+
negativeScoreCriteria: 'FAILED',
|
|
52
|
+
negativeScore: 0,
|
|
53
|
+
weightageEnabled: false,
|
|
54
|
+
settingsEnabled: false
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
setIsUploaded(isUploaded) {
|
|
58
|
+
this.isUploaded = isUploaded;
|
|
59
|
+
this.auth.previewPanel.next(isUploaded);
|
|
60
|
+
if (!isUploaded) {
|
|
61
|
+
const closeBtn = document.getElementById("close-workflow-engine-btn");
|
|
62
|
+
if (closeBtn)
|
|
63
|
+
closeBtn.style.display = "block";
|
|
64
|
+
this.convertedData = {};
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
closeSmiley(event) {
|
|
68
|
+
this.showSmiley = false;
|
|
69
|
+
this.closeWorkflow.emit({ evt: this.assessmentData, confirm: false });
|
|
70
|
+
}
|
|
71
|
+
downloadTemplate() {
|
|
72
|
+
this.downloadStatus = 'DOWNLOADING';
|
|
73
|
+
this.downloadPercent = 0;
|
|
74
|
+
const downloadDate = new Date().toDateString().split(' ');
|
|
75
|
+
const fileName = `Import an Assessment-${downloadDate[2]}-${downloadDate[1]}-${downloadDate[3]}.xlsx`;
|
|
76
|
+
this.assessmentService.downloadTemplate().subscribe({
|
|
77
|
+
next: (data) => {
|
|
78
|
+
setTimeout(() => {
|
|
79
|
+
this.downloadStatus = this.assessmentService.downLoadFile(data, 'application/xlsx', fileName);
|
|
80
|
+
}, 1500);
|
|
81
|
+
},
|
|
82
|
+
error: () => { this.downloadStatus = 'DOWNLOADED'; }
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
triggerBrowseFile() {
|
|
86
|
+
const getFile = document.getElementById('iaa-file-input');
|
|
87
|
+
if (getFile) {
|
|
88
|
+
getFile.click();
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
// handle upload file area
|
|
92
|
+
uploadFile(evt) {
|
|
93
|
+
const target = evt.target;
|
|
94
|
+
const reader = new FileReader();
|
|
95
|
+
reader.onload = (e) => {
|
|
96
|
+
const bstr = e.target.result;
|
|
97
|
+
const wb = XLSX.read(bstr, { type: 'binary' });
|
|
98
|
+
const wsname = wb.SheetNames[0];
|
|
99
|
+
const wsname1 = wb.SheetNames[1];
|
|
100
|
+
const ws = wb.Sheets[wsname];
|
|
101
|
+
const tempData = wb.Sheets[wsname1];
|
|
102
|
+
this.categoryData = XLSX.utils.sheet_to_json(tempData, {
|
|
103
|
+
header: 1,
|
|
104
|
+
});
|
|
105
|
+
this.sheetData = XLSX.utils.sheet_to_json(ws, {
|
|
106
|
+
header: 1,
|
|
107
|
+
});
|
|
108
|
+
this.generateCategoryList(this.categoryData);
|
|
109
|
+
this.assessmentData = this.sheetData.filter((dataElement) => dataElement.length > 0);
|
|
110
|
+
this.isWrongFormat = false;
|
|
111
|
+
this.errorMessage = '';
|
|
112
|
+
console.log("Imp", this.checkFormat(this.assessmentData));
|
|
113
|
+
if (!this.checkFormat(this.assessmentData)) {
|
|
114
|
+
const closeBtn = document.getElementById("close-workflow-engine-btn");
|
|
115
|
+
if (closeBtn)
|
|
116
|
+
closeBtn.style.display = "none";
|
|
117
|
+
this.generateEditorPayload(this.assessmentData);
|
|
118
|
+
this.auth.previewPanel.next(true);
|
|
119
|
+
this.isUploaded = true;
|
|
120
|
+
setTimeout(() => { this.editorCont.triggerPreviewWithValidation(); }, 100);
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
reader.readAsBinaryString(target.files[0]);
|
|
124
|
+
}
|
|
125
|
+
generateCategoryList(categoryData) {
|
|
126
|
+
const catList = {};
|
|
127
|
+
if (categoryData) {
|
|
128
|
+
categoryData.forEach((ele) => {
|
|
129
|
+
catList[ele[0]] = ele[1];
|
|
130
|
+
});
|
|
131
|
+
this.categoryList = catList;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
categoryNametoId(categoryName) {
|
|
135
|
+
if (this.categoryList[categoryName]) {
|
|
136
|
+
return this.categoryList[categoryName];
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
return null;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
generateEditorPayload(data) {
|
|
143
|
+
//check format
|
|
144
|
+
const payload = {
|
|
145
|
+
metadata: {
|
|
146
|
+
assessment_name: "",
|
|
147
|
+
description: "",
|
|
148
|
+
assessment_type: "compliance",
|
|
149
|
+
category_arr: [],
|
|
150
|
+
approval_workflow_arr: {
|
|
151
|
+
"test": "test"
|
|
152
|
+
},
|
|
153
|
+
approval_required: true,
|
|
154
|
+
source_page: "compliance"
|
|
155
|
+
},
|
|
156
|
+
assessmentData: {
|
|
157
|
+
version: 2,
|
|
158
|
+
questionRandomize: false,
|
|
159
|
+
anonymousResponse: false,
|
|
160
|
+
hasWelcome: false,
|
|
161
|
+
hasWelcomeDescription: false,
|
|
162
|
+
welcomeText: '',
|
|
163
|
+
hasWelcomeImage: false,
|
|
164
|
+
welcomeImage: '',
|
|
165
|
+
welcomeDescription: '',
|
|
166
|
+
hasThanks: false,
|
|
167
|
+
hasThankyouImage: false,
|
|
168
|
+
thankyouText: '',
|
|
169
|
+
thankyouImage: '',
|
|
170
|
+
hasThankyouDescription: false,
|
|
171
|
+
thankyouDescription: '',
|
|
172
|
+
elements: [],
|
|
173
|
+
pageDetailsList: [],
|
|
174
|
+
customResponseSet: [],
|
|
175
|
+
settings: this.settings,
|
|
176
|
+
responseSegment: this.initializeEmptyResponseSegment()
|
|
177
|
+
}
|
|
178
|
+
};
|
|
179
|
+
this.convertedData = payload;
|
|
180
|
+
this.convertedData.metadata.assessment_name = this.assessmentData[2][1];
|
|
181
|
+
this.convertedData.metadata.description = this.assessmentData[3][1];
|
|
182
|
+
// this.convertedData.metadata.category_arr[0] = this.assessmentData[4][1];
|
|
183
|
+
this.convertedData.metadata.category_arr = [this.categoryNametoId(this.assessmentData[4][1])];
|
|
184
|
+
//TODO: create a function to convert from categories names to categories id.
|
|
185
|
+
//TODO: check the api for sub-flow like assessment-setting.
|
|
186
|
+
// this.convertedData.metadata.category_arr[0] = "61cc27c5b3e8642b333f3591";
|
|
187
|
+
this.generateQuestionsList(data.slice(6), payload.assessmentData.elements);
|
|
188
|
+
}
|
|
189
|
+
generateQuestionsList(questionsList, questionsArray) {
|
|
190
|
+
questionsArray = [];
|
|
191
|
+
if (questionsList === null || questionsList === void 0 ? void 0 : questionsList.length) {
|
|
192
|
+
questionsList.forEach((question, index) => {
|
|
193
|
+
console.log("question list", question);
|
|
194
|
+
questionsArray.push();
|
|
195
|
+
switch (question[0]) {
|
|
196
|
+
case 'Single Textbox':
|
|
197
|
+
questionsArray.push(this.generateSingleTextbox('single-textbox', question, index));
|
|
198
|
+
break;
|
|
199
|
+
case 'Multiple Choice':
|
|
200
|
+
questionsArray.push(this.generateMultipleChoice('multiple-choice', question, index));
|
|
201
|
+
break;
|
|
202
|
+
case 'Checkbox':
|
|
203
|
+
questionsArray.push(this.generateMultipleChoice('checkbox', question, index));
|
|
204
|
+
break;
|
|
205
|
+
case 'Dropdown':
|
|
206
|
+
questionsArray.push(this.generateMultipleChoice('dropdown', question, index));
|
|
207
|
+
break;
|
|
208
|
+
case 'Date & Time':
|
|
209
|
+
questionsArray.push(this.generateDateTime('date-time', question, index));
|
|
210
|
+
break;
|
|
211
|
+
case 'File Upload':
|
|
212
|
+
questionsArray.push(this.generateFileUpload(question, index));
|
|
213
|
+
break;
|
|
214
|
+
default:
|
|
215
|
+
// No need to do anything for default
|
|
216
|
+
}
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
console.log("questions", questionsArray);
|
|
220
|
+
this.convertedData.assessmentData.elements = questionsArray;
|
|
221
|
+
}
|
|
222
|
+
generateSingleTextbox(type, question, index) {
|
|
223
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4;
|
|
224
|
+
return {
|
|
225
|
+
type: 'single-textbox', name: `Question_${index}`, page: 1,
|
|
226
|
+
hasValidation: false, validationType: '',
|
|
227
|
+
isRequired: question[(_a = this.colMap) === null || _a === void 0 ? void 0 : _a.required] === 'Yes' ? true : false,
|
|
228
|
+
hasCharacterLength: false, minCharacterLength: 0,
|
|
229
|
+
maxCharacterLength: 100,
|
|
230
|
+
title: (_e = (_d = (_c = question[(_b = this.colMap) === null || _b === void 0 ? void 0 : _b.title]) === null || _c === void 0 ? void 0 : _c.toString()) === null || _d === void 0 ? void 0 : _d.trim()) !== null && _e !== void 0 ? _e : '',
|
|
231
|
+
hasDescription: ((_j = (_h = (_g = question[(_f = this.colMap) === null || _f === void 0 ? void 0 : _f.description]) === null || _g === void 0 ? void 0 : _g.toString()) === null || _h === void 0 ? void 0 : _h.trim()) === null || _j === void 0 ? void 0 : _j.length) ? true : false, description: (_o = (_m = (_l = question[(_k = this.colMap) === null || _k === void 0 ? void 0 : _k.description]) === null || _l === void 0 ? void 0 : _l.toString()) === null || _m === void 0 ? void 0 : _m.trim()) !== null && _o !== void 0 ? _o : '',
|
|
232
|
+
hasComments: ((_s = (_r = (_q = question[(_p = this.colMap) === null || _p === void 0 ? void 0 : _p.usercomment]) === null || _q === void 0 ? void 0 : _q.toString()) === null || _r === void 0 ? void 0 : _r.trim()) === null || _s === void 0 ? void 0 : _s.length) ? true : false, comments: (_v = (_u = question[(_t = this.colMap) === null || _t === void 0 ? void 0 : _t.comment]) === null || _u === void 0 ? void 0 : _u.toString()) === null || _v === void 0 ? void 0 : _v.trim(),
|
|
233
|
+
randomize: question[(_w = this.colMap) === null || _w === void 0 ? void 0 : _w.randomize] === 'Yes' ? true : false, hasOther: question[(_x = this.colMap) === null || _x === void 0 ? void 0 : _x.other] === 'Yes' ? true : false,
|
|
234
|
+
otherValue: 'Other',
|
|
235
|
+
alignment: question[(_y = this.colMap) === null || _y === void 0 ? void 0 : _y.alignment] === 'Yes' ? true : false,
|
|
236
|
+
reverse: false,
|
|
237
|
+
isRespondentAttachment: question[(_z = this.colMap) === null || _z === void 0 ? void 0 : _z.userattachment] === 'Yes' ? true : false,
|
|
238
|
+
userAttachedFiles: [],
|
|
239
|
+
isRespondentComment: question[(_0 = this.colMap) === null || _0 === void 0 ? void 0 : _0.usercomment] === 'Yes' ? true : false,
|
|
240
|
+
visibilityLogic: [],
|
|
241
|
+
otherConfig: { color: "#000000", isFailed: false, score: (_2 = question[(_1 = this.colMap) === null || _1 === void 0 ? void 0 : _1.score]) !== null && _2 !== void 0 ? _2 : 1 },
|
|
242
|
+
choices: [{
|
|
243
|
+
title: '',
|
|
244
|
+
value: 1,
|
|
245
|
+
isSelected: false,
|
|
246
|
+
required: 0,
|
|
247
|
+
hasHelpingLabel: false,
|
|
248
|
+
helpingLabel: "",
|
|
249
|
+
isFailed: false,
|
|
250
|
+
score: (_4 = question[(_3 = this.colMap) === null || _3 === void 0 ? void 0 : _3.score]) !== null && _4 !== void 0 ? _4 : 1,
|
|
251
|
+
color: "#000000"
|
|
252
|
+
}]
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
generateMultipleChoice(type, question, index) {
|
|
256
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;
|
|
257
|
+
console.log("Yo Man", question);
|
|
258
|
+
return {
|
|
259
|
+
type: type, name: `Question_${index}`, page: 1,
|
|
260
|
+
hasValidation: false, validationType: '',
|
|
261
|
+
isRequired: question[(_a = this.colMap) === null || _a === void 0 ? void 0 : _a.required] === 'Yes' ? true : false,
|
|
262
|
+
hasCharacterLength: false, minCharacterLength: 0, maxCharacterLength: 100,
|
|
263
|
+
title: (_e = (_d = (_c = question[(_b = this.colMap) === null || _b === void 0 ? void 0 : _b.title]) === null || _c === void 0 ? void 0 : _c.toString()) === null || _d === void 0 ? void 0 : _d.trim()) !== null && _e !== void 0 ? _e : '',
|
|
264
|
+
hasDescription: ((_j = (_h = (_g = question[(_f = this.colMap) === null || _f === void 0 ? void 0 : _f.description]) === null || _g === void 0 ? void 0 : _g.toString()) === null || _h === void 0 ? void 0 : _h.trim()) === null || _j === void 0 ? void 0 : _j.length) ? true : false, description: (_m = (_l = question[(_k = this.colMap) === null || _k === void 0 ? void 0 : _k.description]) === null || _l === void 0 ? void 0 : _l.toString().trim()) !== null && _m !== void 0 ? _m : '',
|
|
265
|
+
hasComments: ((_r = (_q = (_p = question[(_o = this.colMap) === null || _o === void 0 ? void 0 : _o.comment]) === null || _p === void 0 ? void 0 : _p.toString()) === null || _q === void 0 ? void 0 : _q.trim()) === null || _r === void 0 ? void 0 : _r.length) ? true : false, comments: (_t = question[(_s = this.colMap) === null || _s === void 0 ? void 0 : _s.comment]) === null || _t === void 0 ? void 0 : _t.toString().trim(),
|
|
266
|
+
randomize: question[(_u = this.colMap) === null || _u === void 0 ? void 0 : _u.randomize] === 'Yes' ? true : false, hasOther: question[(_v = this.colMap) === null || _v === void 0 ? void 0 : _v.other] === 'Yes' ? true : false,
|
|
267
|
+
otherValue: 'Other',
|
|
268
|
+
alignment: question[(_w = this.colMap) === null || _w === void 0 ? void 0 : _w.alignment] === 'Yes' ? true : false,
|
|
269
|
+
reverse: false,
|
|
270
|
+
isRespondentAttachment: question[(_x = this.colMap) === null || _x === void 0 ? void 0 : _x.userattachment] === 'Yes' ? true : false,
|
|
271
|
+
userAttachedFiles: [],
|
|
272
|
+
visibilityLogic: [],
|
|
273
|
+
isRespondentComment: question[(_y = this.colMap) === null || _y === void 0 ? void 0 : _y.usercomment] === 'Yes' ? true : false,
|
|
274
|
+
otherConfig: { color: "#000000", isFailed: false, score: (_0 = question[(_z = this.colMap) === null || _z === void 0 ? void 0 : _z.score]) !== null && _0 !== void 0 ? _0 : 1 },
|
|
275
|
+
choices: this.generateChoices(question)
|
|
276
|
+
};
|
|
277
|
+
}
|
|
278
|
+
generateDateTime(type, question, index) {
|
|
279
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8;
|
|
280
|
+
return {
|
|
281
|
+
type: type, name: `Question_${index}`, page: 1,
|
|
282
|
+
hasValidation: false, validationType: '',
|
|
283
|
+
isRequired: question[(_a = this.colMap) === null || _a === void 0 ? void 0 : _a.required] === 'Yes' ? true : false,
|
|
284
|
+
hasCharacterLength: false, minCharacterLength: 0, maxCharacterLength: 100,
|
|
285
|
+
title: (_e = (_d = (_c = question[(_b = this.colMap) === null || _b === void 0 ? void 0 : _b.title]) === null || _c === void 0 ? void 0 : _c.toString()) === null || _d === void 0 ? void 0 : _d.trim()) !== null && _e !== void 0 ? _e : '',
|
|
286
|
+
hasDescription: ((_j = (_h = (_g = question[(_f = this.colMap) === null || _f === void 0 ? void 0 : _f.description]) === null || _g === void 0 ? void 0 : _g.toString()) === null || _h === void 0 ? void 0 : _h.trim()) === null || _j === void 0 ? void 0 : _j.length) ? true : false, description: (_o = (_m = (_l = question[(_k = this.colMap) === null || _k === void 0 ? void 0 : _k.description]) === null || _l === void 0 ? void 0 : _l.toString()) === null || _m === void 0 ? void 0 : _m.trim()) !== null && _o !== void 0 ? _o : '',
|
|
287
|
+
hasComments: ((_s = (_r = (_q = question[(_p = this.colMap) === null || _p === void 0 ? void 0 : _p.usercomment]) === null || _q === void 0 ? void 0 : _q.toString()) === null || _r === void 0 ? void 0 : _r.trim()) === null || _s === void 0 ? void 0 : _s.length) ? true : false, comments: (_v = (_u = question[(_t = this.colMap) === null || _t === void 0 ? void 0 : _t.comment]) === null || _u === void 0 ? void 0 : _u.toString()) === null || _v === void 0 ? void 0 : _v.trim(),
|
|
288
|
+
randomize: question[(_w = this.colMap) === null || _w === void 0 ? void 0 : _w.randomize] === 'Yes' ? true : false, hasOther: question[(_x = this.colMap) === null || _x === void 0 ? void 0 : _x.other] === 'Yes' ? true : false,
|
|
289
|
+
otherValue: 'Other',
|
|
290
|
+
alignment: question[(_y = this.colMap) === null || _y === void 0 ? void 0 : _y.alignment] === 'Yes' ? true : false,
|
|
291
|
+
reverse: false,
|
|
292
|
+
isRespondentAttachment: question[(_z = this.colMap) === null || _z === void 0 ? void 0 : _z.userattachment] === 'Yes' ? true : false,
|
|
293
|
+
userAttachedFiles: [],
|
|
294
|
+
visibilityLogic: [],
|
|
295
|
+
isRespondentComment: question[(_0 = this.colMap) === null || _0 === void 0 ? void 0 : _0.usercomment] === 'Yes' ? true : false,
|
|
296
|
+
otherConfig: { color: "#000000", isFailed: false, score: (_2 = question[(_1 = this.colMap) === null || _1 === void 0 ? void 0 : _1.score]) !== null && _2 !== void 0 ? _2 : 1 },
|
|
297
|
+
choices: [{
|
|
298
|
+
title: '',
|
|
299
|
+
value: 1,
|
|
300
|
+
isSelected: false,
|
|
301
|
+
required: 0,
|
|
302
|
+
hasHelpingLabel: false,
|
|
303
|
+
helpingLabel: "",
|
|
304
|
+
isFailed: false,
|
|
305
|
+
score: (_4 = question[(_3 = this.colMap) === null || _3 === void 0 ? void 0 : _3.score]) !== null && _4 !== void 0 ? _4 : 1,
|
|
306
|
+
color: "#000000"
|
|
307
|
+
}],
|
|
308
|
+
hasDate: true,
|
|
309
|
+
hasTime: false,
|
|
310
|
+
dateFormat: "DD/MM/YYYY",
|
|
311
|
+
timeFormat: 24,
|
|
312
|
+
date: {
|
|
313
|
+
title: (_6 = question[(_5 = this.colMap) === null || _5 === void 0 ? void 0 : _5.placeholder]) !== null && _6 !== void 0 ? _6 : 'Select Date',
|
|
314
|
+
value: ""
|
|
315
|
+
},
|
|
316
|
+
time: {
|
|
317
|
+
title: (_8 = question[(_7 = this.colMap) === null || _7 === void 0 ? void 0 : _7.placeholder]) !== null && _8 !== void 0 ? _8 : 'Select Time',
|
|
318
|
+
value: ""
|
|
319
|
+
},
|
|
320
|
+
};
|
|
321
|
+
}
|
|
322
|
+
generateFileUpload(question, index) {
|
|
323
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4;
|
|
324
|
+
return {
|
|
325
|
+
type: 'file-upload', name: `Question_${index}`, page: 1,
|
|
326
|
+
hasValidation: false, validationType: '',
|
|
327
|
+
isRequired: question[(_a = this.colMap) === null || _a === void 0 ? void 0 : _a.required] === 'Yes' ? true : false,
|
|
328
|
+
hasCharacterLength: false, minCharacterLength: 0,
|
|
329
|
+
maxCharacterLength: 100,
|
|
330
|
+
title: (_e = (_d = (_c = question[(_b = this.colMap) === null || _b === void 0 ? void 0 : _b.title]) === null || _c === void 0 ? void 0 : _c.toString()) === null || _d === void 0 ? void 0 : _d.trim()) !== null && _e !== void 0 ? _e : '',
|
|
331
|
+
hasDescription: ((_j = (_h = (_g = question[(_f = this.colMap) === null || _f === void 0 ? void 0 : _f.description]) === null || _g === void 0 ? void 0 : _g.toString()) === null || _h === void 0 ? void 0 : _h.trim()) === null || _j === void 0 ? void 0 : _j.length) ? true : false, description: (_o = (_m = (_l = question[(_k = this.colMap) === null || _k === void 0 ? void 0 : _k.description]) === null || _l === void 0 ? void 0 : _l.toString()) === null || _m === void 0 ? void 0 : _m.trim()) !== null && _o !== void 0 ? _o : '',
|
|
332
|
+
hasComments: ((_s = (_r = (_q = question[(_p = this.colMap) === null || _p === void 0 ? void 0 : _p.usercomment]) === null || _q === void 0 ? void 0 : _q.toString()) === null || _r === void 0 ? void 0 : _r.trim()) === null || _s === void 0 ? void 0 : _s.length) ? true : false, comments: (_v = (_u = question[(_t = this.colMap) === null || _t === void 0 ? void 0 : _t.comment]) === null || _u === void 0 ? void 0 : _u.toString()) === null || _v === void 0 ? void 0 : _v.trim(),
|
|
333
|
+
randomize: question[(_w = this.colMap) === null || _w === void 0 ? void 0 : _w.randomize] === 'Yes' ? true : false, hasOther: question[(_x = this.colMap) === null || _x === void 0 ? void 0 : _x.other] === 'Yes' ? true : false,
|
|
334
|
+
otherValue: 'Other',
|
|
335
|
+
alignment: question[(_y = this.colMap) === null || _y === void 0 ? void 0 : _y.alignment] === 'Yes' ? true : false,
|
|
336
|
+
reverse: false,
|
|
337
|
+
isRespondentAttachment: question[(_z = this.colMap) === null || _z === void 0 ? void 0 : _z.userattachment] === 'Yes' ? true : false,
|
|
338
|
+
userAttachedFiles: [],
|
|
339
|
+
visibilityLogic: [],
|
|
340
|
+
isRespondentComment: question[(_0 = this.colMap) === null || _0 === void 0 ? void 0 : _0.usercomment] === 'Yes' ? true : false,
|
|
341
|
+
otherConfig: { color: "#000000", isFailed: false, score: (_2 = question[(_1 = this.colMap) === null || _1 === void 0 ? void 0 : _1.score]) !== null && _2 !== void 0 ? _2 : 1 },
|
|
342
|
+
choices: [{
|
|
343
|
+
title: '',
|
|
344
|
+
value: 1,
|
|
345
|
+
isSelected: false,
|
|
346
|
+
required: 0,
|
|
347
|
+
hasHelpingLabel: false,
|
|
348
|
+
helpingLabel: "",
|
|
349
|
+
isFailed: false,
|
|
350
|
+
score: (_4 = question[(_3 = this.colMap) === null || _3 === void 0 ? void 0 : _3.score]) !== null && _4 !== void 0 ? _4 : 1,
|
|
351
|
+
color: "#000000"
|
|
352
|
+
}],
|
|
353
|
+
allowedFileTypes: {
|
|
354
|
+
pdf: true,
|
|
355
|
+
doc: true,
|
|
356
|
+
png: true,
|
|
357
|
+
jpg: true,
|
|
358
|
+
gif: true
|
|
359
|
+
},
|
|
360
|
+
};
|
|
361
|
+
}
|
|
362
|
+
generateChoices(question) {
|
|
363
|
+
var _a, _b, _c, _d, _e, _f;
|
|
364
|
+
const options = [question[(_a = this.colMap) === null || _a === void 0 ? void 0 : _a.opt1], question[(_b = this.colMap) === null || _b === void 0 ? void 0 : _b.opt2], question[(_c = this.colMap) === null || _c === void 0 ? void 0 : _c.opt3], question[(_d = this.colMap) === null || _d === void 0 ? void 0 : _d.opt4], question[(_e = this.colMap) === null || _e === void 0 ? void 0 : _e.opt5], question[(_f = this.colMap) === null || _f === void 0 ? void 0 : _f.opt6]].filter((ele) => ele);
|
|
365
|
+
options.forEach((ele) => {
|
|
366
|
+
var _a;
|
|
367
|
+
if (ele) {
|
|
368
|
+
(_a = ele.toString()) === null || _a === void 0 ? void 0 : _a.trim();
|
|
369
|
+
}
|
|
370
|
+
});
|
|
371
|
+
if ((options === null || options === void 0 ? void 0 : options.length) === 0) {
|
|
372
|
+
options.push('');
|
|
373
|
+
}
|
|
374
|
+
const optionMap = {
|
|
375
|
+
'Option 1': 3,
|
|
376
|
+
'Option 2': 4,
|
|
377
|
+
'Option 3': 5,
|
|
378
|
+
'Option 4': 6,
|
|
379
|
+
'Option 5': 7,
|
|
380
|
+
'Option 6': 8,
|
|
381
|
+
};
|
|
382
|
+
options.forEach((choice, index) => {
|
|
383
|
+
var _a, _b, _c, _d, _e;
|
|
384
|
+
options[index] = {
|
|
385
|
+
title: (choice && typeof (choice) == 'string') ? choice : (_a = choice.toString()) !== null && _a !== void 0 ? _a : '',
|
|
386
|
+
value: 1,
|
|
387
|
+
isSelected: false,
|
|
388
|
+
required: 0,
|
|
389
|
+
hasHelpingLabel: false,
|
|
390
|
+
helpingLabel: "",
|
|
391
|
+
isFailed: (((_b = choice === null || choice === void 0 ? void 0 : choice.toString()) === null || _b === void 0 ? void 0 : _b.trim()) == question[optionMap[question[(_c = this.colMap) === null || _c === void 0 ? void 0 : _c.failed]]]) ? true : false,
|
|
392
|
+
score: (_e = question[(_d = this.colMap) === null || _d === void 0 ? void 0 : _d.score]) !== null && _e !== void 0 ? _e : 1,
|
|
393
|
+
color: "#000000"
|
|
394
|
+
};
|
|
395
|
+
});
|
|
396
|
+
return options;
|
|
397
|
+
}
|
|
398
|
+
checkFormat(assessmentData) {
|
|
399
|
+
var _a;
|
|
400
|
+
//Completly blank excel sheet
|
|
401
|
+
if (assessmentData.length === 0) {
|
|
402
|
+
this.errorMessage = 'You have uploaded the wrong template. Please download the template again to proceed.';
|
|
403
|
+
this.isWrongFormat = true;
|
|
404
|
+
return true;
|
|
405
|
+
}
|
|
406
|
+
//Invalid Tempalte
|
|
407
|
+
try {
|
|
408
|
+
if (assessmentData[2][0] !== "Assessment Name\*"
|
|
409
|
+
|| assessmentData[3][0] !== "Description"
|
|
410
|
+
|| assessmentData[4][0] !== "Assessment Category\*"
|
|
411
|
+
|| assessmentData[5][0] !== "Question Type\*") {
|
|
412
|
+
this.errorMessage = 'You have uploaded the wrong template. Please download the template again to proceed.';
|
|
413
|
+
this.isWrongFormat = true;
|
|
414
|
+
return true;
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
catch (_b) {
|
|
418
|
+
this.errorMessage = 'You have uploaded the wrong template. Please download the template again to proceed.';
|
|
419
|
+
this.isWrongFormat = true;
|
|
420
|
+
return true;
|
|
421
|
+
}
|
|
422
|
+
//Check Assessment name
|
|
423
|
+
try {
|
|
424
|
+
if (!assessmentData[2][1] || assessmentData[2][1] === "" || assessmentData[2][1] === undefined) {
|
|
425
|
+
this.errorMessage = 'Enter a name for this Assessment.';
|
|
426
|
+
this.isWrongFormat = true;
|
|
427
|
+
return true;
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
catch (_c) {
|
|
431
|
+
this.errorMessage = 'Enter a name for this Assessment.';
|
|
432
|
+
this.isWrongFormat = true;
|
|
433
|
+
return true;
|
|
434
|
+
}
|
|
435
|
+
//category not selected
|
|
436
|
+
try {
|
|
437
|
+
if (!assessmentData[4][1] || assessmentData[4][1] === "" || assessmentData[4][1] === undefined) {
|
|
438
|
+
this.errorMessage = 'Select the Assessment Category.';
|
|
439
|
+
this.isWrongFormat = true;
|
|
440
|
+
return true;
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
catch (_d) {
|
|
444
|
+
this.errorMessage = 'Select the Assessment Category.';
|
|
445
|
+
this.isWrongFormat = true;
|
|
446
|
+
return true;
|
|
447
|
+
}
|
|
448
|
+
//Does not contains any questions
|
|
449
|
+
try {
|
|
450
|
+
if (((_a = assessmentData.slice(7)) === null || _a === void 0 ? void 0 : _a.length) === 0) {
|
|
451
|
+
this.errorMessage = 'You have uploaded a blank template. Please add questions to this template and upload it again.';
|
|
452
|
+
this.isWrongFormat = true;
|
|
453
|
+
return true;
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
catch (_e) {
|
|
457
|
+
this.errorMessage = 'You have uploaded a blank template. Please add questions to this template and upload it again.';
|
|
458
|
+
this.isWrongFormat = true;
|
|
459
|
+
return true;
|
|
460
|
+
}
|
|
461
|
+
//handle type of question and options count
|
|
462
|
+
for (let i = 7; i <= assessmentData.length - 1; i++) {
|
|
463
|
+
if (assessmentData[i][0] !== 'Multiple Choice' &&
|
|
464
|
+
assessmentData[i][0] !== 'Checkbox' &&
|
|
465
|
+
assessmentData[i][0] !== 'Dropdown' &&
|
|
466
|
+
assessmentData[i][0] !== 'Single Textbox' &&
|
|
467
|
+
assessmentData[i][0] !== 'Date & Time' &&
|
|
468
|
+
assessmentData[i][0] !== 'File Upload') {
|
|
469
|
+
this.errorMessage = 'You have uploaded the wrong template. Please download the template again to proceed.';
|
|
470
|
+
this.isWrongFormat = true;
|
|
471
|
+
return true;
|
|
472
|
+
}
|
|
473
|
+
// if (assessmentData[i][1] === '') {
|
|
474
|
+
// this.errorMessage = 'You have uploaded the wrong template. Please download the template again to proceed.';
|
|
475
|
+
// this.isWrongFormat = true;
|
|
476
|
+
// return true;
|
|
477
|
+
// }
|
|
478
|
+
}
|
|
479
|
+
this.errorMessage = '';
|
|
480
|
+
return false;
|
|
481
|
+
}
|
|
482
|
+
initializeEmptyResponseSegment() {
|
|
483
|
+
return {
|
|
484
|
+
title: '',
|
|
485
|
+
description: '',
|
|
486
|
+
maxScore: 10,
|
|
487
|
+
segments: []
|
|
488
|
+
};
|
|
489
|
+
}
|
|
490
|
+
postAssessment(data) {
|
|
491
|
+
this.isShowLoader = true;
|
|
492
|
+
this.assessmentService.createAssessment(this.convertedData.metadata).subscribe({
|
|
493
|
+
next: (response) => {
|
|
494
|
+
this.postAssessmentDetails(response._id, data.mode, data.assessmentDetails);
|
|
495
|
+
},
|
|
496
|
+
error: (err) => {
|
|
497
|
+
this.isShowLoader = false;
|
|
498
|
+
}
|
|
499
|
+
});
|
|
500
|
+
}
|
|
501
|
+
postAssessmentDetails(id, mode, assessmentDetails) {
|
|
502
|
+
this.isUploaded = false;
|
|
503
|
+
this.auth.previewPanel.next(false);
|
|
504
|
+
console.log('this.isUploaded', this.isUploaded);
|
|
505
|
+
const payload = {
|
|
506
|
+
question: assessmentDetails,
|
|
507
|
+
action: "questions_save",
|
|
508
|
+
state: mode
|
|
509
|
+
};
|
|
510
|
+
this.assessmentService.saveAssessmentDetails(id, payload).subscribe({
|
|
511
|
+
next: (response) => {
|
|
512
|
+
this.assessmentData = {};
|
|
513
|
+
this.isShowLoader = false;
|
|
514
|
+
this.showSmiley = true;
|
|
515
|
+
},
|
|
516
|
+
error: (err) => {
|
|
517
|
+
this.isShowLoader = false;
|
|
518
|
+
}
|
|
519
|
+
});
|
|
520
|
+
}
|
|
521
|
+
smileyAction(id) {
|
|
522
|
+
console.log(id);
|
|
523
|
+
if (id === smileyActions.VIEW_ASSESSMENTS) {
|
|
524
|
+
this.disconnectRefresh.emit(false);
|
|
525
|
+
// TODO: Navigate to '/manage-assessment'
|
|
526
|
+
let url;
|
|
527
|
+
if (window.location.host.startsWith('localhost')) {
|
|
528
|
+
url = 'http://' + window.location.host + '/manage-assessment';
|
|
529
|
+
}
|
|
530
|
+
else {
|
|
531
|
+
url = 'https://' + window.location.host + '/assessment/manage-assessment';
|
|
532
|
+
}
|
|
533
|
+
console.log(url);
|
|
534
|
+
window.location.href = url;
|
|
535
|
+
}
|
|
536
|
+
else {
|
|
537
|
+
this.showSmiley = false;
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
ImportAnAssessmentComponent.decorators = [
|
|
542
|
+
{ type: Component, args: [{
|
|
543
|
+
selector: 'app-import-an-assessment',
|
|
544
|
+
template: "<div class=\"import-an-assessment\" [attr.id]=\"'scrollReference'\">\r\n <!-- main container starts here -->\r\n <div class=\"import-an-assessment-body\">\r\n <div class=\"import-an-assessment-container\">\r\n <div class=\"image\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/spreadsheet-multiple-category.svg\"\r\n alt=\"\" />\r\n </div>\r\n\r\n <h4>You can import an assessment in just two easy steps:</h4>\r\n <ul class=\"list\">\r\n <li>Download the template and fill in the details.</li>\r\n <li>Upload the .xlsx file and you\u2019re good to go!</li>\r\n </ul>\r\n\r\n <button class=\"download\" *ngIf=\"downloadStatus === 'NOT_DOWNLOADING'\" (click)=\"downloadTemplate()\"\r\n type=\"button\"><i class=\"icons\"></i> Download Template</button>\r\n <div class=\"bulk-btn-progress\" *ngIf=\"downloadStatus === 'DOWNLOADING'\">\r\n Download in Progress\r\n <app-line-loader [loaderHeight]=\"'2'\"></app-line-loader>\r\n </div>\r\n <ng-container *ngIf=\"downloadStatus === 'DOWNLOADED'\">\r\n <div class=\"bulk-btn-progress\"><i class=\"icons\"></i>Download Complete</div>\r\n <div class=\"bulk-btn-again\">\r\n Is the file not downloaded?\r\n <button (click)=\"downloadTemplate()\">Retry Download</button>\r\n </div>\r\n </ng-container>\r\n <p class=\"error-message\" *ngIf=\"isWrongFormat\">{{errorMessage}}</p>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<app-loader-inline *ngIf=\"isShowLoader\"></app-loader-inline>\r\n\r\n<input type=\"file\" [(ngModel)]=\"fileValue\" id=\"iaa-file-input\" accept=\".xlsx\" class=\"hidden-input\" onclick=\"this.value = null\"\r\n (change)=\"uploadFile($event)\" />\r\n\r\n<app-smiley-dialog-inline *ngIf=\"showSmiley\" [message]=\"smileyMessage\" [actionButtons]=\"actionButtons\"\r\n (action)=\"smileyAction($event)\" (closeSmiley)=\"closeSmiley($event)\"></app-smiley-dialog-inline>\r\n\r\n<div class=\"import\" *ngIf=\"isUploaded\">\r\n <app-create-assessment-container #editor [openPortal]=\"'ASSESSMENT_IMPORT'\" (postAssessment)=\"postAssessment($event)\" (setIsUploaded)=\"setIsUploaded($event)\"\r\n [assessmentJSON]=\"convertedData\">\r\n </app-create-assessment-container>\r\n</div>\r\n",
|
|
545
|
+
styles: ["@import url(\"https://cdn.v-comply.com/design-system/css/icons/icons.css\");::ng-deep .import-an-assessment{background:#fff;position:relative;z-index:1}@media only screen and (min-width:1920px){::ng-deep .import-an-assessment{height:calc(100vh - 200px);display:flex;align-items:center}}::ng-deep .import-an-assessment-body{padding:0;display:block}::ng-deep .import-an-assessment-container{display:block;text-align:center}::ng-deep .import-an-assessment-container .image{width:300px;margin:0 auto 24px}::ng-deep .import-an-assessment-container h4{font-size:20px;line-height:30px;margin:0 0 20px;font-weight:500}::ng-deep .import-an-assessment-container ul.list{padding:0;margin:0 0 40px;display:block;counter-reset:my-awesome-counter}::ng-deep .import-an-assessment-container ul.list li{text-align:left;color:#747576;font-size:15px;line-height:38px;font-weight:400;list-style:none;counter-increment:my-awesome-counter;background:#fbfbfb;border:1px solid #f1f1f1;border-radius:4px;padding:0 12px}::ng-deep .import-an-assessment-container ul.list li:before{content:counter(my-awesome-counter) \". \"}::ng-deep .import-an-assessment-container ul.list li+li{margin-top:4px}::ng-deep .import-an-assessment-container button.download{background:#fff;height:36px;border-radius:2px;cursor:pointer;border:1px solid #1e5dd3;color:#1e5dd3;text-transform:uppercase;padding:0 30px;font-weight:500;font-size:11px}::ng-deep .import-an-assessment-container .bulk-btn-progress{background:#f8f8f8;height:36px;border-radius:2px;cursor:pointer;border:1px solid #f8f8f8;color:#747576;text-transform:uppercase;padding:0 30px;font-weight:500;font-size:11px;position:relative;display:inline-block;line-height:34px}::ng-deep .import-an-assessment-container .bulk-btn-progress i{color:#34aa44;font-size:14px;float:left;position:relative;margin:0 10px 0 0;font-weight:400}::ng-deep .import-an-assessment-container .bulk-btn-progress span.progress{height:3px;position:absolute;bottom:0;left:0;width:100%;background:#1e5dd3}::ng-deep .import-an-assessment-container .bulk-btn-again{color:#161b2f;font-size:11px;margin-top:10px}::ng-deep .import-an-assessment-container .bulk-btn-again button{background:transparent;border:none;padding:0;font-size:11px;color:#1e5dd3;font-weight:500;text-decoration:underline;cursor:pointer;text-transform:uppercase;display:inline-block}.hidden-input{opacity:0}.import{position:fixed;top:0;right:30px;bottom:0;left:0;z-index:9;width:calc(100vw - 30px)}", "@import url(\"https://cdn.v-comply.com/design-system/css/icons/icons.css\");::-webkit-scrollbar-track{background-color:#f1f1f1;position:absolute}::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}button{font-family:Poppins,sans-serif}::ng-deep .vx-form-group{display:block;position:relative;margin-bottom:20px}::ng-deep .vx-form-group:after{content:\"\";display:block;clear:both}::ng-deep .vx-form-group .select{position:relative}::ng-deep .vx-form-group .select:after{border-left-color:#707070;border-bottom:1px solid #707070;border-right:1px solid #707070;border-top-color:#707070;content:\"\";display:inline-block;right:15px;position:absolute;top:calc(50% - 4px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .vx-form-group .select input{cursor:pointer;padding-right:30px!important}::ng-deep .vx-form-group .select .custom-input{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;outline:none;padding:3px 12px;line-height:16px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;cursor:pointer}::ng-deep .vx-form-group .select .custom-input:empty:not(:focus):before{content:attr(aria-placeholder);line-height:16px;font-size:13px;width:94%;display:block;pointer-events:none;opacity:.8}::ng-deep .vx-form-group .select .custom-input:hover{border-color:#1e5dd3;box-shadow:0 0 5px rgba(30,93,211,.27)}::ng-deep .vx-form-group .select .custom-input.frequency-custom-input{padding-right:116px}::ng-deep .vx-form-group .select+app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .select+app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:5px;text-transform:uppercase}::ng-deep .vx-form-group .select+app-cs-radio{margin-top:8px!important}::ng-deep .vx-form-group .select~app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .select.button-sec:after{display:none}::ng-deep .vx-form-group .select.button-sec button{background:transparent;border:none;display:inline-flex;float:right;color:#1e5dd3;text-transform:uppercase;font-weight:600;cursor:pointer;font-size:11px;position:absolute;top:12px;right:8px;padding:0;margin:0}::ng-deep .vx-form-group .select+.vx-control-panel{margin-top:8px}::ng-deep .vx-form-group .select+.selected{margin-top:8px}::ng-deep .vx-form-group .select.select{margin-top:8px}::ng-deep .vx-form-group .upload-format{border:1px solid #dbdbdb;border-radius:4px;padding:8px 12px;display:block}::ng-deep .vx-form-group .upload-format span.text{line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;display:block;margin-bottom:6px}::ng-deep .vx-form-group .upload-format .radio-group{display:flex}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio{display:inline-block}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;margin-left:8px}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio+app-cs-radio{margin-left:12px}::ng-deep .vx-form-group .upload-format~.upload-format{margin-top:4px}::ng-deep .vx-form-group .form-tab{display:flex;justify-content:flex-start}::ng-deep .vx-form-group .form-tab button{background:transparent;color:#161b2f;font-size:11px;line-height:16px;text-transform:uppercase;cursor:pointer;padding:8px 8px 8px 0;border:none;outline:none;font-weight:500}::ng-deep .vx-form-group .form-tab button:disabled{opacity:.5;pointer-events:none}::ng-deep .vx-form-group .form-tab button+button{padding:8px}::ng-deep .vx-form-group .form-tab button.active{color:#1e5dd3}::ng-deep .vx-form-group .tab-group{border:1px solid #dbdbdb;border-radius:4px;padding:0;display:block;position:relative}::ng-deep .vx-form-group .tab-group .upload-file{padding:16px 24px;display:flex;align-items:center}::ng-deep .vx-form-group .tab-group .upload-file .image{width:80px;margin-right:20px}::ng-deep .vx-form-group .tab-group .upload-file .browse{display:flex;align-items:center;justify-content:center;width:calc(100% - 100px);text-align:center}::ng-deep .vx-form-group .tab-group .upload-file .browse span{display:inline-block;font-size:12px;color:#747576;line-height:16px;padding:0 4px}::ng-deep .vx-form-group .tab-group .upload-file .browse .label{font-size:11px;color:#1e5dd3;line-height:16px;font-weight:600;text-transform:uppercase;margin:0;padding:0}::ng-deep .vx-form-group .tab-group .upload-file .browse .label input{opacity:0;position:absolute;top:0;margin:0;padding:0;right:0;bottom:0;left:0;cursor:pointer;width:100%}::ng-deep .vx-form-group .tab-group.active{border-color:#1e5dd3}::ng-deep .vx-form-group .tab-group.uploaded{margin-top:4px}::ng-deep .vx-form-group .tab-group.uploaded .upload-file{padding:12px \u200B24px}::ng-deep .vx-form-group .tab-group.uploaded .upload-file .image{display:none}::ng-deep .vx-form-group .tab-group.uploaded .upload-file .browse{width:100%}::ng-deep .vx-form-group .tab-group+label.vx-form-group{margin-top:8px;margin-bottom:4px}::ng-deep .vx-form-group .file-list{background:#fbfbfb;border:1px solid #f1f1f1;border-radius:4px;padding:12px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;position:relative}::ng-deep .vx-form-group .file-list span.file-name{color:#747576;line-height:16px;font-size:11px;font-weight:400;cursor:pointer;max-width:calc(100% - 20px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .vx-form-group .file-list .button-group{display:flex}::ng-deep .vx-form-group .file-list button{font-size:12px;color:#eb2424;cursor:pointer;display:flex;padding:0;border:none;outline:none;background:transparent}::ng-deep .vx-form-group .file-list button.edit{color:#1e5dd3}::ng-deep .vx-form-group .file-list button+button{margin-left:16px}::ng-deep .vx-form-group .file-list+.file-list{margin-top:4px}::ng-deep .vx-form-group .file-list .file-container{display:flex;justify-content:space-between;width:100%}::ng-deep .vx-form-group .file-list.policy{background:#fff}::ng-deep .vx-form-group .file-list cs-select{position:relative;margin-top:8px;width:100%}::ng-deep .vx-form-group .file-list cs-select .selection-wrap .input-group input.value{height:32px!important;font-size:11px!important}::ng-deep .vx-form-group .file-list cs-select .selection-wrap .input-group i{right:12px!important;top:12px!important}::ng-deep .vx-form-group .file-list app-line-loader{display:block;position:absolute;left:10px;right:10px;bottom:0}::ng-deep .vx-form-group label.vx-control-panel{color:#161b2f;font-size:11px;font-weight:500;line-height:16px;margin-bottom:8px;display:block;text-transform:uppercase;width:100%;margin-top:4px;text-align:left}::ng-deep .vx-form-group label.vx-control-panel.custom-tag{font-size:10px}::ng-deep .vx-form-group label.vx-control-panel.vx-mt-8{margin-top:8px}::ng-deep .vx-form-group label.vx-control-panel span.required{color:#eb2424;position:relative;top:-2px}::ng-deep .vx-form-group label.vx-control-panel .button{background:transparent;border:none;display:inline-flex;float:right;color:#1e5dd3;text-transform:uppercase;font-weight:600;cursor:pointer;font-size:11px;padding:0;margin:0}::ng-deep .vx-form-group label.vx-control-panel app-cs-switch{float:right;display:block}::ng-deep .vx-form-group label.vx-control-panel i{margin-left:8px;font-size:12px;color:#1e5dd3;cursor:pointer;position:relative;top:1px}::ng-deep .vx-form-group .input,::ng-deep .vx-form-group input[type=text]{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;outline:none;padding:8px 12px;line-height:20px;font-size:13px;color:#747576;transition:all .2s ease-in-out;width:100%;font-weight:400}::ng-deep .vx-form-group .input::-moz-placeholder,::ng-deep .vx-form-group input[type=text]::-moz-placeholder{color:#747576}::ng-deep .vx-form-group .input:-ms-input-placeholder,::ng-deep .vx-form-group input[type=text]:-ms-input-placeholder{color:#747576}::ng-deep .vx-form-group .input::placeholder,::ng-deep .vx-form-group input[type=text]::placeholder{color:#747576}::ng-deep .vx-form-group .input:focus,::ng-deep .vx-form-group .input:hover,::ng-deep .vx-form-group input[type=text]:focus,::ng-deep .vx-form-group input[type=text]:hover{border-color:#1e5dd3;box-shadow:0 0 5px rgba(30,93,211,.27)}::ng-deep .vx-form-group .input.error,::ng-deep .vx-form-group input[type=text].error{border-color:#eb2424;color:#eb2424;margin-bottom:4px}::ng-deep .vx-form-group .input.error:focus,::ng-deep .vx-form-group input[type=text].error:focus{box-shadow:0 0 5px rgba(211,30,30,.27)}::ng-deep .vx-form-group .input:disabled,::ng-deep .vx-form-group input[type=text]:disabled{background:#f1f1f1;cursor:not-allowed}::ng-deep .vx-form-group .input:disabled:hover,::ng-deep .vx-form-group input[type=text]:disabled:hover{border-color:#dbdbdb;box-shadow:none}::ng-deep .vx-form-group .input span.text,::ng-deep .vx-form-group input[type=text] span.text{font-size:13px;color:#747576;font-weight:400;display:block;width:100%}::ng-deep .vx-form-group .input .input-group,::ng-deep .vx-form-group input[type=text] .input-group{display:flex;align-items:center}::ng-deep .vx-form-group .input .input-group.counter,::ng-deep .vx-form-group input[type=text] .input-group.counter{min-width:96px;width:96px}::ng-deep .vx-form-group .input .input-group.counter button,::ng-deep .vx-form-group input[type=text] .input-group.counter button{height:24px;width:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#747576;font-size:8px;cursor:pointer;outline:none}::ng-deep .vx-form-group .input .input-group.counter input,::ng-deep .vx-form-group input[type=text] .input-group.counter input{-webkit-appearance:textfield;-moz-appearance:textfield;height:24px;width:calc(100% - 48px);border:1px solid #f1f1f1;outline:none;padding:0 6px;text-align:center}::ng-deep .vx-form-group .input .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-outer-spin-button,::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0}::ng-deep .vx-form-group .input+.file-list,::ng-deep .vx-form-group input[type=text]+.file-list{margin-top:8px}::ng-deep .vx-form-group .input::-moz-placeholder,::ng-deep .vx-form-group input[type=text]::-moz-placeholder{font-size:13px}::ng-deep .vx-form-group .input::placeholder,::ng-deep .vx-form-group input[type=text]::placeholder{font-size:13px}::ng-deep .vx-form-group .input:-ms-input-placeholder,::ng-deep .vx-form-group input[type=text]:-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group .input::-ms-input-placeholder,::ng-deep .vx-form-group input[type=text]::-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group .classification{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;padding:8px 12px;display:flex;justify-content:space-between}::ng-deep .vx-form-group .classification label{width:100%;position:relative;z-index:1;margin:0 4px 0 0}::ng-deep .vx-form-group .classification label span{display:block;width:100%;height:24px;border:1px solid #f1f1f1;border-radius:2px;line-height:24px;font-size:10px;text-align:center;color:#747576;font-weight:500;position:relative;text-transform:uppercase}::ng-deep .vx-form-group .classification label span:before{height:2px;content:\"\";top:0;right:0;left:0;border-radius:2px;position:absolute;transition:all .2s ease-in-out}::ng-deep .vx-form-group .classification label input{opacity:0;position:absolute;top:0;right:0;bottom:0;left:0;margin:0;padding:0;width:100%;height:100%;cursor:pointer;z-index:1}::ng-deep .vx-form-group .classification label input:checked+span{color:#fff}::ng-deep .vx-form-group .classification label input:checked+span:before{bottom:0;height:100%;z-index:-1}::ng-deep .vx-form-group .classification label.low span:before{background:#34aa44}::ng-deep .vx-form-group .classification label.low-med span:before{background:#f2bf19}::ng-deep .vx-form-group .classification label.med-high span:before{background:#f29619}::ng-deep .vx-form-group .classification label.high span:before{background:#eb2424}::ng-deep .vx-form-group .classification label:last-of-type{margin-right:0}::ng-deep .vx-form-group .input{display:flex;align-items:center}::ng-deep .vx-form-group .selected{height:40px;border-radius:4px;border:1px solid #f1f1f1;background:#fbfbfb;outline:none;padding:8px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;display:flex;align-items:center;position:relative;justify-content:space-between}::ng-deep .vx-form-group .selected .chip-container{display:flex;width:calc(100% - 60px);align-items:center}::ng-deep .vx-form-group .selected .chip-container.checkpoints{width:calc(100% - 120px)}::ng-deep .vx-form-group .selected .chip-container span.chip{background:#fff;border-radius:2px;box-shadow:0 0 3px #1e5dd31a;height:24px;padding:0 8px;color:#1e5dd3;font-size:12px;display:block;width:auto;max-width:100%;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:24px}::ng-deep .vx-form-group .selected .chip-container span.chip.disabled{background:#f1f1f1;box-shadow:none;color:#747576}::ng-deep .vx-form-group .selected .chip-container span.chip i{font-weight:400;margin-right:8px;cursor:pointer;font-size:10px;position:relative;top:1px}::ng-deep .vx-form-group .selected .chip-container span.chip span.step{background:#1e5dd3;border-radius:2px;color:#fff;font-size:9px;line-height:14px;padding:0 4px;font-weight:400;text-align:center;min-width:auto;margin-right:4px}::ng-deep .vx-form-group .selected .chip-container span.chip+span.chip{margin-left:4px}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question{display:flex;align-items:center;justify-content:space-between;width:100%}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question span.value{color:#1e5dd3;font-size:12px;font-weight:400;line-height:24px;padding:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:calc(100% - 80px)}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question span.label{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:9px;font-weight:600;text-transform:uppercase;padding-left:4px;padding-right:4px;line-height:12px;margin-left:8px}::ng-deep .vx-form-group .selected .chip-container span.value{color:#747576;font-size:13px;line-height:20px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 52px);padding:0 4px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text{color:#747576;font-size:10px;font-weight:500;padding:0 8px;width:122px;line-height:14px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text.first{position:relative;min-width:162px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text.first:before{background:#f1f1f1;content:\"\";position:absolute;top:0;right:0;height:calc(100% + 12px);width:1px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text .no{color:#1e5dd3}::ng-deep .vx-form-group .selected .chip-container.plus span.chip{max-width:calc(50% - 35px)}::ng-deep .vx-form-group .selected .chip-container.more-one span.chip{max-width:50%}::ng-deep .vx-form-group .selected button.count{background:#1e5dd3;border-radius:2px;height:24px;padding:2px 8px;border:1px solid #1e5dd3;cursor:pointer;outline:none;color:#fff;font:13px;font-weight:500;line-height:20px;white-space:nowrap;margin-left:8px}::ng-deep .vx-form-group .selected button.edit{border:1px solid #f1f1f1;border-radius:2px;background:#fff;outline:none;cursor:pointer;display:block;height:24px;padding:0 5px 0 4px;font-size:11px;font-weight:500;color:#1e5dd3;text-transform:uppercase;white-space:nowrap;margin-left:8px}::ng-deep .vx-form-group .selected button.edit i{font-weight:400;font-size:8px;margin-right:4px}::ng-deep .vx-form-group .selected button.close-btn{background:transparent;border:none;padding:0;margin-left:8px;font-size:10px;color:#c7381b;display:flex;align-items:center}::ng-deep .vx-form-group .selected .workflow-label{min-width:92px;padding:4px;text-align:center;margin-left:-8px;margin-right:8px;border-right:1px solid #f1f1f1}::ng-deep .vx-form-group .selected .workflow-label p{margin:0;display:block;text-transform:uppercase}::ng-deep .vx-form-group .selected .workflow-label p.title{font-size:9px;line-height:12px;color:#161b2f;font-weight:500}::ng-deep .vx-form-group .selected .workflow-label p.description{font-size:11px;line-height:16px;color:#161b2f;font-weight:600}::ng-deep .vx-form-group .selected .workflow-label+.chip-container{width:calc(100% - 148px)}::ng-deep .vx-form-group .selected+.selected{margin-top:8px}::ng-deep .vx-form-group .selected+app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .selected+app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:5px;text-transform:uppercase}::ng-deep .vx-form-group .selected+app-cs-switch.who-toggle label.cs-switch span.value{color:#747576}::ng-deep .vx-form-group .selected+app-cs-radio{margin-top:8px!important}::ng-deep .vx-form-group .selected~app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .selected.readOnly{pointer-events:none}::ng-deep .vx-form-group .selected span.chip{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .vx-form-group .select-list{position:absolute;background:#fff;box-shadow:0 0 5px #1e5dd3;top:100%;right:0;left:0;z-index:2}::ng-deep .vx-form-group .select-list .vx-radio-group label.vx-radio-item{width:100%;padding:12px 16px}::ng-deep .vx-form-group .select-list .vx-radio-group label.vx-radio-item:hover{background:#f8f8f8}::ng-deep .vx-form-group marx-editor{margin-top:8px;display:block}::ng-deep .vx-form-group marx-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb}::ng-deep .vx-form-group marx-editor .editor-container .editable-block{min-height:60px;padding:11px 15px;max-height:100px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%}@media not all and (min-resolution:0.001dpcm){@supports (-webkit-appearance:none){::ng-deep .vx-form-group marx-editor .editor-container .editable-block:before{opacity:.72}}}::ng-deep .vx-form-group marx-editor .editor-container .editable-block ul{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group marx-editor .editor-container .editable-block ul li{list-style:disc}::ng-deep .vx-form-group marx-editor .editor-container .editable-block ol{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group marx-editor .editor-container .editable-block ol li{list-style:decimal}::ng-deep .vx-form-group marx-editor .editor-container .editor-tools{z-index:1;border-top:1px solid #dbdbdb;transition:none;border-radius:0 0 3px 3px}::ng-deep .vx-form-group marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep .vx-form-group marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:22px}::ng-deep .vx-form-group marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep .vx-form-group marx-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button{width:100%!important;height:auto!important}::ng-deep .vx-form-group marx-editor .editor-container:focus-within{border-color:#1e5dd3!important}::ng-deep .vx-form-group marx-editor .editor-container:focus-within .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group marx-editor .editor-container:hover{border-color:#1e5dd3!important}::ng-deep .vx-form-group marx-editor .editor-container:hover .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group marx-editor+app-cs-switch{margin-top:8px}::ng-deep .vx-form-group app-cs-switch label.cs-switch span.value{font-size:11px;color:#747576;text-transform:uppercase}::ng-deep .vx-form-group app-cs-switch+app-cs-switch{margin-top:8px}::ng-deep .vx-form-group .date-time-picker{display:flex;justify-content:space-between;height:40px;border-radius:4px;border:1px solid #dbdbdb;padding:11px 0}::ng-deep .vx-form-group .date-time-picker:focus-within{border-color:#1e5dd3;box-shadow:0 0 5px rgba(30,93,211,.27)}::ng-deep .vx-form-group .date-time-picker .picker-group{width:50%;position:relative;display:flex;align-items:center}::ng-deep .vx-form-group .date-time-picker .picker-group:first-of-type{border-right:1px solid #dbdbdb}::ng-deep .vx-form-group .date-time-picker .picker-group:only-of-type{border:none;width:100%}::ng-deep .vx-form-group .date-time-picker .picker-group input{height:38px;background:#fff;line-height:38px;font-size:13px;color:#747576;transition:all .2s ease-in-out;width:100%;font-weight:400;border:none;padding:0 12px 0 34px;outline:none}::ng-deep .vx-form-group .date-time-picker .picker-group input:focus,::ng-deep .vx-form-group .date-time-picker .picker-group input:hover{box-shadow:none;border:none}::ng-deep .vx-form-group .date-time-picker .picker-group input::-moz-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input::placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input:-ms-input-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input::-ms-input-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group i{display:flex;justify-content:center;align-items:center;height:16px;width:16px;position:absolute;left:12px;top:0;color:#bcbcbc;font-size:16px;pointer-events:none}::ng-deep .vx-form-group app-cs-radio.main-filed{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;color:#707070}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .switch-row{display:flex}::ng-deep .vx-form-group .switch-row app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .switch-row app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:0;text-transform:uppercase;color:#747576!important}::ng-deep .vx-form-group .switch-row app-cs-switch label.cs-switch span.value i{display:inline-flex;font-size:11px;cursor:pointer;color:#1e5dd3;align-items:center;line-height:16px;margin:0 4px}::ng-deep .vx-form-group .switch-row app-cs-switch+app-cs-switch{margin-left:8px}::ng-deep .vx-form-group .switch-row.align-right{justify-content:flex-end}::ng-deep .vx-form-group .switch-row.align-right label.cs-switch span.value{margin-right:8px}::ng-deep .vx-form-group .risk-type-field{background:#f8f8f8;border:1px solid #dbdbdb;border-radius:4px;height:40px;display:flex;align-items:center;padding:4px;position:relative;z-index:1}::ng-deep .vx-form-group .risk-type-field .type-item{width:50%;position:relative}::ng-deep .vx-form-group .risk-type-field .type-item button{background:transparent;border:none;border-radius:0;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase;width:100%;height:32px;padding:0 12px;text-align:left}::ng-deep .vx-form-group .risk-type-field .type-item button.disabled{background:transparent!important;color:#dbdbdb!important;filter:unset!important;opacity:unset!important;pointer-events:none}::ng-deep .vx-form-group .risk-type-field .type-item .info{color:#1e5dd3;font-size:12px;position:absolute;top:10px;right:12px;cursor:pointer}::ng-deep .vx-form-group .risk-type-field .type-item.active button{color:#1e5dd3!important}::ng-deep .vx-form-group .risk-type-field .type-item:nth-child(2).active~.background-glider{transform:translate(100%)}::ng-deep .vx-form-group .risk-type-field .background-glider{background:#fff;border-radius:4px;box-shadow:0 1px 3px #161b2f26;position:absolute;display:flex;width:208px;height:32px;z-index:-1;transition:.25s ease-out}.left{width:36px;height:36px;margin-top:30px;margin-left:-58px;margin-right:20px;display:flex;justify-content:center;align-items:center;position:relative;z-index:10;border-radius:50%}.left.deadline-completed{margin-top:18px}.left.checked{background:transparent}.left img{width:36px}.left .checkIcon{width:32px;height:32px;background:#fff;border-radius:50%;stroke-width:4;stroke:#34aa44;stroke-miterlimit:10;box-shadow:inset 0 0 0 #34aa44;-webkit-animation:fillCheck .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both;animation:fillCheck .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both;margin-top:0}.left .checkIcon__circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:#34aa44;fill:none;-webkit-animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards;animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards}.left .checkIcon__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;-webkit-animation:strokeCheck .3s cubic-bezier(.65,0,.45,1) .8s forwards;animation:strokeCheck .3s cubic-bezier(.65,0,.45,1) .8s forwards}.right{width:100%}.right span.indicator{position:absolute;top:36px;left:-16px;font-size:12px;color:#f0b819;cursor:pointer}.form-group-row{display:flex;position:relative;transition:all .2s ease-in-out}.form-group-row.hide{opacity:0;transition:all .2s ease-in-out}.form-group-row.disabled{pointer-events:none;filter:grayscale(1);z-index:2}.form-group-row.disabled .left{position:relative}.form-group-row.disabled .left:before{content:\"\";position:absolute;top:2px;right:0;bottom:0;left:2px;background:#fff;opacity:.7;border-radius:50%;width:32px;height:32px}.form-group-row.disabled .right{opacity:.3}.form-group-row.active{pointer-events:none;filter:grayscale(0);z-index:2;opacity:1}.form-group-row.active .right .vx-form-group .custom-input,.form-group-row.active .right .vx-form-group input{border-color:#1e5dd3;box-shadow:0 0 5px rgba(30,93,211,.27)}@-webkit-keyframes strokeCheck{to{stroke-dashoffset:0}}@keyframes strokeCheck{to{stroke-dashoffset:0}}@-webkit-keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}@keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}.action-list{width:220px}.action-list ul{padding:0;margin:0;-webkit-animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}.action-list ul.action-item{display:block}.action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}.action-list ul.action-item li button{color:#6e717e;text-align:left;text-decoration:none;cursor:pointer;background:transparent;font-size:12px;text-transform:capitalize;display:flex;width:100%;padding:7.5px 11px;border:none}.action-list ul.action-item li button i{font-size:17px;margin-right:10px;color:#1c5bd1}.action-list ul.action-item li button:hover{background:#f3f3f3}.action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}.action-list ul.action-item li .avatar-card.within-con{display:block}.action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;overflow:hidden;background:#4681ef;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}.action-list ul.action-item li .avatar-card .avatar img{width:100%}.action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}.action-list ul.action-item li .avatar-card span.value{width:100%;color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;-moz-text-align-last:left;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}.action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#1c5bd1;cursor:pointer;margin-right:5px}.action-list ul.action-item li .avatar-card.no-image{display:block}.action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}.action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}.action-list ul.action-item li .chip-item i{margin-right:7px;font-size:10px;cursor:pointer;display:inline-flex}.action-list ul.action-item li .chip-item span{display:block;width:auto;max-width:calc(100% - 17px);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}.action-list ul.action-item li .chip-item span.id{font-size:9px}.action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}.action-list ul.action-item li .within .block{background:#f1f1f1;border-radius:2px;padding:0 2px;line-height:14px;font-size:9px;font-weight:500;color:#042e7d;margin-right:6px;display:block;text-transform:uppercase}.action-list ul.action-item li .within .data{width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#747576;font-size:11px;font-weight:400;line-height:17px}.action-list ul.action-item li:first-child{-webkit-animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(2){-webkit-animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(3){-webkit-animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(4){-webkit-animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(5){-webkit-animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(6){-webkit-animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(7){-webkit-animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(8){-webkit-animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(9){-webkit-animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}.action-list ul.action-item li:nth-child(10){-webkit-animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both;animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@-webkit-keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@-webkit-keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}@keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}p.error-message{font-size:11px;font-weight:400;color:#eb2424;line-height:16px;margin-top:8px;margin-bottom:0}.edit-loader{position:absolute;top:-3px;left:-3px;width:46px;height:46px;transform:rotate(180deg)}.circular-loader{-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite;height:100%;transform-origin:center center;width:100%;position:absolute;top:0;left:0;margin:auto}.loader-path{stroke-dasharray:150,200;stroke-dashoffset:-10;-webkit-animation:dash 1.5s ease-in-out infinite;animation:dash 1.5s ease-in-out infinite;stroke-linecap:round}@-webkit-keyframes rotate{to{transform:rotate(1turn)}}@keyframes rotate{to{transform:rotate(1turn)}}@-webkit-keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35}to{stroke-dasharray:89,200;stroke-dashoffset:-124}}@keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35}to{stroke-dasharray:89,200;stroke-dashoffset:-124}}::ng-deep .dropdown{position:fixed;background:#fff;box-shadow:0 3px 6px #00000029;padding:24px 0;z-index:9;max-height:calc(100vh - 200px);overflow:auto}::ng-deep .dropdown ul.dropdown-list{padding:0 20px;margin:0;display:block}::ng-deep .dropdown ul.dropdown-list li{list-style:none}::ng-deep .dropdown ul.dropdown-list li app-cs-radio{display:flex}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item span.radio{position:absolute;top:12px;left:12px}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item span.value{padding:11px 12px 11px 32px;width:100%;border:1px solid #bcbcbc;border-radius:4px;margin-left:0;max-width:100%}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item svg{position:absolute;top:12px;left:12px}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item input[type=radio]:checked~span.value{background:#e8feeb;border-color:#34aa44}::ng-deep .dropdown ul.dropdown-list li+li{margin-top:8px}app-smiley-dialog{position:relative;z-index:10}app-smiley-dialog-inline{position:absolute;top:-3px;right:0;bottom:0;z-index:999;width:520px;height:calc(100vh + 3px)}::ng-deep .vx-overlay{position:fixed;z-index:3;top:0;right:0;bottom:0;left:0}dp-date-picker{width:100%;position:fixed!important;z-index:14;top:-40px;left:0}dp-date-picker input{width:100%;border:none;opacity:0;pointer-events:none}dp-date-picker input:focus{outline:none}dp-date-picker .dp-popup{width:412px;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;-webkit-animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}dp-date-picker .dp-popup dp-day-calendar,dp-date-picker .dp-popup dp-month-calendar{width:100%;pointer-events:auto}dp-date-picker .dp-popup dp-day-calendar button,dp-date-picker .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right,dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:hover{background-color:#f3f3f3}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:before,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000;display:inline-flex}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week,dp-date-picker .dp-popup dp-day-calendar .dp-weekdays,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays{display:flex;justify-content:space-around}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,dp-date-picker .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button,dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button:hover,dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button:hover,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button:hover,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button:hover{background-color:#f3f3f3}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-selected{background:#1e5dd3}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}dp-date-picker .dp-popup dp-day-calendar .dp-day-calendar-container,dp-date-picker .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container .dp-nav-header button{color:#000;font-size:17px;font-weight:500;margin:0 0 0 12px;padding:0}dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-wrapper,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}dp-date-picker .dp-open+div{position:fixed!important;top:0!important;right:0!important;bottom:0!important;left:0!important;display:flex;justify-content:center;align-items:center;z-index:99;pointer-events:none;background:rgba(0,0,0,.3)}@-webkit-keyframes slide-bottom{0%{transform:translateY(-100px)}to{transform:translateY(0)}}@keyframes slide-bottom{0%{transform:translateY(-100px)}to{transform:translateY(0)}}::ng-deep span.file{display:block;width:20px;min-width:20px;border-radius:0 0 2px 2px;position:relative;margin-right:5px;border:1px solid #747576;border-top:none;margin-top:5px;background:#fff}::ng-deep span.file.table{margin-right:8px;width:20px}::ng-deep span.file.table i{font-size:8px}::ng-deep span.file.table .format{height:8px;font-size:7px;line-height:8px;font-weight:400}::ng-deep span.file:before{position:absolute;border-radius:0;top:-4px;right:-1px;content:\"\";height:4px;width:4px;display:block;background:linear-gradient(45deg,#747576,#747576 1%,#747576 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file:after{height:4px;left:-1px;right:3px;border-top:1px solid;border-right:none;border-left:1px solid;content:\"\";top:-4px;position:absolute;border-radius:2px 0 0 0;background:#fff}::ng-deep span.file .format{height:10px;font-size:6px;text-transform:uppercase;background:transparent;font-weight:600;text-align:center;display:block;line-height:10px}::ng-deep span.file i{font-size:10px;height:10px;display:flex;align-items:center;justify-content:center;color:#dbdbdb}::ng-deep span.file.docx{width:22px!important}::ng-deep span.file.pdf,::ng-deep span.file.template{border-color:#f31c39}::ng-deep span.file.pdf:before,::ng-deep span.file.template:before{background:linear-gradient(45deg,#f31c39,#f31c39 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#f31c39\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.pdf:after,::ng-deep span.file.template:after{border-color:#f31c39}::ng-deep span.file.pdf .format,::ng-deep span.file.template .format{color:#f31c39}::ng-deep span.file.css,::ng-deep span.file.less,::ng-deep span.file.scss,::ng-deep span.file.xls,::ng-deep span.file.xlsx{border-color:#34aa44}::ng-deep span.file.css:before,::ng-deep span.file.less:before,::ng-deep span.file.scss:before,::ng-deep span.file.xls:before,::ng-deep span.file.xlsx:before{background:linear-gradient(45deg,#34aa44,#34aa44 1%,#34aa44 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.css:after,::ng-deep span.file.less:after,::ng-deep span.file.scss:after,::ng-deep span.file.xls:after,::ng-deep span.file.xlsx:after{border-color:#34aa44;color:#34aa44}::ng-deep span.file.css .format,::ng-deep span.file.less .format,::ng-deep span.file.scss .format,::ng-deep span.file.xls .format,::ng-deep span.file.xlsx .format{color:#34aa44}::ng-deep span.file.doc,::ng-deep span.file.docx,::ng-deep span.file.psd{border-color:#1e5dd3}::ng-deep span.file.doc:before,::ng-deep span.file.docx:before,::ng-deep span.file.psd:before{background:linear-gradient(45deg,#1e5dd3,#1e5dd3 1%,#1e5dd3 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.doc:after,::ng-deep span.file.docx:after,::ng-deep span.file.psd:after{border-color:#1e5dd3}::ng-deep span.file.doc .format,::ng-deep span.file.docx .format,::ng-deep span.file.psd .format{color:#1e5dd3}::ng-deep span.file.ai,::ng-deep span.file.html,::ng-deep span.file.jpeg,::ng-deep span.file.jpg,::ng-deep span.file.png,::ng-deep span.file.ppt{border-color:#f6882f}::ng-deep span.file.ai:before,::ng-deep span.file.html:before,::ng-deep span.file.jpeg:before,::ng-deep span.file.jpg:before,::ng-deep span.file.png:before,::ng-deep span.file.ppt:before{background:linear-gradient(45deg,#f6882f,#f6882f 1%,#f6882f 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.ai:after,::ng-deep span.file.html:after,::ng-deep span.file.jpeg:after,::ng-deep span.file.jpg:after,::ng-deep span.file.png:after,::ng-deep span.file.ppt:after{border-color:#f6882f}::ng-deep span.file.ai .format,::ng-deep span.file.html .format,::ng-deep span.file.jpeg .format,::ng-deep span.file.jpg .format,::ng-deep span.file.png .format,::ng-deep span.file.ppt .format{color:#f6882f}::ng-deep span.file.php{border-color:#7aa6f7}::ng-deep span.file.php:before{background:linear-gradient(45deg,#7aa6f7,#7aa6f7 1%,#7aa6f7 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0));filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.php:after{border-color:#7aa6f7}::ng-deep span.file.php .format{color:#7aa6f7}::ng-deep ngx-material-timepicker-container .timepicker-backdrop-overlay{background-color:rgba(0,0,0,.05)!important;z-index:9999999999!important}::ng-deep ngx-material-timepicker-container .timepicker-overlay{z-index:9999999999!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker{width:232px!important;border-radius:2px!important;box-shadow:0 4px 30px #161b2f26!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header{background-color:#fff!important;padding:0!important;border-radius:2px 2px 0 0}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container{display:block!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time{color:#000!important;width:150px!important;margin:0 auto;line-height:60px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control{font-size:40px;background-color:transparent!important;color:#000!important;font-weight:600;text-align:right;caret-color:transparent;outline:none;font-family:Poppins;line-height:56px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control:focus,::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control:hover{background-color:transparent!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control:last-of-type .timepicker-dial__control{text-align:left}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time span{padding:0 8px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period{display:flex!important;width:182px;margin:0 auto!important;background:#f1f1f1;padding:4px 10px;border-radius:20px;position:relative}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period:before{background:#f1f1f1;content:\"\";position:absolute;top:15px;left:-25px;width:calc(100% + 50px);height:2px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period{flex-direction:unset!important;position:relative;z-index:1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period:after{content:\"\";position:absolute;right:-12px;top:0;border-left:14px solid #f1f1f1;border-bottom:12px solid transparent;border-top:12px solid transparent;z-index:-1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period:before{content:\"\";position:absolute;left:-18px;top:0;border-right:14px solid #f1f1f1;border-bottom:12px solid transparent;border-top:12px solid transparent;z-index:-1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button{font-size:11px;background-color:transparent;padding:0;border-radius:20px;color:#747576;font-weight:600;font-family:Poppins;width:84px;height:24px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button.timepicker-dial__item_active{background:#fff!important;color:#1e5dd3!important;box-shadow:0 1px 2px #dbdbdb}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button+button{margin-left:0!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face{width:200px!important;height:200px!important;padding:10px!important;background:transparent!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer{height:calc(224px / 2 - 20px)!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer span{color:#000}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer span.active{color:#fff}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__clock-hand{height:80px!important;top:calc(50% - 80px)!important;background-color:#1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number>span.active{background-color:#1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__clock-hand_minute:before{border:4px solid #1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions{display:flex!important;padding:10px 0 0!important;background:#fff!important;justify-content:space-around!important;border-radius:0 0 2px 2px!important;overflow:hidden}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div:first-child ngx-material-timepicker-button button.timepicker-button{background:#f8f8f8;color:#1e5dd3}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div ngx-material-timepicker-button button.timepicker-button{line-height:28px!important;width:100%;background:#1e5dd3;color:#fff;border-radius:0!important;height:32px!important;width:116px!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div ngx-material-timepicker-button button.timepicker-button span{font-weight:500!important;font-size:11px;font-family:Poppins}"]
|
|
546
|
+
},] }
|
|
547
|
+
];
|
|
548
|
+
ImportAnAssessmentComponent.ctorParameters = () => [
|
|
549
|
+
{ type: AuthService },
|
|
550
|
+
{ type: AssessmentService }
|
|
551
|
+
];
|
|
552
|
+
ImportAnAssessmentComponent.propDecorators = {
|
|
553
|
+
editorCont: [{ type: ViewChild, args: ['editor', { static: false },] }],
|
|
554
|
+
closeWorkflow: [{ type: Output }],
|
|
555
|
+
disconnectRefresh: [{ type: Output }]
|
|
556
|
+
};
|
|
557
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LWFuLWFzc2Vzc21lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctYXNzZXNzbWVudC9pbXBvcnQtYW4tYXNzZXNzbWVudC9pbXBvcnQtYW4tYXNzZXNzbWVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFJL0UsTUFBTSxhQUFhLEdBQUcsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLENBQUE7QUFRMUYsTUFBTSxPQUFPLDJCQUEyQjtJQXFDdEMsWUFDVSxJQUFpQixFQUNsQixpQkFBb0M7UUFEbkMsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNsQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBckNuQyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkMsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqRCxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUM5QixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUd0QixrQkFBYSxHQUFRLEVBQUUsQ0FBQztRQUN4QixpQkFBWSxHQUFRLEVBQUUsQ0FBQztRQUV2QixtQkFBYyxHQUFHLENBQUMsQ0FBQztRQUNuQixpQkFBWSxHQUFHLG9CQUFvQixDQUFBO1FBQ25DLG1CQUFjLEdBQVcsaUJBQWlCLENBQUM7UUFDM0Msb0JBQWUs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QU0sMENBQUUsV0FBVyxDQUFDLDBDQUFFLFFBQVEsRUFBRSwwQ0FBRSxJQUFJLEVBQUUsMENBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBQSxNQUFBLE1BQUEsUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsV0FBVyxDQUFDLDBDQUFFLFFBQVEsRUFBRSwwQ0FBRSxJQUFJLEVBQUUsbUNBQUksRUFBRTtZQUN4SyxXQUFXLEVBQUUsQ0FBQSxNQUFBLE1BQUEsTUFBQSxRQUFRLENBQUMsTUFBQSxJQUFJLENBQUMsTUFBTSwwQ0FBRSxXQUFXLENBQUMsMENBQUUsUUFBUSxFQUFFLDBDQUFFLElBQUksRUFBRSwwQ0FBRSxNQUFNLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFBLE1BQUEsUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsT0FBTyxDQUFDLDBDQUFFLFFBQVEsRUFBRSwwQ0FBRSxJQUFJLEVBQUU7WUFDeEosU0FBUyxFQUFFLFFBQVEsQ0FBQyxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLFNBQVMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLEtBQUssQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQUUsVUFBVSxFQUFFLE9BQU87WUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsU0FBUyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUs7WUFBRSxPQUFPLEVBQUUsS0FBSztZQUNoUCxzQkFBc0IsRUFBRSxRQUFRLENBQUMsTUFBQSxJQUFJ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QUMzRTtZQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDakIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1NBQzVCO2FBQ0k7WUFDSCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztTQUN6QjtJQUNILENBQUM7OztZQTFpQkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSwwQkFBMEI7Z0JBQ3BDLHl6RUFBb0Q7O2FBRXJEOzs7WUFYUSxXQUFXO1lBQ1gsaUJBQWlCOzs7eUJBYXZCLFNBQVMsU0FBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFOzRCQUNyQyxNQUFNO2dDQUNOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgWExTWCBmcm9tICd4bHN4JztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBc3Nlc3NtZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3dvcmtmbG93LXNlcnZpY2VzL2Fzc2Vzc21lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7IENyZWF0ZUFzc2Vzc21lbnRDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9zaGFyZWRDb21wb25lbnRzL2Fzc2Vzc21lbnQtZWRpdG9yL2NyZWF0ZS1hc3Nlc3NtZW50LWNvbnRhaW5lci9jcmVhdGUtYXNzZXNzbWVudC1jb250YWluZXIuY29tcG9uZW50JztcclxuXHJcbnR5cGUgQU9BID0gYW55W11bXTtcclxuY29uc3Qgc21pbGV5QWN0aW9ucyA9IHsgSU1QT1JUX01PUkU6IFwiSU1QT1JUX01PUkVcIiwgVklFV19BU1NFU1NNRU5UUzogXCJWSUVXX0FTU0VTU01FTlRTXCIgfVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtaW1wb3J0LWFuLWFzc2Vzc21lbnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbXBvcnQtYW4tYXNzZXNzbWVudC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW1wb3J0LWFuLWFzc2Vzc21lbnQuY29tcG9uZW50Lmxlc3MnLCAnLi4vLi4vZm9ybXMubGVzcyddLFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEltcG9ydEFuQXNzZXNzbWVudENvbXBvbmVudCB7XHJcbiAgQFZpZXdDaGlsZCgnZWRpdG9yJywgeyBzdGF0aWM6IGZhbHNlIH0pIGVkaXRvckNvbnQhOiBDcmVhdGVBc3Nlc3NtZW50Q29udGFpbmVyQ29tcG9uZW50O1xyXG4gIEBPdXRwdXQoKSBjbG9zZVdvcmtmbG93ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBkaXNjb25uZWN0UmVmcmVzaCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBpc1Nob3dMb2FkZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc1dyb25nRm9ybWF0ID0gZmFsc2U7XHJcbiAgZmlsZU5hbWU6IGFueTtcclxuICBkYXRhOiBhbnk7XHJcbiAgdXBsb2FkZWRGaWxlczogYW55ID0gW107XHJcbiAgZmlsZVJlc3BvbnNlOiBhbnkgPSBbXTtcclxuICBmaWxlVmFsdWU6IGFueTtcclxuICBvcmdhbml6YXRpb25JZCA9IDA7XHJcbiAgZXJyb3JNZXNzYWdlID0gXCJpbnZhbGlkIGZpbGUgZXJyb3JcIlxyXG4gIGRvd25sb2FkU3RhdHVzOiBzdHJpbmcgPSAnTk9UX0RPV05MT0FESU5HJztcclxuICBkb3dubG9hZFBlcmNlbnQgPSAwO1xyXG4gIHNtaWxleU1lc3NhZ2UgPSBgWW91J3JlIEFsbCBTZXQhIFdlJ3JlIHByb2Nlc3NpbmcgeW91ciByZXF1ZXN0IGFuZCB5b3Ugd2lsbCBiZSBub3RpZmllZCB2aWEgZW1haWwgdXBvbiBjb21wbGV0aW9uLmA7XHJcbiAgYWN0aW9uQnV0dG9ucyA9IFtcclxuICAgIHsgYnV0dG9uVGV4dDogJ0ltcG9ydCBNb3JlIEFzc2Vzc21lbnRzJywgY2xhc3M6ICd3aGl0ZS1idG4nLCBpZDogc21pbGV5QWN0aW9ucy5JTVBPUlRfTU9SRSB9LFxyXG4gICAgeyBidXR0b25UZXh0OiAnVmlldyBBc3Nlc3NtZW50cycsIGNsYXNzOiAnYmx1ZS1idG4nLCBpZDogc21pbGV5QWN0aW9ucy5WSUVXX0FTU0VTU01FTlRTIH0sXHJcbiAgXTtcclxuICBzaG93U21pbGV5ID0gZmFsc2U7XHJcbiAgYXNzZXNzbWVudERhdGEgITogYW55O1xyXG4gIHNoZWV0RGF0YSAhOiBhbnk7XHJcbiAgY29udmVydGVkRGF0YTogYW55O1xyXG4gIGlzVXBsb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjYXRlZ29yeURhdGEgITogYW55O1xyXG5cclxuICBzZXRJc1VwbG9hZGVkKGlzVXBsb2FkZWQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuaXNVcGxvYWRlZCA9IGlzVXBsb2FkZWQ7XHJcbiAgICB0aGlzLmF1dGgucHJldmlld1BhbmVsLm5leHQoaXNVcGxvYWRlZCk7XHJcbiAgICBpZiAoIWlzVXBsb2FkZWQpIHtcclxuICAgICAgY29uc3QgY2xvc2VCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImNsb3NlLXdvcmtmbG93LWVuZ2luZS1idG5cIilcclxuICAgICAgaWYgKGNsb3NlQnRuKSBjbG9zZUJ0bi5zdHlsZS5kaXNwbGF5ID0gXCJibG9ja1wiO1xyXG4gICAgICB0aGlzLmNvbnZlcnRlZERhdGEgPSB7fTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhdXRoOiBBdXRoU2VydmljZSxcclxuICAgIHB1YmxpYyBhc3Nlc3NtZW50U2VydmljZTogQXNzZXNzbWVudFNlcnZpY2UsXHJcbiAgKSB7IH1cclxuXHJcbiAgY2xvc2VTbWlsZXkoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zaG93U21pbGV5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmNsb3NlV29ya2Zsb3cuZW1pdCh7IGV2dDogdGhpcy5hc3Nlc3NtZW50RGF0YSwgY29uZmlybTogZmFsc2UgfSk7XHJcbiAgfVxyXG5cclxuICBkb3dubG9hZFRlbXBsYXRlKCkge1xyXG4gICAgdGhpcy5kb3dubG9hZFN0YXR1cyA9ICdET1dOTE9BRElORyc7XHJcbiAgICB0aGlzLmRvd25sb2FkUGVyY2VudCA9IDA7XHJcbiAgICBjb25zdCBkb3dubG9hZERhdGUgPSBuZXcgRGF0ZSgpLnRvRGF0ZVN0cmluZygpLnNwbGl0KCcgJyk7XHJcbiAgICBjb25zdCBmaWxlTmFtZSA9IGBJbXBvcnQgYW4gQXNzZXNzbWVudC0ke2Rvd25sb2FkRGF0ZVsyXX0tJHtkb3dubG9hZERhdGVbMV19LSR7ZG93bmxvYWREYXRlWzNdfS54bHN4YDtcclxuXHJcbiAgICB0aGlzLmFzc2Vzc21lbnRTZXJ2aWNlLmRvd25sb2FkVGVtcGxhdGUoKS5zdWJzY3JpYmUoXHJcbiAgICAgIHtcclxuICAgICAgICBuZXh0OiAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5kb3dubG9hZFN0YXR1cyA9IHRoaXMuYXNzZXNzbWVudFNlcnZpY2UuZG93bkxvYWRGaWxlKGRhdGEsICdhcHBsaWNhdGlvbi94bHN4JywgZmlsZU5hbWUpO1xyXG4gICAgICAgICAgfSwgMTUwMCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKCkgPT4geyB0aGlzLmRvd25sb2FkU3RhdHVzID0gJ0RPV05MT0FERUQnOyB9XHJcbiAgICAgIH1cclxuXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdHJpZ2dlckJyb3dzZUZpbGUoKSB7XHJcbiAgICBjb25zdCBnZXRGaWxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lhYS1maWxlLWlucHV0Jyk7XHJcbiAgICBpZiAoZ2V0RmlsZSkge1xyXG4gICAgICBnZXRGaWxlLmNsaWNrKCk7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gIGhhbmRsZSB1cGxvYWQgZmlsZSBhcmVhXHJcbiAgdXBsb2FkRmlsZShldnQ6IGFueSkge1xyXG4gICAgY29uc3QgdGFyZ2V0OiBEYXRhVHJhbnNmZXIgPSBldnQudGFyZ2V0IGFzIERhdGFUcmFuc2ZlcjtcclxuICAgIGNvbnN0IHJlYWRlcjogRmlsZVJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICByZWFkZXIub25sb2FkID0gKGU6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBic3RyOiBzdHJpbmcgPSBlLnRhcmdldC5yZXN1bHQ7XHJcbiAgICAgIGNvbnN0IHdiOiBYTFNYLldvcmtCb29rID0gWExTWC5yZWFkKGJzdHIsIHsgdHlwZTogJ2JpbmFyeScgfSk7XHJcbiAgICAgIGNvbnN0IHdzbmFtZTogc3RyaW5nID0gd2IuU2hlZXROYW1lc1swXTtcclxuICAgICAgY29uc3Qgd3NuYW1lMTogc3RyaW5nID0gd2IuU2hlZXROYW1lc1sxXTtcclxuICAgICAgY29uc3Qgd3M6IFhMU1guV29ya1NoZWV0ID0gd2IuU2hlZXRzW3dzbmFtZV07XHJcbiAgICAgIGNvbnN0IHRlbXBEYXRhOiBYTFNYLldvcmtTaGVldCA9IHdiLlNoZWV0c1t3c25hbWUxXTtcclxuICAgICAgdGhpcy5jYXRlZ29yeURhdGEgPSBYTFNYLnV0aWxzLnNoZWV0X3RvX2pzb24odGVtcERhdGEsIHtcclxuICAgICAgICBoZWFkZXI6IDEsXHJcbiAgICAgIH0pIGFzIEFPQTtcclxuICAgICAgdGhpcy5zaGVldERhdGEgPSBYTFNYLnV0aWxzLnNoZWV0X3RvX2pzb24od3MsIHtcclxuICAgICAgICBoZWFkZXI6IDEsXHJcbiAgICAgIH0pIGFzIEFPQTtcclxuXHJcbiAgICAgIHRoaXMuZ2VuZXJhdGVDYXRlZ29yeUxpc3QodGhpcy5jYXRlZ29yeURhdGEpO1xyXG5cclxuICAgICAgdGhpcy5hc3Nlc3NtZW50RGF0YSA9IHRoaXMuc2hlZXREYXRhLmZpbHRlcigoZGF0YUVsZW1lbnQ6IGFueSkgPT4gZGF0YUVsZW1lbnQubGVuZ3RoID4gMCk7XHJcblxyXG4gICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnJztcclxuICAgICAgY29uc29sZS5sb2coXCJJbXBcIiwgdGhpcy5jaGVja0Zvcm1hdCh0aGlzLmFzc2Vzc21lbnREYXRhKSlcclxuICAgICAgaWYgKCF0aGlzLmNoZWNrRm9ybWF0KHRoaXMuYXNzZXNzbWVudERhdGEpKSB7XHJcbiAgICAgICAgY29uc3QgY2xvc2VCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImNsb3NlLXdvcmtmbG93LWVuZ2luZS1idG5cIik7XHJcbiAgICAgICAgaWYgKGNsb3NlQnRuKSBjbG9zZUJ0bi5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XHJcblxyXG4gICAgICAgIHRoaXMuZ2VuZXJhdGVFZGl0b3JQYXlsb2FkKHRoaXMuYXNzZXNzbWVudERhdGEpO1xyXG4gICAgICAgIHRoaXMuYXV0aC5wcmV2aWV3UGFuZWwubmV4dCh0cnVlKTtcclxuICAgICAgICB0aGlzLmlzVXBsb2FkZWQgPSB0cnVlO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCk9Pnt0aGlzLmVkaXRvckNvbnQudHJpZ2dlclByZXZpZXdXaXRoVmFsaWRhdGlvbigpfSwxMDApXHJcbiAgICAgICAgXHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcbiAgICByZWFkZXIucmVhZEFzQmluYXJ5U3RyaW5nKHRhcmdldC5maWxlc1swXSk7XHJcbiAgfVxyXG5cclxuICBjYXRlZ29yeUxpc3QgITogYW55O1xyXG4gIGdlbmVyYXRlQ2F0ZWdvcnlMaXN0KGNhdGVnb3J5RGF0YTogYW55KSB7XHJcbiAgICBjb25zdCBjYXRMaXN0OiBhbnkgPSB7fVxyXG4gICAgaWYgKGNhdGVnb3J5RGF0YSkge1xyXG4gICAgICBjYXRlZ29yeURhdGEuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgICBjYXRMaXN0W2VsZVswXV0gPSBlbGVbMV07XHJcbiAgICAgIH0pXHJcbiAgICAgIHRoaXMuY2F0ZWdvcnlMaXN0ID0gY2F0TGlzdDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNhdGVnb3J5TmFtZXRvSWQoY2F0ZWdvcnlOYW1lOiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLmNhdGVnb3J5TGlzdFtjYXRlZ29yeU5hbWVdKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNhdGVnb3J5TGlzdFtjYXRlZ29yeU5hbWVdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuICBnZW5lcmF0ZUVkaXRvclBheWxvYWQoZGF0YTogYW55KSB7XHJcbiAgICAvL2NoZWNrIGZvcm1hdFxyXG5cclxuICAgIGNvbnN0IHBheWxvYWQ6IGFueSA9IHtcclxuXHJcbiAgICAgIG1ldGFkYXRhOlxyXG4gICAgICB7XHJcbiAgICAgICAgYXNzZXNzbWVudF9uYW1lOiBcIlwiLFxyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlwiLFxyXG4gICAgICAgIGFzc2Vzc21lbnRfdHlwZTogXCJjb21wbGlhbmNlXCIsXHJcbiAgICAgICAgY2F0ZWdvcnlfYXJyOiBbXHJcblxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgYXBwcm92YWxfd29ya2Zsb3dfYXJyOiB7XHJcbiAgICAgICAgICBcInRlc3RcIjogXCJ0ZXN0XCJcclxuICAgICAgICB9LFxyXG4gICAgICAgIGFwcHJvdmFsX3JlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgIHNvdXJjZV9wYWdlOiBcImNvbXBsaWFuY2VcIlxyXG4gICAgICB9LFxyXG4gICAgICBhc3Nlc3NtZW50RGF0YToge1xyXG4gICAgICAgIHZlcnNpb246IDIsXHJcbiAgICAgICAgcXVlc3Rpb25SYW5kb21pemU6IGZhbHNlLFxyXG4gICAgICAgIGFub255bW91c1Jlc3BvbnNlOiBmYWxzZSxcclxuICAgICAgICBoYXNXZWxjb21lOiBmYWxzZSxcclxuICAgICAgICBoYXNXZWxjb21lRGVzY3JpcHRpb246IGZhbHNlLFxyXG4gICAgICAgIHdlbGNvbWVUZXh0OiAnJyxcclxuICAgICAgICBoYXNXZWxjb21lSW1hZ2U6IGZhbHNlLFxyXG4gICAgICAgIHdlbGNvbWVJbWFnZTogJycsXHJcbiAgICAgICAgd2VsY29tZURlc2NyaXB0aW9uOiAnJyxcclxuICAgICAgICBoYXNUaGFua3M6IGZhbHNlLFxyXG4gICAgICAgIGhhc1RoYW5reW91SW1hZ2U6IGZhbHNlLFxyXG4gICAgICAgIHRoYW5reW91VGV4dDogJycsXHJcbiAgICAgICAgdGhhbmt5b3VJbWFnZTogJycsXHJcbiAgICAgICAgaGFzVGhhbmt5b3VEZXNjcmlwdGlvbjogZmFsc2UsXHJcbiAgICAgICAgdGhhbmt5b3VEZXNjcmlwdGlvbjogJycsXHJcbiAgICAgICAgZWxlbWVudHM6IFtdLFxyXG4gICAgICAgIHBhZ2VEZXRhaWxzTGlzdDogW10sXHJcbiAgICAgICAgY3VzdG9tUmVzcG9uc2VTZXQ6IFtdLFxyXG4gICAgICAgIHNldHRpbmdzOiB0aGlzLnNldHRpbmdzLFxyXG4gICAgICAgIHJlc3BvbnNlU2VnbWVudDogdGhpcy5pbml0aWFsaXplRW1wdHlSZXNwb25zZVNlZ21lbnQoKVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jb252ZXJ0ZWREYXRhID0gcGF5bG9hZDtcclxuICAgIHRoaXMuY29udmVydGVkRGF0YS5tZXRhZGF0YS5hc3Nlc3NtZW50X25hbWUgPSB0aGlzLmFzc2Vzc21lbnREYXRhWzJdWzFdO1xyXG4gICAgdGhpcy5jb252ZXJ0ZWREYXRhLm1ldGFkYXRhLmRlc2NyaXB0aW9uID0gdGhpcy5hc3Nlc3NtZW50RGF0YVszXVsxXTtcclxuICAgIC8vIHRoaXMuY29udmVydGVkRGF0YS5tZXRhZGF0YS5jYXRlZ29yeV9hcnJbMF0gPSB0aGlzLmFzc2Vzc21lbnREYXRhWzRdWzFdO1xyXG4gICAgdGhpcy5jb252ZXJ0ZWREYXRhLm1ldGFkYXRhLmNhdGVnb3J5X2FyciA9IFt0aGlzLmNhdGVnb3J5TmFtZXRvSWQodGhpcy5hc3Nlc3NtZW50RGF0YVs0XVsxXSldO1xyXG5cclxuICAgIC8vVE9ETzogY3JlYXRlIGEgZnVuY3Rpb24gdG8gY29udmVydCBmcm9tIGNhdGVnb3JpZXMgbmFtZXMgdG8gY2F0ZWdvcmllcyBpZC5cclxuICAgIC8vVE9ETzogY2hlY2sgdGhlIGFwaSBmb3Igc3ViLWZsb3cgbGlrZSBhc3Nlc3NtZW50LXNldHRpbmcuXHJcbiAgICAvLyB0aGlzLmNvbnZlcnRlZERhdGEubWV0YWRhdGEuY2F0ZWdvcnlfYXJyWzBdID0gXCI2MWNjMjdjNWIzZTg2NDJiMzMzZjM1OTFcIjtcclxuICAgIHRoaXMuZ2VuZXJhdGVRdWVzdGlvbnNMaXN0KGRhdGEuc2xpY2UoNiksIHBheWxvYWQuYXNzZXNzbWVudERhdGEuZWxlbWVudHMpXHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZVF1ZXN0aW9uc0xpc3QocXVlc3Rpb25zTGlzdDogYW55LCBxdWVzdGlvbnNBcnJheTogYW55KSB7XHJcbiAgICBxdWVzdGlvbnNBcnJheSA9IFtdO1xyXG4gICAgaWYgKHF1ZXN0aW9uc0xpc3Q/Lmxlbmd0aCkge1xyXG4gICAgICBxdWVzdGlvbnNMaXN0LmZvckVhY2goKHF1ZXN0aW9uOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhcInF1ZXN0aW9uIGxpc3RcIiwgcXVlc3Rpb24pXHJcbiAgICAgICAgcXVlc3Rpb25zQXJyYXkucHVzaCgpO1xyXG4gICAgICAgIHN3aXRjaCAocXVlc3Rpb25bMF0pIHtcclxuICAgICAgICAgIGNhc2UgJ1NpbmdsZSBUZXh0Ym94JzpcclxuICAgICAgICAgICAgcXVlc3Rpb25zQXJyYXkucHVzaCh0aGlzLmdlbmVyYXRlU2luZ2xlVGV4dGJveCgnc2luZ2xlLXRleHRib3gnLHF1ZXN0aW9uLCBpbmRleCkpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSAnTXVsdGlwbGUgQ2hvaWNlJzpcclxuICAgICAgICAgICAgcXVlc3Rpb25zQXJyYXkucHVzaCh0aGlzLmdlbmVyYXRlTXVsdGlwbGVDaG9pY2UoJ211bHRpcGxlLWNob2ljZScscXVlc3Rpb24sIGluZGV4KSlcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlICdDaGVja2JveCc6XHJcbiAgICAgICAgICAgIHF1ZXN0aW9uc0FycmF5LnB1c2godGhpcy5nZW5lcmF0ZU11bHRpcGxlQ2hvaWNlKCdjaGVja2JveCcscXVlc3Rpb24sIGluZGV4KSlcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlICdEcm9wZG93bic6XHJcbiAgICAgICAgICAgIHF1ZXN0aW9uc0FycmF5LnB1c2godGhpcy5nZW5lcmF0ZU11bHRpcGxlQ2hvaWNlKCdkcm9wZG93bicscXVlc3Rpb24sIGluZGV4KSlcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlICdEYXRlICYgVGltZSc6XHJcbiAgICAgICAgICAgIHF1ZXN0aW9uc0FycmF5LnB1c2godGhpcy5nZW5lcmF0ZURhdGVUaW1lKCdkYXRlLXRpbWUnLHF1ZXN0aW9uLCBpbmRleCkpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSAnRmlsZSBVcGxvYWQnOlxyXG4gICAgICAgICAgICBxdWVzdGlvbnNBcnJheS5wdXNoKHRoaXMuZ2VuZXJhdGVGaWxlVXBsb2FkKHF1ZXN0aW9uLCBpbmRleCkpXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIC8vIE5vIG5lZWQgdG8gZG8gYW55dGhpbmcgZm9yIGRlZmF1bHRcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZyhcInF1ZXN0aW9uc1wiLCBxdWVzdGlvbnNBcnJheSlcclxuICAgIHRoaXMuY29udmVydGVkRGF0YS5hc3Nlc3NtZW50RGF0YS5lbGVtZW50cyA9IHF1ZXN0aW9uc0FycmF5O1xyXG4gIH1cclxuICBjb2xNYXA6IGFueSA9IHtcclxuICAgIHR5cGU6IDAsXHJcbiAgICB0aXRsZTogMSxcclxuICAgIHNjb3JlOiAyLFxyXG4gICAgb3B0MTogMyxcclxuICAgIG9wdDI6IDQsXHJcbiAgICBvcHQzOiA1LFxyXG4gICAgb3B0NDogNixcclxuICAgIG9wdDU6IDcsXHJcbiAgICBvcHQ2OiA4LFxyXG4gICAgcmVxdWlyZWQ6IDksXHJcbiAgICBmYWlsZWQ6IDEwLFxyXG4gICAgZGVzY3JpcHRpb246IDExLFxyXG4gICAgcGxhY2Vob2xkZXI6IDEyLFxyXG4gICAgY29tbWVudDogMTMsXHJcbiAgICBvdGhlcjogMTQsXHJcbiAgICByYW5kb21pemU6IDE1LFxyXG4gICAgYWxpZ25tZW50OiAxNixcclxuICAgIHVzZXJhdHRhY2htZW50OiAxNyxcclxuICAgIHVzZXJjb21tZW50OiAxOFxyXG4gIH1cclxuICBnZW5lcmF0ZVNpbmdsZVRleHRib3godHlwZTpzdHJpbmcscXVlc3Rpb246IGFueSwgaW5kZXg6IGFueSkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdHlwZTogJ3NpbmdsZS10ZXh0Ym94JywgbmFtZTogYFF1ZXN0aW9uXyR7aW5kZXh9YCwgcGFnZTogMSxcclxuICAgICAgaGFzVmFsaWRhdGlvbjogZmFsc2UsIHZhbGlkYXRpb25UeXBlOiAnJywgaXNSZXF1aXJlZDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnJlcXVpcmVkXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIGhhc0NoYXJhY3Rlckxlbmd0aDogZmFsc2UsIG1pbkNoYXJhY3Rlckxlbmd0aDogMCxcclxuICAgICAgbWF4Q2hhcmFjdGVyTGVuZ3RoOiAxMDAsIHRpdGxlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udGl0bGVdPy50b1N0cmluZygpPy50cmltKCkgPz8gJycsXHJcbiAgICAgIGhhc0Rlc2NyaXB0aW9uOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uZGVzY3JpcHRpb25dPy50b1N0cmluZygpPy50cmltKCk/Lmxlbmd0aCA/IHRydWUgOiBmYWxzZSwgZGVzY3JpcHRpb246IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5kZXNjcmlwdGlvbl0/LnRvU3RyaW5nKCk/LnRyaW0oKSA/PyAnJyxcclxuICAgICAgaGFzQ29tbWVudHM6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy51c2VyY29tbWVudF0/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlLCBjb21tZW50czogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmNvbW1lbnRdPy50b1N0cmluZygpPy50cmltKCksXHJcbiAgICAgIHJhbmRvbWl6ZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnJhbmRvbWl6ZV0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLCBoYXNPdGhlcjogcXVlc3Rpb25bdGhpcy5jb2xNYXA/Lm90aGVyXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIG90aGVyVmFsdWU6ICdPdGhlcicsIGFsaWdubWVudDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmFsaWdubWVudF0gPT09ICdZZXMnID8gdHJ1ZSA6IGZhbHNlLCByZXZlcnNlOiBmYWxzZSxcclxuICAgICAgaXNSZXNwb25kZW50QXR0YWNobWVudDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJhdHRhY2htZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIHVzZXJBdHRhY2hlZEZpbGVzOiBbXSwgaXNSZXNwb25kZW50Q29tbWVudDogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJjb21tZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsXHJcbiAgICAgIHZpc2liaWxpdHlMb2dpYzogW10sXHJcbiAgICAgIG90aGVyQ29uZmlnOiB7IGNvbG9yOiBcIiMwMDAwMDBcIiwgaXNGYWlsZWQ6IGZhbHNlLCBzY29yZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnNjb3JlXSA/PyAxIH0sXHJcbiAgICAgIGNob2ljZXM6IFt7XHJcbiAgICAgICAgdGl0bGU6ICcnLFxyXG4gICAgICAgIHZhbHVlOiAxLFxyXG4gICAgICAgIGlzU2VsZWN0ZWQ6IGZhbHNlLFxyXG4gICAgICAgIHJlcXVpcmVkOiAwLFxyXG4gICAgICAgIGhhc0hlbHBpbmdMYWJlbDogZmFsc2UsXHJcbiAgICAgICAgaGVscGluZ0xhYmVsOiBcIlwiLFxyXG4gICAgICAgIGlzRmFpbGVkOiBmYWxzZSxcclxuICAgICAgICBzY29yZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnNjb3JlXSA/PyAxLFxyXG4gICAgICAgIGNvbG9yOiBcIiMwMDAwMDBcIlxyXG4gICAgICB9XVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGdlbmVyYXRlTXVsdGlwbGVDaG9pY2UodHlwZTpzdHJpbmcscXVlc3Rpb246IGFueSwgaW5kZXg6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2coXCJZbyBNYW5cIiwgcXVlc3Rpb24pXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0eXBlOiB0eXBlLCBuYW1lOiBgUXVlc3Rpb25fJHtpbmRleH1gLCBwYWdlOiAxLFxyXG4gICAgICBoYXNWYWxpZGF0aW9uOiBmYWxzZSwgdmFsaWRhdGlvblR5cGU6ICcnLCBpc1JlcXVpcmVkOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmVxdWlyZWRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgaGFzQ2hhcmFjdGVyTGVuZ3RoOiBmYWxzZSwgbWluQ2hhcmFjdGVyTGVuZ3RoOiAwLCBtYXhDaGFyYWN0ZXJMZW5ndGg6IDEwMCwgdGl0bGU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy50aXRsZV0/LnRvU3RyaW5nKCk/LnRyaW0oKSA/PyAnJyxcclxuICAgICAgaGFzRGVzY3JpcHRpb246IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5kZXNjcmlwdGlvbl0/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlLCBkZXNjcmlwdGlvbjogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmRlc2NyaXB0aW9uXT8udG9TdHJpbmcoKS50cmltKCkgPz8gJycsXHJcbiAgICAgIGhhc0NvbW1lbnRzOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uY29tbWVudF0/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlLCBjb21tZW50czogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmNvbW1lbnRdPy50b1N0cmluZygpLnRyaW0oKSxcclxuICAgICAgcmFuZG9taXplOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmFuZG9taXplXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIGhhc090aGVyOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ub3RoZXJdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgb3RoZXJWYWx1ZTogJ090aGVyJywgYWxpZ25tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uYWxpZ25tZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIHJldmVyc2U6IGZhbHNlLFxyXG4gICAgICBpc1Jlc3BvbmRlbnRBdHRhY2htZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmF0dGFjaG1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgdXNlckF0dGFjaGVkRmlsZXM6IFtdLFxyXG4gICAgICB2aXNpYmlsaXR5TG9naWM6IFtdLCBpc1Jlc3BvbmRlbnRDb21tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmNvbW1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgb3RoZXJDb25maWc6IHsgY29sb3I6IFwiIzAwMDAwMFwiLCBpc0ZhaWxlZDogZmFsc2UsIHNjb3JlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uc2NvcmVdID8/IDEgfSxcclxuICAgICAgY2hvaWNlczogdGhpcy5nZW5lcmF0ZUNob2ljZXMocXVlc3Rpb24pXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgZ2VuZXJhdGVEYXRlVGltZSh0eXBlOnN0cmluZyxxdWVzdGlvbjogYW55LCBpbmRleDogYW55KSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0eXBlOiB0eXBlLCBuYW1lOiBgUXVlc3Rpb25fJHtpbmRleH1gLCBwYWdlOiAxLFxyXG4gICAgICBoYXNWYWxpZGF0aW9uOiBmYWxzZSwgdmFsaWRhdGlvblR5cGU6ICcnLCBpc1JlcXVpcmVkOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmVxdWlyZWRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgaGFzQ2hhcmFjdGVyTGVuZ3RoOiBmYWxzZSwgbWluQ2hhcmFjdGVyTGVuZ3RoOiAwLCBtYXhDaGFyYWN0ZXJMZW5ndGg6IDEwMCwgdGl0bGU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy50aXRsZV0/LnRvU3RyaW5nKCk/LnRyaW0oKSA/PyAnJyxcclxuICAgICAgaGFzRGVzY3JpcHRpb246IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5kZXNjcmlwdGlvbl0/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlLCBkZXNjcmlwdGlvbjogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmRlc2NyaXB0aW9uXT8udG9TdHJpbmcoKT8udHJpbSgpID8/ICcnLFxyXG4gICAgICBoYXNDb21tZW50czogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJjb21tZW50XT8udG9TdHJpbmcoKT8udHJpbSgpPy5sZW5ndGggPyB0cnVlIDogZmFsc2UsIGNvbW1lbnRzOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uY29tbWVudF0/LnRvU3RyaW5nKCk/LnRyaW0oKSxcclxuICAgICAgcmFuZG9taXplOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmFuZG9taXplXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIGhhc090aGVyOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ub3RoZXJdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgb3RoZXJWYWx1ZTogJ090aGVyJywgYWxpZ25tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uYWxpZ25tZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIHJldmVyc2U6IGZhbHNlLFxyXG4gICAgICBpc1Jlc3BvbmRlbnRBdHRhY2htZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmF0dGFjaG1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgdXNlckF0dGFjaGVkRmlsZXM6IFtdLFxyXG4gICAgICB2aXNpYmlsaXR5TG9naWM6IFtdLCBpc1Jlc3BvbmRlbnRDb21tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmNvbW1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgb3RoZXJDb25maWc6IHsgY29sb3I6IFwiIzAwMDAwMFwiLCBpc0ZhaWxlZDogZmFsc2UsIHNjb3JlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uc2NvcmVdID8/IDEgfSxcclxuICAgICAgY2hvaWNlczogW3tcclxuICAgICAgICB0aXRsZTogJycsXHJcbiAgICAgICAgdmFsdWU6IDEsXHJcbiAgICAgICAgaXNTZWxlY3RlZDogZmFsc2UsXHJcbiAgICAgICAgcmVxdWlyZWQ6IDAsXHJcbiAgICAgICAgaGFzSGVscGluZ0xhYmVsOiBmYWxzZSxcclxuICAgICAgICBoZWxwaW5nTGFiZWw6IFwiXCIsXHJcbiAgICAgICAgaXNGYWlsZWQ6IGZhbHNlLFxyXG4gICAgICAgIHNjb3JlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uc2NvcmVdID8/IDEsXHJcbiAgICAgICAgY29sb3I6IFwiIzAwMDAwMFwiXHJcbiAgICAgIH1dLFxyXG4gICAgICBoYXNEYXRlOiB0cnVlLFxyXG4gICAgICBoYXNUaW1lOiBmYWxzZSxcclxuICAgICAgZGF0ZUZvcm1hdDogXCJERC9NTS9ZWVlZXCIsXHJcbiAgICAgIHRpbWVGb3JtYXQ6IDI0LFxyXG4gICAgICBkYXRlOiB7XHJcbiAgICAgICAgdGl0bGU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5wbGFjZWhvbGRlcl0gPz8gJ1NlbGVjdCBEYXRlJyxcclxuICAgICAgICB2YWx1ZTogXCJcIlxyXG4gICAgICB9LFxyXG4gICAgICB0aW1lOiB7XHJcbiAgICAgICAgdGl0bGU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5wbGFjZWhvbGRlcl0gPz8gJ1NlbGVjdCBUaW1lJyxcclxuICAgICAgICB2YWx1ZTogXCJcIlxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICB9XHJcbiAgZ2VuZXJhdGVGaWxlVXBsb2FkKHF1ZXN0aW9uOiBhbnksIGluZGV4OiBhbnkpIHtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0eXBlOiAnZmlsZS11cGxvYWQnLCBuYW1lOiBgUXVlc3Rpb25fJHtpbmRleH1gLCBwYWdlOiAxLFxyXG4gICAgICBoYXNWYWxpZGF0aW9uOiBmYWxzZSwgdmFsaWRhdGlvblR5cGU6ICcnLCBpc1JlcXVpcmVkOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmVxdWlyZWRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgaGFzQ2hhcmFjdGVyTGVuZ3RoOiBmYWxzZSwgbWluQ2hhcmFjdGVyTGVuZ3RoOiAwLFxyXG4gICAgICBtYXhDaGFyYWN0ZXJMZW5ndGg6IDEwMCwgdGl0bGU6IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy50aXRsZV0/LnRvU3RyaW5nKCk/LnRyaW0oKSA/PyAnJyxcclxuICAgICAgaGFzRGVzY3JpcHRpb246IHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5kZXNjcmlwdGlvbl0/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlLCBkZXNjcmlwdGlvbjogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LmRlc2NyaXB0aW9uXT8udG9TdHJpbmcoKT8udHJpbSgpID8/ICcnLFxyXG4gICAgICBoYXNDb21tZW50czogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnVzZXJjb21tZW50XT8udG9TdHJpbmcoKT8udHJpbSgpPy5sZW5ndGggPyB0cnVlIDogZmFsc2UsIGNvbW1lbnRzOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uY29tbWVudF0/LnRvU3RyaW5nKCk/LnRyaW0oKSxcclxuICAgICAgcmFuZG9taXplOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ucmFuZG9taXplXSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIGhhc090aGVyOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8ub3RoZXJdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgb3RoZXJWYWx1ZTogJ090aGVyJywgYWxpZ25tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uYWxpZ25tZW50XSA9PT0gJ1llcycgPyB0cnVlIDogZmFsc2UsIHJldmVyc2U6IGZhbHNlLFxyXG4gICAgICBpc1Jlc3BvbmRlbnRBdHRhY2htZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmF0dGFjaG1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSwgdXNlckF0dGFjaGVkRmlsZXM6IFtdLFxyXG4gICAgICB2aXNpYmlsaXR5TG9naWM6IFtdLCBpc1Jlc3BvbmRlbnRDb21tZW50OiBxdWVzdGlvblt0aGlzLmNvbE1hcD8udXNlcmNvbW1lbnRdID09PSAnWWVzJyA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgb3RoZXJDb25maWc6IHsgY29sb3I6IFwiIzAwMDAwMFwiLCBpc0ZhaWxlZDogZmFsc2UsIHNjb3JlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uc2NvcmVdID8/IDEgfSxcclxuICAgICAgY2hvaWNlczogW3tcclxuICAgICAgICB0aXRsZTogJycsXHJcbiAgICAgICAgdmFsdWU6IDEsXHJcbiAgICAgICAgaXNTZWxlY3RlZDogZmFsc2UsXHJcbiAgICAgICAgcmVxdWlyZWQ6IDAsXHJcbiAgICAgICAgaGFzSGVscGluZ0xhYmVsOiBmYWxzZSxcclxuICAgICAgICBoZWxwaW5nTGFiZWw6IFwiXCIsXHJcbiAgICAgICAgaXNGYWlsZWQ6IGZhbHNlLFxyXG4gICAgICAgIHNjb3JlOiBxdWVzdGlvblt0aGlzLmNvbE1hcD8uc2NvcmVdID8/IDEsXHJcbiAgICAgICAgY29sb3I6IFwiIzAwMDAwMFwiXHJcbiAgICAgIH1dLFxyXG4gICAgICBhbGxvd2VkRmlsZVR5cGVzOiB7XHJcbiAgICAgICAgcGRmOiB0cnVlLFxyXG4gICAgICAgIGRvYzogdHJ1ZSxcclxuICAgICAgICBwbmc6IHRydWUsXHJcbiAgICAgICAganBnOiB0cnVlLFxyXG4gICAgICAgIGdpZjogdHJ1ZVxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGdlbmVyYXRlQ2hvaWNlcyhxdWVzdGlvbjogYW55KSB7XHJcbiAgICBjb25zdCBvcHRpb25zID0gW3F1ZXN0aW9uW3RoaXMuY29sTWFwPy5vcHQxXSwgcXVlc3Rpb25bdGhpcy5jb2xNYXA/Lm9wdDJdLCBxdWVzdGlvblt0aGlzLmNvbE1hcD8ub3B0M10sIHF1ZXN0aW9uW3RoaXMuY29sTWFwPy5vcHQ0XSwgcXVlc3Rpb25bdGhpcy5jb2xNYXA/Lm9wdDVdLCBxdWVzdGlvblt0aGlzLmNvbE1hcD8ub3B0Nl1dLmZpbHRlcigoZWxlOiBhbnkpID0+IGVsZSk7XHJcbiAgICBvcHRpb25zLmZvckVhY2goKGVsZTphbnkpID0+e1xyXG4gICAgICBpZihlbGUpe1xyXG4gICAgICAgIGVsZS50b1N0cmluZygpPy50cmltKCk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgICBpZiAob3B0aW9ucz8ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIG9wdGlvbnMucHVzaCgnJylcclxuICAgIH1cclxuICAgIGNvbnN0IG9wdGlvbk1hcDogYW55ID0ge1xyXG4gICAgICAnT3B0aW9uIDEnOiAzLFxyXG4gICAgICAnT3B0aW9uIDInOiA0LFxyXG4gICAgICAnT3B0aW9uIDMnOiA1LFxyXG4gICAgICAnT3B0aW9uIDQnOiA2LFxyXG4gICAgICAnT3B0aW9uIDUnOiA3LFxyXG4gICAgICAnT3B0aW9uIDYnOiA4LFxyXG4gICAgfVxyXG4gICAgb3B0aW9ucy5mb3JFYWNoKChjaG9pY2U6IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICBvcHRpb25zW2luZGV4XSA9IHtcclxuICAgICAgICB0aXRsZTogKGNob2ljZSAmJiB0eXBlb2YgKGNob2ljZSkgPT0gJ3N0cmluZycpPyBjaG9pY2UgOiBjaG9pY2UudG9TdHJpbmcoKSA/PyAnJyxcclxuICAgICAgICB2YWx1ZTogMSxcclxuICAgICAgICBpc1NlbGVjdGVkOiBmYWxzZSxcclxuICAgICAgICByZXF1aXJlZDogMCxcclxuICAgICAgICBoYXNIZWxwaW5nTGFiZWw6IGZhbHNlLFxyXG4gICAgICAgIGhlbHBpbmdMYWJlbDogXCJcIixcclxuICAgICAgICBpc0ZhaWxlZDogKGNob2ljZT8udG9TdHJpbmcoKT8udHJpbSgpID09IHF1ZXN0aW9uW29wdGlvbk1hcFtxdWVzdGlvblt0aGlzLmNvbE1hcD8uZmFpbGVkXV1dKSA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgICBzY29yZTogcXVlc3Rpb25bdGhpcy5jb2xNYXA/LnNjb3JlXSA/PyAxLFxyXG4gICAgICAgIGNvbG9yOiBcIiMwMDAwMDBcIlxyXG4gICAgICB9XHJcbiAgICB9KVxyXG5cclxuICAgIHJldHVybiBvcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldHRpbmdzOiBhbnkgPSB7XHJcbiAgICBhc3Nlc3NtZW50TW9kZTogZmFsc2UsXHJcbiAgICBkZWZhdWx0U2NvcmU6IDEsXHJcbiAgICBuZWdhdGl2ZVNjb3JlQ3JpdGVyaWE6ICdGQUlMRUQnLFxyXG4gICAgbmVnYXRpdmVTY29yZTogMCxcclxuICAgIHdlaWdodGFnZUVuYWJsZWQ6IGZhbHNlLFxyXG4gICAgc2V0dGluZ3NFbmFibGVkOiBmYWxzZVxyXG4gIH1cclxuXHJcbiAgY2hlY2tGb3JtYXQoYXNzZXNzbWVudERhdGE6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgLy9Db21wbGV0bHkgYmxhbmsgZXhjZWwgc2hlZXRcclxuICAgIGlmIChhc3Nlc3NtZW50RGF0YS5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnWW91IGhhdmUgdXBsb2FkZWQgdGhlIHdyb25nIHRlbXBsYXRlLiBQbGVhc2UgZG93bmxvYWQgdGhlIHRlbXBsYXRlIGFnYWluIHRvIHByb2NlZWQuJztcclxuICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy9JbnZhbGlkIFRlbXBhbHRlXHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAoYXNzZXNzbWVudERhdGFbMl1bMF0gIT09IFwiQXNzZXNzbWVudCBOYW1lXFwqXCJcclxuICAgICAgICB8fCBhc3Nlc3NtZW50RGF0YVszXVswXSAhPT0gXCJEZXNjcmlwdGlvblwiXHJcbiAgICAgICAgfHwgYXNzZXNzbWVudERhdGFbNF1bMF0gIT09IFwiQXNzZXNzbWVudCBDYXRlZ29yeVxcKlwiXHJcbiAgICAgICAgfHwgYXNzZXNzbWVudERhdGFbNV1bMF0gIT09IFwiUXVlc3Rpb24gVHlwZVxcKlwiXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1lvdSBoYXZlIHVwbG9hZGVkIHRoZSB3cm9uZyB0ZW1wbGF0ZS4gUGxlYXNlIGRvd25sb2FkIHRoZSB0ZW1wbGF0ZSBhZ2FpbiB0byBwcm9jZWVkLic7XHJcbiAgICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCB7XHJcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1lvdSBoYXZlIHVwbG9hZGVkIHRoZSB3cm9uZyB0ZW1wbGF0ZS4gUGxlYXNlIGRvd25sb2FkIHRoZSB0ZW1wbGF0ZSBhZ2FpbiB0byBwcm9jZWVkLic7XHJcbiAgICAgIHRoaXMuaXNXcm9uZ0Zvcm1hdCA9IHRydWU7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vQ2hlY2sgQXNzZXNzbWVudCBuYW1lXHJcbiAgICB0cnl7XHJcbiAgICAgIGlmICghYXNzZXNzbWVudERhdGFbMl1bMV0gfHwgYXNzZXNzbWVudERhdGFbMl1bMV0gPT09IFwiXCIgfHwgYXNzZXNzbWVudERhdGFbMl1bMV0gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0VudGVyIGEgbmFtZSBmb3IgdGhpcyBBc3Nlc3NtZW50Lic7XHJcbiAgICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfWNhdGNoe1xyXG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdFbnRlciBhIG5hbWUgZm9yIHRoaXMgQXNzZXNzbWVudC4nO1xyXG4gICAgICB0aGlzLmlzV3JvbmdGb3JtYXQgPSB0cnVlO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgXHJcbiAgICAvL2NhdGVnb3J5IG5vdCBzZWxlY3RlZFxyXG4gICB0cnl7XHJcbiAgICBpZiAoIWFzc2Vzc21lbnREYXRhWzRdWzFdIHx8IGFzc2Vzc21lbnREYXRhWzRdWzFdID09PSBcIlwiIHx8IGFzc2Vzc21lbnREYXRhWzRdWzFdID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnU2VsZWN0IHRoZSBBc3Nlc3NtZW50IENhdGVnb3J5Lic7XHJcbiAgICAgIHRoaXMuaXNXcm9uZ0Zvcm1hdCA9IHRydWU7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICB9Y2F0Y2h7XHJcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdTZWxlY3QgdGhlIEFzc2Vzc21lbnQgQ2F0ZWdvcnkuJztcclxuICAgIHRoaXMuaXNXcm9uZ0Zvcm1hdCA9IHRydWU7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICAgfVxyXG4gIFxyXG4gICAgLy9Eb2VzIG5vdCBjb250YWlucyBhbnkgcXVlc3Rpb25zXHJcbiAgICB0cnl7XHJcbiAgICAgIGlmIChhc3Nlc3NtZW50RGF0YS5zbGljZSg3KT8ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnWW91IGhhdmUgdXBsb2FkZWQgYSBibGFuayB0ZW1wbGF0ZS4gUGxlYXNlIGFkZCBxdWVzdGlvbnMgdG8gdGhpcyB0ZW1wbGF0ZSBhbmQgdXBsb2FkIGl0IGFnYWluLic7XHJcbiAgICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfWNhdGNoe1xyXG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdZb3UgaGF2ZSB1cGxvYWRlZCBhIGJsYW5rIHRlbXBsYXRlLiBQbGVhc2UgYWRkIHF1ZXN0aW9ucyB0byB0aGlzIHRlbXBsYXRlIGFuZCB1cGxvYWQgaXQgYWdhaW4uJztcclxuICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICBcclxuXHJcblxyXG4gICAgLy9oYW5kbGUgdHlwZSBvZiBxdWVzdGlvbiBhbmQgb3B0aW9ucyBjb3VudFxyXG4gICAgZm9yIChsZXQgaSA9IDc7IGkgPD0gYXNzZXNzbWVudERhdGEubGVuZ3RoIC0gMTsgaSsrKSB7XHJcbiAgICAgIGlmIChhc3Nlc3NtZW50RGF0YVtpXVswXSAhPT0gJ011bHRpcGxlIENob2ljZScgJiZcclxuICAgICAgICBhc3Nlc3NtZW50RGF0YVtpXVswXSAhPT0gJ0NoZWNrYm94JyAmJlxyXG4gICAgICAgIGFzc2Vzc21lbnREYXRhW2ldWzBdICE9PSAnRHJvcGRvd24nICYmXHJcbiAgICAgICAgYXNzZXNzbWVudERhdGFbaV1bMF0gIT09ICdTaW5nbGUgVGV4dGJveCcgJiZcclxuICAgICAgICBhc3Nlc3NtZW50RGF0YVtpXVswXSAhPT0gJ0RhdGUgJiBUaW1lJyAmJlxyXG4gICAgICAgIGFzc2Vzc21lbnREYXRhW2ldWzBdICE9PSAnRmlsZSBVcGxvYWQnXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ1lvdSBoYXZlIHVwbG9hZGVkIHRoZSB3cm9uZyB0ZW1wbGF0ZS4gUGxlYXNlIGRvd25sb2FkIHRoZSB0ZW1wbGF0ZSBhZ2FpbiB0byBwcm9jZWVkLic7XHJcbiAgICAgICAgdGhpcy5pc1dyb25nRm9ybWF0ID0gdHJ1ZTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICAvLyBpZiAoYXNzZXNzbWVudERhdGFbaV1bMV0gPT09ICcnKSB7XHJcbiAgICAgIC8vICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnWW91IGhhdmUgdXBsb2FkZWQgdGhlIHdyb25nIHRlbXBsYXRlLiBQbGVhc2UgZG93bmxvYWQgdGhlIHRlbXBsYXRlIGFnYWluIHRvIHByb2NlZWQuJztcclxuICAgICAgLy8gICB0aGlzLmlzV3JvbmdGb3JtYXQgPSB0cnVlO1xyXG4gICAgICAvLyAgIHJldHVybiB0cnVlO1xyXG4gICAgICAvLyB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJyc7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBpbml0aWFsaXplRW1wdHlSZXNwb25zZVNlZ21lbnQoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0aXRsZTogJycsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiAnJyxcclxuICAgICAgbWF4U2NvcmU6IDEwLFxyXG4gICAgICBzZWdtZW50czogW11cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHBvc3RBc3Nlc3NtZW50KGRhdGE6IGFueSkge1xyXG4gICAgdGhpcy5pc1Nob3dMb2FkZXIgPSB0cnVlO1xyXG4gICAgdGhpcy5hc3Nlc3NtZW50U2VydmljZS5jcmVhdGVBc3Nlc3NtZW50KHRoaXMuY29udmVydGVkRGF0YS5tZXRhZGF0YSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnBvc3RBc3Nlc3NtZW50RGV0YWlscyhyZXNwb25zZS5faWQsIGRhdGEubW9kZSwgZGF0YS5hc3Nlc3NtZW50RGV0YWlscyk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmlzU2hvd0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcG9zdEFzc2Vzc21lbnREZXRhaWxzKGlkOiBhbnksIG1vZGU6IGFueSwgYXNzZXNzbWVudERldGFpbHM6IGFueSkge1xyXG5cclxuICAgIHRoaXMuaXNVcGxvYWRlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5hdXRoLnByZXZpZXdQYW5lbC5uZXh0KGZhbHNlKTtcclxuICAgIGNvbnNvbGUubG9nKCd0aGlzLmlzVXBsb2FkZWQnLCB0aGlzLmlzVXBsb2FkZWQpXHJcbiAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICBxdWVzdGlvbjogYXNzZXNzbWVudERldGFpbHMsXHJcbiAgICAgIGFjdGlvbjogXCJxdWVzdGlvbnNfc2F2ZVwiLFxyXG4gICAgICBzdGF0ZTogbW9kZVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYXNzZXNzbWVudFNlcnZpY2Uuc2F2ZUFzc2Vzc21lbnREZXRhaWxzKGlkLCBwYXlsb2FkKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuYXNzZXNzbWVudERhdGEgPSB7fTtcclxuICAgICAgICB0aGlzLmlzU2hvd0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2hvd1NtaWxleSA9IHRydWU7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmlzU2hvd0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgc21pbGV5QWN0aW9uKGlkOiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKGlkKVxyXG4gICAgaWYgKGlkID09PSBzbWlsZXlBY3Rpb25zLlZJRVdfQVNTRVNTTUVOVFMpIHtcclxuICAgICAgdGhpcy5kaXNjb25uZWN0UmVmcmVzaC5lbWl0KGZhbHNlKTtcclxuICAgICAgLy8gVE9ETzogTmF2aWdhdGUgdG8gJy9tYW5hZ2UtYXNzZXNzbWVudCdcclxuICAgICAgbGV0IHVybDogc3RyaW5nO1xyXG4gICAgICBpZiAod2luZG93LmxvY2F0aW9uLmhvc3Quc3RhcnRzV2l0aCgnbG9jYWxob3N0JykpIHtcclxuICAgICAgICB1cmwgPSAnaHR0cDovLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdCArICcvbWFuYWdlLWFzc2Vzc21lbnQnO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHVybCA9ICdodHRwczovLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdCArICcvYXNzZXNzbWVudC9tYW5hZ2UtYXNzZXNzbWVudCc7XHJcbiAgICAgIH1cclxuICAgICAgY29uc29sZS5sb2codXJsKTtcclxuICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB1cmw7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5zaG93U21pbGV5ID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufSJdfQ==
|