@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.
Files changed (292) hide show
  1. package/.browserslistrc +16 -0
  2. package/.editorconfig +16 -0
  3. package/.vscode/extensions.json +4 -0
  4. package/.vscode/launch.json +20 -0
  5. package/.vscode/tasks.json +42 -0
  6. package/README.md +11 -8
  7. package/Sharedcomponents.iml +11 -0
  8. package/angular.json +133 -0
  9. package/karma.conf.js +44 -0
  10. package/move-assets.js +14 -0
  11. package/package.json +74 -26
  12. package/projects/sharedcomponents/.browserslistrc +16 -0
  13. package/projects/sharedcomponents/README.md +24 -0
  14. package/projects/sharedcomponents/karma.conf.js +44 -0
  15. package/projects/sharedcomponents/ng-package.json +17 -0
  16. package/projects/sharedcomponents/package.json +18 -0
  17. package/projects/sharedcomponents/src/lib/assets/dictionary/text.properties.ts +8 -0
  18. package/projects/sharedcomponents/src/lib/assets/icons/angle_left_solid.svg +1 -0
  19. package/projects/sharedcomponents/src/lib/assets/icons/angle_right_solid.svg +1 -0
  20. package/projects/sharedcomponents/src/lib/assets/icons/arrow_fat_right.svg +1 -0
  21. package/projects/sharedcomponents/src/lib/assets/icons/arrow_point_left.svg +8 -0
  22. package/projects/sharedcomponents/src/lib/assets/icons/arrow_point_right.svg +4 -0
  23. package/projects/sharedcomponents/src/lib/assets/icons/bring_forward_regular.svg +1 -0
  24. package/projects/sharedcomponents/src/lib/assets/icons/check_round.svg +1 -0
  25. package/projects/sharedcomponents/src/lib/assets/icons/delete_left_regular.svg +1 -0
  26. package/projects/sharedcomponents/src/lib/assets/icons/delivery_truck.svg +12 -0
  27. package/projects/sharedcomponents/src/lib/assets/icons/email.svg +5 -0
  28. package/projects/sharedcomponents/src/lib/assets/icons/pdf.svg +15 -0
  29. package/projects/sharedcomponents/src/lib/assets/icons/print.svg +10 -0
  30. package/projects/sharedcomponents/src/lib/assets/icons/signature_field.svg +9 -0
  31. package/projects/sharedcomponents/src/lib/assets/icons/xml.svg +9 -0
  32. package/projects/sharedcomponents/src/lib/components/circular-gauge/co-circular-gauge.component.ts +139 -0
  33. package/projects/sharedcomponents/src/lib/components/circular-gauge/co-circular-gauge.module.ts +19 -0
  34. package/{lib → projects/sharedcomponents/src/lib}/components/circular-gauge/style/_layout.scss +0 -0
  35. package/{lib → projects/sharedcomponents/src/lib}/components/circular-gauge/style/_material-definition.scss +0 -0
  36. package/{lib → projects/sharedcomponents/src/lib}/components/circular-gauge/style/_theme.scss +0 -0
  37. package/{lib → projects/sharedcomponents/src/lib}/components/circular-gauge/style/material.scss +0 -0
  38. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-base-view.component.ts +68 -0
  39. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-day-view.component.ts +31 -0
  40. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-event.component.ts +67 -0
  41. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-events.component.ts +48 -0
  42. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-half-hour-cell.component.ts +81 -0
  43. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-header.component.ts +265 -0
  44. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-hour-cell.component.ts +38 -0
  45. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-hour-view-labels.component.ts +50 -0
  46. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-hour-view.component.ts +46 -0
  47. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-month-view.component.ts +65 -0
  48. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-view.component.ts +38 -0
  49. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-week-select-view.component.ts +63 -0
  50. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-week-view.component.ts +46 -0
  51. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/style/_layout.scss +443 -0
  52. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/style/_material-definition.scss +11 -0
  53. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/style/_theme.scss +7 -0
  54. package/{lib/components/layout-switcher → projects/sharedcomponents/src/lib/components/date-planning/component/agenda}/style/material.scss +0 -0
  55. package/projects/sharedcomponents/src/lib/components/date-planning/component/calendar/calendar-all-months.component.ts +37 -0
  56. package/projects/sharedcomponents/src/lib/components/date-planning/component/calendar/calendar-all-years.component.ts +52 -0
  57. package/projects/sharedcomponents/src/lib/components/date-planning/component/calendar/calendar-header.component.ts +124 -0
  58. package/projects/sharedcomponents/src/lib/components/date-planning/component/calendar/calendar-view.component.ts +201 -0
  59. package/projects/sharedcomponents/src/lib/components/date-planning/component/calendar/calendar.component.ts +35 -0
  60. package/projects/sharedcomponents/src/lib/components/date-planning/component/calendar/style/_layout.scss +167 -0
  61. package/projects/sharedcomponents/src/lib/components/date-planning/component/calendar/style/_material-definition.scss +7 -0
  62. package/projects/sharedcomponents/src/lib/components/date-planning/component/calendar/style/_theme.scss +7 -0
  63. package/{lib/components/linear-gauge → projects/sharedcomponents/src/lib/components/date-planning/component/calendar}/style/material.scss +0 -0
  64. package/projects/sharedcomponents/src/lib/components/date-planning/date-planning.component.ts +133 -0
  65. package/projects/sharedcomponents/src/lib/components/date-planning/date-planning.module.ts +56 -0
  66. package/projects/sharedcomponents/src/lib/components/date-planning/style/_layout.scss +47 -0
  67. package/projects/sharedcomponents/src/lib/components/date-planning/style/_material-definition.scss +0 -0
  68. package/projects/sharedcomponents/src/lib/components/date-planning/style/_theme.scss +7 -0
  69. package/projects/sharedcomponents/src/lib/components/date-planning/style/material.scss +5 -0
  70. package/projects/sharedcomponents/src/lib/components/docsign/component/signature/signature.component.ts +82 -0
  71. package/{lib → projects/sharedcomponents/src/lib}/components/docsign/component/signature/style/_layout.scss +0 -0
  72. package/{lib → projects/sharedcomponents/src/lib}/components/docsign/component/signature/style/_material-definition.scss +0 -0
  73. package/{lib → projects/sharedcomponents/src/lib}/components/docsign/component/signature/style/_theme.scss +0 -0
  74. package/{lib → projects/sharedcomponents/src/lib}/components/docsign/component/signature/style/material.scss +0 -0
  75. package/projects/sharedcomponents/src/lib/components/docsign/component/signatures/signatures.component.ts +50 -0
  76. package/{lib → projects/sharedcomponents/src/lib}/components/docsign/component/signatures/style/_layout.scss +0 -0
  77. package/{lib → projects/sharedcomponents/src/lib}/components/docsign/component/signatures/style/_material-definition.scss +0 -0
  78. package/{lib → projects/sharedcomponents/src/lib}/components/docsign/component/signatures/style/_theme.scss +0 -0
  79. package/{lib → projects/sharedcomponents/src/lib}/components/docsign/component/signatures/style/material.scss +0 -0
  80. package/projects/sharedcomponents/src/lib/components/docsign/docsign.component.ts +252 -0
  81. package/projects/sharedcomponents/src/lib/components/docsign/docsign.module.ts +22 -0
  82. package/{lib → projects/sharedcomponents/src/lib}/components/docsign/style/_layout.scss +0 -0
  83. package/{lib → projects/sharedcomponents/src/lib}/components/docsign/style/_material-definition.scss +0 -0
  84. package/{lib → projects/sharedcomponents/src/lib}/components/docsign/style/_theme.scss +0 -0
  85. package/{lib → projects/sharedcomponents/src/lib}/components/docsign/style/material.scss +0 -0
  86. package/projects/sharedcomponents/src/lib/components/key-pad/key-pad.component.ts +205 -0
  87. package/projects/sharedcomponents/src/lib/components/key-pad/key-pad.module.ts +19 -0
  88. package/{lib → projects/sharedcomponents/src/lib}/components/key-pad/style/_layout.scss +0 -0
  89. package/{lib → projects/sharedcomponents/src/lib}/components/key-pad/style/_material-definition.scss +0 -0
  90. package/{lib → projects/sharedcomponents/src/lib}/components/key-pad/style/_theme.scss +0 -0
  91. package/{lib → projects/sharedcomponents/src/lib}/components/key-pad/style/material.scss +0 -0
  92. package/projects/sharedcomponents/src/lib/components/layout-switcher/layout-switcher.component.ts +98 -0
  93. package/projects/sharedcomponents/src/lib/components/layout-switcher/layout-switcher.module.ts +21 -0
  94. package/{lib → projects/sharedcomponents/src/lib}/components/layout-switcher/style/_layout.scss +0 -0
  95. package/{lib → projects/sharedcomponents/src/lib}/components/layout-switcher/style/_material-definition.scss +0 -0
  96. package/{lib → projects/sharedcomponents/src/lib}/components/layout-switcher/style/_theme.scss +0 -0
  97. package/projects/sharedcomponents/src/lib/components/layout-switcher/style/material.scss +5 -0
  98. package/projects/sharedcomponents/src/lib/components/linear-gauge/co-linear-gauge.component.ts +56 -0
  99. package/projects/sharedcomponents/src/lib/components/linear-gauge/co-linear-gauge.module.ts +17 -0
  100. package/{lib → projects/sharedcomponents/src/lib}/components/linear-gauge/style/_layout.scss +0 -0
  101. package/{lib → projects/sharedcomponents/src/lib}/components/linear-gauge/style/_material-definition.scss +0 -0
  102. package/{lib → projects/sharedcomponents/src/lib}/components/linear-gauge/style/_theme.scss +0 -0
  103. package/projects/sharedcomponents/src/lib/components/linear-gauge/style/material.scss +5 -0
  104. package/projects/sharedcomponents/src/lib/components/send-method-dialog/enums/send-option.ts +6 -0
  105. package/projects/sharedcomponents/src/lib/components/send-method-dialog/send-method-dialog.component.ts +342 -0
  106. package/projects/sharedcomponents/src/lib/components/send-method-dialog/send-method-dialog.module.ts +33 -0
  107. package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/style/_layout.scss +0 -0
  108. package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/style/_material-definition.scss +0 -0
  109. package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/style/_theme.scss +0 -0
  110. package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/style/material.scss +0 -0
  111. package/projects/sharedcomponents/src/lib/components/statusbar/statusbar.component.ts +97 -0
  112. package/projects/sharedcomponents/src/lib/components/statusbar/statusbar.module.ts +21 -0
  113. package/{lib → projects/sharedcomponents/src/lib}/components/statusbar/style/_layout.scss +0 -0
  114. package/{lib → projects/sharedcomponents/src/lib}/components/statusbar/style/_material-definition.scss +0 -0
  115. package/{lib → projects/sharedcomponents/src/lib}/components/statusbar/style/_theme.scss +0 -0
  116. package/{lib → projects/sharedcomponents/src/lib}/components/statusbar/style/material.scss +0 -0
  117. package/projects/sharedcomponents/src/lib/components/stock/stock-in-order/stock-in-order.component.ts +0 -0
  118. package/projects/sharedcomponents/src/lib/components/stock/stock-information/stock-information.component.ts +64 -0
  119. package/projects/sharedcomponents/src/lib/components/stock/stock-information-grid/stock-information-grid.component.ts +384 -0
  120. package/projects/sharedcomponents/src/lib/components/stock/stock-location/stock-location.component.ts +84 -0
  121. 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
  122. package/projects/sharedcomponents/src/lib/components/stock/stock-transfer/stock-change-amount.component.ts +73 -0
  123. package/projects/sharedcomponents/src/lib/components/stock/stock-transfer/stock-transfer.component.ts +153 -0
  124. package/projects/sharedcomponents/src/lib/components/stock/stock.component.ts +165 -0
  125. package/projects/sharedcomponents/src/lib/components/stock/stock.module.ts +51 -0
  126. package/{lib → projects/sharedcomponents/src/lib}/components/stock/style/_layout.scss +0 -0
  127. package/{lib → projects/sharedcomponents/src/lib}/components/stock/style/_material-definition.scss +0 -0
  128. package/{lib → projects/sharedcomponents/src/lib}/components/stock/style/_theme.scss +0 -0
  129. package/{lib → projects/sharedcomponents/src/lib}/components/stock/style/material.scss +0 -0
  130. package/projects/sharedcomponents/src/lib/enum/calendar-view.enum.ts +6 -0
  131. package/{lib/enum/icon.enum.d.ts → projects/sharedcomponents/src/lib/enum/icon.enum.ts} +5 -2
  132. package/projects/sharedcomponents/src/lib/enum/keyboard-code.enum.ts +30 -0
  133. package/projects/sharedcomponents/src/lib/enum/language-code.enum.ts +6 -0
  134. package/projects/sharedcomponents/src/lib/enum/month.enum.ts +15 -0
  135. package/projects/sharedcomponents/src/lib/enum/time-period.enum.ts +9 -0
  136. package/projects/sharedcomponents/src/lib/factory/business-object-factory.ts +120 -0
  137. package/projects/sharedcomponents/src/lib/factory/decorators/boolean.decorator.ts +113 -0
  138. package/projects/sharedcomponents/src/lib/factory/decorators/complex-array.decorator.ts +61 -0
  139. package/projects/sharedcomponents/src/lib/factory/decorators/complex-field.decorator.ts +63 -0
  140. package/projects/sharedcomponents/src/lib/factory/decorators/date-field.decorator.ts +41 -0
  141. package/projects/sharedcomponents/src/lib/factory/decorators/string-number.decorator.ts +48 -0
  142. package/projects/sharedcomponents/src/lib/model/agenda-event-per-day.model.ts +6 -0
  143. package/projects/sharedcomponents/src/lib/model/agenda-event.model.ts +17 -0
  144. package/projects/sharedcomponents/src/lib/model/agenda-null-objects.ts +11 -0
  145. package/projects/sharedcomponents/src/lib/model/business-object.ts +85 -0
  146. package/projects/sharedcomponents/src/lib/model/constant/all-months.ts +17 -0
  147. package/projects/sharedcomponents/src/lib/model/date-range.ts +10 -0
  148. package/projects/sharedcomponents/src/lib/model/day.model.ts +9 -0
  149. package/projects/sharedcomponents/src/lib/model/icon-svg.ts +18 -0
  150. package/projects/sharedcomponents/src/lib/model/month.model.ts +11 -0
  151. package/projects/sharedcomponents/src/lib/model/time-window.bo.ts +21 -0
  152. package/projects/sharedcomponents/src/lib/model/week.model.ts +5 -0
  153. package/projects/sharedcomponents/src/lib/model/weekday.model.ts +17 -0
  154. package/projects/sharedcomponents/src/lib/pipe/array-number.pipe.ts +14 -0
  155. package/projects/sharedcomponents/src/lib/pipe/master-pipes.ts +7 -0
  156. package/projects/sharedcomponents/src/lib/pipe/ucfirst.pipe.ts +14 -0
  157. package/projects/sharedcomponents/src/lib/service/dictionary.service.ts +86 -0
  158. package/projects/sharedcomponents/src/lib/service/icon-cache.service.ts +51 -0
  159. package/projects/sharedcomponents/src/lib/service/options.service.ts +66 -0
  160. package/projects/sharedcomponents/src/lib/service/shared-connector.service.ts +258 -0
  161. package/projects/sharedcomponents/src/lib/service/shared-initializer.service.ts +29 -0
  162. package/projects/sharedcomponents/src/lib/service/shared.service.ts +21 -0
  163. package/projects/sharedcomponents/src/lib/service/stock.service.ts +95 -0
  164. package/{lib → projects/sharedcomponents/src/lib}/style/_mixin.scss +0 -0
  165. package/{lib → projects/sharedcomponents/src/lib}/style/_variables.scss +0 -0
  166. package/{lib → projects/sharedcomponents/src/lib}/style/sharedcomponents-globals.scss +0 -0
  167. package/projects/sharedcomponents/src/lib/utils/array-utils.ts +202 -0
  168. package/projects/sharedcomponents/src/lib/utils/calendar.utils.ts +75 -0
  169. package/projects/sharedcomponents/src/lib/utils/date-utils.ts +302 -0
  170. package/projects/sharedcomponents/src/lib/utils/function/not-nill.function.ts +4 -0
  171. package/projects/sharedcomponents/src/lib/utils/is-nill.function.ts +4 -0
  172. package/projects/sharedcomponents/src/lib/utils/string-utils.ts +67 -0
  173. package/{public-api.d.ts → projects/sharedcomponents/src/public-api.ts} +5 -0
  174. package/projects/sharedcomponents/src/test.ts +27 -0
  175. package/projects/sharedcomponents/tsconfig.lib.json +18 -0
  176. package/projects/sharedcomponents/tsconfig.lib.prod.json +10 -0
  177. package/projects/sharedcomponents/tsconfig.spec.json +17 -0
  178. package/script/merge-icons.js +39 -0
  179. package/src/app/app.component.scss +9 -0
  180. package/src/app/app.component.spec.ts +31 -0
  181. package/src/app/app.component.ts +156 -0
  182. package/src/app/app.module.ts +60 -0
  183. package/src/assets/.gitkeep +0 -0
  184. package/src/environments/environment.prod.ts +3 -0
  185. package/src/environments/environment.ts +16 -0
  186. package/src/favicon.ico +0 -0
  187. package/src/index.html +13 -0
  188. package/src/main.ts +12 -0
  189. package/src/polyfills.ts +53 -0
  190. package/src/styles.scss +40 -0
  191. package/src/test.ts +26 -0
  192. package/tsconfig.app.json +15 -0
  193. package/tsconfig.json +65 -0
  194. package/tsconfig.spec.json +18 -0
  195. package/bundles/colijnit-sharedcomponents.umd.js +0 -3701
  196. package/bundles/colijnit-sharedcomponents.umd.js.map +0 -1
  197. package/colijnit-sharedcomponents.d.ts +0 -16
  198. package/colijnit-sharedcomponents.metadata.json +0 -1
  199. package/esm2015/colijnit-sharedcomponents.js +0 -17
  200. package/esm2015/lib/assets/dictionary/text.properties.js +0 -11
  201. package/esm2015/lib/components/circular-gauge/co-circular-gauge.component.js +0 -125
  202. package/esm2015/lib/components/circular-gauge/co-circular-gauge.module.js +0 -21
  203. package/esm2015/lib/components/docsign/component/signature/signature.component.js +0 -75
  204. package/esm2015/lib/components/docsign/component/signatures/signatures.component.js +0 -44
  205. package/esm2015/lib/components/docsign/docsign.component.js +0 -225
  206. package/esm2015/lib/components/docsign/docsign.module.js +0 -23
  207. package/esm2015/lib/components/key-pad/key-pad.component.js +0 -191
  208. package/esm2015/lib/components/key-pad/key-pad.module.js +0 -21
  209. package/esm2015/lib/components/layout-switcher/layout-switcher.component.js +0 -74
  210. package/esm2015/lib/components/layout-switcher/layout-switcher.module.js +0 -21
  211. package/esm2015/lib/components/linear-gauge/co-linear-gauge.component.js +0 -55
  212. package/esm2015/lib/components/linear-gauge/co-linear-gauge.module.js +0 -19
  213. package/esm2015/lib/components/send-method-dialog/enums/send-option.js +0 -8
  214. package/esm2015/lib/components/send-method-dialog/send-method-dialog.component.js +0 -309
  215. package/esm2015/lib/components/send-method-dialog/send-method-dialog.module.js +0 -31
  216. package/esm2015/lib/components/statusbar/statusbar.component.js +0 -81
  217. package/esm2015/lib/components/statusbar/statusbar.module.js +0 -23
  218. package/esm2015/lib/components/stock/stock-information/stock-information.component.js +0 -54
  219. package/esm2015/lib/components/stock/stock-information-grid/stock-information-grid.component.js +0 -350
  220. package/esm2015/lib/components/stock/stock-location/stock-location.component.js +0 -62
  221. package/esm2015/lib/components/stock/stock-transfer/co-drop-down-list-fields.interface.js +0 -2
  222. package/esm2015/lib/components/stock/stock-transfer/stock-change-amount.component.js +0 -68
  223. package/esm2015/lib/components/stock/stock-transfer/stock-transfer.component.js +0 -130
  224. package/esm2015/lib/components/stock/stock.component.js +0 -140
  225. package/esm2015/lib/components/stock/stock.module.js +0 -48
  226. package/esm2015/lib/enum/icon.enum.js +0 -17
  227. package/esm2015/lib/enum/keyboard-code.enum.js +0 -32
  228. package/esm2015/lib/enum/language-code.enum.js +0 -8
  229. package/esm2015/lib/factory/business-object-factory.js +0 -120
  230. package/esm2015/lib/factory/decorators/boolean.decorator.js +0 -102
  231. package/esm2015/lib/factory/decorators/complex-array.decorator.js +0 -55
  232. package/esm2015/lib/factory/decorators/complex-field.decorator.js +0 -57
  233. package/esm2015/lib/factory/decorators/date-field.decorator.js +0 -36
  234. package/esm2015/lib/factory/decorators/string-number.decorator.js +0 -43
  235. package/esm2015/lib/model/business-object.js +0 -81
  236. package/esm2015/lib/model/icon-svg.js +0 -16
  237. package/esm2015/lib/service/dictionary.service.js +0 -76
  238. package/esm2015/lib/service/icon-cache.service.js +0 -51
  239. package/esm2015/lib/service/options.service.js +0 -71
  240. package/esm2015/lib/service/shared-connector.service.js +0 -278
  241. package/esm2015/lib/service/shared.service.js +0 -30
  242. package/esm2015/lib/service/stock.service.js +0 -95
  243. package/esm2015/lib/utils/array-utils.js +0 -183
  244. package/esm2015/lib/utils/is-nill.function.js +0 -5
  245. package/esm2015/lib/utils/string-utils.js +0 -64
  246. package/esm2015/public-api.js +0 -21
  247. package/fesm2015/colijnit-sharedcomponents.js +0 -3511
  248. package/fesm2015/colijnit-sharedcomponents.js.map +0 -1
  249. package/lib/assets/dictionary/text.properties.d.ts +0 -3
  250. package/lib/components/circular-gauge/co-circular-gauge.component.d.ts +0 -20
  251. package/lib/components/circular-gauge/co-circular-gauge.module.d.ts +0 -2
  252. package/lib/components/docsign/component/signature/signature.component.d.ts +0 -16
  253. package/lib/components/docsign/component/signatures/signatures.component.d.ts +0 -12
  254. package/lib/components/docsign/docsign.component.d.ts +0 -92
  255. package/lib/components/docsign/docsign.module.d.ts +0 -2
  256. package/lib/components/key-pad/key-pad.component.d.ts +0 -36
  257. package/lib/components/key-pad/key-pad.module.d.ts +0 -2
  258. package/lib/components/layout-switcher/layout-switcher.component.d.ts +0 -16
  259. package/lib/components/layout-switcher/layout-switcher.module.d.ts +0 -2
  260. package/lib/components/linear-gauge/co-linear-gauge.component.d.ts +0 -16
  261. package/lib/components/linear-gauge/co-linear-gauge.module.d.ts +0 -2
  262. package/lib/components/send-method-dialog/enums/send-option.d.ts +0 -6
  263. package/lib/components/send-method-dialog/send-method-dialog.component.d.ts +0 -62
  264. package/lib/components/send-method-dialog/send-method-dialog.module.d.ts +0 -2
  265. package/lib/components/statusbar/statusbar.component.d.ts +0 -23
  266. package/lib/components/statusbar/statusbar.module.d.ts +0 -2
  267. package/lib/components/stock/stock-information/stock-information.component.d.ts +0 -10
  268. package/lib/components/stock/stock-information-grid/stock-information-grid.component.d.ts +0 -60
  269. package/lib/components/stock/stock-location/stock-location.component.d.ts +0 -15
  270. package/lib/components/stock/stock-transfer/stock-change-amount.component.d.ts +0 -18
  271. package/lib/components/stock/stock-transfer/stock-transfer.component.d.ts +0 -36
  272. package/lib/components/stock/stock.component.d.ts +0 -42
  273. package/lib/components/stock/stock.module.d.ts +0 -2
  274. package/lib/enum/keyboard-code.enum.d.ts +0 -30
  275. package/lib/enum/language-code.enum.d.ts +0 -6
  276. package/lib/factory/business-object-factory.d.ts +0 -23
  277. package/lib/factory/decorators/boolean.decorator.d.ts +0 -43
  278. package/lib/factory/decorators/complex-array.decorator.d.ts +0 -25
  279. package/lib/factory/decorators/complex-field.decorator.d.ts +0 -25
  280. package/lib/factory/decorators/date-field.decorator.d.ts +0 -17
  281. package/lib/factory/decorators/string-number.decorator.d.ts +0 -22
  282. package/lib/model/business-object.d.ts +0 -7
  283. package/lib/model/icon-svg.d.ts +0 -4
  284. package/lib/service/dictionary.service.d.ts +0 -21
  285. package/lib/service/icon-cache.service.d.ts +0 -18
  286. package/lib/service/options.service.d.ts +0 -13
  287. package/lib/service/shared-connector.service.d.ts +0 -43
  288. package/lib/service/shared.service.d.ts +0 -8
  289. package/lib/service/stock.service.d.ts +0 -38
  290. package/lib/utils/array-utils.d.ts +0 -57
  291. package/lib/utils/is-nill.function.d.ts +0 -1
  292. 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
+ }
@@ -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
+ }
@@ -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
+ }
@@ -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
+ }