@colijnit/sharedcomponents 1.0.64 → 1.0.65
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 +10078 -9926
- package/bundles/colijnit-sharedcomponents.umd.js.map +1 -1
- package/colijnit-sharedcomponents.d.ts +92 -91
- package/colijnit-sharedcomponents.metadata.json +1 -1
- package/esm2015/colijnit-sharedcomponents.js +93 -92
- 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/components/stock-location-popup/stock-location-popup.component.js +210 -0
- package/esm2015/lib/components/stock/components/stock-location/stock-location.component.js +248 -251
- 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 +74 -72
- 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 -48
- 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 +251 -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 -160
- package/esm2015/lib/components/stock/stock.component.js +237 -237
- package/esm2015/lib/components/stock/stock.module.js +82 -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 +49 -48
- 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 +48 -47
- 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 +10622 -10408
- 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/components/stock-location-popup/stock-location-popup.component.d.ts +41 -0
- package/lib/components/stock/components/stock-location/stock-location.component.d.ts +54 -52
- 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 +71 -69
- 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 +59 -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 -38
- package/lib/components/stock/stock.component.d.ts +64 -64
- package/lib/components/stock/stock.module.d.ts +2 -2
- package/lib/components/stock/style/_layout.scss +519 -473
- package/lib/components/stock/style/_material-definition.scss +28 -28
- 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 -83
- 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 +47 -46
- 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 +1 -1
- package/public-api.d.ts +27 -27
|
@@ -1,242 +1,242 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { Component, ElementRef, EventEmitter, HostBinding, Input, Output, ViewChild, ViewEncapsulation } from "@angular/core";
|
|
3
|
-
import { animate, state, style, transition, trigger } from "@angular/animations";
|
|
4
|
-
import { PDFDocument } from "pdf-lib";
|
|
5
|
-
import * as PDFJS from "pdfjs-dist/legacy/build/pdf";
|
|
6
|
-
import pdfjsWorker from "pdfjs-dist/build/pdf.worker.entry";
|
|
7
|
-
export class DocsignComponent {
|
|
8
|
-
constructor() {
|
|
9
|
-
this.saveButtonLabel = 'SAVE';
|
|
10
|
-
this.clearButtonLabel = 'CLEAR';
|
|
11
|
-
this.signDocumentButtonLabel = 'SIGN_DOCUMENT';
|
|
12
|
-
this.cancelButtonLabel = 'CANCEL';
|
|
13
|
-
this.pdfSaved = new EventEmitter();
|
|
14
|
-
this.cancelClick = new EventEmitter();
|
|
15
|
-
this.showSignaturePopup = false;
|
|
16
|
-
this.showSigBuyer = false;
|
|
17
|
-
this.showSigSeller = false;
|
|
18
|
-
this.showSignatures = false;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Load an existing [[PDFDocument]]. The input data can be provided in
|
|
22
|
-
* multiple formats:
|
|
23
|
-
*
|
|
24
|
-
* | Type | Contents |
|
|
25
|
-
* | ------------- | ------------------------------------------------------ |
|
|
26
|
-
* | `string` | A base64 encoded string (or data URI) containing a PDF |
|
|
27
|
-
* | `Uint8Array` | The raw bytes of a PDF |
|
|
28
|
-
* | `ArrayBuffer` | The raw bytes of a PDF |
|
|
29
|
-
*
|
|
30
|
-
* For example:
|
|
31
|
-
* ```js
|
|
32
|
-
* import { PDFDocument } from 'pdf-lib'
|
|
33
|
-
*
|
|
34
|
-
* // pdf=string
|
|
35
|
-
* const base64 =
|
|
36
|
-
* 'JVBERi0xLjcKJYGBgYEKCjUgMCBvYmoKPDwKL0ZpbHRlciAvRmxhdGVEZWNvZGUKL0xlbm' +
|
|
37
|
-
* 'd0aCAxMDQKPj4Kc3RyZWFtCniccwrhMlAAwaJ0Ln2P1Jyy1JLM5ERdc0MjCwUjE4WQNC4Q' +
|
|
38
|
-
* '6cNlCFZkqGCqYGSqEJLLZWNuYGZiZmbkYuZsZmlmZGRgZmluDCQNzc3NTM2NzdzMXMxMjQ' +
|
|
39
|
-
* 'ztFEKyuEK0uFxDuAAOERdVCmVuZHN0cmVhbQplbmRvYmoKCjYgMCBvYmoKPDwKL0ZpbHRl' +
|
|
40
|
-
* 'ciAvRmxhdGVEZWNvZGUKL1R5cGUgL09ialN0bQovTiA0Ci9GaXJzdCAyMAovTGVuZ3RoID' +
|
|
41
|
-
* 'IxNQo+PgpzdHJlYW0KeJxVj9GqwjAMhu/zFHkBzTo3nCCCiiKIHPEICuJF3cKoSCu2E8/b' +
|
|
42
|
-
* '20wPIr1p8v9/8kVhgilmGfawX2CGaVrgcAi0/bsy0lrX7IGWpvJ4iJYEN3gEmrrGBlQwGs' +
|
|
43
|
-
* 'HHO9VBX1wNrxAqMX87RBD5xpJuddqwd82tjAHxzV1U5LPgy52DKXWnr1Lheg+j/c/pzGVr' +
|
|
44
|
-
* 'iqV0VlwZPXGPCJjElw/ybkwUmeoWgxesDXGhHJC/D/iikp1Av80ptKU0FdBEe25pPihAM1' +
|
|
45
|
-
* 'u6ytgaaWfs2Hrz35CJT1+EWmAKZW5kc3RyZWFtCmVuZG9iagoKNyAwIG9iago8PAovU2l6' +
|
|
46
|
-
* 'ZSA4Ci9Sb290IDIgMCBSCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9UeXBlIC9YUmVmCi9MZW' +
|
|
47
|
-
* '5ndGggMzgKL1cgWyAxIDIgMiBdCi9JbmRleCBbIDAgOCBdCj4+CnN0cmVhbQp4nBXEwREA' +
|
|
48
|
-
* 'EBAEsCwz3vrvRmOOyyOoGhZdutHN2MT55fIAVocD+AplbmRzdHJlYW0KZW5kb2JqCgpzdG' +
|
|
49
|
-
* 'FydHhyZWYKNTEwCiUlRU9G'
|
|
50
|
-
*
|
|
51
|
-
* const dataUri = 'data:application/pdf;base64,' + base64
|
|
52
|
-
*
|
|
53
|
-
* const pdfDoc1 = await PDFDocument.load(base64)
|
|
54
|
-
* const pdfDoc2 = await PDFDocument.load(dataUri)
|
|
55
|
-
*
|
|
56
|
-
* // pdf=Uint8Array
|
|
57
|
-
* import fs from 'fs'
|
|
58
|
-
* const uint8Array = fs.readFileSync('with_update_sections.pdf')
|
|
59
|
-
* const pdfDoc3 = await PDFDocument.load(uint8Array)
|
|
60
|
-
*
|
|
61
|
-
* // pdf=ArrayBuffer
|
|
62
|
-
* const url = 'https://pdf-lib.js.org/assets/with_update_sections.pdf'
|
|
63
|
-
* const arrayBuffer = await fetch(url).then(res => res.arrayBuffer())
|
|
64
|
-
* const pdfDoc4 = await PDFDocument.load(arrayBuffer)
|
|
65
|
-
*
|
|
66
|
-
* ```
|
|
67
|
-
*
|
|
68
|
-
* @param pdf The input data containing a PDF document.
|
|
69
|
-
* @param options The options to be used when loading the document.
|
|
70
|
-
* @returns Resolves with a document loaded from the input.
|
|
71
|
-
*/
|
|
72
|
-
set pdf(value) {
|
|
73
|
-
if (value) {
|
|
74
|
-
this._handlePdfData(value);
|
|
75
|
-
this._openPDF();
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
get pdf() {
|
|
79
|
-
return this._pdf;
|
|
80
|
-
}
|
|
81
|
-
showClass() {
|
|
82
|
-
return true;
|
|
83
|
-
}
|
|
84
|
-
saveFirstSignature(sig) {
|
|
85
|
-
this._saveSignature(sig, this.sigBuyerPosition);
|
|
86
|
-
this.showSigBuyer = false;
|
|
87
|
-
this._savePdf();
|
|
88
|
-
}
|
|
89
|
-
saveSecondSignature(sig) {
|
|
90
|
-
this._saveSignature(sig, this.sigSellerPosition);
|
|
91
|
-
this.showSigSeller = false;
|
|
92
|
-
this._savePdf();
|
|
93
|
-
}
|
|
94
|
-
_openPDF() {
|
|
95
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
96
|
-
// first create reader to check signatures
|
|
97
|
-
this._checkSignatures();
|
|
98
|
-
this.pdfDoc = yield PDFDocument.load(this._pdf, {
|
|
99
|
-
updateMetadata: false
|
|
100
|
-
});
|
|
101
|
-
const pdfDataUri = yield this.pdfDoc.saveAsBase64({ dataUri: true });
|
|
102
|
-
this.iframe.nativeElement.src = pdfDataUri;
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
_savePdf() {
|
|
106
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
107
|
-
if (!this.showSigBuyer && !this.showSigSeller) {
|
|
108
|
-
// ready, save the pdf and emit result
|
|
109
|
-
const result = yield this.pdfDoc.saveAsBase64();
|
|
110
|
-
this.pdfSaved.next(result);
|
|
111
|
-
}
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
_checkSignatures() {
|
|
115
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
116
|
-
let pdfWorkerSrc;
|
|
117
|
-
if (window.hasOwnProperty('pdfWorkerSrc') &&
|
|
118
|
-
typeof window.pdfWorkerSrc === 'string' &&
|
|
119
|
-
window.pdfWorkerSrc) {
|
|
120
|
-
pdfWorkerSrc = window.pdfWorkerSrc;
|
|
121
|
-
}
|
|
122
|
-
else {
|
|
123
|
-
pdfWorkerSrc = pdfjsWorker;
|
|
124
|
-
}
|
|
125
|
-
PDFJS.GlobalWorkerOptions.workerSrc = pdfWorkerSrc;
|
|
126
|
-
const pdfReader = yield PDFJS.getDocument(this._pdf).promise;
|
|
127
|
-
const numPages = pdfReader.numPages;
|
|
128
|
-
for (let i = 0; i < numPages; i++) {
|
|
129
|
-
const page = yield pdfReader.getPage(i + 1);
|
|
130
|
-
const text = yield page.getTextContent();
|
|
131
|
-
page.cleanup();
|
|
132
|
-
if (this.firstSignatureField) {
|
|
133
|
-
this.sigBuyerPosition = this._getPositionSignature(text, this.firstSignatureField);
|
|
134
|
-
if (this.sigBuyerPosition.width > 0 && this.sigBuyerPosition.height > 0) {
|
|
135
|
-
this.sigBuyerPosition.page = i;
|
|
136
|
-
this.showSigBuyer = true;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
if (this.secondSignatureField) {
|
|
140
|
-
this.sigSellerPosition = this._getPositionSignature(text, this.secondSignatureField);
|
|
141
|
-
if (this.sigSellerPosition.width > 0 && this.sigSellerPosition.height > 0) {
|
|
142
|
-
this.sigSellerPosition.page = i;
|
|
143
|
-
this.showSigSeller = true;
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
|
-
_getPositionSignature(textItem, signatureField) {
|
|
150
|
-
const sigItem = textItem.items.find((i) => i.str.toLowerCase() === signatureField.toLowerCase());
|
|
151
|
-
if (sigItem) {
|
|
152
|
-
textItem.items.slice(textItem.items.indexOf(sigItem), 1);
|
|
153
|
-
return {
|
|
154
|
-
x: sigItem.transform[4],
|
|
155
|
-
y: sigItem.transform[5],
|
|
156
|
-
width: sigItem.width,
|
|
157
|
-
height: sigItem.height,
|
|
158
|
-
page: 0
|
|
159
|
-
};
|
|
160
|
-
}
|
|
161
|
-
return { x: 0, y: 0, width: 0, height: 0, page: 0 };
|
|
162
|
-
}
|
|
163
|
-
_saveSignature(sig, dimensions) {
|
|
164
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
165
|
-
const jpgImage = yield this.pdfDoc.embedPng(sig);
|
|
166
|
-
const page = yield this.pdfDoc.getPage(dimensions.page);
|
|
167
|
-
page.drawImage(jpgImage, {
|
|
168
|
-
x: ((dimensions.x + (dimensions.width / 2)) - (200 / 2)),
|
|
169
|
-
y: ((dimensions.y + (dimensions.height / 2)) - (100 / 2)),
|
|
170
|
-
width: 200,
|
|
171
|
-
height: 100
|
|
172
|
-
});
|
|
173
|
-
});
|
|
174
|
-
}
|
|
175
|
-
_handlePdfData(pdfData) {
|
|
176
|
-
if (typeof pdfData === 'string') {
|
|
177
|
-
this._preparePDF(pdfData);
|
|
178
|
-
}
|
|
179
|
-
else {
|
|
180
|
-
this._pdf = pdfData;
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
_preparePDF(base64) {
|
|
184
|
-
var binary_string = window.atob(base64);
|
|
185
|
-
var len = binary_string.length;
|
|
186
|
-
var bytes = new Uint8Array(len);
|
|
187
|
-
for (var i = 0; i < len; i++) {
|
|
188
|
-
bytes[i] = binary_string.charCodeAt(i);
|
|
189
|
-
}
|
|
190
|
-
this._pdf = bytes;
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
DocsignComponent.decorators = [
|
|
194
|
-
{ type: Component, args: [{
|
|
195
|
-
selector: "co-docsign",
|
|
196
|
-
template: `
|
|
197
|
-
<iframe #iframe></iframe>
|
|
198
|
-
<co-signatures *ngIf="showSignatures" @showHideSignature
|
|
199
|
-
[showFirstSignature]="showSigBuyer"
|
|
200
|
-
[firstSignatureTitle]="firstSignatureLabel"
|
|
201
|
-
[showSecondSignature]="showSigSeller"
|
|
202
|
-
[secondSignatureTitle]="secondSignatureLabel"
|
|
203
|
-
[saveButtonLabel]="saveButtonLabel"
|
|
204
|
-
[clearButtonLabel]="clearButtonLabel"
|
|
205
|
-
(saveFirstSignature)="saveFirstSignature($event)"
|
|
206
|
-
(saveSecondSignature)="saveSecondSignature($event)"
|
|
207
|
-
></co-signatures>
|
|
208
|
-
<input type="button" *ngIf="(showSigBuyer || showSigSeller) && !showSignatures" class="button button-sign-document"
|
|
209
|
-
[value]="signDocumentButtonLabel"
|
|
210
|
-
(click)="showSignatures = true"
|
|
211
|
-
/>
|
|
212
|
-
<input type="button" class="button button-cancel"
|
|
213
|
-
[value]="cancelButtonLabel"
|
|
214
|
-
(click)="cancelClick.emit($event)"
|
|
215
|
-
/>
|
|
216
|
-
`,
|
|
217
|
-
animations: [
|
|
218
|
-
trigger("showHideSignature", [
|
|
219
|
-
state("void", style({ transform: "translate(-50%, -50%) scale(0)" })),
|
|
220
|
-
state("*", style({ transform: "translate(-50%, -50%) scale(1)" })),
|
|
221
|
-
transition("void <=> *", animate("200ms ease-in-out")),
|
|
222
|
-
])
|
|
223
|
-
],
|
|
224
|
-
encapsulation: ViewEncapsulation.None
|
|
225
|
-
},] }
|
|
226
|
-
];
|
|
227
|
-
DocsignComponent.propDecorators = {
|
|
228
|
-
iframe: [{ type: ViewChild, args: ["iframe", { read: ElementRef },] }],
|
|
229
|
-
pdf: [{ type: Input }],
|
|
230
|
-
firstSignatureLabel: [{ type: Input }],
|
|
231
|
-
firstSignatureField: [{ type: Input }],
|
|
232
|
-
secondSignatureLabel: [{ type: Input }],
|
|
233
|
-
secondSignatureField: [{ type: Input }],
|
|
234
|
-
saveButtonLabel: [{ type: Input }],
|
|
235
|
-
clearButtonLabel: [{ type: Input }],
|
|
236
|
-
signDocumentButtonLabel: [{ type: Input }],
|
|
237
|
-
cancelButtonLabel: [{ type: Input }],
|
|
238
|
-
pdfSaved: [{ type: Output }],
|
|
239
|
-
cancelClick: [{ type: Output }],
|
|
240
|
-
showClass: [{ type: HostBinding, args: ['class.co-docsign',] }]
|
|
241
|
-
};
|
|
242
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jc2lnbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9kb2NzaWduL2RvY3NpZ24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVILE9BQU8sRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDL0UsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLFNBQVMsQ0FBQztBQUNwQyxPQUFPLEtBQUssS0FBSyxNQUFNLDZCQUE2QixDQUFDO0FBQ3JELE9BQU8sV0FBVyxNQUFNLG1DQUFtQyxDQUFDO0FBMkM1RCxNQUFNLE9BQU8sZ0JBQWdCO0lBaEM3QjtRQWlIUyxvQkFBZSxHQUFXLE1BQU0sQ0FBQztRQUdqQyxxQkFBZ0IsR0FBVyxPQUFPLENBQUM7UUFHbkMsNEJBQXVCLEdBQVcsZUFBZSxDQUFDO1FBR2xELHNCQUFpQixHQUFXLFFBQVEsQ0FBQztRQUdyQyxhQUFRLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFHNUQsZ0JBQVcsR0FBNkIsSUFBSSxZQUFZLEVBQWMsQ0FBQztRQU92RSx1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFDcEMsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFFOUIsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFFL0IsbUJBQWMsR0FBWSxLQUFLLENBQUM7SUFrSHpDLENBQUM7SUExTkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQW1ERztJQUNILElBQ1csR0FBRyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNqQjtJQUNILENBQUM7SUFFRCxJQUFXLEdBQUc7UUFDWixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQWlDTSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBYU0sa0JBQWtCLENBQUMsR0FBVztRQUNuQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVNLG1CQUFtQixDQUFDLEdBQVc7UUFDcEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFYSxRQUFROztZQUNwQiwwQ0FBMEM7WUFDMUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFFeEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDOUMsY0FBYyxFQUFFLEtBQUs7YUFDdEIsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3JFLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEdBQUcsR0FBRyxVQUFVLENBQUM7UUFDN0MsQ0FBQztLQUFBO0lBRWEsUUFBUTs7WUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO2dCQUM3QyxzQ0FBc0M7Z0JBQ3RDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDaEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDNUI7UUFDSCxDQUFDO0tBQUE7SUFFYSxnQkFBZ0I7O1lBQzVCLElBQUksWUFBWSxDQUFDO1lBQ2pCLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUM7Z0JBQ3ZDLE9BQVEsTUFBYyxDQUFDLFlBQVksS0FBSyxRQUFRO2dCQUMvQyxNQUFjLENBQUMsWUFBWSxFQUFFO2dCQUM5QixZQUFZLEdBQUksTUFBYyxDQUFDLFlBQVksQ0FBQzthQUM3QztpQkFDSTtnQkFDSCxZQUFZLEdBQUcsV0FBVyxDQUFDO2FBQzVCO1lBQ0QsS0FBSyxDQUFDLG1CQUFtQixDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUM7WUFDbkQsTUFBTSxTQUFTLEdBQUcsTUFBTSxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDN0QsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQztZQUNwQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNqQyxNQUFNLElBQUksR0FBRyxNQUFNLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUM1QyxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDekMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNmLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO29CQUM1QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztvQkFDbkYsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTt3QkFDdkUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7d0JBQy9CLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO3FCQUMxQjtpQkFDRjtnQkFDRCxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtvQkFDN0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7b0JBQ3JGLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7d0JBQ3pFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO3dCQUNoQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztxQkFDM0I7aUJBQ0Y7YUFDRjtRQUNILENBQUM7S0FBQTtJQUVPLHFCQUFxQixDQUFDLFFBQWEsRUFBRSxjQUFzQjtRQUNqRSxNQUFNLE9BQU8sR0FBdUIsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLEtBQUssY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDMUgsSUFBSSxPQUFPLEVBQUU7WUFDWCxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN6RCxPQUFPO2dCQUNMLENBQUMsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztnQkFDdkIsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7Z0JBQ3BCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtnQkFDdEIsSUFBSSxFQUFFLENBQUM7YUFDUixDQUFDO1NBQ0g7UUFDRCxPQUFPLEVBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFDLENBQUE7SUFDbkQsQ0FBQztJQUVhLGNBQWMsQ0FBQyxHQUFXLEVBQUUsVUFBeUI7O1lBQ2pFLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDakQsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUU7Z0JBQ3ZCLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDeEQsQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUN6RCxLQUFLLEVBQUUsR0FBRztnQkFDVixNQUFNLEVBQUUsR0FBRzthQUNaLENBQUMsQ0FBQztRQUNMLENBQUM7S0FBQTtJQUVPLGNBQWMsQ0FBQyxPQUFZO1FBQ2pDLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFO1lBQy9CLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDM0I7YUFBTTtZQUNMLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQztJQUVPLFdBQVcsQ0FBQyxNQUFjO1FBQ2hDLElBQUksYUFBYSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEMsSUFBSSxHQUFHLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQztRQUMvQixJQUFJLEtBQUssR0FBRyxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNoQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzVCLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3hDO1FBQ0QsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7SUFDcEIsQ0FBQzs7O1lBN1BGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsWUFBWTtnQkFDdEIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CVDtnQkFDRCxVQUFVLEVBQUU7b0JBQ1YsT0FBTyxDQUFDLG1CQUFtQixFQUFFO3dCQUMzQixLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFDLFNBQVMsRUFBRSxnQ0FBZ0MsRUFBQyxDQUFDLENBQUM7d0JBQ25FLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUMsU0FBUyxFQUFFLGdDQUFnQyxFQUFDLENBQUMsQ0FBQzt3QkFDaEUsVUFBVSxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztxQkFDdkQsQ0FBQztpQkFDSDtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O3FCQUVFLFNBQVMsU0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2tCQXVEeEMsS0FBSztrQ0FZTCxLQUFLO2tDQUdMLEtBQUs7bUNBR0wsS0FBSzttQ0FHTCxLQUFLOzhCQUdMLEtBQUs7K0JBR0wsS0FBSztzQ0FHTCxLQUFLO2dDQUdMLEtBQUs7dUJBR0wsTUFBTTswQkFHTixNQUFNO3dCQUdOLFdBQVcsU0FBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7YW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyfSBmcm9tIFwiQGFuZ3VsYXIvYW5pbWF0aW9uc1wiO1xuaW1wb3J0IHtQREZEb2N1bWVudH0gZnJvbSBcInBkZi1saWJcIjtcbmltcG9ydCAqIGFzIFBERkpTIGZyb20gXCJwZGZqcy1kaXN0L2xlZ2FjeS9idWlsZC9wZGZcIjtcbmltcG9ydCBwZGZqc1dvcmtlciBmcm9tIFwicGRmanMtZGlzdC9idWlsZC9wZGYud29ya2VyLmVudHJ5XCI7XG5pbXBvcnQge1RleHRJdGVtfSBmcm9tIFwicGRmanMtZGlzdC90eXBlcy9zcmMvZGlzcGxheS9hcGlcIjtcblxuZXhwb3J0IGludGVyZmFjZSBUZXh0RGltZW5zaW9uIHtcbiAgeDogbnVtYmVyLFxuICB5OiBudW1iZXIsXG4gIHdpZHRoOiBudW1iZXIsXG4gIGhlaWdodDogbnVtYmVyLFxuICBwYWdlOiBudW1iZXJcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImNvLWRvY3NpZ25cIixcbiAgdGVtcGxhdGU6IGBcbiAgICA8aWZyYW1lICNpZnJhbWU+PC9pZnJhbWU+XG4gICAgPGNvLXNpZ25hdHVyZXMgKm5nSWY9XCJzaG93U2lnbmF0dXJlc1wiIEBzaG93SGlkZVNpZ25hdHVyZVxuICAgICAgICAgICAgICAgICAgICAgW3Nob3dGaXJzdFNpZ25hdHVyZV09XCJzaG93U2lnQnV5ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgW2ZpcnN0U2lnbmF0dXJlVGl0bGVdPVwiZmlyc3RTaWduYXR1cmVMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICBbc2hvd1NlY29uZFNpZ25hdHVyZV09XCJzaG93U2lnU2VsbGVyXCJcbiAgICAgICAgICAgICAgICAgICAgIFtzZWNvbmRTaWduYXR1cmVUaXRsZV09XCJzZWNvbmRTaWduYXR1cmVMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICBbc2F2ZUJ1dHRvbkxhYmVsXT1cInNhdmVCdXR0b25MYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICBbY2xlYXJCdXR0b25MYWJlbF09XCJjbGVhckJ1dHRvbkxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgIChzYXZlRmlyc3RTaWduYXR1cmUpPVwic2F2ZUZpcnN0U2lnbmF0dXJlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgKHNhdmVTZWNvbmRTaWduYXR1cmUpPVwic2F2ZVNlY29uZFNpZ25hdHVyZSgkZXZlbnQpXCJcbiAgICA+PC9jby1zaWduYXR1cmVzPlxuICAgIDxpbnB1dCB0eXBlPVwiYnV0dG9uXCIgKm5nSWY9XCIoc2hvd1NpZ0J1eWVyIHx8IHNob3dTaWdTZWxsZXIpICYmICFzaG93U2lnbmF0dXJlc1wiIGNsYXNzPVwiYnV0dG9uIGJ1dHRvbi1zaWduLWRvY3VtZW50XCJcbiAgICAgICAgICAgW3ZhbHVlXT1cInNpZ25Eb2N1bWVudEJ1dHRvbkxhYmVsXCJcbiAgICAgICAgICAgKGNsaWNrKT1cInNob3dTaWduYXR1cmVzID0gdHJ1ZVwiXG4gICAgLz5cbiAgICA8aW5wdXQgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnV0dG9uIGJ1dHRvbi1jYW5jZWxcIlxuICAgICAgICAgICBbdmFsdWVdPVwiY2FuY2VsQnV0dG9uTGFiZWxcIlxuICAgICAgICAgICAoY2xpY2spPVwiY2FuY2VsQ2xpY2suZW1pdCgkZXZlbnQpXCJcbiAgICAvPlxuICBgLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcihcInNob3dIaWRlU2lnbmF0dXJlXCIsIFtcbiAgICAgIHN0YXRlKFwidm9pZFwiLCBzdHlsZSh7dHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSgwKVwifSkpLFxuICAgICAgc3RhdGUoXCIqXCIsIHN0eWxlKHt0cmFuc2Zvcm06IFwidHJhbnNsYXRlKC01MCUsIC01MCUpIHNjYWxlKDEpXCJ9KSksXG4gICAgICB0cmFuc2l0aW9uKFwidm9pZCA8PT4gKlwiLCBhbmltYXRlKFwiMjAwbXMgZWFzZS1pbi1vdXRcIikpLFxuICAgIF0pXG4gIF0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgRG9jc2lnbkNvbXBvbmVudCB7XG4gIEBWaWV3Q2hpbGQoXCJpZnJhbWVcIiwgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHB1YmxpYyBpZnJhbWU6IEVsZW1lbnRSZWY7XG5cbiAgLyoqXG4gICAqIExvYWQgYW4gZXhpc3RpbmcgW1tQREZEb2N1bWVudF1dLiBUaGUgaW5wdXQgZGF0YSBjYW4gYmUgcHJvdmlkZWQgaW5cbiAgICogbXVsdGlwbGUgZm9ybWF0czpcbiAgICpcbiAgICogfCBUeXBlICAgICAgICAgIHwgQ29udGVudHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAgICogfCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHxcbiAgICogfCBgc3RyaW5nYCAgICAgIHwgQSBiYXNlNjQgZW5jb2RlZCBzdHJpbmcgKG9yIGRhdGEgVVJJKSBjb250YWluaW5nIGEgUERGIHxcbiAgICogfCBgVWludDhBcnJheWAgIHwgVGhlIHJhdyBieXRlcyBvZiBhIFBERiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAgICogfCBgQXJyYXlCdWZmZXJgIHwgVGhlIHJhdyBieXRlcyBvZiBhIFBERiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAgICpcbiAgICogRm9yIGV4YW1wbGU6XG4gICAqIGBgYGpzXG4gICAqIGltcG9ydCB7IFBERkRvY3VtZW50IH0gZnJvbSAncGRmLWxpYidcbiAgICpcbiAgICogLy8gcGRmPXN0cmluZ1xuICAgKiBjb25zdCBiYXNlNjQgPVxuICAgKiAgJ0pWQkVSaTB4TGpjS0pZR0JnWUVLQ2pVZ01DQnZZbW9LUER3S0wwWnBiSFJsY2lBdlJteGhkR1ZFWldOdlpHVUtMMHhsYm0nICtcbiAgICogICdkMGFDQXhNRFFLUGo0S2MzUnlaV0Z0Q25pY2N3cmhNbEFBd2FKMExuMlAxSnl5MUpMTTVFUmRjME1qQ3dVakU0V1FOQzRRJyArXG4gICAqICAnNmNObENGWmtxR0NxWUdTcUVKTExaV051WUdaaVptYmtZdVpzWm1sbVpHUmdabWx1RENRTnpjM05UTTJOemR6TVhNeE1qUScgK1xuICAgKiAgJ3p0RkVLeXVFSzB1RnhEdUFBT0VSZFZDbVZ1WkhOMGNtVmhiUXBsYm1Sdlltb0tDallnTUNCdlltb0tQRHdLTDBacGJIUmwnICtcbiAgICogICdjaUF2Um14aGRHVkVaV052WkdVS0wxUjVjR1VnTDA5aWFsTjBiUW92VGlBMENpOUdhWEp6ZENBeU1Bb3ZUR1Z1WjNSb0lEJyArXG4gICAqICAnSXhOUW8rUGdwemRISmxZVzBLZUp4Vmo5R3F3akFNaHUvekZIa0J6VG8zbkNDQ2lpS0lIUEVJQ3VKRjNjS29TQ3UyRTgvYicgK1xuICAgKiAgJzIwd1BJcjFwOHY5LzhrVmhnaWxtR2Zhd1gyQ0dhVnJnY0FpMC9ic3kwbHJYN0lHV3B2SjRpSllFTjNnRW1yckdCbFF3R3MnICtcbiAgICogICdISE85VkJYMXdOcnhBcU1YODdSQkQ1eHBKdWRkcXdkODJ0akFIeHpWMVU1TFBneTUyREtYV25yMUxoZWcrai9jL3B6R1ZyJyArXG4gICAqICAnaXFWMFZsd1pQWEdQQ0pqRWx3L3lia3dVbWVvV2d4ZXNEWEdoSEpDL0QvaWlrcDFBdjgwcHRLVTBGZEJFZTI1cFBpaEFNMScgK1xuICAgKiAgJ3U2eXRnYWFXZnMySHJ6MzVDSlQxK0VXbUFLWlc1a2MzUnlaV0Z0Q21WdVpHOWlhZ29LTnlBd0lHOWlhZ284UEFvdlUybDYnICtcbiAgICogICdaU0E0Q2k5U2IyOTBJRElnTUNCU0NpOUdhV3gwWlhJZ0wwWnNZWFJsUkdWamIyUmxDaTlVZVhCbElDOVlVbVZtQ2k5TVpXJyArXG4gICAqICAnNW5kR2dnTXpnS0wxY2dXeUF4SURJZ01pQmRDaTlKYm1SbGVDQmJJREFnT0NCZENqNCtDbk4wY21WaGJRcDRuQlhFd1JFQScgK1xuICAgKiAgJ0VCQUVzQ3d6M3ZydlJtT095eU9vR2haZHV0SE4yTVQ1NWZJQVZvY0QrQXBsYm1SemRISmxZVzBLWlc1a2IySnFDZ3B6ZEcnICtcbiAgICogICdGeWRIaHlaV1lLTlRFd0NpVWxSVTlHJ1xuICAgKlxuICAgKiBjb25zdCBkYXRhVXJpID0gJ2RhdGE6YXBwbGljYXRpb24vcGRmO2Jhc2U2NCwnICsgYmFzZTY0XG4gICAqXG4gICAqIGNvbnN0IHBkZkRvYzEgPSBhd2FpdCBQREZEb2N1bWVudC5sb2FkKGJhc2U2NClcbiAgICogY29uc3QgcGRmRG9jMiA9IGF3YWl0IFBERkRvY3VtZW50LmxvYWQoZGF0YVVyaSlcbiAgICpcbiAgICogLy8gcGRmPVVpbnQ4QXJyYXlcbiAgICogaW1wb3J0IGZzIGZyb20gJ2ZzJ1xuICAgKiBjb25zdCB1aW50OEFycmF5ID0gZnMucmVhZEZpbGVTeW5jKCd3aXRoX3VwZGF0ZV9zZWN0aW9ucy5wZGYnKVxuICAgKiBjb25zdCBwZGZEb2MzID0gYXdhaXQgUERGRG9jdW1lbnQubG9hZCh1aW50OEFycmF5KVxuICAgKlxuICAgKiAvLyBwZGY9QXJyYXlCdWZmZXJcbiAgICogY29uc3QgdXJsID0gJ2h0dHBzOi8vcGRmLWxpYi5qcy5vcmcvYXNzZXRzL3dpdGhfdXBkYXRlX3NlY3Rpb25zLnBkZidcbiAgICogY29uc3QgYXJyYXlCdWZmZXIgPSBhd2FpdCBmZXRjaCh1cmwpLnRoZW4ocmVzID0+IHJlcy5hcnJheUJ1ZmZlcigpKVxuICAgKiBjb25zdCBwZGZEb2M0ID0gYXdhaXQgUERGRG9jdW1lbnQubG9hZChhcnJheUJ1ZmZlcilcbiAgICpcbiAgICogYGBgXG4gICAqXG4gICAqIEBwYXJhbSBwZGYgVGhlIGlucHV0IGRhdGEgY29udGFpbmluZyBhIFBERiBkb2N1bWVudC5cbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIG9wdGlvbnMgdG8gYmUgdXNlZCB3aGVuIGxvYWRpbmcgdGhlIGRvY3VtZW50LlxuICAgKiBAcmV0dXJucyBSZXNvbHZlcyB3aXRoIGEgZG9jdW1lbnQgbG9hZGVkIGZyb20gdGhlIGlucHV0LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBwZGYodmFsdWU6IGFueSkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5faGFuZGxlUGRmRGF0YSh2YWx1ZSk7XG4gICAgICB0aGlzLl9vcGVuUERGKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBwZGYoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5fcGRmO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZpcnN0U2lnbmF0dXJlTGFiZWw6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZmlyc3RTaWduYXR1cmVGaWVsZDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZWNvbmRTaWduYXR1cmVMYWJlbDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZWNvbmRTaWduYXR1cmVGaWVsZDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzYXZlQnV0dG9uTGFiZWw6IHN0cmluZyA9ICdTQVZFJztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2xlYXJCdXR0b25MYWJlbDogc3RyaW5nID0gJ0NMRUFSJztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2lnbkRvY3VtZW50QnV0dG9uTGFiZWw6IHN0cmluZyA9ICdTSUdOX0RPQ1VNRU5UJztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2FuY2VsQnV0dG9uTGFiZWw6IHN0cmluZyA9ICdDQU5DRUwnO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcGRmU2F2ZWQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBjYW5jZWxDbGljazogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY28tZG9jc2lnbicpXG4gIHB1YmxpYyBzaG93Q2xhc3MoKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwdWJsaWMgc2hvd1NpZ25hdHVyZVBvcHVwOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBzaG93U2lnQnV5ZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIHNpZ0J1eWVyUG9zaXRpb246IFRleHREaW1lbnNpb247XG4gIHB1YmxpYyBzaG93U2lnU2VsbGVyOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBzaWdTZWxsZXJQb3NpdGlvbjogVGV4dERpbWVuc2lvbjtcbiAgcHVibGljIHNob3dTaWduYXR1cmVzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIHBkZkRvYzogUERGRG9jdW1lbnQ7XG5cbiAgcHJpdmF0ZSBfcGRmOiBhbnk7XG5cbiAgcHVibGljIHNhdmVGaXJzdFNpZ25hdHVyZShzaWc6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX3NhdmVTaWduYXR1cmUoc2lnLCB0aGlzLnNpZ0J1eWVyUG9zaXRpb24pO1xuICAgIHRoaXMuc2hvd1NpZ0J1eWVyID0gZmFsc2U7XG4gICAgdGhpcy5fc2F2ZVBkZigpO1xuICB9XG5cbiAgcHVibGljIHNhdmVTZWNvbmRTaWduYXR1cmUoc2lnOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9zYXZlU2lnbmF0dXJlKHNpZywgdGhpcy5zaWdTZWxsZXJQb3NpdGlvbik7XG4gICAgdGhpcy5zaG93U2lnU2VsbGVyID0gZmFsc2U7XG4gICAgdGhpcy5fc2F2ZVBkZigpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfb3BlblBERigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBmaXJzdCBjcmVhdGUgcmVhZGVyIHRvIGNoZWNrIHNpZ25hdHVyZXNcbiAgICB0aGlzLl9jaGVja1NpZ25hdHVyZXMoKTtcblxuICAgIHRoaXMucGRmRG9jID0gYXdhaXQgUERGRG9jdW1lbnQubG9hZCh0aGlzLl9wZGYsIHtcbiAgICAgIHVwZGF0ZU1ldGFkYXRhOiBmYWxzZVxuICAgIH0pO1xuICAgIGNvbnN0IHBkZkRhdGFVcmkgPSBhd2FpdCB0aGlzLnBkZkRvYy5zYXZlQXNCYXNlNjQoeyBkYXRhVXJpOiB0cnVlIH0pO1xuICAgIHRoaXMuaWZyYW1lLm5hdGl2ZUVsZW1lbnQuc3JjID0gcGRmRGF0YVVyaTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX3NhdmVQZGYoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLnNob3dTaWdCdXllciAmJiAhdGhpcy5zaG93U2lnU2VsbGVyKSB7XG4gICAgICAvLyByZWFkeSwgc2F2ZSB0aGUgcGRmIGFuZCBlbWl0IHJlc3VsdFxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5wZGZEb2Muc2F2ZUFzQmFzZTY0KCk7XG4gICAgICB0aGlzLnBkZlNhdmVkLm5leHQocmVzdWx0KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9jaGVja1NpZ25hdHVyZXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgbGV0IHBkZldvcmtlclNyYztcbiAgICBpZiAod2luZG93Lmhhc093blByb3BlcnR5KCdwZGZXb3JrZXJTcmMnKSAmJlxuICAgICAgdHlwZW9mICh3aW5kb3cgYXMgYW55KS5wZGZXb3JrZXJTcmMgPT09ICdzdHJpbmcnICYmXG4gICAgICAod2luZG93IGFzIGFueSkucGRmV29ya2VyU3JjKSB7XG4gICAgICBwZGZXb3JrZXJTcmMgPSAod2luZG93IGFzIGFueSkucGRmV29ya2VyU3JjO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHBkZldvcmtlclNyYyA9IHBkZmpzV29ya2VyO1xuICAgIH1cbiAgICBQREZKUy5HbG9iYWxXb3JrZXJPcHRpb25zLndvcmtlclNyYyA9IHBkZldvcmtlclNyYztcbiAgICBjb25zdCBwZGZSZWFkZXIgPSBhd2FpdCBQREZKUy5nZXREb2N1bWVudCh0aGlzLl9wZGYpLnByb21pc2U7XG4gICAgY29uc3QgbnVtUGFnZXMgPSBwZGZSZWFkZXIubnVtUGFnZXM7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1QYWdlczsgaSsrKSB7XG4gICAgICBjb25zdCBwYWdlID0gYXdhaXQgcGRmUmVhZGVyLmdldFBhZ2UoaSArIDEpO1xuICAgICAgY29uc3QgdGV4dCA9IGF3YWl0IHBhZ2UuZ2V0VGV4dENvbnRlbnQoKTtcbiAgICAgIHBhZ2UuY2xlYW51cCgpO1xuICAgICAgaWYgKHRoaXMuZmlyc3RTaWduYXR1cmVGaWVsZCkge1xuICAgICAgICB0aGlzLnNpZ0J1eWVyUG9zaXRpb24gPSB0aGlzLl9nZXRQb3NpdGlvblNpZ25hdHVyZSh0ZXh0LCB0aGlzLmZpcnN0U2lnbmF0dXJlRmllbGQpO1xuICAgICAgICBpZiAodGhpcy5zaWdCdXllclBvc2l0aW9uLndpZHRoID4gMCAmJiB0aGlzLnNpZ0J1eWVyUG9zaXRpb24uaGVpZ2h0ID4gMCkge1xuICAgICAgICAgIHRoaXMuc2lnQnV5ZXJQb3NpdGlvbi5wYWdlID0gaTtcbiAgICAgICAgICB0aGlzLnNob3dTaWdCdXllciA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnNlY29uZFNpZ25hdHVyZUZpZWxkKSB7XG4gICAgICAgIHRoaXMuc2lnU2VsbGVyUG9zaXRpb24gPSB0aGlzLl9nZXRQb3NpdGlvblNpZ25hdHVyZSh0ZXh0LCB0aGlzLnNlY29uZFNpZ25hdHVyZUZpZWxkKTtcbiAgICAgICAgaWYgKHRoaXMuc2lnU2VsbGVyUG9zaXRpb24ud2lkdGggPiAwICYmIHRoaXMuc2lnU2VsbGVyUG9zaXRpb24uaGVpZ2h0ID4gMCkge1xuICAgICAgICAgIHRoaXMuc2lnU2VsbGVyUG9zaXRpb24ucGFnZSA9IGk7XG4gICAgICAgICAgdGhpcy5zaG93U2lnU2VsbGVyID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2dldFBvc2l0aW9uU2lnbmF0dXJlKHRleHRJdGVtOiBhbnksIHNpZ25hdHVyZUZpZWxkOiBzdHJpbmcpOiBUZXh0RGltZW5zaW9uIHtcbiAgICBjb25zdCBzaWdJdGVtOiBUZXh0SXRlbSA9IDxUZXh0SXRlbT50ZXh0SXRlbS5pdGVtcy5maW5kKChpOiBhbnkpID0+IGkuc3RyLnRvTG93ZXJDYXNlKCkgPT09IHNpZ25hdHVyZUZpZWxkLnRvTG93ZXJDYXNlKCkpO1xuICAgIGlmIChzaWdJdGVtKSB7XG4gICAgICB0ZXh0SXRlbS5pdGVtcy5zbGljZSh0ZXh0SXRlbS5pdGVtcy5pbmRleE9mKHNpZ0l0ZW0pLCAxKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHg6IHNpZ0l0ZW0udHJhbnNmb3JtWzRdLFxuICAgICAgICB5OiBzaWdJdGVtLnRyYW5zZm9ybVs1XSxcbiAgICAgICAgd2lkdGg6IHNpZ0l0ZW0ud2lkdGgsXG4gICAgICAgIGhlaWdodDogc2lnSXRlbS5oZWlnaHQsXG4gICAgICAgIHBhZ2U6IDBcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB7eDogMCwgeTogMCwgd2lkdGg6IDAsIGhlaWdodDogMCwgcGFnZTogMH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX3NhdmVTaWduYXR1cmUoc2lnOiBzdHJpbmcsIGRpbWVuc2lvbnM6IFRleHREaW1lbnNpb24pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBqcGdJbWFnZSA9IGF3YWl0IHRoaXMucGRmRG9jLmVtYmVkUG5nKHNpZyk7XG4gICAgY29uc3QgcGFnZSA9IGF3YWl0IHRoaXMucGRmRG9jLmdldFBhZ2UoZGltZW5zaW9ucy5wYWdlKTtcbiAgICBwYWdlLmRyYXdJbWFnZShqcGdJbWFnZSwge1xuICAgICAgeDogKChkaW1lbnNpb25zLnggKyAoZGltZW5zaW9ucy53aWR0aCAvIDIpKSAtICgyMDAgLyAyKSksXG4gICAgICB5OiAoKGRpbWVuc2lvbnMueSArIChkaW1lbnNpb25zLmhlaWdodCAvIDIpKSAtICgxMDAgLyAyKSksXG4gICAgICB3aWR0aDogMjAwLFxuICAgICAgaGVpZ2h0OiAxMDBcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZVBkZkRhdGEocGRmRGF0YTogYW55KSB7XG4gICAgaWYgKHR5cGVvZiBwZGZEYXRhID09PSAnc3RyaW5nJykge1xuICAgICAgdGhpcy5fcHJlcGFyZVBERihwZGZEYXRhKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fcGRmID0gcGRmRGF0YTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9wcmVwYXJlUERGKGJhc2U2NDogc3RyaW5nKTogdm9pZCB7XG4gICAgdmFyIGJpbmFyeV9zdHJpbmcgPSB3aW5kb3cuYXRvYihiYXNlNjQpO1xuICAgIHZhciBsZW4gPSBiaW5hcnlfc3RyaW5nLmxlbmd0aDtcbiAgICB2YXIgYnl0ZXMgPSBuZXcgVWludDhBcnJheShsZW4pO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGJ5dGVzW2ldID0gYmluYXJ5X3N0cmluZy5jaGFyQ29kZUF0KGkpO1xuICAgIH1cbiAgICB0aGlzLl9wZGYgPSBieXRlcztcbiAgfVxufVxuIl19
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { Component, ElementRef, EventEmitter, HostBinding, Input, Output, ViewChild, ViewEncapsulation } from "@angular/core";
|
|
3
|
+
import { animate, state, style, transition, trigger } from "@angular/animations";
|
|
4
|
+
import { PDFDocument } from "pdf-lib";
|
|
5
|
+
import * as PDFJS from "pdfjs-dist/legacy/build/pdf";
|
|
6
|
+
import pdfjsWorker from "pdfjs-dist/build/pdf.worker.entry";
|
|
7
|
+
export class DocsignComponent {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.saveButtonLabel = 'SAVE';
|
|
10
|
+
this.clearButtonLabel = 'CLEAR';
|
|
11
|
+
this.signDocumentButtonLabel = 'SIGN_DOCUMENT';
|
|
12
|
+
this.cancelButtonLabel = 'CANCEL';
|
|
13
|
+
this.pdfSaved = new EventEmitter();
|
|
14
|
+
this.cancelClick = new EventEmitter();
|
|
15
|
+
this.showSignaturePopup = false;
|
|
16
|
+
this.showSigBuyer = false;
|
|
17
|
+
this.showSigSeller = false;
|
|
18
|
+
this.showSignatures = false;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Load an existing [[PDFDocument]]. The input data can be provided in
|
|
22
|
+
* multiple formats:
|
|
23
|
+
*
|
|
24
|
+
* | Type | Contents |
|
|
25
|
+
* | ------------- | ------------------------------------------------------ |
|
|
26
|
+
* | `string` | A base64 encoded string (or data URI) containing a PDF |
|
|
27
|
+
* | `Uint8Array` | The raw bytes of a PDF |
|
|
28
|
+
* | `ArrayBuffer` | The raw bytes of a PDF |
|
|
29
|
+
*
|
|
30
|
+
* For example:
|
|
31
|
+
* ```js
|
|
32
|
+
* import { PDFDocument } from 'pdf-lib'
|
|
33
|
+
*
|
|
34
|
+
* // pdf=string
|
|
35
|
+
* const base64 =
|
|
36
|
+
* 'JVBERi0xLjcKJYGBgYEKCjUgMCBvYmoKPDwKL0ZpbHRlciAvRmxhdGVEZWNvZGUKL0xlbm' +
|
|
37
|
+
* 'd0aCAxMDQKPj4Kc3RyZWFtCniccwrhMlAAwaJ0Ln2P1Jyy1JLM5ERdc0MjCwUjE4WQNC4Q' +
|
|
38
|
+
* '6cNlCFZkqGCqYGSqEJLLZWNuYGZiZmbkYuZsZmlmZGRgZmluDCQNzc3NTM2NzdzMXMxMjQ' +
|
|
39
|
+
* 'ztFEKyuEK0uFxDuAAOERdVCmVuZHN0cmVhbQplbmRvYmoKCjYgMCBvYmoKPDwKL0ZpbHRl' +
|
|
40
|
+
* 'ciAvRmxhdGVEZWNvZGUKL1R5cGUgL09ialN0bQovTiA0Ci9GaXJzdCAyMAovTGVuZ3RoID' +
|
|
41
|
+
* 'IxNQo+PgpzdHJlYW0KeJxVj9GqwjAMhu/zFHkBzTo3nCCCiiKIHPEICuJF3cKoSCu2E8/b' +
|
|
42
|
+
* '20wPIr1p8v9/8kVhgilmGfawX2CGaVrgcAi0/bsy0lrX7IGWpvJ4iJYEN3gEmrrGBlQwGs' +
|
|
43
|
+
* 'HHO9VBX1wNrxAqMX87RBD5xpJuddqwd82tjAHxzV1U5LPgy52DKXWnr1Lheg+j/c/pzGVr' +
|
|
44
|
+
* 'iqV0VlwZPXGPCJjElw/ybkwUmeoWgxesDXGhHJC/D/iikp1Av80ptKU0FdBEe25pPihAM1' +
|
|
45
|
+
* 'u6ytgaaWfs2Hrz35CJT1+EWmAKZW5kc3RyZWFtCmVuZG9iagoKNyAwIG9iago8PAovU2l6' +
|
|
46
|
+
* 'ZSA4Ci9Sb290IDIgMCBSCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9UeXBlIC9YUmVmCi9MZW' +
|
|
47
|
+
* '5ndGggMzgKL1cgWyAxIDIgMiBdCi9JbmRleCBbIDAgOCBdCj4+CnN0cmVhbQp4nBXEwREA' +
|
|
48
|
+
* 'EBAEsCwz3vrvRmOOyyOoGhZdutHN2MT55fIAVocD+AplbmRzdHJlYW0KZW5kb2JqCgpzdG' +
|
|
49
|
+
* 'FydHhyZWYKNTEwCiUlRU9G'
|
|
50
|
+
*
|
|
51
|
+
* const dataUri = 'data:application/pdf;base64,' + base64
|
|
52
|
+
*
|
|
53
|
+
* const pdfDoc1 = await PDFDocument.load(base64)
|
|
54
|
+
* const pdfDoc2 = await PDFDocument.load(dataUri)
|
|
55
|
+
*
|
|
56
|
+
* // pdf=Uint8Array
|
|
57
|
+
* import fs from 'fs'
|
|
58
|
+
* const uint8Array = fs.readFileSync('with_update_sections.pdf')
|
|
59
|
+
* const pdfDoc3 = await PDFDocument.load(uint8Array)
|
|
60
|
+
*
|
|
61
|
+
* // pdf=ArrayBuffer
|
|
62
|
+
* const url = 'https://pdf-lib.js.org/assets/with_update_sections.pdf'
|
|
63
|
+
* const arrayBuffer = await fetch(url).then(res => res.arrayBuffer())
|
|
64
|
+
* const pdfDoc4 = await PDFDocument.load(arrayBuffer)
|
|
65
|
+
*
|
|
66
|
+
* ```
|
|
67
|
+
*
|
|
68
|
+
* @param pdf The input data containing a PDF document.
|
|
69
|
+
* @param options The options to be used when loading the document.
|
|
70
|
+
* @returns Resolves with a document loaded from the input.
|
|
71
|
+
*/
|
|
72
|
+
set pdf(value) {
|
|
73
|
+
if (value) {
|
|
74
|
+
this._handlePdfData(value);
|
|
75
|
+
this._openPDF();
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
get pdf() {
|
|
79
|
+
return this._pdf;
|
|
80
|
+
}
|
|
81
|
+
showClass() {
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
saveFirstSignature(sig) {
|
|
85
|
+
this._saveSignature(sig, this.sigBuyerPosition);
|
|
86
|
+
this.showSigBuyer = false;
|
|
87
|
+
this._savePdf();
|
|
88
|
+
}
|
|
89
|
+
saveSecondSignature(sig) {
|
|
90
|
+
this._saveSignature(sig, this.sigSellerPosition);
|
|
91
|
+
this.showSigSeller = false;
|
|
92
|
+
this._savePdf();
|
|
93
|
+
}
|
|
94
|
+
_openPDF() {
|
|
95
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
96
|
+
// first create reader to check signatures
|
|
97
|
+
this._checkSignatures();
|
|
98
|
+
this.pdfDoc = yield PDFDocument.load(this._pdf, {
|
|
99
|
+
updateMetadata: false
|
|
100
|
+
});
|
|
101
|
+
const pdfDataUri = yield this.pdfDoc.saveAsBase64({ dataUri: true });
|
|
102
|
+
this.iframe.nativeElement.src = pdfDataUri;
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
_savePdf() {
|
|
106
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
107
|
+
if (!this.showSigBuyer && !this.showSigSeller) {
|
|
108
|
+
// ready, save the pdf and emit result
|
|
109
|
+
const result = yield this.pdfDoc.saveAsBase64();
|
|
110
|
+
this.pdfSaved.next(result);
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
_checkSignatures() {
|
|
115
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
116
|
+
let pdfWorkerSrc;
|
|
117
|
+
if (window.hasOwnProperty('pdfWorkerSrc') &&
|
|
118
|
+
typeof window.pdfWorkerSrc === 'string' &&
|
|
119
|
+
window.pdfWorkerSrc) {
|
|
120
|
+
pdfWorkerSrc = window.pdfWorkerSrc;
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
pdfWorkerSrc = pdfjsWorker;
|
|
124
|
+
}
|
|
125
|
+
PDFJS.GlobalWorkerOptions.workerSrc = pdfWorkerSrc;
|
|
126
|
+
const pdfReader = yield PDFJS.getDocument(this._pdf).promise;
|
|
127
|
+
const numPages = pdfReader.numPages;
|
|
128
|
+
for (let i = 0; i < numPages; i++) {
|
|
129
|
+
const page = yield pdfReader.getPage(i + 1);
|
|
130
|
+
const text = yield page.getTextContent();
|
|
131
|
+
page.cleanup();
|
|
132
|
+
if (this.firstSignatureField) {
|
|
133
|
+
this.sigBuyerPosition = this._getPositionSignature(text, this.firstSignatureField);
|
|
134
|
+
if (this.sigBuyerPosition.width > 0 && this.sigBuyerPosition.height > 0) {
|
|
135
|
+
this.sigBuyerPosition.page = i;
|
|
136
|
+
this.showSigBuyer = true;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
if (this.secondSignatureField) {
|
|
140
|
+
this.sigSellerPosition = this._getPositionSignature(text, this.secondSignatureField);
|
|
141
|
+
if (this.sigSellerPosition.width > 0 && this.sigSellerPosition.height > 0) {
|
|
142
|
+
this.sigSellerPosition.page = i;
|
|
143
|
+
this.showSigSeller = true;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
_getPositionSignature(textItem, signatureField) {
|
|
150
|
+
const sigItem = textItem.items.find((i) => i.str.toLowerCase() === signatureField.toLowerCase());
|
|
151
|
+
if (sigItem) {
|
|
152
|
+
textItem.items.slice(textItem.items.indexOf(sigItem), 1);
|
|
153
|
+
return {
|
|
154
|
+
x: sigItem.transform[4],
|
|
155
|
+
y: sigItem.transform[5],
|
|
156
|
+
width: sigItem.width,
|
|
157
|
+
height: sigItem.height,
|
|
158
|
+
page: 0
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
return { x: 0, y: 0, width: 0, height: 0, page: 0 };
|
|
162
|
+
}
|
|
163
|
+
_saveSignature(sig, dimensions) {
|
|
164
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
165
|
+
const jpgImage = yield this.pdfDoc.embedPng(sig);
|
|
166
|
+
const page = yield this.pdfDoc.getPage(dimensions.page);
|
|
167
|
+
page.drawImage(jpgImage, {
|
|
168
|
+
x: ((dimensions.x + (dimensions.width / 2)) - (200 / 2)),
|
|
169
|
+
y: ((dimensions.y + (dimensions.height / 2)) - (100 / 2)),
|
|
170
|
+
width: 200,
|
|
171
|
+
height: 100
|
|
172
|
+
});
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
_handlePdfData(pdfData) {
|
|
176
|
+
if (typeof pdfData === 'string') {
|
|
177
|
+
this._preparePDF(pdfData);
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
this._pdf = pdfData;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
_preparePDF(base64) {
|
|
184
|
+
var binary_string = window.atob(base64);
|
|
185
|
+
var len = binary_string.length;
|
|
186
|
+
var bytes = new Uint8Array(len);
|
|
187
|
+
for (var i = 0; i < len; i++) {
|
|
188
|
+
bytes[i] = binary_string.charCodeAt(i);
|
|
189
|
+
}
|
|
190
|
+
this._pdf = bytes;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
DocsignComponent.decorators = [
|
|
194
|
+
{ type: Component, args: [{
|
|
195
|
+
selector: "co-docsign",
|
|
196
|
+
template: `
|
|
197
|
+
<iframe #iframe></iframe>
|
|
198
|
+
<co-signatures *ngIf="showSignatures" @showHideSignature
|
|
199
|
+
[showFirstSignature]="showSigBuyer"
|
|
200
|
+
[firstSignatureTitle]="firstSignatureLabel"
|
|
201
|
+
[showSecondSignature]="showSigSeller"
|
|
202
|
+
[secondSignatureTitle]="secondSignatureLabel"
|
|
203
|
+
[saveButtonLabel]="saveButtonLabel"
|
|
204
|
+
[clearButtonLabel]="clearButtonLabel"
|
|
205
|
+
(saveFirstSignature)="saveFirstSignature($event)"
|
|
206
|
+
(saveSecondSignature)="saveSecondSignature($event)"
|
|
207
|
+
></co-signatures>
|
|
208
|
+
<input type="button" *ngIf="(showSigBuyer || showSigSeller) && !showSignatures" class="button button-sign-document"
|
|
209
|
+
[value]="signDocumentButtonLabel"
|
|
210
|
+
(click)="showSignatures = true"
|
|
211
|
+
/>
|
|
212
|
+
<input type="button" class="button button-cancel"
|
|
213
|
+
[value]="cancelButtonLabel"
|
|
214
|
+
(click)="cancelClick.emit($event)"
|
|
215
|
+
/>
|
|
216
|
+
`,
|
|
217
|
+
animations: [
|
|
218
|
+
trigger("showHideSignature", [
|
|
219
|
+
state("void", style({ transform: "translate(-50%, -50%) scale(0)" })),
|
|
220
|
+
state("*", style({ transform: "translate(-50%, -50%) scale(1)" })),
|
|
221
|
+
transition("void <=> *", animate("200ms ease-in-out")),
|
|
222
|
+
])
|
|
223
|
+
],
|
|
224
|
+
encapsulation: ViewEncapsulation.None
|
|
225
|
+
},] }
|
|
226
|
+
];
|
|
227
|
+
DocsignComponent.propDecorators = {
|
|
228
|
+
iframe: [{ type: ViewChild, args: ["iframe", { read: ElementRef },] }],
|
|
229
|
+
pdf: [{ type: Input }],
|
|
230
|
+
firstSignatureLabel: [{ type: Input }],
|
|
231
|
+
firstSignatureField: [{ type: Input }],
|
|
232
|
+
secondSignatureLabel: [{ type: Input }],
|
|
233
|
+
secondSignatureField: [{ type: Input }],
|
|
234
|
+
saveButtonLabel: [{ type: Input }],
|
|
235
|
+
clearButtonLabel: [{ type: Input }],
|
|
236
|
+
signDocumentButtonLabel: [{ type: Input }],
|
|
237
|
+
cancelButtonLabel: [{ type: Input }],
|
|
238
|
+
pdfSaved: [{ type: Output }],
|
|
239
|
+
cancelClick: [{ type: Output }],
|
|
240
|
+
showClass: [{ type: HostBinding, args: ['class.co-docsign',] }]
|
|
241
|
+
};
|
|
242
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jc2lnbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9kb2NzaWduL2RvY3NpZ24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVILE9BQU8sRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDL0UsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLFNBQVMsQ0FBQztBQUNwQyxPQUFPLEtBQUssS0FBSyxNQUFNLDZCQUE2QixDQUFDO0FBQ3JELE9BQU8sV0FBVyxNQUFNLG1DQUFtQyxDQUFDO0FBMkM1RCxNQUFNLE9BQU8sZ0JBQWdCO0lBaEM3QjtRQWlIUyxvQkFBZSxHQUFXLE1BQU0sQ0FBQztRQUdqQyxxQkFBZ0IsR0FBVyxPQUFPLENBQUM7UUFHbkMsNEJBQXVCLEdBQVcsZUFBZSxDQUFDO1FBR2xELHNCQUFpQixHQUFXLFFBQVEsQ0FBQztRQUdyQyxhQUFRLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFHNUQsZ0JBQVcsR0FBNkIsSUFBSSxZQUFZLEVBQWMsQ0FBQztRQU92RSx1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFDcEMsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFFOUIsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFFL0IsbUJBQWMsR0FBWSxLQUFLLENBQUM7SUFrSHpDLENBQUM7SUExTkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQW1ERztJQUNILElBQ1csR0FBRyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNqQjtJQUNILENBQUM7SUFFRCxJQUFXLEdBQUc7UUFDWixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQWlDTSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBYU0sa0JBQWtCLENBQUMsR0FBVztRQUNuQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVNLG1CQUFtQixDQUFDLEdBQVc7UUFDcEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFYSxRQUFROztZQUNwQiwwQ0FBMEM7WUFDMUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFFeEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDOUMsY0FBYyxFQUFFLEtBQUs7YUFDdEIsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3JFLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEdBQUcsR0FBRyxVQUFVLENBQUM7UUFDN0MsQ0FBQztLQUFBO0lBRWEsUUFBUTs7WUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO2dCQUM3QyxzQ0FBc0M7Z0JBQ3RDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDaEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDNUI7UUFDSCxDQUFDO0tBQUE7SUFFYSxnQkFBZ0I7O1lBQzVCLElBQUksWUFBWSxDQUFDO1lBQ2pCLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUM7Z0JBQ3ZDLE9BQVEsTUFBYyxDQUFDLFlBQVksS0FBSyxRQUFRO2dCQUMvQyxNQUFjLENBQUMsWUFBWSxFQUFFO2dCQUM5QixZQUFZLEdBQUksTUFBYyxDQUFDLFlBQVksQ0FBQzthQUM3QztpQkFDSTtnQkFDSCxZQUFZLEdBQUcsV0FBVyxDQUFDO2FBQzVCO1lBQ0QsS0FBSyxDQUFDLG1CQUFtQixDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUM7WUFDbkQsTUFBTSxTQUFTLEdBQUcsTUFBTSxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDN0QsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQztZQUNwQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNqQyxNQUFNLElBQUksR0FBRyxNQUFNLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUM1QyxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDekMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNmLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO29CQUM1QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztvQkFDbkYsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTt3QkFDdkUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7d0JBQy9CLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO3FCQUMxQjtpQkFDRjtnQkFDRCxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtvQkFDN0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7b0JBQ3JGLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7d0JBQ3pFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO3dCQUNoQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztxQkFDM0I7aUJBQ0Y7YUFDRjtRQUNILENBQUM7S0FBQTtJQUVPLHFCQUFxQixDQUFDLFFBQWEsRUFBRSxjQUFzQjtRQUNqRSxNQUFNLE9BQU8sR0FBdUIsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLEtBQUssY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDMUgsSUFBSSxPQUFPLEVBQUU7WUFDWCxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN6RCxPQUFPO2dCQUNMLENBQUMsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztnQkFDdkIsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7Z0JBQ3BCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtnQkFDdEIsSUFBSSxFQUFFLENBQUM7YUFDUixDQUFDO1NBQ0g7UUFDRCxPQUFPLEVBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFDLENBQUE7SUFDbkQsQ0FBQztJQUVhLGNBQWMsQ0FBQyxHQUFXLEVBQUUsVUFBeUI7O1lBQ2pFLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDakQsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUU7Z0JBQ3ZCLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDeEQsQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUN6RCxLQUFLLEVBQUUsR0FBRztnQkFDVixNQUFNLEVBQUUsR0FBRzthQUNaLENBQUMsQ0FBQztRQUNMLENBQUM7S0FBQTtJQUVPLGNBQWMsQ0FBQyxPQUFZO1FBQ2pDLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFO1lBQy9CLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDM0I7YUFBTTtZQUNMLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQztJQUVPLFdBQVcsQ0FBQyxNQUFjO1FBQ2hDLElBQUksYUFBYSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEMsSUFBSSxHQUFHLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQztRQUMvQixJQUFJLEtBQUssR0FBRyxJQUFJLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNoQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzVCLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3hDO1FBQ0QsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7SUFDcEIsQ0FBQzs7O1lBN1BGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsWUFBWTtnQkFDdEIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CVDtnQkFDRCxVQUFVLEVBQUU7b0JBQ1YsT0FBTyxDQUFDLG1CQUFtQixFQUFFO3dCQUMzQixLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFDLFNBQVMsRUFBRSxnQ0FBZ0MsRUFBQyxDQUFDLENBQUM7d0JBQ25FLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUMsU0FBUyxFQUFFLGdDQUFnQyxFQUFDLENBQUMsQ0FBQzt3QkFDaEUsVUFBVSxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztxQkFDdkQsQ0FBQztpQkFDSDtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O3FCQUVFLFNBQVMsU0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2tCQXVEeEMsS0FBSztrQ0FZTCxLQUFLO2tDQUdMLEtBQUs7bUNBR0wsS0FBSzttQ0FHTCxLQUFLOzhCQUdMLEtBQUs7K0JBR0wsS0FBSztzQ0FHTCxLQUFLO2dDQUdMLEtBQUs7dUJBR0wsTUFBTTswQkFHTixNQUFNO3dCQUdOLFdBQVcsU0FBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHthbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXJ9IGZyb20gXCJAYW5ndWxhci9hbmltYXRpb25zXCI7XHJcbmltcG9ydCB7UERGRG9jdW1lbnR9IGZyb20gXCJwZGYtbGliXCI7XHJcbmltcG9ydCAqIGFzIFBERkpTIGZyb20gXCJwZGZqcy1kaXN0L2xlZ2FjeS9idWlsZC9wZGZcIjtcclxuaW1wb3J0IHBkZmpzV29ya2VyIGZyb20gXCJwZGZqcy1kaXN0L2J1aWxkL3BkZi53b3JrZXIuZW50cnlcIjtcclxuaW1wb3J0IHtUZXh0SXRlbX0gZnJvbSBcInBkZmpzLWRpc3QvdHlwZXMvc3JjL2Rpc3BsYXkvYXBpXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRleHREaW1lbnNpb24ge1xyXG4gIHg6IG51bWJlcixcclxuICB5OiBudW1iZXIsXHJcbiAgd2lkdGg6IG51bWJlcixcclxuICBoZWlnaHQ6IG51bWJlcixcclxuICBwYWdlOiBudW1iZXJcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tZG9jc2lnblwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8aWZyYW1lICNpZnJhbWU+PC9pZnJhbWU+XHJcbiAgICA8Y28tc2lnbmF0dXJlcyAqbmdJZj1cInNob3dTaWduYXR1cmVzXCIgQHNob3dIaWRlU2lnbmF0dXJlXHJcbiAgICAgICAgICAgICAgICAgICAgIFtzaG93Rmlyc3RTaWduYXR1cmVdPVwic2hvd1NpZ0J1eWVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgW2ZpcnN0U2lnbmF0dXJlVGl0bGVdPVwiZmlyc3RTaWduYXR1cmVMYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtzaG93U2Vjb25kU2lnbmF0dXJlXT1cInNob3dTaWdTZWxsZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbc2Vjb25kU2lnbmF0dXJlVGl0bGVdPVwic2Vjb25kU2lnbmF0dXJlTGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbc2F2ZUJ1dHRvbkxhYmVsXT1cInNhdmVCdXR0b25MYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtjbGVhckJ1dHRvbkxhYmVsXT1cImNsZWFyQnV0dG9uTGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAoc2F2ZUZpcnN0U2lnbmF0dXJlKT1cInNhdmVGaXJzdFNpZ25hdHVyZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgKHNhdmVTZWNvbmRTaWduYXR1cmUpPVwic2F2ZVNlY29uZFNpZ25hdHVyZSgkZXZlbnQpXCJcclxuICAgID48L2NvLXNpZ25hdHVyZXM+XHJcbiAgICA8aW5wdXQgdHlwZT1cImJ1dHRvblwiICpuZ0lmPVwiKHNob3dTaWdCdXllciB8fCBzaG93U2lnU2VsbGVyKSAmJiAhc2hvd1NpZ25hdHVyZXNcIiBjbGFzcz1cImJ1dHRvbiBidXR0b24tc2lnbi1kb2N1bWVudFwiXHJcbiAgICAgICAgICAgW3ZhbHVlXT1cInNpZ25Eb2N1bWVudEJ1dHRvbkxhYmVsXCJcclxuICAgICAgICAgICAoY2xpY2spPVwic2hvd1NpZ25hdHVyZXMgPSB0cnVlXCJcclxuICAgIC8+XHJcbiAgICA8aW5wdXQgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnV0dG9uIGJ1dHRvbi1jYW5jZWxcIlxyXG4gICAgICAgICAgIFt2YWx1ZV09XCJjYW5jZWxCdXR0b25MYWJlbFwiXHJcbiAgICAgICAgICAgKGNsaWNrKT1cImNhbmNlbENsaWNrLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAvPlxyXG4gIGAsXHJcbiAgYW5pbWF0aW9uczogW1xyXG4gICAgdHJpZ2dlcihcInNob3dIaWRlU2lnbmF0dXJlXCIsIFtcclxuICAgICAgc3RhdGUoXCJ2b2lkXCIsIHN0eWxlKHt0cmFuc2Zvcm06IFwidHJhbnNsYXRlKC01MCUsIC01MCUpIHNjYWxlKDApXCJ9KSksXHJcbiAgICAgIHN0YXRlKFwiKlwiLCBzdHlsZSh7dHJhbnNmb3JtOiBcInRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSgxKVwifSkpLFxyXG4gICAgICB0cmFuc2l0aW9uKFwidm9pZCA8PT4gKlwiLCBhbmltYXRlKFwiMjAwbXMgZWFzZS1pbi1vdXRcIikpLFxyXG4gICAgXSlcclxuICBdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIERvY3NpZ25Db21wb25lbnQge1xyXG4gIEBWaWV3Q2hpbGQoXCJpZnJhbWVcIiwgeyByZWFkOiBFbGVtZW50UmVmIH0pXHJcbiAgcHVibGljIGlmcmFtZTogRWxlbWVudFJlZjtcclxuXHJcbiAgLyoqXHJcbiAgICogTG9hZCBhbiBleGlzdGluZyBbW1BERkRvY3VtZW50XV0uIFRoZSBpbnB1dCBkYXRhIGNhbiBiZSBwcm92aWRlZCBpblxyXG4gICAqIG11bHRpcGxlIGZvcm1hdHM6XHJcbiAgICpcclxuICAgKiB8IFR5cGUgICAgICAgICAgfCBDb250ZW50cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxyXG4gICAqIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8XHJcbiAgICogfCBgc3RyaW5nYCAgICAgIHwgQSBiYXNlNjQgZW5jb2RlZCBzdHJpbmcgKG9yIGRhdGEgVVJJKSBjb250YWluaW5nIGEgUERGIHxcclxuICAgKiB8IGBVaW50OEFycmF5YCAgfCBUaGUgcmF3IGJ5dGVzIG9mIGEgUERGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxyXG4gICAqIHwgYEFycmF5QnVmZmVyYCB8IFRoZSByYXcgYnl0ZXMgb2YgYSBQREYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XHJcbiAgICpcclxuICAgKiBGb3IgZXhhbXBsZTpcclxuICAgKiBgYGBqc1xyXG4gICAqIGltcG9ydCB7IFBERkRvY3VtZW50IH0gZnJvbSAncGRmLWxpYidcclxuICAgKlxyXG4gICAqIC8vIHBkZj1zdHJpbmdcclxuICAgKiBjb25zdCBiYXNlNjQgPVxyXG4gICAqICAnSlZCRVJpMHhMamNLSllHQmdZRUtDalVnTUNCdlltb0tQRHdLTDBacGJIUmxjaUF2Um14aGRHVkVaV052WkdVS0wweGxibScgK1xyXG4gICAqICAnZDBhQ0F4TURRS1BqNEtjM1J5WldGdENuaWNjd3JoTWxBQXdhSjBMbjJQMUp5eTFKTE01RVJkYzBNakN3VWpFNFdRTkM0UScgK1xyXG4gICAqICAnNmNObENGWmtxR0NxWUdTcUVKTExaV051WUdaaVptYmtZdVpzWm1sbVpHUmdabWx1RENRTnpjM05UTTJOemR6TVhNeE1qUScgK1xyXG4gICAqICAnenRGRUt5dUVLMHVGeER1QUFPRVJkVkNtVnVaSE4wY21WaGJRcGxibVJ2WW1vS0NqWWdNQ0J2WW1vS1BEd0tMMFpwYkhSbCcgK1xyXG4gICAqICAnY2lBdlJteGhkR1ZFWldOdlpHVUtMMVI1Y0dVZ0wwOWlhbE4wYlFvdlRpQTBDaTlHYVhKemRDQXlNQW92VEdWdVozUm9JRCcgK1xyXG4gICAqICAnSXhOUW8rUGdwemRISmxZVzBLZUp4Vmo5R3F3akFNaHUvekZIa0J6VG8zbkNDQ2lpS0lIUEVJQ3VKRjNjS29TQ3UyRTgvYicgK1xyXG4gICAqICAnMjB3UElyMXA4djkvOGtWaGdpbG1HZmF3WDJDR2FWcmdjQWkwL2JzeTBsclg3SUdXcHZKNGlKWUVOM2dFbXJyR0JsUXdHcycgK1xyXG4gICAqICAnSEhPOVZCWDF3TnJ4QXFNWDg3UkJENXhwSnVkZHF3ZDgydGpBSHh6VjFVNUxQZ3k1MkRLWFducjFMaGVnK2ovYy9wekdWcicgK1xyXG4gICAqICAnaXFWMFZsd1pQWEdQQ0pqRWx3L3lia3dVbWVvV2d4ZXNEWEdoSEpDL0QvaWlrcDFBdjgwcHRLVTBGZEJFZTI1cFBpaEFNMScgK1xyXG4gICAqICAndTZ5dGdhYVdmczJIcnozNUNKVDErRVdtQUtaVzVrYzNSeVpXRnRDbVZ1Wkc5aWFnb0tOeUF3SUc5aWFnbzhQQW92VTJsNicgK1xyXG4gICAqICAnWlNBNENpOVNiMjkwSURJZ01DQlNDaTlHYVd4MFpYSWdMMFpzWVhSbFJHVmpiMlJsQ2k5VWVYQmxJQzlZVW1WbUNpOU1aVycgK1xyXG4gICAqICAnNW5kR2dnTXpnS0wxY2dXeUF4SURJZ01pQmRDaTlKYm1SbGVDQmJJREFnT0NCZENqNCtDbk4wY21WaGJRcDRuQlhFd1JFQScgK1xyXG4gICAqICAnRUJBRXNDd3ozdnJ2Um1PT3l5T29HaFpkdXRITjJNVDU1ZklBVm9jRCtBcGxibVJ6ZEhKbFlXMEtaVzVrYjJKcUNncHpkRycgK1xyXG4gICAqICAnRnlkSGh5WldZS05URXdDaVVsUlU5RydcclxuICAgKlxyXG4gICAqIGNvbnN0IGRhdGFVcmkgPSAnZGF0YTphcHBsaWNhdGlvbi9wZGY7YmFzZTY0LCcgKyBiYXNlNjRcclxuICAgKlxyXG4gICAqIGNvbnN0IHBkZkRvYzEgPSBhd2FpdCBQREZEb2N1bWVudC5sb2FkKGJhc2U2NClcclxuICAgKiBjb25zdCBwZGZEb2MyID0gYXdhaXQgUERGRG9jdW1lbnQubG9hZChkYXRhVXJpKVxyXG4gICAqXHJcbiAgICogLy8gcGRmPVVpbnQ4QXJyYXlcclxuICAgKiBpbXBvcnQgZnMgZnJvbSAnZnMnXHJcbiAgICogY29uc3QgdWludDhBcnJheSA9IGZzLnJlYWRGaWxlU3luYygnd2l0aF91cGRhdGVfc2VjdGlvbnMucGRmJylcclxuICAgKiBjb25zdCBwZGZEb2MzID0gYXdhaXQgUERGRG9jdW1lbnQubG9hZCh1aW50OEFycmF5KVxyXG4gICAqXHJcbiAgICogLy8gcGRmPUFycmF5QnVmZmVyXHJcbiAgICogY29uc3QgdXJsID0gJ2h0dHBzOi8vcGRmLWxpYi5qcy5vcmcvYXNzZXRzL3dpdGhfdXBkYXRlX3NlY3Rpb25zLnBkZidcclxuICAgKiBjb25zdCBhcnJheUJ1ZmZlciA9IGF3YWl0IGZldGNoKHVybCkudGhlbihyZXMgPT4gcmVzLmFycmF5QnVmZmVyKCkpXHJcbiAgICogY29uc3QgcGRmRG9jNCA9IGF3YWl0IFBERkRvY3VtZW50LmxvYWQoYXJyYXlCdWZmZXIpXHJcbiAgICpcclxuICAgKiBgYGBcclxuICAgKlxyXG4gICAqIEBwYXJhbSBwZGYgVGhlIGlucHV0IGRhdGEgY29udGFpbmluZyBhIFBERiBkb2N1bWVudC5cclxuICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgb3B0aW9ucyB0byBiZSB1c2VkIHdoZW4gbG9hZGluZyB0aGUgZG9jdW1lbnQuXHJcbiAgICogQHJldHVybnMgUmVzb2x2ZXMgd2l0aCBhIGRvY3VtZW50IGxvYWRlZCBmcm9tIHRoZSBpbnB1dC5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgcGRmKHZhbHVlOiBhbnkpIHtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICB0aGlzLl9oYW5kbGVQZGZEYXRhKHZhbHVlKTtcclxuICAgICAgdGhpcy5fb3BlblBERigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBwZGYoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLl9wZGY7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBmaXJzdFNpZ25hdHVyZUxhYmVsOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGZpcnN0U2lnbmF0dXJlRmllbGQ6IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2Vjb25kU2lnbmF0dXJlTGFiZWw6IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2Vjb25kU2lnbmF0dXJlRmllbGQ6IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2F2ZUJ1dHRvbkxhYmVsOiBzdHJpbmcgPSAnU0FWRSc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGNsZWFyQnV0dG9uTGFiZWw6IHN0cmluZyA9ICdDTEVBUic7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNpZ25Eb2N1bWVudEJ1dHRvbkxhYmVsOiBzdHJpbmcgPSAnU0lHTl9ET0NVTUVOVCc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGNhbmNlbEJ1dHRvbkxhYmVsOiBzdHJpbmcgPSAnQ0FOQ0VMJztcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHBkZlNhdmVkOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgY2FuY2VsQ2xpY2s6IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jby1kb2NzaWduJylcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd1NpZ25hdHVyZVBvcHVwOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dTaWdCdXllcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaWdCdXllclBvc2l0aW9uOiBUZXh0RGltZW5zaW9uO1xyXG4gIHB1YmxpYyBzaG93U2lnU2VsbGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNpZ1NlbGxlclBvc2l0aW9uOiBUZXh0RGltZW5zaW9uO1xyXG4gIHB1YmxpYyBzaG93U2lnbmF0dXJlczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgcGRmRG9jOiBQREZEb2N1bWVudDtcclxuXHJcbiAgcHJpdmF0ZSBfcGRmOiBhbnk7XHJcblxyXG4gIHB1YmxpYyBzYXZlRmlyc3RTaWduYXR1cmUoc2lnOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuX3NhdmVTaWduYXR1cmUoc2lnLCB0aGlzLnNpZ0J1eWVyUG9zaXRpb24pO1xyXG4gICAgdGhpcy5zaG93U2lnQnV5ZXIgPSBmYWxzZTtcclxuICAgIHRoaXMuX3NhdmVQZGYoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzYXZlU2Vjb25kU2lnbmF0dXJlKHNpZzogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zYXZlU2lnbmF0dXJlKHNpZywgdGhpcy5zaWdTZWxsZXJQb3NpdGlvbik7XHJcbiAgICB0aGlzLnNob3dTaWdTZWxsZXIgPSBmYWxzZTtcclxuICAgIHRoaXMuX3NhdmVQZGYoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgX29wZW5QREYoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAvLyBmaXJzdCBjcmVhdGUgcmVhZGVyIHRvIGNoZWNrIHNpZ25hdHVyZXNcclxuICAgIHRoaXMuX2NoZWNrU2lnbmF0dXJlcygpO1xyXG5cclxuICAgIHRoaXMucGRmRG9jID0gYXdhaXQgUERGRG9jdW1lbnQubG9hZCh0aGlzLl9wZGYsIHtcclxuICAgICAgdXBkYXRlTWV0YWRhdGE6IGZhbHNlXHJcbiAgICB9KTtcclxuICAgIGNvbnN0IHBkZkRhdGFVcmkgPSBhd2FpdCB0aGlzLnBkZkRvYy5zYXZlQXNCYXNlNjQoeyBkYXRhVXJpOiB0cnVlIH0pO1xyXG4gICAgdGhpcy5pZnJhbWUubmF0aXZlRWxlbWVudC5zcmMgPSBwZGZEYXRhVXJpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfc2F2ZVBkZigpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICghdGhpcy5zaG93U2lnQnV5ZXIgJiYgIXRoaXMuc2hvd1NpZ1NlbGxlcikge1xyXG4gICAgICAvLyByZWFkeSwgc2F2ZSB0aGUgcGRmIGFuZCBlbWl0IHJlc3VsdFxyXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnBkZkRvYy5zYXZlQXNCYXNlNjQoKTtcclxuICAgICAgdGhpcy5wZGZTYXZlZC5uZXh0KHJlc3VsdCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9jaGVja1NpZ25hdHVyZXMoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBsZXQgcGRmV29ya2VyU3JjO1xyXG4gICAgaWYgKHdpbmRvdy5oYXNPd25Qcm9wZXJ0eSgncGRmV29ya2VyU3JjJykgJiZcclxuICAgICAgdHlwZW9mICh3aW5kb3cgYXMgYW55KS5wZGZXb3JrZXJTcmMgPT09ICdzdHJpbmcnICYmXHJcbiAgICAgICh3aW5kb3cgYXMgYW55KS5wZGZXb3JrZXJTcmMpIHtcclxuICAgICAgcGRmV29ya2VyU3JjID0gKHdpbmRvdyBhcyBhbnkpLnBkZldvcmtlclNyYztcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBwZGZXb3JrZXJTcmMgPSBwZGZqc1dvcmtlcjtcclxuICAgIH1cclxuICAgIFBERkpTLkdsb2JhbFdvcmtlck9wdGlvbnMud29ya2VyU3JjID0gcGRmV29ya2VyU3JjO1xyXG4gICAgY29uc3QgcGRmUmVhZGVyID0gYXdhaXQgUERGSlMuZ2V0RG9jdW1lbnQodGhpcy5fcGRmKS5wcm9taXNlO1xyXG4gICAgY29uc3QgbnVtUGFnZXMgPSBwZGZSZWFkZXIubnVtUGFnZXM7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bVBhZ2VzOyBpKyspIHtcclxuICAgICAgY29uc3QgcGFnZSA9IGF3YWl0IHBkZlJlYWRlci5nZXRQYWdlKGkgKyAxKTtcclxuICAgICAgY29uc3QgdGV4dCA9IGF3YWl0IHBhZ2UuZ2V0VGV4dENvbnRlbnQoKTtcclxuICAgICAgcGFnZS5jbGVhbnVwKCk7XHJcbiAgICAgIGlmICh0aGlzLmZpcnN0U2lnbmF0dXJlRmllbGQpIHtcclxuICAgICAgICB0aGlzLnNpZ0J1eWVyUG9zaXRpb24gPSB0aGlzLl9nZXRQb3NpdGlvblNpZ25hdHVyZSh0ZXh0LCB0aGlzLmZpcnN0U2lnbmF0dXJlRmllbGQpO1xyXG4gICAgICAgIGlmICh0aGlzLnNpZ0J1eWVyUG9zaXRpb24ud2lkdGggPiAwICYmIHRoaXMuc2lnQnV5ZXJQb3NpdGlvbi5oZWlnaHQgPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLnNpZ0J1eWVyUG9zaXRpb24ucGFnZSA9IGk7XHJcbiAgICAgICAgICB0aGlzLnNob3dTaWdCdXllciA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnNlY29uZFNpZ25hdHVyZUZpZWxkKSB7XHJcbiAgICAgICAgdGhpcy5zaWdTZWxsZXJQb3NpdGlvbiA9IHRoaXMuX2dldFBvc2l0aW9uU2lnbmF0dXJlKHRleHQsIHRoaXMuc2Vjb25kU2lnbmF0dXJlRmllbGQpO1xyXG4gICAgICAgIGlmICh0aGlzLnNpZ1NlbGxlclBvc2l0aW9uLndpZHRoID4gMCAmJiB0aGlzLnNpZ1NlbGxlclBvc2l0aW9uLmhlaWdodCA+IDApIHtcclxuICAgICAgICAgIHRoaXMuc2lnU2VsbGVyUG9zaXRpb24ucGFnZSA9IGk7XHJcbiAgICAgICAgICB0aGlzLnNob3dTaWdTZWxsZXIgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZ2V0UG9zaXRpb25TaWduYXR1cmUodGV4dEl0ZW06IGFueSwgc2lnbmF0dXJlRmllbGQ6IHN0cmluZyk6IFRleHREaW1lbnNpb24ge1xyXG4gICAgY29uc3Qgc2lnSXRlbTogVGV4dEl0ZW0gPSA8VGV4dEl0ZW0+dGV4dEl0ZW0uaXRlbXMuZmluZCgoaTogYW55KSA9PiBpLnN0ci50b0xvd2VyQ2FzZSgpID09PSBzaWduYXR1cmVGaWVsZC50b0xvd2VyQ2FzZSgpKTtcclxuICAgIGlmIChzaWdJdGVtKSB7XHJcbiAgICAgIHRleHRJdGVtLml0ZW1zLnNsaWNlKHRleHRJdGVtLml0ZW1zLmluZGV4T2Yoc2lnSXRlbSksIDEpO1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIHg6IHNpZ0l0ZW0udHJhbnNmb3JtWzRdLFxyXG4gICAgICAgIHk6IHNpZ0l0ZW0udHJhbnNmb3JtWzVdLFxyXG4gICAgICAgIHdpZHRoOiBzaWdJdGVtLndpZHRoLFxyXG4gICAgICAgIGhlaWdodDogc2lnSXRlbS5oZWlnaHQsXHJcbiAgICAgICAgcGFnZTogMFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHt4OiAwLCB5OiAwLCB3aWR0aDogMCwgaGVpZ2h0OiAwLCBwYWdlOiAwfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfc2F2ZVNpZ25hdHVyZShzaWc6IHN0cmluZywgZGltZW5zaW9uczogVGV4dERpbWVuc2lvbik6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QganBnSW1hZ2UgPSBhd2FpdCB0aGlzLnBkZkRvYy5lbWJlZFBuZyhzaWcpO1xyXG4gICAgY29uc3QgcGFnZSA9IGF3YWl0IHRoaXMucGRmRG9jLmdldFBhZ2UoZGltZW5zaW9ucy5wYWdlKTtcclxuICAgIHBhZ2UuZHJhd0ltYWdlKGpwZ0ltYWdlLCB7XHJcbiAgICAgIHg6ICgoZGltZW5zaW9ucy54ICsgKGRpbWVuc2lvbnMud2lkdGggLyAyKSkgLSAoMjAwIC8gMikpLFxyXG4gICAgICB5OiAoKGRpbWVuc2lvbnMueSArIChkaW1lbnNpb25zLmhlaWdodCAvIDIpKSAtICgxMDAgLyAyKSksXHJcbiAgICAgIHdpZHRoOiAyMDAsXHJcbiAgICAgIGhlaWdodDogMTAwXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2hhbmRsZVBkZkRhdGEocGRmRGF0YTogYW55KSB7XHJcbiAgICBpZiAodHlwZW9mIHBkZkRhdGEgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIHRoaXMuX3ByZXBhcmVQREYocGRmRGF0YSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9wZGYgPSBwZGZEYXRhO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcHJlcGFyZVBERihiYXNlNjQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdmFyIGJpbmFyeV9zdHJpbmcgPSB3aW5kb3cuYXRvYihiYXNlNjQpO1xyXG4gICAgdmFyIGxlbiA9IGJpbmFyeV9zdHJpbmcubGVuZ3RoO1xyXG4gICAgdmFyIGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkobGVuKTtcclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgYnl0ZXNbaV0gPSBiaW5hcnlfc3RyaW5nLmNoYXJDb2RlQXQoaSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9wZGYgPSBieXRlcztcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import { NgModule } from "@angular/core";
|
|
2
|
-
import { CommonModule } from "@angular/common";
|
|
3
|
-
import { DocsignComponent } from "./docsign.component";
|
|
4
|
-
import { SignatureComponent } from "./component/signature/signature.component";
|
|
5
|
-
import { SignaturesComponent } from "./component/signatures/signatures.component";
|
|
6
|
-
export class DocsignModule {
|
|
7
|
-
}
|
|
8
|
-
DocsignModule.decorators = [
|
|
9
|
-
{ type: NgModule, args: [{
|
|
10
|
-
imports: [
|
|
11
|
-
CommonModule
|
|
12
|
-
],
|
|
13
|
-
declarations: [
|
|
14
|
-
DocsignComponent,
|
|
15
|
-
SignatureComponent,
|
|
16
|
-
SignaturesComponent
|
|
17
|
-
],
|
|
18
|
-
exports: [
|
|
19
|
-
DocsignComponent
|
|
20
|
-
]
|
|
21
|
-
},] }
|
|
22
|
-
];
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { NgModule } from "@angular/core";
|
|
2
|
+
import { CommonModule } from "@angular/common";
|
|
3
|
+
import { DocsignComponent } from "./docsign.component";
|
|
4
|
+
import { SignatureComponent } from "./component/signature/signature.component";
|
|
5
|
+
import { SignaturesComponent } from "./component/signatures/signatures.component";
|
|
6
|
+
export class DocsignModule {
|
|
7
|
+
}
|
|
8
|
+
DocsignModule.decorators = [
|
|
9
|
+
{ type: NgModule, args: [{
|
|
10
|
+
imports: [
|
|
11
|
+
CommonModule
|
|
12
|
+
],
|
|
13
|
+
declarations: [
|
|
14
|
+
DocsignComponent,
|
|
15
|
+
SignatureComponent,
|
|
16
|
+
SignaturesComponent
|
|
17
|
+
],
|
|
18
|
+
exports: [
|
|
19
|
+
DocsignComponent
|
|
20
|
+
]
|
|
21
|
+
},] }
|
|
22
|
+
];
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jc2lnbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9kb2NzaWduL2RvY3NpZ24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQzdFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBZWhGLE1BQU0sT0FBTyxhQUFhOzs7WUFiekIsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxZQUFZO2lCQUNiO2dCQUNELFlBQVksRUFBRTtvQkFDWixnQkFBZ0I7b0JBQ2hCLGtCQUFrQjtvQkFDbEIsbUJBQW1CO2lCQUNwQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsZ0JBQWdCO2lCQUNqQjthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtEb2NzaWduQ29tcG9uZW50fSBmcm9tIFwiLi9kb2NzaWduLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1NpZ25hdHVyZUNvbXBvbmVudH0gZnJvbSBcIi4vY29tcG9uZW50L3NpZ25hdHVyZS9zaWduYXR1cmUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7U2lnbmF0dXJlc0NvbXBvbmVudH0gZnJvbSBcIi4vY29tcG9uZW50L3NpZ25hdHVyZXMvc2lnbmF0dXJlcy5jb21wb25lbnRcIjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIERvY3NpZ25Db21wb25lbnQsXHJcbiAgICBTaWduYXR1cmVDb21wb25lbnQsXHJcbiAgICBTaWduYXR1cmVzQ29tcG9uZW50XHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBEb2NzaWduQ29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRG9jc2lnbk1vZHVsZSB7XHJcblxyXG59XHJcbiJdfQ==
|