@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,5 +0,0 @@
|
|
|
1
|
-
// @returns true iff given value does not equals null and does not equal undefined
|
|
2
|
-
export function notNill(value) {
|
|
3
|
-
return value !== null && value !== undefined;
|
|
4
|
-
}
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90LW5pbGwuZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvdXRpbHMvZnVuY3Rpb24vbm90LW5pbGwuZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsa0ZBQWtGO0FBQ2xGLE1BQU0sVUFBVSxPQUFPLENBQUMsS0FBVTtJQUM5QixPQUFPLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsQ0FBQztBQUNqRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHJldHVybnMgdHJ1ZSBpZmYgZ2l2ZW4gdmFsdWUgZG9lcyBub3QgZXF1YWxzIG51bGwgYW5kIGRvZXMgbm90IGVxdWFsIHVuZGVmaW5lZFxyXG5leHBvcnQgZnVuY3Rpb24gbm90TmlsbCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZDtcclxufVxyXG4iXX0=
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
// @returns true iff given value equals null or equals undefined
|
|
2
|
-
export function isNill(value) {
|
|
3
|
-
return value === null || value === undefined;
|
|
4
|
-
}
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtbmlsbC5mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL2xpYi91dGlscy9pcy1uaWxsLmZ1bmN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdFQUFnRTtBQUNoRSxNQUFNLFVBQVUsTUFBTSxDQUFDLEtBQVU7SUFDN0IsT0FBTyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLENBQUM7QUFDakQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEByZXR1cm5zIHRydWUgaWZmIGdpdmVuIHZhbHVlIGVxdWFscyBudWxsIG9yIGVxdWFscyB1bmRlZmluZWRcclxuZXhwb3J0IGZ1bmN0aW9uIGlzTmlsbCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZDtcclxufSJdfQ==
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
// Static utility functions holder related to Maps.
|
|
2
|
-
export class MapUtils {
|
|
3
|
-
/**
|
|
4
|
-
* Returns the first key from given map, for which the value filter holds true. Basically a reverse Map.get(key) function.
|
|
5
|
-
* @param map
|
|
6
|
-
* @param valueFilter For the first value that returns true for this filter functions, its key will be returned.
|
|
7
|
-
*/
|
|
8
|
-
static FindKeyByValue(map, valueFilter) {
|
|
9
|
-
if (!map || !valueFilter) {
|
|
10
|
-
return undefined;
|
|
11
|
-
}
|
|
12
|
-
let foundKey = undefined;
|
|
13
|
-
let keyWasFound = false;
|
|
14
|
-
map.forEach((value, key) => {
|
|
15
|
-
if (!keyWasFound && valueFilter.call(this, value)) {
|
|
16
|
-
foundKey = key;
|
|
17
|
-
keyWasFound = true;
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
return foundKey;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Inserts given arrayEntry into given map, under given mapKey. What's special here, is that a NEW map entry is created with an array
|
|
24
|
-
* containing the single [arrayEntry] item, if no entry yet existed.
|
|
25
|
-
* @param map
|
|
26
|
-
* @param mapKey
|
|
27
|
-
* @param arrayEntry
|
|
28
|
-
*/
|
|
29
|
-
static InsertArrayItemIntoMap(map, mapKey, arrayEntry) {
|
|
30
|
-
if (!map) {
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
if (!map.has(mapKey)) {
|
|
34
|
-
map.set(mapKey, [arrayEntry]);
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
map.get(mapKey).push(arrayEntry);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL3V0aWxzL21hcC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtREFBbUQ7QUFDbkQsTUFBTSxPQUFPLFFBQVE7SUFFakI7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxjQUFjLENBQU8sR0FBYyxFQUFFLFdBQWtDO1FBRWpGLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDdEIsT0FBTyxTQUFTLENBQUM7U0FDcEI7UUFFRCxJQUFJLFFBQVEsR0FBTSxTQUFTLENBQUM7UUFDNUIsSUFBSSxXQUFXLEdBQVksS0FBSyxDQUFDO1FBQ2pDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFRLEVBQUUsR0FBTSxFQUFFLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFdBQVcsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRTtnQkFDL0MsUUFBUSxHQUFHLEdBQUcsQ0FBQztnQkFDZixXQUFXLEdBQUcsSUFBSSxDQUFDO2FBQ3RCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLHNCQUFzQixDQUFDLEdBQWtCLEVBQUUsTUFBVyxFQUFFLFVBQWU7UUFDakYsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNOLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2xCLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztTQUNqQzthQUFNO1lBQ0gsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDcEM7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTdGF0aWMgdXRpbGl0eSBmdW5jdGlvbnMgaG9sZGVyIHJlbGF0ZWQgdG8gTWFwcy5cclxuZXhwb3J0IGNsYXNzIE1hcFV0aWxzIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdGhlIGZpcnN0IGtleSBmcm9tIGdpdmVuIG1hcCwgZm9yIHdoaWNoIHRoZSB2YWx1ZSBmaWx0ZXIgaG9sZHMgdHJ1ZS4gQmFzaWNhbGx5IGEgcmV2ZXJzZSBNYXAuZ2V0KGtleSkgZnVuY3Rpb24uXHJcbiAgICAgKiBAcGFyYW0gbWFwXHJcbiAgICAgKiBAcGFyYW0gdmFsdWVGaWx0ZXIgRm9yIHRoZSBmaXJzdCB2YWx1ZSB0aGF0IHJldHVybnMgdHJ1ZSBmb3IgdGhpcyBmaWx0ZXIgZnVuY3Rpb25zLCBpdHMga2V5IHdpbGwgYmUgcmV0dXJuZWQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgRmluZEtleUJ5VmFsdWU8SywgVj4obWFwOiBNYXA8SywgVj4sIHZhbHVlRmlsdGVyOiAodmFsdWU6IFYpID0+IGJvb2xlYW4pOiBLIHtcclxuXHJcbiAgICAgICAgaWYgKCFtYXAgfHwgIXZhbHVlRmlsdGVyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgZm91bmRLZXk6IEsgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgbGV0IGtleVdhc0ZvdW5kOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAgICAgbWFwLmZvckVhY2goKHZhbHVlOiBWLCBrZXk6IEspID0+IHtcclxuICAgICAgICAgICAgaWYgKCFrZXlXYXNGb3VuZCAmJiB2YWx1ZUZpbHRlci5jYWxsKHRoaXMsIHZhbHVlKSkge1xyXG4gICAgICAgICAgICAgICAgZm91bmRLZXkgPSBrZXk7XHJcbiAgICAgICAgICAgICAgICBrZXlXYXNGb3VuZCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gZm91bmRLZXk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbnNlcnRzIGdpdmVuIGFycmF5RW50cnkgaW50byBnaXZlbiBtYXAsIHVuZGVyIGdpdmVuIG1hcEtleS4gV2hhdCdzIHNwZWNpYWwgaGVyZSwgaXMgdGhhdCBhIE5FVyBtYXAgZW50cnkgaXMgY3JlYXRlZCB3aXRoIGFuIGFycmF5XHJcbiAgICAgKiBjb250YWluaW5nIHRoZSBzaW5nbGUgW2FycmF5RW50cnldIGl0ZW0sIGlmIG5vIGVudHJ5IHlldCBleGlzdGVkLlxyXG4gICAgICogQHBhcmFtIG1hcFxyXG4gICAgICogQHBhcmFtIG1hcEtleVxyXG4gICAgICogQHBhcmFtIGFycmF5RW50cnlcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBJbnNlcnRBcnJheUl0ZW1JbnRvTWFwKG1hcDogTWFwPGFueSwgYW55PiwgbWFwS2V5OiBhbnksIGFycmF5RW50cnk6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGlmICghbWFwKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghbWFwLmhhcyhtYXBLZXkpKSB7XHJcbiAgICAgICAgICAgIG1hcC5zZXQobWFwS2V5LCBbYXJyYXlFbnRyeV0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIG1hcC5nZXQobWFwS2V5KS5wdXNoKGFycmF5RW50cnkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -1,390 +0,0 @@
|
|
|
1
|
-
import { ObjectUtils } from "./object-utils";
|
|
2
|
-
import { ArrayUtils } from "./array-utils";
|
|
3
|
-
import { isNill } from "./is-nill.function";
|
|
4
|
-
import { notNill } from "./function/not-nill.function";
|
|
5
|
-
// Static utility function holder related to numeric variable evaluations and operations.
|
|
6
|
-
export class NumberUtils {
|
|
7
|
-
// For user-typed number input; supports comma's as decimal delimiter.
|
|
8
|
-
static ParseIntNumberInput(arg) {
|
|
9
|
-
return NumberUtils.ParseInt(NumberUtils._NumberInputToNumberStr(arg));
|
|
10
|
-
}
|
|
11
|
-
// Parses given argument to an integer, using a native parseInt() function with a radix of 10. Returns NaN if parsing was not possible.
|
|
12
|
-
static ParseInt(arg) {
|
|
13
|
-
if (isNill(arg) || Array.isArray(arg)) {
|
|
14
|
-
return undefined;
|
|
15
|
-
}
|
|
16
|
-
return parseInt(arg, 10);
|
|
17
|
-
}
|
|
18
|
-
// For user-typed number input; supports comma's as decimal delimiter.
|
|
19
|
-
static ParseFloatNumberInput(arg, decimalPrecision = 2) {
|
|
20
|
-
return NumberUtils.ParseFloat(NumberUtils._NumberInputToNumberStr(arg), decimalPrecision);
|
|
21
|
-
}
|
|
22
|
-
static ParseFloatNumberInputKeepPrecision(arg) {
|
|
23
|
-
const correctedInputStr = NumberUtils._NumberInputToNumberStr(arg);
|
|
24
|
-
const decimalPrecision = this.GetDecimalPlaces(correctedInputStr);
|
|
25
|
-
return NumberUtils.ParseFloat(correctedInputStr, decimalPrecision);
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Returns given arg as a float number with given decimal precision, if possible. Returns NaN if parse conversion failed.
|
|
29
|
-
*
|
|
30
|
-
* @param {any} arg The argument to parse to a float
|
|
31
|
-
* @param {number} decimalPrecision The number of decimals, or the precision, the parsed return float should have
|
|
32
|
-
* @returns {number} NaN if not possible, else the parsed float value
|
|
33
|
-
*/
|
|
34
|
-
static ParseFloat(arg, decimalPrecision = 2) {
|
|
35
|
-
if (!ObjectUtils.AllExist(arg, decimalPrecision) || Array.isArray(arg)) {
|
|
36
|
-
return NaN;
|
|
37
|
-
}
|
|
38
|
-
if (!NumberUtils.IsInteger(decimalPrecision) || decimalPrecision < 0) {
|
|
39
|
-
decimalPrecision = 2;
|
|
40
|
-
// toFixed() can only handle up until 20
|
|
41
|
-
}
|
|
42
|
-
else if (decimalPrecision > 20) {
|
|
43
|
-
decimalPrecision = 20;
|
|
44
|
-
}
|
|
45
|
-
return parseFloat(parseFloat(arg).toFixed(decimalPrecision));
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Returns given arg as a float number with given decimal precision, if possible. Returns NaN if parse conversion failed.
|
|
49
|
-
*
|
|
50
|
-
* @param arg The argument to parse to a float
|
|
51
|
-
* @returns {number} The argument as a float with its original decimal precision intact
|
|
52
|
-
*/
|
|
53
|
-
static ParseFloatKeepPrecision(arg) {
|
|
54
|
-
const decimalPrecision = this.GetDecimalPlaces(arg);
|
|
55
|
-
return this.ParseFloat(arg, decimalPrecision);
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Returns the given argument as a number. Returns given defaultValue if conversion of argument was impossible.
|
|
59
|
-
* @param arg
|
|
60
|
-
* @param {number} [defaultValue = 0]
|
|
61
|
-
* @returns {number}
|
|
62
|
-
*/
|
|
63
|
-
static ParseNumberOrDefault(arg, defaultValue = 0) {
|
|
64
|
-
if (Array.isArray(arg)) {
|
|
65
|
-
return defaultValue;
|
|
66
|
-
}
|
|
67
|
-
if (!NumberUtils.IsNumber(arg)) {
|
|
68
|
-
arg = parseFloat(arg);
|
|
69
|
-
arg = isNaN(arg) ? defaultValue : arg;
|
|
70
|
-
}
|
|
71
|
-
return arg;
|
|
72
|
-
}
|
|
73
|
-
// Returns true iff given argument is an integer number. Returns false on non-numbers or numbers with significant decimals.
|
|
74
|
-
static IsInteger(arg) {
|
|
75
|
-
if (isNaN(arg) || Array.isArray(arg)) {
|
|
76
|
-
return false;
|
|
77
|
-
}
|
|
78
|
-
const argAsFloat = parseFloat(arg);
|
|
79
|
-
return ((argAsFloat | 0) === argAsFloat); // returns whether 'arg converted to an integer equals arg'
|
|
80
|
-
}
|
|
81
|
-
// Returns the number of decimal places of the given number. Returns 0 if no decimals whatsoever could be found on given arg.
|
|
82
|
-
static GetDecimalPlaces(arg, maxAnswer = 1000) {
|
|
83
|
-
const match = ("" + arg).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);
|
|
84
|
-
if (!match) {
|
|
85
|
-
return 0;
|
|
86
|
-
}
|
|
87
|
-
let answer = Math.max(0,
|
|
88
|
-
// number of digits right of decimal point.
|
|
89
|
-
(match[1] ? match[1].length : 0)
|
|
90
|
-
// adjust for scientific notation
|
|
91
|
-
- (match[2] ? +match[2] : 0));
|
|
92
|
-
if (answer > maxAnswer) {
|
|
93
|
-
answer = maxAnswer;
|
|
94
|
-
}
|
|
95
|
-
return answer;
|
|
96
|
-
}
|
|
97
|
-
// Parses given numberInput to a number, or returns given defaultValue if parse not possible. Allows ',' char as decimal delimiter.
|
|
98
|
-
static ParseNumberInputOrDefault(numberInput, defaultValue = 0) {
|
|
99
|
-
return NumberUtils.ParseNumberOrDefault(NumberUtils._NumberInputToNumberStr(numberInput), defaultValue);
|
|
100
|
-
}
|
|
101
|
-
// Returns whether the type of given argument is 'number'.
|
|
102
|
-
static IsNumber(arg) {
|
|
103
|
-
return typeof arg === "number" && !isNaN(arg);
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Returns whether given arg is indeed not a number (it's NaN or it has another type than 'number')
|
|
107
|
-
* Our exact copy of AS Flex'es isNaN(arg) function. Always use this method for copying Flex isNaN(..) occurences into TypeScript.
|
|
108
|
-
* @param arg
|
|
109
|
-
* @returns {boolean}
|
|
110
|
-
* @constructor
|
|
111
|
-
*/
|
|
112
|
-
static IsNaN(arg) {
|
|
113
|
-
return isNaN(arg) || !NumberUtils.IsNumber(arg);
|
|
114
|
-
}
|
|
115
|
-
// Our copy of CoMath.NaN. Returns number, or substitute if NumberUtils.IsNaN(number) holds true.
|
|
116
|
-
static NaN(number, substitute = 0) {
|
|
117
|
-
return NumberUtils.IsNaN(number) ? substitute : number;
|
|
118
|
-
}
|
|
119
|
-
// Returns whether the value is parasable as a number.
|
|
120
|
-
static IsParsableNumber(arg) {
|
|
121
|
-
if (Array.isArray(arg)) {
|
|
122
|
-
return false;
|
|
123
|
-
}
|
|
124
|
-
return !isNaN(parseFloat(arg));
|
|
125
|
-
}
|
|
126
|
-
static IsParsableNumberInput(numberInput) {
|
|
127
|
-
return NumberUtils.IsParsableNumber(NumberUtils._NumberInputToNumberStr(numberInput));
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* Returns whether given arg is parseable as a number, and whether the lengts of its number parse result is equal to its original length.
|
|
131
|
-
* I.e. this function returns FALSE with given number-parsable strings, but that have non-numeric appendices, eg '2233ff'. That arg
|
|
132
|
-
* IS number-parseable, but not a strict 'string number', the latter being what this method actually checks for.
|
|
133
|
-
*/
|
|
134
|
-
static IsStringNumber(arg) {
|
|
135
|
-
if (!NumberUtils.IsParsableNumber(arg)) {
|
|
136
|
-
return false;
|
|
137
|
-
}
|
|
138
|
-
else {
|
|
139
|
-
return arg.toString().length === parseFloat(arg).toString().length;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
static IsListOfNumbers(arg, separator = ",") {
|
|
143
|
-
const nrs = arg.split(separator);
|
|
144
|
-
if (nrs.length === 0) {
|
|
145
|
-
return false;
|
|
146
|
-
}
|
|
147
|
-
return nrs.filter(s => NumberUtils.IsStringNumber(s)).length === nrs.length;
|
|
148
|
-
}
|
|
149
|
-
// Returns given argument as a string representation of a number parse, e.g. "1" for a number parse result of arg to 1.
|
|
150
|
-
static ParseStringNumber(arg) {
|
|
151
|
-
if (!this.IsStringNumber(arg)) {
|
|
152
|
-
return NaN;
|
|
153
|
-
}
|
|
154
|
-
return NumberUtils.ParseFloatKeepPrecision(arg);
|
|
155
|
-
}
|
|
156
|
-
static ParseStringNumberDefault(arg, defaultValue = 0) {
|
|
157
|
-
return NumberUtils.NaN(NumberUtils.ParseStringNumber(arg), defaultValue);
|
|
158
|
-
}
|
|
159
|
-
/**
|
|
160
|
-
* Returns a random integer in range [lowerBound .. upperBound], an inclusive range. Returns NaN if not possible.
|
|
161
|
-
* Given bounds are truncated first, before serving as the true lower- and upper bounds for the random int.
|
|
162
|
-
*/
|
|
163
|
-
static RandomInt(lowerBoundInt, upperBoundInt) {
|
|
164
|
-
if (!NumberUtils.IsNumber(lowerBoundInt) || !NumberUtils.IsNumber(upperBoundInt) || lowerBoundInt > upperBoundInt) {
|
|
165
|
-
return NaN;
|
|
166
|
-
}
|
|
167
|
-
lowerBoundInt = Math.trunc(lowerBoundInt);
|
|
168
|
-
upperBoundInt = Math.trunc(upperBoundInt);
|
|
169
|
-
if (lowerBoundInt === upperBoundInt) {
|
|
170
|
-
return lowerBoundInt;
|
|
171
|
-
}
|
|
172
|
-
const delta = upperBoundInt - lowerBoundInt;
|
|
173
|
-
return (Math.round(Math.random() * delta) + lowerBoundInt);
|
|
174
|
-
}
|
|
175
|
-
// Adds thousands comma's to given value, E.g. '1000' to '1,000'. Returns empty string if value was undefined.
|
|
176
|
-
static AddThousandsCommasTo(value) {
|
|
177
|
-
if (isNill(value)) {
|
|
178
|
-
return "";
|
|
179
|
-
}
|
|
180
|
-
return value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
|
181
|
-
}
|
|
182
|
-
/**
|
|
183
|
-
* Function used to check wether a given number is composed of another number, power-of-two wise.
|
|
184
|
-
* Example usage: NumberUtils.NumIsComposedOf(articleListObject.publication, ArticlePublication.Selector).
|
|
185
|
-
* This would return whether or not that articleListObject was publicated for selector or not, where articleListObject.publication
|
|
186
|
-
* was possibly a 'COMPOSITE that was made out of (including)' ArticlePublication.Selector.
|
|
187
|
-
*/
|
|
188
|
-
static NumIsComposedOfOtherPowTwoNum(bigNrToCheck, powTwoNumItShouldBeComposedOf) {
|
|
189
|
-
if (!bigNrToCheck) {
|
|
190
|
-
return false;
|
|
191
|
-
}
|
|
192
|
-
else if (!powTwoNumItShouldBeComposedOf) {
|
|
193
|
-
return true;
|
|
194
|
-
}
|
|
195
|
-
else {
|
|
196
|
-
return ((bigNrToCheck & powTwoNumItShouldBeComposedOf) === powTwoNumItShouldBeComposedOf);
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
/**
|
|
200
|
-
* Returns given nr, or the given default number (default 0) if the nr number was undefined or otherwise not a number.
|
|
201
|
-
* Same as CoMath.NaN from AS code (used as its substitute in transaction logic)
|
|
202
|
-
* @param nr
|
|
203
|
-
* @param defaultNr
|
|
204
|
-
* @returns {number}
|
|
205
|
-
*/
|
|
206
|
-
static NrOrDefault(nr, defaultNr = 0) {
|
|
207
|
-
if (notNill(nr) && NumberUtils.IsNumber(nr)) {
|
|
208
|
-
return nr;
|
|
209
|
-
}
|
|
210
|
-
else {
|
|
211
|
-
return defaultNr;
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
/**
|
|
215
|
-
* Returns whether given nrToCheck is within the given precision and scale limits. Precision and scale, here, are Oracle DB terms.
|
|
216
|
-
* This function can thus be used to check whether the given number is safe to send to the 'database' beforehand, if we know the
|
|
217
|
-
* precision and scale of the number in the db declaration.
|
|
218
|
-
*
|
|
219
|
-
* I.e. A number declared in the Oracle DB as number(5, 2) has a precision of 5 and a scale of 2.
|
|
220
|
-
*
|
|
221
|
-
* @param {number} nrToCheck
|
|
222
|
-
* @param {number} precision The number of significant digits, including possibly negative scale. E.g. 3 in '123' and 5 in '51.123'
|
|
223
|
-
* @param {number} [scale = 0] The number of significant digits AFTER the decimal point. E.g. 1 in 5432.1 and 3 in 54000.003
|
|
224
|
-
* @returns {CheckPrecisionAndScaleResult} Whether given nrToCheck is ok for given precision and scale, and if not, the
|
|
225
|
-
* nearest number that IS ok for those constraints.
|
|
226
|
-
*/
|
|
227
|
-
static CheckPrecisionAndScale(nrToCheck, precision, scale = 0) {
|
|
228
|
-
// let's say any undefined number is checked OK, and all numbers are checked OK for an undefined precision
|
|
229
|
-
if (!ObjectUtils.AllExist(nrToCheck, precision, scale)) {
|
|
230
|
-
return { isOk: true, nearestOkNr: NaN };
|
|
231
|
-
}
|
|
232
|
-
// no number can have 0 or less than 0 significant digits, in our universe
|
|
233
|
-
if (precision < 1 || precision - scale < 1) {
|
|
234
|
-
return { isOk: false, nearestOkNr: NaN };
|
|
235
|
-
}
|
|
236
|
-
// begin check
|
|
237
|
-
const isNegative = (nrToCheck < 0);
|
|
238
|
-
const nrParts = nrToCheck.toString().split(".");
|
|
239
|
-
// remove minus sign if negative
|
|
240
|
-
if (isNegative) {
|
|
241
|
-
nrParts[0] = nrParts[0].slice(1);
|
|
242
|
-
}
|
|
243
|
-
const numCountBeforeDot = nrParts[0].length;
|
|
244
|
-
const allowedNumCountBeforeDot = precision - scale;
|
|
245
|
-
if (numCountBeforeDot <= allowedNumCountBeforeDot) {
|
|
246
|
-
return { isOk: true, nearestOkNr: nrToCheck };
|
|
247
|
-
}
|
|
248
|
-
else {
|
|
249
|
-
// cut a part from the "before decimal number" so that the number is not too big anymore
|
|
250
|
-
const numCountToRemove = numCountBeforeDot - allowedNumCountBeforeDot;
|
|
251
|
-
// remove the right-most numbers before the decimal dot
|
|
252
|
-
nrParts[0] = nrParts[0].slice(0, -1 * numCountToRemove);
|
|
253
|
-
// add minus sign again if it was negative
|
|
254
|
-
if (isNegative) {
|
|
255
|
-
nrParts[0] = "-" + nrParts[0];
|
|
256
|
-
}
|
|
257
|
-
// build and return composite number again
|
|
258
|
-
let nearestOkNr;
|
|
259
|
-
if (nrParts[1]) {
|
|
260
|
-
nearestOkNr = Number(nrParts[0] + "." + nrParts[1]);
|
|
261
|
-
}
|
|
262
|
-
else {
|
|
263
|
-
nearestOkNr = Number(nrParts[0]);
|
|
264
|
-
}
|
|
265
|
-
return { isOk: false, nearestOkNr: nearestOkNr };
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
/**
|
|
269
|
-
* Returns whether given x is OK within the given min, max and step boundaries, where it should hold that nrToCheck = min + N * step,
|
|
270
|
-
* with N integer or 0.
|
|
271
|
-
* @param {number} nrToCheck Number to check whether it's within the given bounds
|
|
272
|
-
* @param min Inclusive
|
|
273
|
-
* @param max Inclusive
|
|
274
|
-
* @param stepSize
|
|
275
|
-
* @returns {CheckWithinSteppedBounds} Returns remainder of undefined when nrToCheck was OUTSIDE [min, max], else full result object.
|
|
276
|
-
*/
|
|
277
|
-
static CheckWithinSteppedBounds(nrToCheck, min, max, stepSize = 1) {
|
|
278
|
-
if (nrToCheck < min || nrToCheck > max) {
|
|
279
|
-
return { isOk: false, remainder: undefined };
|
|
280
|
-
}
|
|
281
|
-
// we're in [min, max], but still check if nrToCheck = min + N * step holds (for N integer or 0)
|
|
282
|
-
let remainder = (nrToCheck - min) % stepSize;
|
|
283
|
-
// correct float for largest precision amongst input numbers
|
|
284
|
-
remainder = NumberUtils.ParseFloat(remainder, NumberUtils._GetLargestDecimalPrecisionOf(nrToCheck, min, stepSize));
|
|
285
|
-
return { isOk: (remainder === 0), remainder: remainder };
|
|
286
|
-
}
|
|
287
|
-
/**
|
|
288
|
-
* Finds the number closest to the originalNumber, that adheres to the given bounds. That is, for which it holds that
|
|
289
|
-
* nr = min + N * step with N integer or 0.
|
|
290
|
-
* @param {number} originalNr Find closest answer to this number
|
|
291
|
-
* @param min Inclusive
|
|
292
|
-
* @param max Inclusive
|
|
293
|
-
* @param stepSize
|
|
294
|
-
* @returns {boolean} The closest OK number for bounds.
|
|
295
|
-
*/
|
|
296
|
-
static GetNearestNumberWithinSteppedBounds(originalNr, min, max, stepSize = 1) {
|
|
297
|
-
if (originalNr < min) {
|
|
298
|
-
return min;
|
|
299
|
-
}
|
|
300
|
-
else if (originalNr > max) {
|
|
301
|
-
return NumberUtils.GetTrueSteppedBoundsMax(min, max, stepSize);
|
|
302
|
-
}
|
|
303
|
-
const boundsCheck = NumberUtils.CheckWithinSteppedBounds(originalNr, min, max, stepSize);
|
|
304
|
-
if (boundsCheck.isOk) {
|
|
305
|
-
return originalNr;
|
|
306
|
-
}
|
|
307
|
-
let answer;
|
|
308
|
-
const remainder = boundsCheck.remainder;
|
|
309
|
-
if (remainder) {
|
|
310
|
-
// round up or down?
|
|
311
|
-
if ((remainder / stepSize) < 0.5) {
|
|
312
|
-
// round down, but not below min
|
|
313
|
-
answer = (originalNr - remainder >= min ? originalNr - remainder : min);
|
|
314
|
-
}
|
|
315
|
-
else {
|
|
316
|
-
// round up, but not above max
|
|
317
|
-
answer = (originalNr + stepSize - remainder <= max ? originalNr + stepSize - remainder :
|
|
318
|
-
NumberUtils.GetTrueSteppedBoundsMax(min, max, stepSize));
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
else {
|
|
322
|
-
// is this real life, why wasn't our stepped bounds check OK?
|
|
323
|
-
answer = originalNr;
|
|
324
|
-
}
|
|
325
|
-
// 'correct' float errors
|
|
326
|
-
answer = NumberUtils.ParseFloat(answer, NumberUtils._GetLargestDecimalPrecisionOf(originalNr, min, max, stepSize));
|
|
327
|
-
return answer;
|
|
328
|
-
}
|
|
329
|
-
/**
|
|
330
|
-
* Returns the true maximum allowed value for the given "stepped bounds": min, stepSize and max, for which it holds that each allowed
|
|
331
|
-
* value Y = min + stepSize * N, for any INTEGER or 0 N where it also holds, of course, that Y <= max.
|
|
332
|
-
* @param min
|
|
333
|
-
* @param max
|
|
334
|
-
* @param stepSize
|
|
335
|
-
*/
|
|
336
|
-
static GetTrueSteppedBoundsMax(min, max, stepSize = 1) {
|
|
337
|
-
// solve max integer X in formula min + X * step <= max, and return min + X * stepSize for that X
|
|
338
|
-
const maxSteps = Math.floor((max - min) / stepSize);
|
|
339
|
-
// 'correct' float errors
|
|
340
|
-
return NumberUtils.ParseFloat(min + maxSteps * stepSize, NumberUtils._GetLargestDecimalPrecisionOf(min, min, max));
|
|
341
|
-
}
|
|
342
|
-
// Returns the nearest number, relative to the given originalNr, that is within the given [min, max] inclusive bounds.
|
|
343
|
-
static GetNearestNumberWithinBounds(originalNr, min, max) {
|
|
344
|
-
let answer = originalNr;
|
|
345
|
-
if (originalNr < min) {
|
|
346
|
-
answer = min;
|
|
347
|
-
}
|
|
348
|
-
else if (originalNr > max) {
|
|
349
|
-
answer = max;
|
|
350
|
-
}
|
|
351
|
-
return answer;
|
|
352
|
-
}
|
|
353
|
-
// Returns the string representation of given number. If it's not a number, returns the empty string.
|
|
354
|
-
static ToString(nr) {
|
|
355
|
-
if (!NumberUtils.IsNaN(nr)) {
|
|
356
|
-
return "" + nr;
|
|
357
|
-
}
|
|
358
|
-
else {
|
|
359
|
-
return "";
|
|
360
|
-
}
|
|
361
|
-
}
|
|
362
|
-
static DecimalsToStepIncrement(numberOfDecimals) {
|
|
363
|
-
return Math.pow(10, -1 * numberOfDecimals);
|
|
364
|
-
}
|
|
365
|
-
static Round(value, decimals) {
|
|
366
|
-
const factor = Math.pow(10, decimals);
|
|
367
|
-
return Math.round(value * factor) / factor;
|
|
368
|
-
}
|
|
369
|
-
// @returns The inclusive max value
|
|
370
|
-
static PrecisionScaleToMaxValue(precision, scale) {
|
|
371
|
-
const oneStep = this.DecimalsToStepIncrement(scale);
|
|
372
|
-
const maxExclusive = Math.pow(10, precision - scale);
|
|
373
|
-
return maxExclusive - oneStep;
|
|
374
|
-
}
|
|
375
|
-
// @returns the difference between given 2 numbers
|
|
376
|
-
static DifferenceBetweenNumbers(numberA, numberB) {
|
|
377
|
-
return Math.abs(numberA - numberB);
|
|
378
|
-
}
|
|
379
|
-
static _GetLargestDecimalPrecisionOf(...args) {
|
|
380
|
-
const result = ArrayUtils.GetMaxCalculatedValue(args, (arg) => {
|
|
381
|
-
return NumberUtils.GetDecimalPlaces(arg);
|
|
382
|
-
});
|
|
383
|
-
return result;
|
|
384
|
-
}
|
|
385
|
-
// Returns given number input as a number that's useable by Javascript. Allows for incoming ',' decimal delimiter.
|
|
386
|
-
static _NumberInputToNumberStr(numberInput) {
|
|
387
|
-
return (numberInput + "").replace(",", ".");
|
|
388
|
-
}
|
|
389
|
-
}
|
|
390
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL3V0aWxzL251bWJlci11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDMUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBRXJELHlGQUF5RjtBQUN6RixNQUFNLE9BQU8sV0FBVztJQUNwQixzRUFBc0U7SUFDL0QsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEdBQVE7UUFDdEMsT0FBTyxXQUFXLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRCx1SUFBdUk7SUFDaEksTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFRO1FBQzNCLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDbkMsT0FBTyxTQUFTLENBQUM7U0FDcEI7UUFFRCxPQUFPLFFBQVEsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELHNFQUFzRTtJQUMvRCxNQUFNLENBQUMscUJBQXFCLENBQUMsR0FBUSxFQUFFLG1CQUEyQixDQUFDO1FBQ3RFLE9BQU8sV0FBVyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBRU0sTUFBTSxDQUFDLGtDQUFrQyxDQUFDLEdBQVE7UUFDckQsTUFBTSxpQkFBaUIs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QUMsQ0FBQztRQUM1RCxNQUFNLFlBQVksR0FBVyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxTQUFTLEdBQUcsS0FBSyxDQUFDLENBQUM7UUFDN0QsT0FBTyxZQUFZLEdBQUcsT0FBTyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxrREFBa0Q7SUFDM0MsTUFBTSxDQUFDLHdCQUF3QixDQUFDLE9BQWUsRUFBRSxPQUFlO1FBQ25FLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVPLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxHQUFHLElBQWM7UUFDMUQsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxDQUFDLEdBQVcsRUFBRSxFQUFFO1lBQ2xFLE9BQU8sV0FBVyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVELGtIQUFrSDtJQUMxRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsV0FBbUI7UUFDdEQsT0FBTyxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2hELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7T2JqZWN0VXRpbHN9IGZyb20gXCIuL29iamVjdC11dGlsc1wiO1xyXG5pbXBvcnQge0NoZWNrV2l0aGluU3RlcHBlZEJvdW5kc1Jlc3VsdH0gZnJvbSBcIi4vY2hlY2std2l0aGluLXN0ZXBwZWQtYm91bmRzLXJlc3VsdFwiO1xyXG5pbXBvcnQge0FycmF5VXRpbHN9IGZyb20gXCIuL2FycmF5LXV0aWxzXCI7XHJcbmltcG9ydCB7Q2hlY2tQcmVjaXNpb25BbmRTY2FsZVJlc3VsdH0gZnJvbSBcIi4vY2hlY2stcHJlY2lzaW9uLWFuZC1zY2FsZS1yZXN1bHRcIjtcclxuaW1wb3J0IHtpc05pbGx9IGZyb20gXCIuL2lzLW5pbGwuZnVuY3Rpb25cIjtcclxuaW1wb3J0IHtub3ROaWxsfSBmcm9tIFwiLi9mdW5jdGlvbi9ub3QtbmlsbC5mdW5jdGlvblwiO1xyXG5cclxuLy8gU3RhdGljIHV0aWxpdHkgZnVuY3Rpb24gaG9sZGVyIHJlbGF0ZWQgdG8gbnVtZXJpYyB2YXJpYWJsZSBldmFsdWF0aW9ucyBhbmQgb3BlcmF0aW9ucy5cclxuZXhwb3J0IGNsYXNzIE51bWJlclV0aWxzIHtcclxuICAgIC8vIEZvciB1c2VyLXR5cGVkIG51bWJlciBpbnB1dDsgc3VwcG9ydHMgY29tbWEncyBhcyBkZWNpbWFsIGRlbGltaXRlci5cclxuICAgIHB1YmxpYyBzdGF0aWMgUGFyc2VJbnROdW1iZXJJbnB1dChhcmc6IGFueSk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIE51bWJlclV0aWxzLlBhcnNlSW50KE51bWJlclV0aWxzLl9OdW1iZXJJbnB1dFRvTnVtYmVyU3RyKGFyZykpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFBhcnNlcyBnaXZlbiBhcmd1bWVudCB0byBhbiBpbnRlZ2VyLCB1c2luZyBhIG5hdGl2ZSBwYXJzZUludCgpIGZ1bmN0aW9uIHdpdGggYSByYWRpeCBvZiAxMC4gUmV0dXJucyBOYU4gaWYgcGFyc2luZyB3YXMgbm90IHBvc3NpYmxlLlxyXG4gICAgcHVibGljIHN0YXRpYyBQYXJzZUludChhcmc6IGFueSk6IG51bWJlciB7XHJcbiAgICAgICAgaWYgKGlzTmlsbChhcmcpIHx8IEFycmF5LmlzQXJyYXkoYXJnKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHBhcnNlSW50KGFyZywgMTApO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEZvciB1c2VyLXR5cGVkIG51bWJlciBpbnB1dDsgc3VwcG9ydHMgY29tbWEncyBhcyBkZWNpbWFsIGRlbGltaXRlci5cclxuICAgIHB1YmxpYyBzdGF0aWMgUGFyc2VGbG9hdE51bWJlcklucHV0KGFyZzogYW55LCBkZWNpbWFsUHJlY2lzaW9uOiBudW1iZXIgPSAyKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gTnVtYmVyVXRpbHMuUGFyc2VGbG9hdChOdW1iZXJVdGlscy5fTnVtYmVySW5wdXRUb051bWJlclN0cihhcmcpLCBkZWNpbWFsUHJlY2lzaW9uKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIFBhcnNlRmxvYXROdW1iZXJJbnB1dEtlZXBQcmVjaXNpb24oYXJnOiBhbnkpOiBudW1iZXIge1xyXG4gICAgICAgIGNvbnN0IGNvcnJlY3RlZElucHV0U3RyOiBzdHJpbmcgPSBOdW1iZXJVdGlscy5fTnVtYmVySW5wdXRUb051bWJlclN0cihhcmcpO1xyXG4gICAgICAgIGNvbnN0IGRlY2ltYWxQcmVjaXNpb246IG51bWJlciA9IHRoaXMuR2V0RGVjaW1hbFBsYWNlcyhjb3JyZWN0ZWRJbnB1dFN0cik7XHJcbiAgICAgICAgcmV0dXJuIE51bWJlclV0aWxzLlBhcnNlRmxvYXQoY29ycmVjdGVkSW5wdXRTdHIsIGRlY2ltYWxQcmVjaXNpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyBnaXZlbiBhcmcgYXMgYSBmbG9hdCBudW1iZXIgd2l0aCBnaXZlbiBkZWNpbWFsIHByZWNpc2lvbiwgaWYgcG9zc2libGUuIFJldHVybnMgTmFOIGlmIHBhcnNlIGNvbnZlcnNpb24gZmFpbGVkLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7YW55fSBhcmcgVGhlIGFyZ3VtZW50IHRvIHBhcnNlIHRvIGEgZmxvYXRcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBkZWNpbWFsUHJlY2lzaW9uIFRoZSBudW1iZXIgb2YgZGVjaW1hbHMsIG9yIHRoZSBwcmVjaXNpb24sIHRoZSBwYXJzZWQgcmV0dXJuIGZsb2F0IHNob3VsZCBoYXZlXHJcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBOYU4gaWYgbm90IHBvc3NpYmxlLCBlbHNlIHRoZSBwYXJzZWQgZmxvYXQgdmFsdWVcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBQYXJzZUZsb2F0KGFyZzogYW55LCBkZWNpbWFsUHJlY2lzaW9uOiBudW1iZXIgPSAyKTogbnVtYmVyIHtcclxuICAgICAgICBpZiAoIU9iamVjdFV0aWxzLkFsbEV4aXN0KGFyZywgZGVjaW1hbFByZWNpc2lvbikgfHwgQXJyYXkuaXNBcnJheShhcmcpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBOYU47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIU51bWJlclV0aWxzLklzSW50ZWdlcihkZWNpbWFsUHJlY2lzaW9uKSB8fCBkZWNpbWFsUHJlY2lzaW9uIDwgMCkge1xyXG4gICAgICAgICAgICBkZWNpbWFsUHJlY2lzaW9uID0gMjtcclxuICAgICAgICAgICAgLy8gdG9GaXhlZCgpIGNhbiBvbmx5IGhhbmRsZSB1cCB1bnRpbCAyMFxyXG4gICAgICAgIH0gZWxzZSBpZiAoZGVjaW1hbFByZWNpc2lvbiA+IDIwKSB7XHJcbiAgICAgICAgICAgIGRlY2ltYWxQcmVjaXNpb24gPSAyMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBwYXJzZUZsb2F0KHBhcnNlRmxvYXQoYXJnKS50b0ZpeGVkKGRlY2ltYWxQcmVjaXNpb24pKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgZ2l2ZW4gYXJnIGFzIGEgZmxvYXQgbnVtYmVyIHdpdGggZ2l2ZW4gZGVjaW1hbCBwcmVjaXNpb24sIGlmIHBvc3NpYmxlLiBSZXR1cm5zIE5hTiBpZiBwYXJzZSBjb252ZXJzaW9uIGZhaWxlZC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gYXJnIFRoZSBhcmd1bWVudCB0byBwYXJzZSB0byBhIGZsb2F0XHJcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBUaGUgYXJndW1lbnQgYXMgYSBmbG9hdCB3aXRoIGl0cyBvcmlnaW5hbCBkZWNpbWFsIHByZWNpc2lvbiBpbnRhY3RcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBQYXJzZUZsb2F0S2VlcFByZWNpc2lvbihhcmc6IGFueSk6IG51bWJlciB7XHJcbiAgICAgICAgY29uc3QgZGVjaW1hbFByZWNpc2lvbjogbnVtYmVyID0gdGhpcy5HZXREZWNpbWFsUGxhY2VzKGFyZyk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuUGFyc2VGbG9hdChhcmcsIGRlY2ltYWxQcmVjaXNpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB0aGUgZ2l2ZW4gYXJndW1lbnQgYXMgYSBudW1iZXIuIFJldHVybnMgZ2l2ZW4gZGVmYXVsdFZhbHVlIGlmIGNvbnZlcnNpb24gb2YgYXJndW1lbnQgd2FzIGltcG9zc2libGUuXHJcbiAgICAgKiBAcGFyYW0gYXJnXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW2RlZmF1bHRWYWx1ZSA9IDBdXHJcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIFBhcnNlTnVtYmVyT3JEZWZhdWx0KGFyZzogYW55LCBkZWZhdWx0VmFsdWU6IG51bWJlciA9IDApOiBudW1iZXIge1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGFyZykpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghTnVtYmVyVXRpbHMuSXNOdW1iZXIoYXJnKSkge1xyXG4gICAgICAgICAgICBhcmcgPSBwYXJzZUZsb2F0KGFyZyk7XHJcbiAgICAgICAgICAgIGFyZyA9IGlzTmFOKGFyZykgPyBkZWZhdWx0VmFsdWUgOiBhcmc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBhcmc7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gUmV0dXJucyB0cnVlIGlmZiBnaXZlbiBhcmd1bWVudCBpcyBhbiBpbnRlZ2VyIG51bWJlci4gUmV0dXJucyBmYWxzZSBvbiBub24tbnVtYmVycyBvciBudW1iZXJzIHdpdGggc2lnbmlmaWNhbnQgZGVjaW1hbHMuXHJcbiAgICBwdWJsaWMgc3RhdGljIElzSW50ZWdlcihhcmc6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmIChpc05hTihhcmcpIHx8IEFycmF5LmlzQXJyYXkoYXJnKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGFyZ0FzRmxvYXQ6IG51bWJlciA9IHBhcnNlRmxvYXQoYXJnKTtcclxuICAgICAgICByZXR1cm4gKChhcmdBc0Zsb2F0IHwgMCkgPT09IGFyZ0FzRmxvYXQpOyAvLyByZXR1cm5zIHdoZXRoZXIgJ2FyZyBjb252ZXJ0ZWQgdG8gYW4gaW50ZWdlciBlcXVhbHMgYXJnJ1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFJldHVybnMgdGhlIG51bWJlciBvZiBkZWNpbWFsIHBsYWNlcyBvZiB0aGUgZ2l2ZW4gbnVtYmVyLiBSZXR1cm5zIDAgaWYgbm8gZGVjaW1hbHMgd2hhdHNvZXZlciBjb3VsZCBiZSBmb3VuZCBvbiBnaXZlbiBhcmcuXHJcbiAgICBwdWJsaWMgc3RhdGljIEdldERlY2ltYWxQbGFjZXMoYXJnOiBhbnksIG1heEFuc3dlcjogbnVtYmVyID0gMTAwMCk6IG51bWJlciB7XHJcbiAgICAgICAgY29uc3QgbWF0Y2g6IFJlZ0V4cE1hdGNoQXJyYXkgPSAoXCJcIiArIGFyZykubWF0Y2goLyg/OlxcLihcXGQrKSk/KD86W2VFXShbKy1dP1xcZCspKT8kLyk7XHJcbiAgICAgICAgaWYgKCFtYXRjaCkge1xyXG4gICAgICAgICAgICByZXR1cm4gMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBhbnN3ZXI6IG51bWJlciA9IE1hdGgubWF4KDAsXHJcbiAgICAgICAgICAgIC8vIG51bWJlciBvZiBkaWdpdHMgcmlnaHQgb2YgZGVjaW1hbCBwb2ludC5cclxuICAgICAgICAgICAgKG1hdGNoWzFdID8gbWF0Y2hbMV0ubGVuZ3RoIDogMClcclxuICAgICAgICAgICAgLy8gYWRqdXN0IGZvciBzY2llbnRpZmljIG5vdGF0aW9uXHJcbiAgICAgICAgICAgIC0gKG1hdGNoWzJdID8gK21hdGNoWzJdIDogMCkpO1xyXG5cclxuICAgICAgICBpZiAoYW5zd2VyID4gbWF4QW5zd2VyKSB7XHJcbiAgICAgICAgICAgIGFuc3dlciA9IG1heEFuc3dlcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBhbnN3ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gUGFyc2VzIGdpdmVuIG51bWJlcklucHV0IHRvIGEgbnVtYmVyLCBvciByZXR1cm5zIGdpdmVuIGRlZmF1bHRWYWx1ZSBpZiBwYXJzZSBub3QgcG9zc2libGUuIEFsbG93cyAnLCcgY2hhciBhcyBkZWNpbWFsIGRlbGltaXRlci5cclxuICAgIHB1YmxpYyBzdGF0aWMgUGFyc2VOdW1iZXJJbnB1dE9yRGVmYXVsdChudW1iZXJJbnB1dDogYW55LCBkZWZhdWx0VmFsdWU6IG51bWJlciA9IDApOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBOdW1iZXJVdGlscy5QYXJzZU51bWJlck9yRGVmYXVsdChOdW1iZXJVdGlscy5fTnVtYmVySW5wdXRUb051bWJlclN0cihudW1iZXJJbnB1dCksIGRlZmF1bHRWYWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gUmV0dXJucyB3aGV0aGVyIHRoZSB0eXBlIG9mIGdpdmVuIGFyZ3VtZW50IGlzICdudW1iZXInLlxyXG4gICAgcHVibGljIHN0YXRpYyBJc051bWJlcihhcmc6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2YgYXJnID09PSBcIm51bWJlclwiICYmICFpc05hTihhcmcpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB3aGV0aGVyIGdpdmVuIGFyZyBpcyBpbmRlZWQgbm90IGEgbnVtYmVyIChpdCdzIE5hTiBvciBpdCBoYXMgYW5vdGhlciB0eXBlIHRoYW4gJ251bWJlcicpXHJcbiAgICAgKiBPdXIgZXhhY3QgY29weSBvZiBBUyBGbGV4J2VzIGlzTmFOKGFyZykgZnVuY3Rpb24uIEFsd2F5cyB1c2UgdGhpcyBtZXRob2QgZm9yIGNvcHlpbmcgRmxleCBpc05hTiguLikgb2NjdXJlbmNlcyBpbnRvIFR5cGVTY3JpcHQuXHJcbiAgICAgKiBAcGFyYW0gYXJnXHJcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cclxuICAgICAqIEBjb25zdHJ1Y3RvclxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIElzTmFOKGFyZzogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIGlzTmFOKGFyZykgfHwgIU51bWJlclV0aWxzLklzTnVtYmVyKGFyZyk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gT3VyIGNvcHkgb2YgQ29NYXRoLk5hTi4gUmV0dXJucyBudW1iZXIsIG9yIHN1YnN0aXR1dGUgaWYgTnVtYmVyVXRpbHMuSXNOYU4obnVtYmVyKSBob2xkcyB0cnVlLlxyXG4gICAgcHVibGljIHN0YXRpYyBOYU4obnVtYmVyOiBhbnksIHN1YnN0aXR1dGU6IG51bWJlciA9IDApOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBOdW1iZXJVdGlscy5Jc05hTihudW1iZXIpID8gc3Vic3RpdHV0ZSA6IG51bWJlcjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBSZXR1cm5zIHdoZXRoZXIgdGhlIHZhbHVlIGlzIHBhcmFzYWJsZSBhcyBhIG51bWJlci5cclxuICAgIHB1YmxpYyBzdGF0aWMgSXNQYXJzYWJsZU51bWJlcihhcmc6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGFyZykpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuICFpc05hTihwYXJzZUZsb2F0KGFyZykpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgSXNQYXJzYWJsZU51bWJlcklucHV0KG51bWJlcklucHV0OiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gTnVtYmVyVXRpbHMuSXNQYXJzYWJsZU51bWJlcihOdW1iZXJVdGlscy5fTnVtYmVySW5wdXRUb051bWJlclN0cihudW1iZXJJbnB1dCkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB3aGV0aGVyIGdpdmVuIGFyZyBpcyBwYXJzZWFibGUgYXMgYSBudW1iZXIsIGFuZCB3aGV0aGVyIHRoZSBsZW5ndHMgb2YgaXRzIG51bWJlciBwYXJzZSByZXN1bHQgaXMgZXF1YWwgdG8gaXRzIG9yaWdpbmFsIGxlbmd0aC5cclxuICAgICAqIEkuZS4gdGhpcyBmdW5jdGlvbiByZXR1cm5zIEZBTFNFIHdpdGggZ2l2ZW4gbnVtYmVyLXBhcnNhYmxlIHN0cmluZ3MsIGJ1dCB0aGF0IGhhdmUgbm9uLW51bWVyaWMgYXBwZW5kaWNlcywgZWcgJzIyMzNmZicuIFRoYXQgYXJnXHJcbiAgICAgKiBJUyBudW1iZXItcGFyc2VhYmxlLCBidXQgbm90IGEgc3RyaWN0ICdzdHJpbmcgbnVtYmVyJywgdGhlIGxhdHRlciBiZWluZyB3aGF0IHRoaXMgbWV0aG9kIGFjdHVhbGx5IGNoZWNrcyBmb3IuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgSXNTdHJpbmdOdW1iZXIoYXJnOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIU51bWJlclV0aWxzLklzUGFyc2FibGVOdW1iZXIoYXJnKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIGFyZy50b1N0cmluZygpLmxlbmd0aCA9PT0gcGFyc2VGbG9hdChhcmcpLnRvU3RyaW5nKCkubGVuZ3RoO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIElzTGlzdE9mTnVtYmVycyhhcmc6IHN0cmluZywgc2VwYXJhdG9yOiBzdHJpbmcgPSBcIixcIik6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IG5yczogc3RyaW5nW10gPSBhcmcuc3BsaXQoc2VwYXJhdG9yKTtcclxuICAgICAgICBpZiAobnJzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBucnMuZmlsdGVyKHMgPT4gTnVtYmVyVXRpbHMuSXNTdHJpbmdOdW1iZXIocykpLmxlbmd0aCA9PT0gbnJzLmxlbmd0aDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBSZXR1cm5zIGdpdmVuIGFyZ3VtZW50IGFzIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGEgbnVtYmVyIHBhcnNlLCBlLmcuIFwiMVwiIGZvciBhIG51bWJlciBwYXJzZSByZXN1bHQgb2YgYXJnIHRvIDEuXHJcbiAgICBwdWJsaWMgc3RhdGljIFBhcnNlU3RyaW5nTnVtYmVyKGFyZzogc3RyaW5nKTogbnVtYmVyIHtcclxuICAgICAgICBpZiAoIXRoaXMuSXNTdHJpbmdOdW1iZXIoYXJnKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gTmFOO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIE51bWJlclV0aWxzLlBhcnNlRmxvYXRLZWVwUHJlY2lzaW9uKGFyZyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBQYXJzZVN0cmluZ051bWJlckRlZmF1bHQoYXJnOiBzdHJpbmcgfCBhbnksIGRlZmF1bHRWYWx1ZTogbnVtYmVyID0gMCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIE51bWJlclV0aWxzLk5hTihOdW1iZXJVdGlscy5QYXJzZVN0cmluZ051bWJlcihhcmcpLCBkZWZhdWx0VmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyBhIHJhbmRvbSBpbnRlZ2VyIGluIHJhbmdlIFtsb3dlckJvdW5kIC4uIHVwcGVyQm91bmRdLCBhbiBpbmNsdXNpdmUgcmFuZ2UuIFJldHVybnMgTmFOIGlmIG5vdCBwb3NzaWJsZS5cclxuICAgICAqIEdpdmVuIGJvdW5kcyBhcmUgdHJ1bmNhdGVkIGZpcnN0LCBiZWZvcmUgc2VydmluZyBhcyB0aGUgdHJ1ZSBsb3dlci0gYW5kIHVwcGVyIGJvdW5kcyBmb3IgdGhlIHJhbmRvbSBpbnQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgUmFuZG9tSW50KGxvd2VyQm91bmRJbnQ6IG51bWJlciwgdXBwZXJCb3VuZEludDogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgICAgICBpZiAoIU51bWJlclV0aWxzLklzTnVtYmVyKGxvd2VyQm91bmRJbnQpIHx8ICFOdW1iZXJVdGlscy5Jc051bWJlcih1cHBlckJvdW5kSW50KSB8fCBsb3dlckJvdW5kSW50ID4gdXBwZXJCb3VuZEludCkge1xyXG4gICAgICAgICAgICByZXR1cm4gTmFOO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbG93ZXJCb3VuZEludCA9IE1hdGgudHJ1bmMobG93ZXJCb3VuZEludCk7XHJcbiAgICAgICAgdXBwZXJCb3VuZEludCA9IE1hdGgudHJ1bmModXBwZXJCb3VuZEludCk7XHJcblxyXG4gICAgICAgIGlmIChsb3dlckJvdW5kSW50ID09PSB1cHBlckJvdW5kSW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBsb3dlckJvdW5kSW50O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZGVsdGE6IG51bWJlciA9IHVwcGVyQm91bmRJbnQgLSBsb3dlckJvdW5kSW50O1xyXG4gICAgICAgIHJldHVybiAoTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpICogZGVsdGEpICsgbG93ZXJCb3VuZEludCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQWRkcyB0aG91c2FuZHMgY29tbWEncyB0byBnaXZlbiB2YWx1ZSwgRS5nLiAnMTAwMCcgdG8gJzEsMDAwJy4gUmV0dXJucyBlbXB0eSBzdHJpbmcgaWYgdmFsdWUgd2FzIHVuZGVmaW5lZC5cclxuICAgIHB1YmxpYyBzdGF0aWMgQWRkVGhvdXNhbmRzQ29tbWFzVG8odmFsdWU6IGFueSk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKGlzTmlsbCh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKS5yZXBsYWNlKC9cXEIoPz0oXFxkezN9KSsoPyFcXGQpKS9nLCBcIixcIik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGdW5jdGlvbiB1c2VkIHRvIGNoZWNrIHdldGhlciBhIGdpdmVuIG51bWJlciBpcyBjb21wb3NlZCBvZiBhbm90aGVyIG51bWJlciwgcG93ZXItb2YtdHdvIHdpc2UuXHJcbiAgICAgKiBFeGFtcGxlIHVzYWdlOiBOdW1iZXJVdGlscy5OdW1Jc0NvbXBvc2VkT2YoYXJ0aWNsZUxpc3RPYmplY3QucHVibGljYXRpb24sIEFydGljbGVQdWJsaWNhdGlvbi5TZWxlY3RvcikuXHJcbiAgICAgKiBUaGlzIHdvdWxkIHJldHVybiB3aGV0aGVyIG9yIG5vdCB0aGF0IGFydGljbGVMaXN0T2JqZWN0IHdhcyBwdWJsaWNhdGVkIGZvciBzZWxlY3RvciBvciBub3QsIHdoZXJlIGFydGljbGVMaXN0T2JqZWN0LnB1YmxpY2F0aW9uXHJcbiAgICAgKiB3YXMgcG9zc2libHkgYSAnQ09NUE9TSVRFIHRoYXQgd2FzIG1hZGUgb3V0IG9mIChpbmNsdWRpbmcpJyBBcnRpY2xlUHVibGljYXRpb24uU2VsZWN0b3IuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgTnVtSXNDb21wb3NlZE9mT3RoZXJQb3dUd29OdW0oYmlnTnJUb0NoZWNrOiBudW1iZXIsIHBvd1R3b051bUl0U2hvdWxkQmVDb21wb3NlZE9mOiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIWJpZ05yVG9DaGVjaykge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIGlmICghcG93VHdvTnVtSXRTaG91bGRCZUNvbXBvc2VkT2YpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuICgoYmlnTnJUb0NoZWNrICYgcG93VHdvTnVtSXRTaG91bGRCZUNvbXBvc2VkT2YpID09PSBwb3dUd29OdW1JdFNob3VsZEJlQ29tcG9zZWRPZik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyBnaXZlbiBuciwgb3IgdGhlIGdpdmVuIGRlZmF1bHQgbnVtYmVyIChkZWZhdWx0IDApIGlmIHRoZSBuciBudW1iZXIgd2FzIHVuZGVmaW5lZCBvciBvdGhlcndpc2Ugbm90IGEgbnVtYmVyLlxyXG4gICAgICogU2FtZSBhcyBDb01hdGguTmFOIGZyb20gQVMgY29kZSAodXNlZCBhcyBpdHMgc3Vic3RpdHV0ZSBpbiB0cmFuc2FjdGlvbiBsb2dpYylcclxuICAgICAqIEBwYXJhbSBuclxyXG4gICAgICogQHBhcmFtIGRlZmF1bHROclxyXG4gICAgICogQHJldHVybnMge251bWJlcn1cclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBOck9yRGVmYXVsdChucjogbnVtYmVyLCBkZWZhdWx0TnI6IG51bWJlciA9IDApOiBudW1iZXIge1xyXG4gICAgICAgIGlmIChub3ROaWxsKG5yKSAmJiBOdW1iZXJVdGlscy5Jc051bWJlcihucikpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5yO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBkZWZhdWx0TnI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB3aGV0aGVyIGdpdmVuIG5yVG9DaGVjayBpcyB3aXRoaW4gdGhlIGdpdmVuIHByZWNpc2lvbiBhbmQgc2NhbGUgbGltaXRzLiBQcmVjaXNpb24gYW5kIHNjYWxlLCBoZXJlLCBhcmUgT3JhY2xlIERCIHRlcm1zLlxyXG4gICAgICogVGhpcyBmdW5jdGlvbiBjYW4gdGh1cyBiZSB1c2VkIHRvIGNoZWNrIHdoZXRoZXIgdGhlIGdpdmVuIG51bWJlciBpcyBzYWZlIHRvIHNlbmQgdG8gdGhlICdkYXRhYmFzZScgYmVmb3JlaGFuZCwgaWYgd2Uga25vdyB0aGVcclxuICAgICAqIHByZWNpc2lvbiBhbmQgc2NhbGUgb2YgdGhlIG51bWJlciBpbiB0aGUgZGIgZGVjbGFyYXRpb24uXHJcbiAgICAgKlxyXG4gICAgICogSS5lLiBBIG51bWJlciBkZWNsYXJlZCBpbiB0aGUgT3JhY2xlIERCIGFzIG51bWJlcig1LCAyKSBoYXMgYSBwcmVjaXNpb24gb2YgNSBhbmQgYSBzY2FsZSBvZiAyLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBuclRvQ2hlY2tcclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBwcmVjaXNpb24gVGhlIG51bWJlciBvZiBzaWduaWZpY2FudCBkaWdpdHMsIGluY2x1ZGluZyBwb3NzaWJseSBuZWdhdGl2ZSBzY2FsZS4gRS5nLiAzIGluICcxMjMnIGFuZCA1IGluICc1MS4xMjMnXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW3NjYWxlID0gMF0gVGhlIG51bWJlciBvZiBzaWduaWZpY2FudCBkaWdpdHMgQUZURVIgdGhlIGRlY2ltYWwgcG9pbnQuIEUuZy4gMSBpbiA1NDMyLjEgYW5kIDMgaW4gNTQwMDAuMDAzXHJcbiAgICAgKiBAcmV0dXJucyB7Q2hlY2tQcmVjaXNpb25BbmRTY2FsZVJlc3VsdH0gV2hldGhlciBnaXZlbiBuclRvQ2hlY2sgaXMgb2sgZm9yIGdpdmVuIHByZWNpc2lvbiBhbmQgc2NhbGUsIGFuZCBpZiBub3QsIHRoZVxyXG4gICAgICogbmVhcmVzdCBudW1iZXIgdGhhdCBJUyBvayBmb3IgdGhvc2UgY29uc3RyYWludHMuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgQ2hlY2tQcmVjaXNpb25BbmRTY2FsZShuclRvQ2hlY2s6IG51bWJlciwgcHJlY2lzaW9uOiBudW1iZXIsIHNjYWxlOiBudW1iZXIgPSAwKTogQ2hlY2tQcmVjaXNpb25BbmRTY2FsZVJlc3VsdCB7XHJcbiAgICAgICAgLy8gbGV0J3Mgc2F5IGFueSB1bmRlZmluZWQgbnVtYmVyIGlzIGNoZWNrZWQgT0ssIGFuZCBhbGwgbnVtYmVycyBhcmUgY2hlY2tlZCBPSyBmb3IgYW4gdW5kZWZpbmVkIHByZWNpc2lvblxyXG4gICAgICAgIGlmICghT2JqZWN0VXRpbHMuQWxsRXhpc3QobnJUb0NoZWNrLCBwcmVjaXNpb24sIHNjYWxlKSkge1xyXG4gICAgICAgICAgICByZXR1cm4ge2lzT2s6IHRydWUsIG5lYXJlc3RPa05yOiBOYU59O1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBubyBudW1iZXIgY2FuIGhhdmUgMCBvciBsZXNzIHRoYW4gMCBzaWduaWZpY2FudCBkaWdpdHMsIGluIG91ciB1bml2ZXJzZVxyXG4gICAgICAgIGlmIChwcmVjaXNpb24gPCAxIHx8IHByZWNpc2lvbiAtIHNjYWxlIDwgMSkge1xyXG4gICAgICAgICAgICByZXR1cm4ge2lzT2s6IGZhbHNlLCBuZWFyZXN0T2tOcjogTmFOfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gYmVnaW4gY2hlY2tcclxuICAgICAgICBjb25zdCBpc05lZ2F0aXZlOiBib29sZWFuID0gKG5yVG9DaGVjayA8IDApO1xyXG4gICAgICAgIGNvbnN0IG5yUGFydHM6IHN0cmluZ1tdID0gbnJUb0NoZWNrLnRvU3RyaW5nKCkuc3BsaXQoXCIuXCIpO1xyXG4gICAgICAgIC8vIHJlbW92ZSBtaW51cyBzaWduIGlmIG5lZ2F0aXZlXHJcbiAgICAgICAgaWYgKGlzTmVnYXRpdmUpIHtcclxuICAgICAgICAgICAgbnJQYXJ0c1swXSA9IG5yUGFydHNbMF0uc2xpY2UoMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IG51bUNvdW50QmVmb3JlRG90OiBudW1iZXIgPSBuclBhcnRzWzBdLmxlbmd0aDtcclxuICAgICAgICBjb25zdCBhbGxvd2VkTnVtQ291bnRCZWZvcmVEb3Q6IG51bWJlciA9IHByZWNpc2lvbiAtIHNjYWxlO1xyXG4gICAgICAgIGlmIChudW1Db3VudEJlZm9yZURvdCA8PSBhbGxvd2VkTnVtQ291bnRCZWZvcmVEb3QpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHtpc09rOiB0cnVlLCBuZWFyZXN0T2tOcjogbnJUb0NoZWNrfTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBjdXQgYSBwYXJ0IGZyb20gdGhlIFwiYmVmb3JlIGRlY2ltYWwgbnVtYmVyXCIgc28gdGhhdCB0aGUgbnVtYmVyIGlzIG5vdCB0b28gYmlnIGFueW1vcmVcclxuICAgICAgICAgICAgY29uc3QgbnVtQ291bnRUb1JlbW92ZTogbnVtYmVyID0gbnVtQ291bnRCZWZvcmVEb3QgLSBhbGxvd2VkTnVtQ291bnRCZWZvcmVEb3Q7XHJcbiAgICAgICAgICAgIC8vIHJlbW92ZSB0aGUgcmlnaHQtbW9zdCBudW1iZXJzIGJlZm9yZSB0aGUgZGVjaW1hbCBkb3RcclxuICAgICAgICAgICAgbnJQYXJ0c1swXSA9IG5yUGFydHNbMF0uc2xpY2UoMCwgLTEgKiBudW1Db3VudFRvUmVtb3ZlKTtcclxuICAgICAgICAgICAgLy8gYWRkIG1pbnVzIHNpZ24gYWdhaW4gaWYgaXQgd2FzIG5lZ2F0aXZlXHJcbiAgICAgICAgICAgIGlmIChpc05lZ2F0aXZlKSB7XHJcbiAgICAgICAgICAgICAgICBuclBhcnRzWzBdID0gXCItXCIgKyBuclBhcnRzWzBdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIGJ1aWxkIGFuZCByZXR1cm4gY29tcG9zaXRlIG51bWJlciBhZ2FpblxyXG4gICAgICAgICAgICBsZXQgbmVhcmVzdE9rTnI6IG51bWJlcjtcclxuICAgICAgICAgICAgaWYgKG5yUGFydHNbMV0pIHtcclxuICAgICAgICAgICAgICAgIG5lYXJlc3RPa05yID0gTnVtYmVyKG5yUGFydHNbMF0gKyBcIi5cIiArIG5yUGFydHNbMV0pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgbmVhcmVzdE9rTnIgPSBOdW1iZXIobnJQYXJ0c1swXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHtpc09rOiBmYWxzZSwgbmVhcmVzdE9rTnI6IG5lYXJlc3RPa05yfTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIHdoZXRoZXIgZ2l2ZW4geCBpcyBPSyB3aXRoaW4gdGhlIGdpdmVuIG1pbiwgbWF4IGFuZCBzdGVwIGJvdW5kYXJpZXMsIHdoZXJlIGl0IHNob3VsZCBob2xkIHRoYXQgbnJUb0NoZWNrID0gbWluICsgTiAqIHN0ZXAsXHJcbiAgICAgKiB3aXRoIE4gaW50ZWdlciBvciAwLlxyXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IG5yVG9DaGVjayBOdW1iZXIgdG8gY2hlY2sgd2hldGhlciBpdCdzIHdpdGhpbiB0aGUgZ2l2ZW4gYm91bmRzXHJcbiAgICAgKiBAcGFyYW0gbWluIEluY2x1c2l2ZVxyXG4gICAgICogQHBhcmFtIG1heCBJbmNsdXNpdmVcclxuICAgICAqIEBwYXJhbSBzdGVwU2l6ZVxyXG4gICAgICogQHJldHVybnMge0NoZWNrV2l0aGluU3RlcHBlZEJvdW5kc30gUmV0dXJucyByZW1haW5kZXIgb2YgdW5kZWZpbmVkIHdoZW4gbnJUb0NoZWNrIHdhcyBPVVRTSURFIFttaW4sIG1heF0sIGVsc2UgZnVsbCByZXN1bHQgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIENoZWNrV2l0aGluU3RlcHBlZEJvdW5kcyhcclxuICAgICAgICBuclRvQ2hlY2s6IG51bWJlcixcclxuICAgICAgICBtaW46IG51bWJlcixcclxuICAgICAgICBtYXg6IG51bWJlcixcclxuICAgICAgICBzdGVwU2l6ZTogbnVtYmVyID0gMVxyXG4gICAgKTogQ2hlY2tXaXRoaW5TdGVwcGVkQm91bmRzUmVzdWx0IHtcclxuICAgICAgICBpZiAobnJUb0NoZWNrIDwgbWluIHx8IG5yVG9DaGVjayA+IG1heCkge1xyXG4gICAgICAgICAgICByZXR1cm4ge2lzT2s6IGZhbHNlLCByZW1haW5kZXI6IHVuZGVmaW5lZH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyB3ZSdyZSBpbiBbbWluLCBtYXhdLCBidXQgc3RpbGwgY2hlY2sgaWYgbnJUb0NoZWNrID0gbWluICsgTiAqIHN0ZXAgaG9sZHMgKGZvciBOIGludGVnZXIgb3IgMClcclxuICAgICAgICBsZXQgcmVtYWluZGVyOiBudW1iZXIgPSAobnJUb0NoZWNrIC0gbWluKSAlIHN0ZXBTaXplO1xyXG4gICAgICAgIC8vIGNvcnJlY3QgZmxvYXQgZm9yIGxhcmdlc3QgcHJlY2lzaW9uIGFtb25nc3QgaW5wdXQgbnVtYmVyc1xyXG4gICAgICAgIHJlbWFpbmRlciA9IE51bWJlclV0aWxzLlBhcnNlRmxvYXQocmVtYWluZGVyLCBOdW1iZXJVdGlscy5fR2V0TGFyZ2VzdERlY2ltYWxQcmVjaXNpb25PZihuclRvQ2hlY2ssIG1pbiwgc3RlcFNpemUpKTtcclxuICAgICAgICByZXR1cm4ge2lzT2s6IChyZW1haW5kZXIgPT09IDApLCByZW1haW5kZXI6IHJlbWFpbmRlcn07XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGaW5kcyB0aGUgbnVtYmVyIGNsb3Nlc3QgdG8gdGhlIG9yaWdpbmFsTnVtYmVyLCB0aGF0IGFkaGVyZXMgdG8gdGhlIGdpdmVuIGJvdW5kcy4gVGhhdCBpcywgZm9yIHdoaWNoIGl0IGhvbGRzIHRoYXRcclxuICAgICAqIG5yID0gbWluICsgTiAqIHN0ZXAgd2l0aCBOIGludGVnZXIgb3IgMC5cclxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBvcmlnaW5hbE5yIEZpbmQgY2xvc2VzdCBhbnN3ZXIgdG8gdGhpcyBudW1iZXJcclxuICAgICAqIEBwYXJhbSBtaW4gSW5jbHVzaXZlXHJcbiAgICAgKiBAcGFyYW0gbWF4IEluY2x1c2l2ZVxyXG4gICAgICogQHBhcmFtIHN0ZXBTaXplXHJcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gVGhlIGNsb3Nlc3QgT0sgbnVtYmVyIGZvciBib3VuZHMuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgR2V0TmVhcmVzdE51bWJlcldpdGhpblN0ZXBwZWRCb3VuZHMob3JpZ2luYWxOcjogbnVtYmVyLCBtaW46IG51bWJlciwgbWF4OiBudW1iZXIsIHN0ZXBTaXplOiBudW1iZXIgPSAxKTogbnVtYmVyIHtcclxuICAgICAgICBpZiAob3JpZ2luYWxOciA8IG1pbikge1xyXG4gICAgICAgICAgICByZXR1cm4gbWluO1xyXG4gICAgICAgIH0gZWxzZSBpZiAob3JpZ2luYWxOciA+IG1heCkge1xyXG4gICAgICAgICAgICByZXR1cm4gTnVtYmVyVXRpbHMuR2V0VHJ1ZVN0ZXBwZWRCb3VuZHNNYXgobWluLCBtYXgsIHN0ZXBTaXplKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGJvdW5kc0NoZWNrOiBDaGVja1dpdGhpblN0ZXBwZWRCb3VuZHNSZXN1bHQgPSBOdW1iZXJVdGlscy5DaGVja1dpdGhpblN0ZXBwZWRCb3VuZHMob3JpZ2luYWxOciwgbWluLCBtYXgsIHN0ZXBTaXplKTtcclxuICAgICAgICBpZiAoYm91bmRzQ2hlY2suaXNPaykge1xyXG4gICAgICAgICAgICByZXR1cm4gb3JpZ2luYWxOcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBhbnN3ZXI6IG51bWJlcjtcclxuXHJcbiAgICAgICAgY29uc3QgcmVtYWluZGVyOiBudW1iZXIgPSBib3VuZHNDaGVjay5yZW1haW5kZXI7XHJcbiAgICAgICAgaWYgKHJlbWFpbmRlcikge1xyXG4gICAgICAgICAgICAvLyByb3VuZCB1cCBvciBkb3duP1xyXG4gICAgICAgICAgICBpZiAoKHJlbWFpbmRlciAvIHN0ZXBTaXplKSA8IDAuNSkge1xyXG4gICAgICAgICAgICAgICAgLy8gIHJvdW5kIGRvd24sIGJ1dCBub3QgYmVsb3cgbWluXHJcbiAgICAgICAgICAgICAgICBhbnN3ZXIgPSAob3JpZ2luYWxOciAtIHJlbWFpbmRlciA+PSBtaW4gPyBvcmlnaW5hbE5yIC0gcmVtYWluZGVyIDogbWluKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIC8vIHJvdW5kIHVwLCBidXQgbm90IGFib3ZlIG1heFxyXG4gICAgICAgICAgICAgICAgYW5zd2VyID0gKG9yaWdpbmFsTnIgKyBzdGVwU2l6ZSAtIHJlbWFpbmRlciA8PSBtYXggPyBvcmlnaW5hbE5yICsgc3RlcFNpemUgLSByZW1haW5kZXIgOlxyXG4gICAgICAgICAgICAgICAgICAgIE51bWJlclV0aWxzLkdldFRydWVTdGVwcGVkQm91bmRzTWF4KG1pbiwgbWF4LCBzdGVwU2l6ZSkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgLy8gaXMgdGhpcyByZWFsIGxpZmUsIHdoeSB3YXNuJ3Qgb3VyIHN0ZXBwZWQgYm91bmRzIGNoZWNrIE9LP1xyXG4gICAgICAgICAgICBhbnN3ZXIgPSBvcmlnaW5hbE5yO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gJ2NvcnJlY3QnIGZsb2F0IGVycm9yc1xyXG4gICAgICAgIGFuc3dlciA9IE51bWJlclV0aWxzLlBhcnNlRmxvYXQoYW5zd2VyLCBOdW1iZXJVdGlscy5fR2V0TGFyZ2VzdERlY2ltYWxQcmVjaXNpb25PZihvcmlnaW5hbE5yLCBtaW4sIG1heCwgc3RlcFNpemUpKTtcclxuICAgICAgICByZXR1cm4gYW5zd2VyO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB0aGUgdHJ1ZSBtYXhpbXVtIGFsbG93ZWQgdmFsdWUgZm9yIHRoZSBnaXZlbiBcInN0ZXBwZWQgYm91bmRzXCI6IG1pbiwgc3RlcFNpemUgYW5kIG1heCwgZm9yIHdoaWNoIGl0IGhvbGRzIHRoYXQgZWFjaCBhbGxvd2VkXHJcbiAgICAgKiB2YWx1ZSBZID0gbWluICsgc3RlcFNpemUgKiBOLCBmb3IgYW55IElOVEVHRVIgb3IgMCBOIHdoZXJlIGl0IGFsc28gaG9sZHMsIG9mIGNvdXJzZSwgdGhhdCBZIDw9IG1heC5cclxuICAgICAqIEBwYXJhbSBtaW5cclxuICAgICAqIEBwYXJhbSBtYXhcclxuICAgICAqIEBwYXJhbSBzdGVwU2l6ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIEdldFRydWVTdGVwcGVkQm91bmRzTWF4KG1pbjogbnVtYmVyLCBtYXg6IG51bWJlciwgc3RlcFNpemU6IG51bWJlciA9IDEpOiBudW1iZXIge1xyXG4gICAgICAgIC8vIHNvbHZlIG1heCBpbnRlZ2VyIFggaW4gZm9ybXVsYSBtaW4gKyBYICogc3RlcCA8PSBtYXgsIGFuZCByZXR1cm4gbWluICsgWCAqIHN0ZXBTaXplIGZvciB0aGF0IFhcclxuICAgICAgICBjb25zdCBtYXhTdGVwczogbnVtYmVyID0gTWF0aC5mbG9vcigobWF4IC0gbWluKSAvIHN0ZXBTaXplKTtcclxuICAgICAgICAvLyAnY29ycmVjdCcgZmxvYXQgZXJyb3JzXHJcbiAgICAgICAgcmV0dXJuIE51bWJlclV0aWxzLlBhcnNlRmxvYXQobWluICsgbWF4U3RlcHMgKiBzdGVwU2l6ZSwgTnVtYmVyVXRpbHMuX0dldExhcmdlc3REZWNpbWFsUHJlY2lzaW9uT2YobWluLCBtaW4sIG1heCkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFJldHVybnMgdGhlIG5lYXJlc3QgbnVtYmVyLCByZWxhdGl2ZSB0byB0aGUgZ2l2ZW4gb3JpZ2luYWxOciwgdGhhdCBpcyB3aXRoaW4gdGhlIGdpdmVuIFttaW4sIG1heF0gaW5jbHVzaXZlIGJvdW5kcy5cclxuICAgIHB1YmxpYyBzdGF0aWMgR2V0TmVhcmVzdE51bWJlcldpdGhpbkJvdW5kcyhvcmlnaW5hbE5yOiBudW1iZXIsIG1pbjogbnVtYmVyLCBtYXg6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICAgICAgbGV0IGFuc3dlcjogbnVtYmVyID0gb3JpZ2luYWxOcjtcclxuXHJcbiAgICAgICAgaWYgKG9yaWdpbmFsTnIgPCBtaW4pIHtcclxuICAgICAgICAgICAgYW5zd2VyID0gbWluO1xyXG4gICAgICAgIH0gZWxzZSBpZiAob3JpZ2luYWxOciA+IG1heCkge1xyXG4gICAgICAgICAgICBhbnN3ZXIgPSBtYXg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gYW5zd2VyO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFJldHVybnMgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBnaXZlbiBudW1iZXIuIElmIGl0J3Mgbm90IGEgbnVtYmVyLCByZXR1cm5zIHRoZSBlbXB0eSBzdHJpbmcuXHJcbiAgICBwdWJsaWMgc3RhdGljIFRvU3RyaW5nKG5yOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICghTnVtYmVyVXRpbHMuSXNOYU4obnIpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBcIlwiICsgbnI7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgRGVjaW1hbHNUb1N0ZXBJbmNyZW1lbnQobnVtYmVyT2ZEZWNpbWFsczogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gTWF0aC5wb3coMTAsIC0xICogbnVtYmVyT2ZEZWNpbWFscyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBSb3VuZCh2YWx1ZTogbnVtYmVyLCBkZWNpbWFsczogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgICAgICBjb25zdCBmYWN0b3I6IG51bWJlciA9IE1hdGgucG93KDEwLCBkZWNpbWFscyk7XHJcbiAgICAgICAgcmV0dXJuIE1hdGgucm91bmQodmFsdWUgKiBmYWN0b3IpIC8gZmFjdG9yO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEByZXR1cm5zIFRoZSBpbmNsdXNpdmUgbWF4IHZhbHVlXHJcbiAgICBwdWJsaWMgc3RhdGljIFByZWNpc2lvblNjYWxlVG9NYXhWYWx1ZShwcmVjaXNpb246IG51bWJlciwgc2NhbGU6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICAgICAgY29uc3Qgb25lU3RlcDogbnVtYmVyID0gdGhpcy5EZWNpbWFsc1RvU3RlcEluY3JlbWVudChzY2FsZSk7XHJcbiAgICAgICAgY29uc3QgbWF4RXhjbHVzaXZlOiBudW1iZXIgPSBNYXRoLnBvdygxMCwgcHJlY2lzaW9uIC0gc2NhbGUpO1xyXG4gICAgICAgIHJldHVybiBtYXhFeGNsdXNpdmUgLSBvbmVTdGVwO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEByZXR1cm5zIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gZ2l2ZW4gMiBudW1iZXJzXHJcbiAgICBwdWJsaWMgc3RhdGljIERpZmZlcmVuY2VCZXR3ZWVuTnVtYmVycyhudW1iZXJBOiBudW1iZXIsIG51bWJlckI6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIE1hdGguYWJzKG51bWJlckEgLSBudW1iZXJCKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBfR2V0TGFyZ2VzdERlY2ltYWxQcmVjaXNpb25PZiguLi5hcmdzOiBudW1iZXJbXSk6IG51bWJlciB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gQXJyYXlVdGlscy5HZXRNYXhDYWxjdWxhdGVkVmFsdWUoYXJncywgKGFyZzogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBOdW1iZXJVdGlscy5HZXREZWNpbWFsUGxhY2VzKGFyZyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBSZXR1cm5zIGdpdmVuIG51bWJlciBpbnB1dCBhcyBhIG51bWJlciB0aGF0J3MgdXNlYWJsZSBieSBKYXZhc2NyaXB0LiBBbGxvd3MgZm9yIGluY29taW5nICcsJyBkZWNpbWFsIGRlbGltaXRlci5cclxuICAgIHByaXZhdGUgc3RhdGljIF9OdW1iZXJJbnB1dFRvTnVtYmVyU3RyKG51bWJlcklucHV0OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAobnVtYmVySW5wdXQgKyBcIlwiKS5yZXBsYWNlKFwiLFwiLCBcIi5cIik7XHJcbiAgICB9XHJcbn1cclxuIl19
|