@colijnit/sharedcomponents 1.0.24 → 1.0.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.browserslistrc +16 -0
- package/.editorconfig +16 -0
- package/.vscode/extensions.json +4 -0
- package/.vscode/launch.json +20 -0
- package/.vscode/tasks.json +42 -0
- package/README.md +11 -8
- package/Sharedcomponents.iml +11 -0
- package/angular.json +133 -0
- package/karma.conf.js +44 -0
- package/move-assets.js +14 -0
- package/package.json +74 -26
- package/projects/sharedcomponents/.browserslistrc +16 -0
- package/projects/sharedcomponents/README.md +24 -0
- package/projects/sharedcomponents/karma.conf.js +44 -0
- package/projects/sharedcomponents/ng-package.json +17 -0
- package/projects/sharedcomponents/package.json +18 -0
- package/projects/sharedcomponents/src/lib/assets/dictionary/text.properties.ts +8 -0
- package/projects/sharedcomponents/src/lib/assets/icons/angle_left_solid.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/angle_right_solid.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/arrow_fat_right.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/arrow_point_left.svg +8 -0
- package/projects/sharedcomponents/src/lib/assets/icons/arrow_point_right.svg +4 -0
- package/projects/sharedcomponents/src/lib/assets/icons/bring_forward_regular.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/check_round.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/delete_left_regular.svg +1 -0
- package/projects/sharedcomponents/src/lib/assets/icons/delivery_truck.svg +12 -0
- package/projects/sharedcomponents/src/lib/assets/icons/email.svg +5 -0
- package/projects/sharedcomponents/src/lib/assets/icons/pdf.svg +15 -0
- package/projects/sharedcomponents/src/lib/assets/icons/print.svg +10 -0
- package/projects/sharedcomponents/src/lib/assets/icons/signature_field.svg +9 -0
- package/projects/sharedcomponents/src/lib/assets/icons/xml.svg +9 -0
- package/projects/sharedcomponents/src/lib/components/circular-gauge/co-circular-gauge.component.ts +139 -0
- package/projects/sharedcomponents/src/lib/components/circular-gauge/co-circular-gauge.module.ts +19 -0
- package/{lib → projects/sharedcomponents/src/lib}/components/circular-gauge/style/_layout.scss +0 -0
- package/{lib → projects/sharedcomponents/src/lib}/components/circular-gauge/style/_material-definition.scss +0 -0
- package/{lib → projects/sharedcomponents/src/lib}/components/circular-gauge/style/_theme.scss +0 -0
- package/{lib → projects/sharedcomponents/src/lib}/components/circular-gauge/style/material.scss +0 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-base-view.component.ts +68 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-day-view.component.ts +31 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-event.component.ts +67 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-events.component.ts +48 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-half-hour-cell.component.ts +81 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-header.component.ts +265 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-hour-cell.component.ts +38 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-hour-view-labels.component.ts +50 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-hour-view.component.ts +46 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-month-view.component.ts +65 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-view.component.ts +38 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-week-select-view.component.ts +63 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-week-view.component.ts +46 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/style/_layout.scss +443 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/style/_material-definition.scss +11 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/style/_theme.scss +7 -0
- package/{lib/components/layout-switcher → projects/sharedcomponents/src/lib/components/date-planning/component/agenda}/style/material.scss +0 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/calendar/calendar-all-months.component.ts +37 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/calendar/calendar-all-years.component.ts +52 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/calendar/calendar-header.component.ts +124 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/calendar/calendar-view.component.ts +201 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/calendar/calendar.component.ts +35 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/calendar/style/_layout.scss +167 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/calendar/style/_material-definition.scss +7 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/component/calendar/style/_theme.scss +7 -0
- package/{lib/components/linear-gauge → projects/sharedcomponents/src/lib/components/date-planning/component/calendar}/style/material.scss +0 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/date-planning.component.ts +133 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/date-planning.module.ts +56 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/style/_layout.scss +47 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/style/_material-definition.scss +0 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/style/_theme.scss +7 -0
- package/projects/sharedcomponents/src/lib/components/date-planning/style/material.scss +5 -0
- package/projects/sharedcomponents/src/lib/components/docsign/component/signature/signature.component.ts +82 -0
- package/{lib → projects/sharedcomponents/src/lib}/components/docsign/component/signature/style/_layout.scss +0 -0
- package/{lib → projects/sharedcomponents/src/lib}/components/docsign/component/signature/style/_material-definition.scss +0 -0
- package/{lib → projects/sharedcomponents/src/lib}/components/docsign/component/signature/style/_theme.scss +0 -0
- package/{lib → projects/sharedcomponents/src/lib}/components/docsign/component/signature/style/material.scss +0 -0
- package/projects/sharedcomponents/src/lib/components/docsign/component/signatures/signatures.component.ts +50 -0
- package/{lib → projects/sharedcomponents/src/lib}/components/docsign/component/signatures/style/_layout.scss +0 -0
- package/{lib → projects/sharedcomponents/src/lib}/components/docsign/component/signatures/style/_material-definition.scss +0 -0
- package/{lib → projects/sharedcomponents/src/lib}/components/docsign/component/signatures/style/_theme.scss +0 -0
- package/{lib → projects/sharedcomponents/src/lib}/components/docsign/component/signatures/style/material.scss +0 -0
- package/projects/sharedcomponents/src/lib/components/docsign/docsign.component.ts +252 -0
- package/projects/sharedcomponents/src/lib/components/docsign/docsign.module.ts +22 -0
- package/{lib → projects/sharedcomponents/src/lib}/components/docsign/style/_layout.scss +0 -0
- package/{lib → projects/sharedcomponents/src/lib}/components/docsign/style/_material-definition.scss +0 -0
- package/{lib → projects/sharedcomponents/src/lib}/components/docsign/style/_theme.scss +0 -0
- package/{lib → projects/sharedcomponents/src/lib}/components/docsign/style/material.scss +0 -0
- package/projects/sharedcomponents/src/lib/components/key-pad/key-pad.component.ts +205 -0
- package/projects/sharedcomponents/src/lib/components/key-pad/key-pad.module.ts +19 -0
- package/{lib → projects/sharedcomponents/src/lib}/components/key-pad/style/_layout.scss +0 -0
- package/{lib → projects/sharedcomponents/src/lib}/components/key-pad/style/_material-definition.scss +0 -0
- package/{lib → projects/sharedcomponents/src/lib}/components/key-pad/style/_theme.scss +0 -0
- package/{lib → projects/sharedcomponents/src/lib}/components/key-pad/style/material.scss +0 -0
- package/projects/sharedcomponents/src/lib/components/layout-switcher/layout-switcher.component.ts +98 -0
- package/projects/sharedcomponents/src/lib/components/layout-switcher/layout-switcher.module.ts +21 -0
- package/{lib → projects/sharedcomponents/src/lib}/components/layout-switcher/style/_layout.scss +0 -0
- package/{lib → projects/sharedcomponents/src/lib}/components/layout-switcher/style/_material-definition.scss +0 -0
- package/{lib → projects/sharedcomponents/src/lib}/components/layout-switcher/style/_theme.scss +0 -0
- package/projects/sharedcomponents/src/lib/components/layout-switcher/style/material.scss +5 -0
- package/projects/sharedcomponents/src/lib/components/linear-gauge/co-linear-gauge.component.ts +56 -0
- package/projects/sharedcomponents/src/lib/components/linear-gauge/co-linear-gauge.module.ts +17 -0
- package/{lib → projects/sharedcomponents/src/lib}/components/linear-gauge/style/_layout.scss +0 -0
- package/{lib → projects/sharedcomponents/src/lib}/components/linear-gauge/style/_material-definition.scss +0 -0
- package/{lib → projects/sharedcomponents/src/lib}/components/linear-gauge/style/_theme.scss +0 -0
- package/projects/sharedcomponents/src/lib/components/linear-gauge/style/material.scss +5 -0
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/enums/send-option.ts +6 -0
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/send-method-dialog.component.ts +342 -0
- package/projects/sharedcomponents/src/lib/components/send-method-dialog/send-method-dialog.module.ts +33 -0
- package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/style/_layout.scss +0 -0
- package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/style/_material-definition.scss +0 -0
- package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/style/_theme.scss +0 -0
- package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/style/material.scss +0 -0
- package/projects/sharedcomponents/src/lib/components/statusbar/statusbar.component.ts +97 -0
- package/projects/sharedcomponents/src/lib/components/statusbar/statusbar.module.ts +21 -0
- package/{lib → projects/sharedcomponents/src/lib}/components/statusbar/style/_layout.scss +0 -0
- package/{lib → projects/sharedcomponents/src/lib}/components/statusbar/style/_material-definition.scss +0 -0
- package/{lib → projects/sharedcomponents/src/lib}/components/statusbar/style/_theme.scss +0 -0
- package/{lib → projects/sharedcomponents/src/lib}/components/statusbar/style/material.scss +0 -0
- package/projects/sharedcomponents/src/lib/components/stock/stock-in-order/stock-in-order.component.ts +0 -0
- package/projects/sharedcomponents/src/lib/components/stock/stock-information/stock-information.component.ts +64 -0
- package/projects/sharedcomponents/src/lib/components/stock/stock-information-grid/stock-information-grid.component.ts +384 -0
- package/projects/sharedcomponents/src/lib/components/stock/stock-location/stock-location.component.ts +84 -0
- package/{lib/components/stock/stock-transfer/co-drop-down-list-fields.interface.d.ts → projects/sharedcomponents/src/lib/components/stock/stock-transfer/co-drop-down-list-fields.interface.ts} +2 -2
- package/projects/sharedcomponents/src/lib/components/stock/stock-transfer/stock-change-amount.component.ts +73 -0
- package/projects/sharedcomponents/src/lib/components/stock/stock-transfer/stock-transfer.component.ts +153 -0
- package/projects/sharedcomponents/src/lib/components/stock/stock.component.ts +165 -0
- package/projects/sharedcomponents/src/lib/components/stock/stock.module.ts +51 -0
- package/{lib → projects/sharedcomponents/src/lib}/components/stock/style/_layout.scss +0 -0
- package/{lib → projects/sharedcomponents/src/lib}/components/stock/style/_material-definition.scss +0 -0
- package/{lib → projects/sharedcomponents/src/lib}/components/stock/style/_theme.scss +0 -0
- package/{lib → projects/sharedcomponents/src/lib}/components/stock/style/material.scss +0 -0
- package/projects/sharedcomponents/src/lib/enum/calendar-view.enum.ts +6 -0
- package/{lib/enum/icon.enum.d.ts → projects/sharedcomponents/src/lib/enum/icon.enum.ts} +5 -2
- package/projects/sharedcomponents/src/lib/enum/keyboard-code.enum.ts +30 -0
- package/projects/sharedcomponents/src/lib/enum/language-code.enum.ts +6 -0
- package/projects/sharedcomponents/src/lib/enum/month.enum.ts +15 -0
- package/projects/sharedcomponents/src/lib/enum/time-period.enum.ts +9 -0
- package/projects/sharedcomponents/src/lib/factory/business-object-factory.ts +120 -0
- package/projects/sharedcomponents/src/lib/factory/decorators/boolean.decorator.ts +113 -0
- package/projects/sharedcomponents/src/lib/factory/decorators/complex-array.decorator.ts +61 -0
- package/projects/sharedcomponents/src/lib/factory/decorators/complex-field.decorator.ts +63 -0
- package/projects/sharedcomponents/src/lib/factory/decorators/date-field.decorator.ts +41 -0
- package/projects/sharedcomponents/src/lib/factory/decorators/string-number.decorator.ts +48 -0
- package/projects/sharedcomponents/src/lib/model/agenda-event-per-day.model.ts +6 -0
- package/projects/sharedcomponents/src/lib/model/agenda-event.model.ts +17 -0
- package/projects/sharedcomponents/src/lib/model/agenda-null-objects.ts +11 -0
- package/projects/sharedcomponents/src/lib/model/business-object.ts +85 -0
- package/projects/sharedcomponents/src/lib/model/constant/all-months.ts +17 -0
- package/projects/sharedcomponents/src/lib/model/date-range.ts +10 -0
- package/projects/sharedcomponents/src/lib/model/day.model.ts +9 -0
- package/projects/sharedcomponents/src/lib/model/icon-svg.ts +18 -0
- package/projects/sharedcomponents/src/lib/model/month.model.ts +11 -0
- package/projects/sharedcomponents/src/lib/model/time-window.bo.ts +21 -0
- package/projects/sharedcomponents/src/lib/model/week.model.ts +5 -0
- package/projects/sharedcomponents/src/lib/model/weekday.model.ts +17 -0
- package/projects/sharedcomponents/src/lib/pipe/array-number.pipe.ts +14 -0
- package/projects/sharedcomponents/src/lib/pipe/master-pipes.ts +7 -0
- package/projects/sharedcomponents/src/lib/pipe/ucfirst.pipe.ts +14 -0
- package/projects/sharedcomponents/src/lib/service/dictionary.service.ts +86 -0
- package/projects/sharedcomponents/src/lib/service/icon-cache.service.ts +51 -0
- package/projects/sharedcomponents/src/lib/service/options.service.ts +66 -0
- package/projects/sharedcomponents/src/lib/service/shared-connector.service.ts +258 -0
- package/projects/sharedcomponents/src/lib/service/shared-initializer.service.ts +29 -0
- package/projects/sharedcomponents/src/lib/service/shared.service.ts +21 -0
- package/projects/sharedcomponents/src/lib/service/stock.service.ts +95 -0
- package/{lib → projects/sharedcomponents/src/lib}/style/_mixin.scss +0 -0
- package/{lib → projects/sharedcomponents/src/lib}/style/_variables.scss +0 -0
- package/{lib → projects/sharedcomponents/src/lib}/style/sharedcomponents-globals.scss +0 -0
- package/projects/sharedcomponents/src/lib/utils/array-utils.ts +202 -0
- package/projects/sharedcomponents/src/lib/utils/calendar.utils.ts +75 -0
- package/projects/sharedcomponents/src/lib/utils/date-utils.ts +302 -0
- package/projects/sharedcomponents/src/lib/utils/function/not-nill.function.ts +4 -0
- package/projects/sharedcomponents/src/lib/utils/is-nill.function.ts +4 -0
- package/projects/sharedcomponents/src/lib/utils/string-utils.ts +67 -0
- package/{public-api.d.ts → projects/sharedcomponents/src/public-api.ts} +5 -0
- package/projects/sharedcomponents/src/test.ts +27 -0
- package/projects/sharedcomponents/tsconfig.lib.json +18 -0
- package/projects/sharedcomponents/tsconfig.lib.prod.json +10 -0
- package/projects/sharedcomponents/tsconfig.spec.json +17 -0
- package/script/merge-icons.js +39 -0
- package/src/app/app.component.scss +9 -0
- package/src/app/app.component.spec.ts +31 -0
- package/src/app/app.component.ts +156 -0
- package/src/app/app.module.ts +60 -0
- package/src/assets/.gitkeep +0 -0
- package/src/environments/environment.prod.ts +3 -0
- package/src/environments/environment.ts +16 -0
- package/src/favicon.ico +0 -0
- package/src/index.html +13 -0
- package/src/main.ts +12 -0
- package/src/polyfills.ts +53 -0
- package/src/styles.scss +40 -0
- package/src/test.ts +26 -0
- package/tsconfig.app.json +15 -0
- package/tsconfig.json +65 -0
- package/tsconfig.spec.json +18 -0
- package/bundles/colijnit-sharedcomponents.umd.js +0 -3701
- package/bundles/colijnit-sharedcomponents.umd.js.map +0 -1
- package/colijnit-sharedcomponents.d.ts +0 -16
- package/colijnit-sharedcomponents.metadata.json +0 -1
- package/esm2015/colijnit-sharedcomponents.js +0 -17
- package/esm2015/lib/assets/dictionary/text.properties.js +0 -11
- package/esm2015/lib/components/circular-gauge/co-circular-gauge.component.js +0 -125
- package/esm2015/lib/components/circular-gauge/co-circular-gauge.module.js +0 -21
- package/esm2015/lib/components/docsign/component/signature/signature.component.js +0 -75
- package/esm2015/lib/components/docsign/component/signatures/signatures.component.js +0 -44
- package/esm2015/lib/components/docsign/docsign.component.js +0 -225
- package/esm2015/lib/components/docsign/docsign.module.js +0 -23
- package/esm2015/lib/components/key-pad/key-pad.component.js +0 -191
- package/esm2015/lib/components/key-pad/key-pad.module.js +0 -21
- package/esm2015/lib/components/layout-switcher/layout-switcher.component.js +0 -74
- package/esm2015/lib/components/layout-switcher/layout-switcher.module.js +0 -21
- package/esm2015/lib/components/linear-gauge/co-linear-gauge.component.js +0 -55
- package/esm2015/lib/components/linear-gauge/co-linear-gauge.module.js +0 -19
- package/esm2015/lib/components/send-method-dialog/enums/send-option.js +0 -8
- package/esm2015/lib/components/send-method-dialog/send-method-dialog.component.js +0 -309
- package/esm2015/lib/components/send-method-dialog/send-method-dialog.module.js +0 -31
- package/esm2015/lib/components/statusbar/statusbar.component.js +0 -81
- package/esm2015/lib/components/statusbar/statusbar.module.js +0 -23
- package/esm2015/lib/components/stock/stock-information/stock-information.component.js +0 -54
- package/esm2015/lib/components/stock/stock-information-grid/stock-information-grid.component.js +0 -350
- package/esm2015/lib/components/stock/stock-location/stock-location.component.js +0 -62
- package/esm2015/lib/components/stock/stock-transfer/co-drop-down-list-fields.interface.js +0 -2
- package/esm2015/lib/components/stock/stock-transfer/stock-change-amount.component.js +0 -68
- package/esm2015/lib/components/stock/stock-transfer/stock-transfer.component.js +0 -130
- package/esm2015/lib/components/stock/stock.component.js +0 -140
- package/esm2015/lib/components/stock/stock.module.js +0 -48
- package/esm2015/lib/enum/icon.enum.js +0 -17
- package/esm2015/lib/enum/keyboard-code.enum.js +0 -32
- package/esm2015/lib/enum/language-code.enum.js +0 -8
- package/esm2015/lib/factory/business-object-factory.js +0 -120
- package/esm2015/lib/factory/decorators/boolean.decorator.js +0 -102
- package/esm2015/lib/factory/decorators/complex-array.decorator.js +0 -55
- package/esm2015/lib/factory/decorators/complex-field.decorator.js +0 -57
- package/esm2015/lib/factory/decorators/date-field.decorator.js +0 -36
- package/esm2015/lib/factory/decorators/string-number.decorator.js +0 -43
- package/esm2015/lib/model/business-object.js +0 -81
- package/esm2015/lib/model/icon-svg.js +0 -16
- package/esm2015/lib/service/dictionary.service.js +0 -76
- package/esm2015/lib/service/icon-cache.service.js +0 -51
- package/esm2015/lib/service/options.service.js +0 -71
- package/esm2015/lib/service/shared-connector.service.js +0 -278
- package/esm2015/lib/service/shared.service.js +0 -30
- package/esm2015/lib/service/stock.service.js +0 -95
- package/esm2015/lib/utils/array-utils.js +0 -183
- package/esm2015/lib/utils/is-nill.function.js +0 -5
- package/esm2015/lib/utils/string-utils.js +0 -64
- package/esm2015/public-api.js +0 -21
- package/fesm2015/colijnit-sharedcomponents.js +0 -3511
- package/fesm2015/colijnit-sharedcomponents.js.map +0 -1
- package/lib/assets/dictionary/text.properties.d.ts +0 -3
- package/lib/components/circular-gauge/co-circular-gauge.component.d.ts +0 -20
- package/lib/components/circular-gauge/co-circular-gauge.module.d.ts +0 -2
- package/lib/components/docsign/component/signature/signature.component.d.ts +0 -16
- package/lib/components/docsign/component/signatures/signatures.component.d.ts +0 -12
- package/lib/components/docsign/docsign.component.d.ts +0 -92
- package/lib/components/docsign/docsign.module.d.ts +0 -2
- package/lib/components/key-pad/key-pad.component.d.ts +0 -36
- package/lib/components/key-pad/key-pad.module.d.ts +0 -2
- package/lib/components/layout-switcher/layout-switcher.component.d.ts +0 -16
- package/lib/components/layout-switcher/layout-switcher.module.d.ts +0 -2
- package/lib/components/linear-gauge/co-linear-gauge.component.d.ts +0 -16
- package/lib/components/linear-gauge/co-linear-gauge.module.d.ts +0 -2
- package/lib/components/send-method-dialog/enums/send-option.d.ts +0 -6
- package/lib/components/send-method-dialog/send-method-dialog.component.d.ts +0 -62
- package/lib/components/send-method-dialog/send-method-dialog.module.d.ts +0 -2
- package/lib/components/statusbar/statusbar.component.d.ts +0 -23
- package/lib/components/statusbar/statusbar.module.d.ts +0 -2
- package/lib/components/stock/stock-information/stock-information.component.d.ts +0 -10
- package/lib/components/stock/stock-information-grid/stock-information-grid.component.d.ts +0 -60
- package/lib/components/stock/stock-location/stock-location.component.d.ts +0 -15
- package/lib/components/stock/stock-transfer/stock-change-amount.component.d.ts +0 -18
- package/lib/components/stock/stock-transfer/stock-transfer.component.d.ts +0 -36
- package/lib/components/stock/stock.component.d.ts +0 -42
- package/lib/components/stock/stock.module.d.ts +0 -2
- package/lib/enum/keyboard-code.enum.d.ts +0 -30
- package/lib/enum/language-code.enum.d.ts +0 -6
- package/lib/factory/business-object-factory.d.ts +0 -23
- package/lib/factory/decorators/boolean.decorator.d.ts +0 -43
- package/lib/factory/decorators/complex-array.decorator.d.ts +0 -25
- package/lib/factory/decorators/complex-field.decorator.d.ts +0 -25
- package/lib/factory/decorators/date-field.decorator.d.ts +0 -17
- package/lib/factory/decorators/string-number.decorator.d.ts +0 -22
- package/lib/model/business-object.d.ts +0 -7
- package/lib/model/icon-svg.d.ts +0 -4
- package/lib/service/dictionary.service.d.ts +0 -21
- package/lib/service/icon-cache.service.d.ts +0 -18
- package/lib/service/options.service.d.ts +0 -13
- package/lib/service/shared-connector.service.d.ts +0 -43
- package/lib/service/shared.service.d.ts +0 -8
- package/lib/service/stock.service.d.ts +0 -38
- package/lib/utils/array-utils.d.ts +0 -57
- package/lib/utils/is-nill.function.d.ts +0 -1
- package/lib/utils/string-utils.d.ts +0 -22
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import {Component, ElementRef, EventEmitter, HostBinding, Input, OnInit, Output, ViewChild, ViewEncapsulation} from "@angular/core";
|
|
2
|
+
import SignaturePad from "signature_pad";
|
|
3
|
+
|
|
4
|
+
@Component({
|
|
5
|
+
selector: "ione-signature",
|
|
6
|
+
template: `
|
|
7
|
+
<div class="signature-wrapper">
|
|
8
|
+
<div class="signature-header">
|
|
9
|
+
<span *ngIf="title" class="title" [textContent]="title"></span>
|
|
10
|
+
<div class="button-wrapper">
|
|
11
|
+
<input type="button" (click)="handleSave($event)" [value]="saveButtonLabel"/>
|
|
12
|
+
<input type="button" (click)="handleClear($event)" [value]="clearButtonLabel">
|
|
13
|
+
</div>
|
|
14
|
+
</div>
|
|
15
|
+
<div class="canvas">
|
|
16
|
+
<canvas #signature></canvas>
|
|
17
|
+
</div>
|
|
18
|
+
</div>
|
|
19
|
+
`,
|
|
20
|
+
encapsulation: ViewEncapsulation.None
|
|
21
|
+
})
|
|
22
|
+
export class SignatureComponent {
|
|
23
|
+
@ViewChild("signature", {read: ElementRef}) set content(content: ElementRef) {
|
|
24
|
+
if (content) {
|
|
25
|
+
this.signatureCanvas = content;
|
|
26
|
+
this._initCanvas();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
@Input()
|
|
31
|
+
public title: string;
|
|
32
|
+
|
|
33
|
+
@Input()
|
|
34
|
+
public saveButtonLabel: string = 'SAVE';
|
|
35
|
+
|
|
36
|
+
@Input()
|
|
37
|
+
public clearButtonLabel: string = 'CLEAR';
|
|
38
|
+
|
|
39
|
+
@Output()
|
|
40
|
+
public save: EventEmitter<string> = new EventEmitter<string>();
|
|
41
|
+
|
|
42
|
+
@HostBinding("class.ione-signature")
|
|
43
|
+
public showClass() {
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
public signature: SignaturePad;
|
|
48
|
+
public signatureCanvas: ElementRef;
|
|
49
|
+
|
|
50
|
+
public handleSave(event: MouseEvent): void {
|
|
51
|
+
// save canvas as svg
|
|
52
|
+
// const sig: string = this.signature.toDataURL("image/svg+xml");
|
|
53
|
+
const sig: string = this.signature.toDataURL("image/png");
|
|
54
|
+
// emit signature string
|
|
55
|
+
this.save.next(sig);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
public handleClear(event: MouseEvent): void {
|
|
59
|
+
if (this.signature) {
|
|
60
|
+
this.signature.clear();
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
private _initCanvas(): void {
|
|
65
|
+
if (this.signatureCanvas && this.signatureCanvas.nativeElement) {
|
|
66
|
+
this.signature = new SignaturePad(this.signatureCanvas.nativeElement);
|
|
67
|
+
setTimeout(() => {
|
|
68
|
+
this._resizeSignatureCanvas(this.signature, this.signatureCanvas);
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
private _resizeSignatureCanvas(signature: SignaturePad, signatureCanvas: ElementRef): void {
|
|
74
|
+
const imageBeforeResize: string = signature.toDataURL();
|
|
75
|
+
const ratio: number = Math.max(window.devicePixelRatio || 1, 1);
|
|
76
|
+
signatureCanvas.nativeElement.width = signatureCanvas.nativeElement.offsetWidth * ratio;
|
|
77
|
+
signatureCanvas.nativeElement.height = signatureCanvas.nativeElement.offsetHeight * ratio;
|
|
78
|
+
signatureCanvas.nativeElement.getContext("2d").scale(ratio, ratio);
|
|
79
|
+
signature.fromDataURL(imageBeforeResize);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import {Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation} from "@angular/core";
|
|
2
|
+
|
|
3
|
+
@Component({
|
|
4
|
+
selector: "ione-signatures",
|
|
5
|
+
template: `
|
|
6
|
+
<ione-signature *ngIf="showFirstSignature"
|
|
7
|
+
[title]="firstSignatureTitle"
|
|
8
|
+
[saveButtonLabel]="saveButtonLabel"
|
|
9
|
+
[clearButtonLabel]="clearButtonLabel"
|
|
10
|
+
(save)="saveFirstSignature.emit($event)"></ione-signature>
|
|
11
|
+
<ione-signature *ngIf="showSecondSignature"
|
|
12
|
+
[title]="secondSignatureTitle"
|
|
13
|
+
[saveButtonLabel]="saveButtonLabel"
|
|
14
|
+
[clearButtonLabel]="clearButtonLabel"
|
|
15
|
+
(save)="saveSecondSignature.emit($event)"></ione-signature>
|
|
16
|
+
`,
|
|
17
|
+
encapsulation: ViewEncapsulation.None
|
|
18
|
+
})
|
|
19
|
+
export class SignaturesComponent {
|
|
20
|
+
|
|
21
|
+
@Input()
|
|
22
|
+
public showFirstSignature: boolean = false;
|
|
23
|
+
|
|
24
|
+
@Input()
|
|
25
|
+
public firstSignatureTitle: string;
|
|
26
|
+
|
|
27
|
+
@Input()
|
|
28
|
+
public showSecondSignature: boolean = false;
|
|
29
|
+
|
|
30
|
+
@Input()
|
|
31
|
+
public secondSignatureTitle: string;
|
|
32
|
+
|
|
33
|
+
@Input()
|
|
34
|
+
public saveButtonLabel: string = 'SAVE';
|
|
35
|
+
|
|
36
|
+
@Input()
|
|
37
|
+
public clearButtonLabel: string = 'CLEAR';
|
|
38
|
+
|
|
39
|
+
@Output()
|
|
40
|
+
public saveFirstSignature: EventEmitter<string> = new EventEmitter<string>();
|
|
41
|
+
|
|
42
|
+
@Output()
|
|
43
|
+
public saveSecondSignature: EventEmitter<string> = new EventEmitter<string>();
|
|
44
|
+
|
|
45
|
+
@HostBinding("class.ione-signatures")
|
|
46
|
+
public showClass() {
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
import {Component, ElementRef, EventEmitter, HostBinding, Input, Output, ViewChild, ViewEncapsulation} from "@angular/core";
|
|
2
|
+
import {animate, state, style, transition, trigger} from "@angular/animations";
|
|
3
|
+
import {PDFDocument} from "pdf-lib";
|
|
4
|
+
import * as PDFJS from "pdfjs-dist/legacy/build/pdf";
|
|
5
|
+
import pdfjsWorker from "pdfjs-dist/build/pdf.worker.entry";
|
|
6
|
+
import {TextItem} from "pdfjs-dist/types/src/display/api";
|
|
7
|
+
|
|
8
|
+
export interface TextDimension {
|
|
9
|
+
x: number,
|
|
10
|
+
y: number,
|
|
11
|
+
width: number,
|
|
12
|
+
height: number,
|
|
13
|
+
page: number
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
@Component({
|
|
17
|
+
selector: "ione-docsign",
|
|
18
|
+
template: `
|
|
19
|
+
<iframe #iframe></iframe>
|
|
20
|
+
<ione-signatures *ngIf="showSignatures" @showHideSignature
|
|
21
|
+
[showFirstSignature]="showSigBuyer"
|
|
22
|
+
[firstSignatureTitle]="firstSignatureLabel"
|
|
23
|
+
[showSecondSignature]="showSigSeller"
|
|
24
|
+
[secondSignatureTitle]="secondSignatureLabel"
|
|
25
|
+
[saveButtonLabel]="saveButtonLabel"
|
|
26
|
+
[clearButtonLabel]="clearButtonLabel"
|
|
27
|
+
(saveFirstSignature)="saveFirstSignature($event)"
|
|
28
|
+
(saveSecondSignature)="saveSecondSignature($event)"
|
|
29
|
+
></ione-signatures>
|
|
30
|
+
<input type="button" *ngIf="(showSigBuyer || showSigSeller) && !showSignatures" class="button button-sign-document"
|
|
31
|
+
[value]="signDocumentButtonLabel"
|
|
32
|
+
(click)="showSignatures = true"
|
|
33
|
+
/>
|
|
34
|
+
<input type="button" class="button button-cancel"
|
|
35
|
+
[value]="cancelButtonLabel"
|
|
36
|
+
(click)="cancelClick.emit($event)"
|
|
37
|
+
/>
|
|
38
|
+
`,
|
|
39
|
+
animations: [
|
|
40
|
+
trigger("showHideSignature", [
|
|
41
|
+
state("void", style({transform: "translate(-50%, -50%) scale(0)"})),
|
|
42
|
+
state("*", style({transform: "translate(-50%, -50%) scale(1)"})),
|
|
43
|
+
transition("void <=> *", animate("200ms ease-in-out")),
|
|
44
|
+
])
|
|
45
|
+
],
|
|
46
|
+
encapsulation: ViewEncapsulation.None
|
|
47
|
+
})
|
|
48
|
+
export class DocsignComponent {
|
|
49
|
+
@ViewChild("iframe", { read: ElementRef })
|
|
50
|
+
public iframe: ElementRef;
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Load an existing [[PDFDocument]]. The input data can be provided in
|
|
54
|
+
* multiple formats:
|
|
55
|
+
*
|
|
56
|
+
* | Type | Contents |
|
|
57
|
+
* | ------------- | ------------------------------------------------------ |
|
|
58
|
+
* | `string` | A base64 encoded string (or data URI) containing a PDF |
|
|
59
|
+
* | `Uint8Array` | The raw bytes of a PDF |
|
|
60
|
+
* | `ArrayBuffer` | The raw bytes of a PDF |
|
|
61
|
+
*
|
|
62
|
+
* For example:
|
|
63
|
+
* ```js
|
|
64
|
+
* import { PDFDocument } from 'pdf-lib'
|
|
65
|
+
*
|
|
66
|
+
* // pdf=string
|
|
67
|
+
* const base64 =
|
|
68
|
+
* 'JVBERi0xLjcKJYGBgYEKCjUgMCBvYmoKPDwKL0ZpbHRlciAvRmxhdGVEZWNvZGUKL0xlbm' +
|
|
69
|
+
* 'd0aCAxMDQKPj4Kc3RyZWFtCniccwrhMlAAwaJ0Ln2P1Jyy1JLM5ERdc0MjCwUjE4WQNC4Q' +
|
|
70
|
+
* '6cNlCFZkqGCqYGSqEJLLZWNuYGZiZmbkYuZsZmlmZGRgZmluDCQNzc3NTM2NzdzMXMxMjQ' +
|
|
71
|
+
* 'ztFEKyuEK0uFxDuAAOERdVCmVuZHN0cmVhbQplbmRvYmoKCjYgMCBvYmoKPDwKL0ZpbHRl' +
|
|
72
|
+
* 'ciAvRmxhdGVEZWNvZGUKL1R5cGUgL09ialN0bQovTiA0Ci9GaXJzdCAyMAovTGVuZ3RoID' +
|
|
73
|
+
* 'IxNQo+PgpzdHJlYW0KeJxVj9GqwjAMhu/zFHkBzTo3nCCCiiKIHPEICuJF3cKoSCu2E8/b' +
|
|
74
|
+
* '20wPIr1p8v9/8kVhgilmGfawX2CGaVrgcAi0/bsy0lrX7IGWpvJ4iJYEN3gEmrrGBlQwGs' +
|
|
75
|
+
* 'HHO9VBX1wNrxAqMX87RBD5xpJuddqwd82tjAHxzV1U5LPgy52DKXWnr1Lheg+j/c/pzGVr' +
|
|
76
|
+
* 'iqV0VlwZPXGPCJjElw/ybkwUmeoWgxesDXGhHJC/D/iikp1Av80ptKU0FdBEe25pPihAM1' +
|
|
77
|
+
* 'u6ytgaaWfs2Hrz35CJT1+EWmAKZW5kc3RyZWFtCmVuZG9iagoKNyAwIG9iago8PAovU2l6' +
|
|
78
|
+
* 'ZSA4Ci9Sb290IDIgMCBSCi9GaWx0ZXIgL0ZsYXRlRGVjb2RlCi9UeXBlIC9YUmVmCi9MZW' +
|
|
79
|
+
* '5ndGggMzgKL1cgWyAxIDIgMiBdCi9JbmRleCBbIDAgOCBdCj4+CnN0cmVhbQp4nBXEwREA' +
|
|
80
|
+
* 'EBAEsCwz3vrvRmOOyyOoGhZdutHN2MT55fIAVocD+AplbmRzdHJlYW0KZW5kb2JqCgpzdG' +
|
|
81
|
+
* 'FydHhyZWYKNTEwCiUlRU9G'
|
|
82
|
+
*
|
|
83
|
+
* const dataUri = 'data:application/pdf;base64,' + base64
|
|
84
|
+
*
|
|
85
|
+
* const pdfDoc1 = await PDFDocument.load(base64)
|
|
86
|
+
* const pdfDoc2 = await PDFDocument.load(dataUri)
|
|
87
|
+
*
|
|
88
|
+
* // pdf=Uint8Array
|
|
89
|
+
* import fs from 'fs'
|
|
90
|
+
* const uint8Array = fs.readFileSync('with_update_sections.pdf')
|
|
91
|
+
* const pdfDoc3 = await PDFDocument.load(uint8Array)
|
|
92
|
+
*
|
|
93
|
+
* // pdf=ArrayBuffer
|
|
94
|
+
* const url = 'https://pdf-lib.js.org/assets/with_update_sections.pdf'
|
|
95
|
+
* const arrayBuffer = await fetch(url).then(res => res.arrayBuffer())
|
|
96
|
+
* const pdfDoc4 = await PDFDocument.load(arrayBuffer)
|
|
97
|
+
*
|
|
98
|
+
* ```
|
|
99
|
+
*
|
|
100
|
+
* @param pdf The input data containing a PDF document.
|
|
101
|
+
* @param options The options to be used when loading the document.
|
|
102
|
+
* @returns Resolves with a document loaded from the input.
|
|
103
|
+
*/
|
|
104
|
+
@Input()
|
|
105
|
+
public set pdf(value: any) {
|
|
106
|
+
if (value) {
|
|
107
|
+
this._pdf = value;
|
|
108
|
+
this._openPDF();
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
public get pdf(): any {
|
|
113
|
+
return this._pdf;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
@Input()
|
|
117
|
+
public firstSignatureLabel: string;
|
|
118
|
+
|
|
119
|
+
@Input()
|
|
120
|
+
public firstSignatureField: string;
|
|
121
|
+
|
|
122
|
+
@Input()
|
|
123
|
+
public secondSignatureLabel: string;
|
|
124
|
+
|
|
125
|
+
@Input()
|
|
126
|
+
public secondSignatureField: string;
|
|
127
|
+
|
|
128
|
+
@Input()
|
|
129
|
+
public saveButtonLabel: string = 'SAVE';
|
|
130
|
+
|
|
131
|
+
@Input()
|
|
132
|
+
public clearButtonLabel: string = 'CLEAR';
|
|
133
|
+
|
|
134
|
+
@Input()
|
|
135
|
+
public signDocumentButtonLabel: string = 'SIGN_DOCUMENT';
|
|
136
|
+
|
|
137
|
+
@Input()
|
|
138
|
+
public cancelButtonLabel: string = 'CANCEL';
|
|
139
|
+
|
|
140
|
+
@Output()
|
|
141
|
+
public pdfSaved: EventEmitter<string> = new EventEmitter<string>();
|
|
142
|
+
|
|
143
|
+
@Output()
|
|
144
|
+
public cancelClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();
|
|
145
|
+
|
|
146
|
+
@HostBinding('class.ione-docsign')
|
|
147
|
+
public showClass() {
|
|
148
|
+
return true;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
public showSignaturePopup: boolean = false;
|
|
152
|
+
public showSigBuyer: boolean = false;
|
|
153
|
+
public sigBuyerPosition: TextDimension;
|
|
154
|
+
public showSigSeller: boolean = false;
|
|
155
|
+
public sigSellerPosition: TextDimension;
|
|
156
|
+
public showSignatures: boolean = false;
|
|
157
|
+
|
|
158
|
+
public pdfDoc: PDFDocument;
|
|
159
|
+
|
|
160
|
+
private _pdf: any;
|
|
161
|
+
|
|
162
|
+
public saveFirstSignature(sig: string): void {
|
|
163
|
+
this._saveSignature(sig, this.sigBuyerPosition);
|
|
164
|
+
this.showSigBuyer = false;
|
|
165
|
+
this._savePdf();
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
public saveSecondSignature(sig: string): void {
|
|
169
|
+
this._saveSignature(sig, this.sigSellerPosition);
|
|
170
|
+
this.showSigSeller = false;
|
|
171
|
+
this._savePdf();
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
private async _openPDF(): Promise<void> {
|
|
175
|
+
// first create reader to check signatures
|
|
176
|
+
this._checkSignatures();
|
|
177
|
+
|
|
178
|
+
this.pdfDoc = await PDFDocument.load(this._pdf, {
|
|
179
|
+
updateMetadata: false
|
|
180
|
+
});
|
|
181
|
+
const pdfDataUri = await this.pdfDoc.saveAsBase64({ dataUri: true });
|
|
182
|
+
this.iframe.nativeElement.src = pdfDataUri;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
private async _savePdf(): Promise<void> {
|
|
186
|
+
if (!this.showSigBuyer && !this.showSigSeller) {
|
|
187
|
+
// ready, save the pdf and emit result
|
|
188
|
+
const result = await this.pdfDoc.saveAsBase64();
|
|
189
|
+
this.pdfSaved.next(result);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
private async _checkSignatures(): Promise<void> {
|
|
194
|
+
let pdfWorkerSrc;
|
|
195
|
+
if (window.hasOwnProperty('pdfWorkerSrc') &&
|
|
196
|
+
typeof (window as any).pdfWorkerSrc === 'string' &&
|
|
197
|
+
(window as any).pdfWorkerSrc) {
|
|
198
|
+
pdfWorkerSrc = (window as any).pdfWorkerSrc;
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
pdfWorkerSrc = pdfjsWorker;
|
|
202
|
+
}
|
|
203
|
+
PDFJS.GlobalWorkerOptions.workerSrc = pdfWorkerSrc;
|
|
204
|
+
const pdfReader = await PDFJS.getDocument(this._pdf).promise;
|
|
205
|
+
const numPages = pdfReader.numPages;
|
|
206
|
+
for (let i = 0; i < numPages; i++) {
|
|
207
|
+
const page = await pdfReader.getPage(i + 1);
|
|
208
|
+
const text = await page.getTextContent();
|
|
209
|
+
page.cleanup();
|
|
210
|
+
if (this.firstSignatureField) {
|
|
211
|
+
this.sigBuyerPosition = this._getPositionSignature(text, this.firstSignatureField);
|
|
212
|
+
if (this.sigBuyerPosition.width > 0 && this.sigBuyerPosition.height > 0) {
|
|
213
|
+
this.sigBuyerPosition.page = i;
|
|
214
|
+
this.showSigBuyer = true;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
if (this.secondSignatureField) {
|
|
218
|
+
this.sigSellerPosition = this._getPositionSignature(text, this.secondSignatureField);
|
|
219
|
+
if (this.sigSellerPosition.width > 0 && this.sigSellerPosition.height > 0) {
|
|
220
|
+
this.sigSellerPosition.page = i;
|
|
221
|
+
this.showSigSeller = true;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
private _getPositionSignature(textItem: any, signatureField: string): TextDimension {
|
|
228
|
+
const sigItem: TextItem = <TextItem>textItem.items.find((i: any) => i.str.toLowerCase() === signatureField.toLowerCase());
|
|
229
|
+
if (sigItem) {
|
|
230
|
+
textItem.items.slice(textItem.items.indexOf(sigItem), 1);
|
|
231
|
+
return {
|
|
232
|
+
x: sigItem.transform[4],
|
|
233
|
+
y: sigItem.transform[5],
|
|
234
|
+
width: sigItem.width,
|
|
235
|
+
height: sigItem.height,
|
|
236
|
+
page: 0
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
return {x: 0, y: 0, width: 0, height: 0, page: 0}
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
private async _saveSignature(sig: string, dimensions: TextDimension): Promise<void> {
|
|
243
|
+
const jpgImage = await this.pdfDoc.embedPng(sig);
|
|
244
|
+
const page = await this.pdfDoc.getPage(dimensions.page);
|
|
245
|
+
page.drawImage(jpgImage, {
|
|
246
|
+
x: ((dimensions.x + (dimensions.width / 2)) - (200 / 2)),
|
|
247
|
+
y: ((dimensions.y + (dimensions.height / 2)) - (100 / 2)),
|
|
248
|
+
width: 200,
|
|
249
|
+
height: 100
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
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
|
+
|
|
7
|
+
@NgModule({
|
|
8
|
+
imports: [
|
|
9
|
+
CommonModule
|
|
10
|
+
],
|
|
11
|
+
declarations: [
|
|
12
|
+
DocsignComponent,
|
|
13
|
+
SignatureComponent,
|
|
14
|
+
SignaturesComponent
|
|
15
|
+
],
|
|
16
|
+
exports: [
|
|
17
|
+
DocsignComponent
|
|
18
|
+
]
|
|
19
|
+
})
|
|
20
|
+
export class DocsignModule {
|
|
21
|
+
|
|
22
|
+
}
|
|
File without changes
|
package/{lib → projects/sharedcomponents/src/lib}/components/docsign/style/_material-definition.scss
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import {Component, EventEmitter, HostBinding, HostListener, Input, Output, ViewEncapsulation} from '@angular/core';
|
|
2
|
+
import {Icon} from '../../enum/icon.enum';
|
|
3
|
+
import {IconCacheService} from '../../service/icon-cache.service';
|
|
4
|
+
import {KeyboardCode} from '../../enum/keyboard-code.enum';
|
|
5
|
+
|
|
6
|
+
@Component({
|
|
7
|
+
selector: 'co-key-pad',
|
|
8
|
+
template: `
|
|
9
|
+
<div class="key-pad-wrapper">
|
|
10
|
+
<div class="key-pad-model-wrapper" *ngIf="showValue">
|
|
11
|
+
<div class="key-pad-model" [textContent]="internalModel" [class.negative]="isNegative"></div>
|
|
12
|
+
</div>
|
|
13
|
+
<div class="key-pad-button-wrapper">
|
|
14
|
+
<div class="key-pad-button button-7" [textContent]="'7'" (click)="handleButtonClick('7')"></div>
|
|
15
|
+
<div class="key-pad-button button-8" [textContent]="'8'" (click)="handleButtonClick('8')"></div>
|
|
16
|
+
<div class="key-pad-button button-9" [textContent]="'9'" (click)="handleButtonClick('9')"></div>
|
|
17
|
+
<div class="key-pad-button button-bs" (click)="handleBsClick($event)">
|
|
18
|
+
<co-icon [iconData]="iconCacheService.getIcon(icons.DeleteLeftRegular)"></co-icon>
|
|
19
|
+
</div>
|
|
20
|
+
<div class="key-pad-button button-4" [textContent]="'4'" (click)="handleButtonClick('4')"></div>
|
|
21
|
+
<div class="key-pad-button button-5" [textContent]="'5'" (click)="handleButtonClick('5')"></div>
|
|
22
|
+
<div class="key-pad-button button-6" [textContent]="'6'" (click)="handleButtonClick('6')"></div>
|
|
23
|
+
<div class="key-pad-button button-minus" [textContent]="'-'" (click)="handleMinusClick($event)"></div>
|
|
24
|
+
<div class="key-pad-button button-1" [textContent]="'1'" (click)="handleButtonClick('1')"></div>
|
|
25
|
+
<div class="key-pad-button button-2" [textContent]="'2'" (click)="handleButtonClick('2')"></div>
|
|
26
|
+
<div class="key-pad-button button-3" [textContent]="'3'" (click)="handleButtonClick('3')"></div>
|
|
27
|
+
<div class="key-pad-button button-enter" (click)="handleEnterClick($event)">
|
|
28
|
+
<span [textContent]="'enter'"></span>
|
|
29
|
+
</div>
|
|
30
|
+
<div class="key-pad-button button-0" [textContent]="'0'" (click)="handleButtonClick('0')"></div>
|
|
31
|
+
<div class="key-pad-button button-dot" [textContent]="'.'" (click)="handleButtonClick('.')"></div>
|
|
32
|
+
</div>
|
|
33
|
+
</div>
|
|
34
|
+
`,
|
|
35
|
+
encapsulation: ViewEncapsulation.None
|
|
36
|
+
})
|
|
37
|
+
export class KeyPadComponent {
|
|
38
|
+
public icons: typeof Icon = Icon;
|
|
39
|
+
|
|
40
|
+
@Input()
|
|
41
|
+
public set model(value: number) {
|
|
42
|
+
this._model = value;
|
|
43
|
+
this._internalModel = this._model + "";
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
public get model(): number {
|
|
47
|
+
return this._model;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
@Input()
|
|
51
|
+
public showValue: boolean = true;
|
|
52
|
+
|
|
53
|
+
@Input()
|
|
54
|
+
public emitModelChangeOnEnter: boolean = true;
|
|
55
|
+
|
|
56
|
+
@Output()
|
|
57
|
+
public modelChange: EventEmitter<number> = new EventEmitter<number>();
|
|
58
|
+
|
|
59
|
+
@Output()
|
|
60
|
+
public internalModelChange: EventEmitter<string> = new EventEmitter<string>();
|
|
61
|
+
|
|
62
|
+
@Output()
|
|
63
|
+
public enterClick: EventEmitter<void> = new EventEmitter<void>();
|
|
64
|
+
|
|
65
|
+
@HostBinding('class.co-key-pad')
|
|
66
|
+
public showClass() {
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
@HostListener('window:keydown', ['$event'])
|
|
71
|
+
public handleKeyDown(event: KeyboardEvent) {
|
|
72
|
+
this._keyDown(event);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
private readonly _validKeyMap: Map<KeyboardCode | string, string> = new Map<KeyboardCode, string>([
|
|
76
|
+
[KeyboardCode.Digit0, "0"],
|
|
77
|
+
[KeyboardCode.Digit1, "1"],
|
|
78
|
+
[KeyboardCode.Digit2, "2"],
|
|
79
|
+
[KeyboardCode.Digit3, "3"],
|
|
80
|
+
[KeyboardCode.Digit4, "4"],
|
|
81
|
+
[KeyboardCode.Digit5, "5"],
|
|
82
|
+
[KeyboardCode.Digit6, "6"],
|
|
83
|
+
[KeyboardCode.Digit7, "7"],
|
|
84
|
+
[KeyboardCode.Digit8, "8"],
|
|
85
|
+
[KeyboardCode.Digit9, "9"],
|
|
86
|
+
[KeyboardCode.Numpad0, "0"],
|
|
87
|
+
[KeyboardCode.Numpad1, "1"],
|
|
88
|
+
[KeyboardCode.Numpad2, "2"],
|
|
89
|
+
[KeyboardCode.Numpad3, "3"],
|
|
90
|
+
[KeyboardCode.Numpad4, "4"],
|
|
91
|
+
[KeyboardCode.Numpad5, "5"],
|
|
92
|
+
[KeyboardCode.Numpad6, "6"],
|
|
93
|
+
[KeyboardCode.Numpad7, "7"],
|
|
94
|
+
[KeyboardCode.Numpad8, "8"],
|
|
95
|
+
[KeyboardCode.Numpad9, "9"],
|
|
96
|
+
[KeyboardCode.NumpadDecimal, "."],
|
|
97
|
+
[KeyboardCode.Period, "."]
|
|
98
|
+
])
|
|
99
|
+
|
|
100
|
+
constructor(public iconCacheService: IconCacheService) {
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
public set internalModel(value: string) {
|
|
104
|
+
this._internalModel = value;
|
|
105
|
+
this.isNegative = parseFloat(this._internalModel) < 0;
|
|
106
|
+
this.internalModelChange.emit(this._internalModel);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
public get internalModel(): string {
|
|
110
|
+
return this._internalModel;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
public isNegative: boolean = false;
|
|
114
|
+
|
|
115
|
+
private _model: number = 0;
|
|
116
|
+
private _internalModel: string = "0";
|
|
117
|
+
private _maxCharacters: number = 11;
|
|
118
|
+
|
|
119
|
+
public handleMinusClick(event: MouseEvent | KeyboardEvent): void {
|
|
120
|
+
const model: number = parseFloat(this.internalModel);
|
|
121
|
+
if (model !== 0) {
|
|
122
|
+
if (model < 0) {
|
|
123
|
+
this.internalModel = Math.abs(model) + "";
|
|
124
|
+
} else {
|
|
125
|
+
this.internalModel = -model + "";
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
this._emitModelChange();
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
public handleClearClick(event: MouseEvent | KeyboardEvent): void {
|
|
132
|
+
this.internalModel = "0";
|
|
133
|
+
this._emitModelChange();
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
public handleBsClick(event: MouseEvent | KeyboardEvent): void {
|
|
137
|
+
let wish: string = this.internalModel;
|
|
138
|
+
wish = wish.slice(0, wish.length - 1) || "0";
|
|
139
|
+
if (!isNaN(parseFloat(wish))) {
|
|
140
|
+
this.internalModel = parseFloat(wish) + "";
|
|
141
|
+
}
|
|
142
|
+
this._emitModelChange();
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
public handleButtonClick(chr: string): void {
|
|
146
|
+
this._updateModel(chr);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
public handleEnterClick(event: MouseEvent | KeyboardEvent): void {
|
|
150
|
+
this._emitModelChange(true);
|
|
151
|
+
this.enterClick.emit();
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
private _updateModel(value: string): void {
|
|
155
|
+
if (value === undefined || value === null ||
|
|
156
|
+
(value === '.' && this.internalModel.indexOf('.') > -1) ||
|
|
157
|
+
this.internalModel.length >= this._maxCharacters) {
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
this.internalModel = this.internalModel !== "0" ? this.internalModel + value : value;
|
|
161
|
+
this._emitModelChange();
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
private _keyDown(event: KeyboardEvent): void {
|
|
165
|
+
if (this._isEnter(event)) {
|
|
166
|
+
this.handleEnterClick(event);
|
|
167
|
+
} else if (this._isMinus(event)) {
|
|
168
|
+
this.handleMinusClick(event);
|
|
169
|
+
} else if (this._isEscape(event)) {
|
|
170
|
+
this.handleClearClick(event);
|
|
171
|
+
} else if (this._isBackspace(event)) {
|
|
172
|
+
this.handleBsClick(event);
|
|
173
|
+
} else {
|
|
174
|
+
this._updateModel(this._validKeyMap.get(event.code));
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
private _isEnter(event: KeyboardEvent): boolean {
|
|
179
|
+
return event.code === KeyboardCode.Enter || event.code === KeyboardCode.NumpadEnter;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
private _isMinus(event: KeyboardEvent): boolean {
|
|
183
|
+
return event.code === KeyboardCode.Minus || event.code === KeyboardCode.NumpadSubtract;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
private _isEscape(event: KeyboardEvent): boolean {
|
|
187
|
+
return event.code === KeyboardCode.Escape;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
private _isBackspace(event: KeyboardEvent): boolean {
|
|
191
|
+
return event.code === KeyboardCode.Backspace;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
private _emitModelChange(enter: boolean = false): void {
|
|
195
|
+
if ((enter && this.emitModelChangeOnEnter) || (!enter && !this.emitModelChangeOnEnter)) {
|
|
196
|
+
const model: number = parseFloat(this.internalModel);
|
|
197
|
+
if (!isNaN(model)) {
|
|
198
|
+
if (enter && this.emitModelChangeOnEnter) {
|
|
199
|
+
this.model = model;
|
|
200
|
+
}
|
|
201
|
+
this.modelChange.emit(model);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import {NgModule} from '@angular/core';
|
|
2
|
+
import {CommonModule} from '@angular/common';
|
|
3
|
+
import {KeyPadComponent} from './key-pad.component';
|
|
4
|
+
import {IconModule} from '@colijnit/corecomponents_v12';
|
|
5
|
+
|
|
6
|
+
@NgModule({
|
|
7
|
+
imports: [
|
|
8
|
+
CommonModule,
|
|
9
|
+
IconModule
|
|
10
|
+
],
|
|
11
|
+
declarations: [
|
|
12
|
+
KeyPadComponent
|
|
13
|
+
],
|
|
14
|
+
exports: [
|
|
15
|
+
KeyPadComponent
|
|
16
|
+
]
|
|
17
|
+
})
|
|
18
|
+
export class KeyPadModule {
|
|
19
|
+
}
|
|
File without changes
|
package/{lib → projects/sharedcomponents/src/lib}/components/key-pad/style/_material-definition.scss
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|