@colijnit/sharedcomponents 1.0.62 → 1.0.64
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -24
- package/bundles/colijnit-sharedcomponents.umd.js +9888 -9855
- package/bundles/colijnit-sharedcomponents.umd.js.map +1 -1
- package/colijnit-sharedcomponents.d.ts +91 -91
- package/colijnit-sharedcomponents.metadata.json +1 -1
- package/esm2015/colijnit-sharedcomponents.js +91 -91
- package/esm2015/lib/assets/dictionary/text.properties.js +11 -11
- package/esm2015/lib/businessobject/build-images-and-documentation-result.js +2 -2
- package/esm2015/lib/businessobject/co-document-right.bo.js +3 -3
- package/esm2015/lib/businessobject/drag-drop-container-element.js +2 -2
- package/esm2015/lib/businessobject/drag-drop-container.js +7 -7
- package/esm2015/lib/components/activity-list/activity-list.component.js +130 -130
- package/esm2015/lib/components/activity-list/activity-list.module.js +24 -24
- package/esm2015/lib/components/app-file-dropzone/app-file-dropzone.component.js +47 -47
- package/esm2015/lib/components/app-file-dropzone/app-file-dropzone.module.js +20 -20
- package/esm2015/lib/components/date-planning/component/agenda/agenda-base-view.component.js +61 -61
- package/esm2015/lib/components/date-planning/component/agenda/agenda-day-view.component.js +36 -36
- package/esm2015/lib/components/date-planning/component/agenda/agenda-event.component.js +56 -56
- package/esm2015/lib/components/date-planning/component/agenda/agenda-events.component.js +47 -47
- package/esm2015/lib/components/date-planning/component/agenda/agenda-half-hour-cell.component.js +68 -68
- package/esm2015/lib/components/date-planning/component/agenda/agenda-header.component.js +243 -243
- package/esm2015/lib/components/date-planning/component/agenda/agenda-hour-cell.component.js +36 -36
- package/esm2015/lib/components/date-planning/component/agenda/agenda-hour-view-labels.component.js +50 -50
- package/esm2015/lib/components/date-planning/component/agenda/agenda-hour-view.component.js +46 -46
- package/esm2015/lib/components/date-planning/component/agenda/agenda-month-view.component.js +61 -61
- package/esm2015/lib/components/date-planning/component/agenda/agenda-select-event.component.js +39 -39
- package/esm2015/lib/components/date-planning/component/agenda/agenda-view.component.js +35 -35
- package/esm2015/lib/components/date-planning/component/agenda/agenda-week-select-view.component.js +64 -64
- package/esm2015/lib/components/date-planning/component/agenda/agenda-week-view.component.js +48 -48
- package/esm2015/lib/components/date-planning/component/agenda/view-select.component.js +42 -42
- package/esm2015/lib/components/date-planning/component/calendar/calendar-all-months.component.js +34 -34
- package/esm2015/lib/components/date-planning/component/calendar/calendar-all-years.component.js +48 -48
- package/esm2015/lib/components/date-planning/component/calendar/calendar-header.component.js +107 -107
- package/esm2015/lib/components/date-planning/component/calendar/calendar-view.component.js +178 -178
- package/esm2015/lib/components/date-planning/component/calendar/calendar.component.js +34 -34
- package/esm2015/lib/components/date-planning/date-planning.component.js +113 -113
- package/esm2015/lib/components/date-planning/date-planning.module.js +63 -63
- package/esm2015/lib/components/docsign/component/signature/signature.component.js +75 -75
- package/esm2015/lib/components/docsign/component/signatures/signatures.component.js +44 -44
- package/esm2015/lib/components/docsign/docsign.component.js +242 -242
- package/esm2015/lib/components/docsign/docsign.module.js +23 -23
- package/esm2015/lib/components/file-upload/file-upload.component.js +189 -189
- package/esm2015/lib/components/file-upload/file-upload.module.js +25 -25
- package/esm2015/lib/components/file-upload-popup/file-upload-popup.component.js +397 -397
- package/esm2015/lib/components/file-upload-popup/file-upload-popup.module.js +30 -30
- package/esm2015/lib/components/files-upload/components/base-file-upload.component.js +469 -469
- package/esm2015/lib/components/files-upload/components/drag-drop-container.component.js +115 -115
- package/esm2015/lib/components/files-upload/files-upload.component.js +131 -131
- package/esm2015/lib/components/files-upload/files-upload.module.js +47 -47
- package/esm2015/lib/components/image-display/image-display.component.js +36 -36
- package/esm2015/lib/components/image-display/image-display.module.js +23 -23
- package/esm2015/lib/components/key-pad/key-pad.component.js +200 -200
- package/esm2015/lib/components/key-pad/key-pad.module.js +22 -22
- package/esm2015/lib/components/layout-switcher/layout-switcher.component.js +74 -74
- package/esm2015/lib/components/layout-switcher/layout-switcher.module.js +21 -21
- package/esm2015/lib/components/linear-gauge/co-linear-gauge.component.js +59 -59
- package/esm2015/lib/components/linear-gauge/co-linear-gauge.module.js +19 -19
- package/esm2015/lib/components/multi-property-toggler/multiple-property-toggler.component.js +89 -89
- package/esm2015/lib/components/multi-property-toggler/multiple-property-toggler.module.js +21 -21
- package/esm2015/lib/components/send-method-dialog/components/layout-selection/layout-selection.component.js +79 -79
- package/esm2015/lib/components/send-method-dialog/components/layout-selection/layout-selection.module.js +21 -21
- package/esm2015/lib/components/send-method-dialog/components/printer-selection/printer-selection.component.js +85 -85
- package/esm2015/lib/components/send-method-dialog/components/printer-selection/printer-selection.module.js +21 -21
- package/esm2015/lib/components/send-method-dialog/components/send-method-email/send-method-email.component.js +64 -64
- package/esm2015/lib/components/send-method-dialog/components/send-method-email/send-method-email.module.js +26 -26
- package/esm2015/lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.component.js +40 -40
- package/esm2015/lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.module.js +23 -23
- package/esm2015/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.component.js +61 -61
- package/esm2015/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.module.js +28 -28
- package/esm2015/lib/components/send-method-dialog/components/signature-button/signature-button.component.js +38 -38
- package/esm2015/lib/components/send-method-dialog/components/signature-button/signature-button.module.js +21 -21
- package/esm2015/lib/components/send-method-dialog/model/email-address-viewmodel.js +7 -7
- package/esm2015/lib/components/send-method-dialog/send-method-dialog.component.js +258 -258
- package/esm2015/lib/components/send-method-dialog/send-method-dialog.module.js +35 -35
- package/esm2015/lib/components/send-method-dialog/send-method-params.interface.js +2 -2
- package/esm2015/lib/components/send-method-dialog/service/send-method.service.js +59 -59
- package/esm2015/lib/components/simple-tags/simple-tags.component.js +229 -229
- package/esm2015/lib/components/simple-tags/simple-tags.module.js +26 -26
- package/esm2015/lib/components/statusbar/statusbar-popup.component.js +97 -97
- package/esm2015/lib/components/statusbar/statusbar.component.js +81 -81
- package/esm2015/lib/components/statusbar/statusbar.module.js +27 -27
- package/esm2015/lib/components/stock/components/allocation-stock-history/allocation-stock-history.component.js +47 -47
- package/esm2015/lib/components/stock/components/order-commission-stock-history/order-commission-stock-history.component.js +47 -47
- package/esm2015/lib/components/stock/components/order-stock-history/order-stock-history.component.js +47 -47
- package/esm2015/lib/components/stock/components/order-stock-tab/order-stock-tab.component.js +47 -47
- package/esm2015/lib/components/stock/components/order-supply-stock-history/order-supply-stock-history.component.js +47 -47
- package/esm2015/lib/components/stock/components/order-tab/order-tab.component.js +67 -67
- package/esm2015/lib/components/stock/components/stock-history/stock-history.component.js +53 -53
- package/esm2015/lib/components/stock/components/stock-location/stock-location.component.js +251 -240
- package/esm2015/lib/components/stock/components/stock-prognose/stock-prognose.component.js +52 -52
- package/esm2015/lib/components/stock/components/stock-tab/stock-tab.component.js +39 -39
- package/esm2015/lib/components/stock/localization/translation.js +72 -63
- package/esm2015/lib/components/stock/stock-history-tabs/stock-history-tabs.component.js +33 -33
- package/esm2015/lib/components/stock/stock-information/stock-information.component.js +48 -49
- package/esm2015/lib/components/stock/stock-information-grid/stock-information-grid.component.js +457 -457
- package/esm2015/lib/components/stock/stock-tabs/stock-tabs.component.js +243 -243
- package/esm2015/lib/components/stock/stock-transfer/co-drop-down-list-fields.interface.js +2 -2
- package/esm2015/lib/components/stock/stock-transfer/stock-change-amount.component.js +72 -72
- package/esm2015/lib/components/stock/stock-transfer/stock-transfer.component.js +160 -149
- package/esm2015/lib/components/stock/stock.component.js +237 -197
- package/esm2015/lib/components/stock/stock.module.js +80 -80
- package/esm2015/lib/components/stock-statusbar/stock-statusbar.component.js +23 -23
- package/esm2015/lib/components/stock-statusbar/stock-statusbar.module.js +19 -19
- package/esm2015/lib/components/tab-bar/tab-bar.component.js +90 -90
- package/esm2015/lib/components/tab-bar/tab-bar.module.js +21 -21
- package/esm2015/lib/components/tab-bar/tab.interface.js +2 -2
- package/esm2015/lib/components/tile-renderer/tile-render.component.js +80 -80
- package/esm2015/lib/components/tile-renderer/tile-render.module.js +26 -26
- package/esm2015/lib/decorator/input-boolean.decorator.js +34 -34
- package/esm2015/lib/enum/calendar-view.enum.js +9 -9
- package/esm2015/lib/enum/document-email-report.enum.js +18 -18
- package/esm2015/lib/enum/domain-multiple-name.enum.js +13 -13
- package/esm2015/lib/enum/file-type.js +14 -14
- package/esm2015/lib/enum/files-upload-config-objects.js +3 -3
- package/esm2015/lib/enum/gauge-color.enum.js +10 -10
- package/esm2015/lib/enum/icon.enum.js +48 -44
- package/esm2015/lib/enum/internal-param.enum.js +38 -38
- package/esm2015/lib/enum/keyboard-code.enum.js +32 -32
- package/esm2015/lib/enum/language-code.enum.js +8 -8
- package/esm2015/lib/enum/month.enum.js +17 -17
- package/esm2015/lib/enum/read-write-access-config-names.enum.js +2 -2
- package/esm2015/lib/enum/table-name.enum.js +86 -86
- package/esm2015/lib/enum/tag-category.enum.js +22 -22
- package/esm2015/lib/enum/tags-component-config-names.js +2 -2
- package/esm2015/lib/enum/thumb-three-way-state.js +19 -19
- package/esm2015/lib/enum/tile-size-type.js +7 -7
- package/esm2015/lib/enum/time-period.enum.js +11 -11
- package/esm2015/lib/event/co-drag-event.js +2 -2
- package/esm2015/lib/event/co-drop-event.js +2 -2
- package/esm2015/lib/interface/key-value-pair.js +2 -2
- package/esm2015/lib/interface/operation-callback-simple-function.js +4 -4
- package/esm2015/lib/localization/localization.module.js +19 -19
- package/esm2015/lib/localization/localize.pipe.js +26 -26
- package/esm2015/lib/localization/localize.service.js +30 -30
- package/esm2015/lib/localization/translation.js +3 -3
- package/esm2015/lib/model/agenda-event-per-day.model.js +6 -6
- package/esm2015/lib/model/agenda-event.model.js +8 -8
- package/esm2015/lib/model/agenda-null-objects.js +11 -11
- package/esm2015/lib/model/constant/all-months.js +17 -17
- package/esm2015/lib/model/date-range.js +5 -5
- package/esm2015/lib/model/day.model.js +7 -7
- package/esm2015/lib/model/icon-svg.js +47 -43
- package/esm2015/lib/model/month.model.js +11 -11
- package/esm2015/lib/model/send-method.js +8 -8
- package/esm2015/lib/model/settings.js +4 -4
- package/esm2015/lib/model/tag-tree-item.bo.js +16 -16
- package/esm2015/lib/model/time-window.bo.js +26 -26
- package/esm2015/lib/model/tree-object.js +15 -15
- package/esm2015/lib/model/week.model.js +6 -6
- package/esm2015/lib/model/weekday.model.js +10 -10
- package/esm2015/lib/pipe/array-number.pipe.js +15 -15
- package/esm2015/lib/pipe/file-type-image.pipe.js +51 -51
- package/esm2015/lib/pipe/master-pipes.js +9 -9
- package/esm2015/lib/pipe/ucfirst.pipe.js +16 -16
- package/esm2015/lib/service/dictionary.service.js +76 -76
- package/esm2015/lib/service/drag-drop.service.js +365 -365
- package/esm2015/lib/service/icon-cache.service.js +51 -51
- package/esm2015/lib/service/options.service.js +48 -48
- package/esm2015/lib/service/shared-connector.service.js +433 -433
- package/esm2015/lib/service/shared.service.js +60 -60
- package/esm2015/lib/service/stock.service.js +110 -110
- package/esm2015/lib/utils/array-utils.js +202 -202
- package/esm2015/lib/utils/calendar.utils.js +68 -68
- package/esm2015/lib/utils/check-precision-and-scale-result.js +2 -2
- package/esm2015/lib/utils/check-within-stepped-bounds-result.js +2 -2
- package/esm2015/lib/utils/co-document-shared-field-logic.js +50 -50
- package/esm2015/lib/utils/date-utils.js +264 -264
- package/esm2015/lib/utils/enum-utils.js +128 -128
- package/esm2015/lib/utils/function/not-nill.function.js +5 -5
- package/esm2015/lib/utils/is-nill.function.js +5 -5
- package/esm2015/lib/utils/map-utils.js +41 -41
- package/esm2015/lib/utils/number-utils.js +390 -390
- package/esm2015/lib/utils/object-utils.js +278 -278
- package/esm2015/lib/utils/ref-code-utils.js +49 -49
- package/esm2015/lib/utils/string-utils.js +93 -93
- package/esm2015/public-api.js +31 -31
- package/fesm2015/colijnit-sharedcomponents.js +10411 -10335
- package/fesm2015/colijnit-sharedcomponents.js.map +1 -1
- package/lib/assets/dictionary/text.properties.d.ts +3 -3
- package/lib/businessobject/build-images-and-documentation-result.d.ts +5 -5
- package/lib/businessobject/co-document-right.bo.d.ts +6 -6
- package/lib/businessobject/drag-drop-container-element.d.ts +6 -6
- package/lib/businessobject/drag-drop-container.d.ts +6 -6
- package/lib/components/access/read-write-access.scss +25 -25
- package/lib/components/access/style/_layout.scss +23 -23
- package/lib/components/access/style/_material-definition.scss +12 -12
- package/lib/components/access/style/_theme.scss +4 -4
- package/lib/components/access/style/material.scss +4 -4
- package/lib/components/activity-list/activity-list.component.d.ts +33 -33
- package/lib/components/activity-list/activity-list.module.d.ts +2 -2
- package/lib/components/activity-list/style/_layout.scss +68 -68
- package/lib/components/activity-list/style/_theme.scss +4 -4
- package/lib/components/activity-list/style/material.scss +4 -4
- package/lib/components/app-file-dropzone/app-file-dropzone.component.d.ts +14 -14
- package/lib/components/app-file-dropzone/app-file-dropzone.module.d.ts +2 -2
- package/lib/components/app-file-dropzone/style/_layout.scss +61 -61
- package/lib/components/app-file-dropzone/style/_theme.scss +4 -4
- package/lib/components/app-file-dropzone/style/material.scss +4 -4
- package/lib/components/date-planning/component/agenda/agenda-base-view.component.d.ts +21 -21
- package/lib/components/date-planning/component/agenda/agenda-day-view.component.d.ts +7 -7
- package/lib/components/date-planning/component/agenda/agenda-event.component.d.ts +18 -18
- package/lib/components/date-planning/component/agenda/agenda-events.component.d.ts +13 -13
- package/lib/components/date-planning/component/agenda/agenda-half-hour-cell.component.d.ts +18 -18
- package/lib/components/date-planning/component/agenda/agenda-header.component.d.ts +48 -48
- package/lib/components/date-planning/component/agenda/agenda-hour-cell.component.d.ts +9 -9
- package/lib/components/date-planning/component/agenda/agenda-hour-view-labels.component.d.ts +8 -8
- package/lib/components/date-planning/component/agenda/agenda-hour-view.component.d.ts +7 -7
- package/lib/components/date-planning/component/agenda/agenda-month-view.component.d.ts +10 -10
- package/lib/components/date-planning/component/agenda/agenda-select-event.component.d.ts +12 -12
- package/lib/components/date-planning/component/agenda/agenda-view.component.d.ts +12 -12
- package/lib/components/date-planning/component/agenda/agenda-week-select-view.component.d.ts +10 -10
- package/lib/components/date-planning/component/agenda/agenda-week-view.component.d.ts +9 -9
- package/lib/components/date-planning/component/agenda/style/_layout.scss +443 -443
- package/lib/components/date-planning/component/agenda/style/_material-definition.scss +12 -12
- package/lib/components/date-planning/component/agenda/style/_theme.scss +7 -7
- package/lib/components/date-planning/component/agenda/style/material.scss +5 -5
- package/lib/components/date-planning/component/agenda/view-select.component.d.ts +11 -11
- package/lib/components/date-planning/component/calendar/calendar-all-months.component.d.ts +9 -9
- package/lib/components/date-planning/component/calendar/calendar-all-years.component.d.ts +9 -9
- package/lib/components/date-planning/component/calendar/calendar-header.component.d.ts +23 -23
- package/lib/components/date-planning/component/calendar/calendar-view.component.d.ts +31 -31
- package/lib/components/date-planning/component/calendar/calendar.component.d.ts +10 -10
- package/lib/components/date-planning/component/calendar/style/_layout.scss +167 -167
- package/lib/components/date-planning/component/calendar/style/_material-definition.scss +7 -7
- package/lib/components/date-planning/component/calendar/style/_theme.scss +7 -7
- package/lib/components/date-planning/component/calendar/style/material.scss +5 -5
- package/lib/components/date-planning/date-planning.component.d.ts +28 -28
- package/lib/components/date-planning/date-planning.module.d.ts +2 -2
- package/lib/components/date-planning/style/_layout.scss +45 -45
- package/lib/components/date-planning/style/_theme.scss +5 -5
- package/lib/components/date-planning/style/material.scss +7 -7
- package/lib/components/docsign/component/signature/signature.component.d.ts +16 -16
- package/lib/components/docsign/component/signature/style/_layout.scss +40 -40
- package/lib/components/docsign/component/signature/style/_material-definition.scss +11 -11
- package/lib/components/docsign/component/signature/style/_theme.scss +13 -13
- package/lib/components/docsign/component/signature/style/material.scss +4 -4
- package/lib/components/docsign/component/signatures/signatures.component.d.ts +12 -12
- package/lib/components/docsign/component/signatures/style/_layout.scss +13 -13
- package/lib/components/docsign/component/signatures/style/_material-definition.scss +1 -1
- package/lib/components/docsign/component/signatures/style/_theme.scss +4 -4
- package/lib/components/docsign/component/signatures/style/material.scss +5 -5
- package/lib/components/docsign/docsign.component.d.ts +94 -94
- package/lib/components/docsign/docsign.module.d.ts +2 -2
- package/lib/components/docsign/style/_layout.scss +40 -40
- package/lib/components/docsign/style/_material-definition.scss +12 -12
- package/lib/components/docsign/style/_theme.scss +12 -12
- package/lib/components/docsign/style/material.scss +15 -15
- package/lib/components/file-upload/file-upload.component.d.ts +42 -42
- package/lib/components/file-upload/file-upload.module.d.ts +2 -2
- package/lib/components/file-upload/style/_layout.scss +59 -59
- package/lib/components/file-upload/style/_material-definition.scss +2 -2
- package/lib/components/file-upload/style/_theme.scss +4 -4
- package/lib/components/file-upload/style/material.scss +4 -4
- package/lib/components/file-upload-popup/file-upload-popup.component.d.ts +75 -75
- package/lib/components/file-upload-popup/file-upload-popup.module.d.ts +2 -2
- package/lib/components/file-upload-popup/style/_layout.scss +48 -48
- package/lib/components/file-upload-popup/style/_material-definition.scss +2 -2
- package/lib/components/file-upload-popup/style/_theme.scss +5 -5
- package/lib/components/file-upload-popup/style/material.scss +4 -4
- package/lib/components/files-upload/components/base-file-upload.component.d.ts +98 -98
- package/lib/components/files-upload/components/drag-drop-container.component.d.ts +34 -34
- package/lib/components/files-upload/files-upload.component.d.ts +32 -32
- package/lib/components/files-upload/files-upload.module.d.ts +2 -2
- package/lib/components/files-upload/style/_layout.scss +49 -49
- package/lib/components/files-upload/style/_theme.scss +5 -5
- package/lib/components/files-upload/style/material.scss +4 -4
- package/lib/components/image-display/image-display.component.d.ts +14 -14
- package/lib/components/image-display/image-display.module.d.ts +2 -2
- package/lib/components/image-display/style/_layout.scss +56 -56
- package/lib/components/image-display/style/_material-definition.scss +4 -4
- package/lib/components/image-display/style/_theme.scss +6 -6
- package/lib/components/image-display/style/material.scss +3 -3
- package/lib/components/key-pad/key-pad.component.d.ts +38 -38
- package/lib/components/key-pad/key-pad.module.d.ts +2 -2
- package/lib/components/key-pad/style/_layout.scss +160 -160
- package/lib/components/key-pad/style/_material-definition.scss +19 -19
- package/lib/components/key-pad/style/_theme.scss +35 -35
- package/lib/components/key-pad/style/material.scss +4 -4
- package/lib/components/layout-switcher/layout-switcher.component.d.ts +16 -16
- package/lib/components/layout-switcher/layout-switcher.module.d.ts +2 -2
- package/lib/components/layout-switcher/style/_layout.scss +94 -94
- package/lib/components/layout-switcher/style/_material-definition.scss +16 -16
- package/lib/components/layout-switcher/style/_theme.scss +4 -4
- package/lib/components/layout-switcher/style/material.scss +6 -6
- package/lib/components/linear-gauge/co-linear-gauge.component.d.ts +11 -11
- package/lib/components/linear-gauge/co-linear-gauge.module.d.ts +2 -2
- package/lib/components/linear-gauge/style/_layout.scss +20 -20
- package/lib/components/linear-gauge/style/_material-definition.scss +8 -8
- package/lib/components/linear-gauge/style/_theme.scss +4 -4
- package/lib/components/linear-gauge/style/material.scss +6 -6
- package/lib/components/login/style/_layout.scss +57 -57
- package/lib/components/login/style/_material-definition.scss +23 -23
- package/lib/components/login/style/_theme.scss +7 -7
- package/lib/components/login/style/material.scss +4 -4
- package/lib/components/multi-property-toggler/multiple-property-toggler.component.d.ts +27 -27
- package/lib/components/multi-property-toggler/multiple-property-toggler.module.d.ts +2 -2
- package/lib/components/multi-property-toggler/style/_layout.scss +24 -24
- package/lib/components/multi-property-toggler/style/_theme.scss +4 -4
- package/lib/components/multi-property-toggler/style/material.scss +4 -4
- package/lib/components/screen-config-generator/style/_layout.scss +95 -95
- package/lib/components/screen-config-generator/style/_theme.scss +4 -4
- package/lib/components/screen-config-generator/style/material.scss +4 -4
- package/lib/components/send-method-dialog/components/layout-selection/layout-selection.component.d.ts +19 -19
- package/lib/components/send-method-dialog/components/layout-selection/layout-selection.module.d.ts +2 -2
- package/lib/components/send-method-dialog/components/layout-selection/style/_layout.scss +44 -44
- package/lib/components/send-method-dialog/components/layout-selection/style/_material-definition.scss +19 -19
- package/lib/components/send-method-dialog/components/layout-selection/style/_theme.scss +17 -17
- package/lib/components/send-method-dialog/components/layout-selection/style/material.scss +4 -4
- package/lib/components/send-method-dialog/components/printer-selection/printer-selection.component.d.ts +19 -19
- package/lib/components/send-method-dialog/components/printer-selection/printer-selection.module.d.ts +2 -2
- package/lib/components/send-method-dialog/components/printer-selection/style/_layout.scss +69 -69
- package/lib/components/send-method-dialog/components/printer-selection/style/_material-definition.scss +37 -37
- package/lib/components/send-method-dialog/components/printer-selection/style/_theme.scss +23 -23
- package/lib/components/send-method-dialog/components/printer-selection/style/material.scss +4 -4
- package/lib/components/send-method-dialog/components/send-method-email/send-method-email.component.d.ts +14 -14
- package/lib/components/send-method-dialog/components/send-method-email/send-method-email.module.d.ts +2 -2
- package/lib/components/send-method-dialog/components/send-method-email/style/_layout.scss +29 -29
- package/lib/components/send-method-dialog/components/send-method-email/style/_material-definition.scss +8 -8
- package/lib/components/send-method-dialog/components/send-method-email/style/_theme.scss +5 -5
- package/lib/components/send-method-dialog/components/send-method-email/style/material.scss +4 -4
- package/lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.component.d.ts +8 -8
- package/lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.module.d.ts +2 -2
- package/lib/components/send-method-dialog/components/send-method-pdf/style/_layout.scss +25 -25
- package/lib/components/send-method-dialog/components/send-method-pdf/style/_material-definition.scss +5 -5
- package/lib/components/send-method-dialog/components/send-method-pdf/style/_theme.scss +5 -5
- package/lib/components/send-method-dialog/components/send-method-pdf/style/material.scss +4 -4
- package/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.component.d.ts +13 -13
- package/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.module.d.ts +2 -2
- package/lib/components/send-method-dialog/components/send-method-printer/style/_layout.scss +30 -30
- package/lib/components/send-method-dialog/components/send-method-printer/style/_material-definition.scss +5 -5
- package/lib/components/send-method-dialog/components/send-method-printer/style/_theme.scss +5 -5
- package/lib/components/send-method-dialog/components/send-method-printer/style/material.scss +4 -4
- package/lib/components/send-method-dialog/components/signature-button/signature-button.component.d.ts +12 -12
- package/lib/components/send-method-dialog/components/signature-button/signature-button.module.d.ts +2 -2
- package/lib/components/send-method-dialog/components/signature-button/style/_layout.scss +28 -28
- package/lib/components/send-method-dialog/components/signature-button/style/_material-definition.scss +8 -8
- package/lib/components/send-method-dialog/components/signature-button/style/_theme.scss +4 -4
- package/lib/components/send-method-dialog/components/signature-button/style/material.scss +4 -4
- package/lib/components/send-method-dialog/model/email-address-viewmodel.d.ts +5 -5
- package/lib/components/send-method-dialog/send-method-dialog.component.d.ts +71 -71
- package/lib/components/send-method-dialog/send-method-dialog.module.d.ts +2 -2
- package/lib/components/send-method-dialog/send-method-params.interface.d.ts +13 -13
- package/lib/components/send-method-dialog/service/send-method.service.d.ts +23 -23
- package/lib/components/send-method-dialog/style/_layout.scss +165 -165
- package/lib/components/send-method-dialog/style/_material-definition.scss +48 -48
- package/lib/components/send-method-dialog/style/_theme.scss +33 -33
- package/lib/components/send-method-dialog/style/material.scss +10 -10
- package/lib/components/simple-tags/simple-tags.component.d.ts +31 -31
- package/lib/components/simple-tags/simple-tags.module.d.ts +2 -2
- package/lib/components/simple-tags/style/_layout.scss +272 -272
- package/lib/components/simple-tags/style/_material-definition.scss +39 -39
- package/lib/components/simple-tags/style/_theme.scss +4 -4
- package/lib/components/simple-tags/style/material.scss +4 -4
- package/lib/components/statusbar/statusbar-popup.component.d.ts +21 -21
- package/lib/components/statusbar/statusbar.component.d.ts +26 -26
- package/lib/components/statusbar/statusbar.module.d.ts +2 -2
- package/lib/components/statusbar/style/_layout.scss +70 -70
- package/lib/components/statusbar/style/_material-definition.scss +23 -23
- package/lib/components/statusbar/style/_theme.scss +13 -13
- package/lib/components/statusbar/style/material.scss +5 -5
- package/lib/components/stock/components/allocation-stock-history/allocation-stock-history.component.d.ts +9 -9
- package/lib/components/stock/components/order-commission-stock-history/order-commission-stock-history.component.d.ts +9 -9
- package/lib/components/stock/components/order-stock-history/order-stock-history.component.d.ts +9 -9
- package/lib/components/stock/components/order-stock-tab/order-stock-tab.component.d.ts +11 -11
- package/lib/components/stock/components/order-supply-stock-history/order-supply-stock-history.component.d.ts +9 -9
- package/lib/components/stock/components/order-tab/order-tab.component.d.ts +20 -20
- package/lib/components/stock/components/stock-history/stock-history.component.d.ts +13 -13
- package/lib/components/stock/components/stock-location/stock-location.component.d.ts +52 -50
- package/lib/components/stock/components/stock-prognose/stock-prognose.component.d.ts +11 -11
- package/lib/components/stock/components/stock-tab/stock-tab.component.d.ts +7 -7
- package/lib/components/stock/localization/translation.d.ts +69 -60
- package/lib/components/stock/stock-history-tabs/stock-history-tabs.component.d.ts +7 -7
- package/lib/components/stock/stock-information/stock-information.component.d.ts +9 -9
- package/lib/components/stock/stock-information-grid/stock-information-grid.component.d.ts +75 -75
- package/lib/components/stock/stock-tabs/stock-tabs.component.d.ts +56 -56
- package/lib/components/stock/stock-transfer/co-drop-down-list-fields.interface.d.ts +4 -4
- package/lib/components/stock/stock-transfer/stock-change-amount.component.d.ts +18 -18
- package/lib/components/stock/stock-transfer/stock-transfer.component.d.ts +38 -42
- package/lib/components/stock/stock.component.d.ts +64 -58
- package/lib/components/stock/stock.module.d.ts +2 -2
- package/lib/components/stock/style/_layout.scss +473 -286
- package/lib/components/stock/style/_material-definition.scss +28 -25
- package/lib/components/stock/style/_theme.scss +5 -5
- package/lib/components/stock/style/material.scss +4 -4
- package/lib/components/stock-statusbar/stock-statusbar.component.d.ts +4 -4
- package/lib/components/stock-statusbar/stock-statusbar.module.d.ts +2 -2
- package/lib/components/stock-statusbar/style/_layout.scss +24 -24
- package/lib/components/stock-statusbar/style/material.scss +4 -4
- package/lib/components/tab-bar/style/_layout.scss +83 -78
- package/lib/components/tab-bar/style/_material-definition.scss +6 -6
- package/lib/components/tab-bar/style/material.scss +4 -4
- package/lib/components/tab-bar/tab-bar.component.d.ts +21 -21
- package/lib/components/tab-bar/tab-bar.module.d.ts +2 -2
- package/lib/components/tab-bar/tab.interface.d.ts +5 -5
- package/lib/components/tags/component/style/_layout.scss +67 -67
- package/lib/components/tags/component/style/_material-definition.scss +1 -1
- package/lib/components/tags/component/style/_theme.scss +8 -8
- package/lib/components/tags/component/style/material.scss +3 -3
- package/lib/components/tags/component/tag-join-label/style/_layout.scss +97 -97
- package/lib/components/tags/component/tag-join-label/style/_material-definition.scss +4 -4
- package/lib/components/tags/component/tag-join-label/style/_theme.scss +8 -8
- package/lib/components/tags/component/tag-join-label/style/material.scss +3 -3
- package/lib/components/tile-renderer/style/_layout.scss +90 -90
- package/lib/components/tile-renderer/style/_theme.scss +4 -4
- package/lib/components/tile-renderer/style/material.scss +4 -4
- package/lib/components/tile-renderer/tile-render.component.d.ts +31 -31
- package/lib/components/tile-renderer/tile-render.module.d.ts +2 -2
- package/lib/decorator/input-boolean.decorator.d.ts +8 -8
- package/lib/enum/calendar-view.enum.d.ts +7 -7
- package/lib/enum/document-email-report.enum.d.ts +15 -15
- package/lib/enum/domain-multiple-name.enum.d.ts +10 -10
- package/lib/enum/file-type.d.ts +7 -7
- package/lib/enum/files-upload-config-objects.d.ts +22 -22
- package/lib/enum/gauge-color.enum.d.ts +8 -8
- package/lib/enum/icon.enum.d.ts +46 -42
- package/lib/enum/internal-param.enum.d.ts +34 -34
- package/lib/enum/keyboard-code.enum.d.ts +30 -30
- package/lib/enum/language-code.enum.d.ts +6 -6
- package/lib/enum/month.enum.d.ts +14 -14
- package/lib/enum/read-write-access-config-names.enum.d.ts +4 -4
- package/lib/enum/table-name.enum.d.ts +84 -84
- package/lib/enum/tag-category.enum.d.ts +19 -19
- package/lib/enum/tags-component-config-names.d.ts +4 -4
- package/lib/enum/thumb-three-way-state.d.ts +6 -6
- package/lib/enum/tile-size-type.d.ts +4 -4
- package/lib/enum/time-period.enum.d.ts +8 -8
- package/lib/event/co-drag-event.d.ts +5 -5
- package/lib/event/co-drop-event.d.ts +8 -8
- package/lib/interface/key-value-pair.d.ts +4 -4
- package/lib/interface/operation-callback-simple-function.d.ts +4 -4
- package/lib/localization/localization.module.d.ts +2 -2
- package/lib/localization/localize.pipe.d.ts +7 -7
- package/lib/localization/localize.service.d.ts +7 -7
- package/lib/localization/translation.d.ts +2 -2
- package/lib/model/agenda-event-per-day.model.d.ts +5 -5
- package/lib/model/agenda-event.model.d.ts +17 -17
- package/lib/model/agenda-null-objects.d.ts +10 -10
- package/lib/model/constant/all-months.d.ts +2 -2
- package/lib/model/date-range.d.ts +7 -7
- package/lib/model/day.model.d.ts +8 -8
- package/lib/model/icon-svg.d.ts +4 -4
- package/lib/model/month.model.d.ts +5 -5
- package/lib/model/send-method.d.ts +7 -7
- package/lib/model/settings.d.ts +3 -3
- package/lib/model/tag-tree-item.bo.d.ts +18 -18
- package/lib/model/time-window.bo.d.ts +13 -13
- package/lib/model/tree-object.d.ts +8 -8
- package/lib/model/week.model.d.ts +4 -4
- package/lib/model/weekday.model.d.ts +16 -16
- package/lib/pipe/array-number.pipe.d.ts +4 -4
- package/lib/pipe/file-type-image.pipe.d.ts +12 -12
- package/lib/pipe/master-pipes.d.ts +1 -1
- package/lib/pipe/ucfirst.pipe.d.ts +4 -4
- package/lib/service/dictionary.service.d.ts +21 -21
- package/lib/service/drag-drop.service.d.ts +86 -86
- package/lib/service/icon-cache.service.d.ts +18 -18
- package/lib/service/options.service.d.ts +13 -13
- package/lib/service/shared-connector.service.d.ts +55 -55
- package/lib/service/shared.service.d.ts +18 -18
- package/lib/service/stock.service.d.ts +41 -41
- package/lib/style/_mixin.scss +14 -14
- package/lib/style/_variables.scss +21 -21
- package/lib/style/sharedcomponents-globals.scss +10 -10
- package/lib/utils/array-utils.d.ts +63 -63
- package/lib/utils/calendar.utils.d.ts +10 -10
- package/lib/utils/check-precision-and-scale-result.d.ts +4 -4
- package/lib/utils/check-within-stepped-bounds-result.d.ts +8 -8
- package/lib/utils/co-document-shared-field-logic.d.ts +7 -7
- package/lib/utils/date-utils.d.ts +44 -44
- package/lib/utils/enum-utils.d.ts +31 -31
- package/lib/utils/function/not-nill.function.d.ts +1 -1
- package/lib/utils/is-nill.function.d.ts +1 -1
- package/lib/utils/map-utils.d.ts +16 -16
- package/lib/utils/number-utils.d.ts +125 -125
- package/lib/utils/object-utils.d.ts +40 -40
- package/lib/utils/ref-code-utils.d.ts +10 -10
- package/lib/utils/string-utils.d.ts +38 -38
- package/package.json +6 -6
- package/public-api.d.ts +27 -27
|
@@ -1,189 +1,189 @@
|
|
|
1
|
-
import { __awaiter, __decorate } from "tslib";
|
|
2
|
-
import { Component, EventEmitter, HostBinding, Input, Output, ViewChild, ViewEncapsulation } from "@angular/core";
|
|
3
|
-
import { FormComponent, PromptService } from "@colijnit/corecomponents_v12";
|
|
4
|
-
import { Icon } from "../../enum/icon.enum";
|
|
5
|
-
import { InputBoolean } from "../../decorator/input-boolean.decorator";
|
|
6
|
-
import { FileTypeImagePipe } from "../../pipe/file-type-image.pipe";
|
|
7
|
-
import { IconCacheService } from "../../service/icon-cache.service";
|
|
8
|
-
// The GUI part of the files-upload component. Not a standalone component.
|
|
9
|
-
export class FileUploadComponent {
|
|
10
|
-
constructor(_promptService, _fileTypeImgPipe, iconService) {
|
|
11
|
-
this._promptService = _promptService;
|
|
12
|
-
this._fileTypeImgPipe = _fileTypeImgPipe;
|
|
13
|
-
this.iconService = iconService;
|
|
14
|
-
this.icons = Icon;
|
|
15
|
-
// Element clickable
|
|
16
|
-
this.link = false;
|
|
17
|
-
this.readonly = false;
|
|
18
|
-
// Is tile an 'adding' tile
|
|
19
|
-
this.isAddingTile = false;
|
|
20
|
-
// Set this parameter to false if clicking ok on the document edit popup does not save the document
|
|
21
|
-
// so that refreshing of content on file open works correctly
|
|
22
|
-
this.fileSavesOnPopupOkClick = true;
|
|
23
|
-
this.isEditable = false;
|
|
24
|
-
// Show a trashcan icon
|
|
25
|
-
this.showTrashCan = false;
|
|
26
|
-
// Show an image as placeholder
|
|
27
|
-
this.showImage = false;
|
|
28
|
-
this.customImageClick = false;
|
|
29
|
-
this.deleteClick = new EventEmitter();
|
|
30
|
-
this.editClick = new EventEmitter();
|
|
31
|
-
this.imageClick = new EventEmitter();
|
|
32
|
-
this.previewImage = "";
|
|
33
|
-
this._label = "";
|
|
34
|
-
}
|
|
35
|
-
// Input file to upload.
|
|
36
|
-
set file(document) {
|
|
37
|
-
this._file = document;
|
|
38
|
-
this._updatePreviewImage();
|
|
39
|
-
// we should produce a preview image from given document, but its contents might not yet have been loaded:
|
|
40
|
-
this._listenForDocumentBodyChanges();
|
|
41
|
-
}
|
|
42
|
-
get file() {
|
|
43
|
-
return this._file;
|
|
44
|
-
}
|
|
45
|
-
set label(value) {
|
|
46
|
-
this._label = value;
|
|
47
|
-
}
|
|
48
|
-
get label() {
|
|
49
|
-
if (this._file && this._file.description) {
|
|
50
|
-
return this._file.description;
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
return this._label;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
showClass() {
|
|
57
|
-
return true;
|
|
58
|
-
}
|
|
59
|
-
get isLink() {
|
|
60
|
-
return this.link;
|
|
61
|
-
}
|
|
62
|
-
ngOnDestroy() {
|
|
63
|
-
if (this._docBodyChangeSub) {
|
|
64
|
-
this._docBodyChangeSub.unsubscribe();
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
onDeleteClick() {
|
|
68
|
-
this.deleteClick.emit();
|
|
69
|
-
}
|
|
70
|
-
onImageClick() {
|
|
71
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
72
|
-
if (this.isAddingTile) {
|
|
73
|
-
return;
|
|
74
|
-
}
|
|
75
|
-
if (this.customImageClick) {
|
|
76
|
-
this.imageClick.next(this._file);
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
//todo fix methods
|
|
80
|
-
//first download document body if it is stored in a private cdn directory
|
|
81
|
-
if (!this._file.documentBody) {
|
|
82
|
-
//await this._generalDal.getDocumentContent(this._file).then(documentBody => this._file.documentBody = documentBody);
|
|
83
|
-
}
|
|
84
|
-
if (this._file.isImageDocument()) { //preview image
|
|
85
|
-
this._promptService.showImage(this.file.documentBodyAsDataUri, "Preview");
|
|
86
|
-
}
|
|
87
|
-
else { //download document
|
|
88
|
-
try {
|
|
89
|
-
//FileUtils.DownloadFromDataUri(this._file.bodyAsDataUri, this._file.fileName);
|
|
90
|
-
}
|
|
91
|
-
catch (e) {
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
onPencilClick() {
|
|
97
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
98
|
-
// refresh file content if files are saved individually
|
|
99
|
-
if (this._file.hasId() && this.fileSavesOnPopupOkClick) {
|
|
100
|
-
let idForLink;
|
|
101
|
-
if (this._file.idForLink) {
|
|
102
|
-
idForLink = this._file.idForLink;
|
|
103
|
-
}
|
|
104
|
-
// Get most recent version of this file if it has an id and therefore has been saved in the db
|
|
105
|
-
//TODO fix fetch
|
|
106
|
-
// this._file = await this._generalDal.getDocumentFromTable(this._file.documentId);
|
|
107
|
-
//this._file.idForLink = idForLink; // Restore the idForLink
|
|
108
|
-
}
|
|
109
|
-
this.editClick.emit(this._file);
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
// updates this.previewImage when doc body changes
|
|
113
|
-
_listenForDocumentBodyChanges() {
|
|
114
|
-
if (this._file) {
|
|
115
|
-
if (this._docBodyChangeSub) {
|
|
116
|
-
this._docBodyChangeSub.unsubscribe();
|
|
117
|
-
}
|
|
118
|
-
// @ts-ignore
|
|
119
|
-
this._docBodyChangeSub = this._file.documentBodyChange.subscribe(() => {
|
|
120
|
-
this._updatePreviewImage();
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
_updatePreviewImage() {
|
|
125
|
-
if (this._file) {
|
|
126
|
-
if (this._file.isImageDocument()) {
|
|
127
|
-
this.previewImage = this._file.documentBodyAsDataUri;
|
|
128
|
-
if (this.previewImage === "") {
|
|
129
|
-
//TODO fix fetch
|
|
130
|
-
//this._generalDal.getDocumentContent(this._file).then(documentBody => this._file.documentBody = documentBody);
|
|
131
|
-
//this.previewImage = this._file.documentBody;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
else {
|
|
135
|
-
this.previewImage = this._fileTypeImgPipe.transform(this.file.fileTypeInternal);
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
FileUploadComponent.decorators = [
|
|
141
|
-
{ type: Component, args: [{
|
|
142
|
-
selector: "co-file-upload",
|
|
143
|
-
template: `
|
|
144
|
-
<co-tile-render [hideImageDisplayWhenNoImage]="true" [imageDataUri]="previewImage" [description]="label" (imageClick)="onImageClick()">
|
|
145
|
-
<ng-template #infoTemplate>
|
|
146
|
-
<co-button *ngIf="isEditable && !readonly" class="edit-file" [iconData]="iconService.getIcon(icons.Account)"
|
|
147
|
-
(click)="onPencilClick()"></co-button>
|
|
148
|
-
</ng-template>
|
|
149
|
-
<co-icon *ngIf="showTrashCan && !readonly" [iconData]="iconService.getIcon(icons.Trashbin)" class="trash" (click)="onDeleteClick()"></co-icon>
|
|
150
|
-
<co-icon tile-render-image-content *ngIf="icon" class="dark add-button" [icon]="icon"></co-icon>
|
|
151
|
-
</co-tile-render>
|
|
152
|
-
`,
|
|
153
|
-
encapsulation: ViewEncapsulation.None
|
|
154
|
-
},] }
|
|
155
|
-
];
|
|
156
|
-
FileUploadComponent.ctorParameters = () => [
|
|
157
|
-
{ type: PromptService },
|
|
158
|
-
{ type: FileTypeImagePipe },
|
|
159
|
-
{ type: IconCacheService }
|
|
160
|
-
];
|
|
161
|
-
FileUploadComponent.propDecorators = {
|
|
162
|
-
form: [{ type: ViewChild, args: [FormComponent,] }],
|
|
163
|
-
file: [{ type: Input }],
|
|
164
|
-
icon: [{ type: Input }],
|
|
165
|
-
link: [{ type: Input }],
|
|
166
|
-
readonly: [{ type: Input }],
|
|
167
|
-
isAddingTile: [{ type: Input }],
|
|
168
|
-
fileSavesOnPopupOkClick: [{ type: Input }],
|
|
169
|
-
isEditable: [{ type: Input }],
|
|
170
|
-
label: [{ type: Input }],
|
|
171
|
-
showTrashCan: [{ type: Input }],
|
|
172
|
-
showImage: [{ type: Input }],
|
|
173
|
-
customImageClick: [{ type: Input }],
|
|
174
|
-
deleteClick: [{ type: Output }],
|
|
175
|
-
editClick: [{ type: Output }],
|
|
176
|
-
imageClick: [{ type: Output }],
|
|
177
|
-
showClass: [{ type: HostBinding, args: ['class.co-file-upload',] }],
|
|
178
|
-
isLink: [{ type: HostBinding, args: ["class.link",] }]
|
|
179
|
-
};
|
|
180
|
-
__decorate([
|
|
181
|
-
InputBoolean()
|
|
182
|
-
], FileUploadComponent.prototype, "isAddingTile", void 0);
|
|
183
|
-
__decorate([
|
|
184
|
-
InputBoolean()
|
|
185
|
-
], FileUploadComponent.prototype, "fileSavesOnPopupOkClick", void 0);
|
|
186
|
-
__decorate([
|
|
187
|
-
InputBoolean()
|
|
188
|
-
], FileUploadComponent.prototype, "isEditable", void 0);
|
|
189
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxhQUFhLEVBQUUsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFFMUUsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzFDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQWlCbEUsMEVBQTBFO0FBQzFFLE1BQU0sT0FBTyxtQkFBbUI7SUE4RjVCLFlBQ1ksY0FBNkIsRUFDN0IsZ0JBQW1DLEVBQ3BDLFdBQTZCO1FBRjVCLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBbUI7UUFDcEMsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO1FBaEd4QixVQUFLLEdBQWdCLElBQUksQ0FBQztRQXNCMUMsb0JBQW9CO1FBRWIsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUd0QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBRWpDLDJCQUEyQjtRQUdwQixpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUVyQyxtR0FBbUc7UUFDbkcsNkRBQTZEO1FBR3RELDRCQUF1QixHQUFZLElBQUksQ0FBQztRQUl4QyxlQUFVLEdB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QVMsU0FBQyxhQUFhO21CQUl2QixLQUFLO21CQWFMLEtBQUs7bUJBSUwsS0FBSzt1QkFHTCxLQUFLOzJCQUlMLEtBQUs7c0NBTUwsS0FBSzt5QkFJTCxLQUFLO29CQUlMLEtBQUs7MkJBY0wsS0FBSzt3QkFJTCxLQUFLOytCQUdMLEtBQUs7MEJBR0wsTUFBTTt3QkFHTixNQUFNO3lCQUdOLE1BQU07d0JBR04sV0FBVyxTQUFDLHNCQUFzQjtxQkFLbEMsV0FBVyxTQUFDLFlBQVk7O0FBbER6QjtJQURDLFlBQVksRUFBRTt5REFDc0I7QUFNckM7SUFEQyxZQUFZLEVBQUU7b0VBQ2dDO0FBSS9DO0lBREMsWUFBWSxFQUFFO3VEQUNvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBIb3N0QmluZGluZyxcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7Rm9ybUNvbXBvbmVudCwgUHJvbXB0U2VydmljZX0gZnJvbSBcIkBjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTJcIjtcclxuaW1wb3J0IHtDb0RvY3VtZW50fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvY28tZG9jdW1lbnRcIjtcclxuaW1wb3J0IHtJY29ufSBmcm9tIFwiLi4vLi4vZW51bS9pY29uLmVudW1cIjtcclxuaW1wb3J0IHtJbnB1dEJvb2xlYW59IGZyb20gXCIuLi8uLi9kZWNvcmF0b3IvaW5wdXQtYm9vbGVhbi5kZWNvcmF0b3JcIjtcclxuaW1wb3J0IHtGaWxlVHlwZUltYWdlUGlwZX0gZnJvbSBcIi4uLy4uL3BpcGUvZmlsZS10eXBlLWltYWdlLnBpcGVcIjtcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gXCJyeGpzXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImNvLWZpbGUtdXBsb2FkXCIsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgICAgIDxjby10aWxlLXJlbmRlciBbaGlkZUltYWdlRGlzcGxheVdoZW5Ob0ltYWdlXT1cInRydWVcIiBbaW1hZ2VEYXRhVXJpXT1cInByZXZpZXdJbWFnZVwiIFtkZXNjcmlwdGlvbl09XCJsYWJlbFwiIChpbWFnZUNsaWNrKT1cIm9uSW1hZ2VDbGljaygpXCI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaW5mb1RlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPGNvLWJ1dHRvbiAqbmdJZj1cImlzRWRpdGFibGUgJiYgIXJlYWRvbmx5XCIgY2xhc3M9XCJlZGl0LWZpbGVcIiBbaWNvbkRhdGFdPVwiaWNvblNlcnZpY2UuZ2V0SWNvbihpY29ucy5BY2NvdW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25QZW5jaWxDbGljaygpXCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDxjby1pY29uICpuZ0lmPVwic2hvd1RyYXNoQ2FuICYmICFyZWFkb25seVwiIFtpY29uRGF0YV09XCJpY29uU2VydmljZS5nZXRJY29uKGljb25zLlRyYXNoYmluKVwiIGNsYXNzPVwidHJhc2hcIiAoY2xpY2spPVwib25EZWxldGVDbGljaygpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgICA8Y28taWNvbiB0aWxlLXJlbmRlci1pbWFnZS1jb250ZW50ICpuZ0lmPVwiaWNvblwiIGNsYXNzPVwiZGFyayBhZGQtYnV0dG9uXCIgW2ljb25dPVwiaWNvblwiPjwvY28taWNvbj5cclxuICAgICAgICA8L2NvLXRpbGUtcmVuZGVyPlxyXG4gICAgYCxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbi8vIFRoZSBHVUkgcGFydCBvZiB0aGUgZmlsZXMtdXBsb2FkIGNvbXBvbmVudC4gTm90IGEgc3RhbmRhbG9uZSBjb21wb25lbnQuXHJcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICAgIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoRm9ybUNvbXBvbmVudClcclxuICAgIHB1YmxpYyBmb3JtOiBGb3JtQ29tcG9uZW50O1xyXG5cclxuICAgIC8vIElucHV0IGZpbGUgdG8gdXBsb2FkLlxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgZmlsZShkb2N1bWVudDogQ29Eb2N1bWVudCkge1xyXG4gICAgICAgIHRoaXMuX2ZpbGUgPSBkb2N1bWVudDtcclxuICAgICAgICB0aGlzLl91cGRhdGVQcmV2aWV3SW1hZ2UoKTtcclxuICAgICAgICAvLyB3ZSBzaG91bGQgcHJvZHVjZSBhIHByZXZpZXcgaW1hZ2UgZnJvbSBnaXZlbiBkb2N1bWVudCwgYnV0IGl0cyBjb250ZW50cyBtaWdodCBub3QgeWV0IGhhdmUgYmVlbiBsb2FkZWQ6XHJcbiAgICAgICAgdGhpcy5fbGlzdGVuRm9yRG9jdW1lbnRCb2R5Q2hhbmdlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgZmlsZSgpOiBDb0RvY3VtZW50IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZmlsZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBTaG93IGljb24gYXMgcGxhY2Vob2xkZXJcclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgaWNvbjogSWNvbjtcclxuXHJcbiAgICAvLyBFbGVtZW50IGNsaWNrYWJsZVxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBsaW5rOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8vIElzIHRpbGUgYW4gJ2FkZGluZycgdGlsZVxyXG4gICAgQElucHV0KClcclxuICAgIEBJbnB1dEJvb2xlYW4oKVxyXG4gICAgcHVibGljIGlzQWRkaW5nVGlsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8vIFNldCB0aGlzIHBhcmFtZXRlciB0byBmYWxzZSBpZiBjbGlja2luZyBvayBvbiB0aGUgZG9jdW1lbnQgZWRpdCBwb3B1cCBkb2VzIG5vdCBzYXZlIHRoZSBkb2N1bWVudFxyXG4gICAgLy8gc28gdGhhdCByZWZyZXNoaW5nIG9mIGNvbnRlbnQgb24gZmlsZSBvcGVuIHdvcmtzIGNvcnJlY3RseVxyXG4gICAgQElucHV0KClcclxuICAgIEBJbnB1dEJvb2xlYW4oKVxyXG4gICAgcHVibGljIGZpbGVTYXZlc09uUG9wdXBPa0NsaWNrOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgQElucHV0Qm9vbGVhbigpXHJcbiAgICBwdWJsaWMgaXNFZGl0YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgbGFiZWwodmFsdWU6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX2xhYmVsID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGxhYmVsKCk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2ZpbGUgJiYgdGhpcy5fZmlsZS5kZXNjcmlwdGlvbikge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZmlsZS5kZXNjcmlwdGlvbjtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbGFiZWw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFNob3cgYSB0cmFzaGNhbiBpY29uXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNob3dUcmFzaENhbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8vIFNob3cgYW4gaW1hZ2UgYXMgcGxhY2Vob2xkZXJcclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2hvd0ltYWdlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBjdXN0b21JbWFnZUNsaWNrOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgZGVsZXRlQ2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgZWRpdENsaWNrOiBFdmVudEVtaXR0ZXI8Q29Eb2N1bWVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPENvRG9jdW1lbnQ+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgaW1hZ2VDbGljazogRXZlbnRFbWl0dGVyPENvRG9jdW1lbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxDb0RvY3VtZW50PigpO1xyXG5cclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuY28tZmlsZS11cGxvYWQnKVxyXG4gICAgcHVibGljIHNob3dDbGFzcygpOiBib29sZWFuIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKFwiY2xhc3MubGlua1wiKVxyXG4gICAgcHVibGljIGdldCBpc0xpbmsoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubGluaztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcHJldmlld0ltYWdlOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAgIHByaXZhdGUgX2ZpbGU6IENvRG9jdW1lbnQ7XHJcbiAgICBwcml2YXRlIF9kb2NCb2R5Q2hhbmdlU3ViOiBTdWJzY3JpcHRpb247XHJcbiAgICBwcml2YXRlIF9sYWJlbDogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIF9wcm9tcHRTZXJ2aWNlOiBQcm9tcHRTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2ZpbGVUeXBlSW1nUGlwZTogRmlsZVR5cGVJbWFnZVBpcGUsXHJcbiAgICAgICAgcHVibGljIGljb25TZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgICAgIC8vcHJpdmF0ZSBfZ2VuZXJhbERhbDogR2VuZXJhbERhbFJlcG9zaXRvcnlcclxuICAgICAgICApIHtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5fZG9jQm9keUNoYW5nZVN1Yikge1xyXG4gICAgICAgICAgICB0aGlzLl9kb2NCb2R5Q2hhbmdlU3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvbkRlbGV0ZUNsaWNrKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZGVsZXRlQ2xpY2suZW1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyAgb25JbWFnZUNsaWNrKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIGlmICh0aGlzLmlzQWRkaW5nVGlsZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmN1c3RvbUltYWdlQ2xpY2spIHtcclxuICAgICAgICAgICAgdGhpcy5pbWFnZUNsaWNrLm5leHQodGhpcy5fZmlsZSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy90b2RvIGZpeCBtZXRob2RzXHJcbiAgICAgICAgLy9maXJzdCBkb3dubG9hZCBkb2N1bWVudCBib2R5IGlmIGl0IGlzIHN0b3JlZCBpbiBhIHByaXZhdGUgY2RuIGRpcmVjdG9yeVxyXG4gICAgICAgIGlmICghdGhpcy5fZmlsZS5kb2N1bWVudEJvZHkpIHtcclxuICAgICAgICAgICAgLy9hd2FpdCB0aGlzLl9nZW5lcmFsRGFsLmdldERvY3VtZW50Q29udGVudCh0aGlzLl9maWxlKS50aGVuKGRvY3VtZW50Qm9keSA9PiB0aGlzLl9maWxlLmRvY3VtZW50Qm9keSA9IGRvY3VtZW50Qm9keSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLl9maWxlLmlzSW1hZ2VEb2N1bWVudCgpKSB7IC8vcHJldmlldyBpbWFnZVxyXG4gICAgICAgICAgICB0aGlzLl9wcm9tcHRTZXJ2aWNlLnNob3dJbWFnZSh0aGlzLmZpbGUuZG9jdW1lbnRCb2R5QXNEYXRhVXJpLCBcIlByZXZpZXdcIik7XHJcbiAgICAgICAgfSBlbHNlIHsgLy9kb3dubG9hZCBkb2N1bWVudFxyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgLy9GaWxlVXRpbHMuRG93bmxvYWRGcm9tRGF0YVVyaSh0aGlzLl9maWxlLmJvZHlBc0RhdGFVcmksIHRoaXMuX2ZpbGUuZmlsZU5hbWUpO1xyXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XHJcblxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBvblBlbmNpbENsaWNrKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIC8vIHJlZnJlc2ggZmlsZSBjb250ZW50IGlmIGZpbGVzIGFyZSBzYXZlZCBpbmRpdmlkdWFsbHlcclxuICAgICAgICBpZiAodGhpcy5fZmlsZS5oYXNJZCgpICYmIHRoaXMuZmlsZVNhdmVzT25Qb3B1cE9rQ2xpY2spIHtcclxuICAgICAgICAgICAgbGV0IGlkRm9yTGluazogbnVtYmVyO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fZmlsZS5pZEZvckxpbmspIHtcclxuICAgICAgICAgICAgICAgIGlkRm9yTGluayA9IHRoaXMuX2ZpbGUuaWRGb3JMaW5rO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIEdldCBtb3N0IHJlY2VudCB2ZXJzaW9uIG9mIHRoaXMgZmlsZSBpZiBpdCBoYXMgYW4gaWQgYW5kIHRoZXJlZm9yZSBoYXMgYmVlbiBzYXZlZCBpbiB0aGUgZGJcclxuICAgICAgICAgICAgLy9UT0RPIGZpeCBmZXRjaFxyXG4gICAgICAgICAgIC8vIHRoaXMuX2ZpbGUgPSBhd2FpdCB0aGlzLl9nZW5lcmFsRGFsLmdldERvY3VtZW50RnJvbVRhYmxlKHRoaXMuX2ZpbGUuZG9jdW1lbnRJZCk7XHJcbiAgICAgICAgICAgIC8vdGhpcy5fZmlsZS5pZEZvckxpbmsgPSBpZEZvckxpbms7IC8vIFJlc3RvcmUgdGhlIGlkRm9yTGlua1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5lZGl0Q2xpY2suZW1pdCh0aGlzLl9maWxlKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyB1cGRhdGVzIHRoaXMucHJldmlld0ltYWdlIHdoZW4gZG9jIGJvZHkgY2hhbmdlc1xyXG4gICAgcHJpdmF0ZSBfbGlzdGVuRm9yRG9jdW1lbnRCb2R5Q2hhbmdlcygpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5fZmlsZSkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fZG9jQm9keUNoYW5nZVN1Yikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZG9jQm9keUNoYW5nZVN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICB0aGlzLl9kb2NCb2R5Q2hhbmdlU3ViID0gdGhpcy5fZmlsZS5kb2N1bWVudEJvZHlDaGFuZ2Uuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVByZXZpZXdJbWFnZSgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfdXBkYXRlUHJldmlld0ltYWdlKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLl9maWxlKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9maWxlLmlzSW1hZ2VEb2N1bWVudCgpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnByZXZpZXdJbWFnZSA9IHRoaXMuX2ZpbGUuZG9jdW1lbnRCb2R5QXNEYXRhVXJpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucHJldmlld0ltYWdlID09PSBcIlwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy9UT0RPIGZpeCBmZXRjaFxyXG4gICAgICAgICAgICAgICAgICAgIC8vdGhpcy5fZ2VuZXJhbERhbC5nZXREb2N1bWVudENvbnRlbnQodGhpcy5fZmlsZSkudGhlbihkb2N1bWVudEJvZHkgPT4gdGhpcy5fZmlsZS5kb2N1bWVudEJvZHkgPSBkb2N1bWVudEJvZHkpO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vdGhpcy5wcmV2aWV3SW1hZ2UgPSB0aGlzLl9maWxlLmRvY3VtZW50Qm9keTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucHJldmlld0ltYWdlID0gdGhpcy5fZmlsZVR5cGVJbWdQaXBlLnRyYW5zZm9ybSh0aGlzLmZpbGUuZmlsZVR5cGVJbnRlcm5hbCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
1
|
+
import { __awaiter, __decorate } from "tslib";
|
|
2
|
+
import { Component, EventEmitter, HostBinding, Input, Output, ViewChild, ViewEncapsulation } from "@angular/core";
|
|
3
|
+
import { FormComponent, PromptService } from "@colijnit/corecomponents_v12";
|
|
4
|
+
import { Icon } from "../../enum/icon.enum";
|
|
5
|
+
import { InputBoolean } from "../../decorator/input-boolean.decorator";
|
|
6
|
+
import { FileTypeImagePipe } from "../../pipe/file-type-image.pipe";
|
|
7
|
+
import { IconCacheService } from "../../service/icon-cache.service";
|
|
8
|
+
// The GUI part of the files-upload component. Not a standalone component.
|
|
9
|
+
export class FileUploadComponent {
|
|
10
|
+
constructor(_promptService, _fileTypeImgPipe, iconService) {
|
|
11
|
+
this._promptService = _promptService;
|
|
12
|
+
this._fileTypeImgPipe = _fileTypeImgPipe;
|
|
13
|
+
this.iconService = iconService;
|
|
14
|
+
this.icons = Icon;
|
|
15
|
+
// Element clickable
|
|
16
|
+
this.link = false;
|
|
17
|
+
this.readonly = false;
|
|
18
|
+
// Is tile an 'adding' tile
|
|
19
|
+
this.isAddingTile = false;
|
|
20
|
+
// Set this parameter to false if clicking ok on the document edit popup does not save the document
|
|
21
|
+
// so that refreshing of content on file open works correctly
|
|
22
|
+
this.fileSavesOnPopupOkClick = true;
|
|
23
|
+
this.isEditable = false;
|
|
24
|
+
// Show a trashcan icon
|
|
25
|
+
this.showTrashCan = false;
|
|
26
|
+
// Show an image as placeholder
|
|
27
|
+
this.showImage = false;
|
|
28
|
+
this.customImageClick = false;
|
|
29
|
+
this.deleteClick = new EventEmitter();
|
|
30
|
+
this.editClick = new EventEmitter();
|
|
31
|
+
this.imageClick = new EventEmitter();
|
|
32
|
+
this.previewImage = "";
|
|
33
|
+
this._label = "";
|
|
34
|
+
}
|
|
35
|
+
// Input file to upload.
|
|
36
|
+
set file(document) {
|
|
37
|
+
this._file = document;
|
|
38
|
+
this._updatePreviewImage();
|
|
39
|
+
// we should produce a preview image from given document, but its contents might not yet have been loaded:
|
|
40
|
+
this._listenForDocumentBodyChanges();
|
|
41
|
+
}
|
|
42
|
+
get file() {
|
|
43
|
+
return this._file;
|
|
44
|
+
}
|
|
45
|
+
set label(value) {
|
|
46
|
+
this._label = value;
|
|
47
|
+
}
|
|
48
|
+
get label() {
|
|
49
|
+
if (this._file && this._file.description) {
|
|
50
|
+
return this._file.description;
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
return this._label;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
showClass() {
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
get isLink() {
|
|
60
|
+
return this.link;
|
|
61
|
+
}
|
|
62
|
+
ngOnDestroy() {
|
|
63
|
+
if (this._docBodyChangeSub) {
|
|
64
|
+
this._docBodyChangeSub.unsubscribe();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
onDeleteClick() {
|
|
68
|
+
this.deleteClick.emit();
|
|
69
|
+
}
|
|
70
|
+
onImageClick() {
|
|
71
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
72
|
+
if (this.isAddingTile) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
if (this.customImageClick) {
|
|
76
|
+
this.imageClick.next(this._file);
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
//todo fix methods
|
|
80
|
+
//first download document body if it is stored in a private cdn directory
|
|
81
|
+
if (!this._file.documentBody) {
|
|
82
|
+
//await this._generalDal.getDocumentContent(this._file).then(documentBody => this._file.documentBody = documentBody);
|
|
83
|
+
}
|
|
84
|
+
if (this._file.isImageDocument()) { //preview image
|
|
85
|
+
this._promptService.showImage(this.file.documentBodyAsDataUri, "Preview");
|
|
86
|
+
}
|
|
87
|
+
else { //download document
|
|
88
|
+
try {
|
|
89
|
+
//FileUtils.DownloadFromDataUri(this._file.bodyAsDataUri, this._file.fileName);
|
|
90
|
+
}
|
|
91
|
+
catch (e) {
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
onPencilClick() {
|
|
97
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
98
|
+
// refresh file content if files are saved individually
|
|
99
|
+
if (this._file.hasId() && this.fileSavesOnPopupOkClick) {
|
|
100
|
+
let idForLink;
|
|
101
|
+
if (this._file.idForLink) {
|
|
102
|
+
idForLink = this._file.idForLink;
|
|
103
|
+
}
|
|
104
|
+
// Get most recent version of this file if it has an id and therefore has been saved in the db
|
|
105
|
+
//TODO fix fetch
|
|
106
|
+
// this._file = await this._generalDal.getDocumentFromTable(this._file.documentId);
|
|
107
|
+
//this._file.idForLink = idForLink; // Restore the idForLink
|
|
108
|
+
}
|
|
109
|
+
this.editClick.emit(this._file);
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
// updates this.previewImage when doc body changes
|
|
113
|
+
_listenForDocumentBodyChanges() {
|
|
114
|
+
if (this._file) {
|
|
115
|
+
if (this._docBodyChangeSub) {
|
|
116
|
+
this._docBodyChangeSub.unsubscribe();
|
|
117
|
+
}
|
|
118
|
+
// @ts-ignore
|
|
119
|
+
this._docBodyChangeSub = this._file.documentBodyChange.subscribe(() => {
|
|
120
|
+
this._updatePreviewImage();
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
_updatePreviewImage() {
|
|
125
|
+
if (this._file) {
|
|
126
|
+
if (this._file.isImageDocument()) {
|
|
127
|
+
this.previewImage = this._file.documentBodyAsDataUri;
|
|
128
|
+
if (this.previewImage === "") {
|
|
129
|
+
//TODO fix fetch
|
|
130
|
+
//this._generalDal.getDocumentContent(this._file).then(documentBody => this._file.documentBody = documentBody);
|
|
131
|
+
//this.previewImage = this._file.documentBody;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
this.previewImage = this._fileTypeImgPipe.transform(this.file.fileTypeInternal);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
FileUploadComponent.decorators = [
|
|
141
|
+
{ type: Component, args: [{
|
|
142
|
+
selector: "co-file-upload",
|
|
143
|
+
template: `
|
|
144
|
+
<co-tile-render [hideImageDisplayWhenNoImage]="true" [imageDataUri]="previewImage" [description]="label" (imageClick)="onImageClick()">
|
|
145
|
+
<ng-template #infoTemplate>
|
|
146
|
+
<co-button *ngIf="isEditable && !readonly" class="edit-file" [iconData]="iconService.getIcon(icons.Account)"
|
|
147
|
+
(click)="onPencilClick()"></co-button>
|
|
148
|
+
</ng-template>
|
|
149
|
+
<co-icon *ngIf="showTrashCan && !readonly" [iconData]="iconService.getIcon(icons.Trashbin)" class="trash" (click)="onDeleteClick()"></co-icon>
|
|
150
|
+
<co-icon tile-render-image-content *ngIf="icon" class="dark add-button" [icon]="icon"></co-icon>
|
|
151
|
+
</co-tile-render>
|
|
152
|
+
`,
|
|
153
|
+
encapsulation: ViewEncapsulation.None
|
|
154
|
+
},] }
|
|
155
|
+
];
|
|
156
|
+
FileUploadComponent.ctorParameters = () => [
|
|
157
|
+
{ type: PromptService },
|
|
158
|
+
{ type: FileTypeImagePipe },
|
|
159
|
+
{ type: IconCacheService }
|
|
160
|
+
];
|
|
161
|
+
FileUploadComponent.propDecorators = {
|
|
162
|
+
form: [{ type: ViewChild, args: [FormComponent,] }],
|
|
163
|
+
file: [{ type: Input }],
|
|
164
|
+
icon: [{ type: Input }],
|
|
165
|
+
link: [{ type: Input }],
|
|
166
|
+
readonly: [{ type: Input }],
|
|
167
|
+
isAddingTile: [{ type: Input }],
|
|
168
|
+
fileSavesOnPopupOkClick: [{ type: Input }],
|
|
169
|
+
isEditable: [{ type: Input }],
|
|
170
|
+
label: [{ type: Input }],
|
|
171
|
+
showTrashCan: [{ type: Input }],
|
|
172
|
+
showImage: [{ type: Input }],
|
|
173
|
+
customImageClick: [{ type: Input }],
|
|
174
|
+
deleteClick: [{ type: Output }],
|
|
175
|
+
editClick: [{ type: Output }],
|
|
176
|
+
imageClick: [{ type: Output }],
|
|
177
|
+
showClass: [{ type: HostBinding, args: ['class.co-file-upload',] }],
|
|
178
|
+
isLink: [{ type: HostBinding, args: ["class.link",] }]
|
|
179
|
+
};
|
|
180
|
+
__decorate([
|
|
181
|
+
InputBoolean()
|
|
182
|
+
], FileUploadComponent.prototype, "isAddingTile", void 0);
|
|
183
|
+
__decorate([
|
|
184
|
+
InputBoolean()
|
|
185
|
+
], FileUploadComponent.prototype, "fileSavesOnPopupOkClick", void 0);
|
|
186
|
+
__decorate([
|
|
187
|
+
InputBoolean()
|
|
188
|
+
], FileUploadComponent.prototype, "isEditable", void 0);
|
|
189
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxhQUFhLEVBQUUsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFFMUUsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzFDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQWlCbEUsMEVBQTBFO0FBQzFFLE1BQU0sT0FBTyxtQkFBbUI7SUE4RjVCLFlBQ1ksY0FBNkIsRUFDN0IsZ0JBQW1DLEVBQ3BDLFdBQTZCO1FBRjVCLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBbUI7UUFDcEMsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO1FBaEd4QixVQUFLLEdBQWdCLElBQUksQ0FBQztRQXNCMUMsb0JBQW9CO1FBRWIsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUd0QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBRWpDLDJCQUEyQjtRQUdwQixpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUVyQyxtR0FBbUc7UUFDbkcsNkRBQTZEO1FBR3RELDRCQUF1QixHQUFZLElBQUksQ0FBQztRQUl4QyxlQUFVLEdB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QVMsU0FBQyxhQUFhO21CQUl2QixLQUFLO21CQWFMLEtBQUs7bUJBSUwsS0FBSzt1QkFHTCxLQUFLOzJCQUlMLEtBQUs7c0NBTUwsS0FBSzt5QkFJTCxLQUFLO29CQUlMLEtBQUs7MkJBY0wsS0FBSzt3QkFJTCxLQUFLOytCQUdMLEtBQUs7MEJBR0wsTUFBTTt3QkFHTixNQUFNO3lCQUdOLE1BQU07d0JBR04sV0FBVyxTQUFDLHNCQUFzQjtxQkFLbEMsV0FBVyxTQUFDLFlBQVk7O0FBbER6QjtJQURDLFlBQVksRUFBRTt5REFDc0I7QUFNckM7SUFEQyxZQUFZLEVBQUU7b0VBQ2dDO0FBSS9DO0lBREMsWUFBWSxFQUFFO3VEQUNvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge0Zvcm1Db21wb25lbnQsIFByb21wdFNlcnZpY2V9IGZyb20gXCJAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyXCI7XG5pbXBvcnQge0NvRG9jdW1lbnR9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9jby1kb2N1bWVudFwiO1xuaW1wb3J0IHtJY29ufSBmcm9tIFwiLi4vLi4vZW51bS9pY29uLmVudW1cIjtcbmltcG9ydCB7SW5wdXRCb29sZWFufSBmcm9tIFwiLi4vLi4vZGVjb3JhdG9yL2lucHV0LWJvb2xlYW4uZGVjb3JhdG9yXCI7XG5pbXBvcnQge0ZpbGVUeXBlSW1hZ2VQaXBlfSBmcm9tIFwiLi4vLi4vcGlwZS9maWxlLXR5cGUtaW1hZ2UucGlwZVwiO1xuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2VcIjtcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJjby1maWxlLXVwbG9hZFwiLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxjby10aWxlLXJlbmRlciBbaGlkZUltYWdlRGlzcGxheVdoZW5Ob0ltYWdlXT1cInRydWVcIiBbaW1hZ2VEYXRhVXJpXT1cInByZXZpZXdJbWFnZVwiIFtkZXNjcmlwdGlvbl09XCJsYWJlbFwiIChpbWFnZUNsaWNrKT1cIm9uSW1hZ2VDbGljaygpXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2luZm9UZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8Y28tYnV0dG9uICpuZ0lmPVwiaXNFZGl0YWJsZSAmJiAhcmVhZG9ubHlcIiBjbGFzcz1cImVkaXQtZmlsZVwiIFtpY29uRGF0YV09XCJpY29uU2VydmljZS5nZXRJY29uKGljb25zLkFjY291bnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25QZW5jaWxDbGljaygpXCI+PC9jby1idXR0b24+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPGNvLWljb24gKm5nSWY9XCJzaG93VHJhc2hDYW4gJiYgIXJlYWRvbmx5XCIgW2ljb25EYXRhXT1cImljb25TZXJ2aWNlLmdldEljb24oaWNvbnMuVHJhc2hiaW4pXCIgY2xhc3M9XCJ0cmFzaFwiIChjbGljayk9XCJvbkRlbGV0ZUNsaWNrKClcIj48L2NvLWljb24+XG4gICAgICAgICAgICA8Y28taWNvbiB0aWxlLXJlbmRlci1pbWFnZS1jb250ZW50ICpuZ0lmPVwiaWNvblwiIGNsYXNzPVwiZGFyayBhZGQtYnV0dG9uXCIgW2ljb25dPVwiaWNvblwiPjwvY28taWNvbj5cbiAgICAgICAgPC9jby10aWxlLXJlbmRlcj5cbiAgICBgLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuLy8gVGhlIEdVSSBwYXJ0IG9mIHRoZSBmaWxlcy11cGxvYWQgY29tcG9uZW50LiBOb3QgYSBzdGFuZGFsb25lIGNvbXBvbmVudC5cbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBJY29uID0gSWNvbjtcblxuICAgIEBWaWV3Q2hpbGQoRm9ybUNvbXBvbmVudClcbiAgICBwdWJsaWMgZm9ybTogRm9ybUNvbXBvbmVudDtcblxuICAgIC8vIElucHV0IGZpbGUgdG8gdXBsb2FkLlxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBmaWxlKGRvY3VtZW50OiBDb0RvY3VtZW50KSB7XG4gICAgICAgIHRoaXMuX2ZpbGUgPSBkb2N1bWVudDtcbiAgICAgICAgdGhpcy5fdXBkYXRlUHJldmlld0ltYWdlKCk7XG4gICAgICAgIC8vIHdlIHNob3VsZCBwcm9kdWNlIGEgcHJldmlldyBpbWFnZSBmcm9tIGdpdmVuIGRvY3VtZW50LCBidXQgaXRzIGNvbnRlbnRzIG1pZ2h0IG5vdCB5ZXQgaGF2ZSBiZWVuIGxvYWRlZDpcbiAgICAgICAgdGhpcy5fbGlzdGVuRm9yRG9jdW1lbnRCb2R5Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZmlsZSgpOiBDb0RvY3VtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbGU7XG4gICAgfVxuXG4gICAgLy8gU2hvdyBpY29uIGFzIHBsYWNlaG9sZGVyXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWNvbjogSWNvbjtcblxuICAgIC8vIEVsZW1lbnQgY2xpY2thYmxlXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbGluazogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8vIElzIHRpbGUgYW4gJ2FkZGluZycgdGlsZVxuICAgIEBJbnB1dCgpXG4gICAgQElucHV0Qm9vbGVhbigpXG4gICAgcHVibGljIGlzQWRkaW5nVGlsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLy8gU2V0IHRoaXMgcGFyYW1ldGVyIHRvIGZhbHNlIGlmIGNsaWNraW5nIG9rIG9uIHRoZSBkb2N1bWVudCBlZGl0IHBvcHVwIGRvZXMgbm90IHNhdmUgdGhlIGRvY3VtZW50XG4gICAgLy8gc28gdGhhdCByZWZyZXNoaW5nIG9mIGNvbnRlbnQgb24gZmlsZSBvcGVuIHdvcmtzIGNvcnJlY3RseVxuICAgIEBJbnB1dCgpXG4gICAgQElucHV0Qm9vbGVhbigpXG4gICAgcHVibGljIGZpbGVTYXZlc09uUG9wdXBPa0NsaWNrOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgQElucHV0Qm9vbGVhbigpXG4gICAgcHVibGljIGlzRWRpdGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGxhYmVsKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fbGFiZWwgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgbGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuX2ZpbGUgJiYgdGhpcy5fZmlsZS5kZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbGUuZGVzY3JpcHRpb247XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbGFiZWw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTaG93IGEgdHJhc2hjYW4gaWNvblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNob3dUcmFzaENhbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLy8gU2hvdyBhbiBpbWFnZSBhcyBwbGFjZWhvbGRlclxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNob3dJbWFnZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY3VzdG9tSW1hZ2VDbGljazogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGRlbGV0ZUNsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGVkaXRDbGljazogRXZlbnRFbWl0dGVyPENvRG9jdW1lbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxDb0RvY3VtZW50PigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGltYWdlQ2xpY2s6IEV2ZW50RW1pdHRlcjxDb0RvY3VtZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8Q29Eb2N1bWVudD4oKTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuY28tZmlsZS11cGxvYWQnKVxuICAgIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoXCJjbGFzcy5saW5rXCIpXG4gICAgcHVibGljIGdldCBpc0xpbmsoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxpbms7XG4gICAgfVxuXG4gICAgcHVibGljIHByZXZpZXdJbWFnZTogc3RyaW5nID0gXCJcIjtcblxuICAgIHByaXZhdGUgX2ZpbGU6IENvRG9jdW1lbnQ7XG4gICAgcHJpdmF0ZSBfZG9jQm9keUNoYW5nZVN1YjogU3Vic2NyaXB0aW9uO1xuICAgIHByaXZhdGUgX2xhYmVsOiBzdHJpbmcgPSBcIlwiO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX3Byb21wdFNlcnZpY2U6IFByb21wdFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX2ZpbGVUeXBlSW1nUGlwZTogRmlsZVR5cGVJbWFnZVBpcGUsXG4gICAgICAgIHB1YmxpYyBpY29uU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcbiAgICAgICAgLy9wcml2YXRlIF9nZW5lcmFsRGFsOiBHZW5lcmFsRGFsUmVwb3NpdG9yeVxuICAgICAgICApIHtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2RvY0JvZHlDaGFuZ2VTdWIpIHtcbiAgICAgICAgICAgIHRoaXMuX2RvY0JvZHlDaGFuZ2VTdWIudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbkRlbGV0ZUNsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlbGV0ZUNsaWNrLmVtaXQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgIG9uSW1hZ2VDbGljaygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMuaXNBZGRpbmdUaWxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuY3VzdG9tSW1hZ2VDbGljaykge1xuICAgICAgICAgICAgdGhpcy5pbWFnZUNsaWNrLm5leHQodGhpcy5fZmlsZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy90b2RvIGZpeCBtZXRob2RzXG4gICAgICAgIC8vZmlyc3QgZG93bmxvYWQgZG9jdW1lbnQgYm9keSBpZiBpdCBpcyBzdG9yZWQgaW4gYSBwcml2YXRlIGNkbiBkaXJlY3RvcnlcbiAgICAgICAgaWYgKCF0aGlzLl9maWxlLmRvY3VtZW50Qm9keSkge1xuICAgICAgICAgICAgLy9hd2FpdCB0aGlzLl9nZW5lcmFsRGFsLmdldERvY3VtZW50Q29udGVudCh0aGlzLl9maWxlKS50aGVuKGRvY3VtZW50Qm9keSA9PiB0aGlzLl9maWxlLmRvY3VtZW50Qm9keSA9IGRvY3VtZW50Qm9keSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX2ZpbGUuaXNJbWFnZURvY3VtZW50KCkpIHsgLy9wcmV2aWV3IGltYWdlXG4gICAgICAgICAgICB0aGlzLl9wcm9tcHRTZXJ2aWNlLnNob3dJbWFnZSh0aGlzLmZpbGUuZG9jdW1lbnRCb2R5QXNEYXRhVXJpLCBcIlByZXZpZXdcIik7XG4gICAgICAgIH0gZWxzZSB7IC8vZG93bmxvYWQgZG9jdW1lbnRcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgLy9GaWxlVXRpbHMuRG93bmxvYWRGcm9tRGF0YVVyaSh0aGlzLl9maWxlLmJvZHlBc0RhdGFVcmksIHRoaXMuX2ZpbGUuZmlsZU5hbWUpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgb25QZW5jaWxDbGljaygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgLy8gcmVmcmVzaCBmaWxlIGNvbnRlbnQgaWYgZmlsZXMgYXJlIHNhdmVkIGluZGl2aWR1YWxseVxuICAgICAgICBpZiAodGhpcy5fZmlsZS5oYXNJZCgpICYmIHRoaXMuZmlsZVNhdmVzT25Qb3B1cE9rQ2xpY2spIHtcbiAgICAgICAgICAgIGxldCBpZEZvckxpbms6IG51bWJlcjtcbiAgICAgICAgICAgIGlmICh0aGlzLl9maWxlLmlkRm9yTGluaykge1xuICAgICAgICAgICAgICAgIGlkRm9yTGluayA9IHRoaXMuX2ZpbGUuaWRGb3JMaW5rO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gR2V0IG1vc3QgcmVjZW50IHZlcnNpb24gb2YgdGhpcyBmaWxlIGlmIGl0IGhhcyBhbiBpZCBhbmQgdGhlcmVmb3JlIGhhcyBiZWVuIHNhdmVkIGluIHRoZSBkYlxuICAgICAgICAgICAgLy9UT0RPIGZpeCBmZXRjaFxuICAgICAgICAgICAvLyB0aGlzLl9maWxlID0gYXdhaXQgdGhpcy5fZ2VuZXJhbERhbC5nZXREb2N1bWVudEZyb21UYWJsZSh0aGlzLl9maWxlLmRvY3VtZW50SWQpO1xuICAgICAgICAgICAgLy90aGlzLl9maWxlLmlkRm9yTGluayA9IGlkRm9yTGluazsgLy8gUmVzdG9yZSB0aGUgaWRGb3JMaW5rXG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmVkaXRDbGljay5lbWl0KHRoaXMuX2ZpbGUpO1xuICAgIH1cblxuICAgIC8vIHVwZGF0ZXMgdGhpcy5wcmV2aWV3SW1hZ2Ugd2hlbiBkb2MgYm9keSBjaGFuZ2VzXG4gICAgcHJpdmF0ZSBfbGlzdGVuRm9yRG9jdW1lbnRCb2R5Q2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2ZpbGUpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9kb2NCb2R5Q2hhbmdlU3ViKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZG9jQm9keUNoYW5nZVN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgdGhpcy5fZG9jQm9keUNoYW5nZVN1YiA9IHRoaXMuX2ZpbGUuZG9jdW1lbnRCb2R5Q2hhbmdlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlUHJldmlld0ltYWdlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3VwZGF0ZVByZXZpZXdJbWFnZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2ZpbGUpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9maWxlLmlzSW1hZ2VEb2N1bWVudCgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcmV2aWV3SW1hZ2UgPSB0aGlzLl9maWxlLmRvY3VtZW50Qm9keUFzRGF0YVVyaTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wcmV2aWV3SW1hZ2UgPT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgLy9UT0RPIGZpeCBmZXRjaFxuICAgICAgICAgICAgICAgICAgICAvL3RoaXMuX2dlbmVyYWxEYWwuZ2V0RG9jdW1lbnRDb250ZW50KHRoaXMuX2ZpbGUpLnRoZW4oZG9jdW1lbnRCb2R5ID0+IHRoaXMuX2ZpbGUuZG9jdW1lbnRCb2R5ID0gZG9jdW1lbnRCb2R5KTtcbiAgICAgICAgICAgICAgICAgICAgLy90aGlzLnByZXZpZXdJbWFnZSA9IHRoaXMuX2ZpbGUuZG9jdW1lbnRCb2R5O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcmV2aWV3SW1hZ2UgPSB0aGlzLl9maWxlVHlwZUltZ1BpcGUudHJhbnNmb3JtKHRoaXMuZmlsZS5maWxlVHlwZUludGVybmFsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxufVxuIl19
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import { NgModule } from "@angular/core";
|
|
2
|
-
import { FileUploadComponent } from "./file-upload.component";
|
|
3
|
-
import { ButtonModule, IconModule } from "@colijnit/corecomponents_v12";
|
|
4
|
-
import { TileRenderModule } from "../tile-renderer/tile-render.module";
|
|
5
|
-
import { CommonModule } from "@angular/common";
|
|
6
|
-
export class FileUploadModule {
|
|
7
|
-
}
|
|
8
|
-
FileUploadModule.decorators = [
|
|
9
|
-
{ type: NgModule, args: [{
|
|
10
|
-
imports: [
|
|
11
|
-
IconModule,
|
|
12
|
-
TileRenderModule,
|
|
13
|
-
CommonModule,
|
|
14
|
-
ButtonModule
|
|
15
|
-
],
|
|
16
|
-
declarations: [
|
|
17
|
-
FileUploadComponent
|
|
18
|
-
],
|
|
19
|
-
exports: [
|
|
20
|
-
FileUploadComponent
|
|
21
|
-
],
|
|
22
|
-
providers: []
|
|
23
|
-
},] }
|
|
24
|
-
];
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { NgModule } from "@angular/core";
|
|
2
|
+
import { FileUploadComponent } from "./file-upload.component";
|
|
3
|
+
import { ButtonModule, IconModule } from "@colijnit/corecomponents_v12";
|
|
4
|
+
import { TileRenderModule } from "../tile-renderer/tile-render.module";
|
|
5
|
+
import { CommonModule } from "@angular/common";
|
|
6
|
+
export class FileUploadModule {
|
|
7
|
+
}
|
|
8
|
+
FileUploadModule.decorators = [
|
|
9
|
+
{ type: NgModule, args: [{
|
|
10
|
+
imports: [
|
|
11
|
+
IconModule,
|
|
12
|
+
TileRenderModule,
|
|
13
|
+
CommonModule,
|
|
14
|
+
ButtonModule
|
|
15
|
+
],
|
|
16
|
+
declarations: [
|
|
17
|
+
FileUploadComponent
|
|
18
|
+
],
|
|
19
|
+
exports: [
|
|
20
|
+
FileUploadComponent
|
|
21
|
+
],
|
|
22
|
+
providers: []
|
|
23
|
+
},] }
|
|
24
|
+
];
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFDLFlBQVksRUFBRSxVQUFVLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFtQjdDLE1BQU0sT0FBTyxnQkFBZ0I7OztZQWhCNUIsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxVQUFVO29CQUNWLGdCQUFnQjtvQkFDaEIsWUFBWTtvQkFDWixZQUFZO2lCQUNiO2dCQUNELFlBQVksRUFBRTtvQkFDWixtQkFBbUI7aUJBQ3BCO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxtQkFBbUI7aUJBQ3BCO2dCQUNELFNBQVMsRUFBRSxFQUNWO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtGaWxlVXBsb2FkQ29tcG9uZW50fSBmcm9tIFwiLi9maWxlLXVwbG9hZC5jb21wb25lbnRcIjtcbmltcG9ydCB7QnV0dG9uTW9kdWxlLCBJY29uTW9kdWxlfSBmcm9tIFwiQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMlwiO1xuaW1wb3J0IHtUaWxlUmVuZGVyTW9kdWxlfSBmcm9tIFwiLi4vdGlsZS1yZW5kZXJlci90aWxlLXJlbmRlci5tb2R1bGVcIjtcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5cblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIEljb25Nb2R1bGUsXG4gICAgVGlsZVJlbmRlck1vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQnV0dG9uTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEZpbGVVcGxvYWRDb21wb25lbnRcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEZpbGVVcGxvYWRDb21wb25lbnRcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZE1vZHVsZSB7XG5cbn1cbiJdfQ==
|