@colijnit/sharedcomponents 1.0.64 → 1.0.65

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (481) hide show
  1. package/README.md +24 -24
  2. package/bundles/colijnit-sharedcomponents.umd.js +10078 -9926
  3. package/bundles/colijnit-sharedcomponents.umd.js.map +1 -1
  4. package/colijnit-sharedcomponents.d.ts +92 -91
  5. package/colijnit-sharedcomponents.metadata.json +1 -1
  6. package/esm2015/colijnit-sharedcomponents.js +93 -92
  7. package/esm2015/lib/assets/dictionary/text.properties.js +11 -11
  8. package/esm2015/lib/businessobject/build-images-and-documentation-result.js +2 -2
  9. package/esm2015/lib/businessobject/co-document-right.bo.js +3 -3
  10. package/esm2015/lib/businessobject/drag-drop-container-element.js +2 -2
  11. package/esm2015/lib/businessobject/drag-drop-container.js +7 -7
  12. package/esm2015/lib/components/activity-list/activity-list.component.js +130 -130
  13. package/esm2015/lib/components/activity-list/activity-list.module.js +24 -24
  14. package/esm2015/lib/components/app-file-dropzone/app-file-dropzone.component.js +47 -47
  15. package/esm2015/lib/components/app-file-dropzone/app-file-dropzone.module.js +20 -20
  16. package/esm2015/lib/components/date-planning/component/agenda/agenda-base-view.component.js +61 -61
  17. package/esm2015/lib/components/date-planning/component/agenda/agenda-day-view.component.js +36 -36
  18. package/esm2015/lib/components/date-planning/component/agenda/agenda-event.component.js +56 -56
  19. package/esm2015/lib/components/date-planning/component/agenda/agenda-events.component.js +47 -47
  20. package/esm2015/lib/components/date-planning/component/agenda/agenda-half-hour-cell.component.js +68 -68
  21. package/esm2015/lib/components/date-planning/component/agenda/agenda-header.component.js +243 -243
  22. package/esm2015/lib/components/date-planning/component/agenda/agenda-hour-cell.component.js +36 -36
  23. package/esm2015/lib/components/date-planning/component/agenda/agenda-hour-view-labels.component.js +50 -50
  24. package/esm2015/lib/components/date-planning/component/agenda/agenda-hour-view.component.js +46 -46
  25. package/esm2015/lib/components/date-planning/component/agenda/agenda-month-view.component.js +61 -61
  26. package/esm2015/lib/components/date-planning/component/agenda/agenda-select-event.component.js +39 -39
  27. package/esm2015/lib/components/date-planning/component/agenda/agenda-view.component.js +35 -35
  28. package/esm2015/lib/components/date-planning/component/agenda/agenda-week-select-view.component.js +64 -64
  29. package/esm2015/lib/components/date-planning/component/agenda/agenda-week-view.component.js +48 -48
  30. package/esm2015/lib/components/date-planning/component/agenda/view-select.component.js +42 -42
  31. package/esm2015/lib/components/date-planning/component/calendar/calendar-all-months.component.js +34 -34
  32. package/esm2015/lib/components/date-planning/component/calendar/calendar-all-years.component.js +48 -48
  33. package/esm2015/lib/components/date-planning/component/calendar/calendar-header.component.js +107 -107
  34. package/esm2015/lib/components/date-planning/component/calendar/calendar-view.component.js +178 -178
  35. package/esm2015/lib/components/date-planning/component/calendar/calendar.component.js +34 -34
  36. package/esm2015/lib/components/date-planning/date-planning.component.js +113 -113
  37. package/esm2015/lib/components/date-planning/date-planning.module.js +63 -63
  38. package/esm2015/lib/components/docsign/component/signature/signature.component.js +75 -75
  39. package/esm2015/lib/components/docsign/component/signatures/signatures.component.js +44 -44
  40. package/esm2015/lib/components/docsign/docsign.component.js +242 -242
  41. package/esm2015/lib/components/docsign/docsign.module.js +23 -23
  42. package/esm2015/lib/components/file-upload/file-upload.component.js +189 -189
  43. package/esm2015/lib/components/file-upload/file-upload.module.js +25 -25
  44. package/esm2015/lib/components/file-upload-popup/file-upload-popup.component.js +397 -397
  45. package/esm2015/lib/components/file-upload-popup/file-upload-popup.module.js +30 -30
  46. package/esm2015/lib/components/files-upload/components/base-file-upload.component.js +469 -469
  47. package/esm2015/lib/components/files-upload/components/drag-drop-container.component.js +115 -115
  48. package/esm2015/lib/components/files-upload/files-upload.component.js +131 -131
  49. package/esm2015/lib/components/files-upload/files-upload.module.js +47 -47
  50. package/esm2015/lib/components/image-display/image-display.component.js +36 -36
  51. package/esm2015/lib/components/image-display/image-display.module.js +23 -23
  52. package/esm2015/lib/components/key-pad/key-pad.component.js +200 -200
  53. package/esm2015/lib/components/key-pad/key-pad.module.js +22 -22
  54. package/esm2015/lib/components/layout-switcher/layout-switcher.component.js +74 -74
  55. package/esm2015/lib/components/layout-switcher/layout-switcher.module.js +21 -21
  56. package/esm2015/lib/components/linear-gauge/co-linear-gauge.component.js +59 -59
  57. package/esm2015/lib/components/linear-gauge/co-linear-gauge.module.js +19 -19
  58. package/esm2015/lib/components/multi-property-toggler/multiple-property-toggler.component.js +89 -89
  59. package/esm2015/lib/components/multi-property-toggler/multiple-property-toggler.module.js +21 -21
  60. package/esm2015/lib/components/send-method-dialog/components/layout-selection/layout-selection.component.js +79 -79
  61. package/esm2015/lib/components/send-method-dialog/components/layout-selection/layout-selection.module.js +21 -21
  62. package/esm2015/lib/components/send-method-dialog/components/printer-selection/printer-selection.component.js +85 -85
  63. package/esm2015/lib/components/send-method-dialog/components/printer-selection/printer-selection.module.js +21 -21
  64. package/esm2015/lib/components/send-method-dialog/components/send-method-email/send-method-email.component.js +64 -64
  65. package/esm2015/lib/components/send-method-dialog/components/send-method-email/send-method-email.module.js +26 -26
  66. package/esm2015/lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.component.js +40 -40
  67. package/esm2015/lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.module.js +23 -23
  68. package/esm2015/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.component.js +61 -61
  69. package/esm2015/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.module.js +28 -28
  70. package/esm2015/lib/components/send-method-dialog/components/signature-button/signature-button.component.js +38 -38
  71. package/esm2015/lib/components/send-method-dialog/components/signature-button/signature-button.module.js +21 -21
  72. package/esm2015/lib/components/send-method-dialog/model/email-address-viewmodel.js +7 -7
  73. package/esm2015/lib/components/send-method-dialog/send-method-dialog.component.js +258 -258
  74. package/esm2015/lib/components/send-method-dialog/send-method-dialog.module.js +35 -35
  75. package/esm2015/lib/components/send-method-dialog/send-method-params.interface.js +2 -2
  76. package/esm2015/lib/components/send-method-dialog/service/send-method.service.js +59 -59
  77. package/esm2015/lib/components/simple-tags/simple-tags.component.js +229 -229
  78. package/esm2015/lib/components/simple-tags/simple-tags.module.js +26 -26
  79. package/esm2015/lib/components/statusbar/statusbar-popup.component.js +97 -97
  80. package/esm2015/lib/components/statusbar/statusbar.component.js +81 -81
  81. package/esm2015/lib/components/statusbar/statusbar.module.js +27 -27
  82. package/esm2015/lib/components/stock/components/allocation-stock-history/allocation-stock-history.component.js +47 -47
  83. package/esm2015/lib/components/stock/components/order-commission-stock-history/order-commission-stock-history.component.js +47 -47
  84. package/esm2015/lib/components/stock/components/order-stock-history/order-stock-history.component.js +47 -47
  85. package/esm2015/lib/components/stock/components/order-stock-tab/order-stock-tab.component.js +47 -47
  86. package/esm2015/lib/components/stock/components/order-supply-stock-history/order-supply-stock-history.component.js +47 -47
  87. package/esm2015/lib/components/stock/components/order-tab/order-tab.component.js +67 -67
  88. package/esm2015/lib/components/stock/components/stock-history/stock-history.component.js +53 -53
  89. package/esm2015/lib/components/stock/components/stock-location/components/stock-location-popup/stock-location-popup.component.js +210 -0
  90. package/esm2015/lib/components/stock/components/stock-location/stock-location.component.js +248 -251
  91. package/esm2015/lib/components/stock/components/stock-prognose/stock-prognose.component.js +52 -52
  92. package/esm2015/lib/components/stock/components/stock-tab/stock-tab.component.js +39 -39
  93. package/esm2015/lib/components/stock/localization/translation.js +74 -72
  94. package/esm2015/lib/components/stock/stock-history-tabs/stock-history-tabs.component.js +33 -33
  95. package/esm2015/lib/components/stock/stock-information/stock-information.component.js +48 -48
  96. package/esm2015/lib/components/stock/stock-information-grid/stock-information-grid.component.js +457 -457
  97. package/esm2015/lib/components/stock/stock-tabs/stock-tabs.component.js +251 -243
  98. package/esm2015/lib/components/stock/stock-transfer/co-drop-down-list-fields.interface.js +2 -2
  99. package/esm2015/lib/components/stock/stock-transfer/stock-change-amount.component.js +72 -72
  100. package/esm2015/lib/components/stock/stock-transfer/stock-transfer.component.js +160 -160
  101. package/esm2015/lib/components/stock/stock.component.js +237 -237
  102. package/esm2015/lib/components/stock/stock.module.js +82 -80
  103. package/esm2015/lib/components/stock-statusbar/stock-statusbar.component.js +23 -23
  104. package/esm2015/lib/components/stock-statusbar/stock-statusbar.module.js +19 -19
  105. package/esm2015/lib/components/tab-bar/tab-bar.component.js +90 -90
  106. package/esm2015/lib/components/tab-bar/tab-bar.module.js +21 -21
  107. package/esm2015/lib/components/tab-bar/tab.interface.js +2 -2
  108. package/esm2015/lib/components/tile-renderer/tile-render.component.js +80 -80
  109. package/esm2015/lib/components/tile-renderer/tile-render.module.js +26 -26
  110. package/esm2015/lib/decorator/input-boolean.decorator.js +34 -34
  111. package/esm2015/lib/enum/calendar-view.enum.js +9 -9
  112. package/esm2015/lib/enum/document-email-report.enum.js +18 -18
  113. package/esm2015/lib/enum/domain-multiple-name.enum.js +13 -13
  114. package/esm2015/lib/enum/file-type.js +14 -14
  115. package/esm2015/lib/enum/files-upload-config-objects.js +3 -3
  116. package/esm2015/lib/enum/gauge-color.enum.js +10 -10
  117. package/esm2015/lib/enum/icon.enum.js +49 -48
  118. package/esm2015/lib/enum/internal-param.enum.js +38 -38
  119. package/esm2015/lib/enum/keyboard-code.enum.js +32 -32
  120. package/esm2015/lib/enum/language-code.enum.js +8 -8
  121. package/esm2015/lib/enum/month.enum.js +17 -17
  122. package/esm2015/lib/enum/read-write-access-config-names.enum.js +2 -2
  123. package/esm2015/lib/enum/table-name.enum.js +86 -86
  124. package/esm2015/lib/enum/tag-category.enum.js +22 -22
  125. package/esm2015/lib/enum/tags-component-config-names.js +2 -2
  126. package/esm2015/lib/enum/thumb-three-way-state.js +19 -19
  127. package/esm2015/lib/enum/tile-size-type.js +7 -7
  128. package/esm2015/lib/enum/time-period.enum.js +11 -11
  129. package/esm2015/lib/event/co-drag-event.js +2 -2
  130. package/esm2015/lib/event/co-drop-event.js +2 -2
  131. package/esm2015/lib/interface/key-value-pair.js +2 -2
  132. package/esm2015/lib/interface/operation-callback-simple-function.js +4 -4
  133. package/esm2015/lib/localization/localization.module.js +19 -19
  134. package/esm2015/lib/localization/localize.pipe.js +26 -26
  135. package/esm2015/lib/localization/localize.service.js +30 -30
  136. package/esm2015/lib/localization/translation.js +3 -3
  137. package/esm2015/lib/model/agenda-event-per-day.model.js +6 -6
  138. package/esm2015/lib/model/agenda-event.model.js +8 -8
  139. package/esm2015/lib/model/agenda-null-objects.js +11 -11
  140. package/esm2015/lib/model/constant/all-months.js +17 -17
  141. package/esm2015/lib/model/date-range.js +5 -5
  142. package/esm2015/lib/model/day.model.js +7 -7
  143. package/esm2015/lib/model/icon-svg.js +48 -47
  144. package/esm2015/lib/model/month.model.js +11 -11
  145. package/esm2015/lib/model/send-method.js +8 -8
  146. package/esm2015/lib/model/settings.js +4 -4
  147. package/esm2015/lib/model/tag-tree-item.bo.js +16 -16
  148. package/esm2015/lib/model/time-window.bo.js +26 -26
  149. package/esm2015/lib/model/tree-object.js +15 -15
  150. package/esm2015/lib/model/week.model.js +6 -6
  151. package/esm2015/lib/model/weekday.model.js +10 -10
  152. package/esm2015/lib/pipe/array-number.pipe.js +15 -15
  153. package/esm2015/lib/pipe/file-type-image.pipe.js +51 -51
  154. package/esm2015/lib/pipe/master-pipes.js +9 -9
  155. package/esm2015/lib/pipe/ucfirst.pipe.js +16 -16
  156. package/esm2015/lib/service/dictionary.service.js +76 -76
  157. package/esm2015/lib/service/drag-drop.service.js +365 -365
  158. package/esm2015/lib/service/icon-cache.service.js +51 -51
  159. package/esm2015/lib/service/options.service.js +48 -48
  160. package/esm2015/lib/service/shared-connector.service.js +433 -433
  161. package/esm2015/lib/service/shared.service.js +60 -60
  162. package/esm2015/lib/service/stock.service.js +110 -110
  163. package/esm2015/lib/utils/array-utils.js +202 -202
  164. package/esm2015/lib/utils/calendar.utils.js +68 -68
  165. package/esm2015/lib/utils/check-precision-and-scale-result.js +2 -2
  166. package/esm2015/lib/utils/check-within-stepped-bounds-result.js +2 -2
  167. package/esm2015/lib/utils/co-document-shared-field-logic.js +50 -50
  168. package/esm2015/lib/utils/date-utils.js +264 -264
  169. package/esm2015/lib/utils/enum-utils.js +128 -128
  170. package/esm2015/lib/utils/function/not-nill.function.js +5 -5
  171. package/esm2015/lib/utils/is-nill.function.js +5 -5
  172. package/esm2015/lib/utils/map-utils.js +41 -41
  173. package/esm2015/lib/utils/number-utils.js +390 -390
  174. package/esm2015/lib/utils/object-utils.js +278 -278
  175. package/esm2015/lib/utils/ref-code-utils.js +49 -49
  176. package/esm2015/lib/utils/string-utils.js +93 -93
  177. package/esm2015/public-api.js +31 -31
  178. package/fesm2015/colijnit-sharedcomponents.js +10622 -10408
  179. package/fesm2015/colijnit-sharedcomponents.js.map +1 -1
  180. package/lib/assets/dictionary/text.properties.d.ts +3 -3
  181. package/lib/businessobject/build-images-and-documentation-result.d.ts +5 -5
  182. package/lib/businessobject/co-document-right.bo.d.ts +6 -6
  183. package/lib/businessobject/drag-drop-container-element.d.ts +6 -6
  184. package/lib/businessobject/drag-drop-container.d.ts +6 -6
  185. package/lib/components/access/read-write-access.scss +25 -25
  186. package/lib/components/access/style/_layout.scss +23 -23
  187. package/lib/components/access/style/_material-definition.scss +12 -12
  188. package/lib/components/access/style/_theme.scss +4 -4
  189. package/lib/components/access/style/material.scss +4 -4
  190. package/lib/components/activity-list/activity-list.component.d.ts +33 -33
  191. package/lib/components/activity-list/activity-list.module.d.ts +2 -2
  192. package/lib/components/activity-list/style/_layout.scss +68 -68
  193. package/lib/components/activity-list/style/_theme.scss +4 -4
  194. package/lib/components/activity-list/style/material.scss +4 -4
  195. package/lib/components/app-file-dropzone/app-file-dropzone.component.d.ts +14 -14
  196. package/lib/components/app-file-dropzone/app-file-dropzone.module.d.ts +2 -2
  197. package/lib/components/app-file-dropzone/style/_layout.scss +61 -61
  198. package/lib/components/app-file-dropzone/style/_theme.scss +4 -4
  199. package/lib/components/app-file-dropzone/style/material.scss +4 -4
  200. package/lib/components/date-planning/component/agenda/agenda-base-view.component.d.ts +21 -21
  201. package/lib/components/date-planning/component/agenda/agenda-day-view.component.d.ts +7 -7
  202. package/lib/components/date-planning/component/agenda/agenda-event.component.d.ts +18 -18
  203. package/lib/components/date-planning/component/agenda/agenda-events.component.d.ts +13 -13
  204. package/lib/components/date-planning/component/agenda/agenda-half-hour-cell.component.d.ts +18 -18
  205. package/lib/components/date-planning/component/agenda/agenda-header.component.d.ts +48 -48
  206. package/lib/components/date-planning/component/agenda/agenda-hour-cell.component.d.ts +9 -9
  207. package/lib/components/date-planning/component/agenda/agenda-hour-view-labels.component.d.ts +8 -8
  208. package/lib/components/date-planning/component/agenda/agenda-hour-view.component.d.ts +7 -7
  209. package/lib/components/date-planning/component/agenda/agenda-month-view.component.d.ts +10 -10
  210. package/lib/components/date-planning/component/agenda/agenda-select-event.component.d.ts +12 -12
  211. package/lib/components/date-planning/component/agenda/agenda-view.component.d.ts +12 -12
  212. package/lib/components/date-planning/component/agenda/agenda-week-select-view.component.d.ts +10 -10
  213. package/lib/components/date-planning/component/agenda/agenda-week-view.component.d.ts +9 -9
  214. package/lib/components/date-planning/component/agenda/style/_layout.scss +443 -443
  215. package/lib/components/date-planning/component/agenda/style/_material-definition.scss +12 -12
  216. package/lib/components/date-planning/component/agenda/style/_theme.scss +7 -7
  217. package/lib/components/date-planning/component/agenda/style/material.scss +5 -5
  218. package/lib/components/date-planning/component/agenda/view-select.component.d.ts +11 -11
  219. package/lib/components/date-planning/component/calendar/calendar-all-months.component.d.ts +9 -9
  220. package/lib/components/date-planning/component/calendar/calendar-all-years.component.d.ts +9 -9
  221. package/lib/components/date-planning/component/calendar/calendar-header.component.d.ts +23 -23
  222. package/lib/components/date-planning/component/calendar/calendar-view.component.d.ts +31 -31
  223. package/lib/components/date-planning/component/calendar/calendar.component.d.ts +10 -10
  224. package/lib/components/date-planning/component/calendar/style/_layout.scss +167 -167
  225. package/lib/components/date-planning/component/calendar/style/_material-definition.scss +7 -7
  226. package/lib/components/date-planning/component/calendar/style/_theme.scss +7 -7
  227. package/lib/components/date-planning/component/calendar/style/material.scss +5 -5
  228. package/lib/components/date-planning/date-planning.component.d.ts +28 -28
  229. package/lib/components/date-planning/date-planning.module.d.ts +2 -2
  230. package/lib/components/date-planning/style/_layout.scss +45 -45
  231. package/lib/components/date-planning/style/_theme.scss +5 -5
  232. package/lib/components/date-planning/style/material.scss +7 -7
  233. package/lib/components/docsign/component/signature/signature.component.d.ts +16 -16
  234. package/lib/components/docsign/component/signature/style/_layout.scss +40 -40
  235. package/lib/components/docsign/component/signature/style/_material-definition.scss +11 -11
  236. package/lib/components/docsign/component/signature/style/_theme.scss +13 -13
  237. package/lib/components/docsign/component/signature/style/material.scss +4 -4
  238. package/lib/components/docsign/component/signatures/signatures.component.d.ts +12 -12
  239. package/lib/components/docsign/component/signatures/style/_layout.scss +13 -13
  240. package/lib/components/docsign/component/signatures/style/_material-definition.scss +1 -1
  241. package/lib/components/docsign/component/signatures/style/_theme.scss +4 -4
  242. package/lib/components/docsign/component/signatures/style/material.scss +5 -5
  243. package/lib/components/docsign/docsign.component.d.ts +94 -94
  244. package/lib/components/docsign/docsign.module.d.ts +2 -2
  245. package/lib/components/docsign/style/_layout.scss +40 -40
  246. package/lib/components/docsign/style/_material-definition.scss +12 -12
  247. package/lib/components/docsign/style/_theme.scss +12 -12
  248. package/lib/components/docsign/style/material.scss +15 -15
  249. package/lib/components/file-upload/file-upload.component.d.ts +42 -42
  250. package/lib/components/file-upload/file-upload.module.d.ts +2 -2
  251. package/lib/components/file-upload/style/_layout.scss +59 -59
  252. package/lib/components/file-upload/style/_material-definition.scss +2 -2
  253. package/lib/components/file-upload/style/_theme.scss +4 -4
  254. package/lib/components/file-upload/style/material.scss +4 -4
  255. package/lib/components/file-upload-popup/file-upload-popup.component.d.ts +75 -75
  256. package/lib/components/file-upload-popup/file-upload-popup.module.d.ts +2 -2
  257. package/lib/components/file-upload-popup/style/_layout.scss +48 -48
  258. package/lib/components/file-upload-popup/style/_material-definition.scss +2 -2
  259. package/lib/components/file-upload-popup/style/_theme.scss +5 -5
  260. package/lib/components/file-upload-popup/style/material.scss +4 -4
  261. package/lib/components/files-upload/components/base-file-upload.component.d.ts +98 -98
  262. package/lib/components/files-upload/components/drag-drop-container.component.d.ts +34 -34
  263. package/lib/components/files-upload/files-upload.component.d.ts +32 -32
  264. package/lib/components/files-upload/files-upload.module.d.ts +2 -2
  265. package/lib/components/files-upload/style/_layout.scss +49 -49
  266. package/lib/components/files-upload/style/_theme.scss +5 -5
  267. package/lib/components/files-upload/style/material.scss +4 -4
  268. package/lib/components/image-display/image-display.component.d.ts +14 -14
  269. package/lib/components/image-display/image-display.module.d.ts +2 -2
  270. package/lib/components/image-display/style/_layout.scss +56 -56
  271. package/lib/components/image-display/style/_material-definition.scss +4 -4
  272. package/lib/components/image-display/style/_theme.scss +6 -6
  273. package/lib/components/image-display/style/material.scss +3 -3
  274. package/lib/components/key-pad/key-pad.component.d.ts +38 -38
  275. package/lib/components/key-pad/key-pad.module.d.ts +2 -2
  276. package/lib/components/key-pad/style/_layout.scss +160 -160
  277. package/lib/components/key-pad/style/_material-definition.scss +19 -19
  278. package/lib/components/key-pad/style/_theme.scss +35 -35
  279. package/lib/components/key-pad/style/material.scss +4 -4
  280. package/lib/components/layout-switcher/layout-switcher.component.d.ts +16 -16
  281. package/lib/components/layout-switcher/layout-switcher.module.d.ts +2 -2
  282. package/lib/components/layout-switcher/style/_layout.scss +94 -94
  283. package/lib/components/layout-switcher/style/_material-definition.scss +16 -16
  284. package/lib/components/layout-switcher/style/_theme.scss +4 -4
  285. package/lib/components/layout-switcher/style/material.scss +6 -6
  286. package/lib/components/linear-gauge/co-linear-gauge.component.d.ts +11 -11
  287. package/lib/components/linear-gauge/co-linear-gauge.module.d.ts +2 -2
  288. package/lib/components/linear-gauge/style/_layout.scss +20 -20
  289. package/lib/components/linear-gauge/style/_material-definition.scss +8 -8
  290. package/lib/components/linear-gauge/style/_theme.scss +4 -4
  291. package/lib/components/linear-gauge/style/material.scss +6 -6
  292. package/lib/components/login/style/_layout.scss +57 -57
  293. package/lib/components/login/style/_material-definition.scss +23 -23
  294. package/lib/components/login/style/_theme.scss +7 -7
  295. package/lib/components/login/style/material.scss +4 -4
  296. package/lib/components/multi-property-toggler/multiple-property-toggler.component.d.ts +27 -27
  297. package/lib/components/multi-property-toggler/multiple-property-toggler.module.d.ts +2 -2
  298. package/lib/components/multi-property-toggler/style/_layout.scss +24 -24
  299. package/lib/components/multi-property-toggler/style/_theme.scss +4 -4
  300. package/lib/components/multi-property-toggler/style/material.scss +4 -4
  301. package/lib/components/screen-config-generator/style/_layout.scss +95 -95
  302. package/lib/components/screen-config-generator/style/_theme.scss +4 -4
  303. package/lib/components/screen-config-generator/style/material.scss +4 -4
  304. package/lib/components/send-method-dialog/components/layout-selection/layout-selection.component.d.ts +19 -19
  305. package/lib/components/send-method-dialog/components/layout-selection/layout-selection.module.d.ts +2 -2
  306. package/lib/components/send-method-dialog/components/layout-selection/style/_layout.scss +44 -44
  307. package/lib/components/send-method-dialog/components/layout-selection/style/_material-definition.scss +19 -19
  308. package/lib/components/send-method-dialog/components/layout-selection/style/_theme.scss +17 -17
  309. package/lib/components/send-method-dialog/components/layout-selection/style/material.scss +4 -4
  310. package/lib/components/send-method-dialog/components/printer-selection/printer-selection.component.d.ts +19 -19
  311. package/lib/components/send-method-dialog/components/printer-selection/printer-selection.module.d.ts +2 -2
  312. package/lib/components/send-method-dialog/components/printer-selection/style/_layout.scss +69 -69
  313. package/lib/components/send-method-dialog/components/printer-selection/style/_material-definition.scss +37 -37
  314. package/lib/components/send-method-dialog/components/printer-selection/style/_theme.scss +23 -23
  315. package/lib/components/send-method-dialog/components/printer-selection/style/material.scss +4 -4
  316. package/lib/components/send-method-dialog/components/send-method-email/send-method-email.component.d.ts +14 -14
  317. package/lib/components/send-method-dialog/components/send-method-email/send-method-email.module.d.ts +2 -2
  318. package/lib/components/send-method-dialog/components/send-method-email/style/_layout.scss +29 -29
  319. package/lib/components/send-method-dialog/components/send-method-email/style/_material-definition.scss +8 -8
  320. package/lib/components/send-method-dialog/components/send-method-email/style/_theme.scss +5 -5
  321. package/lib/components/send-method-dialog/components/send-method-email/style/material.scss +4 -4
  322. package/lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.component.d.ts +8 -8
  323. package/lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.module.d.ts +2 -2
  324. package/lib/components/send-method-dialog/components/send-method-pdf/style/_layout.scss +25 -25
  325. package/lib/components/send-method-dialog/components/send-method-pdf/style/_material-definition.scss +5 -5
  326. package/lib/components/send-method-dialog/components/send-method-pdf/style/_theme.scss +5 -5
  327. package/lib/components/send-method-dialog/components/send-method-pdf/style/material.scss +4 -4
  328. package/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.component.d.ts +13 -13
  329. package/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.module.d.ts +2 -2
  330. package/lib/components/send-method-dialog/components/send-method-printer/style/_layout.scss +30 -30
  331. package/lib/components/send-method-dialog/components/send-method-printer/style/_material-definition.scss +5 -5
  332. package/lib/components/send-method-dialog/components/send-method-printer/style/_theme.scss +5 -5
  333. package/lib/components/send-method-dialog/components/send-method-printer/style/material.scss +4 -4
  334. package/lib/components/send-method-dialog/components/signature-button/signature-button.component.d.ts +12 -12
  335. package/lib/components/send-method-dialog/components/signature-button/signature-button.module.d.ts +2 -2
  336. package/lib/components/send-method-dialog/components/signature-button/style/_layout.scss +28 -28
  337. package/lib/components/send-method-dialog/components/signature-button/style/_material-definition.scss +8 -8
  338. package/lib/components/send-method-dialog/components/signature-button/style/_theme.scss +4 -4
  339. package/lib/components/send-method-dialog/components/signature-button/style/material.scss +4 -4
  340. package/lib/components/send-method-dialog/model/email-address-viewmodel.d.ts +5 -5
  341. package/lib/components/send-method-dialog/send-method-dialog.component.d.ts +71 -71
  342. package/lib/components/send-method-dialog/send-method-dialog.module.d.ts +2 -2
  343. package/lib/components/send-method-dialog/send-method-params.interface.d.ts +13 -13
  344. package/lib/components/send-method-dialog/service/send-method.service.d.ts +23 -23
  345. package/lib/components/send-method-dialog/style/_layout.scss +165 -165
  346. package/lib/components/send-method-dialog/style/_material-definition.scss +48 -48
  347. package/lib/components/send-method-dialog/style/_theme.scss +33 -33
  348. package/lib/components/send-method-dialog/style/material.scss +10 -10
  349. package/lib/components/simple-tags/simple-tags.component.d.ts +31 -31
  350. package/lib/components/simple-tags/simple-tags.module.d.ts +2 -2
  351. package/lib/components/simple-tags/style/_layout.scss +272 -272
  352. package/lib/components/simple-tags/style/_material-definition.scss +39 -39
  353. package/lib/components/simple-tags/style/_theme.scss +4 -4
  354. package/lib/components/simple-tags/style/material.scss +4 -4
  355. package/lib/components/statusbar/statusbar-popup.component.d.ts +21 -21
  356. package/lib/components/statusbar/statusbar.component.d.ts +26 -26
  357. package/lib/components/statusbar/statusbar.module.d.ts +2 -2
  358. package/lib/components/statusbar/style/_layout.scss +70 -70
  359. package/lib/components/statusbar/style/_material-definition.scss +23 -23
  360. package/lib/components/statusbar/style/_theme.scss +13 -13
  361. package/lib/components/statusbar/style/material.scss +5 -5
  362. package/lib/components/stock/components/allocation-stock-history/allocation-stock-history.component.d.ts +9 -9
  363. package/lib/components/stock/components/order-commission-stock-history/order-commission-stock-history.component.d.ts +9 -9
  364. package/lib/components/stock/components/order-stock-history/order-stock-history.component.d.ts +9 -9
  365. package/lib/components/stock/components/order-stock-tab/order-stock-tab.component.d.ts +11 -11
  366. package/lib/components/stock/components/order-supply-stock-history/order-supply-stock-history.component.d.ts +9 -9
  367. package/lib/components/stock/components/order-tab/order-tab.component.d.ts +20 -20
  368. package/lib/components/stock/components/stock-history/stock-history.component.d.ts +13 -13
  369. package/lib/components/stock/components/stock-location/components/stock-location-popup/stock-location-popup.component.d.ts +41 -0
  370. package/lib/components/stock/components/stock-location/stock-location.component.d.ts +54 -52
  371. package/lib/components/stock/components/stock-prognose/stock-prognose.component.d.ts +11 -11
  372. package/lib/components/stock/components/stock-tab/stock-tab.component.d.ts +7 -7
  373. package/lib/components/stock/localization/translation.d.ts +71 -69
  374. package/lib/components/stock/stock-history-tabs/stock-history-tabs.component.d.ts +7 -7
  375. package/lib/components/stock/stock-information/stock-information.component.d.ts +9 -9
  376. package/lib/components/stock/stock-information-grid/stock-information-grid.component.d.ts +75 -75
  377. package/lib/components/stock/stock-tabs/stock-tabs.component.d.ts +59 -56
  378. package/lib/components/stock/stock-transfer/co-drop-down-list-fields.interface.d.ts +4 -4
  379. package/lib/components/stock/stock-transfer/stock-change-amount.component.d.ts +18 -18
  380. package/lib/components/stock/stock-transfer/stock-transfer.component.d.ts +38 -38
  381. package/lib/components/stock/stock.component.d.ts +64 -64
  382. package/lib/components/stock/stock.module.d.ts +2 -2
  383. package/lib/components/stock/style/_layout.scss +519 -473
  384. package/lib/components/stock/style/_material-definition.scss +28 -28
  385. package/lib/components/stock/style/_theme.scss +5 -5
  386. package/lib/components/stock/style/material.scss +4 -4
  387. package/lib/components/stock-statusbar/stock-statusbar.component.d.ts +4 -4
  388. package/lib/components/stock-statusbar/stock-statusbar.module.d.ts +2 -2
  389. package/lib/components/stock-statusbar/style/_layout.scss +24 -24
  390. package/lib/components/stock-statusbar/style/material.scss +4 -4
  391. package/lib/components/tab-bar/style/_layout.scss +83 -83
  392. package/lib/components/tab-bar/style/_material-definition.scss +6 -6
  393. package/lib/components/tab-bar/style/material.scss +4 -4
  394. package/lib/components/tab-bar/tab-bar.component.d.ts +21 -21
  395. package/lib/components/tab-bar/tab-bar.module.d.ts +2 -2
  396. package/lib/components/tab-bar/tab.interface.d.ts +5 -5
  397. package/lib/components/tags/component/style/_layout.scss +67 -67
  398. package/lib/components/tags/component/style/_material-definition.scss +1 -1
  399. package/lib/components/tags/component/style/_theme.scss +8 -8
  400. package/lib/components/tags/component/style/material.scss +3 -3
  401. package/lib/components/tags/component/tag-join-label/style/_layout.scss +97 -97
  402. package/lib/components/tags/component/tag-join-label/style/_material-definition.scss +4 -4
  403. package/lib/components/tags/component/tag-join-label/style/_theme.scss +8 -8
  404. package/lib/components/tags/component/tag-join-label/style/material.scss +3 -3
  405. package/lib/components/tile-renderer/style/_layout.scss +90 -90
  406. package/lib/components/tile-renderer/style/_theme.scss +4 -4
  407. package/lib/components/tile-renderer/style/material.scss +4 -4
  408. package/lib/components/tile-renderer/tile-render.component.d.ts +31 -31
  409. package/lib/components/tile-renderer/tile-render.module.d.ts +2 -2
  410. package/lib/decorator/input-boolean.decorator.d.ts +8 -8
  411. package/lib/enum/calendar-view.enum.d.ts +7 -7
  412. package/lib/enum/document-email-report.enum.d.ts +15 -15
  413. package/lib/enum/domain-multiple-name.enum.d.ts +10 -10
  414. package/lib/enum/file-type.d.ts +7 -7
  415. package/lib/enum/files-upload-config-objects.d.ts +22 -22
  416. package/lib/enum/gauge-color.enum.d.ts +8 -8
  417. package/lib/enum/icon.enum.d.ts +47 -46
  418. package/lib/enum/internal-param.enum.d.ts +34 -34
  419. package/lib/enum/keyboard-code.enum.d.ts +30 -30
  420. package/lib/enum/language-code.enum.d.ts +6 -6
  421. package/lib/enum/month.enum.d.ts +14 -14
  422. package/lib/enum/read-write-access-config-names.enum.d.ts +4 -4
  423. package/lib/enum/table-name.enum.d.ts +84 -84
  424. package/lib/enum/tag-category.enum.d.ts +19 -19
  425. package/lib/enum/tags-component-config-names.d.ts +4 -4
  426. package/lib/enum/thumb-three-way-state.d.ts +6 -6
  427. package/lib/enum/tile-size-type.d.ts +4 -4
  428. package/lib/enum/time-period.enum.d.ts +8 -8
  429. package/lib/event/co-drag-event.d.ts +5 -5
  430. package/lib/event/co-drop-event.d.ts +8 -8
  431. package/lib/interface/key-value-pair.d.ts +4 -4
  432. package/lib/interface/operation-callback-simple-function.d.ts +4 -4
  433. package/lib/localization/localization.module.d.ts +2 -2
  434. package/lib/localization/localize.pipe.d.ts +7 -7
  435. package/lib/localization/localize.service.d.ts +7 -7
  436. package/lib/localization/translation.d.ts +2 -2
  437. package/lib/model/agenda-event-per-day.model.d.ts +5 -5
  438. package/lib/model/agenda-event.model.d.ts +17 -17
  439. package/lib/model/agenda-null-objects.d.ts +10 -10
  440. package/lib/model/constant/all-months.d.ts +2 -2
  441. package/lib/model/date-range.d.ts +7 -7
  442. package/lib/model/day.model.d.ts +8 -8
  443. package/lib/model/icon-svg.d.ts +4 -4
  444. package/lib/model/month.model.d.ts +5 -5
  445. package/lib/model/send-method.d.ts +7 -7
  446. package/lib/model/settings.d.ts +3 -3
  447. package/lib/model/tag-tree-item.bo.d.ts +18 -18
  448. package/lib/model/time-window.bo.d.ts +13 -13
  449. package/lib/model/tree-object.d.ts +8 -8
  450. package/lib/model/week.model.d.ts +4 -4
  451. package/lib/model/weekday.model.d.ts +16 -16
  452. package/lib/pipe/array-number.pipe.d.ts +4 -4
  453. package/lib/pipe/file-type-image.pipe.d.ts +12 -12
  454. package/lib/pipe/master-pipes.d.ts +1 -1
  455. package/lib/pipe/ucfirst.pipe.d.ts +4 -4
  456. package/lib/service/dictionary.service.d.ts +21 -21
  457. package/lib/service/drag-drop.service.d.ts +86 -86
  458. package/lib/service/icon-cache.service.d.ts +18 -18
  459. package/lib/service/options.service.d.ts +13 -13
  460. package/lib/service/shared-connector.service.d.ts +55 -55
  461. package/lib/service/shared.service.d.ts +18 -18
  462. package/lib/service/stock.service.d.ts +41 -41
  463. package/lib/style/_mixin.scss +14 -14
  464. package/lib/style/_variables.scss +21 -21
  465. package/lib/style/sharedcomponents-globals.scss +10 -10
  466. package/lib/utils/array-utils.d.ts +63 -63
  467. package/lib/utils/calendar.utils.d.ts +10 -10
  468. package/lib/utils/check-precision-and-scale-result.d.ts +4 -4
  469. package/lib/utils/check-within-stepped-bounds-result.d.ts +8 -8
  470. package/lib/utils/co-document-shared-field-logic.d.ts +7 -7
  471. package/lib/utils/date-utils.d.ts +44 -44
  472. package/lib/utils/enum-utils.d.ts +31 -31
  473. package/lib/utils/function/not-nill.function.d.ts +1 -1
  474. package/lib/utils/is-nill.function.d.ts +1 -1
  475. package/lib/utils/map-utils.d.ts +16 -16
  476. package/lib/utils/number-utils.d.ts +125 -125
  477. package/lib/utils/object-utils.d.ts +40 -40
  478. package/lib/utils/ref-code-utils.d.ts +10 -10
  479. package/lib/utils/string-utils.d.ts +38 -38
  480. package/package.json +1 -1
  481. package/public-api.d.ts +27 -27
@@ -1,128 +1,128 @@
1
- import { CoDomainValue } from "@colijnit/mainapi/build/model/co-domain-value.bo";
2
- import { NumberUtils } from "./number-utils";
3
- import { StringUtils } from "./string-utils";
4
- // @dynamic
5
- export class EnumUtils {
6
- // Returns a new array with all string values (not keys) of given string enum class.
7
- static StringEnumToArray(clazz) {
8
- const asArray = [];
9
- const keys = Object.keys(clazz);
10
- for (let i = 0, len = keys.length; i < len; i++) {
11
- asArray.push(clazz[keys[i]]);
12
- }
13
- return asArray;
14
- }
15
- /**
16
- * Returns a single string representation of given string enum class
17
- * @param clazz
18
- * @returns {string} eg "input-lov-slideout, financial-customer-group-select" for a given clazz of InputLovSlideoutComponentSelectors
19
- */
20
- static StringEnumToSingleString(clazz) {
21
- return StringEnumToSingleString(clazz);
22
- }
23
- // Get the number values from an enum
24
- static GetNumberEnumValues(numberEnumClass) {
25
- return this.GetObjValues(numberEnumClass).filter(value => NumberUtils.IsNumber(value));
26
- }
27
- // Get the the property object value names in string format from the enum
28
- static GetStringEnumValues(stringEnumClass) {
29
- return this.GetObjValues(stringEnumClass).filter(value => StringUtils.IsString(value));
30
- }
31
- static GetObjValues(numberEnumClass) {
32
- return Object.keys(numberEnumClass).map(key => numberEnumClass[key]);
33
- }
34
- /**
35
- * Returns the enum in object format to make handling easier
36
- * Works for Enums with the following format:
37
- * foo: 1
38
- * bar: 2
39
- * etc...
40
- * @param enumClass
41
- * @returns {Object}
42
- */
43
- static createObjectFromEnum(enumClass) {
44
- // const objectifiedEnum: { refNumber: number; name: string }[] = [];
45
- const objectifiedEnum = [];
46
- for (const enumItem in enumClass) {
47
- if (typeof enumClass[enumItem] === "number") {
48
- objectifiedEnum.push({ key: enumClass[enumItem], value: enumItem });
49
- }
50
- }
51
- return objectifiedEnum;
52
- }
53
- static getStringEnumKeysArray(enumType) {
54
- const members = Object.keys(enumType);
55
- if (!EnumUtils.isNumeral(enumType)) {
56
- return members;
57
- }
58
- const keys = [];
59
- members.forEach((x) => {
60
- const parsedValue = parseInt(x, 10);
61
- if (Number.isNaN(parsedValue)) {
62
- keys.push(x);
63
- }
64
- });
65
- return keys;
66
- }
67
- static buildPromiseDomainValueListFromEnumClass(enumClass, dictionary, keysAsDescription = false) {
68
- return new Promise((resolve, reject) => {
69
- try {
70
- resolve(EnumUtils.buildDomainValueListFromEnumClass(enumClass, dictionary, keysAsDescription));
71
- }
72
- catch (e) {
73
- reject();
74
- }
75
- });
76
- }
77
- static buildDomainValueListFromEnumClass(enumClass, dictionary, keysAsDescription = false) {
78
- const collection = [];
79
- if (keysAsDescription) {
80
- const enumKeys = EnumUtils.getStringEnumKeysArray(enumClass);
81
- enumKeys.forEach((key, index) => {
82
- const domainObjectForLov = new CoDomainValue();
83
- domainObjectForLov.code = enumClass[key];
84
- domainObjectForLov.description = dictionary.get(key);
85
- domainObjectForLov.sequence = index;
86
- collection.push(domainObjectForLov);
87
- });
88
- }
89
- else {
90
- EnumUtils.StringEnumToArray(enumClass).forEach((strEnumVal, index) => {
91
- const domainObjectForLov = new CoDomainValue();
92
- domainObjectForLov.code = strEnumVal;
93
- domainObjectForLov.description = dictionary.get(strEnumVal);
94
- domainObjectForLov.sequence = index;
95
- collection.push(domainObjectForLov);
96
- });
97
- }
98
- return collection;
99
- }
100
- static getKeyByValue(enumType, enumValue) {
101
- return Object.keys(enumType)[Object.values(enumType).indexOf(enumValue)];
102
- }
103
- static isNumeral(enumType) {
104
- const members = Object.keys(enumType);
105
- if (!members.some((x) => true)) {
106
- throw new TypeError("Invalid enumeration type.");
107
- }
108
- let parsedCount = 0;
109
- members.forEach((x) => {
110
- const parsedValue = parseInt(x, 10);
111
- if (!Number.isNaN(parsedValue)) {
112
- parsedCount++;
113
- }
114
- });
115
- return parsedCount === members.length / 2;
116
- }
117
- }
118
- // Outside the class because it's used to generate component selectors, and aot can't call statics.
119
- export function StringEnumToSingleString(clazz) {
120
- let str = "";
121
- const keys = Object.keys(clazz);
122
- for (let i = 0, len = keys.length; i < len; i++) {
123
- str += clazz[keys[i]] + ", ";
124
- }
125
- str = StringUtils.RemoveLastChars(str, 2);
126
- return str;
127
- }
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL2xpYi91dGlscy9lbnVtLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUMvRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLFdBQVc7QUFDWCxNQUFNLE9BQU8sU0FBUztJQUNsQixvRkFBb0Y7SUFDN0UsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEtBQVU7UUFDdEMsTUFBTSxPQUFPLEdBQVUsRUFBRSxDQUFDO1FBRTFCLE1BQU0sSUFBSSxHQUFhLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUMsS0FBSyxJQUFJLENBQUMsR0FBVyxDQUFDLEVBQUUsR0FBRyxHQUFXLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM3RCxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2hDO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsd0JBQXdCLENBQUMsS0FBVTtRQUM3QyxPQUFPLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxxQ0FBcUM7SUFDOUIsTUFBTSxDQUFDLG1CQUFtQixDQUFDLGVBQW9CO1FBQ2xELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUss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QUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNsQixNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUM1QixXQUFXLEVBQUUsQ0FBQzthQUNqQjtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxXQUFXLEtBQUssT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDOUMsQ0FBQztDQUVKO0FBRUQsbUdBQW1HO0FBQ25HLE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxLQUFVO0lBQy9DLElBQUksR0FBRyxHQUFXLEVBQUUsQ0FBQztJQUVyQixNQUFNLElBQUksR0FBYSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFDLEtBQUssSUFBSSxDQUFDLEdBQVcsQ0FBQyxFQUFFLEdBQUcsR0FBVyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDN0QsR0FBRyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7S0FDaEM7SUFFRCxHQUFHLEdBQUcsV0FBVyxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUMsT0FBTyxHQUFHLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gU3RhdGljIHV0aWxpdHkgZnVuY3Rpb24gaG9sZGVyIHJlbGF0ZWQgdG8gZW51bXMuXG5pbXBvcnQge0tleVZhbHVlUGFpcn0gZnJvbSBcIi4uL2ludGVyZmFjZS9rZXktdmFsdWUtcGFpclwiO1xuaW1wb3J0IHtDb0RvbWFpblZhbHVlfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvY28tZG9tYWluLXZhbHVlLmJvXCI7XG5pbXBvcnQge051bWJlclV0aWxzfSBmcm9tIFwiLi9udW1iZXItdXRpbHNcIjtcbmltcG9ydCB7U3RyaW5nVXRpbHN9IGZyb20gXCIuL3N0cmluZy11dGlsc1wiO1xuaW1wb3J0IHtEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSBcIi4uL3NlcnZpY2UvZGljdGlvbmFyeS5zZXJ2aWNlXCI7XG4vLyBAZHluYW1pY1xuZXhwb3J0IGNsYXNzIEVudW1VdGlscyB7XG4gICAgLy8gUmV0dXJucyBhIG5ldyBhcnJheSB3aXRoIGFsbCBzdHJpbmcgdmFsdWVzIChub3Qga2V5cykgb2YgZ2l2ZW4gc3RyaW5nIGVudW0gY2xhc3MuXG4gICAgcHVibGljIHN0YXRpYyBTdHJpbmdFbnVtVG9BcnJheShjbGF6ejogYW55KTogc3RyaW5nW10ge1xuICAgICAgICBjb25zdCBhc0FycmF5OiBhbnlbXSA9IFtdO1xuXG4gICAgICAgIGNvbnN0IGtleXM6IHN0cmluZ1tdID0gT2JqZWN0LmtleXMoY2xhenopO1xuICAgICAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwLCBsZW46IG51bWJlciA9IGtleXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgICAgIGFzQXJyYXkucHVzaChjbGF6eltrZXlzW2ldXSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYXNBcnJheTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgc2luZ2xlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBnaXZlbiBzdHJpbmcgZW51bSBjbGFzc1xuICAgICAqIEBwYXJhbSBjbGF6elxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IGVnIFwiaW5wdXQtbG92LXNsaWRlb3V0LCBmaW5hbmNpYWwtY3VzdG9tZXItZ3JvdXAtc2VsZWN0XCIgZm9yIGEgZ2l2ZW4gY2xhenogb2YgSW5wdXRMb3ZTbGlkZW91dENvbXBvbmVudFNlbGVjdG9yc1xuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nRW51bVRvU2luZ2xlU3RyaW5nKGNsYXp6OiBhbnkpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gU3RyaW5nRW51bVRvU2luZ2xlU3RyaW5nKGNsYXp6KTtcbiAgICB9XG5cbiAgICAvLyBHZXQgdGhlIG51bWJlciB2YWx1ZXMgZnJvbSBhbiBlbnVtXG4gICAgcHVibGljIHN0YXRpYyBHZXROdW1iZXJFbnVtVmFsdWVzKG51bWJlckVudW1DbGFzczogYW55KTogYW55W10ge1xuICAgICAgICByZXR1cm4gdGhpcy5HZXRPYmpWYWx1ZXMobnVtYmVyRW51bUNsYXNzKS5maWx0ZXIodmFsdWUgPT4gTnVtYmVyVXRpbHMuSXNOdW1iZXIodmFsdWUpKTtcbiAgICB9XG5cbiAgICAvLyBHZXQgdGhlIHRoZSBwcm9wZXJ0eSBvYmplY3QgdmFsdWUgbmFtZXMgaW4gc3RyaW5nIGZvcm1hdCBmcm9tIHRoZSBlbnVtXG4gICAgcHVibGljIHN0YXRpYyBHZXRTdHJpbmdFbnVtVmFsdWVzKHN0cmluZ0VudW1DbGFzczogYW55KTogYW55W10ge1xuICAgICAgICByZXR1cm4gdGhpcy5HZXRPYmpWYWx1ZXMoc3RyaW5nRW51bUNsYXNzKS5maWx0ZXIodmFsdWUgPT4gU3RyaW5nVXRpbHMuSXNTdHJpbmcodmFsdWUpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIEdldE9ialZhbHVlcyhudW1iZXJFbnVtQ2xhc3M6IGFueSk6IChudW1iZXIgfCBzdHJpbmcpW10ge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMobnVtYmVyRW51bUNsYXNzKS5tYXAoa2V5ID0+IG51bWJlckVudW1DbGFzc1trZXldKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBlbnVtIGluIG9iamVjdCBmb3JtYXQgdG8gbWFrZSBoYW5kbGluZyBlYXNpZXJcbiAgICAgKiBXb3JrcyBmb3IgRW51bXMgd2l0aCB0aGUgZm9sbG93aW5nIGZvcm1hdDpcbiAgICAgKiBmb286IDFcbiAgICAgKiBiYXI6IDJcbiAgICAgKiBldGMuLi5cbiAgICAgKiBAcGFyYW0gZW51bUNsYXNzXG4gICAgICogQHJldHVybnMge09iamVjdH1cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZU9iamVjdEZyb21FbnVtKGVudW1DbGFzczogYW55KTogS2V5VmFsdWVQYWlyW10ge1xuICAgICAgIC8vIGNvbnN0IG9iamVjdGlmaWVkRW51bTogeyByZWZOdW1iZXI6IG51bWJlcjsgbmFtZTogc3RyaW5nIH1bXSA9IFtdO1xuICAgICAgICBjb25zdCBvYmplY3RpZmllZEVudW06IEtleVZhbHVlUGFpcltdID0gW107XG5cbiAgICAgICAgZm9yIChjb25zdCBlbnVtSXRlbSBpbiBlbnVtQ2xhc3MpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZW51bUNsYXNzW2VudW1JdGVtXSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgICAgIG9iamVjdGlmaWVkRW51bS5wdXNoKHtrZXk6IDxudW1iZXI+ZW51bUNsYXNzW2VudW1JdGVtXSwgdmFsdWU6IGVudW1JdGVtfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb2JqZWN0aWZpZWRFbnVtO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0U3RyaW5nRW51bUtleXNBcnJheShlbnVtVHlwZTogb2JqZWN0KTogc3RyaW5nW10ge1xuICAgICAgICBjb25zdCBtZW1iZXJzID0gT2JqZWN0LmtleXMoZW51bVR5cGUpO1xuICAgICAgICBpZiAoIUVudW1VdGlscy5pc051bWVyYWwoZW51bVR5cGUpKSB7XG4gICAgICAgICAgICByZXR1cm4gbWVtYmVycztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGtleXM6IHN0cmluZ1tdID0gW107XG4gICAgICAgIG1lbWJlcnMuZm9yRWFjaCgoeCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcGFyc2VkVmFsdWUgPSBwYXJzZUludCh4LCAxMCk7XG4gICAgICAgICAgICBpZiAoTnVtYmVyLmlzTmFOKHBhcnNlZFZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGtleXMucHVzaCh4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBrZXlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgIGJ1aWxkUHJvbWlzZURvbWFpblZhbHVlTGlzdEZyb21FbnVtQ2xhc3MoZW51bUNsYXNzOiBhbnksIGRpY3Rpb25hcnk6IERpY3Rpb25hcnlTZXJ2aWNlLCBrZXlzQXNEZXNjcmlwdGlvbjogYm9vbGVhbiA9IGZhbHNlKTogUHJvbWlzZTxDb0RvbWFpblZhbHVlW10+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZShFbnVtVXRpbHMuYnVpbGREb21haW5WYWx1ZUxpc3RGcm9tRW51bUNsYXNzKGVudW1DbGFzcywgZGljdGlvbmFyeSwga2V5c0FzRGVzY3JpcHRpb24pKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICByZWplY3QoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBidWlsZERvbWFpblZhbHVlTGlzdEZyb21FbnVtQ2xhc3MoZW51bUNsYXNzOiBhbnksIGRpY3Rpb25hcnk6IERpY3Rpb25hcnlTZXJ2aWNlLCBrZXlzQXNEZXNjcmlwdGlvbjogYm9vbGVhbiA9IGZhbHNlKTogQ29Eb21haW5WYWx1ZVtdIHtcbiAgICAgICAgY29uc3QgY29sbGVjdGlvbjogQ29Eb21haW5WYWx1ZVtdID0gW107XG5cbiAgICAgICAgaWYgKGtleXNBc0Rlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCBlbnVtS2V5czogc3RyaW5nW10gPSBFbnVtVXRpbHMuZ2V0U3RyaW5nRW51bUtleXNBcnJheShlbnVtQ2xhc3MpO1xuICAgICAgICAgICAgZW51bUtleXMuZm9yRWFjaCgoa2V5OiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkb21haW5PYmplY3RGb3JMb3Y6IENvRG9tYWluVmFsdWUgPSBuZXcgQ29Eb21haW5WYWx1ZSgpO1xuICAgICAgICAgICAgICAgIGRvbWFpbk9iamVjdEZvckxvdi5jb2RlID0gZW51bUNsYXNzW2tleV07XG4gICAgICAgICAgICAgICAgZG9tYWluT2JqZWN0Rm9yTG92LmRlc2NyaXB0aW9uID0gZGljdGlvbmFyeS5nZXQoa2V5KTtcbiAgICAgICAgICAgICAgICBkb21haW5PYmplY3RGb3JMb3Yuc2VxdWVuY2UgPSBpbmRleDtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uLnB1c2goZG9tYWluT2JqZWN0Rm9yTG92KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgRW51bVV0aWxzLlN0cmluZ0VudW1Ub0FycmF5KGVudW1DbGFzcykuZm9yRWFjaCgoc3RyRW51bVZhbDogc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZG9tYWluT2JqZWN0Rm9yTG92OiBDb0RvbWFpblZhbHVlID0gbmV3IENvRG9tYWluVmFsdWUoKTtcbiAgICAgICAgICAgICAgICBkb21haW5PYmplY3RGb3JMb3YuY29kZSA9IHN0ckVudW1WYWw7XG4gICAgICAgICAgICAgICAgZG9tYWluT2JqZWN0Rm9yTG92LmRlc2NyaXB0aW9uID0gZGljdGlvbmFyeS5nZXQoc3RyRW51bVZhbCk7XG4gICAgICAgICAgICAgICAgZG9tYWluT2JqZWN0Rm9yTG92LnNlcXVlbmNlID0gaW5kZXg7XG4gICAgICAgICAgICAgICAgY29sbGVjdGlvbi5wdXNoKGRvbWFpbk9iamVjdEZvckxvdik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb2xsZWN0aW9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0S2V5QnlWYWx1ZShlbnVtVHlwZTogb2JqZWN0LCBlbnVtVmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhlbnVtVHlwZSlbT2JqZWN0LnZhbHVlcyhlbnVtVHlwZSkuaW5kZXhPZihlbnVtVmFsdWUpXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBpc051bWVyYWwoZW51bVR5cGU6IG9iamVjdCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBtZW1iZXJzID0gT2JqZWN0LmtleXMoZW51bVR5cGUpO1xuICAgICAgICBpZiAoIW1lbWJlcnMuc29tZSgoeCkgPT4gdHJ1ZSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGVudW1lcmF0aW9uIHR5cGUuXCIpO1xuICAgICAgICB9XG4gICAgICAgIGxldCBwYXJzZWRDb3VudCA9IDA7XG4gICAgICAgIG1lbWJlcnMuZm9yRWFjaCgoeCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcGFyc2VkVmFsdWUgPSBwYXJzZUludCh4LCAxMCk7XG4gICAgICAgICAgICBpZiAoIU51bWJlci5pc05hTihwYXJzZWRWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBwYXJzZWRDb3VudCsrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHBhcnNlZENvdW50ID09PSBtZW1iZXJzLmxlbmd0aCAvIDI7XG4gICAgfVxuXG59XG5cbi8vIE91dHNpZGUgdGhlIGNsYXNzIGJlY2F1c2UgaXQncyB1c2VkIHRvIGdlbmVyYXRlIGNvbXBvbmVudCBzZWxlY3RvcnMsIGFuZCBhb3QgY2FuJ3QgY2FsbCBzdGF0aWNzLlxuZXhwb3J0IGZ1bmN0aW9uIFN0cmluZ0VudW1Ub1NpbmdsZVN0cmluZyhjbGF6ejogYW55KTogc3RyaW5nIHtcbiAgICBsZXQgc3RyOiBzdHJpbmcgPSBcIlwiO1xuXG4gICAgY29uc3Qga2V5czogc3RyaW5nW10gPSBPYmplY3Qua2V5cyhjbGF6eik7XG4gICAgZm9yIChsZXQgaTogbnVtYmVyID0gMCwgbGVuOiBudW1iZXIgPSBrZXlzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgIHN0ciArPSBjbGF6eltrZXlzW2ldXSArIFwiLCBcIjtcbiAgICB9XG5cbiAgICBzdHIgPSBTdHJpbmdVdGlscy5SZW1vdmVMYXN0Q2hhcnMoc3RyLCAyKTtcbiAgICByZXR1cm4gc3RyO1xufVxuIl19
1
+ import { CoDomainValue } from "@colijnit/mainapi/build/model/co-domain-value.bo";
2
+ import { NumberUtils } from "./number-utils";
3
+ import { StringUtils } from "./string-utils";
4
+ // @dynamic
5
+ export class EnumUtils {
6
+ // Returns a new array with all string values (not keys) of given string enum class.
7
+ static StringEnumToArray(clazz) {
8
+ const asArray = [];
9
+ const keys = Object.keys(clazz);
10
+ for (let i = 0, len = keys.length; i < len; i++) {
11
+ asArray.push(clazz[keys[i]]);
12
+ }
13
+ return asArray;
14
+ }
15
+ /**
16
+ * Returns a single string representation of given string enum class
17
+ * @param clazz
18
+ * @returns {string} eg "input-lov-slideout, financial-customer-group-select" for a given clazz of InputLovSlideoutComponentSelectors
19
+ */
20
+ static StringEnumToSingleString(clazz) {
21
+ return StringEnumToSingleString(clazz);
22
+ }
23
+ // Get the number values from an enum
24
+ static GetNumberEnumValues(numberEnumClass) {
25
+ return this.GetObjValues(numberEnumClass).filter(value => NumberUtils.IsNumber(value));
26
+ }
27
+ // Get the the property object value names in string format from the enum
28
+ static GetStringEnumValues(stringEnumClass) {
29
+ return this.GetObjValues(stringEnumClass).filter(value => StringUtils.IsString(value));
30
+ }
31
+ static GetObjValues(numberEnumClass) {
32
+ return Object.keys(numberEnumClass).map(key => numberEnumClass[key]);
33
+ }
34
+ /**
35
+ * Returns the enum in object format to make handling easier
36
+ * Works for Enums with the following format:
37
+ * foo: 1
38
+ * bar: 2
39
+ * etc...
40
+ * @param enumClass
41
+ * @returns {Object}
42
+ */
43
+ static createObjectFromEnum(enumClass) {
44
+ // const objectifiedEnum: { refNumber: number; name: string }[] = [];
45
+ const objectifiedEnum = [];
46
+ for (const enumItem in enumClass) {
47
+ if (typeof enumClass[enumItem] === "number") {
48
+ objectifiedEnum.push({ key: enumClass[enumItem], value: enumItem });
49
+ }
50
+ }
51
+ return objectifiedEnum;
52
+ }
53
+ static getStringEnumKeysArray(enumType) {
54
+ const members = Object.keys(enumType);
55
+ if (!EnumUtils.isNumeral(enumType)) {
56
+ return members;
57
+ }
58
+ const keys = [];
59
+ members.forEach((x) => {
60
+ const parsedValue = parseInt(x, 10);
61
+ if (Number.isNaN(parsedValue)) {
62
+ keys.push(x);
63
+ }
64
+ });
65
+ return keys;
66
+ }
67
+ static buildPromiseDomainValueListFromEnumClass(enumClass, dictionary, keysAsDescription = false) {
68
+ return new Promise((resolve, reject) => {
69
+ try {
70
+ resolve(EnumUtils.buildDomainValueListFromEnumClass(enumClass, dictionary, keysAsDescription));
71
+ }
72
+ catch (e) {
73
+ reject();
74
+ }
75
+ });
76
+ }
77
+ static buildDomainValueListFromEnumClass(enumClass, dictionary, keysAsDescription = false) {
78
+ const collection = [];
79
+ if (keysAsDescription) {
80
+ const enumKeys = EnumUtils.getStringEnumKeysArray(enumClass);
81
+ enumKeys.forEach((key, index) => {
82
+ const domainObjectForLov = new CoDomainValue();
83
+ domainObjectForLov.code = enumClass[key];
84
+ domainObjectForLov.description = dictionary.get(key);
85
+ domainObjectForLov.sequence = index;
86
+ collection.push(domainObjectForLov);
87
+ });
88
+ }
89
+ else {
90
+ EnumUtils.StringEnumToArray(enumClass).forEach((strEnumVal, index) => {
91
+ const domainObjectForLov = new CoDomainValue();
92
+ domainObjectForLov.code = strEnumVal;
93
+ domainObjectForLov.description = dictionary.get(strEnumVal);
94
+ domainObjectForLov.sequence = index;
95
+ collection.push(domainObjectForLov);
96
+ });
97
+ }
98
+ return collection;
99
+ }
100
+ static getKeyByValue(enumType, enumValue) {
101
+ return Object.keys(enumType)[Object.values(enumType).indexOf(enumValue)];
102
+ }
103
+ static isNumeral(enumType) {
104
+ const members = Object.keys(enumType);
105
+ if (!members.some((x) => true)) {
106
+ throw new TypeError("Invalid enumeration type.");
107
+ }
108
+ let parsedCount = 0;
109
+ members.forEach((x) => {
110
+ const parsedValue = parseInt(x, 10);
111
+ if (!Number.isNaN(parsedValue)) {
112
+ parsedCount++;
113
+ }
114
+ });
115
+ return parsedCount === members.length / 2;
116
+ }
117
+ }
118
+ // Outside the class because it's used to generate component selectors, and aot can't call statics.
119
+ export function StringEnumToSingleString(clazz) {
120
+ let str = "";
121
+ const keys = Object.keys(clazz);
122
+ for (let i = 0, len = keys.length; i < len; i++) {
123
+ str += clazz[keys[i]] + ", ";
124
+ }
125
+ str = StringUtils.RemoveLastChars(str, 2);
126
+ return str;
127
+ }
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL2xpYi91dGlscy9lbnVtLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUMvRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLFdBQVc7QUFDWCxNQUFNLE9BQU8sU0FBUztJQUNsQixvRkFBb0Y7SUFDN0UsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEtBQVU7UUFDdEMsTUFBTSxPQUFPLEdBQVUsRUFBRSxDQUFDO1FBRTFCLE1BQU0sSUFBSSxHQUFhLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUMsS0FBSyxJQUFJLENBQUMsR0FBVyxDQUFDLEVBQUUsR0FBRyxHQUFXLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM3RCxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2hDO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsd0JBQXdCLENBQUMsS0FBVTtRQUM3QyxPQUFPLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxxQ0FBcUM7SUFDOUIsTUFBTSxDQUFDLG1CQUFtQixDQUFDLGVBQW9CO1FBQ2xELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUss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QUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNsQixNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUM1QixXQUFXLEVBQUUsQ0FBQzthQUNqQjtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxXQUFXLEtBQUssT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDOUMsQ0FBQztDQUVKO0FBRUQsbUdBQW1HO0FBQ25HLE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxLQUFVO0lBQy9DLElBQUksR0FBRyxHQUFXLEVBQUUsQ0FBQztJQUVyQixNQUFNLElBQUksR0FBYSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFDLEtBQUssSUFBSSxDQUFDLEdBQVcsQ0FBQyxFQUFFLEdBQUcsR0FBVyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDN0QsR0FBRyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7S0FDaEM7SUFFRCxHQUFHLEdBQUcsV0FBVyxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUMsT0FBTyxHQUFHLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gU3RhdGljIHV0aWxpdHkgZnVuY3Rpb24gaG9sZGVyIHJlbGF0ZWQgdG8gZW51bXMuXHJcbmltcG9ydCB7S2V5VmFsdWVQYWlyfSBmcm9tIFwiLi4vaW50ZXJmYWNlL2tleS12YWx1ZS1wYWlyXCI7XHJcbmltcG9ydCB7Q29Eb21haW5WYWx1ZX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2NvLWRvbWFpbi12YWx1ZS5ib1wiO1xyXG5pbXBvcnQge051bWJlclV0aWxzfSBmcm9tIFwiLi9udW1iZXItdXRpbHNcIjtcclxuaW1wb3J0IHtTdHJpbmdVdGlsc30gZnJvbSBcIi4vc3RyaW5nLXV0aWxzXCI7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gXCIuLi9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZVwiO1xyXG4vLyBAZHluYW1pY1xyXG5leHBvcnQgY2xhc3MgRW51bVV0aWxzIHtcclxuICAgIC8vIFJldHVybnMgYSBuZXcgYXJyYXkgd2l0aCBhbGwgc3RyaW5nIHZhbHVlcyAobm90IGtleXMpIG9mIGdpdmVuIHN0cmluZyBlbnVtIGNsYXNzLlxyXG4gICAgcHVibGljIHN0YXRpYyBTdHJpbmdFbnVtVG9BcnJheShjbGF6ejogYW55KTogc3RyaW5nW10ge1xyXG4gICAgICAgIGNvbnN0IGFzQXJyYXk6IGFueVtdID0gW107XHJcblxyXG4gICAgICAgIGNvbnN0IGtleXM6IHN0cmluZ1tdID0gT2JqZWN0LmtleXMoY2xhenopO1xyXG4gICAgICAgIGZvciAobGV0IGk6IG51bWJlciA9IDAsIGxlbjogbnVtYmVyID0ga2V5cy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICAgICAgICBhc0FycmF5LnB1c2goY2xhenpba2V5c1tpXV0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGFzQXJyYXk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIGEgc2luZ2xlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBnaXZlbiBzdHJpbmcgZW51bSBjbGFzc1xyXG4gICAgICogQHBhcmFtIGNsYXp6XHJcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBlZyBcImlucHV0LWxvdi1zbGlkZW91dCwgZmluYW5jaWFsLWN1c3RvbWVyLWdyb3VwLXNlbGVjdFwiIGZvciBhIGdpdmVuIGNsYXp6IG9mIElucHV0TG92U2xpZGVvdXRDb21wb25lbnRTZWxlY3RvcnNcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBTdHJpbmdFbnVtVG9TaW5nbGVTdHJpbmcoY2xheno6IGFueSk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIFN0cmluZ0VudW1Ub1NpbmdsZVN0cmluZyhjbGF6eik7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gR2V0IHRoZSBudW1iZXIgdmFsdWVzIGZyb20gYW4gZW51bVxyXG4gICAgcHVibGljIHN0YXRpYyBHZXROdW1iZXJFbnVtVmFsdWVzKG51bWJlckVudW1DbGFzczogYW55KTogYW55W10ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLkdldE9ialZhbHVlcyhudW1iZXJFbnVtQ2xhc3MpLmZpbHRlcih2YWx1ZSA9PiBOdW1iZXJVdGlscy5Jc051bWJlcih2YWx1ZSkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEdldCB0aGUgdGhlIHByb3BlcnR5IG9iamVjdCB2YWx1ZSBuYW1lcyBpbiBzdHJpbmcgZm9ybWF0IGZyb20gdGhlIGVudW1cclxuICAgIHB1YmxpYyBzdGF0aWMgR2V0U3RyaW5nRW51bVZhbHVlcyhzdHJpbmdFbnVtQ2xhc3M6IGFueSk6IGFueVtdIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5HZXRPYmpWYWx1ZXMoc3RyaW5nRW51bUNsYXNzKS5maWx0ZXIodmFsdWUgPT4gU3RyaW5nVXRpbHMuSXNTdHJpbmcodmFsdWUpKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIEdldE9ialZhbHVlcyhudW1iZXJFbnVtQ2xhc3M6IGFueSk6IChudW1iZXIgfCBzdHJpbmcpW10ge1xyXG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhudW1iZXJFbnVtQ2xhc3MpLm1hcChrZXkgPT4gbnVtYmVyRW51bUNsYXNzW2tleV0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB0aGUgZW51bSBpbiBvYmplY3QgZm9ybWF0IHRvIG1ha2UgaGFuZGxpbmcgZWFzaWVyXHJcbiAgICAgKiBXb3JrcyBmb3IgRW51bXMgd2l0aCB0aGUgZm9sbG93aW5nIGZvcm1hdDpcclxuICAgICAqIGZvbzogMVxyXG4gICAgICogYmFyOiAyXHJcbiAgICAgKiBldGMuLi5cclxuICAgICAqIEBwYXJhbSBlbnVtQ2xhc3NcclxuICAgICAqIEByZXR1cm5zIHtPYmplY3R9XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlT2JqZWN0RnJvbUVudW0oZW51bUNsYXNzOiBhbnkpOiBLZXlWYWx1ZVBhaXJbXSB7XHJcbiAgICAgICAvLyBjb25zdCBvYmplY3RpZmllZEVudW06IHsgcmVmTnVtYmVyOiBudW1iZXI7IG5hbWU6IHN0cmluZyB9W10gPSBbXTtcclxuICAgICAgICBjb25zdCBvYmplY3RpZmllZEVudW06IEtleVZhbHVlUGFpcltdID0gW107XHJcblxyXG4gICAgICAgIGZvciAoY29uc3QgZW51bUl0ZW0gaW4gZW51bUNsYXNzKSB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZW51bUNsYXNzW2VudW1JdGVtXSA9PT0gXCJudW1iZXJcIikge1xyXG4gICAgICAgICAgICAgICAgb2JqZWN0aWZpZWRFbnVtLnB1c2goe2tleTogPG51bWJlcj5lbnVtQ2xhc3NbZW51bUl0ZW1dLCB2YWx1ZTogZW51bUl0ZW19KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG9iamVjdGlmaWVkRW51bTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldFN0cmluZ0VudW1LZXlzQXJyYXkoZW51bVR5cGU6IG9iamVjdCk6IHN0cmluZ1tdIHtcclxuICAgICAgICBjb25zdCBtZW1iZXJzID0gT2JqZWN0LmtleXMoZW51bVR5cGUpO1xyXG4gICAgICAgIGlmICghRW51bVV0aWxzLmlzTnVtZXJhbChlbnVtVHlwZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG1lbWJlcnM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBrZXlzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgICAgIG1lbWJlcnMuZm9yRWFjaCgoeCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBwYXJzZWRWYWx1ZSA9IHBhcnNlSW50KHgsIDEwKTtcclxuICAgICAgICAgICAgaWYgKE51bWJlci5pc05hTihwYXJzZWRWYWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgIGtleXMucHVzaCh4KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBrZXlzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgIGJ1aWxkUHJvbWlzZURvbWFpblZhbHVlTGlzdEZyb21FbnVtQ2xhc3MoZW51bUNsYXNzOiBhbnksIGRpY3Rpb25hcnk6IERpY3Rpb25hcnlTZXJ2aWNlLCBrZXlzQXNEZXNjcmlwdGlvbjogYm9vbGVhbiA9IGZhbHNlKTogUHJvbWlzZTxDb0RvbWFpblZhbHVlW10+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZShFbnVtVXRpbHMuYnVpbGREb21haW5WYWx1ZUxpc3RGcm9tRW51bUNsYXNzKGVudW1DbGFzcywgZGljdGlvbmFyeSwga2V5c0FzRGVzY3JpcHRpb24pKTtcclxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgcmVqZWN0KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGJ1aWxkRG9tYWluVmFsdWVMaXN0RnJvbUVudW1DbGFzcyhlbnVtQ2xhc3M6IGFueSwgZGljdGlvbmFyeTogRGljdGlvbmFyeVNlcnZpY2UsIGtleXNBc0Rlc2NyaXB0aW9uOiBib29sZWFuID0gZmFsc2UpOiBDb0RvbWFpblZhbHVlW10ge1xyXG4gICAgICAgIGNvbnN0IGNvbGxlY3Rpb246IENvRG9tYWluVmFsdWVbXSA9IFtdO1xyXG5cclxuICAgICAgICBpZiAoa2V5c0FzRGVzY3JpcHRpb24pIHtcclxuICAgICAgICAgICAgY29uc3QgZW51bUtleXM6IHN0cmluZ1tdID0gRW51bVV0aWxzLmdldFN0cmluZ0VudW1LZXlzQXJyYXkoZW51bUNsYXNzKTtcclxuICAgICAgICAgICAgZW51bUtleXMuZm9yRWFjaCgoa2V5OiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGRvbWFpbk9iamVjdEZvckxvdjogQ29Eb21haW5WYWx1ZSA9IG5ldyBDb0RvbWFpblZhbHVlKCk7XHJcbiAgICAgICAgICAgICAgICBkb21haW5PYmplY3RGb3JMb3YuY29kZSA9IGVudW1DbGFzc1trZXldO1xyXG4gICAgICAgICAgICAgICAgZG9tYWluT2JqZWN0Rm9yTG92LmRlc2NyaXB0aW9uID0gZGljdGlvbmFyeS5nZXQoa2V5KTtcclxuICAgICAgICAgICAgICAgIGRvbWFpbk9iamVjdEZvckxvdi5zZXF1ZW5jZSA9IGluZGV4O1xyXG4gICAgICAgICAgICAgICAgY29sbGVjdGlvbi5wdXNoKGRvbWFpbk9iamVjdEZvckxvdik7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIEVudW1VdGlscy5TdHJpbmdFbnVtVG9BcnJheShlbnVtQ2xhc3MpLmZvckVhY2goKHN0ckVudW1WYWw6IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZG9tYWluT2JqZWN0Rm9yTG92OiBDb0RvbWFpblZhbHVlID0gbmV3IENvRG9tYWluVmFsdWUoKTtcclxuICAgICAgICAgICAgICAgIGRvbWFpbk9iamVjdEZvckxvdi5jb2RlID0gc3RyRW51bVZhbDtcclxuICAgICAgICAgICAgICAgIGRvbWFpbk9iamVjdEZvckxvdi5kZXNjcmlwdGlvbiA9IGRpY3Rpb25hcnkuZ2V0KHN0ckVudW1WYWwpO1xyXG4gICAgICAgICAgICAgICAgZG9tYWluT2JqZWN0Rm9yTG92LnNlcXVlbmNlID0gaW5kZXg7XHJcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uLnB1c2goZG9tYWluT2JqZWN0Rm9yTG92KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gY29sbGVjdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldEtleUJ5VmFsdWUoZW51bVR5cGU6IG9iamVjdCwgZW51bVZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhlbnVtVHlwZSlbT2JqZWN0LnZhbHVlcyhlbnVtVHlwZSkuaW5kZXhPZihlbnVtVmFsdWUpXTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBpc051bWVyYWwoZW51bVR5cGU6IG9iamVjdCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IG1lbWJlcnMgPSBPYmplY3Qua2V5cyhlbnVtVHlwZSk7XHJcbiAgICAgICAgaWYgKCFtZW1iZXJzLnNvbWUoKHgpID0+IHRydWUpKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGVudW1lcmF0aW9uIHR5cGUuXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgcGFyc2VkQ291bnQgPSAwO1xyXG4gICAgICAgIG1lbWJlcnMuZm9yRWFjaCgoeCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBwYXJzZWRWYWx1ZSA9IHBhcnNlSW50KHgsIDEwKTtcclxuICAgICAgICAgICAgaWYgKCFOdW1iZXIuaXNOYU4ocGFyc2VkVmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgICBwYXJzZWRDb3VudCsrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHBhcnNlZENvdW50ID09PSBtZW1iZXJzLmxlbmd0aCAvIDI7XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG4vLyBPdXRzaWRlIHRoZSBjbGFzcyBiZWNhdXNlIGl0J3MgdXNlZCB0byBnZW5lcmF0ZSBjb21wb25lbnQgc2VsZWN0b3JzLCBhbmQgYW90IGNhbid0IGNhbGwgc3RhdGljcy5cclxuZXhwb3J0IGZ1bmN0aW9uIFN0cmluZ0VudW1Ub1NpbmdsZVN0cmluZyhjbGF6ejogYW55KTogc3RyaW5nIHtcclxuICAgIGxldCBzdHI6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gICAgY29uc3Qga2V5czogc3RyaW5nW10gPSBPYmplY3Qua2V5cyhjbGF6eik7XHJcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwLCBsZW46IG51bWJlciA9IGtleXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgICBzdHIgKz0gY2xhenpba2V5c1tpXV0gKyBcIiwgXCI7XHJcbiAgICB9XHJcblxyXG4gICAgc3RyID0gU3RyaW5nVXRpbHMuUmVtb3ZlTGFzdENoYXJzKHN0ciwgMik7XHJcbiAgICByZXR1cm4gc3RyO1xyXG59XHJcbiJdfQ==
@@ -1,5 +1,5 @@
1
- // @returns true iff given value does not equals null and does not equal undefined
2
- export function notNill(value) {
3
- return value !== null && value !== undefined;
4
- }
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90LW5pbGwuZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvdXRpbHMvZnVuY3Rpb24vbm90LW5pbGwuZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsa0ZBQWtGO0FBQ2xGLE1BQU0sVUFBVSxPQUFPLENBQUMsS0FBVTtJQUM5QixPQUFPLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsQ0FBQztBQUNqRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHJldHVybnMgdHJ1ZSBpZmYgZ2l2ZW4gdmFsdWUgZG9lcyBub3QgZXF1YWxzIG51bGwgYW5kIGRvZXMgbm90IGVxdWFsIHVuZGVmaW5lZFxuZXhwb3J0IGZ1bmN0aW9uIG5vdE5pbGwodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkO1xufVxuIl19
1
+ // @returns true iff given value does not equals null and does not equal undefined
2
+ export function notNill(value) {
3
+ return value !== null && value !== undefined;
4
+ }
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90LW5pbGwuZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvdXRpbHMvZnVuY3Rpb24vbm90LW5pbGwuZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsa0ZBQWtGO0FBQ2xGLE1BQU0sVUFBVSxPQUFPLENBQUMsS0FBVTtJQUM5QixPQUFPLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsQ0FBQztBQUNqRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHJldHVybnMgdHJ1ZSBpZmYgZ2l2ZW4gdmFsdWUgZG9lcyBub3QgZXF1YWxzIG51bGwgYW5kIGRvZXMgbm90IGVxdWFsIHVuZGVmaW5lZFxyXG5leHBvcnQgZnVuY3Rpb24gbm90TmlsbCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZDtcclxufVxyXG4iXX0=
@@ -1,5 +1,5 @@
1
- // @returns true iff given value equals null or equals undefined
2
- export function isNill(value) {
3
- return value === null || value === undefined;
4
- }
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtbmlsbC5mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL2xpYi91dGlscy9pcy1uaWxsLmZ1bmN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdFQUFnRTtBQUNoRSxNQUFNLFVBQVUsTUFBTSxDQUFDLEtBQVU7SUFDN0IsT0FBTyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLENBQUM7QUFDakQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEByZXR1cm5zIHRydWUgaWZmIGdpdmVuIHZhbHVlIGVxdWFscyBudWxsIG9yIGVxdWFscyB1bmRlZmluZWRcbmV4cG9ydCBmdW5jdGlvbiBpc05pbGwodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkO1xufSJdfQ==
1
+ // @returns true iff given value equals null or equals undefined
2
+ export function isNill(value) {
3
+ return value === null || value === undefined;
4
+ }
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtbmlsbC5mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL2xpYi91dGlscy9pcy1uaWxsLmZ1bmN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdFQUFnRTtBQUNoRSxNQUFNLFVBQVUsTUFBTSxDQUFDLEtBQVU7SUFDN0IsT0FBTyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLENBQUM7QUFDakQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEByZXR1cm5zIHRydWUgaWZmIGdpdmVuIHZhbHVlIGVxdWFscyBudWxsIG9yIGVxdWFscyB1bmRlZmluZWRcclxuZXhwb3J0IGZ1bmN0aW9uIGlzTmlsbCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZDtcclxufSJdfQ==
@@ -1,41 +1,41 @@
1
- // Static utility functions holder related to Maps.
2
- export class MapUtils {
3
- /**
4
- * Returns the first key from given map, for which the value filter holds true. Basically a reverse Map.get(key) function.
5
- * @param map
6
- * @param valueFilter For the first value that returns true for this filter functions, its key will be returned.
7
- */
8
- static FindKeyByValue(map, valueFilter) {
9
- if (!map || !valueFilter) {
10
- return undefined;
11
- }
12
- let foundKey = undefined;
13
- let keyWasFound = false;
14
- map.forEach((value, key) => {
15
- if (!keyWasFound && valueFilter.call(this, value)) {
16
- foundKey = key;
17
- keyWasFound = true;
18
- }
19
- });
20
- return foundKey;
21
- }
22
- /**
23
- * Inserts given arrayEntry into given map, under given mapKey. What's special here, is that a NEW map entry is created with an array
24
- * containing the single [arrayEntry] item, if no entry yet existed.
25
- * @param map
26
- * @param mapKey
27
- * @param arrayEntry
28
- */
29
- static InsertArrayItemIntoMap(map, mapKey, arrayEntry) {
30
- if (!map) {
31
- return;
32
- }
33
- if (!map.has(mapKey)) {
34
- map.set(mapKey, [arrayEntry]);
35
- }
36
- else {
37
- map.get(mapKey).push(arrayEntry);
38
- }
39
- }
40
- }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL3V0aWxzL21hcC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtREFBbUQ7QUFDbkQsTUFBTSxPQUFPLFFBQVE7SUFFakI7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxjQUFjLENBQU8sR0FBYyxFQUFFLFdBQWtDO1FBRWpGLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDdEIsT0FBTyxTQUFTLENBQUM7U0FDcEI7UUFFRCxJQUFJLFFBQVEsR0FBTSxTQUFTLENBQUM7UUFDNUIsSUFBSSxXQUFXLEdBQVksS0FBSyxDQUFDO1FBQ2pDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFRLEVBQUUsR0FBTSxFQUFFLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFdBQVcsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRTtnQkFDL0MsUUFBUSxHQUFHLEdBQUcsQ0FBQztnQkFDZixXQUFXLEdBQUcsSUFBSSxDQUFDO2FBQ3RCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLHNCQUFzQixDQUFDLEdBQWtCLEVBQUUsTUFBVyxFQUFFLFVBQWU7UUFDakYsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNOLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2xCLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztTQUNqQzthQUFNO1lBQ0gsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDcEM7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTdGF0aWMgdXRpbGl0eSBmdW5jdGlvbnMgaG9sZGVyIHJlbGF0ZWQgdG8gTWFwcy5cbmV4cG9ydCBjbGFzcyBNYXBVdGlscyB7XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBmaXJzdCBrZXkgZnJvbSBnaXZlbiBtYXAsIGZvciB3aGljaCB0aGUgdmFsdWUgZmlsdGVyIGhvbGRzIHRydWUuIEJhc2ljYWxseSBhIHJldmVyc2UgTWFwLmdldChrZXkpIGZ1bmN0aW9uLlxuICAgICAqIEBwYXJhbSBtYXBcbiAgICAgKiBAcGFyYW0gdmFsdWVGaWx0ZXIgRm9yIHRoZSBmaXJzdCB2YWx1ZSB0aGF0IHJldHVybnMgdHJ1ZSBmb3IgdGhpcyBmaWx0ZXIgZnVuY3Rpb25zLCBpdHMga2V5IHdpbGwgYmUgcmV0dXJuZWQuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBGaW5kS2V5QnlWYWx1ZTxLLCBWPihtYXA6IE1hcDxLLCBWPiwgdmFsdWVGaWx0ZXI6ICh2YWx1ZTogVikgPT4gYm9vbGVhbik6IEsge1xuXG4gICAgICAgIGlmICghbWFwIHx8ICF2YWx1ZUZpbHRlcikge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBmb3VuZEtleTogSyA9IHVuZGVmaW5lZDtcbiAgICAgICAgbGV0IGtleVdhc0ZvdW5kOiBib29sZWFuID0gZmFsc2U7XG4gICAgICAgIG1hcC5mb3JFYWNoKCh2YWx1ZTogViwga2V5OiBLKSA9PiB7XG4gICAgICAgICAgICBpZiAoIWtleVdhc0ZvdW5kICYmIHZhbHVlRmlsdGVyLmNhbGwodGhpcywgdmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgZm91bmRLZXkgPSBrZXk7XG4gICAgICAgICAgICAgICAga2V5V2FzRm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGZvdW5kS2V5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluc2VydHMgZ2l2ZW4gYXJyYXlFbnRyeSBpbnRvIGdpdmVuIG1hcCwgdW5kZXIgZ2l2ZW4gbWFwS2V5LiBXaGF0J3Mgc3BlY2lhbCBoZXJlLCBpcyB0aGF0IGEgTkVXIG1hcCBlbnRyeSBpcyBjcmVhdGVkIHdpdGggYW4gYXJyYXlcbiAgICAgKiBjb250YWluaW5nIHRoZSBzaW5nbGUgW2FycmF5RW50cnldIGl0ZW0sIGlmIG5vIGVudHJ5IHlldCBleGlzdGVkLlxuICAgICAqIEBwYXJhbSBtYXBcbiAgICAgKiBAcGFyYW0gbWFwS2V5XG4gICAgICogQHBhcmFtIGFycmF5RW50cnlcbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIEluc2VydEFycmF5SXRlbUludG9NYXAobWFwOiBNYXA8YW55LCBhbnk+LCBtYXBLZXk6IGFueSwgYXJyYXlFbnRyeTogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICghbWFwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIW1hcC5oYXMobWFwS2V5KSkge1xuICAgICAgICAgICAgbWFwLnNldChtYXBLZXksIFthcnJheUVudHJ5XSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtYXAuZ2V0KG1hcEtleSkucHVzaChhcnJheUVudHJ5KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
1
+ // Static utility functions holder related to Maps.
2
+ export class MapUtils {
3
+ /**
4
+ * Returns the first key from given map, for which the value filter holds true. Basically a reverse Map.get(key) function.
5
+ * @param map
6
+ * @param valueFilter For the first value that returns true for this filter functions, its key will be returned.
7
+ */
8
+ static FindKeyByValue(map, valueFilter) {
9
+ if (!map || !valueFilter) {
10
+ return undefined;
11
+ }
12
+ let foundKey = undefined;
13
+ let keyWasFound = false;
14
+ map.forEach((value, key) => {
15
+ if (!keyWasFound && valueFilter.call(this, value)) {
16
+ foundKey = key;
17
+ keyWasFound = true;
18
+ }
19
+ });
20
+ return foundKey;
21
+ }
22
+ /**
23
+ * Inserts given arrayEntry into given map, under given mapKey. What's special here, is that a NEW map entry is created with an array
24
+ * containing the single [arrayEntry] item, if no entry yet existed.
25
+ * @param map
26
+ * @param mapKey
27
+ * @param arrayEntry
28
+ */
29
+ static InsertArrayItemIntoMap(map, mapKey, arrayEntry) {
30
+ if (!map) {
31
+ return;
32
+ }
33
+ if (!map.has(mapKey)) {
34
+ map.set(mapKey, [arrayEntry]);
35
+ }
36
+ else {
37
+ map.get(mapKey).push(arrayEntry);
38
+ }
39
+ }
40
+ }
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL3V0aWxzL21hcC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtREFBbUQ7QUFDbkQsTUFBTSxPQUFPLFFBQVE7SUFFakI7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxjQUFjLENBQU8sR0FBYyxFQUFFLFdBQWtDO1FBRWpGLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDdEIsT0FBTyxTQUFTLENBQUM7U0FDcEI7UUFFRCxJQUFJLFFBQVEsR0FBTSxTQUFTLENBQUM7UUFDNUIsSUFBSSxXQUFXLEdBQVksS0FBSyxDQUFDO1FBQ2pDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFRLEVBQUUsR0FBTSxFQUFFLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFdBQVcsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRTtnQkFDL0MsUUFBUSxHQUFHLEdBQUcsQ0FBQztnQkFDZixXQUFXLEdBQUcsSUFBSSxDQUFDO2FBQ3RCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLHNCQUFzQixDQUFDLEdBQWtCLEVBQUUsTUFBVyxFQUFFLFVBQWU7UUFDakYsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNOLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2xCLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztTQUNqQzthQUFNO1lBQ0gsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDcEM7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTdGF0aWMgdXRpbGl0eSBmdW5jdGlvbnMgaG9sZGVyIHJlbGF0ZWQgdG8gTWFwcy5cclxuZXhwb3J0IGNsYXNzIE1hcFV0aWxzIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdGhlIGZpcnN0IGtleSBmcm9tIGdpdmVuIG1hcCwgZm9yIHdoaWNoIHRoZSB2YWx1ZSBmaWx0ZXIgaG9sZHMgdHJ1ZS4gQmFzaWNhbGx5IGEgcmV2ZXJzZSBNYXAuZ2V0KGtleSkgZnVuY3Rpb24uXHJcbiAgICAgKiBAcGFyYW0gbWFwXHJcbiAgICAgKiBAcGFyYW0gdmFsdWVGaWx0ZXIgRm9yIHRoZSBmaXJzdCB2YWx1ZSB0aGF0IHJldHVybnMgdHJ1ZSBmb3IgdGhpcyBmaWx0ZXIgZnVuY3Rpb25zLCBpdHMga2V5IHdpbGwgYmUgcmV0dXJuZWQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgRmluZEtleUJ5VmFsdWU8SywgVj4obWFwOiBNYXA8SywgVj4sIHZhbHVlRmlsdGVyOiAodmFsdWU6IFYpID0+IGJvb2xlYW4pOiBLIHtcclxuXHJcbiAgICAgICAgaWYgKCFtYXAgfHwgIXZhbHVlRmlsdGVyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgZm91bmRLZXk6IEsgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgbGV0IGtleVdhc0ZvdW5kOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAgICAgbWFwLmZvckVhY2goKHZhbHVlOiBWLCBrZXk6IEspID0+IHtcclxuICAgICAgICAgICAgaWYgKCFrZXlXYXNGb3VuZCAmJiB2YWx1ZUZpbHRlci5jYWxsKHRoaXMsIHZhbHVlKSkge1xyXG4gICAgICAgICAgICAgICAgZm91bmRLZXkgPSBrZXk7XHJcbiAgICAgICAgICAgICAgICBrZXlXYXNGb3VuZCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gZm91bmRLZXk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbnNlcnRzIGdpdmVuIGFycmF5RW50cnkgaW50byBnaXZlbiBtYXAsIHVuZGVyIGdpdmVuIG1hcEtleS4gV2hhdCdzIHNwZWNpYWwgaGVyZSwgaXMgdGhhdCBhIE5FVyBtYXAgZW50cnkgaXMgY3JlYXRlZCB3aXRoIGFuIGFycmF5XHJcbiAgICAgKiBjb250YWluaW5nIHRoZSBzaW5nbGUgW2FycmF5RW50cnldIGl0ZW0sIGlmIG5vIGVudHJ5IHlldCBleGlzdGVkLlxyXG4gICAgICogQHBhcmFtIG1hcFxyXG4gICAgICogQHBhcmFtIG1hcEtleVxyXG4gICAgICogQHBhcmFtIGFycmF5RW50cnlcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBJbnNlcnRBcnJheUl0ZW1JbnRvTWFwKG1hcDogTWFwPGFueSwgYW55PiwgbWFwS2V5OiBhbnksIGFycmF5RW50cnk6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGlmICghbWFwKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghbWFwLmhhcyhtYXBLZXkpKSB7XHJcbiAgICAgICAgICAgIG1hcC5zZXQobWFwS2V5LCBbYXJyYXlFbnRyeV0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIG1hcC5nZXQobWFwS2V5KS5wdXNoKGFycmF5RW50cnkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=