@colijnit/sharedcomponents 1.0.56 → 1.0.58
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -11
- package/bundles/colijnit-sharedcomponents.umd.js +10297 -0
- package/bundles/colijnit-sharedcomponents.umd.js.map +1 -0
- package/colijnit-sharedcomponents.d.ts +91 -0
- package/colijnit-sharedcomponents.metadata.json +1 -0
- package/esm2015/colijnit-sharedcomponents.js +92 -0
- package/esm2015/lib/assets/dictionary/text.properties.js +11 -0
- package/esm2015/lib/businessobject/build-images-and-documentation-result.js +2 -0
- package/esm2015/lib/businessobject/co-document-right.bo.js +3 -0
- package/esm2015/lib/businessobject/drag-drop-container-element.js +2 -0
- package/esm2015/lib/businessobject/drag-drop-container.js +7 -0
- package/esm2015/lib/components/activity-list/activity-list.component.js +130 -0
- package/esm2015/lib/components/activity-list/activity-list.module.js +24 -0
- package/esm2015/lib/components/app-file-dropzone/app-file-dropzone.component.js +47 -0
- package/esm2015/lib/components/app-file-dropzone/app-file-dropzone.module.js +20 -0
- package/esm2015/lib/components/date-planning/component/agenda/agenda-base-view.component.js +61 -0
- package/esm2015/lib/components/date-planning/component/agenda/agenda-day-view.component.js +36 -0
- package/esm2015/lib/components/date-planning/component/agenda/agenda-event.component.js +56 -0
- package/esm2015/lib/components/date-planning/component/agenda/agenda-events.component.js +47 -0
- package/esm2015/lib/components/date-planning/component/agenda/agenda-half-hour-cell.component.js +68 -0
- package/esm2015/lib/components/date-planning/component/agenda/agenda-header.component.js +243 -0
- package/esm2015/lib/components/date-planning/component/agenda/agenda-hour-cell.component.js +36 -0
- package/esm2015/lib/components/date-planning/component/agenda/agenda-hour-view-labels.component.js +50 -0
- package/esm2015/lib/components/date-planning/component/agenda/agenda-hour-view.component.js +46 -0
- package/esm2015/lib/components/date-planning/component/agenda/agenda-month-view.component.js +61 -0
- package/esm2015/lib/components/date-planning/component/agenda/agenda-select-event.component.js +39 -0
- package/esm2015/lib/components/date-planning/component/agenda/agenda-view.component.js +35 -0
- package/esm2015/lib/components/date-planning/component/agenda/agenda-week-select-view.component.js +64 -0
- package/esm2015/lib/components/date-planning/component/agenda/agenda-week-view.component.js +48 -0
- package/esm2015/lib/components/date-planning/component/agenda/view-select.component.js +42 -0
- package/esm2015/lib/components/date-planning/component/calendar/calendar-all-months.component.js +34 -0
- package/esm2015/lib/components/date-planning/component/calendar/calendar-all-years.component.js +48 -0
- package/esm2015/lib/components/date-planning/component/calendar/calendar-header.component.js +107 -0
- package/esm2015/lib/components/date-planning/component/calendar/calendar-view.component.js +178 -0
- package/esm2015/lib/components/date-planning/component/calendar/calendar.component.js +34 -0
- package/esm2015/lib/components/date-planning/date-planning.component.js +113 -0
- package/esm2015/lib/components/date-planning/date-planning.module.js +63 -0
- package/esm2015/lib/components/docsign/component/signature/signature.component.js +75 -0
- package/esm2015/lib/components/docsign/component/signatures/signatures.component.js +44 -0
- package/esm2015/lib/components/docsign/docsign.component.js +242 -0
- package/esm2015/lib/components/docsign/docsign.module.js +23 -0
- package/esm2015/lib/components/file-upload/file-upload.component.js +189 -0
- package/esm2015/lib/components/file-upload/file-upload.module.js +25 -0
- package/esm2015/lib/components/file-upload-popup/file-upload-popup.component.js +397 -0
- package/esm2015/lib/components/file-upload-popup/file-upload-popup.module.js +30 -0
- package/esm2015/lib/components/files-upload/components/base-file-upload.component.js +469 -0
- package/esm2015/lib/components/files-upload/components/drag-drop-container.component.js +115 -0
- package/esm2015/lib/components/files-upload/files-upload.component.js +131 -0
- package/esm2015/lib/components/files-upload/files-upload.module.js +47 -0
- package/esm2015/lib/components/image-display/image-display.component.js +36 -0
- package/esm2015/lib/components/image-display/image-display.module.js +23 -0
- package/esm2015/lib/components/key-pad/key-pad.component.js +200 -0
- package/esm2015/lib/components/key-pad/key-pad.module.js +22 -0
- package/esm2015/lib/components/layout-switcher/layout-switcher.component.js +74 -0
- package/esm2015/lib/components/layout-switcher/layout-switcher.module.js +21 -0
- package/esm2015/lib/components/linear-gauge/co-linear-gauge.component.js +59 -0
- package/esm2015/lib/components/linear-gauge/co-linear-gauge.module.js +19 -0
- package/esm2015/lib/components/multi-property-toggler/multiple-property-toggler.component.js +89 -0
- package/esm2015/lib/components/multi-property-toggler/multiple-property-toggler.module.js +21 -0
- package/esm2015/lib/components/send-method-dialog/components/layout-selection/layout-selection.component.js +79 -0
- package/esm2015/lib/components/send-method-dialog/components/layout-selection/layout-selection.module.js +21 -0
- package/esm2015/lib/components/send-method-dialog/components/printer-selection/printer-selection.component.js +85 -0
- package/esm2015/lib/components/send-method-dialog/components/printer-selection/printer-selection.module.js +21 -0
- package/esm2015/lib/components/send-method-dialog/components/send-method-email/send-method-email.component.js +64 -0
- package/esm2015/lib/components/send-method-dialog/components/send-method-email/send-method-email.module.js +26 -0
- package/esm2015/lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.component.js +40 -0
- package/esm2015/lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.module.js +23 -0
- package/esm2015/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.component.js +61 -0
- package/esm2015/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.module.js +28 -0
- package/esm2015/lib/components/send-method-dialog/components/signature-button/signature-button.component.js +38 -0
- package/esm2015/lib/components/send-method-dialog/components/signature-button/signature-button.module.js +21 -0
- package/esm2015/lib/components/send-method-dialog/model/email-address-viewmodel.js +7 -0
- package/esm2015/lib/components/send-method-dialog/send-method-dialog.component.js +258 -0
- package/esm2015/lib/components/send-method-dialog/send-method-dialog.module.js +35 -0
- package/esm2015/lib/components/send-method-dialog/send-method-params.interface.js +2 -0
- package/esm2015/lib/components/send-method-dialog/service/send-method.service.js +59 -0
- package/esm2015/lib/components/simple-tags/simple-tags.component.js +229 -0
- package/esm2015/lib/components/simple-tags/simple-tags.module.js +26 -0
- package/esm2015/lib/components/statusbar/statusbar-popup.component.js +97 -0
- package/esm2015/lib/components/statusbar/statusbar.component.js +81 -0
- package/esm2015/lib/components/statusbar/statusbar.module.js +27 -0
- package/esm2015/lib/components/stock/components/allocation-stock-history/allocation-stock-history.component.js +47 -0
- package/esm2015/lib/components/stock/components/order-commission-stock-history/order-commission-stock-history.component.js +47 -0
- package/esm2015/lib/components/stock/components/order-stock-history/order-stock-history.component.js +47 -0
- package/esm2015/lib/components/stock/components/order-stock-tab/order-stock-tab.component.js +47 -0
- package/esm2015/lib/components/stock/components/order-supply-stock-history/order-supply-stock-history.component.js +47 -0
- package/esm2015/lib/components/stock/components/order-tab/order-tab.component.js +67 -0
- package/esm2015/lib/components/stock/components/stock-history/stock-history.component.js +53 -0
- package/esm2015/lib/components/stock/components/stock-location/stock-location.component.js +240 -0
- package/esm2015/lib/components/stock/components/stock-prognose/stock-prognose.component.js +52 -0
- package/esm2015/lib/components/stock/components/stock-tab/stock-tab.component.js +41 -0
- package/esm2015/lib/components/stock/localization/translation.js +63 -0
- package/esm2015/lib/components/stock/stock-history-tabs/stock-history-tabs.component.js +33 -0
- package/esm2015/lib/components/stock/stock-information/stock-information.component.js +48 -0
- package/esm2015/lib/components/stock/stock-information-grid/stock-information-grid.component.js +457 -0
- package/esm2015/lib/components/stock/stock-tabs/stock-tabs.component.js +241 -0
- package/esm2015/lib/components/stock/stock-transfer/co-drop-down-list-fields.interface.js +2 -0
- package/esm2015/lib/components/stock/stock-transfer/stock-change-amount.component.js +72 -0
- package/esm2015/lib/components/stock/stock-transfer/stock-transfer.component.js +149 -0
- package/esm2015/lib/components/stock/stock.component.js +193 -0
- package/esm2015/lib/components/stock/stock.module.js +80 -0
- package/esm2015/lib/components/stock-statusbar/stock-statusbar.component.js +23 -0
- package/esm2015/lib/components/stock-statusbar/stock-statusbar.module.js +19 -0
- package/esm2015/lib/components/tab-bar/tab-bar.component.js +88 -0
- package/esm2015/lib/components/tab-bar/tab-bar.module.js +21 -0
- package/esm2015/lib/components/tab-bar/tab.interface.js +2 -0
- package/esm2015/lib/components/tile-renderer/tile-render.component.js +80 -0
- package/esm2015/lib/components/tile-renderer/tile-render.module.js +26 -0
- package/esm2015/lib/decorator/input-boolean.decorator.js +34 -0
- package/esm2015/lib/enum/calendar-view.enum.js +9 -0
- package/esm2015/lib/enum/document-email-report.enum.js +18 -0
- package/esm2015/lib/enum/domain-multiple-name.enum.js +13 -0
- package/esm2015/lib/enum/file-type.js +14 -0
- package/esm2015/lib/enum/files-upload-config-objects.js +3 -0
- package/esm2015/lib/enum/gauge-color.enum.js +10 -0
- package/esm2015/lib/enum/icon.enum.js +44 -0
- package/esm2015/lib/enum/internal-param.enum.js +38 -0
- package/esm2015/lib/enum/keyboard-code.enum.js +32 -0
- package/esm2015/lib/enum/language-code.enum.js +8 -0
- package/esm2015/lib/enum/month.enum.js +17 -0
- package/esm2015/lib/enum/read-write-access-config-names.enum.js +2 -0
- package/esm2015/lib/enum/table-name.enum.js +86 -0
- package/esm2015/lib/enum/tag-category.enum.js +22 -0
- package/esm2015/lib/enum/tags-component-config-names.js +2 -0
- package/esm2015/lib/enum/thumb-three-way-state.js +19 -0
- package/esm2015/lib/enum/tile-size-type.js +7 -0
- package/esm2015/lib/enum/time-period.enum.js +11 -0
- package/esm2015/lib/event/co-drag-event.js +2 -0
- package/esm2015/lib/event/co-drop-event.js +2 -0
- package/esm2015/lib/interface/key-value-pair.js +2 -0
- package/esm2015/lib/interface/operation-callback-simple-function.js +4 -0
- package/esm2015/lib/localization/localization.module.js +19 -0
- package/esm2015/lib/localization/localize.pipe.js +26 -0
- package/esm2015/lib/localization/localize.service.js +30 -0
- package/esm2015/lib/localization/translation.js +3 -0
- package/esm2015/lib/model/agenda-event-per-day.model.js +6 -0
- package/esm2015/lib/model/agenda-event.model.js +8 -0
- package/esm2015/lib/model/agenda-null-objects.js +11 -0
- package/esm2015/lib/model/constant/all-months.js +17 -0
- package/esm2015/lib/model/date-range.js +5 -0
- package/esm2015/lib/model/day.model.js +7 -0
- package/esm2015/lib/model/icon-svg.js +43 -0
- package/esm2015/lib/model/month.model.js +11 -0
- package/esm2015/lib/model/send-method.js +8 -0
- package/esm2015/lib/model/settings.js +4 -0
- package/esm2015/lib/model/tag-tree-item.bo.js +16 -0
- package/esm2015/lib/model/time-window.bo.js +26 -0
- package/esm2015/lib/model/tree-object.js +15 -0
- package/esm2015/lib/model/week.model.js +6 -0
- package/esm2015/lib/model/weekday.model.js +10 -0
- package/esm2015/lib/pipe/array-number.pipe.js +15 -0
- package/esm2015/lib/pipe/file-type-image.pipe.js +51 -0
- package/esm2015/lib/pipe/master-pipes.js +9 -0
- package/esm2015/lib/pipe/ucfirst.pipe.js +16 -0
- package/esm2015/lib/service/dictionary.service.js +76 -0
- package/esm2015/lib/service/drag-drop.service.js +365 -0
- package/esm2015/lib/service/icon-cache.service.js +51 -0
- package/esm2015/lib/service/options.service.js +48 -0
- package/esm2015/lib/service/shared-connector.service.js +433 -0
- package/esm2015/lib/service/shared.service.js +60 -0
- package/esm2015/lib/service/stock.service.js +110 -0
- package/esm2015/lib/utils/array-utils.js +202 -0
- package/esm2015/lib/utils/calendar.utils.js +68 -0
- package/esm2015/lib/utils/check-precision-and-scale-result.js +2 -0
- package/esm2015/lib/utils/check-within-stepped-bounds-result.js +2 -0
- package/esm2015/lib/utils/co-document-shared-field-logic.js +50 -0
- package/esm2015/lib/utils/date-utils.js +264 -0
- package/esm2015/lib/utils/enum-utils.js +128 -0
- package/esm2015/lib/utils/function/not-nill.function.js +5 -0
- package/esm2015/lib/utils/is-nill.function.js +5 -0
- package/esm2015/lib/utils/map-utils.js +41 -0
- package/esm2015/lib/utils/number-utils.js +390 -0
- package/esm2015/lib/utils/object-utils.js +278 -0
- package/esm2015/lib/utils/ref-code-utils.js +49 -0
- package/esm2015/lib/utils/string-utils.js +93 -0
- package/esm2015/public-api.js +31 -0
- package/fesm2015/colijnit-sharedcomponents.js +10555 -0
- package/fesm2015/colijnit-sharedcomponents.js.map +1 -0
- package/lib/assets/dictionary/text.properties.d.ts +3 -0
- package/lib/businessobject/build-images-and-documentation-result.d.ts +5 -0
- package/lib/businessobject/co-document-right.bo.d.ts +6 -0
- package/lib/businessobject/drag-drop-container-element.d.ts +6 -0
- package/lib/businessobject/drag-drop-container.d.ts +6 -0
- package/lib/components/access/read-write-access.scss +25 -0
- package/lib/components/access/style/_layout.scss +23 -0
- package/lib/components/access/style/_theme.scss +4 -0
- package/lib/components/activity-list/activity-list.component.d.ts +33 -0
- package/lib/components/activity-list/activity-list.module.d.ts +2 -0
- package/lib/components/activity-list/style/_layout.scss +68 -0
- package/lib/components/activity-list/style/_theme.scss +4 -0
- package/lib/components/app-file-dropzone/app-file-dropzone.component.d.ts +14 -0
- package/lib/components/app-file-dropzone/app-file-dropzone.module.d.ts +2 -0
- package/lib/components/app-file-dropzone/style/_layout.scss +61 -0
- package/lib/components/app-file-dropzone/style/_theme.scss +4 -0
- package/lib/components/date-planning/component/agenda/agenda-base-view.component.d.ts +21 -0
- package/lib/components/date-planning/component/agenda/agenda-day-view.component.d.ts +7 -0
- package/lib/components/date-planning/component/agenda/agenda-event.component.d.ts +18 -0
- package/lib/components/date-planning/component/agenda/agenda-events.component.d.ts +13 -0
- package/lib/components/date-planning/component/agenda/agenda-half-hour-cell.component.d.ts +18 -0
- package/lib/components/date-planning/component/agenda/agenda-header.component.d.ts +48 -0
- package/lib/components/date-planning/component/agenda/agenda-hour-cell.component.d.ts +9 -0
- package/lib/components/date-planning/component/agenda/agenda-hour-view-labels.component.d.ts +8 -0
- package/lib/components/date-planning/component/agenda/agenda-hour-view.component.d.ts +7 -0
- package/lib/components/date-planning/component/agenda/agenda-month-view.component.d.ts +10 -0
- package/lib/components/date-planning/component/agenda/agenda-select-event.component.d.ts +12 -0
- package/lib/components/date-planning/component/agenda/agenda-view.component.d.ts +12 -0
- package/lib/components/date-planning/component/agenda/agenda-week-select-view.component.d.ts +10 -0
- package/lib/components/date-planning/component/agenda/agenda-week-view.component.d.ts +9 -0
- package/lib/components/date-planning/component/agenda/view-select.component.d.ts +11 -0
- package/lib/components/date-planning/component/calendar/calendar-all-months.component.d.ts +9 -0
- package/lib/components/date-planning/component/calendar/calendar-all-years.component.d.ts +9 -0
- package/lib/components/date-planning/component/calendar/calendar-header.component.d.ts +23 -0
- package/lib/components/date-planning/component/calendar/calendar-view.component.d.ts +31 -0
- package/lib/components/date-planning/component/calendar/calendar.component.d.ts +10 -0
- package/lib/components/date-planning/date-planning.component.d.ts +28 -0
- package/lib/components/date-planning/date-planning.module.d.ts +2 -0
- package/lib/components/docsign/component/signature/signature.component.d.ts +16 -0
- package/lib/components/docsign/component/signatures/signatures.component.d.ts +12 -0
- package/lib/components/docsign/docsign.component.d.ts +94 -0
- package/lib/components/docsign/docsign.module.d.ts +2 -0
- package/lib/components/docsign/style/_material-definition.scss +12 -0
- package/lib/components/file-upload/file-upload.component.d.ts +42 -0
- package/lib/components/file-upload/file-upload.module.d.ts +2 -0
- package/lib/components/file-upload/style/_layout.scss +59 -0
- package/lib/components/file-upload/style/_material-definition.scss +2 -0
- package/lib/components/file-upload/style/_theme.scss +4 -0
- package/lib/components/file-upload/style/material.scss +4 -0
- package/lib/components/file-upload-popup/file-upload-popup.component.d.ts +75 -0
- package/lib/components/file-upload-popup/file-upload-popup.module.d.ts +2 -0
- package/lib/components/file-upload-popup/style/_layout.scss +48 -0
- package/lib/components/file-upload-popup/style/_material-definition.scss +2 -0
- package/lib/components/file-upload-popup/style/_theme.scss +5 -0
- package/lib/components/files-upload/components/base-file-upload.component.d.ts +98 -0
- package/lib/components/files-upload/components/drag-drop-container.component.d.ts +34 -0
- package/lib/components/files-upload/files-upload.component.d.ts +32 -0
- package/lib/components/files-upload/files-upload.module.d.ts +2 -0
- package/lib/components/files-upload/style/_layout.scss +49 -0
- package/lib/components/files-upload/style/_theme.scss +5 -0
- package/lib/components/files-upload/style/material.scss +4 -0
- package/lib/components/image-display/image-display.component.d.ts +14 -0
- package/lib/components/image-display/image-display.module.d.ts +2 -0
- package/lib/components/image-display/style/_layout.scss +56 -0
- package/lib/components/image-display/style/_material-definition.scss +4 -0
- package/lib/components/image-display/style/_theme.scss +6 -0
- package/lib/components/key-pad/key-pad.component.d.ts +38 -0
- package/lib/components/key-pad/key-pad.module.d.ts +2 -0
- package/lib/components/layout-switcher/layout-switcher.component.d.ts +16 -0
- package/lib/components/layout-switcher/layout-switcher.module.d.ts +2 -0
- package/lib/components/linear-gauge/co-linear-gauge.component.d.ts +11 -0
- package/lib/components/linear-gauge/co-linear-gauge.module.d.ts +2 -0
- package/lib/components/multi-property-toggler/multiple-property-toggler.component.d.ts +27 -0
- package/lib/components/multi-property-toggler/multiple-property-toggler.module.d.ts +2 -0
- package/lib/components/multi-property-toggler/style/_layout.scss +24 -0
- package/lib/components/multi-property-toggler/style/_theme.scss +4 -0
- package/lib/components/multi-property-toggler/style/material.scss +4 -0
- package/lib/components/send-method-dialog/components/layout-selection/layout-selection.component.d.ts +19 -0
- package/lib/components/send-method-dialog/components/layout-selection/layout-selection.module.d.ts +2 -0
- package/lib/components/send-method-dialog/components/printer-selection/printer-selection.component.d.ts +19 -0
- package/lib/components/send-method-dialog/components/printer-selection/printer-selection.module.d.ts +2 -0
- package/lib/components/send-method-dialog/components/send-method-email/send-method-email.component.d.ts +14 -0
- package/lib/components/send-method-dialog/components/send-method-email/send-method-email.module.d.ts +2 -0
- package/lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.component.d.ts +8 -0
- package/lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.module.d.ts +2 -0
- package/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.component.d.ts +13 -0
- package/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.module.d.ts +2 -0
- package/lib/components/send-method-dialog/components/signature-button/signature-button.component.d.ts +12 -0
- package/lib/components/send-method-dialog/components/signature-button/signature-button.module.d.ts +2 -0
- package/lib/components/send-method-dialog/model/email-address-viewmodel.d.ts +5 -0
- package/lib/components/send-method-dialog/send-method-dialog.component.d.ts +71 -0
- package/lib/components/send-method-dialog/send-method-dialog.module.d.ts +2 -0
- package/lib/components/send-method-dialog/send-method-params.interface.d.ts +13 -0
- package/lib/components/send-method-dialog/service/send-method.service.d.ts +23 -0
- package/lib/components/simple-tags/simple-tags.component.d.ts +31 -0
- package/lib/components/simple-tags/simple-tags.module.d.ts +2 -0
- package/lib/components/simple-tags/style/material.scss +4 -0
- package/lib/components/statusbar/statusbar-popup.component.d.ts +21 -0
- package/lib/components/statusbar/statusbar.component.d.ts +26 -0
- package/lib/components/statusbar/statusbar.module.d.ts +2 -0
- package/lib/components/stock/components/allocation-stock-history/allocation-stock-history.component.d.ts +9 -0
- package/lib/components/stock/components/order-commission-stock-history/order-commission-stock-history.component.d.ts +9 -0
- package/lib/components/stock/components/order-stock-history/order-stock-history.component.d.ts +9 -0
- package/lib/components/stock/components/order-stock-tab/order-stock-tab.component.d.ts +11 -0
- package/lib/components/stock/components/order-supply-stock-history/order-supply-stock-history.component.d.ts +9 -0
- package/lib/components/stock/components/order-tab/order-tab.component.d.ts +20 -0
- package/lib/components/stock/components/stock-history/stock-history.component.d.ts +13 -0
- package/lib/components/stock/components/stock-location/stock-location.component.d.ts +50 -0
- package/lib/components/stock/components/stock-prognose/stock-prognose.component.d.ts +11 -0
- package/lib/components/stock/components/stock-tab/stock-tab.component.d.ts +9 -0
- package/lib/components/stock/localization/translation.d.ts +60 -0
- package/lib/components/stock/stock-history-tabs/stock-history-tabs.component.d.ts +7 -0
- package/lib/components/stock/stock-information/stock-information.component.d.ts +8 -0
- package/lib/components/stock/stock-information-grid/stock-information-grid.component.d.ts +75 -0
- package/lib/components/stock/stock-tabs/stock-tabs.component.d.ts +56 -0
- package/{projects/sharedcomponents/src/lib/components/stock/stock-transfer/co-drop-down-list-fields.interface.ts → lib/components/stock/stock-transfer/co-drop-down-list-fields.interface.d.ts} +2 -2
- package/lib/components/stock/stock-transfer/stock-change-amount.component.d.ts +18 -0
- package/lib/components/stock/stock-transfer/stock-transfer.component.d.ts +42 -0
- package/lib/components/stock/stock.component.d.ts +57 -0
- package/lib/components/stock/stock.module.d.ts +2 -0
- package/lib/components/stock/style/material.scss +4 -0
- package/lib/components/stock-statusbar/stock-statusbar.component.d.ts +4 -0
- package/lib/components/stock-statusbar/stock-statusbar.module.d.ts +2 -0
- package/lib/components/stock-statusbar/style/_material-definition.scss +0 -0
- package/lib/components/stock-statusbar/style/_theme.scss +0 -0
- package/lib/components/stock-statusbar/style/material.scss +4 -0
- package/lib/components/tab-bar/style/_theme.scss +0 -0
- package/lib/components/tab-bar/style/material.scss +4 -0
- package/lib/components/tab-bar/tab-bar.component.d.ts +21 -0
- package/lib/components/tab-bar/tab-bar.module.d.ts +2 -0
- package/lib/components/tab-bar/tab.interface.d.ts +5 -0
- package/lib/components/tags/component/tag-join-label/style/material.scss +3 -0
- package/lib/components/tile-renderer/style/_layout.scss +90 -0
- package/lib/components/tile-renderer/style/_material-definition.scss +0 -0
- package/lib/components/tile-renderer/style/_theme.scss +4 -0
- package/lib/components/tile-renderer/style/material.scss +4 -0
- package/lib/components/tile-renderer/tile-render.component.d.ts +31 -0
- package/lib/components/tile-renderer/tile-render.module.d.ts +2 -0
- package/lib/decorator/input-boolean.decorator.d.ts +8 -0
- package/{projects/sharedcomponents/src/lib/enum/calendar-view.enum.ts → lib/enum/calendar-view.enum.d.ts} +2 -3
- package/lib/enum/document-email-report.enum.d.ts +15 -0
- package/lib/enum/domain-multiple-name.enum.d.ts +10 -0
- package/lib/enum/file-type.d.ts +7 -0
- package/lib/enum/files-upload-config-objects.d.ts +22 -0
- package/lib/enum/gauge-color.enum.d.ts +8 -0
- package/{projects/sharedcomponents/src/lib/enum/icon.enum.ts → lib/enum/icon.enum.d.ts} +8 -3
- package/lib/enum/internal-param.enum.d.ts +34 -0
- package/lib/enum/keyboard-code.enum.d.ts +30 -0
- package/lib/enum/language-code.enum.d.ts +6 -0
- package/{projects/sharedcomponents/src/lib/enum/month.enum.ts → lib/enum/month.enum.d.ts} +1 -2
- package/lib/enum/read-write-access-config-names.enum.d.ts +4 -0
- package/lib/enum/table-name.enum.d.ts +84 -0
- package/{projects/sharedcomponents/src/lib/enum/tag-category.enum.ts → lib/enum/tag-category.enum.d.ts} +1 -2
- package/lib/enum/tags-component-config-names.d.ts +4 -0
- package/lib/enum/thumb-three-way-state.d.ts +6 -0
- package/lib/enum/tile-size-type.d.ts +4 -0
- package/{projects/sharedcomponents/src/lib/enum/time-period.enum.ts → lib/enum/time-period.enum.d.ts} +1 -2
- package/lib/event/co-drag-event.d.ts +5 -0
- package/lib/event/co-drop-event.d.ts +8 -0
- package/lib/interface/key-value-pair.d.ts +4 -0
- package/lib/interface/operation-callback-simple-function.d.ts +4 -0
- package/lib/localization/localization.module.d.ts +2 -0
- package/lib/localization/localize.pipe.d.ts +7 -0
- package/lib/localization/localize.service.d.ts +7 -0
- package/lib/localization/translation.d.ts +2 -0
- package/lib/model/agenda-event-per-day.model.d.ts +5 -0
- package/lib/model/agenda-event.model.d.ts +17 -0
- package/lib/model/agenda-null-objects.d.ts +10 -0
- package/lib/model/constant/all-months.d.ts +2 -0
- package/lib/model/date-range.d.ts +7 -0
- package/lib/model/day.model.d.ts +8 -0
- package/lib/model/icon-svg.d.ts +4 -0
- package/lib/model/month.model.d.ts +5 -0
- package/lib/model/send-method.d.ts +7 -0
- package/lib/model/settings.d.ts +3 -0
- package/lib/model/tag-tree-item.bo.d.ts +18 -0
- package/lib/model/time-window.bo.d.ts +13 -0
- package/lib/model/tree-object.d.ts +8 -0
- package/lib/model/week.model.d.ts +4 -0
- package/lib/model/weekday.model.d.ts +16 -0
- package/lib/pipe/array-number.pipe.d.ts +4 -0
- package/lib/pipe/file-type-image.pipe.d.ts +12 -0
- package/lib/pipe/master-pipes.d.ts +1 -0
- package/lib/pipe/ucfirst.pipe.d.ts +4 -0
- package/lib/service/dictionary.service.d.ts +21 -0
- package/lib/service/drag-drop.service.d.ts +86 -0
- package/lib/service/icon-cache.service.d.ts +18 -0
- package/lib/service/options.service.d.ts +13 -0
- package/lib/service/shared-connector.service.d.ts +55 -0
- package/lib/service/shared.service.d.ts +18 -0
- package/lib/service/stock.service.d.ts +41 -0
- package/{projects/sharedcomponents/src/lib → lib}/style/_variables.scss +1 -1
- package/lib/utils/array-utils.d.ts +63 -0
- package/lib/utils/calendar.utils.d.ts +10 -0
- package/{projects/sharedcomponents/src/lib/utils/check-precision-and-scale-result.ts → lib/utils/check-precision-and-scale-result.d.ts} +0 -1
- package/lib/utils/co-document-shared-field-logic.d.ts +7 -0
- package/lib/utils/date-utils.d.ts +44 -0
- package/lib/utils/enum-utils.d.ts +31 -0
- package/lib/utils/function/not-nill.function.d.ts +1 -0
- package/lib/utils/is-nill.function.d.ts +1 -0
- package/lib/utils/map-utils.d.ts +16 -0
- package/lib/utils/number-utils.d.ts +125 -0
- package/lib/utils/object-utils.d.ts +40 -0
- package/lib/utils/ref-code-utils.d.ts +10 -0
- package/lib/utils/string-utils.d.ts +38 -0
- package/package.json +31 -68
- package/{projects/sharedcomponents/src/public-api.ts → public-api.d.ts} +4 -4
- package/.browserslistrc +0 -16
- package/.editorconfig +0 -16
- package/.vscode/extensions.json +0 -4
- package/.vscode/launch.json +0 -20
- package/.vscode/tasks.json +0 -42
- package/Sharedcomponents.iml +0 -11
- package/angular.json +0 -177
- package/custom-login-bundle.webpack.config.js +0 -3
- package/karma.conf.js +0 -44
- package/move-assets.js +0 -14
- package/projects/sharedcomponents/.browserslistrc +0 -16
- package/projects/sharedcomponents/README.md +0 -24
- package/projects/sharedcomponents/karma.conf.js +0 -44
- package/projects/sharedcomponents/ng-package.json +0 -17
- package/projects/sharedcomponents/package.json +0 -23
- package/projects/sharedcomponents/src/lib/assets/dictionary/text.properties.ts +0 -8
- package/projects/sharedcomponents/src/lib/assets/icons/account.svg +0 -1
- package/projects/sharedcomponents/src/lib/assets/icons/angle_left_solid.svg +0 -1
- package/projects/sharedcomponents/src/lib/assets/icons/angle_right_solid.svg +0 -1
- package/projects/sharedcomponents/src/lib/assets/icons/arrow_fat_right.svg +0 -1
- package/projects/sharedcomponents/src/lib/assets/icons/arrow_point_left.svg +0 -8
- package/projects/sharedcomponents/src/lib/assets/icons/arrow_point_right.svg +0 -4
- package/projects/sharedcomponents/src/lib/assets/icons/at_solid.svg +0 -1
- package/projects/sharedcomponents/src/lib/assets/icons/bring_forward_regular.svg +0 -1
- package/projects/sharedcomponents/src/lib/assets/icons/check_duotone.svg +0 -1
- package/projects/sharedcomponents/src/lib/assets/icons/check_round.svg +0 -1
- package/projects/sharedcomponents/src/lib/assets/icons/cross_skinny.svg +0 -1
- package/projects/sharedcomponents/src/lib/assets/icons/delete_left_regular.svg +0 -1
- package/projects/sharedcomponents/src/lib/assets/icons/delivery_truck.svg +0 -12
- package/projects/sharedcomponents/src/lib/assets/icons/email.svg +0 -5
- package/projects/sharedcomponents/src/lib/assets/icons/envelope_regular.svg +0 -1
- package/projects/sharedcomponents/src/lib/assets/icons/eye_regular.svg +0 -1
- package/projects/sharedcomponents/src/lib/assets/icons/file_export_regular.svg +0 -1
- package/projects/sharedcomponents/src/lib/assets/icons/file_export_solid.svg +0 -1
- package/projects/sharedcomponents/src/lib/assets/icons/file_pdf_regular.svg +0 -1
- package/projects/sharedcomponents/src/lib/assets/icons/file_pdf_solid.svg +0 -1
- package/projects/sharedcomponents/src/lib/assets/icons/file_signature_regular.svg +0 -1
- package/projects/sharedcomponents/src/lib/assets/icons/house_blank_regular.svg +0 -1
- package/projects/sharedcomponents/src/lib/assets/icons/lock.svg +0 -1
- package/projects/sharedcomponents/src/lib/assets/icons/message_sms_regular.svg +0 -1
- package/projects/sharedcomponents/src/lib/assets/icons/message_sms_solid.svg +0 -1
- package/projects/sharedcomponents/src/lib/assets/icons/pdf.svg +0 -15
- package/projects/sharedcomponents/src/lib/assets/icons/print.svg +0 -10
- package/projects/sharedcomponents/src/lib/assets/icons/print_regular.svg +0 -1
- package/projects/sharedcomponents/src/lib/assets/icons/print_solid.svg +0 -1
- package/projects/sharedcomponents/src/lib/assets/icons/signature_field.svg +0 -9
- package/projects/sharedcomponents/src/lib/assets/icons/tag_regular.svg +0 -1
- package/projects/sharedcomponents/src/lib/assets/icons/x_solid.svg +0 -1
- package/projects/sharedcomponents/src/lib/assets/icons/xml.svg +0 -1
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-base-view.component.ts +0 -68
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-day-view.component.ts +0 -35
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-event.component.ts +0 -73
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-events.component.ts +0 -53
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-half-hour-cell.component.ts +0 -81
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-header.component.ts +0 -275
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-hour-cell.component.ts +0 -38
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-hour-view-labels.component.ts +0 -50
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-hour-view.component.ts +0 -46
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-month-view.component.ts +0 -65
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-select-event.component.ts +0 -39
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-view.component.ts +0 -41
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-week-select-view.component.ts +0 -63
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-week-view.component.ts +0 -50
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/view-select.component.ts +0 -43
- package/projects/sharedcomponents/src/lib/components/date-planning/component/calendar/calendar-all-months.component.ts +0 -37
- package/projects/sharedcomponents/src/lib/components/date-planning/component/calendar/calendar-all-years.component.ts +0 -52
- package/projects/sharedcomponents/src/lib/components/date-planning/component/calendar/calendar-header.component.ts +0 -123
- package/projects/sharedcomponents/src/lib/components/date-planning/component/calendar/calendar-view.component.ts +0 -200
- package/projects/sharedcomponents/src/lib/components/date-planning/component/calendar/calendar.component.ts +0 -35
- package/projects/sharedcomponents/src/lib/components/date-planning/date-planning.component.ts +0 -141
- package/projects/sharedcomponents/src/lib/components/date-planning/date-planning.module.ts +0 -61
- package/projects/sharedcomponents/src/lib/components/docsign/component/signature/signature.component.ts +0 -82
- package/projects/sharedcomponents/src/lib/components/docsign/component/signatures/signatures.component.ts +0 -50
- package/projects/sharedcomponents/src/lib/components/docsign/docsign.component.ts +0 -270
- package/projects/sharedcomponents/src/lib/components/docsign/docsign.module.ts +0 -22
- package/projects/sharedcomponents/src/lib/components/key-pad/key-pad.component.ts +0 -216
- package/projects/sharedcomponents/src/lib/components/key-pad/key-pad.module.ts +0 -20
- package/projects/sharedcomponents/src/lib/components/layout-switcher/layout-switcher.component.ts +0 -98
- package/projects/sharedcomponents/src/lib/components/layout-switcher/layout-switcher.module.ts +0 -21
- package/projects/sharedcomponents/src/lib/components/linear-gauge/co-linear-gauge.component.ts +0 -57
- package/projects/sharedcomponents/src/lib/components/linear-gauge/co-linear-gauge.module.ts +0 -17
- package/projects/sharedcomponents/src/lib/components/login/components/login-base.component.ts +0 -98
- package/projects/sharedcomponents/src/lib/components/login/components/login-change-password.component.ts +0 -194
- package/projects/sharedcomponents/src/lib/components/login/components/login-mfa-code-entry.component.ts +0 -41
- package/projects/sharedcomponents/src/lib/components/login/components/login-mfa-code-setup.component.ts +0 -44
- package/projects/sharedcomponents/src/lib/components/login/components/login-username-password.component.ts +0 -167
- package/projects/sharedcomponents/src/lib/components/login/localization/login-translation.ts +0 -15
- package/projects/sharedcomponents/src/lib/components/login/login.component.ts +0 -137
- package/projects/sharedcomponents/src/lib/components/login/login.module.ts +0 -53
- package/projects/sharedcomponents/src/lib/components/login/service/login-adapter.service.ts +0 -58
- package/projects/sharedcomponents/src/lib/components/login/service/login.service.ts +0 -50
- package/projects/sharedcomponents/src/lib/components/screen-config-generator/enums/field-type.enum.ts +0 -9
- package/projects/sharedcomponents/src/lib/components/screen-config-generator/models/Config.ts +0 -6
- package/projects/sharedcomponents/src/lib/components/screen-config-generator/models/Field.ts +0 -8
- package/projects/sharedcomponents/src/lib/components/screen-config-generator/models/Header.ts +0 -8
- package/projects/sharedcomponents/src/lib/components/screen-config-generator/models/Module.ts +0 -6
- package/projects/sharedcomponents/src/lib/components/screen-config-generator/models/Rubric.ts +0 -10
- package/projects/sharedcomponents/src/lib/components/screen-config-generator/models/ScreenConfig.ts +0 -9
- package/projects/sharedcomponents/src/lib/components/screen-config-generator/models/SubCat.ts +0 -9
- package/projects/sharedcomponents/src/lib/components/screen-config-generator/models/SubRubric.ts +0 -8
- package/projects/sharedcomponents/src/lib/components/screen-config-generator/screen-config-generator.component.ts +0 -539
- package/projects/sharedcomponents/src/lib/components/screen-config-generator/screen-config-generator.module.ts +0 -21
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/layout-selection/layout-selection.component.ts +0 -91
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/layout-selection/layout-selection.module.ts +0 -19
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/printer-selection/printer-selection.component.ts +0 -84
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/printer-selection/printer-selection.module.ts +0 -19
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/send-method-email/send-method-email.component.ts +0 -63
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/send-method-email/send-method-email.module.ts +0 -24
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.component.ts +0 -38
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.module.ts +0 -21
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.component.ts +0 -60
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.module.ts +0 -26
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/signature-button/signature-button.component.ts +0 -42
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/signature-button/signature-button.module.ts +0 -19
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/model/email-address-viewmodel.ts +0 -9
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/send-method-dialog.component.ts +0 -325
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/send-method-dialog.module.ts +0 -32
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/send-method-params.interface.ts +0 -13
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/service/send-method.service.ts +0 -63
- package/projects/sharedcomponents/src/lib/components/simple-tags/simple-tags.component.ts +0 -243
- package/projects/sharedcomponents/src/lib/components/simple-tags/simple-tags.module.ts +0 -24
- package/projects/sharedcomponents/src/lib/components/statusbar/statusbar-popup.component.ts +0 -100
- package/projects/sharedcomponents/src/lib/components/statusbar/statusbar.component.ts +0 -107
- package/projects/sharedcomponents/src/lib/components/statusbar/statusbar.module.ts +0 -25
- package/projects/sharedcomponents/src/lib/components/stock/components/allocation-stock-history/allocation-stock-history.component.ts +0 -45
- package/projects/sharedcomponents/src/lib/components/stock/components/order-commission-stock-history/order-commission-stock-history.component.ts +0 -45
- package/projects/sharedcomponents/src/lib/components/stock/components/order-stock-history/order-stock-history.component.ts +0 -45
- package/projects/sharedcomponents/src/lib/components/stock/components/order-stock-tab/order-stock-tab.component.ts +0 -43
- package/projects/sharedcomponents/src/lib/components/stock/components/order-supply-stock-history/order-supply-stock-history.component.ts +0 -45
- package/projects/sharedcomponents/src/lib/components/stock/components/order-tab/order-tab.component.ts +0 -71
- package/projects/sharedcomponents/src/lib/components/stock/components/stock-history/stock-history.component.ts +0 -52
- package/projects/sharedcomponents/src/lib/components/stock/components/stock-location/stock-location.component.ts +0 -276
- package/projects/sharedcomponents/src/lib/components/stock/components/stock-prognose/stock-prognose.component.ts +0 -49
- package/projects/sharedcomponents/src/lib/components/stock/components/stock-tab/stock-tab.component.ts +0 -40
- package/projects/sharedcomponents/src/lib/components/stock/localization/translation.ts +0 -60
- package/projects/sharedcomponents/src/lib/components/stock/stock-history-tabs/stock-history-tabs.component.ts +0 -32
- package/projects/sharedcomponents/src/lib/components/stock/stock-information/stock-information.component.ts +0 -56
- package/projects/sharedcomponents/src/lib/components/stock/stock-information-grid/stock-information-grid.component.ts +0 -500
- package/projects/sharedcomponents/src/lib/components/stock/stock-tabs/stock-tabs.component.ts +0 -276
- package/projects/sharedcomponents/src/lib/components/stock/stock-transfer/stock-change-amount.component.ts +0 -77
- package/projects/sharedcomponents/src/lib/components/stock/stock-transfer/stock-transfer.component.ts +0 -178
- package/projects/sharedcomponents/src/lib/components/stock/stock.component.ts +0 -228
- package/projects/sharedcomponents/src/lib/components/stock/stock.module.ts +0 -97
- package/projects/sharedcomponents/src/lib/components/stock-statusbar/stock-statusbar.component.ts +0 -23
- package/projects/sharedcomponents/src/lib/components/stock-statusbar/stock-statusbar.module.ts +0 -17
- package/projects/sharedcomponents/src/lib/components/tab-bar/tab-bar.component.ts +0 -106
- package/projects/sharedcomponents/src/lib/components/tab-bar/tab-bar.module.ts +0 -20
- package/projects/sharedcomponents/src/lib/components/tab-bar/tab.interface.ts +0 -5
- package/projects/sharedcomponents/src/lib/components/tags/component/tag-join-label/tag-join-label.component.ts +0 -61
- package/projects/sharedcomponents/src/lib/components/tags/component/tag-label/tag-label.component.ts +0 -47
- package/projects/sharedcomponents/src/lib/components/tags/component/treeview/model/tree-view-node-item.ts +0 -132
- package/projects/sharedcomponents/src/lib/components/tags/component/treeview/treeview.component.ts +0 -258
- package/projects/sharedcomponents/src/lib/components/tags/tags.component.ts +0 -192
- package/projects/sharedcomponents/src/lib/components/tags/tags.module.ts +0 -27
- package/projects/sharedcomponents/src/lib/directives/click-outside.directive.ts +0 -25
- package/projects/sharedcomponents/src/lib/enum/gauge-color.enum.ts +0 -8
- package/projects/sharedcomponents/src/lib/enum/keyboard-code.enum.ts +0 -30
- package/projects/sharedcomponents/src/lib/enum/language-code.enum.ts +0 -6
- package/projects/sharedcomponents/src/lib/enum/login-component-extra-action-type.enum.ts +0 -4
- package/projects/sharedcomponents/src/lib/enum/login-component-page.type.enum.ts +0 -6
- package/projects/sharedcomponents/src/lib/enum/login-component-query-variables-name.enum.ts +0 -5
- package/projects/sharedcomponents/src/lib/enum/thumb-three-way-state.ts +0 -18
- package/projects/sharedcomponents/src/lib/localization/localization.module.ts +0 -17
- package/projects/sharedcomponents/src/lib/localization/localize.pipe.ts +0 -21
- package/projects/sharedcomponents/src/lib/localization/localize.service.ts +0 -28
- package/projects/sharedcomponents/src/lib/localization/translation.ts +0 -2
- package/projects/sharedcomponents/src/lib/model/agenda-event-per-day.model.ts +0 -6
- package/projects/sharedcomponents/src/lib/model/agenda-event.model.ts +0 -19
- package/projects/sharedcomponents/src/lib/model/agenda-null-objects.ts +0 -11
- package/projects/sharedcomponents/src/lib/model/constant/all-months.ts +0 -17
- package/projects/sharedcomponents/src/lib/model/date-range.ts +0 -10
- package/projects/sharedcomponents/src/lib/model/day.model.ts +0 -9
- package/projects/sharedcomponents/src/lib/model/icon-svg.ts +0 -37
- package/projects/sharedcomponents/src/lib/model/month.model.ts +0 -11
- package/projects/sharedcomponents/src/lib/model/send-method.ts +0 -13
- package/projects/sharedcomponents/src/lib/model/settings.ts +0 -5
- package/projects/sharedcomponents/src/lib/model/tag-tree-item.bo.ts +0 -28
- package/projects/sharedcomponents/src/lib/model/time-window.bo.ts +0 -21
- package/projects/sharedcomponents/src/lib/model/tree-object.ts +0 -13
- package/projects/sharedcomponents/src/lib/model/tree-view-default.model.ts +0 -107
- package/projects/sharedcomponents/src/lib/model/tree-view-node-default.model.ts +0 -196
- package/projects/sharedcomponents/src/lib/model/tree-view-node-item-options.model.ts +0 -12
- package/projects/sharedcomponents/src/lib/model/tree-view-node.model.ts +0 -150
- package/projects/sharedcomponents/src/lib/model/tree-view.model.ts +0 -57
- package/projects/sharedcomponents/src/lib/model/week.model.ts +0 -5
- package/projects/sharedcomponents/src/lib/model/weekday.model.ts +0 -17
- package/projects/sharedcomponents/src/lib/pipe/array-number.pipe.ts +0 -14
- package/projects/sharedcomponents/src/lib/pipe/master-pipes.ts +0 -7
- package/projects/sharedcomponents/src/lib/pipe/ucfirst.pipe.ts +0 -14
- package/projects/sharedcomponents/src/lib/service/dictionary.service.ts +0 -86
- package/projects/sharedcomponents/src/lib/service/icon-cache.service.ts +0 -51
- package/projects/sharedcomponents/src/lib/service/options.service.ts +0 -43
- package/projects/sharedcomponents/src/lib/service/shared-connector.service.ts +0 -401
- package/projects/sharedcomponents/src/lib/service/shared-initializer.service.ts +0 -29
- package/projects/sharedcomponents/src/lib/service/shared.service.ts +0 -49
- package/projects/sharedcomponents/src/lib/service/stock.service.ts +0 -124
- package/projects/sharedcomponents/src/lib/utils/array-utils.ts +0 -225
- package/projects/sharedcomponents/src/lib/utils/calendar.utils.ts +0 -75
- package/projects/sharedcomponents/src/lib/utils/css-utils.ts +0 -275
- package/projects/sharedcomponents/src/lib/utils/date-utils.ts +0 -302
- package/projects/sharedcomponents/src/lib/utils/function/not-nill.function.ts +0 -4
- package/projects/sharedcomponents/src/lib/utils/is-nill.function.ts +0 -4
- package/projects/sharedcomponents/src/lib/utils/map-utils.ts +0 -44
- package/projects/sharedcomponents/src/lib/utils/number-utils.ts +0 -439
- package/projects/sharedcomponents/src/lib/utils/object-utils.ts +0 -310
- package/projects/sharedcomponents/src/lib/utils/string-utils.ts +0 -67
- package/projects/sharedcomponents/src/lib/utils/tree-utils.ts +0 -63
- package/projects/sharedcomponents/src/test.ts +0 -27
- package/projects/sharedcomponents/tsconfig.lib.json +0 -18
- package/projects/sharedcomponents/tsconfig.lib.prod.json +0 -10
- package/projects/sharedcomponents/tsconfig.spec.json +0 -17
- package/script/create-bundle-version.js +0 -19
- package/script/merge-icons.js +0 -39
- package/src/app/app.component.scss +0 -31
- package/src/app/app.component.spec.ts +0 -31
- package/src/app/app.component.ts +0 -454
- package/src/app/app.module.ts +0 -69
- package/src/app/bundle/index.html +0 -14
- package/src/app/bundle/login/login-bundle.component.scss +0 -6
- package/src/app/bundle/login/login-bundle.component.ts +0 -111
- package/src/app/bundle/login/login-bundle.module.ts +0 -30
- package/src/app/bundle/main-login-bundle.ts +0 -11
- package/src/app/bundle/polyfills.ts +0 -63
- package/src/app/test-data.service.ts +0 -60
- package/src/environments/environment.bundle.prod.ts +0 -3
- package/src/environments/environment.prod.ts +0 -3
- package/src/environments/environment.ts +0 -16
- package/src/favicon.ico +0 -0
- package/src/index.html +0 -13
- package/src/main.ts +0 -12
- package/src/polyfills.ts +0 -53
- package/src/styles.scss +0 -54
- package/src/test.ts +0 -26
- package/tsconfig.app.json +0 -15
- package/tsconfig.bundle.json +0 -38
- package/tsconfig.json +0 -64
- package/tsconfig.spec.json +0 -18
- package/webpack.login.bundle.config.js +0 -32
- /package/{projects/sharedcomponents/src/lib/components/docsign → lib/components/access}/style/_material-definition.scss +0 -0
- /package/{projects/sharedcomponents/src/lib/components/stock-statusbar → lib/components/access}/style/material.scss +0 -0
- /package/{projects/sharedcomponents/src/lib/components/date-planning → lib/components/activity-list}/style/_material-definition.scss +0 -0
- /package/{projects/sharedcomponents/src/lib/components/key-pad → lib/components/activity-list}/style/material.scss +0 -0
- /package/{projects/sharedcomponents/src/lib/components/screen-config-generator → lib/components/app-file-dropzone}/style/_material-definition.scss +0 -0
- /package/{projects/sharedcomponents/src/lib/components/stock → lib/components/app-file-dropzone}/style/material.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/date-planning/component/agenda/style/_layout.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/date-planning/component/agenda/style/_material-definition.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/date-planning/component/agenda/style/_theme.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/date-planning/component/agenda/style/material.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/date-planning/component/calendar/style/_layout.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/date-planning/component/calendar/style/_material-definition.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/date-planning/component/calendar/style/_theme.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/date-planning/component/calendar/style/material.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/date-planning/style/_layout.scss +0 -0
- /package/{projects/sharedcomponents/src/lib/components/stock-statusbar → lib/components/date-planning}/style/_material-definition.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/date-planning/style/_theme.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/date-planning/style/material.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/docsign/component/signature/style/_layout.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/docsign/component/signature/style/_material-definition.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/docsign/component/signature/style/_theme.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/docsign/component/signature/style/material.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/docsign/component/signatures/style/_layout.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/docsign/component/signatures/style/_material-definition.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/docsign/component/signatures/style/_theme.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/docsign/component/signatures/style/material.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/docsign/style/_layout.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/docsign/style/_theme.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/docsign/style/material.scss +0 -0
- /package/{projects/sharedcomponents/src/lib/components/tab-bar → lib/components/file-upload-popup}/style/material.scss +0 -0
- /package/{projects/sharedcomponents/src/lib/components/stock-statusbar/style/_theme.scss → lib/components/files-upload/style/_material-definition.scss} +0 -0
- /package/{projects/sharedcomponents/src/lib/components/tags/component → lib/components/image-display}/style/material.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/key-pad/style/_layout.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/key-pad/style/_material-definition.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/key-pad/style/_theme.scss +0 -0
- /package/{projects/sharedcomponents/src/lib/components/login → lib/components/key-pad}/style/material.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/layout-switcher/style/_layout.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/layout-switcher/style/_material-definition.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/layout-switcher/style/_theme.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/layout-switcher/style/material.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/linear-gauge/style/_layout.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/linear-gauge/style/_material-definition.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/linear-gauge/style/_theme.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/linear-gauge/style/material.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/login/style/_layout.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/login/style/_material-definition.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/login/style/_theme.scss +0 -0
- /package/{projects/sharedcomponents/src/lib/components/screen-config-generator → lib/components/login}/style/material.scss +0 -0
- /package/{projects/sharedcomponents/src/lib/components/tab-bar/style/_theme.scss → lib/components/multi-property-toggler/style/_material-definition.scss} +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/screen-config-generator/style/_layout.scss +0 -0
- /package/{src/assets/.gitkeep → lib/components/screen-config-generator/style/_material-definition.scss} +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/screen-config-generator/style/_theme.scss +0 -0
- /package/{projects/sharedcomponents/src/lib/components/simple-tags → lib/components/screen-config-generator}/style/material.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/send-method-dialog/components/layout-selection/style/_layout.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/send-method-dialog/components/layout-selection/style/_material-definition.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/send-method-dialog/components/layout-selection/style/_theme.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/send-method-dialog/components/layout-selection/style/material.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/send-method-dialog/components/printer-selection/style/_layout.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/send-method-dialog/components/printer-selection/style/_material-definition.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/send-method-dialog/components/printer-selection/style/_theme.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/send-method-dialog/components/printer-selection/style/material.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/send-method-dialog/components/send-method-email/style/_layout.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/send-method-dialog/components/send-method-email/style/_material-definition.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/send-method-dialog/components/send-method-email/style/_theme.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/send-method-dialog/components/send-method-email/style/material.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/send-method-dialog/components/send-method-pdf/style/_layout.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/send-method-dialog/components/send-method-pdf/style/_material-definition.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/send-method-dialog/components/send-method-pdf/style/_theme.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/send-method-dialog/components/send-method-pdf/style/material.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/send-method-dialog/components/send-method-printer/style/_layout.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/send-method-dialog/components/send-method-printer/style/_material-definition.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/send-method-dialog/components/send-method-printer/style/_theme.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/send-method-dialog/components/send-method-printer/style/material.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/send-method-dialog/components/signature-button/style/_layout.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/send-method-dialog/components/signature-button/style/_material-definition.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/send-method-dialog/components/signature-button/style/_theme.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/send-method-dialog/components/signature-button/style/material.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/send-method-dialog/style/_layout.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/send-method-dialog/style/_material-definition.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/send-method-dialog/style/_theme.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/send-method-dialog/style/material.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/simple-tags/style/_layout.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/simple-tags/style/_material-definition.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/simple-tags/style/_theme.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/statusbar/style/_layout.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/statusbar/style/_material-definition.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/statusbar/style/_theme.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/statusbar/style/material.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/stock/style/_layout.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/stock/style/_material-definition.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/stock/style/_theme.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/stock-statusbar/style/_layout.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/tab-bar/style/_layout.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/tab-bar/style/_material-definition.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/tags/component/style/_layout.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/tags/component/style/_material-definition.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/tags/component/style/_theme.scss +0 -0
- /package/{projects/sharedcomponents/src/lib/components/tags/component/tag-join-label → lib/components/tags/component}/style/material.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/tags/component/tag-join-label/style/_layout.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/tags/component/tag-join-label/style/_material-definition.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/components/tags/component/tag-join-label/style/_theme.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/style/_mixin.scss +0 -0
- /package/{projects/sharedcomponents/src/lib → lib}/style/sharedcomponents-globals.scss +0 -0
- /package/{projects/sharedcomponents/src/lib/utils/check-within-stepped-bounds-result.ts → lib/utils/check-within-stepped-bounds-result.d.ts} +0 -0
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
import { ALL_MONTHS } from "../model/constant/all-months";
|
|
2
|
+
import { notNill } from "./function/not-nill.function";
|
|
3
|
+
import * as moment from "moment";
|
|
4
|
+
import { DatePipe } from "@angular/common";
|
|
5
|
+
import { DateRange } from "../model/date-range";
|
|
6
|
+
Date.prototype.toJSON = function () {
|
|
7
|
+
return moment(this).format('YYYY-MM-DD[T]HH:mm:ss');
|
|
8
|
+
};
|
|
9
|
+
// static utility function holder related to dates
|
|
10
|
+
export class DateUtils {
|
|
11
|
+
static NowAsString() {
|
|
12
|
+
return DateUtils.ParseDate(new Date(), DateUtils.BACKEND_DATE_FORMAT);
|
|
13
|
+
}
|
|
14
|
+
static ParseDate(date, format = "d-m-y") {
|
|
15
|
+
if (!date) {
|
|
16
|
+
return "";
|
|
17
|
+
}
|
|
18
|
+
const day = ("0" + date.getDate()).slice(-2);
|
|
19
|
+
const month = ("0" + (date.getMonth() + 1)).slice(-2);
|
|
20
|
+
const year = date.getFullYear() + "";
|
|
21
|
+
const formatParts = format.split("-");
|
|
22
|
+
const dateParts = [];
|
|
23
|
+
for (let i = 0, l = formatParts.length; i < l; i++) {
|
|
24
|
+
switch (formatParts[i]) {
|
|
25
|
+
case "d":
|
|
26
|
+
case "DD":
|
|
27
|
+
dateParts.push(day);
|
|
28
|
+
break;
|
|
29
|
+
case "m":
|
|
30
|
+
case "MM":
|
|
31
|
+
dateParts.push(month);
|
|
32
|
+
break;
|
|
33
|
+
case "y":
|
|
34
|
+
case "YYYY":
|
|
35
|
+
dateParts.push(year);
|
|
36
|
+
break;
|
|
37
|
+
default:
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return dateParts.join("-");
|
|
42
|
+
}
|
|
43
|
+
static GetWeekNumber(date) {
|
|
44
|
+
date = new Date(date.getTime());
|
|
45
|
+
date.setHours(0, 0, 0, 0);
|
|
46
|
+
date.setDate(date.getDate() + 4 - (date.getDay() || 7));
|
|
47
|
+
return Math.ceil((((date.getTime() - new Date(date.getFullYear(), 0, 1).getTime()) / 8.64e7) + 1) / 7);
|
|
48
|
+
}
|
|
49
|
+
// Returns the number of days from now, for the given date in the future. Returns negative days if given date is in the past from now.
|
|
50
|
+
static GetDaysFromNow(date) {
|
|
51
|
+
return DateUtils.GetDayDifference(new Date(Date.now()), date);
|
|
52
|
+
}
|
|
53
|
+
static StringAsDate(str, format = DateUtils.BACKEND_DATE_FORMAT) {
|
|
54
|
+
if (notNill(str)) {
|
|
55
|
+
if (!isNaN(Number(str))) {
|
|
56
|
+
return new Date(str);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
const time = moment(str, format, true);
|
|
60
|
+
return time.isValid() ? new Date(time) : undefined;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
static MomentToDate(time) {
|
|
68
|
+
if (!time || !time.isValid()) {
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
const d = new Date(time.format(DateUtils.BACKEND_DATE_FORMAT));
|
|
72
|
+
d.setHours(time.hours());
|
|
73
|
+
d.setMinutes(time.minutes());
|
|
74
|
+
d.setSeconds(time.seconds());
|
|
75
|
+
return d;
|
|
76
|
+
}
|
|
77
|
+
static GetCurrentMonth() {
|
|
78
|
+
return ALL_MONTHS[new Date().getMonth()];
|
|
79
|
+
}
|
|
80
|
+
// @returns e.g. ["FEBRUARI", "MARCH", ..] if it's Februari today, otherwise e.g. ["APRIL", "MAY", ...] if it's April today
|
|
81
|
+
static Get12MonthsArrayWithFirstMonthIsCurrentMonth() {
|
|
82
|
+
const answer = [];
|
|
83
|
+
let monthNrToAdd = new Date().getMonth();
|
|
84
|
+
for (let i = 0; i < 12; i++) {
|
|
85
|
+
answer.push(ALL_MONTHS[monthNrToAdd]);
|
|
86
|
+
monthNrToAdd = (monthNrToAdd + 1) % ALL_MONTHS.length;
|
|
87
|
+
}
|
|
88
|
+
return answer;
|
|
89
|
+
}
|
|
90
|
+
static GetFirstDayOfWeek(date) {
|
|
91
|
+
if (!DateUtils._ValidDate(date)) {
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
94
|
+
let firstDay;
|
|
95
|
+
const dayOfWeek = date.getDay() || 7;
|
|
96
|
+
if (dayOfWeek === 1) {
|
|
97
|
+
firstDay = new Date(date);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
firstDay = new Date(date);
|
|
101
|
+
firstDay.setHours(-24 * (dayOfWeek - 1));
|
|
102
|
+
}
|
|
103
|
+
return firstDay;
|
|
104
|
+
}
|
|
105
|
+
static GetLastDayOfWeek(date) {
|
|
106
|
+
const firstDayOfWeek = DateUtils.GetFirstDayOfWeek(date);
|
|
107
|
+
const lastDayOfWeek = new Date(firstDayOfWeek);
|
|
108
|
+
lastDayOfWeek.setDate(firstDayOfWeek.getDate() + 6);
|
|
109
|
+
return lastDayOfWeek;
|
|
110
|
+
}
|
|
111
|
+
static GetFirstDayOfMonth(date) {
|
|
112
|
+
if (!DateUtils._ValidDate(date)) {
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
115
|
+
const year = date.getFullYear();
|
|
116
|
+
const month = date.getMonth();
|
|
117
|
+
return new Date(year, month, 1);
|
|
118
|
+
}
|
|
119
|
+
static GetLastDayOfMonth(date) {
|
|
120
|
+
if (!DateUtils._ValidDate(date)) {
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
const year = date.getFullYear();
|
|
124
|
+
const month = date.getMonth();
|
|
125
|
+
return new Date(year, month + 1, 0);
|
|
126
|
+
}
|
|
127
|
+
static DatesEqual(date1, date2) {
|
|
128
|
+
let result = false;
|
|
129
|
+
if (DateUtils._ValidDate(date1) && DateUtils._ValidDate(date2)) {
|
|
130
|
+
result =
|
|
131
|
+
date1.getDate() === date2.getDate() &&
|
|
132
|
+
date1.getMonth() === date2.getMonth() &&
|
|
133
|
+
date1.getFullYear() === date2.getFullYear();
|
|
134
|
+
}
|
|
135
|
+
return result;
|
|
136
|
+
}
|
|
137
|
+
static DateRangeEqual(dates1, dates2) {
|
|
138
|
+
return (this.DatesEqual(dates1.startDate, dates2.startDate) &&
|
|
139
|
+
this.DatesEqual(dates1.endDate, dates2.endDate));
|
|
140
|
+
}
|
|
141
|
+
static AddMinutes(date, minutes) {
|
|
142
|
+
return new Date(date.getTime() + (minutes * 60000));
|
|
143
|
+
}
|
|
144
|
+
static AddDays(date, days) {
|
|
145
|
+
const result = new Date(date);
|
|
146
|
+
result.setDate(result.getDate() + days);
|
|
147
|
+
return result;
|
|
148
|
+
}
|
|
149
|
+
static AddMonths(date, months) {
|
|
150
|
+
const result = new Date(date);
|
|
151
|
+
result.setMonth(result.getMonth() + months);
|
|
152
|
+
return result;
|
|
153
|
+
}
|
|
154
|
+
static DetermineDSTBreakpoints() {
|
|
155
|
+
const endOfYear = new Date(new Date().getFullYear(), 11, 1);
|
|
156
|
+
let checkDate = new Date(new Date().getFullYear(), 0, 1);
|
|
157
|
+
let offset = checkDate.getTimezoneOffset();
|
|
158
|
+
const periodStart = new Date();
|
|
159
|
+
let periodStartSet = false;
|
|
160
|
+
const periodEnd = new Date();
|
|
161
|
+
let periodEndSet = false;
|
|
162
|
+
while (checkDate.getTime() < endOfYear.getTime()) {
|
|
163
|
+
checkDate = this.AddMinutes(checkDate, 60);
|
|
164
|
+
if (offset < checkDate.getTimezoneOffset()) {
|
|
165
|
+
periodEnd.setTime(checkDate.getTime());
|
|
166
|
+
periodEndSet = true;
|
|
167
|
+
}
|
|
168
|
+
else if (offset > checkDate.getTimezoneOffset()) {
|
|
169
|
+
periodStart.setTime(checkDate.getTime());
|
|
170
|
+
periodStartSet = true;
|
|
171
|
+
}
|
|
172
|
+
offset = checkDate.getTimezoneOffset();
|
|
173
|
+
if (periodStartSet && periodEndSet) {
|
|
174
|
+
break;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
if (periodStartSet && periodEndSet) {
|
|
178
|
+
return {
|
|
179
|
+
start: this._DateToTimeStringWithDateFormat(periodStart),
|
|
180
|
+
end: this._DateToTimeStringWithDateFormat(periodEnd)
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
return { start: undefined, end: undefined }; // important otherwise we return new Date() for both
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
static _ValidDate(date) {
|
|
188
|
+
return date !== null && date !== undefined;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Returns the difference between the two given days as the number of days, in float precision (date to - date from).
|
|
192
|
+
* Returns negative values of the 'from' date is later than in time than the 'to' date.
|
|
193
|
+
*/
|
|
194
|
+
static GetDayDifference(from, to) {
|
|
195
|
+
if (!from || !to) {
|
|
196
|
+
return NaN;
|
|
197
|
+
}
|
|
198
|
+
return ((to.getTime() - from.getTime()) / 1000 / 60 / 60 / 24);
|
|
199
|
+
}
|
|
200
|
+
static IsSameDay(dateOne, dateTwo) {
|
|
201
|
+
return (dateOne && dateTwo &&
|
|
202
|
+
dateOne.getDate() === dateTwo.getDate()
|
|
203
|
+
&& dateOne.getMonth() === dateTwo.getMonth()
|
|
204
|
+
&& dateOne.getFullYear() === dateTwo.getFullYear());
|
|
205
|
+
}
|
|
206
|
+
static IsInBetween(date, startDate, endDate, withTime = true) {
|
|
207
|
+
if (startDate && endDate) {
|
|
208
|
+
if (withTime) {
|
|
209
|
+
return (date > startDate && date < endDate);
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
const dateWithoutTime = new Date(date).setHours(0, 0, 0, 0), dateFromWithoutTime = new Date(startDate).setHours(0, 0, 0, 0), dateToWithoutTime = new Date(endDate).setHours(0, 0, 0, 0);
|
|
213
|
+
return dateWithoutTime >= dateFromWithoutTime && dateWithoutTime <= dateToWithoutTime;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
static IsMonday(date) {
|
|
218
|
+
return date.getDay() === 1;
|
|
219
|
+
}
|
|
220
|
+
static IsSunday(date) {
|
|
221
|
+
return date.getDay() === 0;
|
|
222
|
+
}
|
|
223
|
+
static IsToday(date) {
|
|
224
|
+
const today = new Date();
|
|
225
|
+
return DateUtils.IsSameDay(today, date);
|
|
226
|
+
}
|
|
227
|
+
// Returns date format like it would when using a pipe in the templete, ie: "1 okt. 2020"
|
|
228
|
+
static ParseDateInShortDateFormat(date, locale) {
|
|
229
|
+
this.datePipe = new DatePipe(locale);
|
|
230
|
+
const parsedDate = this.datePipe.transform(date);
|
|
231
|
+
return parsedDate;
|
|
232
|
+
}
|
|
233
|
+
// Transforms a string that is formatted like "'17-08-2014'<=?<='17-08-2021'" into "'17-08-2014' Untill '17-08-2021'"
|
|
234
|
+
static getFormattedDateRangeString(dateRangeString, separator = " - ") {
|
|
235
|
+
let newString = dateRangeString;
|
|
236
|
+
newString = newString.replace("<=?<=", ` ${separator} `);
|
|
237
|
+
newString = newString.replace(/'/g, "");
|
|
238
|
+
return newString;
|
|
239
|
+
}
|
|
240
|
+
static SetDateOrDateRangeObjectHoursZero(date) {
|
|
241
|
+
if (date instanceof DateRange) {
|
|
242
|
+
if (date.startDate) {
|
|
243
|
+
date.startDate.setHours(0, 0, 0);
|
|
244
|
+
}
|
|
245
|
+
if (date.endDate) {
|
|
246
|
+
date.endDate.setHours(0, 0, 0);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
else if (!!date && (date instanceof Date)) {
|
|
250
|
+
date.setHours(0, 0, 0, 0);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
static _DateToTimeStringWithDateFormat(value, dateFormat = "d-m-y") {
|
|
254
|
+
if (!value) {
|
|
255
|
+
return "";
|
|
256
|
+
}
|
|
257
|
+
const hours = value.getHours() < 10 ? "0" + value.getHours() : "" + value.getHours();
|
|
258
|
+
const minutes = value.getMinutes() < 10 ? "0" + value.getMinutes() : "" + value.getMinutes();
|
|
259
|
+
return this.ParseDate(value, dateFormat) + " " + [hours, minutes].join(":");
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
DateUtils.BACKEND_DATE_FORMAT = 'YYYY-MM-DD[T]HH:mm:ss';
|
|
263
|
+
DateUtils.datePipe = new DatePipe('shortDate');
|
|
264
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL2xpYi91dGlscy9kYXRlLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDckQsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFFakMsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUU5QyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRztJQUNwQixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQUN4RCxDQUFDLENBQUE7QUFFRCxrREFBa0Q7QUFDbEQsTUFBTSxPQUFPLFNBQVM7SUFJWCxNQUFNLENBQUMsV0FBVztRQUNyQixPQUFPLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxTQUFTLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRU0sTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFVLEVBQUUsU0FBaUIsT0FBTztRQUN4RCxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1AsT0FBTyxFQUFFLENBQUM7U0FDYjtRQUVELE1BQU0sR0FBRyxHQUFXLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sS0FBSyxHQUFXLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUQsTUFBTSxJQUFJLEdBQVcsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUU3QyxNQUFNLFdBQVcsR0FBYSxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hELE1BQU0sU0FBUyxHQUFhLEVBQUUsQ0FBQztRQUcvQixLQUFLLElBQUksQ0FBQyxHQUFXLENBQUMsRUFBRSxDQUFDLEdBQVcsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2hFLFFBQVEsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNwQixLQUFLLEdBQUcsQ0FBRTtnQkFDVixLQUFLLElBQUk7b0JBQ0wsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDcEIsTUFBTTtnQkFDVixLQUFLLEdBQUcsQ0FBRTtnQkFDVixLQUFLLElBQUk7b0JBQ0wsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDdEIsTUFBTTtnQkFDVixLQUFLLEdBQUcsQ0FBRTtnQkFDVixLQUFLLE1BQU07b0JBQ1AsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDckIsTUFBTTtnQkFDVjtvQkFDSSxNQUFNO2FBQ2I7U0FDSjtRQUNELE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU0sTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFVO1FBQ2xDLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzNHLENBQUM7SUFFRCxzSUFBc0k7SUFDL0gsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFVO1FBQ25DLE9BQU8sU0FBUyxDQUFDLGdCQUFnQixDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFTSxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQVcsRUFBRSxTQUFpQixTQUFTLENBQUMsbUJBQW1CO1FBQ2xGLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDckIsT0FBTyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN4QjtpQkFBTTtnQkFDSCxNQUFNLElBQUksR0FBUSxNQUFNLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDNUMsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7YUFDdEQ7U0FDSjthQUFNO1lBQ0gsT0FBTyxTQUFTLENBQUM7U0FDcEI7SUFDTCxDQUFDO0lBRU0sTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFZO1FBQ25DLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDMUIsT0FBTyxTQUFTLENBQUM7U0FDcEI7UUFFRCxNQUFNLENBQUMsR0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7UUFDckUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN6QixDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDN0IsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRU0sTUFBTSxDQUFDLGVBQWU7UUFDekIsT0FBTyxVQUFVLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCwySEFBMkg7SUFDcEgsTUFBTSxDQUFDLDRDQUE0QztRQUN0RCxNQUFNLE1BQU0sR0FBWSxFQUFFLENBQUM7UUFFM0IsSUFBSSxZQUFZLEdBQVcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqRCxLQUFLLElBQUksQ0FBQyxHQUFXLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2pDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFDdEMsWUFBWSxHQUFHLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7U0FDekQ7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRU0sTUFBTSxDQUFDLGlCQUFpQixDQUFDLElBQVU7UUFDdEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDN0IsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUNELElBQUksUUFBYyxDQUFDO1FBQ25CLE1BQU0sU0FBUyxHQUFXLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDN0MsSUFBSSxTQUFTLEtBQUssQ0FBQyxFQUFFO1lBQ2pCLFFBQVEsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM3QjthQUFNO1lBQ0gsUUFBUSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFCLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM1QztRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7SUFFTSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBVTtRQUNyQyxNQUFNLGNBQWMsR0FBUyxTQUFTLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0QsTUFBTSxhQUFhLEdBQVMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDckQsYUFBYSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDcEQsT0FBTyxhQUFhLENBQUM7SUFDekIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFVO1FBQ3ZDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzdCLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxNQUFNLElBQUksR0FBVyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDeEMsTUFBTSxLQUFLLEdBQVcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU0sTUFBTSxDQUFDLGlCQUFpQixDQUFDLElBQVU7UUFDdEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDN0IsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUNELE1BQU0sSUFBSSxHQUFXLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN4QyxNQUFNLEtBQUssR0FBVyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdEMsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRU0sTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFXLEVBQUUsS0FBVztRQUM3QyxJQUFJLE1BQU0sR0FBWSxLQUFLLENBQUM7UUFDNUIsSUFBSSxTQUFTLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLFNBQVMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDNUQsTUFBTTtnQkFDRixLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssS0FBSyxDQUFDLE9BQU8sRUFBRTtvQkFDbkMsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLEtBQUssQ0FBQyxRQUFRLEVBQUU7b0JBQ3JDLEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDbkQ7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRU0sTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFpQixFQUFFLE1BQWlCO1FBQzdELE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQztZQUN2RCxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVNLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBVSxFQUFFLE9BQWU7UUFDaEQsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFVLEVBQUUsSUFBWTtRQUMxQyxNQUFNLE1BQU0sR0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUN4QyxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRU0sTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFVLEVBQUUsTUFBYztRQUM5QyxNQUFNLE1BQU0sR0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQztRQUM1QyxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRU0sTUFBTSxDQUFDLHVCQUF1QjtRQUNqQyxNQUFNLFNBQVMsR0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNsRSxJQUFJLFNBQVMsR0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMvRCxJQUFJLE1BQU0sR0FBVyxTQUFTLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUVuRCxNQUFNLFdBQVcsR0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3JDLElBQUksY0FBYyxHQUFZLEtBQUssQ0FBQztRQUNwQyxNQUFNLFNBQVMsR0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ25DLElBQUksWUFBWSxHQUFZLEtBQUssQ0FBQztRQUNsQyxPQUFPLFNBQVMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxTQUFTLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDOUMsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzNDLElBQUksTUFBTSxHQUFHLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFO2dCQUN4QyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO2dCQUN2QyxZQUFZLEdBQUcsSUFBSSxDQUFDO2FBQ3ZCO2lCQUFNLElBQUksTUFBTSxHQUFHLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFO2dCQUMvQyxXQUFXLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO2dCQUN6QyxjQUFjLEdBQUcsSUFBSSxDQUFDO2FBQ3pCO1lBQ0QsTUFBTSxHQUFHLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3ZDLElBQUksY0FBYyxJQUFJLFlBQVksRUFBRTtnQkFDaEMsTUFBTTthQUNUO1NBQ0o7UUFFRCxJQUFJLGNBQWMsSUFBSSxZQUFZLEVBQUU7WUFDaEMsT0FBTztnQkFDSCxLQUFLLEVBQUUsSUFBSSxDQUFDLCtCQUErQixDQUFDLFdBQVcsQ0FBQztnQkFDeEQsR0FBRyxFQUFFLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxTQUFTLENBQUM7YUFDdkQsQ0FBQztTQUNMO2FBQU07WUFDSCxPQUFPLEVBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFDLENBQUMsQ0FBQyxvREFBb0Q7U0FDbEc7SUFDTCxDQUFDO0lBRU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFVO1FBQ2hDLE9BQU8sSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssU0FBUyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7O09BR0c7SUFDSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBVSxFQUFFLEVBQVE7UUFDL0MsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUNkLE9BQU8sR0FBRyxDQUFDO1NBQ2Q7UUFDRCxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVNLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBYSxFQUFFLE9BQWE7UUFDaEQsT0FBTyxDQUFDLE9BQU8sSUFBSSxPQUFPO1lBQ3RCLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxPQUFPLENBQUMsT0FBTyxFQUFFO2VBQ3BDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsS0FBSyxPQUFPLENBQUMsUUFBUSxFQUFFO2VBQ3pDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsS0FBSyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRU0sTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFVLEVBQUUsU0FBZSxFQUFFLE9BQWEsRUFBRSxXQUFvQixJQUFJO1FBQzFGLElBQUksU0FBUyxJQUFJLE9BQU8sRUFBRTtZQUN0QixJQUFJLFFBQVEsRUFBRTtnQkFDVixPQUFPLENBQUMsSUFBSSxHQUFHLFNBQVMsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUM7YUFDL0M7aUJBQU07Z0JBQ0gsTUFBTSxlQUFlLEdBQVcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUMvRCxtQkFBbUIsR0FBVyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQ3RFLGlCQUFpQixHQUFXLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDdkUsT0FBTyxlQUFlLElBQUksbUJBQW1CLElBQUksZUFBZSxJQUFJLGlCQUFpQixDQUFDO2FBQ3pGO1NBQ0o7SUFDTCxDQUFDO0lBRU0sTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFVO1FBQzdCLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU0sTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFVO1FBQzdCLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFVO1FBQzVCLE1BQU0sS0FBSyxHQUFTLElBQUksSUFBSSxFQUFFLENBQUM7UUFDL0IsT0FBTyxTQUFTLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQseUZBQXlGO0lBQ2xGLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxJQUFVLEVBQUUsTUFBYztRQUMvRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sVUFBVSxHQUFXLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pELE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxxSEFBcUg7SUFDOUcsTUFBTSxDQUFDLDJCQUEyQixDQUFDLGVBQXVCLEVBQUUsWUFBb0IsS0FBSztRQUN4RixJQUFJLFNBQVMsR0FBVyxlQUFlLENBQUM7UUFDeEMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQztRQUN6RCxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFeEMsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxJQUFzQjtRQUNsRSxJQUFJLElBQUksWUFBWSxTQUFTLEVBQUU7WUFDM0IsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ3BDO1lBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDbEM7U0FDSjthQUFNLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksWUFBWSxJQUFJLENBQUMsRUFBRTtZQUN6QyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQzdCO0lBQ0wsQ0FBQztJQUVPLE1BQU0sQ0FBQywrQkFBK0IsQ0FBQyxLQUFXLEVBQUUsYUFBcUIsT0FBTztRQUNwRixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1IsT0FBTyxFQUFFLENBQUM7U0FDYjtRQUVELE1BQU0sS0FBSyxHQUFXLEtBQUssQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDN0YsTUFBTSxPQUFPLEdBQVcsS0FBSyxDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNyRyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDaEYsQ0FBQzs7QUE5UnNCLDZCQUFtQixHQUFXLHVCQUF1QixDQUFDO0FBQy9ELGtCQUFRLEdBQWEsSUFBSSxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge01vbnRofSBmcm9tIFwiLi4vZW51bS9tb250aC5lbnVtXCI7XHJcbmltcG9ydCB7QUxMX01PTlRIU30gZnJvbSBcIi4uL21vZGVsL2NvbnN0YW50L2FsbC1tb250aHNcIjtcclxuaW1wb3J0IHtub3ROaWxsfSBmcm9tIFwiLi9mdW5jdGlvbi9ub3QtbmlsbC5mdW5jdGlvblwiO1xyXG5pbXBvcnQgKiBhcyBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xyXG5pbXBvcnQge01vbWVudH0gZnJvbSBcIm1vbWVudFwiO1xyXG5pbXBvcnQge0RhdGVQaXBlfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7RGF0ZVJhbmdlfSBmcm9tIFwiLi4vbW9kZWwvZGF0ZS1yYW5nZVwiO1xyXG5cclxuRGF0ZS5wcm90b3R5cGUudG9KU09OID0gZnVuY3Rpb24oKSB7XHJcbiAgICByZXR1cm4gbW9tZW50KHRoaXMpLmZvcm1hdCgnWVlZWS1NTS1ERFtUXUhIOm1tOnNzJyk7XHJcbn1cclxuXHJcbi8vIHN0YXRpYyB1dGlsaXR5IGZ1bmN0aW9uIGhvbGRlciByZWxhdGVkIHRvIGRhdGVzXHJcbmV4cG9ydCBjbGFzcyBEYXRlVXRpbHMge1xyXG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBCQUNLRU5EX0RBVEVfRk9STUFUOiBzdHJpbmcgPSAnWVlZWS1NTS1ERFtUXUhIOm1tOnNzJztcclxuICAgIHB1YmxpYyBzdGF0aWMgZGF0ZVBpcGU6IERhdGVQaXBlID0gbmV3IERhdGVQaXBlKCdzaG9ydERhdGUnKTtcclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIE5vd0FzU3RyaW5nKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIERhdGVVdGlscy5QYXJzZURhdGUobmV3IERhdGUoKSwgRGF0ZVV0aWxzLkJBQ0tFTkRfREFURV9GT1JNQVQpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgUGFyc2VEYXRlKGRhdGU6IERhdGUsIGZvcm1hdDogc3RyaW5nID0gXCJkLW0teVwiKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAoIWRhdGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBkYXk6IHN0cmluZyA9IChcIjBcIiArIGRhdGUuZ2V0RGF0ZSgpKS5zbGljZSgtMik7XHJcbiAgICAgICAgY29uc3QgbW9udGg6IHN0cmluZyA9IChcIjBcIiArIChkYXRlLmdldE1vbnRoKCkgKyAxKSkuc2xpY2UoLTIpO1xyXG4gICAgICAgIGNvbnN0IHllYXI6IHN0cmluZyA9IGRhdGUuZ2V0RnVsbFllYXIoKSArIFwiXCI7XHJcblxyXG4gICAgICAgIGNvbnN0IGZvcm1hdFBhcnRzOiBzdHJpbmdbXSA9IGZvcm1hdC5zcGxpdChcIi1cIik7XHJcbiAgICAgICAgY29uc3QgZGF0ZVBhcnRzOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuXHJcbiAgICAgICAgZm9yIChsZXQgaTogbnVtYmVyID0gMCwgbDogbnVtYmVyID0gZm9ybWF0UGFydHMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XHJcbiAgICAgICAgICAgIHN3aXRjaCAoZm9ybWF0UGFydHNbaV0pIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgXCJkXCIgOlxyXG4gICAgICAgICAgICAgICAgY2FzZSBcIkREXCIgOlxyXG4gICAgICAgICAgICAgICAgICAgIGRhdGVQYXJ0cy5wdXNoKGRheSk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFwibVwiIDpcclxuICAgICAgICAgICAgICAgIGNhc2UgXCJNTVwiIDpcclxuICAgICAgICAgICAgICAgICAgICBkYXRlUGFydHMucHVzaChtb250aCk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIFwieVwiIDpcclxuICAgICAgICAgICAgICAgIGNhc2UgXCJZWVlZXCIgOlxyXG4gICAgICAgICAgICAgICAgICAgIGRhdGVQYXJ0cy5wdXNoKHllYXIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZGF0ZVBhcnRzLmpvaW4oXCItXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgR2V0V2Vla051bWJlcihkYXRlOiBEYXRlKTogbnVtYmVyIHtcclxuICAgICAgICBkYXRlID0gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkpO1xyXG4gICAgICAgIGRhdGUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XHJcbiAgICAgICAgZGF0ZS5zZXREYXRlKGRhdGUuZ2V0RGF0ZSgpICsgNCAtIChkYXRlLmdldERheSgpIHx8IDcpKTtcclxuICAgICAgICByZXR1cm4gTWF0aC5jZWlsKCgoKGRhdGUuZ2V0VGltZSgpIC0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCAwLCAxKS5nZXRUaW1lKCkpIC8gOC42NGU3KSArIDEpIC8gNyk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gUmV0dXJucyB0aGUgbnVtYmVyIG9mIGRheXMgZnJvbSBub3csIGZvciB0aGUgZ2l2ZW4gZGF0ZSBpbiB0aGUgZnV0dXJlLiBSZXR1cm5zIG5lZ2F0aXZlIGRheXMgaWYgZ2l2ZW4gZGF0ZSBpcyBpbiB0aGUgcGFzdCBmcm9tIG5vdy5cclxuICAgIHB1YmxpYyBzdGF0aWMgR2V0RGF5c0Zyb21Ob3coZGF0ZTogRGF0ZSk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIERhdGVVdGlscy5HZXREYXlEaWZmZXJlbmNlKG5ldyBEYXRlKERhdGUubm93KCkpLCBkYXRlKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0FzRGF0ZShzdHI6IHN0cmluZywgZm9ybWF0OiBzdHJpbmcgPSBEYXRlVXRpbHMuQkFDS0VORF9EQVRFX0ZPUk1BVCk6IERhdGUge1xyXG4gICAgICAgIGlmIChub3ROaWxsKHN0cikpIHtcclxuICAgICAgICAgICAgaWYgKCFpc05hTihOdW1iZXIoc3RyKSkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShzdHIpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdGltZTogYW55ID0gbW9tZW50KHN0ciwgZm9ybWF0LCB0cnVlKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aW1lLmlzVmFsaWQoKSA/IG5ldyBEYXRlKHRpbWUpIDogdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBNb21lbnRUb0RhdGUodGltZTogTW9tZW50KTogRGF0ZSB7XHJcbiAgICAgICAgaWYgKCF0aW1lIHx8ICF0aW1lLmlzVmFsaWQoKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZDogRGF0ZSA9IG5ldyBEYXRlKHRpbWUuZm9ybWF0KERhdGVVdGlscy5CQUNLRU5EX0RBVEVfRk9STUFUKSk7XHJcbiAgICAgICAgZC5zZXRIb3Vycyh0aW1lLmhvdXJzKCkpO1xyXG4gICAgICAgIGQuc2V0TWludXRlcyh0aW1lLm1pbnV0ZXMoKSk7XHJcbiAgICAgICAgZC5zZXRTZWNvbmRzKHRpbWUuc2Vjb25kcygpKTtcclxuICAgICAgICByZXR1cm4gZDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIEdldEN1cnJlbnRNb250aCgpOiBNb250aCB7XHJcbiAgICAgICAgcmV0dXJuIEFMTF9NT05USFNbbmV3IERhdGUoKS5nZXRNb250aCgpXTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBAcmV0dXJucyBlLmcuIFtcIkZFQlJVQVJJXCIsIFwiTUFSQ0hcIiwgLi5dIGlmIGl0J3MgRmVicnVhcmkgdG9kYXksIG90aGVyd2lzZSBlLmcuIFtcIkFQUklMXCIsIFwiTUFZXCIsIC4uLl0gaWYgaXQncyBBcHJpbCB0b2RheVxyXG4gICAgcHVibGljIHN0YXRpYyBHZXQxMk1vbnRoc0FycmF5V2l0aEZpcnN0TW9udGhJc0N1cnJlbnRNb250aCgpOiBNb250aFtdIHtcclxuICAgICAgICBjb25zdCBhbnN3ZXI6IE1vbnRoW10gPSBbXTtcclxuXHJcbiAgICAgICAgbGV0IG1vbnRoTnJUb0FkZDogbnVtYmVyID0gbmV3IERhdGUoKS5nZXRNb250aCgpO1xyXG4gICAgICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCAxMjsgaSsrKSB7XHJcbiAgICAgICAgICAgIGFuc3dlci5wdXNoKEFMTF9NT05USFNbbW9udGhOclRvQWRkXSk7XHJcbiAgICAgICAgICAgIG1vbnRoTnJUb0FkZCA9IChtb250aE5yVG9BZGQgKyAxKSAlIEFMTF9NT05USFMubGVuZ3RoO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGFuc3dlcjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIEdldEZpcnN0RGF5T2ZXZWVrKGRhdGU6IERhdGUpOiBEYXRlIHtcclxuICAgICAgICBpZiAoIURhdGVVdGlscy5fVmFsaWREYXRlKGRhdGUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgZmlyc3REYXk6IERhdGU7XHJcbiAgICAgICAgY29uc3QgZGF5T2ZXZWVrOiBudW1iZXIgPSBkYXRlLmdldERheSgpIHx8IDc7XHJcbiAgICAgICAgaWYgKGRheU9mV2VlayA9PT0gMSkge1xyXG4gICAgICAgICAgICBmaXJzdERheSA9IG5ldyBEYXRlKGRhdGUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGZpcnN0RGF5ID0gbmV3IERhdGUoZGF0ZSk7XHJcbiAgICAgICAgICAgIGZpcnN0RGF5LnNldEhvdXJzKC0yNCAqIChkYXlPZldlZWsgLSAxKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmaXJzdERheTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIEdldExhc3REYXlPZldlZWsoZGF0ZTogRGF0ZSk6IERhdGUge1xyXG4gICAgICAgIGNvbnN0IGZpcnN0RGF5T2ZXZWVrOiBEYXRlID0gRGF0ZVV0aWxzLkdldEZpcnN0RGF5T2ZXZWVrKGRhdGUpO1xyXG4gICAgICAgIGNvbnN0IGxhc3REYXlPZldlZWs6IERhdGUgPSBuZXcgRGF0ZShmaXJzdERheU9mV2Vlayk7XHJcbiAgICAgICAgbGFzdERheU9mV2Vlay5zZXREYXRlKGZpcnN0RGF5T2ZXZWVrLmdldERhdGUoKSArIDYpO1xyXG4gICAgICAgIHJldHVybiBsYXN0RGF5T2ZXZWVrO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgR2V0Rmlyc3REYXlPZk1vbnRoKGRhdGU6IERhdGUpOiBEYXRlIHtcclxuICAgICAgICBpZiAoIURhdGVVdGlscy5fVmFsaWREYXRlKGRhdGUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB5ZWFyOiBudW1iZXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XHJcbiAgICAgICAgY29uc3QgbW9udGg6IG51bWJlciA9IGRhdGUuZ2V0TW9udGgoKTtcclxuICAgICAgICByZXR1cm4gbmV3IERhdGUoeWVhciwgbW9udGgsIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgR2V0TGFzdERheU9mTW9udGgoZGF0ZTogRGF0ZSk6IERhdGUge1xyXG4gICAgICAgIGlmICghRGF0ZVV0aWxzLl9WYWxpZERhdGUoZGF0ZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHllYXI6IG51bWJlciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcclxuICAgICAgICBjb25zdCBtb250aDogbnVtYmVyID0gZGF0ZS5nZXRNb250aCgpO1xyXG4gICAgICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCBtb250aCArIDEsIDApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgRGF0ZXNFcXVhbChkYXRlMTogRGF0ZSwgZGF0ZTI6IERhdGUpOiBib29sZWFuIHtcclxuICAgICAgICBsZXQgcmVzdWx0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKERhdGVVdGlscy5fVmFsaWREYXRlKGRhdGUxKSAmJiBEYXRlVXRpbHMuX1ZhbGlkRGF0ZShkYXRlMikpIHtcclxuICAgICAgICAgICAgcmVzdWx0ID1cclxuICAgICAgICAgICAgICAgIGRhdGUxLmdldERhdGUoKSA9PT0gZGF0ZTIuZ2V0RGF0ZSgpICYmXHJcbiAgICAgICAgICAgICAgICBkYXRlMS5nZXRNb250aCgpID09PSBkYXRlMi5nZXRNb250aCgpICYmXHJcbiAgICAgICAgICAgICAgICBkYXRlMS5nZXRGdWxsWWVhcigpID09PSBkYXRlMi5nZXRGdWxsWWVhcigpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgRGF0ZVJhbmdlRXF1YWwoZGF0ZXMxOiBEYXRlUmFuZ2UsIGRhdGVzMjogRGF0ZVJhbmdlKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICh0aGlzLkRhdGVzRXF1YWwoZGF0ZXMxLnN0YXJ0RGF0ZSwgZGF0ZXMyLnN0YXJ0RGF0ZSkgJiZcclxuICAgICAgICAgICAgdGhpcy5EYXRlc0VxdWFsKGRhdGVzMS5lbmREYXRlLCBkYXRlczIuZW5kRGF0ZSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgQWRkTWludXRlcyhkYXRlOiBEYXRlLCBtaW51dGVzOiBudW1iZXIpOiBEYXRlIHtcclxuICAgICAgICByZXR1cm4gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkgKyAobWludXRlcyAqIDYwMDAwKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBBZGREYXlzKGRhdGU6IERhdGUsIGRheXM6IG51bWJlcik6IERhdGUge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdDogRGF0ZSA9IG5ldyBEYXRlKGRhdGUpO1xyXG4gICAgICAgIHJlc3VsdC5zZXREYXRlKHJlc3VsdC5nZXREYXRlKCkgKyBkYXlzKTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgQWRkTW9udGhzKGRhdGU6IERhdGUsIG1vbnRoczogbnVtYmVyKTogRGF0ZSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0OiBEYXRlID0gbmV3IERhdGUoZGF0ZSk7XHJcbiAgICAgICAgcmVzdWx0LnNldE1vbnRoKHJlc3VsdC5nZXRNb250aCgpICsgbW9udGhzKTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgRGV0ZXJtaW5lRFNUQnJlYWtwb2ludHMoKTogeyBzdGFydDogc3RyaW5nLCBlbmQ6IHN0cmluZyB9IHtcclxuICAgICAgICBjb25zdCBlbmRPZlllYXI6IERhdGUgPSBuZXcgRGF0ZShuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCksIDExLCAxKTtcclxuICAgICAgICBsZXQgY2hlY2tEYXRlOiBEYXRlID0gbmV3IERhdGUobmV3IERhdGUoKS5nZXRGdWxsWWVhcigpLCAwLCAxKTtcclxuICAgICAgICBsZXQgb2Zmc2V0OiBudW1iZXIgPSBjaGVja0RhdGUuZ2V0VGltZXpvbmVPZmZzZXQoKTtcclxuXHJcbiAgICAgICAgY29uc3QgcGVyaW9kU3RhcnQ6IERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICAgIGxldCBwZXJpb2RTdGFydFNldDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgICAgIGNvbnN0IHBlcmlvZEVuZDogRGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgbGV0IHBlcmlvZEVuZFNldDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgICAgIHdoaWxlIChjaGVja0RhdGUuZ2V0VGltZSgpIDwgZW5kT2ZZZWFyLmdldFRpbWUoKSkge1xyXG4gICAgICAgICAgICBjaGVja0RhdGUgPSB0aGlzLkFkZE1pbnV0ZXMoY2hlY2tEYXRlLCA2MCk7XHJcbiAgICAgICAgICAgIGlmIChvZmZzZXQgPCBjaGVja0RhdGUuZ2V0VGltZXpvbmVPZmZzZXQoKSkge1xyXG4gICAgICAgICAgICAgICAgcGVyaW9kRW5kLnNldFRpbWUoY2hlY2tEYXRlLmdldFRpbWUoKSk7XHJcbiAgICAgICAgICAgICAgICBwZXJpb2RFbmRTZXQgPSB0cnVlO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKG9mZnNldCA+IGNoZWNrRGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpKSB7XHJcbiAgICAgICAgICAgICAgICBwZXJpb2RTdGFydC5zZXRUaW1lKGNoZWNrRGF0ZS5nZXRUaW1lKCkpO1xyXG4gICAgICAgICAgICAgICAgcGVyaW9kU3RhcnRTZXQgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIG9mZnNldCA9IGNoZWNrRGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpO1xyXG4gICAgICAgICAgICBpZiAocGVyaW9kU3RhcnRTZXQgJiYgcGVyaW9kRW5kU2V0KSB7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHBlcmlvZFN0YXJ0U2V0ICYmIHBlcmlvZEVuZFNldCkge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgc3RhcnQ6IHRoaXMuX0RhdGVUb1RpbWVTdHJpbmdXaXRoRGF0ZUZvcm1hdChwZXJpb2RTdGFydCksXHJcbiAgICAgICAgICAgICAgICBlbmQ6IHRoaXMuX0RhdGVUb1RpbWVTdHJpbmdXaXRoRGF0ZUZvcm1hdChwZXJpb2RFbmQpXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIHtzdGFydDogdW5kZWZpbmVkLCBlbmQ6IHVuZGVmaW5lZH07IC8vIGltcG9ydGFudCBvdGhlcndpc2Ugd2UgcmV0dXJuIG5ldyBEYXRlKCkgZm9yIGJvdGhcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgX1ZhbGlkRGF0ZShkYXRlOiBEYXRlKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGUgIT09IG51bGwgJiYgZGF0ZSAhPT0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSB0d28gZ2l2ZW4gZGF5cyBhcyB0aGUgbnVtYmVyIG9mIGRheXMsIGluIGZsb2F0IHByZWNpc2lvbiAoZGF0ZSB0byAtIGRhdGUgZnJvbSkuXHJcbiAgICAgKiBSZXR1cm5zIG5lZ2F0aXZlIHZhbHVlcyBvZiB0aGUgJ2Zyb20nIGRhdGUgaXMgbGF0ZXIgdGhhbiBpbiB0aW1lIHRoYW4gdGhlICd0bycgZGF0ZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBHZXREYXlEaWZmZXJlbmNlKGZyb206IERhdGUsIHRvOiBEYXRlKTogbnVtYmVyIHtcclxuICAgICAgICBpZiAoIWZyb20gfHwgIXRvKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBOYU47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiAoKHRvLmdldFRpbWUoKSAtIGZyb20uZ2V0VGltZSgpKSAvIDEwMDAgLyA2MCAvIDYwIC8gMjQpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgSXNTYW1lRGF5KGRhdGVPbmU6IERhdGUsIGRhdGVUd286IERhdGUpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gKGRhdGVPbmUgJiYgZGF0ZVR3byAmJlxyXG4gICAgICAgICAgICBkYXRlT25lLmdldERhdGUoKSA9PT0gZGF0ZVR3by5nZXREYXRlKClcclxuICAgICAgICAgICAgJiYgZGF0ZU9uZS5nZXRNb250aCgpID09PSBkYXRlVHdvLmdldE1vbnRoKClcclxuICAgICAgICAgICAgJiYgZGF0ZU9uZS5nZXRGdWxsWWVhcigpID09PSBkYXRlVHdvLmdldEZ1bGxZZWFyKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgSXNJbkJldHdlZW4oZGF0ZTogRGF0ZSwgc3RhcnREYXRlOiBEYXRlLCBlbmREYXRlOiBEYXRlLCB3aXRoVGltZTogYm9vbGVhbiA9IHRydWUpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoc3RhcnREYXRlICYmIGVuZERhdGUpIHtcclxuICAgICAgICAgICAgaWYgKHdpdGhUaW1lKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gKGRhdGUgPiBzdGFydERhdGUgJiYgZGF0ZSA8IGVuZERhdGUpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0ZVdpdGhvdXRUaW1lOiBudW1iZXIgPSBuZXcgRGF0ZShkYXRlKS5zZXRIb3VycygwLCAwLCAwLCAwKSxcclxuICAgICAgICAgICAgICAgICAgICBkYXRlRnJvbVdpdGhvdXRUaW1lOiBudW1iZXIgPSBuZXcgRGF0ZShzdGFydERhdGUpLnNldEhvdXJzKDAsIDAsIDAsIDApLFxyXG4gICAgICAgICAgICAgICAgICAgIGRhdGVUb1dpdGhvdXRUaW1lOiBudW1iZXIgPSBuZXcgRGF0ZShlbmREYXRlKS5zZXRIb3VycygwLCAwLCAwLCAwKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRlV2l0aG91dFRpbWUgPj0gZGF0ZUZyb21XaXRob3V0VGltZSAmJiBkYXRlV2l0aG91dFRpbWUgPD0gZGF0ZVRvV2l0aG91dFRpbWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBJc01vbmRheShkYXRlOiBEYXRlKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGUuZ2V0RGF5KCkgPT09IDE7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBJc1N1bmRheShkYXRlOiBEYXRlKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGUuZ2V0RGF5KCkgPT09IDA7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBJc1RvZGF5KGRhdGU6IERhdGUpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCB0b2RheTogRGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgcmV0dXJuIERhdGVVdGlscy5Jc1NhbWVEYXkodG9kYXksIGRhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFJldHVybnMgZGF0ZSBmb3JtYXQgbGlrZSBpdCB3b3VsZCB3aGVuIHVzaW5nIGEgcGlwZSBpbiB0aGUgdGVtcGxldGUsIGllOiBcIjEgb2t0LiAyMDIwXCJcclxuICAgIHB1YmxpYyBzdGF0aWMgUGFyc2VEYXRlSW5TaG9ydERhdGVGb3JtYXQoZGF0ZTogRGF0ZSwgbG9jYWxlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHRoaXMuZGF0ZVBpcGUgPSBuZXcgRGF0ZVBpcGUobG9jYWxlKTtcclxuICAgICAgICBjb25zdCBwYXJzZWREYXRlOiBzdHJpbmcgPSB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShkYXRlKTtcclxuICAgICAgICByZXR1cm4gcGFyc2VkRGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBUcmFuc2Zvcm1zIGEgc3RyaW5nIHRoYXQgaXMgZm9ybWF0dGVkIGxpa2UgXCInMTctMDgtMjAxNCc8PT88PScxNy0wOC0yMDIxJ1wiIGludG8gXCInMTctMDgtMjAxNCcgVW50aWxsICcxNy0wOC0yMDIxJ1wiXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldEZvcm1hdHRlZERhdGVSYW5nZVN0cmluZyhkYXRlUmFuZ2VTdHJpbmc6IHN0cmluZywgc2VwYXJhdG9yOiBzdHJpbmcgPSBcIiAtIFwiKTogc3RyaW5nIHtcclxuICAgICAgICBsZXQgbmV3U3RyaW5nOiBzdHJpbmcgPSBkYXRlUmFuZ2VTdHJpbmc7XHJcbiAgICAgICAgbmV3U3RyaW5nID0gbmV3U3RyaW5nLnJlcGxhY2UoXCI8PT88PVwiLCBgICR7c2VwYXJhdG9yfSBgKTtcclxuICAgICAgICBuZXdTdHJpbmcgPSBuZXdTdHJpbmcucmVwbGFjZSgvJy9nLCBcIlwiKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIG5ld1N0cmluZztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIFNldERhdGVPckRhdGVSYW5nZU9iamVjdEhvdXJzWmVybyhkYXRlOiBEYXRlIHwgRGF0ZVJhbmdlKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGRhdGUgaW5zdGFuY2VvZiBEYXRlUmFuZ2UpIHtcclxuICAgICAgICAgICAgaWYgKGRhdGUuc3RhcnREYXRlKSB7XHJcbiAgICAgICAgICAgICAgICBkYXRlLnN0YXJ0RGF0ZS5zZXRIb3VycygwLCAwLCAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoZGF0ZS5lbmREYXRlKSB7XHJcbiAgICAgICAgICAgICAgICBkYXRlLmVuZERhdGUuc2V0SG91cnMoMCwgMCwgMCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKCEhZGF0ZSAmJiAoZGF0ZSBpbnN0YW5jZW9mIERhdGUpKSB7XHJcbiAgICAgICAgICAgIGRhdGUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIF9EYXRlVG9UaW1lU3RyaW5nV2l0aERhdGVGb3JtYXQodmFsdWU6IERhdGUsIGRhdGVGb3JtYXQ6IHN0cmluZyA9IFwiZC1tLXlcIik6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGhvdXJzOiBzdHJpbmcgPSB2YWx1ZS5nZXRIb3VycygpIDwgMTAgPyBcIjBcIiArIHZhbHVlLmdldEhvdXJzKCkgOiBcIlwiICsgdmFsdWUuZ2V0SG91cnMoKTtcclxuICAgICAgICBjb25zdCBtaW51dGVzOiBzdHJpbmcgPSB2YWx1ZS5nZXRNaW51dGVzKCkgPCAxMCA/IFwiMFwiICsgdmFsdWUuZ2V0TWludXRlcygpIDogXCJcIiArIHZhbHVlLmdldE1pbnV0ZXMoKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5QYXJzZURhdGUodmFsdWUsIGRhdGVGb3JtYXQpICsgXCIgXCIgKyBbaG91cnMsIG1pbnV0ZXNdLmpvaW4oXCI6XCIpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { CoDomainValue } from "@colijnit/mainapi/build/model/co-domain-value.bo";
|
|
2
|
+
import { NumberUtils } from "./number-utils";
|
|
3
|
+
import { StringUtils } from "./string-utils";
|
|
4
|
+
// @dynamic
|
|
5
|
+
export class EnumUtils {
|
|
6
|
+
// Returns a new array with all string values (not keys) of given string enum class.
|
|
7
|
+
static StringEnumToArray(clazz) {
|
|
8
|
+
const asArray = [];
|
|
9
|
+
const keys = Object.keys(clazz);
|
|
10
|
+
for (let i = 0, len = keys.length; i < len; i++) {
|
|
11
|
+
asArray.push(clazz[keys[i]]);
|
|
12
|
+
}
|
|
13
|
+
return asArray;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Returns a single string representation of given string enum class
|
|
17
|
+
* @param clazz
|
|
18
|
+
* @returns {string} eg "input-lov-slideout, financial-customer-group-select" for a given clazz of InputLovSlideoutComponentSelectors
|
|
19
|
+
*/
|
|
20
|
+
static StringEnumToSingleString(clazz) {
|
|
21
|
+
return StringEnumToSingleString(clazz);
|
|
22
|
+
}
|
|
23
|
+
// Get the number values from an enum
|
|
24
|
+
static GetNumberEnumValues(numberEnumClass) {
|
|
25
|
+
return this.GetObjValues(numberEnumClass).filter(value => NumberUtils.IsNumber(value));
|
|
26
|
+
}
|
|
27
|
+
// Get the the property object value names in string format from the enum
|
|
28
|
+
static GetStringEnumValues(stringEnumClass) {
|
|
29
|
+
return this.GetObjValues(stringEnumClass).filter(value => StringUtils.IsString(value));
|
|
30
|
+
}
|
|
31
|
+
static GetObjValues(numberEnumClass) {
|
|
32
|
+
return Object.keys(numberEnumClass).map(key => numberEnumClass[key]);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Returns the enum in object format to make handling easier
|
|
36
|
+
* Works for Enums with the following format:
|
|
37
|
+
* foo: 1
|
|
38
|
+
* bar: 2
|
|
39
|
+
* etc...
|
|
40
|
+
* @param enumClass
|
|
41
|
+
* @returns {Object}
|
|
42
|
+
*/
|
|
43
|
+
static createObjectFromEnum(enumClass) {
|
|
44
|
+
// const objectifiedEnum: { refNumber: number; name: string }[] = [];
|
|
45
|
+
const objectifiedEnum = [];
|
|
46
|
+
for (const enumItem in enumClass) {
|
|
47
|
+
if (typeof enumClass[enumItem] === "number") {
|
|
48
|
+
objectifiedEnum.push({ key: enumClass[enumItem], value: enumItem });
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return objectifiedEnum;
|
|
52
|
+
}
|
|
53
|
+
static getStringEnumKeysArray(enumType) {
|
|
54
|
+
const members = Object.keys(enumType);
|
|
55
|
+
if (!EnumUtils.isNumeral(enumType)) {
|
|
56
|
+
return members;
|
|
57
|
+
}
|
|
58
|
+
const keys = [];
|
|
59
|
+
members.forEach((x) => {
|
|
60
|
+
const parsedValue = parseInt(x, 10);
|
|
61
|
+
if (Number.isNaN(parsedValue)) {
|
|
62
|
+
keys.push(x);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
return keys;
|
|
66
|
+
}
|
|
67
|
+
static buildPromiseDomainValueListFromEnumClass(enumClass, dictionary, keysAsDescription = false) {
|
|
68
|
+
return new Promise((resolve, reject) => {
|
|
69
|
+
try {
|
|
70
|
+
resolve(EnumUtils.buildDomainValueListFromEnumClass(enumClass, dictionary, keysAsDescription));
|
|
71
|
+
}
|
|
72
|
+
catch (e) {
|
|
73
|
+
reject();
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
static buildDomainValueListFromEnumClass(enumClass, dictionary, keysAsDescription = false) {
|
|
78
|
+
const collection = [];
|
|
79
|
+
if (keysAsDescription) {
|
|
80
|
+
const enumKeys = EnumUtils.getStringEnumKeysArray(enumClass);
|
|
81
|
+
enumKeys.forEach((key, index) => {
|
|
82
|
+
const domainObjectForLov = new CoDomainValue();
|
|
83
|
+
domainObjectForLov.code = enumClass[key];
|
|
84
|
+
domainObjectForLov.description = dictionary.get(key);
|
|
85
|
+
domainObjectForLov.sequence = index;
|
|
86
|
+
collection.push(domainObjectForLov);
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
EnumUtils.StringEnumToArray(enumClass).forEach((strEnumVal, index) => {
|
|
91
|
+
const domainObjectForLov = new CoDomainValue();
|
|
92
|
+
domainObjectForLov.code = strEnumVal;
|
|
93
|
+
domainObjectForLov.description = dictionary.get(strEnumVal);
|
|
94
|
+
domainObjectForLov.sequence = index;
|
|
95
|
+
collection.push(domainObjectForLov);
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
return collection;
|
|
99
|
+
}
|
|
100
|
+
static getKeyByValue(enumType, enumValue) {
|
|
101
|
+
return Object.keys(enumType)[Object.values(enumType).indexOf(enumValue)];
|
|
102
|
+
}
|
|
103
|
+
static isNumeral(enumType) {
|
|
104
|
+
const members = Object.keys(enumType);
|
|
105
|
+
if (!members.some((x) => true)) {
|
|
106
|
+
throw new TypeError("Invalid enumeration type.");
|
|
107
|
+
}
|
|
108
|
+
let parsedCount = 0;
|
|
109
|
+
members.forEach((x) => {
|
|
110
|
+
const parsedValue = parseInt(x, 10);
|
|
111
|
+
if (!Number.isNaN(parsedValue)) {
|
|
112
|
+
parsedCount++;
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
return parsedCount === members.length / 2;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
// Outside the class because it's used to generate component selectors, and aot can't call statics.
|
|
119
|
+
export function StringEnumToSingleString(clazz) {
|
|
120
|
+
let str = "";
|
|
121
|
+
const keys = Object.keys(clazz);
|
|
122
|
+
for (let i = 0, len = keys.length; i < len; i++) {
|
|
123
|
+
str += clazz[keys[i]] + ", ";
|
|
124
|
+
}
|
|
125
|
+
str = StringUtils.RemoveLastChars(str, 2);
|
|
126
|
+
return str;
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL2xpYi91dGlscy9lbnVtLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUMvRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLFdBQVc7QUFDWCxNQUFNLE9BQU8sU0FBUztJQUNsQixvRkFBb0Y7SUFDN0UsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEtBQVU7UUFDdEMsTUFBTSxPQUFPLEdBQVUsRUFBRSxDQUFDO1FBRTFCLE1BQU0sSUFBSSxHQUFhLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUMsS0FBSyxJQUFJLENBQUMsR0FBVyxDQUFDLEVBQUUsR0FBRyxHQUFXLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM3RCxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2hDO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsd0JBQXdCLENBQUMsS0FBVTtRQUM3QyxPQUFPLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxxQ0FBcUM7SUFDOUIsTUFBTSxDQUFDLG1CQUFtQixDQUFDLGVBQW9CO1FBQ2xELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUss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QUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNsQixNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUM1QixXQUFXLEVBQUUsQ0FBQzthQUNqQjtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxXQUFXLEtBQUssT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDOUMsQ0FBQztDQUVKO0FBRUQsbUdBQW1HO0FBQ25HLE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxLQUFVO0lBQy9DLElBQUksR0FBRyxHQUFXLEVBQUUsQ0FBQztJQUVyQixNQUFNLElBQUksR0FBYSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFDLEtBQUssSUFBSSxDQUFDLEdBQVcsQ0FBQyxFQUFFLEdBQUcsR0FBVyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDN0QsR0FBRyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7S0FDaEM7SUFFRCxHQUFHLEdBQUcsV0FBVyxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUMsT0FBTyxHQUFHLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gU3RhdGljIHV0aWxpdHkgZnVuY3Rpb24gaG9sZGVyIHJlbGF0ZWQgdG8gZW51bXMuXHJcbmltcG9ydCB7S2V5VmFsdWVQYWlyfSBmcm9tIFwiLi4vaW50ZXJmYWNlL2tleS12YWx1ZS1wYWlyXCI7XHJcbmltcG9ydCB7Q29Eb21haW5WYWx1ZX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2NvLWRvbWFpbi12YWx1ZS5ib1wiO1xyXG5pbXBvcnQge051bWJlclV0aWxzfSBmcm9tIFwiLi9udW1iZXItdXRpbHNcIjtcclxuaW1wb3J0IHtTdHJpbmdVdGlsc30gZnJvbSBcIi4vc3RyaW5nLXV0aWxzXCI7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gXCIuLi9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZVwiO1xyXG4vLyBAZHluYW1pY1xyXG5leHBvcnQgY2xhc3MgRW51bVV0aWxzIHtcclxuICAgIC8vIFJldHVybnMgYSBuZXcgYXJyYXkgd2l0aCBhbGwgc3RyaW5nIHZhbHVlcyAobm90IGtleXMpIG9mIGdpdmVuIHN0cmluZyBlbnVtIGNsYXNzLlxyXG4gICAgcHVibGljIHN0YXRpYyBTdHJpbmdFbnVtVG9BcnJheShjbGF6ejogYW55KTogc3RyaW5nW10ge1xyXG4gICAgICAgIGNvbnN0IGFzQXJyYXk6IGFueVtdID0gW107XHJcblxyXG4gICAgICAgIGNvbnN0IGtleXM6IHN0cmluZ1tdID0gT2JqZWN0LmtleXMoY2xhenopO1xyXG4gICAgICAgIGZvciAobGV0IGk6IG51bWJlciA9IDAsIGxlbjogbnVtYmVyID0ga2V5cy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICAgICAgICBhc0FycmF5LnB1c2goY2xhenpba2V5c1tpXV0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGFzQXJyYXk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIGEgc2luZ2xlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBnaXZlbiBzdHJpbmcgZW51bSBjbGFzc1xyXG4gICAgICogQHBhcmFtIGNsYXp6XHJcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBlZyBcImlucHV0LWxvdi1zbGlkZW91dCwgZmluYW5jaWFsLWN1c3RvbWVyLWdyb3VwLXNlbGVjdFwiIGZvciBhIGdpdmVuIGNsYXp6IG9mIElucHV0TG92U2xpZGVvdXRDb21wb25lbnRTZWxlY3RvcnNcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBTdHJpbmdFbnVtVG9TaW5nbGVTdHJpbmcoY2xheno6IGFueSk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIFN0cmluZ0VudW1Ub1NpbmdsZVN0cmluZyhjbGF6eik7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gR2V0IHRoZSBudW1iZXIgdmFsdWVzIGZyb20gYW4gZW51bVxyXG4gICAgcHVibGljIHN0YXRpYyBHZXROdW1iZXJFbnVtVmFsdWVzKG51bWJlckVudW1DbGFzczogYW55KTogYW55W10ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLkdldE9ialZhbHVlcyhudW1iZXJFbnVtQ2xhc3MpLmZpbHRlcih2YWx1ZSA9PiBOdW1iZXJVdGlscy5Jc051bWJlcih2YWx1ZSkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEdldCB0aGUgdGhlIHByb3BlcnR5IG9iamVjdCB2YWx1ZSBuYW1lcyBpbiBzdHJpbmcgZm9ybWF0IGZyb20gdGhlIGVudW1cclxuICAgIHB1YmxpYyBzdGF0aWMgR2V0U3RyaW5nRW51bVZhbHVlcyhzdHJpbmdFbnVtQ2xhc3M6IGFueSk6IGFueVtdIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5HZXRPYmpWYWx1ZXMoc3RyaW5nRW51bUNsYXNzKS5maWx0ZXIodmFsdWUgPT4gU3RyaW5nVXRpbHMuSXNTdHJpbmcodmFsdWUpKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIEdldE9ialZhbHVlcyhudW1iZXJFbnVtQ2xhc3M6IGFueSk6IChudW1iZXIgfCBzdHJpbmcpW10ge1xyXG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhudW1iZXJFbnVtQ2xhc3MpLm1hcChrZXkgPT4gbnVtYmVyRW51bUNsYXNzW2tleV0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB0aGUgZW51bSBpbiBvYmplY3QgZm9ybWF0IHRvIG1ha2UgaGFuZGxpbmcgZWFzaWVyXHJcbiAgICAgKiBXb3JrcyBmb3IgRW51bXMgd2l0aCB0aGUgZm9sbG93aW5nIGZvcm1hdDpcclxuICAgICAqIGZvbzogMVxyXG4gICAgICogYmFyOiAyXHJcbiAgICAgKiBldGMuLi5cclxuICAgICAqIEBwYXJhbSBlbnVtQ2xhc3NcclxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlT2JqZWN0RnJvbUVudW0oZW51bUNsYXNzOiBhbnkpOiBLZXlWYWx1ZVBhaXJbXSB7XHJcbiAgICAgICAvLyBjb25zdCBvYmplY3RpZmllZEVudW06IHsgcmVmTnVtYmVyOiBudW1iZXI7IG5hbWU6IHN0cmluZyB9W10gPSBbXTtcclxuICAgICAgICBjb25zdCBvYmplY3RpZmllZEVudW06IEtleVZhbHVlUGFpcltdID0gW107XHJcblxyXG4gICAgICAgIGZvciAoY29uc3QgZW51bUl0ZW0gaW4gZW51bUNsYXNzKSB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZW51bUNsYXNzW2VudW1JdGVtXSA9PT0gXCJudW1iZXJcIikge1xyXG4gICAgICAgICAgICAgICAgb2JqZWN0aWZpZWRFbnVtLnB1c2goe2tleTogPG51bWJlcj5lbnVtQ2xhc3NbZW51bUl0ZW1dLCB2YWx1ZTogZW51bUl0ZW19KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG9iamVjdGlmaWVkRW51bTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldFN0cmluZ0VudW1LZXlzQXJyYXkoZW51bVR5cGU6IG9iamVjdCk6IHN0cmluZ1tdIHtcclxuICAgICAgICBjb25zdCBtZW1iZXJzID0gT2JqZWN0LmtleXMoZW51bVR5cGUpO1xyXG4gICAgICAgIGlmICghRW51bVV0aWxzLmlzTnVtZXJhbChlbnVtVHlwZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG1lbWJlcnM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBrZXlzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgICAgIG1lbWJlcnMuZm9yRWFjaCgoeCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBwYXJzZWRWYWx1ZSA9IHBhcnNlSW50KHgsIDEwKTtcclxuICAgICAgICAgICAgaWYgKE51bWJlci5pc05hTihwYXJzZWRWYWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgIGtleXMucHVzaCh4KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBrZXlzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgIGJ1aWxkUHJvbWlzZURvbWFpblZhbHVlTGlzdEZyb21FbnVtQ2xhc3MoZW51bUNsYXNzOiBhbnksIGRpY3Rpb25hcnk6IERpY3Rpb25hcnlTZXJ2aWNlLCBrZXlzQXNEZXNjcmlwdGlvbjogYm9vbGVhbiA9IGZhbHNlKTogUHJvbWlzZTxDb0RvbWFpblZhbHVlW10+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZShFbnVtVXRpbHMuYnVpbGREb21haW5WYWx1ZUxpc3RGcm9tRW51bUNsYXNzKGVudW1DbGFzcywgZGljdGlvbmFyeSwga2V5c0FzRGVzY3JpcHRpb24pKTtcclxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgcmVqZWN0KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGJ1aWxkRG9tYWluVmFsdWVMaXN0RnJvbUVudW1DbGFzcyhlbnVtQ2xhc3M6IGFueSwgZGljdGlvbmFyeTogRGljdGlvbmFyeVNlcnZpY2UsIGtleXNBc0Rlc2NyaXB0aW9uOiBib29sZWFuID0gZmFsc2UpOiBDb0RvbWFpblZhbHVlW10ge1xyXG4gICAgICAgIGNvbnN0IGNvbGxlY3Rpb246IENvRG9tYWluVmFsdWVbXSA9IFtdO1xyXG5cclxuICAgICAgICBpZiAoa2V5c0FzRGVzY3JpcHRpb24pIHtcclxuICAgICAgICAgICAgY29uc3QgZW51bUtleXM6IHN0cmluZ1tdID0gRW51bVV0aWxzLmdldFN0cmluZ0VudW1LZXlzQXJyYXkoZW51bUNsYXNzKTtcclxuICAgICAgICAgICAgZW51bUtleXMuZm9yRWFjaCgoa2V5OiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGRvbWFpbk9iamVjdEZvckxvdjogQ29Eb21haW5WYWx1ZSA9IG5ldyBDb0RvbWFpblZhbHVlKCk7XHJcbiAgICAgICAgICAgICAgICBkb21haW5PYmplY3RGb3JMb3YuY29kZSA9IGVudW1DbGFzc1trZXldO1xyXG4gICAgICAgICAgICAgICAgZG9tYWluT2JqZWN0Rm9yTG92LmRlc2NyaXB0aW9uID0gZGljdGlvbmFyeS5nZXQoa2V5KTtcclxuICAgICAgICAgICAgICAgIGRvbWFpbk9iamVjdEZvckxvdi5zZXF1ZW5jZSA9IGluZGV4O1xyXG4gICAgICAgICAgICAgICAgY29sbGVjdGlvbi5wdXNoKGRvbWFpbk9iamVjdEZvckxvdik7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIEVudW1VdGlscy5TdHJpbmdFbnVtVG9BcnJheShlbnVtQ2xhc3MpLmZvckVhY2goKHN0ckVudW1WYWw6IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZG9tYWluT2JqZWN0Rm9yTG92OiBDb0RvbWFpblZhbHVlID0gbmV3IENvRG9tYWluVmFsdWUoKTtcclxuICAgICAgICAgICAgICAgIGRvbWFpbk9iamVjdEZvckxvdi5jb2RlID0gc3RyRW51bVZhbDtcclxuICAgICAgICAgICAgICAgIGRvbWFpbk9iamVjdEZvckxvdi5kZXNjcmlwdGlvbiA9IGRpY3Rpb25hcnkuZ2V0KHN0ckVudW1WYWwpO1xyXG4gICAgICAgICAgICAgICAgZG9tYWluT2JqZWN0Rm9yTG92LnNlcXVlbmNlID0gaW5kZXg7XHJcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uLnB1c2goZG9tYWluT2JqZWN0Rm9yTG92KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gY29sbGVjdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldEtleUJ5VmFsdWUoZW51bVR5cGU6IG9iamVjdCwgZW51bVZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhlbnVtVHlwZSlbT2JqZWN0LnZhbHVlcyhlbnVtVHlwZSkuaW5kZXhPZihlbnVtVmFsdWUpXTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBpc051bWVyYWwoZW51bVR5cGU6IG9iamVjdCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IG1lbWJlcnMgPSBPYmplY3Qua2V5cyhlbnVtVHlwZSk7XHJcbiAgICAgICAgaWYgKCFtZW1iZXJzLnNvbWUoKHgpID0+IHRydWUpKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGVudW1lcmF0aW9uIHR5cGUuXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgcGFyc2VkQ291bnQgPSAwO1xyXG4gICAgICAgIG1lbWJlcnMuZm9yRWFjaCgoeCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBwYXJzZWRWYWx1ZSA9IHBhcnNlSW50KHgsIDEwKTtcclxuICAgICAgICAgICAgaWYgKCFOdW1iZXIuaXNOYU4ocGFyc2VkVmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgICBwYXJzZWRDb3VudCsrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHBhcnNlZENvdW50ID09PSBtZW1iZXJzLmxlbmd0aCAvIDI7XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG4vLyBPdXRzaWRlIHRoZSBjbGFzcyBiZWNhdXNlIGl0J3MgdXNlZCB0byBnZW5lcmF0ZSBjb21wb25lbnQgc2VsZWN0b3JzLCBhbmQgYW90IGNhbid0IGNhbGwgc3RhdGljcy5cclxuZXhwb3J0IGZ1bmN0aW9uIFN0cmluZ0VudW1Ub1NpbmdsZVN0cmluZyhjbGF6ejogYW55KTogc3RyaW5nIHtcclxuICAgIGxldCBzdHI6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gICAgY29uc3Qga2V5czogc3RyaW5nW10gPSBPYmplY3Qua2V5cyhjbGF6eik7XHJcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwLCBsZW46IG51bWJlciA9IGtleXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgICBzdHIgKz0gY2xhenpba2V5c1tpXV0gKyBcIiwgXCI7XHJcbiAgICB9XHJcblxyXG4gICAgc3RyID0gU3RyaW5nVXRpbHMuUmVtb3ZlTGFzdENoYXJzKHN0ciwgMik7XHJcbiAgICByZXR1cm4gc3RyO1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
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=
|
|
@@ -0,0 +1,5 @@
|
|
|
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==
|
|
@@ -0,0 +1,41 @@
|
|
|
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=
|