@colijnit/sharedcomponents 261.1.0 → 261.1.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/.browserslistrc +16 -0
- package/.editorconfig +16 -0
- package/README.md +11 -8
- package/Sharedcomponents.iml +15 -0
- package/angular.json +177 -0
- package/build.xml +31 -0
- package/custom-login-bundle.webpack.config.js +3 -0
- package/karma.conf.js +44 -0
- package/move-assets.js +14 -0
- package/package.json +79 -33
- package/projects/sharedcomponents/.browserslistrc +16 -0
- package/projects/sharedcomponents/README.md +24 -0
- package/projects/sharedcomponents/karma.conf.js +44 -0
- package/projects/sharedcomponents/ng-package.json +17 -0
- package/projects/sharedcomponents/package.json +25 -0
- package/projects/sharedcomponents/src/lib/assets/dictionary/text.properties.ts +8 -0
- package/projects/sharedcomponents/src/lib/assets/icons/account.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/angle_left_solid.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/angle_right_solid.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/arrow_down.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/arrow_down_regular.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/arrow_fat_right.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/arrow_left_round_open.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/arrow_point_down.svg +6 -0
- package/projects/sharedcomponents/src/lib/assets/icons/arrow_point_left.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/arrow_point_right.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/arrow_point_up.svg +8 -0
- package/projects/sharedcomponents/src/lib/assets/icons/arrow_right_arrow_left_regular.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/at_solid.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/barcode_read_regular.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/bell_regular.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/bell_slash_regular.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/bring_forward_regular.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/camera.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/check_duotone.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/check_round.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/check_solid.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/chevron_right_regular.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/clock_regular.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/comment_regular.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/cross_skinny.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/cubes.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/delete_left_regular.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/delivery_truck.svg +12 -0
- package/projects/sharedcomponents/src/lib/assets/icons/detail_view.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/diagram_project_regular.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/dropzone.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/edit_pen_regular.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/email.svg +5 -0
- package/projects/sharedcomponents/src/lib/assets/icons/email_regular.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/employee.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/envelope_regular.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/eye_regular.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/file_export_regular.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/file_export_solid.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/file_magnifying_glass.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/file_pdf_regular.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/file_pdf_solid.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/file_signature_regular.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/folders_sharp_regular.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/house_blank_regular.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/ione_workflow.svg +62 -0
- package/projects/sharedcomponents/src/lib/assets/icons/list_ul_regular.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/lock.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/message_sms_regular.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/message_sms_solid.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/minus_simple.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/notification.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/paper_plane_top_solid.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/paperclip_regular.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/pdf.svg +15 -0
- package/projects/sharedcomponents/src/lib/assets/icons/person_digging_regular.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/pin_round_open.svg +11 -0
- package/projects/sharedcomponents/src/lib/assets/icons/plus_regular.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/plus_simple.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/print.svg +10 -0
- package/projects/sharedcomponents/src/lib/assets/icons/print_regular.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/print_solid.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/regular_file_signature_circle_plus.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/share_solid.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/signature_field.svg +9 -0
- package/projects/sharedcomponents/src/lib/assets/icons/solid_barcode_read_tag.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/square_plus_regular.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/tag_regular.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/task.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/trash_can_regular.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/trashbin.svg +2 -0
- package/projects/sharedcomponents/src/lib/assets/icons/x_solid.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/xml.svg +1 -0
- package/projects/sharedcomponents/src/lib/businessobject/build-images-and-documentation-result.ts +8 -0
- package/projects/sharedcomponents/src/lib/businessobject/document-allowed-extension.bo.ts +12 -0
- package/projects/sharedcomponents/src/lib/businessobject/drag-drop-container-element.ts +9 -0
- package/projects/sharedcomponents/src/lib/businessobject/drag-drop-container.ts +9 -0
- package/projects/sharedcomponents/src/lib/businessobject/user-group.bo.ts +34 -0
- package/projects/sharedcomponents/src/lib/components/access/read-write-access.component.ts +103 -0
- package/projects/sharedcomponents/src/lib/components/access/read-write-access.module.ts +15 -0
- package/projects/sharedcomponents/src/lib/components/activity-list/activity-list.component.ts +225 -0
- package/projects/sharedcomponents/src/lib/components/activity-list/activity-list.module.ts +22 -0
- package/projects/sharedcomponents/src/lib/components/activity-list-header/activity-list-header.component.ts +78 -0
- package/projects/sharedcomponents/src/lib/components/activity-list-header/activity-list-header.module.ts +27 -0
- package/projects/sharedcomponents/src/lib/components/activity-list-header/components/period-filter/period-filter-popup.component.ts +63 -0
- package/projects/sharedcomponents/src/lib/components/activity-list-header/components/period-filter/period-filter.component.ts +117 -0
- package/projects/sharedcomponents/src/lib/components/activity-list-header/components/period-filter/period-filter.module.ts +32 -0
- package/projects/sharedcomponents/src/lib/components/activity-overview-component/component-activity-overview.component.ts +224 -0
- package/projects/sharedcomponents/src/lib/components/activity-overview-component/component-activity-overview.module.ts +25 -0
- package/projects/sharedcomponents/src/lib/components/activity-overview-component/components/base-activity-overview.component.ts +342 -0
- package/projects/sharedcomponents/src/lib/components/app-file-dropzone/app-file-dropzone.component.ts +45 -0
- package/projects/sharedcomponents/src/lib/components/app-file-dropzone/app-file-dropzone.module.ts +21 -0
- package/projects/sharedcomponents/src/lib/components/custom-pdf/custom-pdf-dialog.component.ts +299 -0
- package/projects/sharedcomponents/src/lib/components/custom-pdf/custom-pdf-dialog.module.ts +28 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-base-view.component.ts +68 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-day-view.component.ts +35 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-event.component.ts +73 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-events.component.ts +53 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-half-hour-cell.component.ts +81 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-header.component.ts +405 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-hour-cell.component.ts +38 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-hour-view-labels.component.ts +50 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-hour-view.component.ts +46 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-month-view.component.ts +65 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-select-event.component.ts +39 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-view.component.ts +41 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-week-select-view.component.ts +63 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-week-view.component.ts +50 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/view-select.component.ts +78 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/calendar/calendar-all-months.component.ts +37 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/calendar/calendar-all-years.component.ts +52 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/calendar/calendar-header.component.ts +123 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/calendar/calendar-view.component.ts +200 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/calendar/calendar.component.ts +35 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/date-planning.component.ts +145 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/date-planning.module.ts +63 -0
- package/projects/sharedcomponents/src/lib/components/docsign/component/signature/signature.component.ts +82 -0
- package/projects/sharedcomponents/src/lib/components/docsign/component/signatures/signatures.component.ts +50 -0
- package/projects/sharedcomponents/src/lib/components/docsign/docsign.component.ts +293 -0
- package/projects/sharedcomponents/src/lib/components/docsign/docsign.module.ts +22 -0
- package/projects/sharedcomponents/src/lib/components/email-selector/email-selector.component.ts +121 -0
- package/projects/sharedcomponents/src/lib/components/email-selector/email-selector.module.ts +32 -0
- package/projects/sharedcomponents/src/lib/components/file-upload/file-upload.component.ts +241 -0
- package/projects/sharedcomponents/src/lib/components/file-upload/file-upload.module.ts +28 -0
- package/projects/sharedcomponents/src/lib/components/file-upload-popup/file-upload-popup.component.ts +451 -0
- package/projects/sharedcomponents/src/lib/components/file-upload-popup/file-upload-popup.module.ts +39 -0
- package/projects/sharedcomponents/src/lib/components/files-upload/components/base-file-upload.component.ts +549 -0
- package/projects/sharedcomponents/src/lib/components/files-upload/components/drag-drop-container.component.ts +131 -0
- package/projects/sharedcomponents/src/lib/components/files-upload/files-upload.component.ts +187 -0
- package/projects/sharedcomponents/src/lib/components/files-upload/files-upload.module.ts +54 -0
- package/projects/sharedcomponents/src/lib/components/form-builder/form-builder-user-form/components/forms-test-component/forms-test-component.component.ts +58 -0
- package/projects/sharedcomponents/src/lib/components/form-builder/form-builder-user-form/components/forms-test-component/forms-test-component.module.ts +19 -0
- package/projects/sharedcomponents/src/lib/components/form-builder/form-builder-user-form/components/user-form-input-scale/user-form-input-scale.component.ts +113 -0
- package/projects/sharedcomponents/src/lib/components/form-builder/form-builder-user-form/components/user-form-input-scale/user-form-input-scale.module.ts +21 -0
- package/projects/sharedcomponents/src/lib/components/form-builder/form-builder-user-form/form-builder-question.component.ts +161 -0
- package/projects/sharedcomponents/src/lib/components/form-builder/form-builder-user-form/form-builder-user-form.component.ts +296 -0
- package/projects/sharedcomponents/src/lib/components/form-builder/form-builder-user-form/form-builder-user-form.module.ts +53 -0
- package/projects/sharedcomponents/src/lib/components/image-display/image-display.component.ts +42 -0
- package/projects/sharedcomponents/src/lib/components/image-display/image-display.module.ts +22 -0
- package/projects/sharedcomponents/src/lib/components/key-pad/key-pad.component.ts +216 -0
- package/projects/sharedcomponents/src/lib/components/key-pad/key-pad.module.ts +20 -0
- package/projects/sharedcomponents/src/lib/components/layout-switcher/layout-switcher.component.ts +98 -0
- package/projects/sharedcomponents/src/lib/components/layout-switcher/layout-switcher.module.ts +21 -0
- package/projects/sharedcomponents/src/lib/components/linear-gauge/co-linear-gauge.component.ts +63 -0
- package/projects/sharedcomponents/src/lib/components/linear-gauge/co-linear-gauge.module.ts +17 -0
- package/projects/sharedcomponents/src/lib/components/login/components/input-code/input-code.component.ts +187 -0
- package/projects/sharedcomponents/src/lib/components/login/components/input-code/input-code.module.ts +19 -0
- package/projects/sharedcomponents/src/lib/components/login/components/login-base.component.ts +150 -0
- package/projects/sharedcomponents/src/lib/components/login/components/login-change-password.component.ts +178 -0
- package/projects/sharedcomponents/src/lib/components/login/components/login-mfa-code-entry.component.ts +113 -0
- package/projects/sharedcomponents/src/lib/components/login/components/login-mfa-code-setup.component.ts +44 -0
- package/projects/sharedcomponents/src/lib/components/login/components/login-username-password.component.ts +160 -0
- package/projects/sharedcomponents/src/lib/components/login/enum/mfa-send-method-type.enum.ts +6 -0
- package/projects/sharedcomponents/src/lib/components/login/interface/finger-print-result.interface.ts +4 -0
- package/projects/sharedcomponents/src/lib/components/login/localization/login-translation.ts +15 -0
- package/projects/sharedcomponents/src/lib/components/login/login.component.ts +184 -0
- package/projects/sharedcomponents/src/lib/components/login/login.module.ts +54 -0
- package/projects/sharedcomponents/src/lib/components/login/service/finger-print.service.ts +45 -0
- package/projects/sharedcomponents/src/lib/components/login/service/login-adapter.service.ts +109 -0
- package/projects/sharedcomponents/src/lib/components/login/service/login.service.ts +104 -0
- package/projects/sharedcomponents/src/lib/components/modify-task-form/components/activity-summary-block/activity-summary-block.component.ts +117 -0
- package/projects/sharedcomponents/src/lib/components/modify-task-form/components/activity-summary-block/activity-summary-block.module.ts +24 -0
- package/projects/sharedcomponents/src/lib/components/modify-task-form/components/activity-summary-block/style/_layout.scss +211 -0
- package/projects/sharedcomponents/src/lib/components/modify-task-form/components/base-activity-summary.component.ts +164 -0
- package/projects/sharedcomponents/src/lib/components/modify-task-form/components/creation-summary-block/creation-summary-block.component.ts +140 -0
- package/projects/sharedcomponents/src/lib/components/modify-task-form/components/creation-summary-block/creation-summary-block.module.ts +26 -0
- package/projects/sharedcomponents/src/lib/components/modify-task-form/components/executive-summary-block/executive-summary-block.component.ts +83 -0
- package/projects/sharedcomponents/src/lib/components/modify-task-form/components/executive-summary-block/executive-summary-block.module.ts +23 -0
- package/projects/sharedcomponents/src/lib/components/modify-task-form/components/notification-summary-block/notification-summary-block.component.ts +149 -0
- package/projects/sharedcomponents/src/lib/components/modify-task-form/components/notification-summary-block/notification-summary-block.module.ts +29 -0
- package/projects/sharedcomponents/src/lib/components/modify-task-form/components/status-summary-block/status-summary-block.component.ts +65 -0
- package/projects/sharedcomponents/src/lib/components/modify-task-form/components/status-summary-block/status-summary-block.module.ts +24 -0
- package/projects/sharedcomponents/src/lib/components/modify-task-form/components/task-details/task-details.component.ts +103 -0
- package/projects/sharedcomponents/src/lib/components/modify-task-form/components/task-details/task-details.module.ts +24 -0
- package/projects/sharedcomponents/src/lib/components/modify-task-form/modify-task-form.component.ts +340 -0
- package/projects/sharedcomponents/src/lib/components/modify-task-form/modify-task-form.module.ts +40 -0
- package/projects/sharedcomponents/src/lib/components/multi-property-toggler/multiple-property-toggler.component.ts +106 -0
- package/projects/sharedcomponents/src/lib/components/multi-property-toggler/multiple-property-toggler.module.ts +20 -0
- package/projects/sharedcomponents/src/lib/components/open-activity-list/component-activity-list.component.ts +377 -0
- package/projects/sharedcomponents/src/lib/components/open-activity-list/component-activity-list.module.ts +30 -0
- package/projects/sharedcomponents/src/lib/components/open-activity-list/components/base-open-activity-list.component.ts +299 -0
- package/projects/sharedcomponents/src/lib/components/open-activity-list/components/personal-activity-overview/personal-activity-overview.component.ts +40 -0
- package/projects/sharedcomponents/src/lib/components/open-activity-list/components/personal-activity-overview/personal-activity-overview.module..ts +18 -0
- package/projects/sharedcomponents/src/lib/components/preferred-planning/preferred-planning.component.ts +254 -0
- package/projects/sharedcomponents/src/lib/components/preferred-planning/preferred-planning.module.ts +30 -0
- package/projects/sharedcomponents/src/lib/components/preview-pdf-dialog/preview-pdf-dialog.component.ts +86 -0
- package/projects/sharedcomponents/src/lib/components/preview-pdf-dialog/preview-pdf-dialog.module.ts +26 -0
- package/projects/sharedcomponents/src/lib/components/role-email-selector/role-email-selector.component.ts +181 -0
- package/projects/sharedcomponents/src/lib/components/role-email-selector/role-email-selector.module.ts +29 -0
- package/projects/sharedcomponents/src/lib/components/screen-config-generator/enums/field-type.enum.ts +9 -0
- package/projects/sharedcomponents/src/lib/components/screen-config-generator/models/Config.ts +6 -0
- package/projects/sharedcomponents/src/lib/components/screen-config-generator/models/Field.ts +8 -0
- package/projects/sharedcomponents/src/lib/components/screen-config-generator/models/Header.ts +8 -0
- package/projects/sharedcomponents/src/lib/components/screen-config-generator/models/Module.ts +6 -0
- package/projects/sharedcomponents/src/lib/components/screen-config-generator/models/Rubric.ts +10 -0
- package/projects/sharedcomponents/src/lib/components/screen-config-generator/models/ScreenConfig.ts +9 -0
- package/projects/sharedcomponents/src/lib/components/screen-config-generator/models/SubCat.ts +9 -0
- package/projects/sharedcomponents/src/lib/components/screen-config-generator/models/SubRubric.ts +8 -0
- package/projects/sharedcomponents/src/lib/components/screen-config-generator/screen-config-generator.component.ts +539 -0
- package/projects/sharedcomponents/src/lib/components/screen-config-generator/screen-config-generator.module.ts +21 -0
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/additional-file-button/additional-file-button.component.ts +78 -0
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/additional-file-button/additional-file-button.module.ts +21 -0
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/layout-selection/layout-selection.component.ts +80 -0
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/layout-selection/layout-selection.module.ts +22 -0
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/printer-selection/printer-selection.component.ts +60 -0
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/printer-selection/printer-selection.module.ts +22 -0
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/send-method-combine-print-email/send-method-combine-print-email.component.ts +276 -0
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/send-method-combine-print-email/send-method-combine-print-email.module.ts +26 -0
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/send-method-email/send-method-email.component.ts +104 -0
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/send-method-email/send-method-email.module.ts +28 -0
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.component.ts +40 -0
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.module.ts +23 -0
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.component.ts +182 -0
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.module.ts +34 -0
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/signature-button/signature-button.component.ts +64 -0
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/signature-button/signature-button.module.ts +20 -0
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/model/email-address-viewmodel.ts +9 -0
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/send-method-dialog.component.ts +495 -0
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/send-method-dialog.module.ts +38 -0
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/send-method-params.interface.ts +13 -0
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/service/send-method.service.ts +86 -0
- package/projects/sharedcomponents/src/lib/components/simple-tags/simple-tags.component.ts +92 -0
- package/projects/sharedcomponents/src/lib/components/simple-tags/simple-tags.module.ts +26 -0
- package/projects/sharedcomponents/src/lib/components/simple-tags-form/simple-tags-form.component.ts +208 -0
- package/projects/sharedcomponents/src/lib/components/simple-tags-form/simple-tags-form.module.ts +24 -0
- package/projects/sharedcomponents/src/lib/components/statusbar/statusbar-popup.component.ts +118 -0
- package/projects/sharedcomponents/src/lib/components/statusbar/statusbar.component.ts +115 -0
- package/projects/sharedcomponents/src/lib/components/statusbar/statusbar.module.ts +25 -0
- package/projects/sharedcomponents/src/lib/components/stock/base/base-stock.component.ts +17 -0
- package/projects/sharedcomponents/src/lib/components/stock/components/allocation-stock-history/allocation-stock-history.component.ts +77 -0
- package/projects/sharedcomponents/src/lib/components/stock/components/order-commission-stock-history/order-commission-stock-history.component.ts +56 -0
- package/projects/sharedcomponents/src/lib/components/stock/components/order-stock-history/order-stock-history.component.ts +55 -0
- package/projects/sharedcomponents/src/lib/components/stock/components/order-stock-tab/order-stock-tab.component.ts +54 -0
- package/projects/sharedcomponents/src/lib/components/stock/components/order-supply-stock-history/order-supply-stock-history.component.ts +55 -0
- package/projects/sharedcomponents/src/lib/components/stock/components/order-tab/order-tab.component.ts +180 -0
- package/projects/sharedcomponents/src/lib/components/stock/components/stock-history/stock-history.component.ts +63 -0
- package/projects/sharedcomponents/src/lib/components/stock/components/stock-location/components/stock-location-popup/stock-location-popup.component.ts +266 -0
- package/projects/sharedcomponents/src/lib/components/stock/components/stock-location/stock-location.component.ts +373 -0
- package/projects/sharedcomponents/src/lib/components/stock/components/stock-prognose/stock-prognose.component.ts +71 -0
- package/projects/sharedcomponents/src/lib/components/stock/components/stock-tab/stock-tab.component.ts +41 -0
- package/projects/sharedcomponents/src/lib/components/stock/service/stock-module-screen-config.service.ts +23 -0
- package/projects/sharedcomponents/src/lib/components/stock/stock-history-tabs/stock-history-tabs.component.ts +32 -0
- package/projects/sharedcomponents/src/lib/components/stock/stock-information/stock-information.component.ts +86 -0
- package/projects/sharedcomponents/src/lib/components/stock/stock-information-grid/stock-information-grid.component.ts +500 -0
- package/projects/sharedcomponents/src/lib/components/stock/stock-tabs/stock-tabs.component.ts +191 -0
- package/projects/sharedcomponents/src/lib/components/stock/stock-transfer/co-drop-down-list-fields.interface.ts +4 -0
- package/projects/sharedcomponents/src/lib/components/stock/stock-transfer/stock-change-amount.component.ts +77 -0
- package/projects/sharedcomponents/src/lib/components/stock/stock-transfer/stock-transfer.component.ts +264 -0
- package/projects/sharedcomponents/src/lib/components/stock/stock-transfer-allocated/stock-transfer-allocated.component.ts +317 -0
- package/projects/sharedcomponents/src/lib/components/stock/stock.component.ts +249 -0
- package/projects/sharedcomponents/src/lib/components/stock/stock.module.ts +99 -0
- package/projects/sharedcomponents/src/lib/components/stock-statusbar/stock-statusbar.component.ts +23 -0
- package/projects/sharedcomponents/src/lib/components/stock-statusbar/stock-statusbar.module.ts +17 -0
- package/projects/sharedcomponents/src/lib/components/tab-bar/tab-bar.component.ts +110 -0
- package/projects/sharedcomponents/src/lib/components/tab-bar/tab-bar.module.ts +22 -0
- package/projects/sharedcomponents/src/lib/components/tab-bar/tab.interface.ts +8 -0
- package/projects/sharedcomponents/src/lib/components/tags/component/tag-join-label/tag-join-label.component.ts +61 -0
- package/projects/sharedcomponents/src/lib/components/tags/component/tag-label/tag-label.component.ts +47 -0
- package/projects/sharedcomponents/src/lib/components/tags/component/treeview/model/tree-view-node-item.ts +132 -0
- package/projects/sharedcomponents/src/lib/components/tags/component/treeview/treeview.component.ts +261 -0
- package/projects/sharedcomponents/src/lib/components/tags/tags.component.ts +192 -0
- package/projects/sharedcomponents/src/lib/components/tags/tags.module.ts +28 -0
- package/projects/sharedcomponents/src/lib/components/task-creator/style/_layout.scss +213 -0
- package/projects/sharedcomponents/src/lib/components/task-creator/task-creator.component.ts +497 -0
- package/projects/sharedcomponents/src/lib/components/task-creator/task-creator.module.ts +49 -0
- package/projects/sharedcomponents/src/lib/components/task-modifyer/task-modifier.component.ts +355 -0
- package/projects/sharedcomponents/src/lib/components/task-modifyer/task-modifyer.module..ts +32 -0
- package/projects/sharedcomponents/src/lib/components/tile-renderer/tile-render.component.ts +137 -0
- package/projects/sharedcomponents/src/lib/components/tile-renderer/tile-render.module.ts +26 -0
- package/projects/sharedcomponents/src/lib/components/workflow-info-tiles/components/workflow-info-tile.component.ts +59 -0
- package/projects/sharedcomponents/src/lib/components/workflow-info-tiles/components/workflow-info-tile.module.ts +22 -0
- package/projects/sharedcomponents/src/lib/components/workflow-info-tiles/workflow-info-tiles.component.ts +63 -0
- package/projects/sharedcomponents/src/lib/components/workflow-info-tiles/workflow-info-tiles.module.ts +22 -0
- package/projects/sharedcomponents/src/lib/components/workflow-notification-toggle/workflow-notification-toggle-popup.ts +55 -0
- package/projects/sharedcomponents/src/lib/components/workflow-notification-toggle/workflow-notification-toggle.component.ts +88 -0
- package/projects/sharedcomponents/src/lib/components/workflow-notification-toggle/workflow-notification-toggle.module.ts +34 -0
- package/projects/sharedcomponents/src/lib/decorator/input-boolean.decorator.ts +35 -0
- package/projects/sharedcomponents/src/lib/directives/absolute-overlay-template.directive.ts +26 -0
- package/projects/sharedcomponents/src/lib/directives/align-with.directive.ts +191 -0
- package/projects/sharedcomponents/src/lib/directives/click-outside.directive.ts +25 -0
- package/projects/sharedcomponents/src/lib/directives/directives.module.ts +22 -0
- package/projects/sharedcomponents/src/lib/enum/activity-cfg-name.enum.ts +28 -0
- package/projects/sharedcomponents/src/lib/enum/app-button-type.enum.ts +9 -0
- package/projects/sharedcomponents/src/lib/enum/calendar-view.enum.ts +10 -0
- package/projects/sharedcomponents/src/lib/enum/co-document-type.ts +11 -0
- package/projects/sharedcomponents/src/lib/enum/document-allowed-type.enum.ts +10 -0
- package/projects/sharedcomponents/src/lib/enum/document-email-report.enum.ts +16 -0
- package/projects/sharedcomponents/src/lib/enum/domain-multiple-name.enum.ts +11 -0
- package/projects/sharedcomponents/src/lib/enum/file-type.ts +12 -0
- package/projects/sharedcomponents/src/lib/enum/files-upload-config-objects.ts +25 -0
- package/projects/sharedcomponents/src/lib/enum/gauge-color.enum.ts +9 -0
- package/projects/sharedcomponents/src/lib/enum/icon.enum.ts +77 -0
- package/projects/sharedcomponents/src/lib/enum/internal-param.enum.ts +38 -0
- package/projects/sharedcomponents/src/lib/enum/keyboard-code.enum.ts +31 -0
- package/projects/sharedcomponents/src/lib/enum/language-code.enum.ts +6 -0
- package/projects/sharedcomponents/src/lib/enum/login-component-extra-action-type.enum.ts +4 -0
- package/projects/sharedcomponents/src/lib/enum/login-component-page.type.enum.ts +6 -0
- package/projects/sharedcomponents/src/lib/enum/login-component-query-variables-name.enum.ts +5 -0
- package/projects/sharedcomponents/src/lib/enum/month.enum.ts +15 -0
- package/projects/sharedcomponents/src/lib/enum/read-write-access-config-names.enum.ts +5 -0
- package/projects/sharedcomponents/src/lib/enum/shared-cfg-name.enum.ts +32 -0
- package/projects/sharedcomponents/src/lib/enum/table-name.enum.ts +85 -0
- package/projects/sharedcomponents/src/lib/enum/tag-category.enum.ts +20 -0
- package/projects/sharedcomponents/src/lib/enum/tags-component-config-names.ts +5 -0
- package/projects/sharedcomponents/src/lib/enum/thumb-three-way-state.ts +18 -0
- package/projects/sharedcomponents/src/lib/enum/tile-size-type.ts +5 -0
- package/projects/sharedcomponents/src/lib/enum/time-period.enum.ts +9 -0
- package/projects/sharedcomponents/src/lib/enum/user-form-mode.enum.ts +5 -0
- package/projects/sharedcomponents/src/lib/event/co-drag-event.ts +6 -0
- package/projects/sharedcomponents/src/lib/event/co-drop-event.ts +12 -0
- package/projects/sharedcomponents/src/lib/interface/operation-callback-activity.ts +6 -0
- package/projects/sharedcomponents/src/lib/interface/operation-callback-function-with-validation.ts +6 -0
- package/projects/sharedcomponents/src/lib/interface/operation-callback-simple-function.ts +4 -0
- package/projects/sharedcomponents/src/lib/model/agenda-event-per-day.model.ts +6 -0
- package/projects/sharedcomponents/src/lib/model/agenda-event.model.ts +19 -0
- package/projects/sharedcomponents/src/lib/model/agenda-null-objects.ts +11 -0
- package/projects/sharedcomponents/src/lib/model/constant/all-months.ts +17 -0
- package/projects/sharedcomponents/src/lib/model/date-range.ts +10 -0
- package/projects/sharedcomponents/src/lib/model/day.model.ts +9 -0
- package/projects/sharedcomponents/src/lib/model/icon-svg.ts +77 -0
- package/projects/sharedcomponents/src/lib/model/month.model.ts +11 -0
- package/projects/sharedcomponents/src/lib/model/send-method.ts +13 -0
- package/projects/sharedcomponents/src/lib/model/settings.ts +5 -0
- package/projects/sharedcomponents/src/lib/model/tag-tree-item.bo.ts +28 -0
- package/projects/sharedcomponents/src/lib/model/time-window.bo.ts +21 -0
- package/projects/sharedcomponents/src/lib/model/tree-object.ts +13 -0
- package/projects/sharedcomponents/src/lib/model/tree-view-default.model.ts +107 -0
- package/projects/sharedcomponents/src/lib/model/tree-view-node-default.model.ts +196 -0
- package/projects/sharedcomponents/src/lib/model/tree-view-node-item-options.model.ts +12 -0
- package/projects/sharedcomponents/src/lib/model/tree-view-node.model.ts +150 -0
- package/projects/sharedcomponents/src/lib/model/tree-view.model.ts +57 -0
- package/projects/sharedcomponents/src/lib/model/util/forms-null-object.ts +7 -0
- package/projects/sharedcomponents/src/lib/model/week.model.ts +5 -0
- package/projects/sharedcomponents/src/lib/model/weekday.model.ts +17 -0
- package/projects/sharedcomponents/src/lib/pipe/array-number.pipe.ts +14 -0
- package/projects/sharedcomponents/src/lib/pipe/file-type-image.pipe.ts +50 -0
- package/projects/sharedcomponents/src/lib/pipe/master-pipes.ts +9 -0
- package/projects/sharedcomponents/src/lib/pipe/ucfirst.pipe.ts +14 -0
- package/projects/sharedcomponents/src/lib/res/dictionary/dictionaries.ts +7 -0
- package/projects/sharedcomponents/src/lib/res/dictionary/text_de.properties.json +1 -0
- package/projects/sharedcomponents/src/lib/res/dictionary/text_en.properties.json +1 -0
- package/projects/sharedcomponents/src/lib/res/dictionary/text_fr.properties.json +1 -0
- package/projects/sharedcomponents/src/lib/res/dictionary/text_nl.properties.json +1 -0
- package/projects/sharedcomponents/src/lib/service/app-absolute-overlay-outlet.service.ts +20 -0
- package/projects/sharedcomponents/src/lib/service/drag-drop.service.ts +423 -0
- package/projects/sharedcomponents/src/lib/service/icon-cache.service.ts +51 -0
- package/projects/sharedcomponents/src/lib/service/options.service.ts +43 -0
- package/projects/sharedcomponents/src/lib/service/shared-connector.service.ts +863 -0
- package/projects/sharedcomponents/src/lib/service/shared-event.service.ts +9 -0
- package/projects/sharedcomponents/src/lib/service/shared-initializer.service.ts +44 -0
- package/projects/sharedcomponents/src/lib/service/shared.service.ts +244 -0
- package/projects/sharedcomponents/src/lib/service/stock.service.ts +124 -0
- package/projects/sharedcomponents/src/lib/translation/shared-components-dictionary.service.ts +73 -0
- package/projects/sharedcomponents/src/lib/translation/shared-components-translation.module.ts +12 -0
- package/projects/sharedcomponents/src/lib/translation/shared-localize.pipe.ts +21 -0
- package/projects/sharedcomponents/src/lib/typings/local/fingerprintjs2/index.d.ts +42 -0
- package/projects/sharedcomponents/src/lib/utils/array-utils.ts +225 -0
- package/projects/sharedcomponents/src/lib/utils/browser-utils.ts +124 -0
- package/projects/sharedcomponents/src/lib/utils/calendar.utils.ts +199 -0
- package/projects/sharedcomponents/src/lib/utils/check-precision-and-scale-result.ts +5 -0
- package/projects/sharedcomponents/src/lib/utils/co-document-shared-field-logic.ts +58 -0
- package/projects/sharedcomponents/src/lib/utils/date-utils.ts +302 -0
- package/projects/sharedcomponents/src/lib/utils/enum-utils.ts +149 -0
- package/projects/sharedcomponents/src/lib/utils/event-utils.ts +70 -0
- package/projects/sharedcomponents/src/lib/utils/form-utils.ts +33 -0
- package/projects/sharedcomponents/src/lib/utils/function/not-nill.function.ts +4 -0
- package/projects/sharedcomponents/src/lib/utils/is-nill.function.ts +4 -0
- package/projects/sharedcomponents/src/lib/utils/map-utils.ts +44 -0
- package/projects/sharedcomponents/src/lib/utils/number-utils.ts +439 -0
- package/projects/sharedcomponents/src/lib/utils/object-utils.ts +310 -0
- package/projects/sharedcomponents/src/lib/utils/ref-code-utils.ts +60 -0
- package/projects/sharedcomponents/src/lib/utils/string-utils.ts +102 -0
- package/projects/sharedcomponents/src/lib/utils/tree-utils.ts +63 -0
- package/projects/sharedcomponents/src/public-api.ts +50 -0
- package/projects/sharedcomponents/src/test.ts +27 -0
- package/projects/sharedcomponents/tsconfig.lib.json +18 -0
- package/projects/sharedcomponents/tsconfig.lib.prod.json +10 -0
- package/projects/sharedcomponents/tsconfig.spec.json +17 -0
- package/script/create-bundle-version.js +19 -0
- package/script/create-dictionaries.js +41 -0
- package/script/merge-icons.js +39 -0
- package/src/app/app-login.component.ts +18 -0
- package/src/app/app-module.service.ts +7 -0
- package/src/app/app-screen-config.service.ts +13 -0
- package/src/app/app.component.scss +31 -0
- package/src/app/app.component.spec.ts +31 -0
- package/src/app/app.component.ts +798 -0
- package/src/app/app.module.ts +100 -0
- package/src/app/bundle/index.html +14 -0
- package/src/app/bundle/login/login-bundle.component.scss +8 -0
- package/src/app/bundle/login/login-bundle.component.ts +150 -0
- package/src/app/bundle/login/login-bundle.module.ts +32 -0
- package/src/app/bundle/main-login-bundle.ts +11 -0
- package/src/app/bundle/polyfills.ts +63 -0
- package/src/app/bundle/shared-version.ts +7 -0
- package/src/app/test-data.service.ts +230 -0
- package/src/assets/.gitkeep +0 -0
- package/src/environments/environment.bundle.prod.ts +3 -0
- package/src/environments/environment.prod.ts +3 -0
- package/src/environments/environment.ts +16 -0
- package/src/favicon.ico +0 -0
- package/src/index.html +13 -0
- package/src/main.ts +12 -0
- package/src/polyfills.ts +53 -0
- package/src/styles.scss +92 -0
- package/src/test.ts +26 -0
- package/tsconfig.app.json +15 -0
- package/tsconfig.bundle.json +38 -0
- package/tsconfig.json +64 -0
- package/tsconfig.spec.json +18 -0
- package/webpack.login.bundle.config.js +32 -0
- package/bundles/colijnit-sharedcomponents.umd.js +0 -17989
- package/bundles/colijnit-sharedcomponents.umd.js.map +0 -1
- package/colijnit-sharedcomponents.d.ts +0 -143
- package/colijnit-sharedcomponents.metadata.json +0 -1
- package/esm2015/colijnit-sharedcomponents.js +0 -144
- package/esm2015/lib/businessobject/build-images-and-documentation-result.js +0 -2
- package/esm2015/lib/businessobject/drag-drop-container-element.js +0 -2
- package/esm2015/lib/businessobject/drag-drop-container.js +0 -7
- package/esm2015/lib/components/activity-list/activity-list.component.js +0 -192
- package/esm2015/lib/components/activity-list/activity-list.module.js +0 -24
- package/esm2015/lib/components/activity-list-header/activity-list-header.component.js +0 -67
- package/esm2015/lib/components/activity-list-header/activity-list-header.module.js +0 -28
- package/esm2015/lib/components/activity-list-header/components/period-filter/period-filter-popup.component.js +0 -55
- package/esm2015/lib/components/activity-list-header/components/period-filter/period-filter.component.js +0 -103
- package/esm2015/lib/components/activity-list-header/components/period-filter/period-filter.module.js +0 -33
- package/esm2015/lib/components/activity-overview-component/component-activity-overview.component.js +0 -215
- package/esm2015/lib/components/activity-overview-component/component-activity-overview.module.js +0 -26
- package/esm2015/lib/components/activity-overview-component/components/base-activity-overview.component.js +0 -283
- package/esm2015/lib/components/app-file-dropzone/app-file-dropzone.component.js +0 -47
- package/esm2015/lib/components/app-file-dropzone/app-file-dropzone.module.js +0 -20
- package/esm2015/lib/components/custom-pdf/custom-pdf-dialog.component.js +0 -279
- package/esm2015/lib/components/custom-pdf/custom-pdf-dialog.module.js +0 -27
- package/esm2015/lib/components/date-planning/component/agenda/agenda-base-view.component.js +0 -61
- package/esm2015/lib/components/date-planning/component/agenda/agenda-day-view.component.js +0 -36
- package/esm2015/lib/components/date-planning/component/agenda/agenda-event.component.js +0 -56
- package/esm2015/lib/components/date-planning/component/agenda/agenda-events.component.js +0 -47
- package/esm2015/lib/components/date-planning/component/agenda/agenda-half-hour-cell.component.js +0 -68
- package/esm2015/lib/components/date-planning/component/agenda/agenda-header.component.js +0 -366
- package/esm2015/lib/components/date-planning/component/agenda/agenda-hour-cell.component.js +0 -36
- package/esm2015/lib/components/date-planning/component/agenda/agenda-hour-view-labels.component.js +0 -50
- package/esm2015/lib/components/date-planning/component/agenda/agenda-hour-view.component.js +0 -46
- package/esm2015/lib/components/date-planning/component/agenda/agenda-month-view.component.js +0 -61
- package/esm2015/lib/components/date-planning/component/agenda/agenda-select-event.component.js +0 -39
- package/esm2015/lib/components/date-planning/component/agenda/agenda-view.component.js +0 -35
- package/esm2015/lib/components/date-planning/component/agenda/agenda-week-select-view.component.js +0 -64
- package/esm2015/lib/components/date-planning/component/agenda/agenda-week-view.component.js +0 -48
- package/esm2015/lib/components/date-planning/component/agenda/view-select.component.js +0 -75
- package/esm2015/lib/components/date-planning/component/calendar/calendar-all-months.component.js +0 -34
- package/esm2015/lib/components/date-planning/component/calendar/calendar-all-years.component.js +0 -48
- package/esm2015/lib/components/date-planning/component/calendar/calendar-header.component.js +0 -107
- package/esm2015/lib/components/date-planning/component/calendar/calendar-view.component.js +0 -178
- package/esm2015/lib/components/date-planning/component/calendar/calendar.component.js +0 -34
- package/esm2015/lib/components/date-planning/date-planning.component.js +0 -116
- package/esm2015/lib/components/date-planning/date-planning.module.js +0 -65
- package/esm2015/lib/components/docsign/component/signature/signature.component.js +0 -75
- package/esm2015/lib/components/docsign/component/signatures/signatures.component.js +0 -44
- package/esm2015/lib/components/docsign/docsign.component.js +0 -263
- package/esm2015/lib/components/docsign/docsign.module.js +0 -23
- package/esm2015/lib/components/email-selector/email-selector.component.js +0 -117
- package/esm2015/lib/components/email-selector/email-selector.module.js +0 -32
- package/esm2015/lib/components/file-upload/file-upload.component.js +0 -210
- package/esm2015/lib/components/file-upload/file-upload.module.js +0 -27
- package/esm2015/lib/components/file-upload-popup/file-upload-popup.component.js +0 -404
- package/esm2015/lib/components/file-upload-popup/file-upload-popup.module.js +0 -31
- package/esm2015/lib/components/files-upload/components/base-file-upload.component.js +0 -468
- package/esm2015/lib/components/files-upload/components/drag-drop-container.component.js +0 -115
- package/esm2015/lib/components/files-upload/files-upload.component.js +0 -148
- package/esm2015/lib/components/files-upload/files-upload.module.js +0 -47
- package/esm2015/lib/components/form-builder/form-builder-user-form/components/user-form-input-scale/user-form-input-scale.component.js +0 -98
- package/esm2015/lib/components/form-builder/form-builder-user-form/components/user-form-input-scale/user-form-input-scale.module.js +0 -23
- package/esm2015/lib/components/form-builder/form-builder-user-form/form-builder-question.component.js +0 -148
- package/esm2015/lib/components/form-builder/form-builder-user-form/form-builder-user-form.component.js +0 -266
- package/esm2015/lib/components/form-builder/form-builder-user-form/form-builder-user-form.module.js +0 -43
- package/esm2015/lib/components/image-display/image-display.component.js +0 -36
- package/esm2015/lib/components/image-display/image-display.module.js +0 -23
- package/esm2015/lib/components/key-pad/key-pad.component.js +0 -200
- package/esm2015/lib/components/key-pad/key-pad.module.js +0 -22
- package/esm2015/lib/components/layout-switcher/layout-switcher.component.js +0 -74
- package/esm2015/lib/components/layout-switcher/layout-switcher.module.js +0 -21
- package/esm2015/lib/components/linear-gauge/co-linear-gauge.component.js +0 -67
- package/esm2015/lib/components/linear-gauge/co-linear-gauge.module.js +0 -19
- package/esm2015/lib/components/modify-task-form/components/activity-summary-block/activity-summary-block.component.js +0 -100
- package/esm2015/lib/components/modify-task-form/components/activity-summary-block/activity-summary-block.module.js +0 -25
- package/esm2015/lib/components/modify-task-form/components/base-activity-summary.component.js +0 -131
- package/esm2015/lib/components/modify-task-form/components/creation-summary-block/creation-summary-block.component.js +0 -120
- package/esm2015/lib/components/modify-task-form/components/creation-summary-block/creation-summary-block.module.js +0 -27
- package/esm2015/lib/components/modify-task-form/components/executive-summary-block/executive-summary-block.component.js +0 -88
- package/esm2015/lib/components/modify-task-form/components/executive-summary-block/executive-summary-block.module.js +0 -24
- package/esm2015/lib/components/modify-task-form/components/notification-summary-block/notification-summary-block.component.js +0 -108
- package/esm2015/lib/components/modify-task-form/components/notification-summary-block/notification-summary-block.module.js +0 -28
- package/esm2015/lib/components/modify-task-form/components/status-summary-block/status-summary-block.component.js +0 -74
- package/esm2015/lib/components/modify-task-form/components/status-summary-block/status-summary-block.module.js +0 -25
- package/esm2015/lib/components/modify-task-form/components/task-details/task-details.component.js +0 -105
- package/esm2015/lib/components/modify-task-form/components/task-details/task-details.module.js +0 -25
- package/esm2015/lib/components/modify-task-form/modify-task-form.component.js +0 -293
- package/esm2015/lib/components/modify-task-form/modify-task-form.module.js +0 -40
- package/esm2015/lib/components/multi-property-toggler/multiple-property-toggler.component.js +0 -89
- package/esm2015/lib/components/multi-property-toggler/multiple-property-toggler.module.js +0 -21
- package/esm2015/lib/components/open-activity-list/component-activity-list.component.js +0 -296
- package/esm2015/lib/components/open-activity-list/component-activity-list.module.js +0 -30
- package/esm2015/lib/components/open-activity-list/components/base-open-activity-list.component.js +0 -266
- package/esm2015/lib/components/open-activity-list/components/personal-activity-overview/personal-activity-overview.component.js +0 -41
- package/esm2015/lib/components/open-activity-list/components/personal-activity-overview/personal-activity-overview.module..js +0 -19
- package/esm2015/lib/components/preferred-planning/preferred-planning.component.js +0 -218
- package/esm2015/lib/components/preferred-planning/preferred-planning.module.js +0 -25
- package/esm2015/lib/components/preview-pdf-dialog/preview-pdf-dialog.component.js +0 -77
- package/esm2015/lib/components/preview-pdf-dialog/preview-pdf-dialog.module.js +0 -26
- package/esm2015/lib/components/role-email-selector/role-email-selector.component.js +0 -159
- package/esm2015/lib/components/role-email-selector/role-email-selector.module.js +0 -29
- package/esm2015/lib/components/send-method-dialog/components/additional-file-button/additional-file-button.component.js +0 -64
- package/esm2015/lib/components/send-method-dialog/components/additional-file-button/additional-file-button.module.js +0 -23
- package/esm2015/lib/components/send-method-dialog/components/layout-selection/layout-selection.component.js +0 -73
- package/esm2015/lib/components/send-method-dialog/components/layout-selection/layout-selection.module.js +0 -24
- package/esm2015/lib/components/send-method-dialog/components/printer-selection/printer-selection.component.js +0 -58
- package/esm2015/lib/components/send-method-dialog/components/printer-selection/printer-selection.module.js +0 -24
- package/esm2015/lib/components/send-method-dialog/components/send-method-combine-print-email/send-method-combine-print-email.component.js +0 -239
- package/esm2015/lib/components/send-method-dialog/components/send-method-combine-print-email/send-method-combine-print-email.module.js +0 -28
- package/esm2015/lib/components/send-method-dialog/components/send-method-email/send-method-email.component.js +0 -94
- package/esm2015/lib/components/send-method-dialog/components/send-method-email/send-method-email.module.js +0 -30
- package/esm2015/lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.component.js +0 -42
- package/esm2015/lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.module.js +0 -25
- package/esm2015/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.component.js +0 -163
- package/esm2015/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.module.js +0 -36
- package/esm2015/lib/components/send-method-dialog/components/signature-button/signature-button.component.js +0 -57
- package/esm2015/lib/components/send-method-dialog/components/signature-button/signature-button.module.js +0 -22
- package/esm2015/lib/components/send-method-dialog/model/email-address-viewmodel.js +0 -7
- package/esm2015/lib/components/send-method-dialog/send-method-dialog.component.js +0 -404
- package/esm2015/lib/components/send-method-dialog/send-method-dialog.module.js +0 -39
- package/esm2015/lib/components/send-method-dialog/send-method-params.interface.js +0 -2
- package/esm2015/lib/components/send-method-dialog/service/send-method.service.js +0 -75
- package/esm2015/lib/components/simple-tags/simple-tags.component.js +0 -87
- package/esm2015/lib/components/simple-tags/simple-tags.module.js +0 -28
- package/esm2015/lib/components/simple-tags-form/simple-tags-form.component.js +0 -196
- package/esm2015/lib/components/simple-tags-form/simple-tags-form.module.js +0 -26
- package/esm2015/lib/components/statusbar/statusbar-popup.component.js +0 -114
- package/esm2015/lib/components/statusbar/statusbar.component.js +0 -86
- package/esm2015/lib/components/statusbar/statusbar.module.js +0 -27
- package/esm2015/lib/components/stock/base/base-stock.component.js +0 -18
- package/esm2015/lib/components/stock/components/allocation-stock-history/allocation-stock-history.component.js +0 -79
- package/esm2015/lib/components/stock/components/order-commission-stock-history/order-commission-stock-history.component.js +0 -58
- package/esm2015/lib/components/stock/components/order-stock-history/order-stock-history.component.js +0 -58
- package/esm2015/lib/components/stock/components/order-stock-tab/order-stock-tab.component.js +0 -58
- package/esm2015/lib/components/stock/components/order-supply-stock-history/order-supply-stock-history.component.js +0 -58
- package/esm2015/lib/components/stock/components/order-tab/order-tab.component.js +0 -162
- package/esm2015/lib/components/stock/components/stock-history/stock-history.component.js +0 -66
- package/esm2015/lib/components/stock/components/stock-location/components/stock-location-popup/stock-location-popup.component.js +0 -241
- package/esm2015/lib/components/stock/components/stock-location/stock-location.component.js +0 -327
- package/esm2015/lib/components/stock/components/stock-prognose/stock-prognose.component.js +0 -73
- package/esm2015/lib/components/stock/components/stock-tab/stock-tab.component.js +0 -42
- package/esm2015/lib/components/stock/service/stock-module-screen-config.service.js +0 -27
- package/esm2015/lib/components/stock/stock-history-tabs/stock-history-tabs.component.js +0 -33
- package/esm2015/lib/components/stock/stock-information/stock-information.component.js +0 -76
- package/esm2015/lib/components/stock/stock-information-grid/stock-information-grid.component.js +0 -457
- package/esm2015/lib/components/stock/stock-tabs/stock-tabs.component.js +0 -173
- package/esm2015/lib/components/stock/stock-transfer/co-drop-down-list-fields.interface.js +0 -2
- package/esm2015/lib/components/stock/stock-transfer/stock-change-amount.component.js +0 -72
- package/esm2015/lib/components/stock/stock-transfer/stock-transfer.component.js +0 -219
- package/esm2015/lib/components/stock/stock-transfer-allocated/stock-transfer-allocated.component.js +0 -273
- package/esm2015/lib/components/stock/stock.component.js +0 -211
- package/esm2015/lib/components/stock/stock.module.js +0 -86
- package/esm2015/lib/components/stock-statusbar/stock-statusbar.component.js +0 -23
- package/esm2015/lib/components/stock-statusbar/stock-statusbar.module.js +0 -19
- package/esm2015/lib/components/tab-bar/tab-bar.component.js +0 -98
- package/esm2015/lib/components/tab-bar/tab-bar.module.js +0 -23
- package/esm2015/lib/components/tab-bar/tab.interface.js +0 -2
- package/esm2015/lib/components/task-creator/task-creator.component.js +0 -410
- package/esm2015/lib/components/task-creator/task-creator.module.js +0 -40
- package/esm2015/lib/components/task-modifyer/task-modifier.component.js +0 -282
- package/esm2015/lib/components/task-modifyer/task-modifyer.module..js +0 -32
- package/esm2015/lib/components/tile-renderer/tile-render.component.js +0 -90
- package/esm2015/lib/components/tile-renderer/tile-render.module.js +0 -26
- package/esm2015/lib/components/workflow-info-tiles/components/workflow-info-tile.component.js +0 -52
- package/esm2015/lib/components/workflow-info-tiles/components/workflow-info-tile.module.js +0 -22
- package/esm2015/lib/components/workflow-info-tiles/workflow-info-tiles.component.js +0 -60
- package/esm2015/lib/components/workflow-info-tiles/workflow-info-tiles.module.js +0 -22
- package/esm2015/lib/components/workflow-notification-toggle/workflow-notification-toggle-popup.js +0 -53
- package/esm2015/lib/components/workflow-notification-toggle/workflow-notification-toggle.component.js +0 -81
- package/esm2015/lib/components/workflow-notification-toggle/workflow-notification-toggle.module.js +0 -34
- package/esm2015/lib/decorator/input-boolean.decorator.js +0 -34
- package/esm2015/lib/directives/absolute-overlay-template.directive.js +0 -29
- package/esm2015/lib/directives/align-with.directive.js +0 -174
- package/esm2015/lib/directives/click-outside.directive.js +0 -25
- package/esm2015/lib/directives/directives.module.js +0 -22
- package/esm2015/lib/enum/activity-cfg-name.enum.js +0 -29
- package/esm2015/lib/enum/app-button-type.enum.js +0 -11
- package/esm2015/lib/enum/calendar-view.enum.js +0 -12
- package/esm2015/lib/enum/document-email-report.enum.js +0 -18
- package/esm2015/lib/enum/domain-multiple-name.enum.js +0 -13
- package/esm2015/lib/enum/file-type.js +0 -14
- package/esm2015/lib/enum/files-upload-config-objects.js +0 -3
- package/esm2015/lib/enum/gauge-color.enum.js +0 -11
- package/esm2015/lib/enum/icon.enum.js +0 -78
- package/esm2015/lib/enum/internal-param.enum.js +0 -38
- package/esm2015/lib/enum/keyboard-code.enum.js +0 -33
- package/esm2015/lib/enum/language-code.enum.js +0 -8
- package/esm2015/lib/enum/month.enum.js +0 -17
- package/esm2015/lib/enum/read-write-access-config-names.enum.js +0 -2
- package/esm2015/lib/enum/shared-cfg-name.enum.js +0 -19
- package/esm2015/lib/enum/table-name.enum.js +0 -86
- package/esm2015/lib/enum/tag-category.enum.js +0 -22
- package/esm2015/lib/enum/tags-component-config-names.js +0 -2
- package/esm2015/lib/enum/thumb-three-way-state.js +0 -19
- package/esm2015/lib/enum/tile-size-type.js +0 -7
- package/esm2015/lib/enum/time-period.enum.js +0 -11
- package/esm2015/lib/enum/user-form-mode.enum.js +0 -7
- package/esm2015/lib/event/co-drag-event.js +0 -2
- package/esm2015/lib/event/co-drop-event.js +0 -2
- package/esm2015/lib/interface/activities-task-config-names.js +0 -2
- package/esm2015/lib/interface/key-value-pair.js +0 -2
- package/esm2015/lib/interface/operation-callback-activity.js +0 -5
- package/esm2015/lib/interface/operation-callback-function-with-validation.js +0 -5
- package/esm2015/lib/interface/operation-callback-simple-function.js +0 -4
- package/esm2015/lib/model/agenda-event-per-day.model.js +0 -6
- package/esm2015/lib/model/agenda-event.model.js +0 -8
- package/esm2015/lib/model/agenda-null-objects.js +0 -11
- package/esm2015/lib/model/constant/all-months.js +0 -17
- package/esm2015/lib/model/date-range.js +0 -5
- package/esm2015/lib/model/day.model.js +0 -7
- package/esm2015/lib/model/icon-svg.js +0 -77
- package/esm2015/lib/model/month.model.js +0 -11
- package/esm2015/lib/model/send-method.js +0 -8
- package/esm2015/lib/model/settings.js +0 -4
- package/esm2015/lib/model/tag-tree-item.bo.js +0 -16
- package/esm2015/lib/model/time-window.bo.js +0 -26
- package/esm2015/lib/model/tree-object.js +0 -15
- package/esm2015/lib/model/util/forms-null-object.js +0 -7
- package/esm2015/lib/model/week.model.js +0 -6
- package/esm2015/lib/model/weekday.model.js +0 -10
- package/esm2015/lib/pipe/array-number.pipe.js +0 -15
- package/esm2015/lib/pipe/file-type-image.pipe.js +0 -51
- package/esm2015/lib/pipe/master-pipes.js +0 -9
- package/esm2015/lib/pipe/ucfirst.pipe.js +0 -16
- package/esm2015/lib/res/dictionary/dictionaries.js +0 -9
- package/esm2015/lib/service/app-absolute-overlay-outlet.service.js +0 -20
- package/esm2015/lib/service/drag-drop.service.js +0 -365
- package/esm2015/lib/service/icon-cache.service.js +0 -51
- package/esm2015/lib/service/options.service.js +0 -48
- package/esm2015/lib/service/shared-connector.service.js +0 -932
- package/esm2015/lib/service/shared-event.service.js +0 -15
- package/esm2015/lib/service/shared.service.js +0 -252
- package/esm2015/lib/service/stock.service.js +0 -109
- package/esm2015/lib/translation/shared-components-dictionary.service.js +0 -69
- package/esm2015/lib/translation/shared-components-translation.module.js +0 -15
- package/esm2015/lib/translation/shared-localize.pipe.js +0 -26
- package/esm2015/lib/utils/array-utils.js +0 -202
- package/esm2015/lib/utils/browser-utils.js +0 -100
- package/esm2015/lib/utils/calendar.utils.js +0 -179
- package/esm2015/lib/utils/check-precision-and-scale-result.js +0 -2
- package/esm2015/lib/utils/check-within-stepped-bounds-result.js +0 -2
- package/esm2015/lib/utils/co-document-shared-field-logic.js +0 -50
- package/esm2015/lib/utils/date-utils.js +0 -264
- package/esm2015/lib/utils/enum-utils.js +0 -128
- package/esm2015/lib/utils/event-utils.js +0 -59
- package/esm2015/lib/utils/form-utils.js +0 -32
- package/esm2015/lib/utils/function/not-nill.function.js +0 -5
- package/esm2015/lib/utils/is-nill.function.js +0 -5
- package/esm2015/lib/utils/map-utils.js +0 -41
- package/esm2015/lib/utils/number-utils.js +0 -390
- package/esm2015/lib/utils/object-utils.js +0 -278
- package/esm2015/lib/utils/ref-code-utils.js +0 -49
- package/esm2015/lib/utils/string-utils.js +0 -97
- package/esm2015/public-api.js +0 -48
- package/fesm2015/colijnit-sharedcomponents.js +0 -18716
- package/fesm2015/colijnit-sharedcomponents.js.map +0 -1
- package/lib/businessobject/build-images-and-documentation-result.d.ts +0 -5
- package/lib/businessobject/drag-drop-container-element.d.ts +0 -6
- package/lib/businessobject/drag-drop-container.d.ts +0 -6
- package/lib/components/activity-list/activity-list.component.d.ts +0 -51
- package/lib/components/activity-list/activity-list.module.d.ts +0 -2
- package/lib/components/activity-list-header/activity-list-header.component.d.ts +0 -25
- package/lib/components/activity-list-header/activity-list-header.module.d.ts +0 -2
- package/lib/components/activity-list-header/components/period-filter/period-filter-popup.component.d.ts +0 -11
- package/lib/components/activity-list-header/components/period-filter/period-filter.component.d.ts +0 -26
- package/lib/components/activity-list-header/components/period-filter/period-filter.module.d.ts +0 -2
- package/lib/components/activity-overview-component/component-activity-overview.component.d.ts +0 -24
- package/lib/components/activity-overview-component/component-activity-overview.module.d.ts +0 -2
- package/lib/components/activity-overview-component/components/base-activity-overview.component.d.ts +0 -81
- package/lib/components/app-file-dropzone/app-file-dropzone.component.d.ts +0 -14
- package/lib/components/app-file-dropzone/app-file-dropzone.module.d.ts +0 -2
- package/lib/components/custom-pdf/custom-pdf-dialog.component.d.ts +0 -41
- package/lib/components/custom-pdf/custom-pdf-dialog.module.d.ts +0 -2
- package/lib/components/date-planning/component/agenda/agenda-base-view.component.d.ts +0 -21
- package/lib/components/date-planning/component/agenda/agenda-day-view.component.d.ts +0 -7
- package/lib/components/date-planning/component/agenda/agenda-event.component.d.ts +0 -18
- package/lib/components/date-planning/component/agenda/agenda-events.component.d.ts +0 -13
- package/lib/components/date-planning/component/agenda/agenda-half-hour-cell.component.d.ts +0 -18
- package/lib/components/date-planning/component/agenda/agenda-header.component.d.ts +0 -51
- package/lib/components/date-planning/component/agenda/agenda-hour-cell.component.d.ts +0 -9
- package/lib/components/date-planning/component/agenda/agenda-hour-view-labels.component.d.ts +0 -8
- package/lib/components/date-planning/component/agenda/agenda-hour-view.component.d.ts +0 -7
- package/lib/components/date-planning/component/agenda/agenda-month-view.component.d.ts +0 -10
- package/lib/components/date-planning/component/agenda/agenda-select-event.component.d.ts +0 -12
- package/lib/components/date-planning/component/agenda/agenda-view.component.d.ts +0 -12
- package/lib/components/date-planning/component/agenda/agenda-week-select-view.component.d.ts +0 -10
- package/lib/components/date-planning/component/agenda/agenda-week-view.component.d.ts +0 -9
- package/lib/components/date-planning/component/agenda/view-select.component.d.ts +0 -13
- package/lib/components/date-planning/component/calendar/calendar-all-months.component.d.ts +0 -9
- package/lib/components/date-planning/component/calendar/calendar-all-years.component.d.ts +0 -9
- package/lib/components/date-planning/component/calendar/calendar-header.component.d.ts +0 -23
- package/lib/components/date-planning/component/calendar/calendar-view.component.d.ts +0 -31
- package/lib/components/date-planning/component/calendar/calendar.component.d.ts +0 -10
- package/lib/components/date-planning/date-planning.component.d.ts +0 -29
- package/lib/components/date-planning/date-planning.module.d.ts +0 -2
- package/lib/components/docsign/component/signature/signature.component.d.ts +0 -16
- package/lib/components/docsign/component/signatures/signatures.component.d.ts +0 -12
- package/lib/components/docsign/docsign.component.d.ts +0 -99
- package/lib/components/docsign/docsign.module.d.ts +0 -2
- package/lib/components/email-selector/email-selector.component.d.ts +0 -33
- package/lib/components/email-selector/email-selector.module.d.ts +0 -2
- package/lib/components/file-upload/file-upload.component.d.ts +0 -49
- package/lib/components/file-upload/file-upload.module.d.ts +0 -2
- package/lib/components/file-upload-popup/file-upload-popup.component.d.ts +0 -79
- package/lib/components/file-upload-popup/file-upload-popup.module.d.ts +0 -2
- package/lib/components/files-upload/components/base-file-upload.component.d.ts +0 -98
- package/lib/components/files-upload/components/drag-drop-container.component.d.ts +0 -34
- package/lib/components/files-upload/files-upload.component.d.ts +0 -32
- package/lib/components/files-upload/files-upload.module.d.ts +0 -2
- package/lib/components/form-builder/form-builder-user-form/components/user-form-input-scale/user-form-input-scale.component.d.ts +0 -23
- package/lib/components/form-builder/form-builder-user-form/components/user-form-input-scale/user-form-input-scale.module.d.ts +0 -2
- package/lib/components/form-builder/form-builder-user-form/form-builder-question.component.d.ts +0 -32
- package/lib/components/form-builder/form-builder-user-form/form-builder-user-form.component.d.ts +0 -64
- package/lib/components/form-builder/form-builder-user-form/form-builder-user-form.module.d.ts +0 -2
- package/lib/components/image-display/image-display.component.d.ts +0 -14
- package/lib/components/image-display/image-display.module.d.ts +0 -2
- package/lib/components/key-pad/key-pad.component.d.ts +0 -38
- package/lib/components/key-pad/key-pad.module.d.ts +0 -2
- package/lib/components/layout-switcher/layout-switcher.component.d.ts +0 -16
- package/lib/components/layout-switcher/layout-switcher.module.d.ts +0 -2
- package/lib/components/linear-gauge/co-linear-gauge.component.d.ts +0 -11
- package/lib/components/linear-gauge/co-linear-gauge.module.d.ts +0 -2
- package/lib/components/modify-task-form/components/activity-summary-block/activity-summary-block.component.d.ts +0 -31
- package/lib/components/modify-task-form/components/activity-summary-block/activity-summary-block.module.d.ts +0 -2
- package/lib/components/modify-task-form/components/activity-summary-block/style/_layout.scss +0 -160
- package/lib/components/modify-task-form/components/base-activity-summary.component.d.ts +0 -51
- package/lib/components/modify-task-form/components/creation-summary-block/creation-summary-block.component.d.ts +0 -28
- package/lib/components/modify-task-form/components/creation-summary-block/creation-summary-block.module.d.ts +0 -2
- package/lib/components/modify-task-form/components/executive-summary-block/executive-summary-block.component.d.ts +0 -24
- package/lib/components/modify-task-form/components/executive-summary-block/executive-summary-block.module.d.ts +0 -2
- package/lib/components/modify-task-form/components/notification-summary-block/notification-summary-block.component.d.ts +0 -28
- package/lib/components/modify-task-form/components/notification-summary-block/notification-summary-block.module.d.ts +0 -2
- package/lib/components/modify-task-form/components/status-summary-block/status-summary-block.component.d.ts +0 -17
- package/lib/components/modify-task-form/components/status-summary-block/status-summary-block.module.d.ts +0 -2
- package/lib/components/modify-task-form/components/task-details/task-details.component.d.ts +0 -23
- package/lib/components/modify-task-form/components/task-details/task-details.module.d.ts +0 -2
- package/lib/components/modify-task-form/modify-task-form.component.d.ts +0 -56
- package/lib/components/modify-task-form/modify-task-form.module.d.ts +0 -2
- package/lib/components/multi-property-toggler/multiple-property-toggler.component.d.ts +0 -27
- package/lib/components/multi-property-toggler/multiple-property-toggler.module.d.ts +0 -2
- package/lib/components/open-activity-list/component-activity-list.component.d.ts +0 -78
- package/lib/components/open-activity-list/component-activity-list.module.d.ts +0 -2
- package/lib/components/open-activity-list/components/base-open-activity-list.component.d.ts +0 -48
- package/lib/components/open-activity-list/components/personal-activity-overview/personal-activity-overview.component.d.ts +0 -4
- package/lib/components/open-activity-list/components/personal-activity-overview/personal-activity-overview.module..d.ts +0 -2
- package/lib/components/preferred-planning/preferred-planning.component.d.ts +0 -34
- package/lib/components/preferred-planning/preferred-planning.module.d.ts +0 -2
- package/lib/components/preview-pdf-dialog/preview-pdf-dialog.component.d.ts +0 -18
- package/lib/components/preview-pdf-dialog/preview-pdf-dialog.module.d.ts +0 -2
- package/lib/components/role-email-selector/role-email-selector.component.d.ts +0 -44
- package/lib/components/role-email-selector/role-email-selector.module.d.ts +0 -2
- package/lib/components/send-method-dialog/components/additional-file-button/additional-file-button.component.d.ts +0 -22
- package/lib/components/send-method-dialog/components/additional-file-button/additional-file-button.module.d.ts +0 -2
- package/lib/components/send-method-dialog/components/layout-selection/layout-selection.component.d.ts +0 -20
- package/lib/components/send-method-dialog/components/layout-selection/layout-selection.module.d.ts +0 -2
- package/lib/components/send-method-dialog/components/printer-selection/printer-selection.component.d.ts +0 -16
- package/lib/components/send-method-dialog/components/printer-selection/printer-selection.module.d.ts +0 -2
- package/lib/components/send-method-dialog/components/send-method-combine-print-email/send-method-combine-print-email.component.d.ts +0 -53
- package/lib/components/send-method-dialog/components/send-method-combine-print-email/send-method-combine-print-email.module.d.ts +0 -2
- package/lib/components/send-method-dialog/components/send-method-email/send-method-email.component.d.ts +0 -25
- package/lib/components/send-method-dialog/components/send-method-email/send-method-email.module.d.ts +0 -2
- package/lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.component.d.ts +0 -11
- package/lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.module.d.ts +0 -2
- package/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.component.d.ts +0 -41
- package/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.module.d.ts +0 -2
- package/lib/components/send-method-dialog/components/signature-button/signature-button.component.d.ts +0 -16
- package/lib/components/send-method-dialog/components/signature-button/signature-button.module.d.ts +0 -2
- package/lib/components/send-method-dialog/model/email-address-viewmodel.d.ts +0 -5
- package/lib/components/send-method-dialog/send-method-dialog.component.d.ts +0 -103
- package/lib/components/send-method-dialog/send-method-dialog.module.d.ts +0 -2
- package/lib/components/send-method-dialog/send-method-params.interface.d.ts +0 -13
- package/lib/components/send-method-dialog/service/send-method.service.d.ts +0 -29
- package/lib/components/simple-tags/simple-tags.component.d.ts +0 -24
- package/lib/components/simple-tags/simple-tags.module.d.ts +0 -2
- package/lib/components/simple-tags-form/simple-tags-form.component.d.ts +0 -29
- package/lib/components/simple-tags-form/simple-tags-form.module.d.ts +0 -2
- package/lib/components/statusbar/statusbar-popup.component.d.ts +0 -25
- package/lib/components/statusbar/statusbar.component.d.ts +0 -29
- package/lib/components/statusbar/statusbar.module.d.ts +0 -2
- package/lib/components/stock/base/base-stock.component.d.ts +0 -6
- package/lib/components/stock/components/allocation-stock-history/allocation-stock-history.component.d.ts +0 -14
- package/lib/components/stock/components/order-commission-stock-history/order-commission-stock-history.component.d.ts +0 -11
- package/lib/components/stock/components/order-stock-history/order-stock-history.component.d.ts +0 -11
- package/lib/components/stock/components/order-stock-tab/order-stock-tab.component.d.ts +0 -13
- package/lib/components/stock/components/order-supply-stock-history/order-supply-stock-history.component.d.ts +0 -11
- package/lib/components/stock/components/order-tab/order-tab.component.d.ts +0 -41
- package/lib/components/stock/components/stock-history/stock-history.component.d.ts +0 -15
- package/lib/components/stock/components/stock-location/components/stock-location-popup/stock-location-popup.component.d.ts +0 -47
- package/lib/components/stock/components/stock-location/stock-location.component.d.ts +0 -72
- package/lib/components/stock/components/stock-prognose/stock-prognose.component.d.ts +0 -16
- package/lib/components/stock/components/stock-tab/stock-tab.component.d.ts +0 -9
- package/lib/components/stock/service/stock-module-screen-config.service.d.ts +0 -9
- package/lib/components/stock/stock-history-tabs/stock-history-tabs.component.d.ts +0 -7
- package/lib/components/stock/stock-information/stock-information.component.d.ts +0 -16
- package/lib/components/stock/stock-information-grid/stock-information-grid.component.d.ts +0 -75
- package/lib/components/stock/stock-tabs/stock-tabs.component.d.ts +0 -36
- package/lib/components/stock/stock-transfer/co-drop-down-list-fields.interface.d.ts +0 -4
- package/lib/components/stock/stock-transfer/stock-change-amount.component.d.ts +0 -18
- package/lib/components/stock/stock-transfer/stock-transfer.component.d.ts +0 -51
- package/lib/components/stock/stock-transfer-allocated/stock-transfer-allocated.component.d.ts +0 -59
- package/lib/components/stock/stock.component.d.ts +0 -67
- package/lib/components/stock/stock.module.d.ts +0 -2
- package/lib/components/stock-statusbar/stock-statusbar.component.d.ts +0 -4
- package/lib/components/stock-statusbar/stock-statusbar.module.d.ts +0 -2
- package/lib/components/tab-bar/tab-bar.component.d.ts +0 -21
- package/lib/components/tab-bar/tab-bar.module.d.ts +0 -2
- package/lib/components/tab-bar/tab.interface.d.ts +0 -7
- package/lib/components/task-creator/style/_layout.scss +0 -201
- package/lib/components/task-creator/task-creator.component.d.ts +0 -91
- package/lib/components/task-creator/task-creator.module.d.ts +0 -2
- package/lib/components/task-modifyer/task-modifier.component.d.ts +0 -67
- package/lib/components/task-modifyer/task-modifyer.module..d.ts +0 -2
- package/lib/components/tile-renderer/tile-render.component.d.ts +0 -35
- package/lib/components/tile-renderer/tile-render.module.d.ts +0 -2
- package/lib/components/workflow-info-tiles/components/workflow-info-tile.component.d.ts +0 -17
- package/lib/components/workflow-info-tiles/components/workflow-info-tile.module.d.ts +0 -2
- package/lib/components/workflow-info-tiles/workflow-info-tiles.component.d.ts +0 -22
- package/lib/components/workflow-info-tiles/workflow-info-tiles.module.d.ts +0 -2
- package/lib/components/workflow-notification-toggle/workflow-notification-toggle-popup.d.ts +0 -15
- package/lib/components/workflow-notification-toggle/workflow-notification-toggle.component.d.ts +0 -28
- package/lib/components/workflow-notification-toggle/workflow-notification-toggle.module.d.ts +0 -2
- package/lib/decorator/input-boolean.decorator.d.ts +0 -8
- package/lib/directives/absolute-overlay-template.directive.d.ts +0 -9
- package/lib/directives/align-with.directive.d.ts +0 -35
- package/lib/directives/click-outside.directive.d.ts +0 -7
- package/lib/directives/directives.module.d.ts +0 -2
- package/lib/enum/activity-cfg-name.enum.d.ts +0 -27
- package/lib/enum/app-button-type.enum.d.ts +0 -9
- package/lib/enum/calendar-view.enum.d.ts +0 -10
- package/lib/enum/document-email-report.enum.d.ts +0 -15
- package/lib/enum/domain-multiple-name.enum.d.ts +0 -10
- package/lib/enum/file-type.d.ts +0 -7
- package/lib/enum/files-upload-config-objects.d.ts +0 -22
- package/lib/enum/gauge-color.enum.d.ts +0 -9
- package/lib/enum/icon.enum.d.ts +0 -76
- package/lib/enum/internal-param.enum.d.ts +0 -34
- package/lib/enum/keyboard-code.enum.d.ts +0 -31
- package/lib/enum/language-code.enum.d.ts +0 -6
- package/lib/enum/month.enum.d.ts +0 -14
- package/lib/enum/read-write-access-config-names.enum.d.ts +0 -4
- package/lib/enum/shared-cfg-name.enum.d.ts +0 -14
- package/lib/enum/table-name.enum.d.ts +0 -84
- package/lib/enum/tag-category.enum.d.ts +0 -19
- package/lib/enum/tags-component-config-names.d.ts +0 -4
- package/lib/enum/thumb-three-way-state.d.ts +0 -6
- package/lib/enum/tile-size-type.d.ts +0 -4
- package/lib/enum/time-period.enum.d.ts +0 -8
- package/lib/enum/user-form-mode.enum.d.ts +0 -4
- package/lib/event/co-drag-event.d.ts +0 -5
- package/lib/event/co-drop-event.d.ts +0 -8
- package/lib/interface/operation-callback-activity.d.ts +0 -5
- package/lib/interface/operation-callback-function-with-validation.d.ts +0 -5
- package/lib/interface/operation-callback-simple-function.d.ts +0 -4
- package/lib/model/agenda-event-per-day.model.d.ts +0 -5
- package/lib/model/agenda-event.model.d.ts +0 -17
- package/lib/model/agenda-null-objects.d.ts +0 -10
- package/lib/model/constant/all-months.d.ts +0 -2
- package/lib/model/date-range.d.ts +0 -7
- package/lib/model/day.model.d.ts +0 -8
- package/lib/model/icon-svg.d.ts +0 -4
- package/lib/model/month.model.d.ts +0 -5
- package/lib/model/send-method.d.ts +0 -7
- package/lib/model/settings.d.ts +0 -3
- package/lib/model/tag-tree-item.bo.d.ts +0 -18
- package/lib/model/time-window.bo.d.ts +0 -13
- package/lib/model/tree-object.d.ts +0 -8
- package/lib/model/util/forms-null-object.d.ts +0 -6
- package/lib/model/week.model.d.ts +0 -4
- package/lib/model/weekday.model.d.ts +0 -16
- package/lib/pipe/array-number.pipe.d.ts +0 -4
- package/lib/pipe/file-type-image.pipe.d.ts +0 -12
- package/lib/pipe/master-pipes.d.ts +0 -1
- package/lib/pipe/ucfirst.pipe.d.ts +0 -4
- package/lib/res/dictionary/dictionaries.d.ts +0 -31988
- package/lib/service/app-absolute-overlay-outlet.service.d.ts +0 -9
- package/lib/service/drag-drop.service.d.ts +0 -86
- package/lib/service/icon-cache.service.d.ts +0 -18
- package/lib/service/options.service.d.ts +0 -13
- package/lib/service/shared-connector.service.d.ts +0 -115
- package/lib/service/shared-event.service.d.ts +0 -4
- package/lib/service/shared.service.d.ts +0 -75
- package/lib/service/stock.service.d.ts +0 -39
- package/lib/translation/shared-components-dictionary.service.d.ts +0 -19
- package/lib/translation/shared-components-translation.module.d.ts +0 -2
- package/lib/translation/shared-localize.pipe.d.ts +0 -7
- package/lib/utils/array-utils.d.ts +0 -63
- package/lib/utils/browser-utils.d.ts +0 -15
- package/lib/utils/calendar.utils.d.ts +0 -14
- package/lib/utils/check-precision-and-scale-result.d.ts +0 -4
- package/lib/utils/co-document-shared-field-logic.d.ts +0 -7
- package/lib/utils/date-utils.d.ts +0 -44
- package/lib/utils/enum-utils.d.ts +0 -31
- package/lib/utils/event-utils.d.ts +0 -12
- package/lib/utils/form-utils.d.ts +0 -5
- package/lib/utils/function/not-nill.function.d.ts +0 -1
- package/lib/utils/is-nill.function.d.ts +0 -1
- package/lib/utils/map-utils.d.ts +0 -16
- package/lib/utils/number-utils.d.ts +0 -125
- package/lib/utils/object-utils.d.ts +0 -40
- package/lib/utils/ref-code-utils.d.ts +0 -10
- package/lib/utils/string-utils.d.ts +0 -39
- package/public-api.d.ts +0 -44
- /package/{lib → projects/sharedcomponents/src/lib}/components/access/read-write-access.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/access/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/access/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/access/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/access/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/activity-list/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/activity-list/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/activity-list/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/activity-list/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/activity-list-header/components/period-filter/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/activity-list-header/components/period-filter/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/activity-list-header/components/period-filter/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/activity-list-header/components/period-filter/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/activity-list-header/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/activity-list-header/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/activity-list-header/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/activity-list-header/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/activity-overview-component/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/activity-overview-component/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/activity-overview-component/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/activity-overview-component/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/app-file-dropzone/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/app-file-dropzone/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/app-file-dropzone/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/app-file-dropzone/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/custom-pdf/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/custom-pdf/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/custom-pdf/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/custom-pdf/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/date-planning/component/agenda/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/date-planning/component/agenda/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/date-planning/component/agenda/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/date-planning/component/agenda/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/date-planning/component/calendar/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/date-planning/component/calendar/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/date-planning/component/calendar/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/date-planning/component/calendar/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/date-planning/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/date-planning/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/date-planning/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/date-planning/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/docsign/component/signature/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/docsign/component/signature/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/docsign/component/signature/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/docsign/component/signature/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/docsign/component/signatures/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/docsign/component/signatures/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/docsign/component/signatures/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/docsign/component/signatures/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/docsign/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/docsign/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/docsign/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/docsign/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/email-selector/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/email-selector/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/email-selector/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/email-selector/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/file-upload/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/file-upload/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/file-upload/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/file-upload/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/file-upload-popup/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/file-upload-popup/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/file-upload-popup/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/file-upload-popup/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/files-upload/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/files-upload/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/files-upload/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/files-upload/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/form-builder/form-builder-user-form/components/forms-test-component/style/_layout.component.ts.child.3.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/form-builder/form-builder-user-form/components/forms-test-component/style/_material-definition.component.ts.child.0.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/form-builder/form-builder-user-form/components/forms-test-component/style/_theme.component.ts.child.2.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/form-builder/form-builder-user-form/components/forms-test-component/style/material.component.ts.child.1.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/form-builder/form-builder-user-form/components/user-form-input-scale/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/form-builder/form-builder-user-form/components/user-form-input-scale/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/form-builder/form-builder-user-form/components/user-form-input-scale/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/form-builder/form-builder-user-form/components/user-form-input-scale/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/form-builder/form-builder-user-form/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/form-builder/form-builder-user-form/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/form-builder/form-builder-user-form/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/form-builder/form-builder-user-form/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/image-display/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/image-display/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/image-display/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/image-display/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/key-pad/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/key-pad/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/key-pad/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/key-pad/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/layout-switcher/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/layout-switcher/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/layout-switcher/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/layout-switcher/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/linear-gauge/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/linear-gauge/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/linear-gauge/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/linear-gauge/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/login/components/input-code/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/login/components/input-code/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/login/components/input-code/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/login/components/input-code/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/login/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/login/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/login/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/login/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/modify-task-form/components/activity-summary-block/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/modify-task-form/components/activity-summary-block/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/modify-task-form/components/activity-summary-block/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/modify-task-form/components/creation-summary-block/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/modify-task-form/components/creation-summary-block/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/modify-task-form/components/creation-summary-block/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/modify-task-form/components/creation-summary-block/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/modify-task-form/components/executive-summary-block/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/modify-task-form/components/executive-summary-block/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/modify-task-form/components/executive-summary-block/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/modify-task-form/components/executive-summary-block/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/modify-task-form/components/notification-summary-block/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/modify-task-form/components/notification-summary-block/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/modify-task-form/components/notification-summary-block/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/modify-task-form/components/notification-summary-block/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/modify-task-form/components/status-summary-block/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/modify-task-form/components/status-summary-block/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/modify-task-form/components/status-summary-block/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/modify-task-form/components/status-summary-block/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/modify-task-form/components/task-details/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/modify-task-form/components/task-details/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/modify-task-form/components/task-details/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/modify-task-form/components/task-details/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/modify-task-form/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/modify-task-form/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/modify-task-form/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/modify-task-form/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/multi-property-toggler/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/multi-property-toggler/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/multi-property-toggler/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/multi-property-toggler/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/open-activity-list/components/personal-activity-overview/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/open-activity-list/components/personal-activity-overview/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/open-activity-list/components/personal-activity-overview/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/open-activity-list/components/personal-activity-overview/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/open-activity-list/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/open-activity-list/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/open-activity-list/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/open-activity-list/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/preferred-planning/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/preferred-planning/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/preferred-planning/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/preferred-planning/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/preview-pdf-dialog/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/preview-pdf-dialog/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/preview-pdf-dialog/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/preview-pdf-dialog/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/role-email-selector/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/role-email-selector/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/role-email-selector/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/role-email-selector/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/screen-config-generator/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/screen-config-generator/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/screen-config-generator/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/screen-config-generator/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/additional-file-button/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/additional-file-button/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/additional-file-button/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/additional-file-button/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/layout-selection/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/layout-selection/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/layout-selection/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/layout-selection/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/printer-selection/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/printer-selection/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/printer-selection/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/printer-selection/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/send-method-combine-print-email/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/send-method-combine-print-email/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/send-method-combine-print-email/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/send-method-combine-print-email/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/send-method-email/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/send-method-email/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/send-method-email/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/send-method-email/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/send-method-pdf/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/send-method-pdf/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/send-method-pdf/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/send-method-pdf/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/send-method-printer/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/send-method-printer/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/send-method-printer/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/send-method-printer/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/signature-button/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/signature-button/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/signature-button/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/signature-button/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/simple-tags/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/simple-tags/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/simple-tags/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/simple-tags/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/simple-tags-form/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/simple-tags-form/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/simple-tags-form/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/simple-tags-form/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/statusbar/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/statusbar/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/statusbar/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/statusbar/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/stock/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/stock/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/stock/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/stock/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/stock-statusbar/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/stock-statusbar/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/stock-statusbar/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/stock-statusbar/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/tab-bar/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/tab-bar/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/tab-bar/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/tab-bar/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/tags/component/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/tags/component/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/tags/component/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/tags/component/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/tags/component/tag-join-label/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/tags/component/tag-join-label/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/tags/component/tag-join-label/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/tags/component/tag-join-label/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/task-creator/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/task-creator/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/task-creator/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/task-modifyer/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/task-modifyer/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/task-modifyer/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/task-modifyer/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/tile-renderer/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/tile-renderer/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/tile-renderer/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/tile-renderer/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/workflow-info-tiles/components/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/workflow-info-tiles/components/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/workflow-info-tiles/components/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/workflow-info-tiles/components/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/workflow-info-tiles/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/workflow-info-tiles/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/workflow-info-tiles/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/workflow-info-tiles/style/material.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/workflow-notification-toggle/style/_layout.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/workflow-notification-toggle/style/_material-definition.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/workflow-notification-toggle/style/_theme.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/components/workflow-notification-toggle/style/material.scss +0 -0
- /package/{lib/interface/activities-task-config-names.d.ts → projects/sharedcomponents/src/lib/interface/activities-task-config-names.ts} +0 -0
- /package/{lib/interface/key-value-pair.d.ts → projects/sharedcomponents/src/lib/interface/key-value-pair.ts} +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/style/_mixin.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/style/_variables.scss +0 -0
- /package/{lib → projects/sharedcomponents/src/lib}/style/sharedcomponents-globals.scss +0 -0
- /package/{lib/utils/check-within-stepped-bounds-result.d.ts → projects/sharedcomponents/src/lib/utils/check-within-stepped-bounds-result.ts} +0 -0
|
@@ -1,932 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { Articles } from '@colijnit/articleapi/build/articles';
|
|
3
|
-
import { Sharedapi } from '@colijnit/sharedapi/build/sharedapi';
|
|
4
|
-
import { Injectable } from '@angular/core';
|
|
5
|
-
import { ArticleStock as ArticleStockBo } from '@colijnit/articleapi/build/model/article-stock.bo';
|
|
6
|
-
import { StockHistoryBo } from '@colijnit/articleapi/build/model/stock-history.bo';
|
|
7
|
-
import { ArticleDetailsBo } from '@colijnit/articleapi/build/model/article-details.bo';
|
|
8
|
-
import { StockStatus } from '@colijnit/articleapi/build/model/stock-status.bo';
|
|
9
|
-
import { StockManagementWarehouses } from '@colijnit/articleapi/build/model/stock-management-warehouses.bo';
|
|
10
|
-
import { StockLocation } from '@colijnit/articleapi/build/model/stock-location.bo';
|
|
11
|
-
import { ArticleTransaction as ArticleTransactionBo } from '@colijnit/articleapi/build/model/article-transaction.bo';
|
|
12
|
-
import { OptionsService } from './options.service';
|
|
13
|
-
import { MainApi } from '@colijnit/mainapi';
|
|
14
|
-
import { Printer } from '@colijnit/mainapi/build/model/printer.bo';
|
|
15
|
-
import { SendMethod } from '@colijnit/mainapi/build/model/send-method.bo';
|
|
16
|
-
import { BusinessObjectFactory } from '@colijnit/ioneconnector/build/service/business-object-factory';
|
|
17
|
-
import { TagTreeItem } from "@colijnit/mainapi/build/model/tag-tree-item.bo";
|
|
18
|
-
import { ObjectConfiguration } from "@colijnit/ioneconnector/build/model/object-configuration";
|
|
19
|
-
import { RelationApi } from "@colijnit/relationapi";
|
|
20
|
-
import { RelationListObject } from "@colijnit/relationapi/build/model/relation-list-object.bo";
|
|
21
|
-
import { TaskCategory } from "@colijnit/mainapi/build/model/task-category.bo";
|
|
22
|
-
import { WorkflowProcess } from "@colijnit/mainapi/build/model/workflow-process";
|
|
23
|
-
import { CoDomainValue } from "@colijnit/mainapi/build/model/co-domain-value.bo";
|
|
24
|
-
import { RoleEmailaddress } from "@colijnit/mainapi/build/model/role-email-address";
|
|
25
|
-
import { Activity } from "@colijnit/mainapi/build/model/activity.bo";
|
|
26
|
-
import { WorkflowProcessInfoPerStatus } from "@colijnit/mainapi/build/model/workflow-process-info-per-status";
|
|
27
|
-
import { RelationSmallObject } from "@colijnit/mainapi/build/model/relation-small-object.bo";
|
|
28
|
-
import { Report } from "@colijnit/mainapi/build/model/report.bo";
|
|
29
|
-
import { Work } from "@colijnit/mainapi/build/model/work.bo";
|
|
30
|
-
import { Remark } from "@colijnit/mainapi/build/model/remark.bo";
|
|
31
|
-
import { Task } from "@colijnit/mainapi/build/model/task.bo";
|
|
32
|
-
import { ActivityWorkflow } from "@colijnit/mainapi/build/model/activity-workflow";
|
|
33
|
-
import { Form } from '@colijnit/mainapi/build/model/form.bo';
|
|
34
|
-
import { FormResponse } from '@colijnit/mainapi/build/model/form-response.bo';
|
|
35
|
-
import * as i0 from "@angular/core";
|
|
36
|
-
import * as i1 from "./options.service";
|
|
37
|
-
export class SharedConnectorService {
|
|
38
|
-
constructor(_optionsService) {
|
|
39
|
-
this._optionsService = _optionsService;
|
|
40
|
-
this._boFactory = new BusinessObjectFactory();
|
|
41
|
-
}
|
|
42
|
-
connect() {
|
|
43
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
44
|
-
this.sharedConnector = new Sharedapi(this._optionsService.options);
|
|
45
|
-
yield this.sharedConnector.connect();
|
|
46
|
-
this.articleConnector = new Articles(this._optionsService.options);
|
|
47
|
-
this.mainConnector = new MainApi(this._optionsService.options);
|
|
48
|
-
this.relationConnector = new RelationApi(this._optionsService.options);
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
getConfiguration(module, params) {
|
|
52
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
53
|
-
const response = yield this.mainConnector.getObjectConfigurations(module, params);
|
|
54
|
-
if (response && response.validationResult && response.validationResult.success) {
|
|
55
|
-
return this._boFactory.makeBOArrayFromRawBackendDataArray(ObjectConfiguration, response.resultObjects);
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
getAllPrinters() {
|
|
60
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
61
|
-
return new Promise((resolve, reject) => {
|
|
62
|
-
return this.mainConnector.listAllPrinters().then((result) => {
|
|
63
|
-
if (result.validationResult && result.validationResult.success) {
|
|
64
|
-
if (result.resultObject) {
|
|
65
|
-
resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(Printer, result.resultObject));
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
reject(result.validationMessagesAsString);
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
});
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
getDefaultPrinter(reportId, layoutCode) {
|
|
76
|
-
var _a;
|
|
77
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
78
|
-
const response = yield this.mainConnector.getStandardPrinter(reportId, layoutCode);
|
|
79
|
-
if (response && response.validationResult && response.validationResult.success) {
|
|
80
|
-
if (response.resultObject && ((_a = response.resultObject) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
|
81
|
-
return response.resultObject;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
return null;
|
|
86
|
-
}
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
getSendMethods() {
|
|
90
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
91
|
-
return new Promise((resolve, reject) => {
|
|
92
|
-
return this.mainConnector.getSendMethods().then((result) => {
|
|
93
|
-
if (result.validationResult && result.validationResult.success) {
|
|
94
|
-
if (result.resultObject && result.resultObject.result) {
|
|
95
|
-
resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(SendMethod, result.resultObject.result));
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
else {
|
|
99
|
-
reject(result.validationMessagesAsString);
|
|
100
|
-
}
|
|
101
|
-
});
|
|
102
|
-
});
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
getScreenConfigTree() {
|
|
106
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
107
|
-
return new Promise((resolve, reject) => {
|
|
108
|
-
return this.sharedConnector.getConfigTreeObject('T', 'JS').then((result) => {
|
|
109
|
-
if (result.validationResult && result.validationResult.success) {
|
|
110
|
-
if (result.resultObjects) {
|
|
111
|
-
resolve(result.resultObjects);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
else {
|
|
115
|
-
reject(result.validationMessagesAsString);
|
|
116
|
-
}
|
|
117
|
-
});
|
|
118
|
-
});
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
getScreenConfigSubRubric(parentRubricId, configId, fixedKey) {
|
|
122
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
123
|
-
return new Promise((resolve, reject) => {
|
|
124
|
-
return this.sharedConnector.getConfigSubRubric(parentRubricId, configId, fixedKey).then((result) => {
|
|
125
|
-
if (result.validationResult && result.validationResult.success) {
|
|
126
|
-
if (result.resultObjects) {
|
|
127
|
-
resolve(result.resultObjects);
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
reject(result.validationMessagesAsString);
|
|
132
|
-
}
|
|
133
|
-
});
|
|
134
|
-
});
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
getTagsFullTree(category, includeTags) {
|
|
138
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
139
|
-
return new Promise((resolve, reject) => {
|
|
140
|
-
return this.mainConnector.getTagsFullTree(category, includeTags).then((result) => {
|
|
141
|
-
if (result.validationResult && result.validationResult.success) {
|
|
142
|
-
if (result.resultObjects) {
|
|
143
|
-
resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(TagTreeItem, result.resultObjects));
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
else {
|
|
147
|
-
reject(result.validationMessagesAsString);
|
|
148
|
-
}
|
|
149
|
-
});
|
|
150
|
-
});
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
getComponentActivitiesWithoutRelationFiltering(table, key) {
|
|
154
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
155
|
-
return new Promise((resolve, reject) => {
|
|
156
|
-
return this.mainConnector.getComponentActivitiesWithoutRelationFiltering(table, key).then((result) => {
|
|
157
|
-
if (result && result.validationResult && result.validationResult.success) {
|
|
158
|
-
resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(Activity, result.resultObject));
|
|
159
|
-
}
|
|
160
|
-
else {
|
|
161
|
-
reject(result.validationMessagesAsString);
|
|
162
|
-
}
|
|
163
|
-
});
|
|
164
|
-
});
|
|
165
|
-
});
|
|
166
|
-
}
|
|
167
|
-
getRelationSmallObject(relationId) {
|
|
168
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
169
|
-
return new Promise((resolve, reject) => {
|
|
170
|
-
return this.relationConnector.getRelationSmallObject(relationId).then((result) => {
|
|
171
|
-
if (result && result.validationResult && result.validationResult.success) {
|
|
172
|
-
resolve(this._boFactory.makeWithRawBackendData(RelationSmallObject, result.resultObject));
|
|
173
|
-
}
|
|
174
|
-
else {
|
|
175
|
-
reject(result.validationMessagesAsString);
|
|
176
|
-
}
|
|
177
|
-
});
|
|
178
|
-
});
|
|
179
|
-
});
|
|
180
|
-
}
|
|
181
|
-
getWorkflowStatusForActivity(table, key, component) {
|
|
182
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
183
|
-
return new Promise((resolve, reject) => {
|
|
184
|
-
return this.mainConnector.getWorkflowStatusForActivity(table, key, component).then((result) => __awaiter(this, void 0, void 0, function* () {
|
|
185
|
-
if (result && result.validationResult && result.validationResult.success) {
|
|
186
|
-
resolve(this._boFactory.makeWithRawBackendData(ActivityWorkflow, result.resultObject));
|
|
187
|
-
}
|
|
188
|
-
else {
|
|
189
|
-
reject(result.validationMessagesAsString);
|
|
190
|
-
}
|
|
191
|
-
}));
|
|
192
|
-
});
|
|
193
|
-
});
|
|
194
|
-
}
|
|
195
|
-
insertActivity(activity) {
|
|
196
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
197
|
-
return new Promise((resolve, reject) => {
|
|
198
|
-
return this.mainConnector.insertActivity(activity).then((result) => __awaiter(this, void 0, void 0, function* () {
|
|
199
|
-
resolve(result.validationResult);
|
|
200
|
-
}));
|
|
201
|
-
});
|
|
202
|
-
});
|
|
203
|
-
}
|
|
204
|
-
insertWork(activity) {
|
|
205
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
206
|
-
return new Promise((resolve, reject) => {
|
|
207
|
-
return this.mainConnector.insertActivity(activity).then((result) => __awaiter(this, void 0, void 0, function* () {
|
|
208
|
-
if (result && result.validationResult && result.validationResult.success) {
|
|
209
|
-
resolve(this._boFactory.makeWithRawBackendData(Work, result.resultObject));
|
|
210
|
-
}
|
|
211
|
-
else {
|
|
212
|
-
reject(result.validationMessagesAsString);
|
|
213
|
-
}
|
|
214
|
-
}));
|
|
215
|
-
});
|
|
216
|
-
});
|
|
217
|
-
}
|
|
218
|
-
insertRemark(activity) {
|
|
219
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
220
|
-
return new Promise((resolve, reject) => {
|
|
221
|
-
return this.mainConnector.insertActivity(activity).then((result) => __awaiter(this, void 0, void 0, function* () {
|
|
222
|
-
if (result && result.validationResult && result.validationResult.success) {
|
|
223
|
-
resolve(this._boFactory.makeWithRawBackendData(Remark, result.resultObject));
|
|
224
|
-
}
|
|
225
|
-
else {
|
|
226
|
-
reject(result.validationMessagesAsString);
|
|
227
|
-
}
|
|
228
|
-
}));
|
|
229
|
-
});
|
|
230
|
-
});
|
|
231
|
-
}
|
|
232
|
-
insertTask(activity) {
|
|
233
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
234
|
-
return new Promise((resolve, reject) => {
|
|
235
|
-
return this.mainConnector.insertActivity(activity).then((result) => __awaiter(this, void 0, void 0, function* () {
|
|
236
|
-
if (result && result.validationResult && result.validationResult.success) {
|
|
237
|
-
resolve(this._boFactory.makeWithRawBackendData(Task, result.resultObject));
|
|
238
|
-
}
|
|
239
|
-
else {
|
|
240
|
-
reject(result.validationMessagesAsString);
|
|
241
|
-
}
|
|
242
|
-
}));
|
|
243
|
-
});
|
|
244
|
-
});
|
|
245
|
-
}
|
|
246
|
-
updateActivity(activity) {
|
|
247
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
248
|
-
return new Promise((resolve, reject) => {
|
|
249
|
-
return this.mainConnector.updateActivity(activity).then((result) => __awaiter(this, void 0, void 0, function* () {
|
|
250
|
-
resolve(result.validationResult);
|
|
251
|
-
}));
|
|
252
|
-
});
|
|
253
|
-
});
|
|
254
|
-
}
|
|
255
|
-
deleteActivity(activity) {
|
|
256
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
257
|
-
return new Promise((resolve, reject) => {
|
|
258
|
-
return this.mainConnector.deleteActivity(activity).then((result) => __awaiter(this, void 0, void 0, function* () {
|
|
259
|
-
resolve(result.validationResult);
|
|
260
|
-
}));
|
|
261
|
-
});
|
|
262
|
-
});
|
|
263
|
-
}
|
|
264
|
-
lockTask(id) {
|
|
265
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
266
|
-
return new Promise((resolve, reject) => {
|
|
267
|
-
return this.mainConnector.lockTask(id).then((result) => __awaiter(this, void 0, void 0, function* () {
|
|
268
|
-
resolve(result.validationResult);
|
|
269
|
-
}));
|
|
270
|
-
});
|
|
271
|
-
});
|
|
272
|
-
}
|
|
273
|
-
fireTrigger(workFlowProcessId, sequence, triggerId) {
|
|
274
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
275
|
-
return new Promise((resolve, reject) => {
|
|
276
|
-
return this.mainConnector.fireTrigger(workFlowProcessId, sequence, triggerId).then((result) => __awaiter(this, void 0, void 0, function* () {
|
|
277
|
-
resolve(result.validationResult);
|
|
278
|
-
}));
|
|
279
|
-
});
|
|
280
|
-
});
|
|
281
|
-
}
|
|
282
|
-
fireGenericTrigger(workFlowProcessId, genericTransitionId, relationId) {
|
|
283
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
284
|
-
return new Promise((resolve, reject) => {
|
|
285
|
-
return this.mainConnector.fireGenericTrigger(workFlowProcessId, genericTransitionId, relationId).then((result) => __awaiter(this, void 0, void 0, function* () {
|
|
286
|
-
resolve(result.validationResult);
|
|
287
|
-
}));
|
|
288
|
-
});
|
|
289
|
-
});
|
|
290
|
-
}
|
|
291
|
-
getJoinedTags(table, key) {
|
|
292
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
293
|
-
return new Promise((resolve, reject) => {
|
|
294
|
-
return this.mainConnector.getJoinedTags(table, key).then((result) => {
|
|
295
|
-
if (result.validationResult && result.validationResult.success) {
|
|
296
|
-
if (result.resultObjects) {
|
|
297
|
-
resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(TagTreeItem, result.resultObjects));
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
else {
|
|
301
|
-
reject(result.validationMessagesAsString);
|
|
302
|
-
}
|
|
303
|
-
});
|
|
304
|
-
});
|
|
305
|
-
});
|
|
306
|
-
}
|
|
307
|
-
getDocumentContent(id, thumbnail = true) {
|
|
308
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
309
|
-
return new Promise((resolve, reject) => {
|
|
310
|
-
return this.mainConnector.getDocumentContent(id, thumbnail).then((result) => {
|
|
311
|
-
if (result.validationResult && result.validationResult.success) {
|
|
312
|
-
resolve(result.resultObject.documentContent);
|
|
313
|
-
}
|
|
314
|
-
else {
|
|
315
|
-
reject(result.validationMessagesAsString);
|
|
316
|
-
}
|
|
317
|
-
});
|
|
318
|
-
});
|
|
319
|
-
});
|
|
320
|
-
}
|
|
321
|
-
// public async getPrintStockStickers(request: PrintStockStickers): Promise<PrintStockStickers> {
|
|
322
|
-
// return new Promise((resolve: Function, reject: Function) => {
|
|
323
|
-
// return this.sharedConnector.getPrintStockStickers(request).then((result: DataServiceResponseData) => {
|
|
324
|
-
// if (result.validationResult && result.validationResult.success) {
|
|
325
|
-
// if (result.resultObject) {
|
|
326
|
-
// resolve(this._boFactory.makeWithRawBackendData(PrintStockStickers, result.resultObject));
|
|
327
|
-
// }
|
|
328
|
-
// } else {
|
|
329
|
-
// reject(result.validationMessagesAsString);
|
|
330
|
-
// }
|
|
331
|
-
// })
|
|
332
|
-
// })
|
|
333
|
-
// }
|
|
334
|
-
// public async getPrintPriceStickers(request: PrintPriceStickers): Promise<PrintPriceStickers> {
|
|
335
|
-
// return new Promise((resolve: Function, reject: Function) => {
|
|
336
|
-
// return this.sharedConnector.printPriceStickers(request).then((result: DataServiceResponseData) => {
|
|
337
|
-
// if (result.validationResult && result.validationResult.success) {
|
|
338
|
-
// if (result.resultObject) {
|
|
339
|
-
// resolve(this._boFactory.makeWithRawBackendData(PrintPriceStickers, result.resultObject));
|
|
340
|
-
// }
|
|
341
|
-
// } else {
|
|
342
|
-
// reject(result.validationMessagesAsString);
|
|
343
|
-
// }
|
|
344
|
-
// })
|
|
345
|
-
// })
|
|
346
|
-
// }
|
|
347
|
-
getStockHistory(request) {
|
|
348
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
349
|
-
return new Promise((resolve, reject) => {
|
|
350
|
-
return this.articleConnector.getStockHistory(request).then((result) => {
|
|
351
|
-
if (result.validationResult && result.validationResult.success) {
|
|
352
|
-
if (result.resultObject && result.resultObject.hasOwnProperty("stockHistory")) {
|
|
353
|
-
resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(StockHistoryBo, result.resultObject.stockHistory));
|
|
354
|
-
}
|
|
355
|
-
}
|
|
356
|
-
else {
|
|
357
|
-
reject(result.validationMessagesAsString);
|
|
358
|
-
}
|
|
359
|
-
});
|
|
360
|
-
});
|
|
361
|
-
});
|
|
362
|
-
}
|
|
363
|
-
getStockInformation(data) {
|
|
364
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
365
|
-
return new Promise((resolve, reject) => {
|
|
366
|
-
return this.articleConnector.getStockInformation(data).then((result) => {
|
|
367
|
-
if (result.validationResult && result.validationResult.success) {
|
|
368
|
-
if (result.resultObjects) {
|
|
369
|
-
resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(ArticleStockBo, result.resultObjects));
|
|
370
|
-
}
|
|
371
|
-
}
|
|
372
|
-
else {
|
|
373
|
-
reject(result.validationMessagesAsString);
|
|
374
|
-
}
|
|
375
|
-
});
|
|
376
|
-
});
|
|
377
|
-
});
|
|
378
|
-
}
|
|
379
|
-
getArtStockStatus(goodId, branchNo, requestedAmount, warehouseId) {
|
|
380
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
381
|
-
return new Promise((resolve, reject) => {
|
|
382
|
-
return this.articleConnector.getArtStockStatus(goodId, branchNo, requestedAmount, warehouseId).then((result) => {
|
|
383
|
-
if (result.validationResult && result.validationResult.success) {
|
|
384
|
-
if (result.resultObject) {
|
|
385
|
-
resolve(result.resultObject);
|
|
386
|
-
}
|
|
387
|
-
}
|
|
388
|
-
else {
|
|
389
|
-
reject(result.validationMessagesAsString);
|
|
390
|
-
}
|
|
391
|
-
});
|
|
392
|
-
});
|
|
393
|
-
});
|
|
394
|
-
}
|
|
395
|
-
getArticleFlat(sku) {
|
|
396
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
397
|
-
return new Promise((resolve, reject) => {
|
|
398
|
-
return this.articleConnector.getArticleFlat(sku).then((result) => {
|
|
399
|
-
if (result.validationResult && result.validationResult.success) {
|
|
400
|
-
if (result.resultObject) {
|
|
401
|
-
resolve(result.resultObject);
|
|
402
|
-
}
|
|
403
|
-
}
|
|
404
|
-
else {
|
|
405
|
-
reject(result.validationMessagesAsString);
|
|
406
|
-
}
|
|
407
|
-
});
|
|
408
|
-
});
|
|
409
|
-
});
|
|
410
|
-
}
|
|
411
|
-
searchArticles(request) {
|
|
412
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
413
|
-
return new Promise((resolve, reject) => {
|
|
414
|
-
return this.articleConnector.searchArticles(request, false).then((result) => {
|
|
415
|
-
if (result.validationResult && result.validationResult.success) {
|
|
416
|
-
if (result.resultObjects) {
|
|
417
|
-
resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(StockManagementWarehouses, result.resultObjects));
|
|
418
|
-
}
|
|
419
|
-
}
|
|
420
|
-
else {
|
|
421
|
-
reject(result.validationMessagesAsString);
|
|
422
|
-
}
|
|
423
|
-
});
|
|
424
|
-
});
|
|
425
|
-
});
|
|
426
|
-
}
|
|
427
|
-
getStockManagementWarehouses() {
|
|
428
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
429
|
-
return new Promise((resolve, reject) => {
|
|
430
|
-
return this.articleConnector.getStockManagementWarehouses().then((result) => {
|
|
431
|
-
if (result.validationResult && result.validationResult.success) {
|
|
432
|
-
if (result.resultObjects) {
|
|
433
|
-
resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(StockManagementWarehouses, result.resultObjects));
|
|
434
|
-
}
|
|
435
|
-
}
|
|
436
|
-
else {
|
|
437
|
-
reject(result.validationMessagesAsString);
|
|
438
|
-
}
|
|
439
|
-
});
|
|
440
|
-
});
|
|
441
|
-
});
|
|
442
|
-
}
|
|
443
|
-
getStockManagementLocations(warehouseNo) {
|
|
444
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
445
|
-
return new Promise((resolve, reject) => {
|
|
446
|
-
return this.articleConnector.getStockManagementLocations(warehouseNo).then((result) => {
|
|
447
|
-
if (result.validationResult && result.validationResult.success) {
|
|
448
|
-
if (result.resultObjects) {
|
|
449
|
-
resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(StockLocation, result.resultObjects));
|
|
450
|
-
}
|
|
451
|
-
}
|
|
452
|
-
else {
|
|
453
|
-
reject(result.validationMessagesAsString);
|
|
454
|
-
}
|
|
455
|
-
});
|
|
456
|
-
});
|
|
457
|
-
});
|
|
458
|
-
}
|
|
459
|
-
// public async getOrderConfirmationDefaultSendMethod(relationId: number): Promise<number> {
|
|
460
|
-
// return new Promise((resolve: Function, reject: Function) => {
|
|
461
|
-
// return this.sharedConnector.getOrderConfirmationDefaultSendMethod(relationId).then((result: DataServiceResponseData) => {
|
|
462
|
-
// if (result.validationResult && result.validationResult.success) {
|
|
463
|
-
// if (result.resultObject) {
|
|
464
|
-
// resolve (result.resultObject);
|
|
465
|
-
// }
|
|
466
|
-
// } else {
|
|
467
|
-
// reject(result.validationMessagesAsString);
|
|
468
|
-
// }
|
|
469
|
-
// });
|
|
470
|
-
// });
|
|
471
|
-
// }
|
|
472
|
-
// public async getDefaultEmailAddressListForOrderConfirmation(transactionUUID: string): Promise<string[]> {
|
|
473
|
-
// return new Promise((resolve: Function, reject: Function) => {
|
|
474
|
-
// return this.sharedConnector.getDefaultEmailAddressListForOrderConfirmation(transactionUUID).then((result: DataServiceResponseData) => {
|
|
475
|
-
// if (result.validationResult && result.validationResult.success) {
|
|
476
|
-
// if (result.resultObject) {
|
|
477
|
-
// resolve (result.resultObject);
|
|
478
|
-
// }
|
|
479
|
-
// } else {
|
|
480
|
-
// reject(result.validationMessagesAsString);
|
|
481
|
-
// }
|
|
482
|
-
// });
|
|
483
|
-
// });
|
|
484
|
-
// }
|
|
485
|
-
// public async getPurchaseOrderEmailLayouts(transactionUUID: string): Promise<StockStickersEmailLayouts[]> {
|
|
486
|
-
// return new Promise((resolve: Function, reject: Function) => {
|
|
487
|
-
// return this.sharedConnector.getPurchaseOrderEmailLayouts(transactionUUID).then((result: DataServiceResponseData) => {
|
|
488
|
-
// if (result.validationResult && result.validationResult.success) {
|
|
489
|
-
// if (result.resultObject) {
|
|
490
|
-
// resolve (result.resultObject);
|
|
491
|
-
// }
|
|
492
|
-
// } else {
|
|
493
|
-
// reject(result.validationMessagesAsString);
|
|
494
|
-
// }
|
|
495
|
-
// });
|
|
496
|
-
// });
|
|
497
|
-
// }
|
|
498
|
-
getArticleDetails(data) {
|
|
499
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
500
|
-
return new Promise((resolve, reject) => {
|
|
501
|
-
return this.articleConnector.getArticleDetails(data).then((result) => {
|
|
502
|
-
if (result.validationResult && result.validationResult.success) {
|
|
503
|
-
if (result.resultObjects) {
|
|
504
|
-
resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(ArticleDetailsBo, result.resultObjects));
|
|
505
|
-
}
|
|
506
|
-
}
|
|
507
|
-
else {
|
|
508
|
-
reject(result.validationMessagesAsString);
|
|
509
|
-
}
|
|
510
|
-
});
|
|
511
|
-
});
|
|
512
|
-
});
|
|
513
|
-
}
|
|
514
|
-
updateArticleDetails(data) {
|
|
515
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
516
|
-
return new Promise((resolve, reject) => {
|
|
517
|
-
return this.articleConnector.updateArticleDetails(data).then((result) => __awaiter(this, void 0, void 0, function* () {
|
|
518
|
-
if (result.validationResult && result.validationResult.success) {
|
|
519
|
-
yield this.commit();
|
|
520
|
-
resolve(true);
|
|
521
|
-
}
|
|
522
|
-
else {
|
|
523
|
-
reject(result.validationMessagesAsString);
|
|
524
|
-
}
|
|
525
|
-
}));
|
|
526
|
-
});
|
|
527
|
-
});
|
|
528
|
-
}
|
|
529
|
-
lockArticleDetails(data) {
|
|
530
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
531
|
-
return new Promise((resolve, reject) => {
|
|
532
|
-
return this.articleConnector.lockArticleDetails(data).then((result) => __awaiter(this, void 0, void 0, function* () {
|
|
533
|
-
if (result.validationResult && result.validationResult.success) {
|
|
534
|
-
yield this.commit();
|
|
535
|
-
resolve(true);
|
|
536
|
-
}
|
|
537
|
-
else {
|
|
538
|
-
reject(result.validationMessagesAsString);
|
|
539
|
-
}
|
|
540
|
-
}));
|
|
541
|
-
});
|
|
542
|
-
});
|
|
543
|
-
}
|
|
544
|
-
getStockStatus() {
|
|
545
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
546
|
-
return new Promise((resolve, reject) => {
|
|
547
|
-
return this.articleConnector.getStockState().then((result) => {
|
|
548
|
-
if (result.validationResult && result.validationResult.success) {
|
|
549
|
-
if (result.resultObjects) {
|
|
550
|
-
resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(StockStatus, result.resultObjects));
|
|
551
|
-
}
|
|
552
|
-
}
|
|
553
|
-
else {
|
|
554
|
-
reject(result.validationMessagesAsString);
|
|
555
|
-
}
|
|
556
|
-
});
|
|
557
|
-
});
|
|
558
|
-
});
|
|
559
|
-
}
|
|
560
|
-
// public async getStockStickerTemplates(data: StockStickersPrintLayouts): Promise<StockStickersPrintLayouts[]> {
|
|
561
|
-
// return new Promise((resolve: Function, reject: Function) => {
|
|
562
|
-
// return this.mainConnector.getStockStickerPrintLayouts(data).then((result: DataServiceResponseData) => {
|
|
563
|
-
// if (result.validationResult && result.validationResult.success) {
|
|
564
|
-
// if (result.resultObject) {
|
|
565
|
-
// resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(StockStickersPrintLayouts, result.resultObject));
|
|
566
|
-
// }
|
|
567
|
-
// } else {
|
|
568
|
-
// reject(result.validationMessagesAsString);
|
|
569
|
-
// }
|
|
570
|
-
// });
|
|
571
|
-
// });
|
|
572
|
-
// }
|
|
573
|
-
getArticleTransaction(data) {
|
|
574
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
575
|
-
return new Promise((resolve, reject) => {
|
|
576
|
-
return this.articleConnector.getArticleTransaction(data).then((result) => {
|
|
577
|
-
if (result.validationResult && result.validationResult.success) {
|
|
578
|
-
if (result.resultObjects) {
|
|
579
|
-
resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(ArticleTransactionBo, result.resultObjects));
|
|
580
|
-
}
|
|
581
|
-
}
|
|
582
|
-
else {
|
|
583
|
-
reject(result.validationMessagesAsString);
|
|
584
|
-
}
|
|
585
|
-
});
|
|
586
|
-
});
|
|
587
|
-
});
|
|
588
|
-
}
|
|
589
|
-
getStockPrognose(goodId, warehouseNumber) {
|
|
590
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
591
|
-
return new Promise((resolve, reject) => {
|
|
592
|
-
return this.articleConnector.getStockForecast(goodId, warehouseNumber).then((result) => {
|
|
593
|
-
if (result.validationResult && result.validationResult.success) {
|
|
594
|
-
if (result.resultObjects) {
|
|
595
|
-
resolve(result.resultObjects);
|
|
596
|
-
}
|
|
597
|
-
}
|
|
598
|
-
else {
|
|
599
|
-
reject(result.validationMessagesAsString);
|
|
600
|
-
}
|
|
601
|
-
});
|
|
602
|
-
});
|
|
603
|
-
});
|
|
604
|
-
}
|
|
605
|
-
getRelationListObjects(request) {
|
|
606
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
607
|
-
return new Promise((resolve, reject) => {
|
|
608
|
-
return this.relationConnector.getRelationListObjects(request, false).then((result) => {
|
|
609
|
-
if (result.validationResult && result.validationResult.success) {
|
|
610
|
-
if (result.resultObjects) {
|
|
611
|
-
resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(RelationListObject, result.resultObjects));
|
|
612
|
-
}
|
|
613
|
-
}
|
|
614
|
-
else {
|
|
615
|
-
reject(result.validationMessagesAsString);
|
|
616
|
-
}
|
|
617
|
-
});
|
|
618
|
-
});
|
|
619
|
-
});
|
|
620
|
-
}
|
|
621
|
-
getTaskCategories() {
|
|
622
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
623
|
-
return new Promise((resolve, reject) => {
|
|
624
|
-
return this.mainConnector.getTaskCategories().then((result) => {
|
|
625
|
-
if (result.validationResult && result.validationResult.success) {
|
|
626
|
-
if (result.resultObjects) {
|
|
627
|
-
resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(TaskCategory, result.resultObjects));
|
|
628
|
-
}
|
|
629
|
-
}
|
|
630
|
-
else {
|
|
631
|
-
reject(result.validationMessagesAsString);
|
|
632
|
-
}
|
|
633
|
-
});
|
|
634
|
-
});
|
|
635
|
-
});
|
|
636
|
-
}
|
|
637
|
-
getActiveProcessesByTableAndKey(table, key) {
|
|
638
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
639
|
-
return new Promise((resolve, reject) => {
|
|
640
|
-
return this.mainConnector.getActiveProcessesByTableAndKey(table, key).then((result) => {
|
|
641
|
-
if (result.validationResult && result.validationResult.success) {
|
|
642
|
-
if (result.resultObjects) {
|
|
643
|
-
resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(WorkflowProcess, result.resultObjects));
|
|
644
|
-
}
|
|
645
|
-
}
|
|
646
|
-
else {
|
|
647
|
-
reject(result.validationMessagesAsString);
|
|
648
|
-
}
|
|
649
|
-
});
|
|
650
|
-
});
|
|
651
|
-
});
|
|
652
|
-
}
|
|
653
|
-
getDomainCollection(languageCode, domain) {
|
|
654
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
655
|
-
return new Promise((resolve, reject) => {
|
|
656
|
-
return this.mainConnector.getDomainCollection(languageCode, domain).then((result) => {
|
|
657
|
-
if (result.validationResult && result.validationResult.success) {
|
|
658
|
-
if (result.resultObjects) {
|
|
659
|
-
resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(CoDomainValue, result.resultObjects));
|
|
660
|
-
}
|
|
661
|
-
}
|
|
662
|
-
else {
|
|
663
|
-
reject(result.validationMessagesAsString);
|
|
664
|
-
}
|
|
665
|
-
});
|
|
666
|
-
});
|
|
667
|
-
});
|
|
668
|
-
}
|
|
669
|
-
getRoleEmailAddressesByWorkflowCategoryAndKey(workflowCategory, key) {
|
|
670
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
671
|
-
return new Promise((resolve, reject) => {
|
|
672
|
-
return this.mainConnector.getRoleEmailAddressesByWorkflowCategoryAndKey(workflowCategory, key).then((result) => {
|
|
673
|
-
if (result.validationResult && result.validationResult.success) {
|
|
674
|
-
if (result.resultObject) {
|
|
675
|
-
resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(RoleEmailaddress, result.resultObject));
|
|
676
|
-
}
|
|
677
|
-
}
|
|
678
|
-
else {
|
|
679
|
-
reject(result.validationMessagesAsString);
|
|
680
|
-
}
|
|
681
|
-
});
|
|
682
|
-
});
|
|
683
|
-
});
|
|
684
|
-
}
|
|
685
|
-
getEmailSenderByWorkflowCategoryAndKey(worlflowCategory, key) {
|
|
686
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
687
|
-
return new Promise((resolve, reject) => {
|
|
688
|
-
return this.mainConnector.getEmailSenderByWorkflowCategoryAndKey(worlflowCategory, key).then((result) => {
|
|
689
|
-
if (result.validationResult && result.validationResult.success) {
|
|
690
|
-
resolve(result.resultObject);
|
|
691
|
-
}
|
|
692
|
-
else {
|
|
693
|
-
reject(result.validationMessagesAsString);
|
|
694
|
-
}
|
|
695
|
-
});
|
|
696
|
-
});
|
|
697
|
-
});
|
|
698
|
-
}
|
|
699
|
-
getReportTemplates(reportTemplatesRequest) {
|
|
700
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
701
|
-
return new Promise((resolve, reject) => {
|
|
702
|
-
return this.mainConnector.getReportTemplates(reportTemplatesRequest).then((result) => {
|
|
703
|
-
if (result.validationResult && result.validationResult.success) {
|
|
704
|
-
if (result.resultObjects) {
|
|
705
|
-
resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(Report, result.resultObjects));
|
|
706
|
-
}
|
|
707
|
-
}
|
|
708
|
-
else {
|
|
709
|
-
reject(result.validationMessagesAsString);
|
|
710
|
-
}
|
|
711
|
-
});
|
|
712
|
-
});
|
|
713
|
-
});
|
|
714
|
-
}
|
|
715
|
-
emailReport(emailJob) {
|
|
716
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
717
|
-
const result = yield this.mainConnector.emailReport(emailJob);
|
|
718
|
-
if (result && result.validationResult && result.validationResult.success) {
|
|
719
|
-
return Promise.resolve(true);
|
|
720
|
-
}
|
|
721
|
-
else {
|
|
722
|
-
return Promise.resolve(false);
|
|
723
|
-
}
|
|
724
|
-
});
|
|
725
|
-
}
|
|
726
|
-
emailActivity(request) {
|
|
727
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
728
|
-
const result = yield this.mainConnector.emailActivity(request);
|
|
729
|
-
if (result && result.validationResult && result.validationResult.success) {
|
|
730
|
-
return Promise.resolve(true);
|
|
731
|
-
}
|
|
732
|
-
else {
|
|
733
|
-
return Promise.resolve(false);
|
|
734
|
-
}
|
|
735
|
-
});
|
|
736
|
-
}
|
|
737
|
-
insertEmailHistoryForRemark(history) {
|
|
738
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
739
|
-
return new Promise((resolve, reject) => {
|
|
740
|
-
return this.mainConnector.insertEmailHistoryForRemark(history).then((result) => {
|
|
741
|
-
if (result.validationResult && result.validationResult.success) {
|
|
742
|
-
resolve(result.resultObject);
|
|
743
|
-
}
|
|
744
|
-
else {
|
|
745
|
-
reject(result.validationMessagesAsString);
|
|
746
|
-
}
|
|
747
|
-
});
|
|
748
|
-
});
|
|
749
|
-
});
|
|
750
|
-
}
|
|
751
|
-
insertEmailHistoryForWork(history) {
|
|
752
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
753
|
-
return new Promise((resolve, reject) => {
|
|
754
|
-
return this.mainConnector.insertEmailHistoryForWork(history).then((result) => {
|
|
755
|
-
if (result.validationResult && result.validationResult.success) {
|
|
756
|
-
resolve(result.resultObject);
|
|
757
|
-
}
|
|
758
|
-
else {
|
|
759
|
-
reject(result.validationMessagesAsString);
|
|
760
|
-
}
|
|
761
|
-
});
|
|
762
|
-
});
|
|
763
|
-
});
|
|
764
|
-
}
|
|
765
|
-
insertEmailHistoryForTask(history) {
|
|
766
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
767
|
-
return new Promise((resolve, reject) => {
|
|
768
|
-
return this.mainConnector.insertEmailHistoryForTask(history).then((result) => {
|
|
769
|
-
if (result.validationResult && result.validationResult.success) {
|
|
770
|
-
resolve(result.resultObject);
|
|
771
|
-
}
|
|
772
|
-
else {
|
|
773
|
-
reject(result.validationMessagesAsString);
|
|
774
|
-
}
|
|
775
|
-
});
|
|
776
|
-
});
|
|
777
|
-
});
|
|
778
|
-
}
|
|
779
|
-
getWorkflowProcessInfoPerStatus(worlflowCategory) {
|
|
780
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
781
|
-
return new Promise((resolve, reject) => {
|
|
782
|
-
return this.mainConnector.getWorkflowProcessInfoPerStatus(worlflowCategory).then((result) => {
|
|
783
|
-
if (result.validationResult && result.validationResult.success) {
|
|
784
|
-
if (result.resultObject) {
|
|
785
|
-
resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(WorkflowProcessInfoPerStatus, result.resultObject));
|
|
786
|
-
}
|
|
787
|
-
}
|
|
788
|
-
else {
|
|
789
|
-
reject(result.validationMessagesAsString);
|
|
790
|
-
}
|
|
791
|
-
});
|
|
792
|
-
});
|
|
793
|
-
});
|
|
794
|
-
}
|
|
795
|
-
getHistoricActivities(table, key) {
|
|
796
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
797
|
-
return new Promise((resolve, reject) => {
|
|
798
|
-
return this.mainConnector.getHistoricActivities(table, key).then((result) => {
|
|
799
|
-
if (result.validationResult && result.validationResult.success) {
|
|
800
|
-
if (result.resultObject) {
|
|
801
|
-
resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(Activity, result.resultObject));
|
|
802
|
-
}
|
|
803
|
-
}
|
|
804
|
-
else {
|
|
805
|
-
reject(result.validationMessagesAsString);
|
|
806
|
-
}
|
|
807
|
-
});
|
|
808
|
-
});
|
|
809
|
-
});
|
|
810
|
-
}
|
|
811
|
-
getComponentActivities(table, key) {
|
|
812
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
813
|
-
return new Promise((resolve, reject) => {
|
|
814
|
-
return this.mainConnector.getComponentActivities(table, key).then((result) => {
|
|
815
|
-
if (result.validationResult && result.validationResult.success) {
|
|
816
|
-
if (result.resultObject) {
|
|
817
|
-
resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(Activity, result.resultObject));
|
|
818
|
-
}
|
|
819
|
-
}
|
|
820
|
-
else {
|
|
821
|
-
reject(result.validationMessagesAsString);
|
|
822
|
-
}
|
|
823
|
-
});
|
|
824
|
-
});
|
|
825
|
-
});
|
|
826
|
-
}
|
|
827
|
-
getFormById(formId) {
|
|
828
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
829
|
-
return new Promise((resolve, reject) => {
|
|
830
|
-
return this.mainConnector.getFormById(formId).then((result) => {
|
|
831
|
-
if (result.validationResult && result.validationResult.success) {
|
|
832
|
-
if (result.resultObject) {
|
|
833
|
-
resolve(this._boFactory.makeWithRawBackendData(Form, result.resultObject));
|
|
834
|
-
}
|
|
835
|
-
}
|
|
836
|
-
else {
|
|
837
|
-
reject(result.validationMessagesAsString);
|
|
838
|
-
}
|
|
839
|
-
});
|
|
840
|
-
});
|
|
841
|
-
});
|
|
842
|
-
}
|
|
843
|
-
getAllFormResponsesForTableAndKey(table, key) {
|
|
844
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
845
|
-
return new Promise((resolve, reject) => {
|
|
846
|
-
return this.mainConnector.getAllFormResponsesForTableAndKey(table, key).then((result) => {
|
|
847
|
-
if (result.validationResult && result.validationResult.success) {
|
|
848
|
-
if (result.resultObjects) {
|
|
849
|
-
resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(FormResponse, result.resultObjects));
|
|
850
|
-
}
|
|
851
|
-
}
|
|
852
|
-
else {
|
|
853
|
-
reject(result.validationMessagesAsString);
|
|
854
|
-
}
|
|
855
|
-
});
|
|
856
|
-
});
|
|
857
|
-
});
|
|
858
|
-
}
|
|
859
|
-
insertFormResponse(formResponse) {
|
|
860
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
861
|
-
return new Promise((resolve, reject) => {
|
|
862
|
-
return this.mainConnector.insertFormResponse(formResponse).then((result) => {
|
|
863
|
-
if (result.validationResult && result.validationResult.success) {
|
|
864
|
-
if (result.resultObject) {
|
|
865
|
-
resolve(this._boFactory.makeWithRawBackendData(FormResponse, result.resultObject));
|
|
866
|
-
}
|
|
867
|
-
}
|
|
868
|
-
else {
|
|
869
|
-
reject(result.validationMessagesAsString);
|
|
870
|
-
}
|
|
871
|
-
});
|
|
872
|
-
});
|
|
873
|
-
});
|
|
874
|
-
}
|
|
875
|
-
updateFormResponse(formResponse) {
|
|
876
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
877
|
-
return new Promise((resolve, reject) => {
|
|
878
|
-
return this.mainConnector.updateFormResponse(formResponse).then((result) => {
|
|
879
|
-
if (result.validationResult && result.validationResult.success) {
|
|
880
|
-
if (result.resultObject) {
|
|
881
|
-
resolve(this._boFactory.makeWithRawBackendData(FormResponse, result.resultObject));
|
|
882
|
-
}
|
|
883
|
-
}
|
|
884
|
-
else {
|
|
885
|
-
reject(result.validationMessagesAsString);
|
|
886
|
-
}
|
|
887
|
-
});
|
|
888
|
-
});
|
|
889
|
-
});
|
|
890
|
-
}
|
|
891
|
-
lockFormResponse(formResponseId) {
|
|
892
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
893
|
-
return new Promise((resolve, reject) => {
|
|
894
|
-
return this.mainConnector.lockFormResponse(formResponseId).then((result) => {
|
|
895
|
-
if (result.validationResult && result.validationResult.success) {
|
|
896
|
-
resolve(true);
|
|
897
|
-
}
|
|
898
|
-
else {
|
|
899
|
-
reject(result.validationResult.messages[0].message);
|
|
900
|
-
}
|
|
901
|
-
});
|
|
902
|
-
});
|
|
903
|
-
});
|
|
904
|
-
}
|
|
905
|
-
unlockFormResponse(formResponseId) {
|
|
906
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
907
|
-
return new Promise((resolve, reject) => {
|
|
908
|
-
return this.mainConnector.unlockFormResponse(formResponseId).then((result) => {
|
|
909
|
-
if (result.validationResult && result.validationResult.success) {
|
|
910
|
-
resolve(true);
|
|
911
|
-
}
|
|
912
|
-
else {
|
|
913
|
-
reject(result.validationResult.messages[0].message);
|
|
914
|
-
}
|
|
915
|
-
});
|
|
916
|
-
});
|
|
917
|
-
});
|
|
918
|
-
}
|
|
919
|
-
commit() {
|
|
920
|
-
return this.articleConnector.commit();
|
|
921
|
-
}
|
|
922
|
-
}
|
|
923
|
-
SharedConnectorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function SharedConnectorService_Factory() { return new SharedConnectorService(i0.ɵɵinject(i1.OptionsService)); }, token: SharedConnectorService, providedIn: "root" });
|
|
924
|
-
SharedConnectorService.decorators = [
|
|
925
|
-
{ type: Injectable, args: [{
|
|
926
|
-
providedIn: "root"
|
|
927
|
-
},] }
|
|
928
|
-
];
|
|
929
|
-
SharedConnectorService.ctorParameters = () => [
|
|
930
|
-
{ type: OptionsService }
|
|
931
|
-
];
|
|
932
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLWNvbm5lY3Rvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2Uvc2hhcmVkLWNvbm5lY3Rvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDN0QsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQzlELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFDLFlBQVksSUFBSSxjQUFjLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUVqRyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFFakYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scURBQXFELENBQUM7QUFDckYsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQzdFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGlFQUFpRSxDQUFDO0FBQzFHLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxvREFBb0QsQ0FBQztBQUVqRixPQUFPLEVBQUMsa0JBQWtCLElBQUksb0JBQW9CLEVBQUMsTUFBTSx5REFBeUQsQ0FBQztBQUNuSCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQzFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUVqRSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sOENBQThDLENBQUM7QUFFeEUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sK0RBQStELENBQUM7QUFFcEcsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdEQUFnRCxD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QU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7d0JBQzlELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtxQkFDZDt5QkFBTTt3QkFDTCxNQUFNLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztxQkFDckQ7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7S0FBQTtJQVNNLE1BQU07UUFDWCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN4QyxDQUFDOzs7O1lBdnlCRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQXpDTyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBcnRpY2xlc30gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvYXJ0aWNsZXMnO1xyXG5pbXBvcnQge1NoYXJlZGFwaX0gZnJvbSAnQGNvbGlqbml0L3NoYXJlZGFwaS9idWlsZC9zaGFyZWRhcGknO1xyXG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0dldFN0b2NrSGlzdG9yeVJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2dldC1zdG9jay1oaXN0b3J5LXJlcXVlc3QnO1xyXG5pbXBvcnQge0FydGljbGVTdG9jayBhcyBBcnRpY2xlU3RvY2tCb30gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1zdG9jay5ibyc7XHJcbmltcG9ydCB7QXJ0aWNsZVN0b2NrfSBmcm9tICdAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLXN0b2NrJztcclxuaW1wb3J0IHtTdG9ja0hpc3RvcnlCb30gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvc3RvY2staGlzdG9yeS5ibyc7XHJcbmltcG9ydCB7QXJ0aWNsZVN0b2NrTWFuYWdlbWVudH0gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1zdG9jay1tYW5hZ2VtZW50JztcclxuaW1wb3J0IHtBcnRpY2xlRGV0YWlsc0JvfSBmcm9tICdAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLWRldGFpbHMuYm8nO1xyXG5pbXBvcnQge1N0b2NrU3RhdHVzfSBmcm9tICdAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9zdG9jay1zdGF0dXMuYm8nO1xyXG5pbXBvcnQge1N0b2NrTWFuYWdlbWVudFdhcmVob3VzZXN9IGZyb20gJ0Bjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL3N0b2NrLW1hbmFnZW1lbnQtd2FyZWhvdXNlcy5ibyc7XHJcbmltcG9ydCB7U3RvY2tMb2NhdGlvbn0gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvc3RvY2stbG9jYXRpb24uYm8nO1xyXG5pbXBvcnQge0FydGljbGVUcmFuc2FjdGlvbn0gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS10cmFuc2FjdGlvbic7XHJcbmltcG9ydCB7QXJ0aWNsZVRyYW5zYWN0aW9uIGFzIEFydGljbGVUcmFuc2FjdGlvbkJvfSBmcm9tICdAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLXRyYW5zYWN0aW9uLmJvJztcclxuaW1wb3J0IHtPcHRpb25zU2VydmljZX0gZnJvbSAnLi9vcHRpb25zLnNlcnZpY2UnO1xyXG5pbXBvcnQge01haW5BcGl9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpJztcclxuaW1wb3J0IHtQcmludGVyfSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9wcmludGVyLmJvJztcclxuaW1wb3J0IHtEYXRhU2VydmljZVJlc3BvbnNlRGF0YX0gZnJvbSAnQGNvbGlqbml0L2lvbmVjb25uZWN0b3IvYnVpbGQvbW9kZWwvZGF0YS1zZXJ2aWNlLXJlc3BvbnNlLWRhdGEnO1xyXG5pbXBvcnQge1NlbmRNZXRob2R9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3NlbmQtbWV0aG9kLmJvJztcclxuaW1wb3J0IHtTdG9ja0ZvcmVjYXN0fSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvc3RvY2stZm9yZWNhc3QuYm9cIjtcclxuaW1wb3J0IHtCdXNpbmVzc09iamVjdEZhY3Rvcnl9IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL3NlcnZpY2UvYnVzaW5lc3Mtb2JqZWN0LWZhY3RvcnknO1xyXG5pbXBvcnQge1RhZ0NhdGVnb3J5fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS90YWItY2F0ZWdvcnkuZW51bVwiO1xyXG5pbXBvcnQge1RhZ1RyZWVJdGVtfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvdGFnLXRyZWUtaXRlbS5ib1wiO1xyXG5pbXBvcnQge0FydGljbGVFeHRlbmRlZH0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtZXh0ZW5kZWQuYm9cIjtcclxuaW1wb3J0IHtBcnRpY2xlRXh0ZW5kZWRSZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1leHRlbmRlZC1yZXF1ZXN0XCI7XHJcbmltcG9ydCB7QXJ0aWNsZUZsYXR9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLWZsYXQuYm9cIjtcclxuaW1wb3J0IHtPYmplY3RDb25maWd1cmF0aW9ufSBmcm9tIFwiQGNvbGlqbml0L2lvbmVjb25uZWN0b3IvYnVpbGQvbW9kZWwvb2JqZWN0LWNvbmZpZ3VyYXRpb25cIjtcclxuaW1wb3J0IHtSZWxhdGlvbkFwaX0gZnJvbSBcIkBjb2xpam5pdC9yZWxhdGlvbmFwaVwiO1xyXG5pbXBvcnQge1JlbGF0aW9uTGlzdE9iamVjdH0gZnJvbSBcIkBjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9yZWxhdGlvbi1saXN0LW9iamVjdC5ib1wiO1xyXG5pbXBvcnQge1JlbGF0aW9uUmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9yZWxhdGlvbi1yZXF1ZXN0XCI7XHJcbmltcG9ydCB7VGFza0NhdGVnb3J5fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvdGFzay1jYXRlZ29yeS5ib1wiO1xyXG5pbXBvcnQge1RhYmxlTmFtZX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL2VudW0vdGFibGUtbmFtZS5lbnVtXCI7XHJcbmltcG9ydCB7V29ya2Zsb3dQcm9jZXNzfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvd29ya2Zsb3ctcHJvY2Vzc1wiO1xyXG5pbXBvcnQge0RvbWFpbk5hbWV9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9lbnVtL2RvbWFpbi1uYW1lLmVudW1cIjtcclxuaW1wb3J0IHtDb0RvbWFpblZhbHVlfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvY28tZG9tYWluLXZhbHVlLmJvXCI7XHJcbmltcG9ydCB7Um9sZUVtYWlsYWRkcmVzc30gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JvbGUtZW1haWwtYWRkcmVzc1wiO1xyXG5pbXBvcnQge0FjdGl2aXR5fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvYWN0aXZpdHkuYm9cIjtcclxuaW1wb3J0IHtWYWxpZGF0aW9uUmVzdWx0fSBmcm9tIFwiQGNvbGlqbml0L2lvbmVjb25uZWN0b3IvYnVpbGQvbW9kZWwvdmFsaWRhdGlvbi1yZXN1bHRcIjtcclxuaW1wb3J0IHtXb3JrZmxvd1Byb2Nlc3NJbmZvUGVyU3RhdHVzfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvd29ya2Zsb3ctcHJvY2Vzcy1pbmZvLXBlci1zdGF0dXNcIjtcclxuaW1wb3J0IHtSZWxhdGlvblNtYWxsT2JqZWN0fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcmVsYXRpb24tc21hbGwtb2JqZWN0LmJvXCI7XHJcbmltcG9ydCB7UmVwb3J0UGFyYW1UeXBlfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS9yZXBvcnQtcGFyYW0tdHlwZS5lbnVtXCI7XHJcbmltcG9ydCB7U2VsZWN0UmVwb3J0VGVtcGxhdGVzUmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3NlbGVjdC1yZXBvcnQtdGVtcGxhdGVzLXJlcXVlc3RcIjtcclxuaW1wb3J0IHtSZXBvcnR9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9yZXBvcnQuYm9cIjtcclxuaW1wb3J0IHtFbWFpbEpvYn0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2VtYWlsLWpvYlwiO1xyXG5pbXBvcnQge1dvcmt9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC93b3JrLmJvXCI7XHJcbmltcG9ydCB7UmVtYXJrfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcmVtYXJrLmJvXCI7XHJcbmltcG9ydCB7VGFza30gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3Rhc2suYm9cIjtcclxuaW1wb3J0IHtBY3Rpdml0eUVtYWlsSGlzdG9yeX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2FjdGl2aXR5LWVtYWlsLWhpc3RvcnkuYm9cIjtcclxuaW1wb3J0IHtBY3Rpdml0eVdvcmtmbG93fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvYWN0aXZpdHktd29ya2Zsb3dcIjtcclxuaW1wb3J0IHtFbWFpbEFjdGl2aXR5UmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2VtYWlsLWFjdGl2aXR5LXJlcXVlc3RcIjtcclxuaW1wb3J0IHtGb3JtfSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9mb3JtLmJvJztcclxuaW1wb3J0IHtGb3JtUmVzcG9uc2V9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2Zvcm0tcmVzcG9uc2UuYm8nO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46IFwicm9vdFwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaGFyZWRDb25uZWN0b3JTZXJ2aWNlIHtcclxuICBwdWJsaWMgYXJ0aWNsZUNvbm5lY3RvcjogQXJ0aWNsZXM7XHJcbiAgcHVibGljIHNoYXJlZENvbm5lY3RvcjogU2hhcmVkYXBpO1xyXG4gIHB1YmxpYyBtYWluQ29ubmVjdG9yOiBNYWluQXBpO1xyXG4gIHB1YmxpYyByZWxhdGlvbkNvbm5lY3RvcjogUmVsYXRpb25BcGk7XHJcblxyXG4gIHByaXZhdGUgX2JvRmFjdG9yeTogQnVzaW5lc3NPYmplY3RGYWN0b3J5ID0gbmV3IEJ1c2luZXNzT2JqZWN0RmFjdG9yeSgpO1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9vcHRpb25zU2VydmljZTogT3B0aW9uc1NlcnZpY2UsXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgY29ubmVjdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuc2hhcmVkQ29ubmVjdG9yID0gbmV3IFNoYXJlZGFwaSh0aGlzLl9vcHRpb25zU2VydmljZS5vcHRpb25zKTtcclxuICAgIGF3YWl0IHRoaXMuc2hhcmVkQ29ubmVjdG9yLmNvbm5lY3QoKTtcclxuICAgIHRoaXMuYXJ0aWNsZUNvbm5lY3RvciA9IG5ldyBBcnRpY2xlcyh0aGlzLl9vcHRpb25zU2VydmljZS5vcHRpb25zKTtcclxuICAgIHRoaXMubWFpbkNvbm5lY3RvciA9IG5ldyBNYWluQXBpKHRoaXMuX29wdGlvbnNTZXJ2aWNlLm9wdGlvbnMpO1xyXG4gICAgdGhpcy5yZWxhdGlvbkNvbm5lY3RvciA9IG5ldyBSZWxhdGlvbkFwaSh0aGlzLl9vcHRpb25zU2VydmljZS5vcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRDb25maWd1cmF0aW9uKG1vZHVsZTogc3RyaW5nLCBwYXJhbXM6IHN0cmluZ1tdKTogUHJvbWlzZTxPYmplY3RDb25maWd1cmF0aW9uW10+IHtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMubWFpbkNvbm5lY3Rvci5nZXRPYmplY3RDb25maWd1cmF0aW9ucyhtb2R1bGUsIHBhcmFtcyk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdCAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2JvRmFjdG9yeS5tYWtlQk9BcnJheUZyb21SYXdCYWNrZW5kRGF0YUFycmF5KE9iamVjdENvbmZpZ3VyYXRpb24sIHJlc3BvbnNlLnJlc3VsdE9iamVjdHMpIGFzIE9iamVjdENvbmZpZ3VyYXRpb25bXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRBbGxQcmludGVycygpOiBQcm9taXNlPFByaW50ZXJbXT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5tYWluQ29ubmVjdG9yLmxpc3RBbGxQcmludGVycygpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdC5yZXN1bHRPYmplY3QpIHtcclxuICAgICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShQcmludGVyLCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXREZWZhdWx0UHJpbnRlcihyZXBvcnRJZDogbnVtYmVyLCBsYXlvdXRDb2RlOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5tYWluQ29ubmVjdG9yLmdldFN0YW5kYXJkUHJpbnRlcihyZXBvcnRJZCwgbGF5b3V0Q29kZSk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdCAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgaWYocmVzcG9uc2UucmVzdWx0T2JqZWN0ICYmIHJlc3BvbnNlLnJlc3VsdE9iamVjdD8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHJldHVybiByZXNwb25zZS5yZXN1bHRPYmplY3Q7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldFNlbmRNZXRob2RzKCk6IFByb21pc2U8U2VuZE1ldGhvZFtdPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1haW5Db25uZWN0b3IuZ2V0U2VuZE1ldGhvZHMoKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIGlmIChyZXN1bHQucmVzdWx0T2JqZWN0ICYmIHJlc3VsdC5yZXN1bHRPYmplY3QucmVzdWx0KSB7XHJcbiAgICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VCT0FycmF5RnJvbVJhd0JhY2tlbmREYXRhQXJyYXkoU2VuZE1ldGhvZCwgcmVzdWx0LnJlc3VsdE9iamVjdC5yZXN1bHQpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldFNjcmVlbkNvbmZpZ1RyZWUoKTogUHJvbWlzZTxhbnk+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuc2hhcmVkQ29ubmVjdG9yLmdldENvbmZpZ1RyZWVPYmplY3QoJ1QnLCAnSlMnKS50aGVuKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0LnJlc3VsdE9iamVjdHMpIHtcclxuICAgICAgICAgICAgcmVzb2x2ZShyZXN1bHQucmVzdWx0T2JqZWN0cyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRTY3JlZW5Db25maWdTdWJSdWJyaWMocGFyZW50UnVicmljSWQ6IG51bWJlciwgY29uZmlnSWQ6IG51bWJlciwgZml4ZWRLZXk6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLnNoYXJlZENvbm5lY3Rvci5nZXRDb25maWdTdWJSdWJyaWMocGFyZW50UnVicmljSWQsIGNvbmZpZ0lkLCBmaXhlZEtleSkudGhlbigocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdC5yZXN1bHRPYmplY3RzKSB7XHJcbiAgICAgICAgICAgIHJlc29sdmUocmVzdWx0LnJlc3VsdE9iamVjdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0VGFnc0Z1bGxUcmVlKGNhdGVnb3J5OiBUYWdDYXRlZ29yeSwgaW5jbHVkZVRhZ3M6IGJvb2xlYW4pOiBQcm9taXNlPFRhZ1RyZWVJdGVtW10+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMubWFpbkNvbm5lY3Rvci5nZXRUYWdzRnVsbFRyZWUoY2F0ZWdvcnksIGluY2x1ZGVUYWdzKS50aGVuKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0LnJlc3VsdE9iamVjdHMpIHtcclxuICAgICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShUYWdUcmVlSXRlbSwgcmVzdWx0LnJlc3VsdE9iamVjdHMpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldENvbXBvbmVudEFjdGl2aXRpZXNXaXRob3V0UmVsYXRpb25GaWx0ZXJpbmcodGFibGU6IFRhYmxlTmFtZSwga2V5OiBzdHJpbmcpOiBQcm9taXNlPEFjdGl2aXR5W10+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMubWFpbkNvbm5lY3Rvci5nZXRDb21wb25lbnRBY3Rpdml0aWVzV2l0aG91dFJlbGF0aW9uRmlsdGVyaW5nKHRhYmxlLCBrZXkpLnRoZW4oKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlQk9BcnJheUZyb21SYXdCYWNrZW5kRGF0YUFycmF5KEFjdGl2aXR5LCByZXN1bHQucmVzdWx0T2JqZWN0KSBhcyB1bmtub3duIGFzIEFjdGl2aXR5W10pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0UmVsYXRpb25TbWFsbE9iamVjdChyZWxhdGlvbklkOiBudW1iZXIpOiBQcm9taXNlPFJlbGF0aW9uU21hbGxPYmplY3Q+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMucmVsYXRpb25Db25uZWN0b3IuZ2V0UmVsYXRpb25TbWFsbE9iamVjdChyZWxhdGlvbklkKS50aGVuKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShSZWxhdGlvblNtYWxsT2JqZWN0LCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRXb3JrZmxvd1N0YXR1c0ZvckFjdGl2aXR5KHRhYmxlOiBUYWJsZU5hbWUsIGtleTogc3RyaW5nLCBjb21wb25lbnQ6IHN0cmluZyApOiBQcm9taXNlPEFjdGl2aXR5V29ya2Zsb3c+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMubWFpbkNvbm5lY3Rvci5nZXRXb3JrZmxvd1N0YXR1c0ZvckFjdGl2aXR5KHRhYmxlLCBrZXksIGNvbXBvbmVudCkudGhlbihhc3luYyAocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShBY3Rpdml0eVdvcmtmbG93LCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBpbnNlcnRBY3Rpdml0eShhY3Rpdml0eTogQWN0aXZpdHkpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMubWFpbkNvbm5lY3Rvci5pbnNlcnRBY3Rpdml0eShhY3Rpdml0eSkudGhlbihhc3luYyAocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIHJlc29sdmUocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGluc2VydFdvcmsoYWN0aXZpdHk6IEFjdGl2aXR5KTogUHJvbWlzZTxXb3JrPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1haW5Db25uZWN0b3IuaW5zZXJ0QWN0aXZpdHkoYWN0aXZpdHkpLnRoZW4oYXN5bmMgKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoV29yaywgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaW5zZXJ0UmVtYXJrKGFjdGl2aXR5OiBBY3Rpdml0eSk6IFByb21pc2U8UmVtYXJrPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1haW5Db25uZWN0b3IuaW5zZXJ0QWN0aXZpdHkoYWN0aXZpdHkpLnRoZW4oYXN5bmMgKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoUmVtYXJrLCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBpbnNlcnRUYXNrKGFjdGl2aXR5OiBBY3Rpdml0eSk6IFByb21pc2U8VGFzaz4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5tYWluQ29ubmVjdG9yLmluc2VydEFjdGl2aXR5KGFjdGl2aXR5KS50aGVuKGFzeW5jIChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRhc2ssIHJlc3VsdC5yZXN1bHRPYmplY3QpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHVwZGF0ZUFjdGl2aXR5KGFjdGl2aXR5OiBBY3Rpdml0eSk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5tYWluQ29ubmVjdG9yLnVwZGF0ZUFjdGl2aXR5KGFjdGl2aXR5KS50aGVuKGFzeW5jIChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgcmVzb2x2ZShyZXN1bHQudmFsaWRhdGlvblJlc3VsdCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZGVsZXRlQWN0aXZpdHkoYWN0aXZpdHk6IEFjdGl2aXR5KTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1haW5Db25uZWN0b3IuZGVsZXRlQWN0aXZpdHkoYWN0aXZpdHkpLnRoZW4oYXN5bmMgKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICByZXNvbHZlKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0KTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBsb2NrVGFzayhpZDogbnVtYmVyKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1haW5Db25uZWN0b3IubG9ja1Rhc2soaWQpLnRoZW4oYXN5bmMgKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICByZXNvbHZlKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0KTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBmaXJlVHJpZ2dlcih3b3JrRmxvd1Byb2Nlc3NJZDogbnVtYmVyLCBzZXF1ZW5jZTogbnVtYmVyLCB0cmlnZ2VySWQ6IG51bWJlcik6IFByb21pc2U8VmFsaWRhdGlvblJlc3VsdD4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5tYWluQ29ubmVjdG9yLmZpcmVUcmlnZ2VyKHdvcmtGbG93UHJvY2Vzc0lkLCBzZXF1ZW5jZSwgdHJpZ2dlcklkKS50aGVuKGFzeW5jIChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgcmVzb2x2ZShyZXN1bHQudmFsaWRhdGlvblJlc3VsdCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZmlyZUdlbmVyaWNUcmlnZ2VyKHdvcmtGbG93UHJvY2Vzc0lkOiBudW1iZXIsIGdlbmVyaWNUcmFuc2l0aW9uSWQ6IG51bWJlciwgcmVsYXRpb25JZDogbnVtYmVyKTogUHJvbWlzZTxWYWxpZGF0aW9uUmVzdWx0PiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1haW5Db25uZWN0b3IuZmlyZUdlbmVyaWNUcmlnZ2VyKHdvcmtGbG93UHJvY2Vzc0lkLCBnZW5lcmljVHJhbnNpdGlvbklkLCByZWxhdGlvbklkKS50aGVuKGFzeW5jIChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgcmVzb2x2ZShyZXN1bHQudmFsaWRhdGlvblJlc3VsdCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0Sm9pbmVkVGFncyh0YWJsZTogc3RyaW5nLCBrZXk6IHN0cmluZyk6IFByb21pc2U8VGFnVHJlZUl0ZW1bXT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5tYWluQ29ubmVjdG9yLmdldEpvaW5lZFRhZ3ModGFibGUsIGtleSkudGhlbigocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdC5yZXN1bHRPYmplY3RzKSB7XHJcbiAgICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VCT0FycmF5RnJvbVJhd0JhY2tlbmREYXRhQXJyYXkoVGFnVHJlZUl0ZW0sIHJlc3VsdC5yZXN1bHRPYmplY3RzKSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXREb2N1bWVudENvbnRlbnQoaWQ6IG51bWJlciwgdGh1bWJuYWlsOiBib29sZWFuID0gdHJ1ZSk6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1haW5Db25uZWN0b3IuZ2V0RG9jdW1lbnRDb250ZW50KGlkLCB0aHVtYm5haWwpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgcmVzb2x2ZShyZXN1bHQucmVzdWx0T2JqZWN0LmRvY3VtZW50Q29udGVudCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vIHB1YmxpYyBhc3luYyBnZXRQcmludFN0b2NrU3RpY2tlcnMocmVxdWVzdDogUHJpbnRTdG9ja1N0aWNrZXJzKTogUHJvbWlzZTxQcmludFN0b2NrU3RpY2tlcnM+IHtcclxuICAvLyAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAvLyAgICAgcmV0dXJuIHRoaXMuc2hhcmVkQ29ubmVjdG9yLmdldFByaW50U3RvY2tTdGlja2VycyhyZXF1ZXN0KS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgLy8gICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAvLyAgICAgICAgIGlmIChyZXN1bHQucmVzdWx0T2JqZWN0KSB7XHJcbiAgLy8gICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoUHJpbnRTdG9ja1N0aWNrZXJzLCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XHJcbiAgLy8gICAgICAgICB9XHJcbiAgLy8gICAgICAgfSBlbHNlIHtcclxuICAvLyAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xyXG4gIC8vICAgICAgIH1cclxuICAvLyAgICAgfSlcclxuICAvLyAgIH0pXHJcbiAgLy8gfVxyXG5cclxuICAvLyBwdWJsaWMgYXN5bmMgZ2V0UHJpbnRQcmljZVN0aWNrZXJzKHJlcXVlc3Q6IFByaW50UHJpY2VTdGlja2Vycyk6IFByb21pc2U8UHJpbnRQcmljZVN0aWNrZXJzPiB7XHJcbiAgLy8gICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgLy8gICAgIHJldHVybiB0aGlzLnNoYXJlZENvbm5lY3Rvci5wcmludFByaWNlU3RpY2tlcnMocmVxdWVzdCkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gIC8vICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgLy8gICAgICAgICBpZiAocmVzdWx0LnJlc3VsdE9iamVjdCkge1xyXG4gIC8vICAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFByaW50UHJpY2VTdGlja2VycywgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xyXG4gIC8vICAgICAgICAgfVxyXG4gIC8vICAgICAgIH0gZWxzZSB7XHJcbiAgLy8gICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcclxuICAvLyAgICAgICB9XHJcbiAgLy8gICAgIH0pXHJcbiAgLy8gICB9KVxyXG4gIC8vIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldFN0b2NrSGlzdG9yeShyZXF1ZXN0OiBHZXRTdG9ja0hpc3RvcnlSZXF1ZXN0KTogUHJvbWlzZTxTdG9ja0hpc3RvcnlCb1tdPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmFydGljbGVDb25uZWN0b3IuZ2V0U3RvY2tIaXN0b3J5KHJlcXVlc3QpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdC5yZXN1bHRPYmplY3QgJiYgcmVzdWx0LnJlc3VsdE9iamVjdC5oYXNPd25Qcm9wZXJ0eShcInN0b2NrSGlzdG9yeVwiKSkge1xyXG4gICAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlQk9BcnJheUZyb21SYXdCYWNrZW5kRGF0YUFycmF5KFN0b2NrSGlzdG9yeUJvLCByZXN1bHQucmVzdWx0T2JqZWN0LnN0b2NrSGlzdG9yeSkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldFN0b2NrSW5mb3JtYXRpb24oZGF0YTogQXJ0aWNsZVN0b2NrKTogUHJvbWlzZTxBcnRpY2xlU3RvY2tCb1tdPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmFydGljbGVDb25uZWN0b3IuZ2V0U3RvY2tJbmZvcm1hdGlvbihkYXRhKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIGlmIChyZXN1bHQucmVzdWx0T2JqZWN0cykge1xyXG4gICAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlQk9BcnJheUZyb21SYXdCYWNrZW5kRGF0YUFycmF5KEFydGljbGVTdG9ja0JvLCByZXN1bHQucmVzdWx0T2JqZWN0cykpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0QXJ0U3RvY2tTdGF0dXMoZ29vZElkOiBudW1iZXIsIGJyYW5jaE5vPzogc3RyaW5nLCByZXF1ZXN0ZWRBbW91bnQ/OiBudW1iZXIsIHdhcmVob3VzZUlkPzogbnVtYmVyKTogUHJvbWlzZTxudW1iZXI+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuYXJ0aWNsZUNvbm5lY3Rvci5nZXRBcnRTdG9ja1N0YXR1cyhnb29kSWQsIGJyYW5jaE5vLCByZXF1ZXN0ZWRBbW91bnQsIHdhcmVob3VzZUlkKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIGlmIChyZXN1bHQucmVzdWx0T2JqZWN0KSB7XHJcbiAgICAgICAgICAgIHJlc29sdmUocmVzdWx0LnJlc3VsdE9iamVjdCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRBcnRpY2xlRmxhdChza3U6IHN0cmluZyk6IFByb21pc2U8QXJ0aWNsZUZsYXQ+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuYXJ0aWNsZUNvbm5lY3Rvci5nZXRBcnRpY2xlRmxhdChza3UpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdC5yZXN1bHRPYmplY3QpIHtcclxuICAgICAgICAgICAgcmVzb2x2ZShyZXN1bHQucmVzdWx0T2JqZWN0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHNlYXJjaEFydGljbGVzKHJlcXVlc3Q6IEFydGljbGVFeHRlbmRlZFJlcXVlc3QpOiBQcm9taXNlPEFydGljbGVFeHRlbmRlZFtdPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmFydGljbGVDb25uZWN0b3Iuc2VhcmNoQXJ0aWNsZXMocmVxdWVzdCwgZmFsc2UpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdC5yZXN1bHRPYmplY3RzKSB7XHJcbiAgICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VCT0FycmF5RnJvbVJhd0JhY2tlbmREYXRhQXJyYXkoU3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlcywgcmVzdWx0LnJlc3VsdE9iamVjdHMpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldFN0b2NrTWFuYWdlbWVudFdhcmVob3VzZXMoKTogUHJvbWlzZTxTdG9ja01hbmFnZW1lbnRXYXJlaG91c2VzW10+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuYXJ0aWNsZUNvbm5lY3Rvci5nZXRTdG9ja01hbmFnZW1lbnRXYXJlaG91c2VzKCkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0LnJlc3VsdE9iamVjdHMpIHtcclxuICAgICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShTdG9ja01hbmFnZW1lbnRXYXJlaG91c2VzLCByZXN1bHQucmVzdWx0T2JqZWN0cykpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0U3RvY2tNYW5hZ2VtZW50TG9jYXRpb25zKHdhcmVob3VzZU5vOiBudW1iZXIpOiBQcm9taXNlPFN0b2NrTG9jYXRpb25bXT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5hcnRpY2xlQ29ubmVjdG9yLmdldFN0b2NrTWFuYWdlbWVudExvY2F0aW9ucyh3YXJlaG91c2VObykudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0LnJlc3VsdE9iamVjdHMpIHtcclxuICAgICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShTdG9ja0xvY2F0aW9uLCByZXN1bHQucmVzdWx0T2JqZWN0cykpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyBwdWJsaWMgYXN5bmMgZ2V0T3JkZXJDb25maXJtYXRpb25EZWZhdWx0U2VuZE1ldGhvZChyZWxhdGlvbklkOiBudW1iZXIpOiBQcm9taXNlPG51bWJlcj4ge1xyXG4gIC8vICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gIC8vICAgICByZXR1cm4gdGhpcy5zaGFyZWRDb25uZWN0b3IuZ2V0T3JkZXJDb25maXJtYXRpb25EZWZhdWx0U2VuZE1ldGhvZChyZWxhdGlvbklkKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgLy8gICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAvLyAgICAgICAgIGlmIChyZXN1bHQucmVzdWx0T2JqZWN0KSB7XHJcbiAgLy8gICAgICAgICAgIHJlc29sdmUgKHJlc3VsdC5yZXN1bHRPYmplY3QpO1xyXG4gIC8vICAgICAgICAgfVxyXG4gIC8vICAgICAgIH0gZWxzZSB7XHJcbiAgLy8gICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcclxuICAvLyAgICAgICB9XHJcbiAgLy8gICAgIH0pO1xyXG4gIC8vICAgfSk7XHJcbiAgLy8gfVxyXG5cclxuICAvLyBwdWJsaWMgYXN5bmMgZ2V0RGVmYXVsdEVtYWlsQWRkcmVzc0xpc3RGb3JPcmRlckNvbmZpcm1hdGlvbih0cmFuc2FjdGlvblVVSUQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nW10+IHtcclxuICAvLyAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAvLyAgICAgcmV0dXJuIHRoaXMuc2hhcmVkQ29ubmVjdG9yLmdldERlZmF1bHRFbWFpbEFkZHJlc3NMaXN0Rm9yT3JkZXJDb25maXJtYXRpb24odHJhbnNhY3Rpb25VVUlEKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgLy8gICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAvLyAgICAgICAgIGlmIChyZXN1bHQucmVzdWx0T2JqZWN0KSB7XHJcbiAgLy8gICAgICAgICAgIHJlc29sdmUgKHJlc3VsdC5yZXN1bHRPYmplY3QpO1xyXG4gIC8vICAgICAgICAgfVxyXG4gIC8vICAgICAgIH0gZWxzZSB7XHJcbiAgLy8gICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcclxuICAvLyAgICAgICB9XHJcbiAgLy8gICAgIH0pO1xyXG4gIC8vICAgfSk7XHJcbiAgLy8gfVxyXG5cclxuICAvLyBwdWJsaWMgYXN5bmMgZ2V0UHVyY2hhc2VPcmRlckVtYWlsTGF5b3V0cyh0cmFuc2FjdGlvblVVSUQ6IHN0cmluZyk6IFByb21pc2U8U3RvY2tTdGlja2Vyc0VtYWlsTGF5b3V0c1tdPiB7XHJcbiAgLy8gICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgLy8gICAgIHJldHVybiB0aGlzLnNoYXJlZENvbm5lY3Rvci5nZXRQdXJjaGFzZU9yZGVyRW1haWxMYXlvdXRzKHRyYW5zYWN0aW9uVVVJRCkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gIC8vICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgLy8gICAgICAgICBpZiAocmVzdWx0LnJlc3VsdE9iamVjdCkge1xyXG4gIC8vICAgICAgICAgICByZXNvbHZlIChyZXN1bHQucmVzdWx0T2JqZWN0KTtcclxuICAvLyAgICAgICAgIH1cclxuICAvLyAgICAgICB9IGVsc2Uge1xyXG4gIC8vICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XHJcbiAgLy8gICAgICAgfVxyXG4gIC8vICAgICB9KTtcclxuICAvLyAgIH0pO1xyXG4gIC8vIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldEFydGljbGVEZXRhaWxzKGRhdGE6IEFydGljbGVTdG9ja01hbmFnZW1lbnQpOiBQcm9taXNlPEFydGljbGVEZXRhaWxzQm9bXT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5hcnRpY2xlQ29ubmVjdG9yLmdldEFydGljbGVEZXRhaWxzKGRhdGEpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdC5yZXN1bHRPYmplY3RzKSB7XHJcbiAgICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VCT0FycmF5RnJvbVJhd0JhY2tlbmREYXRhQXJyYXkoQXJ0aWNsZURldGFpbHNCbywgcmVzdWx0LnJlc3VsdE9iamVjdHMpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHVwZGF0ZUFydGljbGVEZXRhaWxzKGRhdGE6IEFydGljbGVEZXRhaWxzQm8pOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuYXJ0aWNsZUNvbm5lY3Rvci51cGRhdGVBcnRpY2xlRGV0YWlscyhkYXRhKS50aGVuKGFzeW5jIChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIGF3YWl0IHRoaXMuY29tbWl0KCk7XHJcbiAgICAgICAgICByZXNvbHZlKHRydWUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHB1YmxpYyBhc3luYyBsb2NrQXJ0aWNsZURldGFpbHMoZGF0YTogQXJ0aWNsZVN0b2NrTWFuYWdlbWVudCk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5hcnRpY2xlQ29ubmVjdG9yLmxvY2tBcnRpY2xlRGV0YWlscyhkYXRhKS50aGVuKGFzeW5jIChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIGF3YWl0IHRoaXMuY29tbWl0KCk7XHJcbiAgICAgICAgICByZXNvbHZlKHRydWUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldFN0b2NrU3RhdHVzKCk6IFByb21pc2U8U3RvY2tTdGF0dXNbXT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5hcnRpY2xlQ29ubmVjdG9yLmdldFN0b2NrU3RhdGUoKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIGlmIChyZXN1bHQucmVzdWx0T2JqZWN0cykge1xyXG4gICAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlQk9BcnJheUZyb21SYXdCYWNrZW5kRGF0YUFycmF5KFN0b2NrU3RhdHVzLCByZXN1bHQucmVzdWx0T2JqZWN0cykpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyBwdWJsaWMgYXN5bmMgZ2V0U3RvY2tTdGlja2VyVGVtcGxhdGVzKGRhdGE6IFN0b2NrU3RpY2tlcnNQcmludExheW91dHMpOiBQcm9taXNlPFN0b2NrU3RpY2tlcnNQcmludExheW91dHNbXT4ge1xyXG4gIC8vICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gIC8vICAgICByZXR1cm4gdGhpcy5tYWluQ29ubmVjdG9yLmdldFN0b2NrU3RpY2tlclByaW50TGF5b3V0cyhkYXRhKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgLy8gICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAvLyAgICAgICAgIGlmIChyZXN1bHQucmVzdWx0T2JqZWN0KSB7XHJcbiAgLy8gICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VCT0FycmF5RnJvbVJhd0JhY2tlbmREYXRhQXJyYXkoU3RvY2tTdGlja2Vyc1ByaW50TGF5b3V0cywgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xyXG4gIC8vICAgICAgICAgfVxyXG4gIC8vICAgICAgIH0gZWxzZSB7XHJcbiAgLy8gICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcclxuICAvLyAgICAgICB9XHJcbiAgLy8gICAgIH0pO1xyXG4gIC8vICAgfSk7XHJcbiAgLy8gfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0QXJ0aWNsZVRyYW5zYWN0aW9uKGRhdGE6IEFydGljbGVUcmFuc2FjdGlvbik6IFByb21pc2U8QXJ0aWNsZVRyYW5zYWN0aW9uQm9bXT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5hcnRpY2xlQ29ubmVjdG9yLmdldEFydGljbGVUcmFuc2FjdGlvbihkYXRhKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIGlmIChyZXN1bHQucmVzdWx0T2JqZWN0cykge1xyXG4gICAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlQk9BcnJheUZyb21SYXdCYWNrZW5kRGF0YUFycmF5KEFydGljbGVUcmFuc2FjdGlvbkJvLCByZXN1bHQucmVzdWx0T2JqZWN0cykpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0U3RvY2tQcm9nbm9zZShnb29kSWQ6IG51bWJlciwgd2FyZWhvdXNlTnVtYmVyOiBudW1iZXIpOiBQcm9taXNlPFN0b2NrRm9yZWNhc3RbXT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5hcnRpY2xlQ29ubmVjdG9yLmdldFN0b2NrRm9yZWNhc3QoZ29vZElkLCB3YXJlaG91c2VOdW1iZXIpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdC5yZXN1bHRPYmplY3RzKSB7XHJcbiAgICAgICAgICAgIHJlc29sdmUocmVzdWx0LnJlc3VsdE9iamVjdHMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0UmVsYXRpb25MaXN0T2JqZWN0cyhyZXF1ZXN0OiBSZWxhdGlvblJlcXVlc3QpOiBQcm9taXNlPFJlbGF0aW9uTGlzdE9iamVjdFtdPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiAgdGhpcy5yZWxhdGlvbkNvbm5lY3Rvci5nZXRSZWxhdGlvbkxpc3RPYmplY3RzKHJlcXVlc3QsIGZhbHNlICkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0LnJlc3VsdE9iamVjdHMpIHtcclxuICAgICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShSZWxhdGlvbkxpc3RPYmplY3QsIHJlc3VsdC5yZXN1bHRPYmplY3RzKSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRUYXNrQ2F0ZWdvcmllcygpOiBQcm9taXNlPFRhc2tDYXRlZ29yeVtdPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1haW5Db25uZWN0b3IuZ2V0VGFza0NhdGVnb3JpZXMoKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIGlmIChyZXN1bHQucmVzdWx0T2JqZWN0cykge1xyXG4gICAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlQk9BcnJheUZyb21SYXdCYWNrZW5kRGF0YUFycmF5KFRhc2tDYXRlZ29yeSwgcmVzdWx0LnJlc3VsdE9iamVjdHMpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldEFjdGl2ZVByb2Nlc3Nlc0J5VGFibGVBbmRLZXkodGFibGU6IFRhYmxlTmFtZSwga2V5OiBzdHJpbmcpOiBQcm9taXNlPFdvcmtmbG93UHJvY2Vzc1tdPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1haW5Db25uZWN0b3IuZ2V0QWN0aXZlUHJvY2Vzc2VzQnlUYWJsZUFuZEtleSh0YWJsZSwga2V5KS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIGlmIChyZXN1bHQucmVzdWx0T2JqZWN0cykge1xyXG4gICAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlQk9BcnJheUZyb21SYXdCYWNrZW5kRGF0YUFycmF5KFdvcmtmbG93UHJvY2VzcywgcmVzdWx0LnJlc3VsdE9iamVjdHMpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldERvbWFpbkNvbGxlY3Rpb24obGFuZ3VhZ2VDb2RlOiBzdHJpbmcsIGRvbWFpbjogRG9tYWluTmFtZSk6IFByb21pc2U8Q29Eb21haW5WYWx1ZVtdPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1haW5Db25uZWN0b3IuZ2V0RG9tYWluQ29sbGVjdGlvbihsYW5ndWFnZUNvZGUsIGRvbWFpbikudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0LnJlc3VsdE9iamVjdHMpIHtcclxuICAgICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShDb0RvbWFpblZhbHVlLCByZXN1bHQucmVzdWx0T2JqZWN0cykpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0Um9sZUVtYWlsQWRkcmVzc2VzQnlXb3JrZmxvd0NhdGVnb3J5QW5kS2V5KHdvcmtmbG93Q2F0ZWdvcnk6IHN0cmluZywga2V5OiBzdHJpbmcpOiBQcm9taXNlPFJvbGVFbWFpbGFkZHJlc3NbXT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5tYWluQ29ubmVjdG9yLmdldFJvbGVFbWFpbEFkZHJlc3Nlc0J5V29ya2Zsb3dDYXRlZ29yeUFuZEtleSh3b3JrZmxvd0NhdGVnb3J5LCBrZXkpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdC5yZXN1bHRPYmplY3QpIHtcclxuICAgICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShSb2xlRW1haWxhZGRyZXNzLCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRFbWFpbFNlbmRlckJ5V29ya2Zsb3dDYXRlZ29yeUFuZEtleSh3b3JsZmxvd0NhdGVnb3J5OiBzdHJpbmcsIGtleTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMubWFpbkNvbm5lY3Rvci5nZXRFbWFpbFNlbmRlckJ5V29ya2Zsb3dDYXRlZ29yeUFuZEtleSh3b3JsZmxvd0NhdGVnb3J5LCBrZXkpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgcmVzb2x2ZShyZXN1bHQucmVzdWx0T2JqZWN0KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldFJlcG9ydFRlbXBsYXRlcyhyZXBvcnRUZW1wbGF0ZXNSZXF1ZXN0OiBTZWxlY3RSZXBvcnRUZW1wbGF0ZXNSZXF1ZXN0KTogUHJvbWlzZTxSZXBvcnRbXT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5tYWluQ29ubmVjdG9yLmdldFJlcG9ydFRlbXBsYXRlcyhyZXBvcnRUZW1wbGF0ZXNSZXF1ZXN0KS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIGlmIChyZXN1bHQucmVzdWx0T2JqZWN0cykge1xyXG4gICAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlQk9BcnJheUZyb21SYXdCYWNrZW5kRGF0YUFycmF5KFJlcG9ydCwgcmVzdWx0LnJlc3VsdE9iamVjdHMpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGVtYWlsUmVwb3J0KGVtYWlsSm9iOiBFbWFpbEpvYik6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgICBjb25zdCByZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5tYWluQ29ubmVjdG9yLmVtYWlsUmVwb3J0KGVtYWlsSm9iKTtcclxuICAgICAgaWYgKHJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0cnVlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZhbHNlKTtcclxuICAgICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGVtYWlsQWN0aXZpdHkocmVxdWVzdDogRW1haWxBY3Rpdml0eVJlcXVlc3QpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGNvbnN0IHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLm1haW5Db25uZWN0b3IuZW1haWxBY3Rpdml0eShyZXF1ZXN0KTtcclxuICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRydWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaW5zZXJ0RW1haWxIaXN0b3J5Rm9yUmVtYXJrKGhpc3Rvcnk6IEFjdGl2aXR5RW1haWxIaXN0b3J5KTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1haW5Db25uZWN0b3IuaW5zZXJ0RW1haWxIaXN0b3J5Rm9yUmVtYXJrKGhpc3RvcnkpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgcmVzb2x2ZShyZXN1bHQucmVzdWx0T2JqZWN0KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGluc2VydEVtYWlsSGlzdG9yeUZvcldvcmsoaGlzdG9yeTogQWN0aXZpdHlFbWFpbEhpc3RvcnkpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMubWFpbkNvbm5lY3Rvci5pbnNlcnRFbWFpbEhpc3RvcnlGb3JXb3JrKGhpc3RvcnkpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgcmVzb2x2ZShyZXN1bHQucmVzdWx0T2JqZWN0KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGluc2VydEVtYWlsSGlzdG9yeUZvclRhc2soaGlzdG9yeTogQWN0aXZpdHlFbWFpbEhpc3RvcnkpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMubWFpbkNvbm5lY3Rvci5pbnNlcnRFbWFpbEhpc3RvcnlGb3JUYXNrKGhpc3RvcnkpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgcmVzb2x2ZShyZXN1bHQucmVzdWx0T2JqZWN0KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRXb3JrZmxvd1Byb2Nlc3NJbmZvUGVyU3RhdHVzKHdvcmxmbG93Q2F0ZWdvcnk6IHN0cmluZyk6IFByb21pc2U8V29ya2Zsb3dQcm9jZXNzSW5mb1BlclN0YXR1c1tdPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1haW5Db25uZWN0b3IuZ2V0V29ya2Zsb3dQcm9jZXNzSW5mb1BlclN0YXR1cyh3b3JsZmxvd0NhdGVnb3J5KS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIGlmIChyZXN1bHQucmVzdWx0T2JqZWN0KSB7XHJcbiAgICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VCT0FycmF5RnJvbVJhd0JhY2tlbmREYXRhQXJyYXkoV29ya2Zsb3dQcm9jZXNzSW5mb1BlclN0YXR1cywgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0SGlzdG9yaWNBY3Rpdml0aWVzKHRhYmxlOiBUYWJsZU5hbWUsIGtleTogc3RyaW5nKTogUHJvbWlzZTxBY3Rpdml0eVtdPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1haW5Db25uZWN0b3IuZ2V0SGlzdG9yaWNBY3Rpdml0aWVzKHRhYmxlLCBrZXkpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdC5yZXN1bHRPYmplY3QpIHtcclxuICAgICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShBY3Rpdml0eSwgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0Q29tcG9uZW50QWN0aXZpdGllcyh0YWJsZTogVGFibGVOYW1lLCBrZXk6IHN0cmluZyk6IFByb21pc2U8QWN0aXZpdHlbXT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5tYWluQ29ubmVjdG9yLmdldENvbXBvbmVudEFjdGl2aXRpZXModGFibGUsIGtleSkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0LnJlc3VsdE9iamVjdCkge1xyXG4gICAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlQk9BcnJheUZyb21SYXdCYWNrZW5kRGF0YUFycmF5KEFjdGl2aXR5LCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRGb3JtQnlJZChmb3JtSWQ6IG51bWJlcik6IFByb21pc2U8Rm9ybT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5tYWluQ29ubmVjdG9yLmdldEZvcm1CeUlkKGZvcm1JZCkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0LnJlc3VsdE9iamVjdCkge1xyXG4gICAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKEZvcm0sIHJlc3VsdC5yZXN1bHRPYmplY3QpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldEFsbEZvcm1SZXNwb25zZXNGb3JUYWJsZUFuZEtleSh0YWJsZTogVGFibGVOYW1lLCBrZXk6IHN0cmluZyk6IFByb21pc2U8Rm9ybVJlc3BvbnNlW10+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMubWFpbkNvbm5lY3Rvci5nZXRBbGxGb3JtUmVzcG9uc2VzRm9yVGFibGVBbmRLZXkodGFibGUsIGtleSkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0LnJlc3VsdE9iamVjdHMpIHtcclxuICAgICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShGb3JtUmVzcG9uc2UsIHJlc3VsdC5yZXN1bHRPYmplY3RzKSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBpbnNlcnRGb3JtUmVzcG9uc2UoZm9ybVJlc3BvbnNlOiBGb3JtUmVzcG9uc2UpOiBQcm9taXNlPEZvcm1SZXNwb25zZT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5tYWluQ29ubmVjdG9yLmluc2VydEZvcm1SZXNwb25zZShmb3JtUmVzcG9uc2UpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdC5yZXN1bHRPYmplY3QpIHtcclxuICAgICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShGb3JtUmVzcG9uc2UsIHJlc3VsdC5yZXN1bHRPYmplY3QpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICBwdWJsaWMgYXN5bmMgdXBkYXRlRm9ybVJlc3BvbnNlKGZvcm1SZXNwb25zZTogRm9ybVJlc3BvbnNlKTogUHJvbWlzZTxGb3JtUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMubWFpbkNvbm5lY3Rvci51cGRhdGVGb3JtUmVzcG9uc2UoZm9ybVJlc3BvbnNlKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIGlmIChyZXN1bHQucmVzdWx0T2JqZWN0KSB7XHJcbiAgICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoRm9ybVJlc3BvbnNlLCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBsb2NrRm9ybVJlc3BvbnNlKGZvcm1SZXNwb25zZUlkOiBudW1iZXIpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMubWFpbkNvbm5lY3Rvci5sb2NrRm9ybVJlc3BvbnNlKGZvcm1SZXNwb25zZUlkKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvblJlc3VsdC5tZXNzYWdlc1swXS5tZXNzYWdlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgdW5sb2NrRm9ybVJlc3BvbnNlKGZvcm1SZXNwb25zZUlkOiBudW1iZXIpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMubWFpbkNvbm5lY3Rvci51bmxvY2tGb3JtUmVzcG9uc2UoZm9ybVJlc3BvbnNlSWQpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgcmVzb2x2ZSh0cnVlKVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQubWVzc2FnZXNbMF0ubWVzc2FnZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIHB1YmxpYyBjb21taXQoKTogUHJvbWlzZTxEYXRhU2VydmljZVJlc3BvbnNlRGF0YT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYXJ0aWNsZUNvbm5lY3Rvci5jb21taXQoKTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|