@colijnit/sharedcomponents 1.0.62 → 1.0.64

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (479) hide show
  1. package/README.md +24 -24
  2. package/bundles/colijnit-sharedcomponents.umd.js +9888 -9855
  3. package/bundles/colijnit-sharedcomponents.umd.js.map +1 -1
  4. package/colijnit-sharedcomponents.d.ts +91 -91
  5. package/colijnit-sharedcomponents.metadata.json +1 -1
  6. package/esm2015/colijnit-sharedcomponents.js +91 -91
  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/stock-location.component.js +251 -240
  90. package/esm2015/lib/components/stock/components/stock-prognose/stock-prognose.component.js +52 -52
  91. package/esm2015/lib/components/stock/components/stock-tab/stock-tab.component.js +39 -39
  92. package/esm2015/lib/components/stock/localization/translation.js +72 -63
  93. package/esm2015/lib/components/stock/stock-history-tabs/stock-history-tabs.component.js +33 -33
  94. package/esm2015/lib/components/stock/stock-information/stock-information.component.js +48 -49
  95. package/esm2015/lib/components/stock/stock-information-grid/stock-information-grid.component.js +457 -457
  96. package/esm2015/lib/components/stock/stock-tabs/stock-tabs.component.js +243 -243
  97. package/esm2015/lib/components/stock/stock-transfer/co-drop-down-list-fields.interface.js +2 -2
  98. package/esm2015/lib/components/stock/stock-transfer/stock-change-amount.component.js +72 -72
  99. package/esm2015/lib/components/stock/stock-transfer/stock-transfer.component.js +160 -149
  100. package/esm2015/lib/components/stock/stock.component.js +237 -197
  101. package/esm2015/lib/components/stock/stock.module.js +80 -80
  102. package/esm2015/lib/components/stock-statusbar/stock-statusbar.component.js +23 -23
  103. package/esm2015/lib/components/stock-statusbar/stock-statusbar.module.js +19 -19
  104. package/esm2015/lib/components/tab-bar/tab-bar.component.js +90 -90
  105. package/esm2015/lib/components/tab-bar/tab-bar.module.js +21 -21
  106. package/esm2015/lib/components/tab-bar/tab.interface.js +2 -2
  107. package/esm2015/lib/components/tile-renderer/tile-render.component.js +80 -80
  108. package/esm2015/lib/components/tile-renderer/tile-render.module.js +26 -26
  109. package/esm2015/lib/decorator/input-boolean.decorator.js +34 -34
  110. package/esm2015/lib/enum/calendar-view.enum.js +9 -9
  111. package/esm2015/lib/enum/document-email-report.enum.js +18 -18
  112. package/esm2015/lib/enum/domain-multiple-name.enum.js +13 -13
  113. package/esm2015/lib/enum/file-type.js +14 -14
  114. package/esm2015/lib/enum/files-upload-config-objects.js +3 -3
  115. package/esm2015/lib/enum/gauge-color.enum.js +10 -10
  116. package/esm2015/lib/enum/icon.enum.js +48 -44
  117. package/esm2015/lib/enum/internal-param.enum.js +38 -38
  118. package/esm2015/lib/enum/keyboard-code.enum.js +32 -32
  119. package/esm2015/lib/enum/language-code.enum.js +8 -8
  120. package/esm2015/lib/enum/month.enum.js +17 -17
  121. package/esm2015/lib/enum/read-write-access-config-names.enum.js +2 -2
  122. package/esm2015/lib/enum/table-name.enum.js +86 -86
  123. package/esm2015/lib/enum/tag-category.enum.js +22 -22
  124. package/esm2015/lib/enum/tags-component-config-names.js +2 -2
  125. package/esm2015/lib/enum/thumb-three-way-state.js +19 -19
  126. package/esm2015/lib/enum/tile-size-type.js +7 -7
  127. package/esm2015/lib/enum/time-period.enum.js +11 -11
  128. package/esm2015/lib/event/co-drag-event.js +2 -2
  129. package/esm2015/lib/event/co-drop-event.js +2 -2
  130. package/esm2015/lib/interface/key-value-pair.js +2 -2
  131. package/esm2015/lib/interface/operation-callback-simple-function.js +4 -4
  132. package/esm2015/lib/localization/localization.module.js +19 -19
  133. package/esm2015/lib/localization/localize.pipe.js +26 -26
  134. package/esm2015/lib/localization/localize.service.js +30 -30
  135. package/esm2015/lib/localization/translation.js +3 -3
  136. package/esm2015/lib/model/agenda-event-per-day.model.js +6 -6
  137. package/esm2015/lib/model/agenda-event.model.js +8 -8
  138. package/esm2015/lib/model/agenda-null-objects.js +11 -11
  139. package/esm2015/lib/model/constant/all-months.js +17 -17
  140. package/esm2015/lib/model/date-range.js +5 -5
  141. package/esm2015/lib/model/day.model.js +7 -7
  142. package/esm2015/lib/model/icon-svg.js +47 -43
  143. package/esm2015/lib/model/month.model.js +11 -11
  144. package/esm2015/lib/model/send-method.js +8 -8
  145. package/esm2015/lib/model/settings.js +4 -4
  146. package/esm2015/lib/model/tag-tree-item.bo.js +16 -16
  147. package/esm2015/lib/model/time-window.bo.js +26 -26
  148. package/esm2015/lib/model/tree-object.js +15 -15
  149. package/esm2015/lib/model/week.model.js +6 -6
  150. package/esm2015/lib/model/weekday.model.js +10 -10
  151. package/esm2015/lib/pipe/array-number.pipe.js +15 -15
  152. package/esm2015/lib/pipe/file-type-image.pipe.js +51 -51
  153. package/esm2015/lib/pipe/master-pipes.js +9 -9
  154. package/esm2015/lib/pipe/ucfirst.pipe.js +16 -16
  155. package/esm2015/lib/service/dictionary.service.js +76 -76
  156. package/esm2015/lib/service/drag-drop.service.js +365 -365
  157. package/esm2015/lib/service/icon-cache.service.js +51 -51
  158. package/esm2015/lib/service/options.service.js +48 -48
  159. package/esm2015/lib/service/shared-connector.service.js +433 -433
  160. package/esm2015/lib/service/shared.service.js +60 -60
  161. package/esm2015/lib/service/stock.service.js +110 -110
  162. package/esm2015/lib/utils/array-utils.js +202 -202
  163. package/esm2015/lib/utils/calendar.utils.js +68 -68
  164. package/esm2015/lib/utils/check-precision-and-scale-result.js +2 -2
  165. package/esm2015/lib/utils/check-within-stepped-bounds-result.js +2 -2
  166. package/esm2015/lib/utils/co-document-shared-field-logic.js +50 -50
  167. package/esm2015/lib/utils/date-utils.js +264 -264
  168. package/esm2015/lib/utils/enum-utils.js +128 -128
  169. package/esm2015/lib/utils/function/not-nill.function.js +5 -5
  170. package/esm2015/lib/utils/is-nill.function.js +5 -5
  171. package/esm2015/lib/utils/map-utils.js +41 -41
  172. package/esm2015/lib/utils/number-utils.js +390 -390
  173. package/esm2015/lib/utils/object-utils.js +278 -278
  174. package/esm2015/lib/utils/ref-code-utils.js +49 -49
  175. package/esm2015/lib/utils/string-utils.js +93 -93
  176. package/esm2015/public-api.js +31 -31
  177. package/fesm2015/colijnit-sharedcomponents.js +10411 -10335
  178. package/fesm2015/colijnit-sharedcomponents.js.map +1 -1
  179. package/lib/assets/dictionary/text.properties.d.ts +3 -3
  180. package/lib/businessobject/build-images-and-documentation-result.d.ts +5 -5
  181. package/lib/businessobject/co-document-right.bo.d.ts +6 -6
  182. package/lib/businessobject/drag-drop-container-element.d.ts +6 -6
  183. package/lib/businessobject/drag-drop-container.d.ts +6 -6
  184. package/lib/components/access/read-write-access.scss +25 -25
  185. package/lib/components/access/style/_layout.scss +23 -23
  186. package/lib/components/access/style/_material-definition.scss +12 -12
  187. package/lib/components/access/style/_theme.scss +4 -4
  188. package/lib/components/access/style/material.scss +4 -4
  189. package/lib/components/activity-list/activity-list.component.d.ts +33 -33
  190. package/lib/components/activity-list/activity-list.module.d.ts +2 -2
  191. package/lib/components/activity-list/style/_layout.scss +68 -68
  192. package/lib/components/activity-list/style/_theme.scss +4 -4
  193. package/lib/components/activity-list/style/material.scss +4 -4
  194. package/lib/components/app-file-dropzone/app-file-dropzone.component.d.ts +14 -14
  195. package/lib/components/app-file-dropzone/app-file-dropzone.module.d.ts +2 -2
  196. package/lib/components/app-file-dropzone/style/_layout.scss +61 -61
  197. package/lib/components/app-file-dropzone/style/_theme.scss +4 -4
  198. package/lib/components/app-file-dropzone/style/material.scss +4 -4
  199. package/lib/components/date-planning/component/agenda/agenda-base-view.component.d.ts +21 -21
  200. package/lib/components/date-planning/component/agenda/agenda-day-view.component.d.ts +7 -7
  201. package/lib/components/date-planning/component/agenda/agenda-event.component.d.ts +18 -18
  202. package/lib/components/date-planning/component/agenda/agenda-events.component.d.ts +13 -13
  203. package/lib/components/date-planning/component/agenda/agenda-half-hour-cell.component.d.ts +18 -18
  204. package/lib/components/date-planning/component/agenda/agenda-header.component.d.ts +48 -48
  205. package/lib/components/date-planning/component/agenda/agenda-hour-cell.component.d.ts +9 -9
  206. package/lib/components/date-planning/component/agenda/agenda-hour-view-labels.component.d.ts +8 -8
  207. package/lib/components/date-planning/component/agenda/agenda-hour-view.component.d.ts +7 -7
  208. package/lib/components/date-planning/component/agenda/agenda-month-view.component.d.ts +10 -10
  209. package/lib/components/date-planning/component/agenda/agenda-select-event.component.d.ts +12 -12
  210. package/lib/components/date-planning/component/agenda/agenda-view.component.d.ts +12 -12
  211. package/lib/components/date-planning/component/agenda/agenda-week-select-view.component.d.ts +10 -10
  212. package/lib/components/date-planning/component/agenda/agenda-week-view.component.d.ts +9 -9
  213. package/lib/components/date-planning/component/agenda/style/_layout.scss +443 -443
  214. package/lib/components/date-planning/component/agenda/style/_material-definition.scss +12 -12
  215. package/lib/components/date-planning/component/agenda/style/_theme.scss +7 -7
  216. package/lib/components/date-planning/component/agenda/style/material.scss +5 -5
  217. package/lib/components/date-planning/component/agenda/view-select.component.d.ts +11 -11
  218. package/lib/components/date-planning/component/calendar/calendar-all-months.component.d.ts +9 -9
  219. package/lib/components/date-planning/component/calendar/calendar-all-years.component.d.ts +9 -9
  220. package/lib/components/date-planning/component/calendar/calendar-header.component.d.ts +23 -23
  221. package/lib/components/date-planning/component/calendar/calendar-view.component.d.ts +31 -31
  222. package/lib/components/date-planning/component/calendar/calendar.component.d.ts +10 -10
  223. package/lib/components/date-planning/component/calendar/style/_layout.scss +167 -167
  224. package/lib/components/date-planning/component/calendar/style/_material-definition.scss +7 -7
  225. package/lib/components/date-planning/component/calendar/style/_theme.scss +7 -7
  226. package/lib/components/date-planning/component/calendar/style/material.scss +5 -5
  227. package/lib/components/date-planning/date-planning.component.d.ts +28 -28
  228. package/lib/components/date-planning/date-planning.module.d.ts +2 -2
  229. package/lib/components/date-planning/style/_layout.scss +45 -45
  230. package/lib/components/date-planning/style/_theme.scss +5 -5
  231. package/lib/components/date-planning/style/material.scss +7 -7
  232. package/lib/components/docsign/component/signature/signature.component.d.ts +16 -16
  233. package/lib/components/docsign/component/signature/style/_layout.scss +40 -40
  234. package/lib/components/docsign/component/signature/style/_material-definition.scss +11 -11
  235. package/lib/components/docsign/component/signature/style/_theme.scss +13 -13
  236. package/lib/components/docsign/component/signature/style/material.scss +4 -4
  237. package/lib/components/docsign/component/signatures/signatures.component.d.ts +12 -12
  238. package/lib/components/docsign/component/signatures/style/_layout.scss +13 -13
  239. package/lib/components/docsign/component/signatures/style/_material-definition.scss +1 -1
  240. package/lib/components/docsign/component/signatures/style/_theme.scss +4 -4
  241. package/lib/components/docsign/component/signatures/style/material.scss +5 -5
  242. package/lib/components/docsign/docsign.component.d.ts +94 -94
  243. package/lib/components/docsign/docsign.module.d.ts +2 -2
  244. package/lib/components/docsign/style/_layout.scss +40 -40
  245. package/lib/components/docsign/style/_material-definition.scss +12 -12
  246. package/lib/components/docsign/style/_theme.scss +12 -12
  247. package/lib/components/docsign/style/material.scss +15 -15
  248. package/lib/components/file-upload/file-upload.component.d.ts +42 -42
  249. package/lib/components/file-upload/file-upload.module.d.ts +2 -2
  250. package/lib/components/file-upload/style/_layout.scss +59 -59
  251. package/lib/components/file-upload/style/_material-definition.scss +2 -2
  252. package/lib/components/file-upload/style/_theme.scss +4 -4
  253. package/lib/components/file-upload/style/material.scss +4 -4
  254. package/lib/components/file-upload-popup/file-upload-popup.component.d.ts +75 -75
  255. package/lib/components/file-upload-popup/file-upload-popup.module.d.ts +2 -2
  256. package/lib/components/file-upload-popup/style/_layout.scss +48 -48
  257. package/lib/components/file-upload-popup/style/_material-definition.scss +2 -2
  258. package/lib/components/file-upload-popup/style/_theme.scss +5 -5
  259. package/lib/components/file-upload-popup/style/material.scss +4 -4
  260. package/lib/components/files-upload/components/base-file-upload.component.d.ts +98 -98
  261. package/lib/components/files-upload/components/drag-drop-container.component.d.ts +34 -34
  262. package/lib/components/files-upload/files-upload.component.d.ts +32 -32
  263. package/lib/components/files-upload/files-upload.module.d.ts +2 -2
  264. package/lib/components/files-upload/style/_layout.scss +49 -49
  265. package/lib/components/files-upload/style/_theme.scss +5 -5
  266. package/lib/components/files-upload/style/material.scss +4 -4
  267. package/lib/components/image-display/image-display.component.d.ts +14 -14
  268. package/lib/components/image-display/image-display.module.d.ts +2 -2
  269. package/lib/components/image-display/style/_layout.scss +56 -56
  270. package/lib/components/image-display/style/_material-definition.scss +4 -4
  271. package/lib/components/image-display/style/_theme.scss +6 -6
  272. package/lib/components/image-display/style/material.scss +3 -3
  273. package/lib/components/key-pad/key-pad.component.d.ts +38 -38
  274. package/lib/components/key-pad/key-pad.module.d.ts +2 -2
  275. package/lib/components/key-pad/style/_layout.scss +160 -160
  276. package/lib/components/key-pad/style/_material-definition.scss +19 -19
  277. package/lib/components/key-pad/style/_theme.scss +35 -35
  278. package/lib/components/key-pad/style/material.scss +4 -4
  279. package/lib/components/layout-switcher/layout-switcher.component.d.ts +16 -16
  280. package/lib/components/layout-switcher/layout-switcher.module.d.ts +2 -2
  281. package/lib/components/layout-switcher/style/_layout.scss +94 -94
  282. package/lib/components/layout-switcher/style/_material-definition.scss +16 -16
  283. package/lib/components/layout-switcher/style/_theme.scss +4 -4
  284. package/lib/components/layout-switcher/style/material.scss +6 -6
  285. package/lib/components/linear-gauge/co-linear-gauge.component.d.ts +11 -11
  286. package/lib/components/linear-gauge/co-linear-gauge.module.d.ts +2 -2
  287. package/lib/components/linear-gauge/style/_layout.scss +20 -20
  288. package/lib/components/linear-gauge/style/_material-definition.scss +8 -8
  289. package/lib/components/linear-gauge/style/_theme.scss +4 -4
  290. package/lib/components/linear-gauge/style/material.scss +6 -6
  291. package/lib/components/login/style/_layout.scss +57 -57
  292. package/lib/components/login/style/_material-definition.scss +23 -23
  293. package/lib/components/login/style/_theme.scss +7 -7
  294. package/lib/components/login/style/material.scss +4 -4
  295. package/lib/components/multi-property-toggler/multiple-property-toggler.component.d.ts +27 -27
  296. package/lib/components/multi-property-toggler/multiple-property-toggler.module.d.ts +2 -2
  297. package/lib/components/multi-property-toggler/style/_layout.scss +24 -24
  298. package/lib/components/multi-property-toggler/style/_theme.scss +4 -4
  299. package/lib/components/multi-property-toggler/style/material.scss +4 -4
  300. package/lib/components/screen-config-generator/style/_layout.scss +95 -95
  301. package/lib/components/screen-config-generator/style/_theme.scss +4 -4
  302. package/lib/components/screen-config-generator/style/material.scss +4 -4
  303. package/lib/components/send-method-dialog/components/layout-selection/layout-selection.component.d.ts +19 -19
  304. package/lib/components/send-method-dialog/components/layout-selection/layout-selection.module.d.ts +2 -2
  305. package/lib/components/send-method-dialog/components/layout-selection/style/_layout.scss +44 -44
  306. package/lib/components/send-method-dialog/components/layout-selection/style/_material-definition.scss +19 -19
  307. package/lib/components/send-method-dialog/components/layout-selection/style/_theme.scss +17 -17
  308. package/lib/components/send-method-dialog/components/layout-selection/style/material.scss +4 -4
  309. package/lib/components/send-method-dialog/components/printer-selection/printer-selection.component.d.ts +19 -19
  310. package/lib/components/send-method-dialog/components/printer-selection/printer-selection.module.d.ts +2 -2
  311. package/lib/components/send-method-dialog/components/printer-selection/style/_layout.scss +69 -69
  312. package/lib/components/send-method-dialog/components/printer-selection/style/_material-definition.scss +37 -37
  313. package/lib/components/send-method-dialog/components/printer-selection/style/_theme.scss +23 -23
  314. package/lib/components/send-method-dialog/components/printer-selection/style/material.scss +4 -4
  315. package/lib/components/send-method-dialog/components/send-method-email/send-method-email.component.d.ts +14 -14
  316. package/lib/components/send-method-dialog/components/send-method-email/send-method-email.module.d.ts +2 -2
  317. package/lib/components/send-method-dialog/components/send-method-email/style/_layout.scss +29 -29
  318. package/lib/components/send-method-dialog/components/send-method-email/style/_material-definition.scss +8 -8
  319. package/lib/components/send-method-dialog/components/send-method-email/style/_theme.scss +5 -5
  320. package/lib/components/send-method-dialog/components/send-method-email/style/material.scss +4 -4
  321. package/lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.component.d.ts +8 -8
  322. package/lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.module.d.ts +2 -2
  323. package/lib/components/send-method-dialog/components/send-method-pdf/style/_layout.scss +25 -25
  324. package/lib/components/send-method-dialog/components/send-method-pdf/style/_material-definition.scss +5 -5
  325. package/lib/components/send-method-dialog/components/send-method-pdf/style/_theme.scss +5 -5
  326. package/lib/components/send-method-dialog/components/send-method-pdf/style/material.scss +4 -4
  327. package/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.component.d.ts +13 -13
  328. package/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.module.d.ts +2 -2
  329. package/lib/components/send-method-dialog/components/send-method-printer/style/_layout.scss +30 -30
  330. package/lib/components/send-method-dialog/components/send-method-printer/style/_material-definition.scss +5 -5
  331. package/lib/components/send-method-dialog/components/send-method-printer/style/_theme.scss +5 -5
  332. package/lib/components/send-method-dialog/components/send-method-printer/style/material.scss +4 -4
  333. package/lib/components/send-method-dialog/components/signature-button/signature-button.component.d.ts +12 -12
  334. package/lib/components/send-method-dialog/components/signature-button/signature-button.module.d.ts +2 -2
  335. package/lib/components/send-method-dialog/components/signature-button/style/_layout.scss +28 -28
  336. package/lib/components/send-method-dialog/components/signature-button/style/_material-definition.scss +8 -8
  337. package/lib/components/send-method-dialog/components/signature-button/style/_theme.scss +4 -4
  338. package/lib/components/send-method-dialog/components/signature-button/style/material.scss +4 -4
  339. package/lib/components/send-method-dialog/model/email-address-viewmodel.d.ts +5 -5
  340. package/lib/components/send-method-dialog/send-method-dialog.component.d.ts +71 -71
  341. package/lib/components/send-method-dialog/send-method-dialog.module.d.ts +2 -2
  342. package/lib/components/send-method-dialog/send-method-params.interface.d.ts +13 -13
  343. package/lib/components/send-method-dialog/service/send-method.service.d.ts +23 -23
  344. package/lib/components/send-method-dialog/style/_layout.scss +165 -165
  345. package/lib/components/send-method-dialog/style/_material-definition.scss +48 -48
  346. package/lib/components/send-method-dialog/style/_theme.scss +33 -33
  347. package/lib/components/send-method-dialog/style/material.scss +10 -10
  348. package/lib/components/simple-tags/simple-tags.component.d.ts +31 -31
  349. package/lib/components/simple-tags/simple-tags.module.d.ts +2 -2
  350. package/lib/components/simple-tags/style/_layout.scss +272 -272
  351. package/lib/components/simple-tags/style/_material-definition.scss +39 -39
  352. package/lib/components/simple-tags/style/_theme.scss +4 -4
  353. package/lib/components/simple-tags/style/material.scss +4 -4
  354. package/lib/components/statusbar/statusbar-popup.component.d.ts +21 -21
  355. package/lib/components/statusbar/statusbar.component.d.ts +26 -26
  356. package/lib/components/statusbar/statusbar.module.d.ts +2 -2
  357. package/lib/components/statusbar/style/_layout.scss +70 -70
  358. package/lib/components/statusbar/style/_material-definition.scss +23 -23
  359. package/lib/components/statusbar/style/_theme.scss +13 -13
  360. package/lib/components/statusbar/style/material.scss +5 -5
  361. package/lib/components/stock/components/allocation-stock-history/allocation-stock-history.component.d.ts +9 -9
  362. package/lib/components/stock/components/order-commission-stock-history/order-commission-stock-history.component.d.ts +9 -9
  363. package/lib/components/stock/components/order-stock-history/order-stock-history.component.d.ts +9 -9
  364. package/lib/components/stock/components/order-stock-tab/order-stock-tab.component.d.ts +11 -11
  365. package/lib/components/stock/components/order-supply-stock-history/order-supply-stock-history.component.d.ts +9 -9
  366. package/lib/components/stock/components/order-tab/order-tab.component.d.ts +20 -20
  367. package/lib/components/stock/components/stock-history/stock-history.component.d.ts +13 -13
  368. package/lib/components/stock/components/stock-location/stock-location.component.d.ts +52 -50
  369. package/lib/components/stock/components/stock-prognose/stock-prognose.component.d.ts +11 -11
  370. package/lib/components/stock/components/stock-tab/stock-tab.component.d.ts +7 -7
  371. package/lib/components/stock/localization/translation.d.ts +69 -60
  372. package/lib/components/stock/stock-history-tabs/stock-history-tabs.component.d.ts +7 -7
  373. package/lib/components/stock/stock-information/stock-information.component.d.ts +9 -9
  374. package/lib/components/stock/stock-information-grid/stock-information-grid.component.d.ts +75 -75
  375. package/lib/components/stock/stock-tabs/stock-tabs.component.d.ts +56 -56
  376. package/lib/components/stock/stock-transfer/co-drop-down-list-fields.interface.d.ts +4 -4
  377. package/lib/components/stock/stock-transfer/stock-change-amount.component.d.ts +18 -18
  378. package/lib/components/stock/stock-transfer/stock-transfer.component.d.ts +38 -42
  379. package/lib/components/stock/stock.component.d.ts +64 -58
  380. package/lib/components/stock/stock.module.d.ts +2 -2
  381. package/lib/components/stock/style/_layout.scss +473 -286
  382. package/lib/components/stock/style/_material-definition.scss +28 -25
  383. package/lib/components/stock/style/_theme.scss +5 -5
  384. package/lib/components/stock/style/material.scss +4 -4
  385. package/lib/components/stock-statusbar/stock-statusbar.component.d.ts +4 -4
  386. package/lib/components/stock-statusbar/stock-statusbar.module.d.ts +2 -2
  387. package/lib/components/stock-statusbar/style/_layout.scss +24 -24
  388. package/lib/components/stock-statusbar/style/material.scss +4 -4
  389. package/lib/components/tab-bar/style/_layout.scss +83 -78
  390. package/lib/components/tab-bar/style/_material-definition.scss +6 -6
  391. package/lib/components/tab-bar/style/material.scss +4 -4
  392. package/lib/components/tab-bar/tab-bar.component.d.ts +21 -21
  393. package/lib/components/tab-bar/tab-bar.module.d.ts +2 -2
  394. package/lib/components/tab-bar/tab.interface.d.ts +5 -5
  395. package/lib/components/tags/component/style/_layout.scss +67 -67
  396. package/lib/components/tags/component/style/_material-definition.scss +1 -1
  397. package/lib/components/tags/component/style/_theme.scss +8 -8
  398. package/lib/components/tags/component/style/material.scss +3 -3
  399. package/lib/components/tags/component/tag-join-label/style/_layout.scss +97 -97
  400. package/lib/components/tags/component/tag-join-label/style/_material-definition.scss +4 -4
  401. package/lib/components/tags/component/tag-join-label/style/_theme.scss +8 -8
  402. package/lib/components/tags/component/tag-join-label/style/material.scss +3 -3
  403. package/lib/components/tile-renderer/style/_layout.scss +90 -90
  404. package/lib/components/tile-renderer/style/_theme.scss +4 -4
  405. package/lib/components/tile-renderer/style/material.scss +4 -4
  406. package/lib/components/tile-renderer/tile-render.component.d.ts +31 -31
  407. package/lib/components/tile-renderer/tile-render.module.d.ts +2 -2
  408. package/lib/decorator/input-boolean.decorator.d.ts +8 -8
  409. package/lib/enum/calendar-view.enum.d.ts +7 -7
  410. package/lib/enum/document-email-report.enum.d.ts +15 -15
  411. package/lib/enum/domain-multiple-name.enum.d.ts +10 -10
  412. package/lib/enum/file-type.d.ts +7 -7
  413. package/lib/enum/files-upload-config-objects.d.ts +22 -22
  414. package/lib/enum/gauge-color.enum.d.ts +8 -8
  415. package/lib/enum/icon.enum.d.ts +46 -42
  416. package/lib/enum/internal-param.enum.d.ts +34 -34
  417. package/lib/enum/keyboard-code.enum.d.ts +30 -30
  418. package/lib/enum/language-code.enum.d.ts +6 -6
  419. package/lib/enum/month.enum.d.ts +14 -14
  420. package/lib/enum/read-write-access-config-names.enum.d.ts +4 -4
  421. package/lib/enum/table-name.enum.d.ts +84 -84
  422. package/lib/enum/tag-category.enum.d.ts +19 -19
  423. package/lib/enum/tags-component-config-names.d.ts +4 -4
  424. package/lib/enum/thumb-three-way-state.d.ts +6 -6
  425. package/lib/enum/tile-size-type.d.ts +4 -4
  426. package/lib/enum/time-period.enum.d.ts +8 -8
  427. package/lib/event/co-drag-event.d.ts +5 -5
  428. package/lib/event/co-drop-event.d.ts +8 -8
  429. package/lib/interface/key-value-pair.d.ts +4 -4
  430. package/lib/interface/operation-callback-simple-function.d.ts +4 -4
  431. package/lib/localization/localization.module.d.ts +2 -2
  432. package/lib/localization/localize.pipe.d.ts +7 -7
  433. package/lib/localization/localize.service.d.ts +7 -7
  434. package/lib/localization/translation.d.ts +2 -2
  435. package/lib/model/agenda-event-per-day.model.d.ts +5 -5
  436. package/lib/model/agenda-event.model.d.ts +17 -17
  437. package/lib/model/agenda-null-objects.d.ts +10 -10
  438. package/lib/model/constant/all-months.d.ts +2 -2
  439. package/lib/model/date-range.d.ts +7 -7
  440. package/lib/model/day.model.d.ts +8 -8
  441. package/lib/model/icon-svg.d.ts +4 -4
  442. package/lib/model/month.model.d.ts +5 -5
  443. package/lib/model/send-method.d.ts +7 -7
  444. package/lib/model/settings.d.ts +3 -3
  445. package/lib/model/tag-tree-item.bo.d.ts +18 -18
  446. package/lib/model/time-window.bo.d.ts +13 -13
  447. package/lib/model/tree-object.d.ts +8 -8
  448. package/lib/model/week.model.d.ts +4 -4
  449. package/lib/model/weekday.model.d.ts +16 -16
  450. package/lib/pipe/array-number.pipe.d.ts +4 -4
  451. package/lib/pipe/file-type-image.pipe.d.ts +12 -12
  452. package/lib/pipe/master-pipes.d.ts +1 -1
  453. package/lib/pipe/ucfirst.pipe.d.ts +4 -4
  454. package/lib/service/dictionary.service.d.ts +21 -21
  455. package/lib/service/drag-drop.service.d.ts +86 -86
  456. package/lib/service/icon-cache.service.d.ts +18 -18
  457. package/lib/service/options.service.d.ts +13 -13
  458. package/lib/service/shared-connector.service.d.ts +55 -55
  459. package/lib/service/shared.service.d.ts +18 -18
  460. package/lib/service/stock.service.d.ts +41 -41
  461. package/lib/style/_mixin.scss +14 -14
  462. package/lib/style/_variables.scss +21 -21
  463. package/lib/style/sharedcomponents-globals.scss +10 -10
  464. package/lib/utils/array-utils.d.ts +63 -63
  465. package/lib/utils/calendar.utils.d.ts +10 -10
  466. package/lib/utils/check-precision-and-scale-result.d.ts +4 -4
  467. package/lib/utils/check-within-stepped-bounds-result.d.ts +8 -8
  468. package/lib/utils/co-document-shared-field-logic.d.ts +7 -7
  469. package/lib/utils/date-utils.d.ts +44 -44
  470. package/lib/utils/enum-utils.d.ts +31 -31
  471. package/lib/utils/function/not-nill.function.d.ts +1 -1
  472. package/lib/utils/is-nill.function.d.ts +1 -1
  473. package/lib/utils/map-utils.d.ts +16 -16
  474. package/lib/utils/number-utils.d.ts +125 -125
  475. package/lib/utils/object-utils.d.ts +40 -40
  476. package/lib/utils/ref-code-utils.d.ts +10 -10
  477. package/lib/utils/string-utils.d.ts +38 -38
  478. package/package.json +6 -6
  479. package/public-api.d.ts +27 -27
@@ -1,240 +1,251 @@
1
- import { ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewEncapsulation } from "@angular/core";
2
- import { IconCacheService } from "../../../../service/icon-cache.service";
3
- import { Icon } from "../../../../enum/icon.enum";
4
- import { StockService } from "../../../../service/stock.service";
5
- import { ArticleStockManagement } from "@colijnit/articleapi/build/model/article-stock-management";
6
- import { ArticleDetailsBo } from "@colijnit/articleapi/build/model/article-details.bo";
7
- export class StockLocationComponent {
8
- constructor(iconCacheService, _stockService, _changeDetector) {
9
- this.iconCacheService = iconCacheService;
10
- this._stockService = _stockService;
11
- this._changeDetector = _changeDetector;
12
- this.icons = Icon;
13
- this.articleStockInfo = [];
14
- this.articleStockInformation = [];
15
- this.dataWareHouseCode = [];
16
- this.transferIconClicked = new EventEmitter();
17
- this.sendMethodDialogClicked = new EventEmitter();
18
- this.showConfirmationDialog = false;
19
- this.articleDetailsInformation = new ArticleStockManagement();
20
- this.stockLocations = [];
21
- this.stockStatus = [];
22
- this.selectedArticleDetailsData = new ArticleDetailsBo();
23
- this._subs = [];
24
- }
25
- set article(article) {
26
- }
27
- ;
28
- ngOnInit() {
29
- this._stockService.getStockState().then(result => {
30
- this.stockStatus = result;
31
- });
32
- this._subs.push(this._stockService.warehouseSelected.subscribe(selectedWarehouse => {
33
- this._stockService.getStockManagementLocations(selectedWarehouse.warehouseNo).then(result => {
34
- this.stockLocations = result;
35
- });
36
- }));
37
- }
38
- lockSelectedRow(row) {
39
- this._stockService.getStockManagementLocations(this.selectedWarehouse.warehouseNo).then(result => {
40
- this.stockLocations = result;
41
- this.selectedLocationNo = row.locationNo;
42
- this._stockService.lockArticleDetails(row);
43
- this.selectedArticleDetailsData = row;
44
- });
45
- }
46
- onLocationDropdownClick() {
47
- this._stockService.getStockManagementLocations(this.selectedWarehouse.warehouseNo).then((locations) => {
48
- this.stockLocations = locations;
49
- });
50
- }
51
- locationChanged(row, event) {
52
- this.selectedLocationNo = event.locationNo;
53
- row.locationNo = event.locationNo;
54
- }
55
- amountInStockChanged(data) {
56
- this.selectedArticleDetailsData.amountInStock = data;
57
- }
58
- openSendMethodDialog(data) {
59
- this.sendMethodDialogClicked.emit(data);
60
- }
61
- handleStockTransferClick(event) {
62
- this.transferIconClicked.emit(event);
63
- }
64
- onOkClickSendLocations() {
65
- this.showConfirmationDialog = true;
66
- }
67
- handleOkClick() {
68
- var _a;
69
- this.selectedArticleDetailsData.selected = true;
70
- this.selectedArticleDetailsData.goodId = this.articleFlat.goodId;
71
- this.selectedArticleDetailsData.entryDate = new Date();
72
- this.selectedArticleDetailsData.warehouseNo = this.selectedWarehouse.warehouseNo;
73
- this.selectedArticleDetailsData.locationNo = (_a = this.selectedLocationNo) === null || _a === void 0 ? void 0 : _a.toString();
74
- this._stockService.updateArticleDetails(this.selectedArticleDetailsData).then(result => {
75
- var _a;
76
- this.articleDetailsInformation.goodId = (_a = this.selectedArticleDetailsData.goodId) === null || _a === void 0 ? void 0 : _a.toString();
77
- this.articleDetailsInformation.warehouseNumber = this.selectedArticleDetailsData.warehouseNo;
78
- this._stockService.getArticleDetails(this.articleDetailsInformation).then((details) => {
79
- this.showConfirmationDialog = false;
80
- this._changeDetector.detectChanges();
81
- this.articleStockInfo = details;
82
- });
83
- });
84
- }
85
- handleStockStatusChange(status) {
86
- this.selectedArticleDetailsData.stockStateId = status.stockStateId;
87
- }
88
- handleStockStatusRemarkChange(remark) {
89
- this.selectedArticleDetailsData.stockStateRemark = remark;
90
- }
91
- disabled() {
92
- var _a, _b, _c;
93
- return (!((_a = this.selectedArticleDetailsData) === null || _a === void 0 ? void 0 : _a.stockStateId) && ((_c = (_b = this.selectedArticleDetailsData) === null || _b === void 0 ? void 0 : _b.stockStateRemark) === null || _c === void 0 ? void 0 : _c.length) <= 1);
94
- }
95
- statusForId(id) {
96
- return this.stockStatus.find(status => status.stockStateId === id);
97
- }
98
- locationForNumber(number) {
99
- var _a;
100
- return (_a = this.stockLocations) === null || _a === void 0 ? void 0 : _a.find(location => location.locationNo === (number === null || number === void 0 ? void 0 : number.toString()));
101
- }
102
- }
103
- StockLocationComponent.decorators = [
104
- { type: Component, args: [{
105
- selector: "co-stock-location",
106
- template: `
107
- <div class="stock-grid">
108
- <co-dialog *ngIf="showConfirmationDialog" [showCloseIcon]="true" [modal]="true" [headerTemplate]="headerTemplate"
109
- [footerTemplate]="footerTemplate">
110
- <ng-template #headerTemplate>
111
- <div class="header-wrapper">
112
- <span [textContent]="'CONFIRM_STOCK_CHANGE' | localize"></span>
113
- </div>
114
- </ng-template>
115
- <div class="dialog-wrapper">
116
- <co-list-of-values [label]="'STATUS' | localize"
117
- [model]="statusForId(selectedArticleDetailsData.stockStateId)"
118
- [collection]="stockStatus"
119
- [displayField]="'stateDescription'"
120
- (modelChange)="handleStockStatusChange($event)"
121
- ></co-list-of-values>
122
- <co-input-text [placeholder]="'REMARK' | localize"
123
- (modelChange)="handleStockStatusRemarkChange($event)"></co-input-text>
124
- </div>
125
- <ng-template #footerTemplate>
126
- <div class="button-wrapper">
127
- <co-button (click)="handleOkClick()" [label]="'OK'| localize" [disabled]="disabled()"></co-button>
128
- <co-button class="cancel-button" (click)="showConfirmationDialog = false"
129
- [label]="'CANCEL'| localize "></co-button>
130
- </div>
131
- </ng-template>
132
- </co-dialog>
133
- <co-simple-grid [data]="articleStockInfo"
134
- class="simple-grid"
135
- [rowsPerPage]="20"
136
- [showAdd]="true"
137
- [inlineEdit]="true"
138
- (dblClickRow)="lockSelectedRow($event)"
139
- [showToolbar]="true"
140
- (keydown.enter)="onOkClickSendLocations()"
141
-
142
- >
143
- <co-simple-grid-column [headerText]="'STOCK' | localize" [field]="'amountInStock'">
144
- <ng-template #editTemplate let-row="row">
145
- <co-input-text [(model)]="row['amountInStock']"
146
- [label]="'STOCK' | localize"
147
- (modelChange)="amountInStockChanged($event)"
148
- ></co-input-text>
149
- </ng-template>
150
- </co-simple-grid-column>
151
- <co-simple-grid-column *ngIf="articleFlat?.locationRegistered" [headerText]="'LOCATION' | localize" [field]="'locationNo'">
152
- <ng-template #editTemplate let-row="row">
153
- <co-list-of-values
154
- [model]="locationForNumber(row['locationNo'])"
155
- [collection]="stockLocations"
156
- [displayField]="'description'"
157
- [label]="'LOCATION' | localize"
158
- (click)="onLocationDropdownClick()"
159
- [required]="true"
160
- (modelChange)="locationChanged(row, $event)"
161
- ></co-list-of-values>
162
- </ng-template>
163
- </co-simple-grid-column>
164
- <co-simple-grid-column [headerText]="'BATCH' | localize" [field]="'batchNo'">
165
- <ng-template #editTemplate let-row="row">
166
- <co-input-text *ngIf="articleFlat?.batch" [model]="selectedArticleDetailsData.batchNo"
167
- [placeholder]="'BATCH' | localize"
168
- (modelChange)="row['batchNo'] = $event"
169
- ></co-input-text>
170
- </ng-template>
171
- </co-simple-grid-column>
172
- <co-simple-grid-column [headerText]="'SERIAL_NO' | localize" [field]="'serialNo'">
173
- <ng-template #editTemplate let-row="row">
174
- <co-input-text *ngIf="articleFlat?.serial" [model]="selectedArticleDetailsData.serialNo"
175
- [placeholder]="'SERIAL_NO' | localize"
176
- (modelChange)="row['serialNo'] = $event"
177
- ></co-input-text>
178
- </ng-template>
179
- </co-simple-grid-column>
180
- <co-simple-grid-column [headerText]="'ALLOCATED' | localize" [field]="'stockAssigned'">
181
- <ng-template #editTemplate let-row="row">
182
- <span [textContent]="row['stockAssigned']"></span>
183
- </ng-template>
184
- </co-simple-grid-column>
185
- <co-simple-grid-column [headerText]="'AVAILABLE_STOCK' | localize" [field]="'amountInStockFree'">
186
- <ng-template #editTemplate let-row="row">
187
- <span [textContent]="row['amountInStockFree']"></span>
188
- </ng-template>
189
- </co-simple-grid-column>
190
- <co-simple-grid-column [headerText]="'VALUTA' | localize" [field]="'currency'">
191
- <ng-template #editTemplate let-row="row">
192
- <span [textContent]="row['currency']"></span>
193
- </ng-template>
194
- </co-simple-grid-column>
195
- <co-simple-grid-column [headerText]="'PURCHASE_PRICE' | localize" [field]="'purchasePrice'">
196
- <ng-template #editTemplate let-row="row">
197
- <span [textContent]="row['purchasePrice']"></span>
198
- </ng-template>
199
- </co-simple-grid-column>
200
- <co-simple-grid-column [headerText]="'SUPPLIERNR' | localize" [field]="'supplierNo'">
201
- <ng-template #editTemplate let-row="row">
202
- <span [textContent]="row['supplierNo']"></span>
203
- </ng-template>
204
- </co-simple-grid-column>
205
- <co-simple-grid-column [headerText]="'TRANSFER' | localize" [field]="'transfer'">
206
- <ng-template #template let-row="row">
207
- <co-icon class="menu-icon" [iconData]="iconCacheService.getIcon(icons.DeliveryTruck)"
208
- (click)="handleStockTransferClick(row)"></co-icon>
209
- </ng-template>
210
- <ng-template #editTemplate></ng-template>
211
- </co-simple-grid-column>
212
- <co-simple-grid-column [headerText]="'STICKER' | localize" [field]="'sticker'">
213
- <ng-template #template let-row="row">
214
- <co-icon class="menu-icon" [iconData]="iconCacheService.getIcon(icons.Print)"
215
- (click)="openSendMethodDialog(row)"></co-icon>
216
- </ng-template>
217
- <ng-template #editTemplate></ng-template>
218
- </co-simple-grid-column>
219
- </co-simple-grid>
220
- </div>
221
- `,
222
- encapsulation: ViewEncapsulation.None
223
- },] }
224
- ];
225
- StockLocationComponent.ctorParameters = () => [
226
- { type: IconCacheService },
227
- { type: StockService },
228
- { type: ChangeDetectorRef }
229
- ];
230
- StockLocationComponent.propDecorators = {
231
- articleStockInfo: [{ type: Input }],
232
- articleStockInformation: [{ type: Input }],
233
- article: [{ type: Input }],
234
- articleFlat: [{ type: Input }],
235
- dataWareHouseCode: [{ type: Input }],
236
- transferIconClicked: [{ type: Output }],
237
- sendMethodDialogClicked: [{ type: Output }],
238
- selectedWarehouse: [{ type: Input }]
239
- };
240
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2stbG9jYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc3RvY2svY29tcG9uZW50cy9zdG9jay1sb2NhdGlvbi9zdG9jay1sb2NhdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVuSCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDaEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBRS9ELE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBQ2pHLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFEQUFxRCxDQUFDO0FBZ0lyRixNQUFNLE9BQU8sc0JBQXNCO0lBNENqQyxZQUNTLGdCQUFrQyxFQUNqQyxhQUEyQixFQUMzQixlQUFrQztRQUZuQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2pDLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBQzNCLG9CQUFlLEdBQWYsZUFBZSxDQUFtQjtRQTlDNUIsVUFBSyxHQUFnQixJQUFJLENBQUM7UUFHbkMscUJBQWdCLEdBQXVCLEVBQUUsQ0FBQztRQUcxQyw0QkFBdUIsR0FBcUIsRUFBRSxDQUFDO1FBWS9DLHNCQUFpQixHQUFnQyxFQUFFLENBQUM7UUFHM0Msd0JBQW1CLEdBQWlDLElBQUksWUFBWSxFQUFFLENBQUM7UUFHdkUsNEJBQXVCLEdBQXFDLElBQUksWUFBWSxFQUFFLENBQUM7UUFPeEYs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QTBCLDBDQUFFLFlBQVksQ0FBQSxJQUFJLENBQUEsTUFBQSxNQUFBLElBQUksQ0FBQywwQkFBMEIsMENBQUUsZ0JBQWdCLDBDQUFFLE1BQU0sS0FBSSxDQUFDLENBQUMsQ0FBQztJQUM1SCxDQUFDO0lBR00sV0FBVyxDQUFDLEVBQVU7UUFDM0IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBRSxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVNLGlCQUFpQixDQUFDLE1BQWM7O1FBQ3JDLE9BQU8sTUFBQSxJQUFJLENBQUMsY0FBYywwQ0FBRSxJQUFJLENBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxNQUFLLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxRQUFRLEVBQUUsQ0FBQSxDQUFDLENBQUM7SUFDNUYsQ0FBQzs7O1lBbFFGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2dCQUM3QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtSFQ7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztZQXBJTyxnQkFBZ0I7WUFFaEIsWUFBWTtZQUpaLGlCQUFpQjs7OytCQTBJdEIsS0FBSztzQ0FHTCxLQUFLO3NCQUdMLEtBQUs7MEJBS0wsS0FBSztnQ0FJTCxLQUFLO2tDQUdMLE1BQU07c0NBR04sTUFBTTtnQ0FHTixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7QXJ0aWNsZVN0b2NrIGFzIEFydGljbGVTdG9ja0JvfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1zdG9jay5ib1wiO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZVwiO1xyXG5pbXBvcnQge0ljb259IGZyb20gXCIuLi8uLi8uLi8uLi9lbnVtL2ljb24uZW51bVwiO1xyXG5pbXBvcnQge1N0b2NrU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uLy4uL3NlcnZpY2Uvc3RvY2suc2VydmljZVwiO1xyXG5pbXBvcnQge1N0b2NrTWFuYWdlbWVudFdhcmVob3VzZXN9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9zdG9jay1tYW5hZ2VtZW50LXdhcmVob3VzZXMuYm9cIjtcclxuaW1wb3J0IHtBcnRpY2xlU3RvY2tNYW5hZ2VtZW50fSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1zdG9jay1tYW5hZ2VtZW50XCI7XHJcbmltcG9ydCB7QXJ0aWNsZURldGFpbHNCb30gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtZGV0YWlscy5ib1wiO1xyXG5pbXBvcnQge1N0b2NrTG9jYXRpb259IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9zdG9jay1sb2NhdGlvbi5ib1wiO1xyXG5pbXBvcnQge1ByaW50UHJpY2VTdGlja2Vyc30gZnJvbSBcIkBjb2xpam5pdC9zaGFyZWRhcGkvYnVpbGQvbW9kZWwvcHJpbnQtcHJpY2Utc3RpY2tlcnMuYm9cIjtcclxuaW1wb3J0IHtTdG9ja1N0YXR1c30gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL3N0b2NrLXN0YXR1cy5ib1wiO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHtBcnRpY2xlRXh0ZW5kZWR9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLWV4dGVuZGVkLmJvXCI7XHJcbmltcG9ydCB7QXJ0aWNsZUZsYXR9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLWZsYXQuYm9cIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNvLXN0b2NrLWxvY2F0aW9uXCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJzdG9jay1ncmlkXCI+XHJcbiAgICAgIDxjby1kaWFsb2cgKm5nSWY9XCJzaG93Q29uZmlybWF0aW9uRGlhbG9nXCIgW3Nob3dDbG9zZUljb25dPVwidHJ1ZVwiIFttb2RhbF09XCJ0cnVlXCIgW2hlYWRlclRlbXBsYXRlXT1cImhlYWRlclRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICBbZm9vdGVyVGVtcGxhdGVdPVwiZm9vdGVyVGVtcGxhdGVcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI2hlYWRlclRlbXBsYXRlPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCInQ09ORklSTV9TVE9DS19DSEFOR0UnIHwgbG9jYWxpemVcIj48L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkaWFsb2ctd3JhcHBlclwiPlxyXG4gICAgICAgICAgPGNvLWxpc3Qtb2YtdmFsdWVzIFtsYWJlbF09XCInU1RBVFVTJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbW9kZWxdPVwic3RhdHVzRm9ySWQoc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuc3RvY2tTdGF0ZUlkKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbGxlY3Rpb25dPVwic3RvY2tTdGF0dXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNwbGF5RmllbGRdPVwiJ3N0YXRlRGVzY3JpcHRpb24nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiaGFuZGxlU3RvY2tTdGF0dXNDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICA+PC9jby1saXN0LW9mLXZhbHVlcz5cclxuICAgICAgICAgIDxjby1pbnB1dC10ZXh0IFtwbGFjZWhvbGRlcl09XCInUkVNQVJLJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJoYW5kbGVTdG9ja1N0YXR1c1JlbWFya0NoYW5nZSgkZXZlbnQpXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZm9vdGVyVGVtcGxhdGU+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGNvLWJ1dHRvbiAoY2xpY2spPVwiaGFuZGxlT2tDbGljaygpXCIgW2xhYmVsXT1cIidPSyd8IGxvY2FsaXplXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICAgICAgPGNvLWJ1dHRvbiBjbGFzcz1cImNhbmNlbC1idXR0b25cIiAoY2xpY2spPVwic2hvd0NvbmZpcm1hdGlvbkRpYWxvZyA9IGZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0NBTkNFTCd8IGxvY2FsaXplIFwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9jby1kaWFsb2c+XHJcbiAgICAgIDxjby1zaW1wbGUtZ3JpZCBbZGF0YV09XCJhcnRpY2xlU3RvY2tJbmZvXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2ltcGxlLWdyaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW3Jvd3NQZXJQYWdlXT1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtzaG93QWRkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2lubGluZUVkaXRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAoZGJsQ2xpY2tSb3cpPVwibG9ja1NlbGVjdGVkUm93KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW3Nob3dUb29sYmFyXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib25Pa0NsaWNrU2VuZExvY2F0aW9ucygpXCJcclxuXHJcbiAgICAgID5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidTVE9DSycgfCBsb2NhbGl6ZVwiIFtmaWVsZF09XCInYW1vdW50SW5TdG9jaydcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWRpdFRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgWyhtb2RlbCldPVwicm93WydhbW91bnRJblN0b2NrJ11cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1NUT0NLJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImFtb3VudEluU3RvY2tDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICAgICAgICA+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uICpuZ0lmPVwiYXJ0aWNsZUZsYXQ/LmxvY2F0aW9uUmVnaXN0ZXJlZFwiIFtoZWFkZXJUZXh0XT1cIidMT0NBVElPTicgfCBsb2NhbGl6ZVwiIFtmaWVsZF09XCInbG9jYXRpb25ObydcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWRpdFRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGNvLWxpc3Qtb2YtdmFsdWVzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbW9kZWxdPVwibG9jYXRpb25Gb3JOdW1iZXIocm93Wydsb2NhdGlvbk5vJ10pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xsZWN0aW9uXT1cInN0b2NrTG9jYXRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNwbGF5RmllbGRdPVwiJ2Rlc2NyaXB0aW9uJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0xPQ0FUSU9OJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkxvY2F0aW9uRHJvcGRvd25DbGljaygpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJsb2NhdGlvbkNoYW5nZWQocm93LCAkZXZlbnQpXCJcclxuICAgICAgICAgICAgPjwvY28tbGlzdC1vZi12YWx1ZXM+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ0JBVENIJyB8IGxvY2FsaXplXCIgW2ZpZWxkXT1cIidiYXRjaE5vJ1wiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNlZGl0VGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8Y28taW5wdXQtdGV4dCAqbmdJZj1cImFydGljbGVGbGF0Py5iYXRjaFwiIFttb2RlbF09XCJzZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5iYXRjaE5vXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidCQVRDSCcgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJyb3dbJ2JhdGNoTm8nXSA9ICRldmVudFwiXHJcbiAgICAgICAgICAgID48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1NFUklBTF9OTycgfCBsb2NhbGl6ZVwiIFtmaWVsZF09XCInc2VyaWFsTm8nXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2VkaXRUZW1wbGF0ZSBsZXQtcm93PVwicm93XCI+XHJcbiAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0ICpuZ0lmPVwiYXJ0aWNsZUZsYXQ/LnNlcmlhbFwiIFttb2RlbF09XCJzZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5zZXJpYWxOb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInU0VSSUFMX05PJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cInJvd1snc2VyaWFsTm8nXSA9ICRldmVudFwiXHJcbiAgICAgICAgICAgID48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ0FMTE9DQVRFRCcgfCBsb2NhbGl6ZVwiIFtmaWVsZF09XCInc3RvY2tBc3NpZ25lZCdcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWRpdFRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIj5cclxuICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cInJvd1snc3RvY2tBc3NpZ25lZCddXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidBVkFJTEFCTEVfU1RPQ0snIHwgbG9jYWxpemVcIiBbZmllbGRdPVwiJ2Ftb3VudEluU3RvY2tGcmVlJ1wiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNlZGl0VGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwicm93WydhbW91bnRJblN0b2NrRnJlZSddXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidWQUxVVEEnIHwgbG9jYWxpemVcIiBbZmllbGRdPVwiJ2N1cnJlbmN5J1wiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNlZGl0VGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwicm93WydjdXJyZW5jeSddXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidQVVJDSEFTRV9QUklDRScgfCBsb2NhbGl6ZVwiIFtmaWVsZF09XCIncHVyY2hhc2VQcmljZSdcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWRpdFRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIj5cclxuICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cInJvd1sncHVyY2hhc2VQcmljZSddXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidTVVBQTElFUk5SJyB8IGxvY2FsaXplXCIgW2ZpZWxkXT1cIidzdXBwbGllck5vJ1wiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNlZGl0VGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwicm93WydzdXBwbGllck5vJ11cIj48L3NwYW4+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1RSQU5TRkVSJyB8IGxvY2FsaXplXCIgW2ZpZWxkXT1cIid0cmFuc2ZlcidcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8Y28taWNvbiBjbGFzcz1cIm1lbnUtaWNvblwiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuRGVsaXZlcnlUcnVjaylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlU3RvY2tUcmFuc2ZlckNsaWNrKHJvdylcIj48L2NvLWljb24+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNlZGl0VGVtcGxhdGU+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidTVElDS0VSJyB8IGxvY2FsaXplXCIgW2ZpZWxkXT1cIidzdGlja2VyJ1wiPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZSBsZXQtcm93PVwicm93XCI+XHJcbiAgICAgICAgICAgIDxjby1pY29uIGNsYXNzPVwibWVudS1pY29uXCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5QcmludClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlblNlbmRNZXRob2REaWFsb2cocm93KVwiPjwvY28taWNvbj5cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2VkaXRUZW1wbGF0ZT48L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICA8L2NvLXNpbXBsZS1ncmlkPlxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdG9ja0xvY2F0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBJY29uID0gSWNvbjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYXJ0aWNsZVN0b2NrSW5mbzogQXJ0aWNsZURldGFpbHNCb1tdID0gW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGFydGljbGVTdG9ja0luZm9ybWF0aW9uOiBBcnRpY2xlU3RvY2tCb1tdID0gW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBhcnRpY2xlKGFydGljbGU6IEFydGljbGVFeHRlbmRlZCkge1xyXG5cclxuICB9O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhcnRpY2xlRmxhdDogQXJ0aWNsZUZsYXQ7XHJcblxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBkYXRhV2FyZUhvdXNlQ29kZTogU3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlc1tdID0gW107XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyByZWFkb25seSB0cmFuc2Zlckljb25DbGlja2VkOiBFdmVudEVtaXR0ZXI8QXJ0aWNsZVN0b2NrQm8+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgcmVhZG9ubHkgc2VuZE1ldGhvZERpYWxvZ0NsaWNrZWQ6IEV2ZW50RW1pdHRlcjxQcmludFByaWNlU3RpY2tlcnM+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZWxlY3RlZFdhcmVob3VzZTogU3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlcztcclxuXHJcblxyXG4gIHB1YmxpYyBhcnRpY2xlRGV0YWlsczogQXJ0aWNsZURldGFpbHNCbztcclxuICBwdWJsaWMgc2hvd0NvbmZpcm1hdGlvbkRpYWxvZzpib29sZWFuID0gZmFsc2U7XHJcblxyXG5cclxuICBwdWJsaWMgYXJ0aWNsZURldGFpbHNJbmZvcm1hdGlvbjogQXJ0aWNsZVN0b2NrTWFuYWdlbWVudCA9IG5ldyBBcnRpY2xlU3RvY2tNYW5hZ2VtZW50KClcclxuICBwdWJsaWMgc3RvY2tMb2NhdGlvbnM6IFN0b2NrTG9jYXRpb25bXSA9IFtdO1xyXG5cclxuICBwdWJsaWMgc3RvY2tTdGF0dXM6IFN0b2NrU3RhdHVzW10gPSBbXTtcclxuICBwdWJsaWMgc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGE6IEFydGljbGVEZXRhaWxzQm8gPSBuZXcgQXJ0aWNsZURldGFpbHNCbygpO1xyXG5cclxuICBwdWJsaWMgc2VsZWN0ZWRMb2NhdGlvbk5vOiBzdHJpbmc7XHJcblxyXG4gIHByaXZhdGUgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3N0b2NrU2VydmljZTogU3RvY2tTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG5cclxuICApIHtcclxuICB9XHJcblxyXG4gICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuX3N0b2NrU2VydmljZS5nZXRTdG9ja1N0YXRlKCkudGhlbiggcmVzdWx0ID0+IHtcclxuICAgICAgdGhpcy5zdG9ja1N0YXR1cyA9IHJlc3VsdDtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fc3Vicy5wdXNoKCB0aGlzLl9zdG9ja1NlcnZpY2Uud2FyZWhvdXNlU2VsZWN0ZWQuc3Vic2NyaWJlKCAgc2VsZWN0ZWRXYXJlaG91c2UgPT4ge1xyXG4gICAgICB0aGlzLl9zdG9ja1NlcnZpY2UuZ2V0U3RvY2tNYW5hZ2VtZW50TG9jYXRpb25zKHNlbGVjdGVkV2FyZWhvdXNlLndhcmVob3VzZU5vKS50aGVuKCByZXN1bHQgPT4ge1xyXG4gICAgICAgIHRoaXMuc3RvY2tMb2NhdGlvbnMgPSByZXN1bHQ7XHJcbiAgICAgIH0pO1xyXG4gICAgfSkpO1xyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyBsb2NrU2VsZWN0ZWRSb3cocm93KTogdm9pZCB7XHJcbiAgICB0aGlzLl9zdG9ja1NlcnZpY2UuZ2V0U3RvY2tNYW5hZ2VtZW50TG9jYXRpb25zKHRoaXMuc2VsZWN0ZWRXYXJlaG91c2Uud2FyZWhvdXNlTm8pLnRoZW4oIHJlc3VsdCA9PiB7XHJcbiAgICAgIHRoaXMuc3RvY2tMb2NhdGlvbnMgPSByZXN1bHQ7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRMb2NhdGlvbk5vID0gcm93LmxvY2F0aW9uTm87XHJcbiAgICAgIHRoaXMuX3N0b2NrU2VydmljZS5sb2NrQXJ0aWNsZURldGFpbHMocm93KTtcclxuICAgICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YSA9IHJvdztcclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkxvY2F0aW9uRHJvcGRvd25DbGljaygpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N0b2NrU2VydmljZS5nZXRTdG9ja01hbmFnZW1lbnRMb2NhdGlvbnModGhpcy5zZWxlY3RlZFdhcmVob3VzZS53YXJlaG91c2VObykudGhlbigobG9jYXRpb25zKSA9PiB7XHJcbiAgICAgIHRoaXMuc3RvY2tMb2NhdGlvbnMgPSBsb2NhdGlvbnM7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBsb2NhdGlvbkNoYW5nZWQocm93OiBBcnRpY2xlRGV0YWlsc0JvLCBldmVudDogU3RvY2tMb2NhdGlvbik6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZExvY2F0aW9uTm8gPSBldmVudC5sb2NhdGlvbk5vO1xyXG4gICAgcm93LmxvY2F0aW9uTm8gPSBldmVudC5sb2NhdGlvbk5vO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFtb3VudEluU3RvY2tDaGFuZ2VkKGRhdGEpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuYW1vdW50SW5TdG9jayA9IGRhdGE7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb3BlblNlbmRNZXRob2REaWFsb2coZGF0YSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZW5kTWV0aG9kRGlhbG9nQ2xpY2tlZC5lbWl0KGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVN0b2NrVHJhbnNmZXJDbGljayhldmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy50cmFuc2Zlckljb25DbGlja2VkLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuICBwdWJsaWMgb25Pa0NsaWNrU2VuZExvY2F0aW9ucygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd0NvbmZpcm1hdGlvbkRpYWxvZyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlT2tDbGljaygpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuc2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5nb29kSWQgPSB0aGlzLmFydGljbGVGbGF0Lmdvb2RJZDtcclxuICAgIHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuZW50cnlEYXRlID0gbmV3IERhdGUoKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEud2FyZWhvdXNlTm8gPSB0aGlzLnNlbGVjdGVkV2FyZWhvdXNlLndhcmVob3VzZU5vO1xyXG4gICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5sb2NhdGlvbk5vID0gdGhpcy5zZWxlY3RlZExvY2F0aW9uTm8/LnRvU3RyaW5nKCk7XHJcbiAgICB0aGlzLl9zdG9ja1NlcnZpY2UudXBkYXRlQXJ0aWNsZURldGFpbHModGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YSkudGhlbiggcmVzdWx0ID0+IHtcclxuXHJcbiAgICAgIHRoaXMuYXJ0aWNsZURldGFpbHNJbmZvcm1hdGlvbi5nb29kSWQgPSB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLmdvb2RJZD8udG9TdHJpbmcoKTtcclxuICAgICAgdGhpcy5hcnRpY2xlRGV0YWlsc0luZm9ybWF0aW9uLndhcmVob3VzZU51bWJlciA9IHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEud2FyZWhvdXNlTm87XHJcbiAgICAgIHRoaXMuX3N0b2NrU2VydmljZS5nZXRBcnRpY2xlRGV0YWlscyh0aGlzLmFydGljbGVEZXRhaWxzSW5mb3JtYXRpb24pLnRoZW4oKGRldGFpbHMpID0+IHtcclxuICAgICAgICB0aGlzLnNob3dDb25maXJtYXRpb25EaWFsb2cgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgdGhpcy5hcnRpY2xlU3RvY2tJbmZvID0gZGV0YWlscztcclxuICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU3RvY2tTdGF0dXNDaGFuZ2Uoc3RhdHVzOiBTdG9ja1N0YXR1cykge1xyXG4gICAgIHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuc3RvY2tTdGF0ZUlkID0gc3RhdHVzLnN0b2NrU3RhdGVJZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTdG9ja1N0YXR1c1JlbWFya0NoYW5nZShyZW1hcms6IHN0cmluZykge1xyXG4gICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5zdG9ja1N0YXRlUmVtYXJrID0gcmVtYXJrO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGRpc2FibGVkKCkge1xyXG4gICAgcmV0dXJuICghdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YT8uc3RvY2tTdGF0ZUlkICYmIHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGE/LnN0b2NrU3RhdGVSZW1hcms/Lmxlbmd0aCA8PSAxKTtcclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgc3RhdHVzRm9ySWQoaWQ6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvY2tTdGF0dXMuZmluZCggc3RhdHVzID0+IHN0YXR1cy5zdG9ja1N0YXRlSWQgPT09IGlkKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBsb2NhdGlvbkZvck51bWJlcihudW1iZXI6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvY2tMb2NhdGlvbnM/LmZpbmQoIGxvY2F0aW9uID0+IGxvY2F0aW9uLmxvY2F0aW9uTm8gPT09IG51bWJlcj8udG9TdHJpbmcoKSk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
1
+ import { ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewEncapsulation } from "@angular/core";
2
+ import { IconCacheService } from "../../../../service/icon-cache.service";
3
+ import { Icon } from "../../../../enum/icon.enum";
4
+ import { StockService } from "../../../../service/stock.service";
5
+ import { ArticleStockManagement } from "@colijnit/articleapi/build/model/article-stock-management";
6
+ import { ArticleDetailsBo } from "@colijnit/articleapi/build/model/article-details.bo";
7
+ export class StockLocationComponent {
8
+ constructor(iconCacheService, _stockService, _changeDetector) {
9
+ this.iconCacheService = iconCacheService;
10
+ this._stockService = _stockService;
11
+ this._changeDetector = _changeDetector;
12
+ this.icons = Icon;
13
+ this.articleStockInfo = [];
14
+ this.articleStockInformation = [];
15
+ this.dataWareHouseCode = [];
16
+ this.transferIconClicked = new EventEmitter();
17
+ this.sendMethodDialogClicked = new EventEmitter();
18
+ this.showConfirmationDialog = false;
19
+ this.showConfirmStockRow = false;
20
+ this.articleDetailsInformation = new ArticleStockManagement();
21
+ this.stockLocations = [];
22
+ this.stockStatus = [];
23
+ this.selectedArticleDetailsData = new ArticleDetailsBo();
24
+ this._subs = [];
25
+ }
26
+ set article(article) {
27
+ }
28
+ ;
29
+ ngOnInit() {
30
+ this._stockService.getStockState().then(result => {
31
+ this.stockStatus = result;
32
+ });
33
+ this._subs.push(this._stockService.warehouseSelected.subscribe(selectedWarehouse => {
34
+ this._stockService.getStockManagementLocations(selectedWarehouse.warehouseNo).then(result => {
35
+ this.stockLocations = result;
36
+ });
37
+ }));
38
+ }
39
+ ngOnDestroy() {
40
+ }
41
+ onLocationDropdownClick() {
42
+ this._stockService.getStockManagementLocations(this.selectedWarehouse.warehouseNo).then((locations) => {
43
+ this.stockLocations = locations;
44
+ });
45
+ }
46
+ locationChanged(row, event) {
47
+ this.selectedLocationNo = event.locationNo;
48
+ row.locationNo = event.locationNo;
49
+ this.onLocationDropdownClick();
50
+ }
51
+ amountInStockChanged(data) {
52
+ this.selectedArticleDetailsData.amountInStock = data;
53
+ }
54
+ openSendMethodDialog(data) {
55
+ this.sendMethodDialogClicked.emit(data);
56
+ }
57
+ handleStockTransferClick(event) {
58
+ this.transferIconClicked.emit(event);
59
+ }
60
+ onOkClickSendLocations() {
61
+ this.showConfirmationDialog = true;
62
+ }
63
+ handleOkClick() {
64
+ var _a;
65
+ this.selectedArticleDetailsData.selected = true;
66
+ this.selectedArticleDetailsData.goodId = this.articleFlat.goodId;
67
+ this.selectedArticleDetailsData.entryDate = new Date();
68
+ this.selectedArticleDetailsData.warehouseNo = this.selectedWarehouse.warehouseNo;
69
+ this.selectedArticleDetailsData.locationNo = (_a = this.selectedLocationNo) === null || _a === void 0 ? void 0 : _a.toString();
70
+ this._stockService.updateArticleDetails(this.selectedArticleDetailsData).then(result => {
71
+ var _a;
72
+ this.articleDetailsInformation.goodId = (_a = this.selectedArticleDetailsData.goodId) === null || _a === void 0 ? void 0 : _a.toString();
73
+ this.articleDetailsInformation.warehouseNumber = this.selectedArticleDetailsData.warehouseNo;
74
+ this._stockService.getArticleDetails(this.articleDetailsInformation).then((details) => {
75
+ this.articleStockInfo = details;
76
+ });
77
+ });
78
+ this.showConfirmationDialog = false;
79
+ this._changeDetector.detectChanges();
80
+ }
81
+ handleStockStatusChange(status) {
82
+ this.selectedArticleDetailsData.stockStateId = status.stockStateId;
83
+ }
84
+ handleStockStatusRemarkChange(remark) {
85
+ this.selectedArticleDetailsData.stockStateRemark = remark;
86
+ }
87
+ disabled() {
88
+ var _a, _b, _c;
89
+ return (!((_a = this.selectedArticleDetailsData) === null || _a === void 0 ? void 0 : _a.stockStateId) && ((_c = (_b = this.selectedArticleDetailsData) === null || _b === void 0 ? void 0 : _b.stockStateRemark) === null || _c === void 0 ? void 0 : _c.length) <= 1);
90
+ }
91
+ statusForId(id) {
92
+ return this.stockStatus.find(status => status.stockStateId === id);
93
+ }
94
+ locationForNumber(number) {
95
+ var _a;
96
+ return (_a = this.stockLocations) === null || _a === void 0 ? void 0 : _a.find(location => location.locationNo === (number === null || number === void 0 ? void 0 : number.toString()));
97
+ }
98
+ locationForDescription(locationNo) {
99
+ // Find the location in stockLocations by locationNo
100
+ const location = this.stockLocations.find(loc => loc.locationNo === locationNo);
101
+ // If location is found and it has a non-empty description, return description
102
+ // If location is not found or description is empty, return locationNo
103
+ return location && location.description && location.description.trim() !== '' ? location.description : locationNo;
104
+ }
105
+ }
106
+ StockLocationComponent.decorators = [
107
+ { type: Component, args: [{
108
+ selector: "co-stock-location",
109
+ template: `
110
+ <div class="stock-grid">
111
+ <co-dialog *ngIf="showConfirmationDialog"
112
+ [showCloseIcon]="true"
113
+ [modal]="true"
114
+ [headerTemplate]="headerTemplate"
115
+ [footerTemplate]="footerTemplate">
116
+ <ng-template #headerTemplate>
117
+ <div class="header-wrapper">
118
+ <span [textContent]="'CONFIRM_STOCK_CHANGE' | localize"></span>
119
+ </div>
120
+ </ng-template>
121
+ <div class="dialog-wrapper">
122
+ <co-list-of-values [label]="'STATUS' | localize"
123
+ [model]="statusForId(selectedArticleDetailsData.stockStateId)"
124
+ [collection]="stockStatus"
125
+ [displayField]="'stateDescription'"
126
+ (modelChange)="handleStockStatusChange($event)"
127
+ ></co-list-of-values>
128
+ <co-input-text [placeholder]="'REMARK' | localize"
129
+ (modelChange)="handleStockStatusRemarkChange($event)"></co-input-text>
130
+ </div>
131
+ <ng-template #footerTemplate>
132
+ <div class="button-wrapper ok-cancel-buttons">
133
+ <co-button class="save-button"
134
+ (click)="handleOkClick()"
135
+ [iconData]="iconCacheService.getIcon(icons.CheckDuotone)"
136
+ [disabled]="disabled()">
137
+ </co-button>
138
+ <co-button class="cancel-button"
139
+ (click)="showConfirmationDialog = false"
140
+ [iconData]="iconCacheService.getIcon(icons.CrossSkinny)">
141
+ </co-button>
142
+ </div>
143
+ </ng-template>
144
+ </co-dialog>
145
+ <co-simple-grid [data]="articleStockInfo"
146
+ class="simple-grid"
147
+ [showAdd]="true"
148
+ [inlineEdit]="true"
149
+ (selectRow)="onLocationDropdownClick()"
150
+ [showToolbar]="true"
151
+ (saveRow)="onOkClickSendLocations()"
152
+ (keydown.enter)="onOkClickSendLocations()"
153
+
154
+ >
155
+ <co-simple-grid-column [headerText]="'STOCK' | localize" [field]="'amountInStock'">
156
+ <ng-template #editTemplate let-row="row">
157
+ <co-input-text [(model)]="row['amountInStock']"
158
+ [label]="'STOCK' | localize"
159
+ (modelChange)="amountInStockChanged($event)"
160
+ ></co-input-text>
161
+ </ng-template>
162
+ </co-simple-grid-column>
163
+ <co-simple-grid-column [width]="150" [headerText]="'LOCATION' | localize" [field]="'locationNo'">
164
+ <ng-template #editTemplate let-row="row">
165
+ <co-list-of-values
166
+ [model]="locationForNumber(row['locationNo'])"
167
+ [collection]="stockLocations"
168
+ [displayField]="'description'"
169
+ [label]="'LOCATION' | localize"
170
+ [required]="true"
171
+ (modelChange)="locationChanged(row, $event)"
172
+ ></co-list-of-values>
173
+ </ng-template>
174
+ </co-simple-grid-column>
175
+ <co-simple-grid-column *ngIf="articleFlat?.batch" [headerText]="'BATCH' | localize" [field]="'batchNo'">
176
+ <ng-template #editTemplate let-row="row">
177
+ <co-input-text [model]="selectedArticleDetailsData.batchNo"
178
+ [placeholder]="'BATCH' | localize"
179
+ (modelChange)="row['batchNo'] = $event"
180
+ ></co-input-text>
181
+ </ng-template>
182
+ </co-simple-grid-column>
183
+ <co-simple-grid-column *ngIf="articleFlat?.serial" [headerText]="'SERIAL_NO' | localize" [field]="'serialNo'">
184
+ <ng-template #editTemplate let-row="row">
185
+ <co-input-text [model]="selectedArticleDetailsData.serialNo"
186
+ [placeholder]="'SERIAL_NO' | localize"
187
+ (modelChange)="row['serialNo'] = $event"
188
+ ></co-input-text>
189
+ </ng-template>
190
+ </co-simple-grid-column>
191
+ <co-simple-grid-column [headerText]="'ALLOCATED' | localize" [field]="'stockAssigned'">
192
+ <ng-template #editTemplate let-row="row">
193
+ <span [textContent]="row['stockAssigned']"></span>
194
+ </ng-template>
195
+ </co-simple-grid-column>
196
+ <co-simple-grid-column [headerText]="'AVAILABLE_STOCK' | localize" [field]="'amountInStockFree'">
197
+ <ng-template #editTemplate let-row="row">
198
+ <span [textContent]="row['amountInStockFree']"></span>
199
+ </ng-template>
200
+ </co-simple-grid-column>
201
+ <co-simple-grid-column [headerText]="'VALUTA' | localize" [field]="'currency'">
202
+ <ng-template #editTemplate let-row="row">
203
+ <span [textContent]="row['currency']"></span>
204
+ </ng-template>
205
+ </co-simple-grid-column>
206
+ <co-simple-grid-column [headerText]="'PURCHASE_PRICE' | localize" [field]="'purchasePrice'">
207
+ <ng-template #editTemplate let-row="row">
208
+ <span [textContent]="row['purchasePrice']"></span>
209
+ </ng-template>
210
+ </co-simple-grid-column>
211
+ <co-simple-grid-column [headerText]="'SUPPLIERNR' | localize" [field]="'supplierNo'">
212
+ <ng-template #editTemplate let-row="row">
213
+ <span [textContent]="row['supplierNo']"></span>
214
+ </ng-template>
215
+ </co-simple-grid-column>
216
+ <co-simple-grid-column [readonly]="true" [headerText]="'TRANSFER' | localize" [field]="'transfer'">
217
+ <ng-template #template let-row="row">
218
+ <co-icon class="menu-icon" [iconData]="iconCacheService.getIcon(icons.DeliveryTruck)"
219
+ (click)="handleStockTransferClick(row)"></co-icon>
220
+ </ng-template>
221
+ <ng-template #editTemplate></ng-template>
222
+ </co-simple-grid-column>
223
+ <co-simple-grid-column [readonly]="true" [headerText]="'STICKER' | localize" [field]="'sticker'">
224
+ <ng-template #template let-row="row">
225
+ <co-icon class="menu-icon" [iconData]="iconCacheService.getIcon(icons.Print)"
226
+ (click)="openSendMethodDialog(row)"></co-icon>
227
+ </ng-template>
228
+ <ng-template #editTemplate></ng-template>
229
+ </co-simple-grid-column>
230
+ </co-simple-grid>
231
+ </div>
232
+ `,
233
+ encapsulation: ViewEncapsulation.None
234
+ },] }
235
+ ];
236
+ StockLocationComponent.ctorParameters = () => [
237
+ { type: IconCacheService },
238
+ { type: StockService },
239
+ { type: ChangeDetectorRef }
240
+ ];
241
+ StockLocationComponent.propDecorators = {
242
+ articleStockInfo: [{ type: Input }],
243
+ articleStockInformation: [{ type: Input }],
244
+ article: [{ type: Input }],
245
+ articleFlat: [{ type: Input }],
246
+ dataWareHouseCode: [{ type: Input }],
247
+ transferIconClicked: [{ type: Output }],
248
+ sendMethodDialogClicked: [{ type: Output }],
249
+ selectedWarehouse: [{ type: Input }]
250
+ };
251
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2stbG9jYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc3RvY2svY29tcG9uZW50cy9zdG9jay1sb2NhdGlvbi9zdG9jay1sb2NhdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04saUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFFL0QsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDakcsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scURBQXFELENBQUM7QUF3SXJGLE1BQU0sT0FBTyxzQkFBc0I7SUE0Q2pDLFlBQ1MsZ0JBQWtDLEVBQ2pDLGFBQTJCLEVBQzNCLGVBQWtDO1FBRm5DLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDakMsa0JBQWEsR0FBYixhQUFhLENBQWM7UUFDM0Isb0JBQWUsR0FBZixlQUFlLENBQW1CO1FBOUM1QixVQUFLLEdBQWdCLElBQUksQ0FBQztRQUduQyxxQkFBZ0IsR0FBdUIsRUFBRSxDQUFDO1FBRzFDLDRCQUF1QixHQUFxQixFQUFFLENBQUM7UUFZL0Msc0JBQWlCLEdBQWdDLEVBQUUsQ0FBQztRQUczQyx3QkFBbUIsR0FBaUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUd2RSw0QkFBdUIsR0FBcUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQU94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b25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge0FydGljbGVTdG9jayBhcyBBcnRpY2xlU3RvY2tCb30gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtc3RvY2suYm9cIjtcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlXCI7XG5pbXBvcnQge0ljb259IGZyb20gXCIuLi8uLi8uLi8uLi9lbnVtL2ljb24uZW51bVwiO1xuaW1wb3J0IHtTdG9ja1NlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi8uLi9zZXJ2aWNlL3N0b2NrLnNlcnZpY2VcIjtcbmltcG9ydCB7U3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlc30gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL3N0b2NrLW1hbmFnZW1lbnQtd2FyZWhvdXNlcy5ib1wiO1xuaW1wb3J0IHtBcnRpY2xlU3RvY2tNYW5hZ2VtZW50fSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1zdG9jay1tYW5hZ2VtZW50XCI7XG5pbXBvcnQge0FydGljbGVEZXRhaWxzQm99IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLWRldGFpbHMuYm9cIjtcbmltcG9ydCB7U3RvY2tMb2NhdGlvbn0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL3N0b2NrLWxvY2F0aW9uLmJvXCI7XG5pbXBvcnQge1ByaW50UHJpY2VTdGlja2Vyc30gZnJvbSBcIkBjb2xpam5pdC9zaGFyZWRhcGkvYnVpbGQvbW9kZWwvcHJpbnQtcHJpY2Utc3RpY2tlcnMuYm9cIjtcbmltcG9ydCB7U3RvY2tTdGF0dXN9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9zdG9jay1zdGF0dXMuYm9cIjtcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtBcnRpY2xlRXh0ZW5kZWR9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLWV4dGVuZGVkLmJvXCI7XG5pbXBvcnQge0FydGljbGVGbGF0fSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1mbGF0LmJvXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJjby1zdG9jay1sb2NhdGlvblwiLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJzdG9jay1ncmlkXCI+XG4gICAgICA8Y28tZGlhbG9nICpuZ0lmPVwic2hvd0NvbmZpcm1hdGlvbkRpYWxvZ1wiXG4gICAgICAgICAgICAgICAgIFtzaG93Q2xvc2VJY29uXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICBbbW9kYWxdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgIFtoZWFkZXJUZW1wbGF0ZV09XCJoZWFkZXJUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgIFtmb290ZXJUZW1wbGF0ZV09XCJmb290ZXJUZW1wbGF0ZVwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2hlYWRlclRlbXBsYXRlPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItd3JhcHBlclwiPlxuICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cIidDT05GSVJNX1NUT0NLX0NIQU5HRScgfCBsb2NhbGl6ZVwiPjwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRpYWxvZy13cmFwcGVyXCI+XG4gICAgICAgICAgPGNvLWxpc3Qtb2YtdmFsdWVzIFtsYWJlbF09XCInU1RBVFVTJyB8IGxvY2FsaXplXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZGVsXT1cInN0YXR1c0ZvcklkKHNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLnN0b2NrU3RhdGVJZClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sbGVjdGlvbl09XCJzdG9ja1N0YXR1c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNwbGF5RmllbGRdPVwiJ3N0YXRlRGVzY3JpcHRpb24nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImhhbmRsZVN0b2NrU3RhdHVzQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgID48L2NvLWxpc3Qtb2YtdmFsdWVzPlxuICAgICAgICAgIDxjby1pbnB1dC10ZXh0IFtwbGFjZWhvbGRlcl09XCInUkVNQVJLJyB8IGxvY2FsaXplXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiaGFuZGxlU3RvY2tTdGF0dXNSZW1hcmtDaGFuZ2UoJGV2ZW50KVwiPjwvY28taW5wdXQtdGV4dD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZm9vdGVyVGVtcGxhdGU+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi13cmFwcGVyIG9rLWNhbmNlbC1idXR0b25zXCI+XG4gICAgICAgICAgICA8Y28tYnV0dG9uIGNsYXNzPVwic2F2ZS1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlT2tDbGljaygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5DaGVja0R1b3RvbmUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIj5cbiAgICAgICAgICAgIDwvY28tYnV0dG9uPlxuICAgICAgICAgICAgPGNvLWJ1dHRvbiBjbGFzcz1cImNhbmNlbC1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd0NvbmZpcm1hdGlvbkRpYWxvZyA9IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5Dcm9zc1NraW5ueSlcIj5cbiAgICAgICAgICAgIDwvY28tYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9jby1kaWFsb2c+XG4gICAgICA8Y28tc2ltcGxlLWdyaWQgW2RhdGFdPVwiYXJ0aWNsZVN0b2NrSW5mb1wiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzaW1wbGUtZ3JpZFwiXG4gICAgICAgICAgICAgICAgICAgICAgW3Nob3dBZGRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2lubGluZUVkaXRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdFJvdyk9XCJvbkxvY2F0aW9uRHJvcGRvd25DbGljaygpXCJcbiAgICAgICAgICAgICAgICAgICAgICBbc2hvd1Rvb2xiYXJdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgKHNhdmVSb3cpPVwib25Pa0NsaWNrU2VuZExvY2F0aW9ucygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJvbk9rQ2xpY2tTZW5kTG9jYXRpb25zKClcIlxuXG4gICAgICA+XG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1NUT0NLJyB8IGxvY2FsaXplXCIgW2ZpZWxkXT1cIidhbW91bnRJblN0b2NrJ1wiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWRpdFRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IFsobW9kZWwpXT1cInJvd1snYW1vdW50SW5TdG9jayddXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInU1RPQ0snIHwgbG9jYWxpemVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImFtb3VudEluU3RvY2tDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgPjwvY28taW5wdXQtdGV4dD5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbd2lkdGhdPVwiMTUwXCIgW2hlYWRlclRleHRdPVwiJ0xPQ0FUSU9OJyB8IGxvY2FsaXplXCIgW2ZpZWxkXT1cIidsb2NhdGlvbk5vJ1wiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWRpdFRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgICAgICAgIDxjby1saXN0LW9mLXZhbHVlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttb2RlbF09XCJsb2NhdGlvbkZvck51bWJlcihyb3dbJ2xvY2F0aW9uTm8nXSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xsZWN0aW9uXT1cInN0b2NrTG9jYXRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzcGxheUZpZWxkXT1cIidkZXNjcmlwdGlvbidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInTE9DQVRJT04nIHwgbG9jYWxpemVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwibG9jYXRpb25DaGFuZ2VkKHJvdywgJGV2ZW50KVwiXG4gICAgICAgICAgICA+PC9jby1saXN0LW9mLXZhbHVlcz5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiAqbmdJZj1cImFydGljbGVGbGF0Py5iYXRjaFwiIFtoZWFkZXJUZXh0XT1cIidCQVRDSCcgfCBsb2NhbGl6ZVwiIFtmaWVsZF09XCInYmF0Y2hObydcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2VkaXRUZW1wbGF0ZSBsZXQtcm93PVwicm93XCI+XG4gICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBbbW9kZWxdPVwic2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuYmF0Y2hOb1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0JBVENIJyB8IGxvY2FsaXplXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJyb3dbJ2JhdGNoTm8nXSA9ICRldmVudFwiXG4gICAgICAgICAgICA+PC9jby1pbnB1dC10ZXh0PlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uICpuZ0lmPVwiYXJ0aWNsZUZsYXQ/LnNlcmlhbFwiIFtoZWFkZXJUZXh0XT1cIidTRVJJQUxfTk8nIHwgbG9jYWxpemVcIiBbZmllbGRdPVwiJ3NlcmlhbE5vJ1wiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWRpdFRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IFttb2RlbF09XCJzZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5zZXJpYWxOb1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NFUklBTF9OTycgfCBsb2NhbGl6ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwicm93WydzZXJpYWxObyddID0gJGV2ZW50XCJcbiAgICAgICAgICAgID48L2NvLWlucHV0LXRleHQ+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ0FMTE9DQVRFRCcgfCBsb2NhbGl6ZVwiIFtmaWVsZF09XCInc3RvY2tBc3NpZ25lZCdcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2VkaXRUZW1wbGF0ZSBsZXQtcm93PVwicm93XCI+XG4gICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwicm93WydzdG9ja0Fzc2lnbmVkJ11cIj48L3NwYW4+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ0FWQUlMQUJMRV9TVE9DSycgfCBsb2NhbGl6ZVwiIFtmaWVsZF09XCInYW1vdW50SW5TdG9ja0ZyZWUnXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNlZGl0VGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiPlxuICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cInJvd1snYW1vdW50SW5TdG9ja0ZyZWUnXVwiPjwvc3Bhbj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInVkFMVVRBJyB8IGxvY2FsaXplXCIgW2ZpZWxkXT1cIidjdXJyZW5jeSdcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2VkaXRUZW1wbGF0ZSBsZXQtcm93PVwicm93XCI+XG4gICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwicm93WydjdXJyZW5jeSddXCI+PC9zcGFuPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidQVVJDSEFTRV9QUklDRScgfCBsb2NhbGl6ZVwiIFtmaWVsZF09XCIncHVyY2hhc2VQcmljZSdcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2VkaXRUZW1wbGF0ZSBsZXQtcm93PVwicm93XCI+XG4gICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwicm93WydwdXJjaGFzZVByaWNlJ11cIj48L3NwYW4+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XG4gICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1NVUFBMSUVSTlInIHwgbG9jYWxpemVcIiBbZmllbGRdPVwiJ3N1cHBsaWVyTm8nXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNlZGl0VGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiPlxuICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cInJvd1snc3VwcGxpZXJObyddXCI+PC9zcGFuPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxuICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtyZWFkb25seV09XCJ0cnVlXCIgW2hlYWRlclRleHRdPVwiJ1RSQU5TRkVSJyB8IGxvY2FsaXplXCIgW2ZpZWxkXT1cIid0cmFuc2ZlcidcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgICAgICAgIDxjby1pY29uIGNsYXNzPVwibWVudS1pY29uXCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5EZWxpdmVyeVRydWNrKVwiXG4gICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlU3RvY2tUcmFuc2ZlckNsaWNrKHJvdylcIj48L2NvLWljb24+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2VkaXRUZW1wbGF0ZT48L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cbiAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbcmVhZG9ubHldPVwidHJ1ZVwiIFtoZWFkZXJUZXh0XT1cIidTVElDS0VSJyB8IGxvY2FsaXplXCIgW2ZpZWxkXT1cIidzdGlja2VyJ1wiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiPlxuICAgICAgICAgICAgPGNvLWljb24gY2xhc3M9XCJtZW51LWljb25cIiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLlByaW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlblNlbmRNZXRob2REaWFsb2cocm93KVwiPjwvY28taWNvbj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWRpdFRlbXBsYXRlPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxuICAgICAgPC9jby1zaW1wbGUtZ3JpZD5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBTdG9ja0xvY2F0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBJY29uID0gSWNvbjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgYXJ0aWNsZVN0b2NrSW5mbzogQXJ0aWNsZURldGFpbHNCb1tdID0gW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIGFydGljbGVTdG9ja0luZm9ybWF0aW9uOiBBcnRpY2xlU3RvY2tCb1tdID0gW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBhcnRpY2xlKGFydGljbGU6IEFydGljbGVFeHRlbmRlZCkge1xuXG4gIH07XG5cbiAgQElucHV0KClcbiAgcHVibGljIGFydGljbGVGbGF0OiBBcnRpY2xlRmxhdDtcblxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkYXRhV2FyZUhvdXNlQ29kZTogU3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlc1tdID0gW107XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyByZWFkb25seSB0cmFuc2Zlckljb25DbGlja2VkOiBFdmVudEVtaXR0ZXI8QXJ0aWNsZVN0b2NrQm8+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgc2VuZE1ldGhvZERpYWxvZ0NsaWNrZWQ6IEV2ZW50RW1pdHRlcjxQcmludFByaWNlU3RpY2tlcnM+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZWxlY3RlZFdhcmVob3VzZTogU3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlcztcblxuXG4gIHB1YmxpYyBhcnRpY2xlRGV0YWlsczogQXJ0aWNsZURldGFpbHNCbztcbiAgcHVibGljIHNob3dDb25maXJtYXRpb25EaWFsb2c6Ym9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgc2hvd0NvbmZpcm1TdG9ja1Jvdzpib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIGFydGljbGVEZXRhaWxzSW5mb3JtYXRpb246IEFydGljbGVTdG9ja01hbmFnZW1lbnQgPSBuZXcgQXJ0aWNsZVN0b2NrTWFuYWdlbWVudCgpXG4gIHB1YmxpYyBzdG9ja0xvY2F0aW9uczogU3RvY2tMb2NhdGlvbltdID0gW107XG5cbiAgcHVibGljIHN0b2NrU3RhdHVzOiBTdG9ja1N0YXR1c1tdID0gW107XG4gIHB1YmxpYyBzZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YTogQXJ0aWNsZURldGFpbHNCbyA9IG5ldyBBcnRpY2xlRGV0YWlsc0JvKCk7XG5cbiAgcHVibGljIHNlbGVjdGVkTG9jYXRpb25Obzogc3RyaW5nO1xuXG4gIHByaXZhdGUgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgX3N0b2NrU2VydmljZTogU3RvY2tTZXJ2aWNlLFxuICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcblxuICApIHtcbiAgfVxuXG4gICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLl9zdG9ja1NlcnZpY2UuZ2V0U3RvY2tTdGF0ZSgpLnRoZW4oIHJlc3VsdCA9PiB7XG4gICAgICB0aGlzLnN0b2NrU3RhdHVzID0gcmVzdWx0O1xuICAgIH0pO1xuICAgIHRoaXMuX3N1YnMucHVzaCggdGhpcy5fc3RvY2tTZXJ2aWNlLndhcmVob3VzZVNlbGVjdGVkLnN1YnNjcmliZSggIHNlbGVjdGVkV2FyZWhvdXNlID0+IHtcbiAgICAgIHRoaXMuX3N0b2NrU2VydmljZS5nZXRTdG9ja01hbmFnZW1lbnRMb2NhdGlvbnMoc2VsZWN0ZWRXYXJlaG91c2Uud2FyZWhvdXNlTm8pLnRoZW4oIHJlc3VsdCA9PiB7XG4gICAgICAgIHRoaXMuc3RvY2tMb2NhdGlvbnMgPSByZXN1bHQ7XG4gICAgICB9KTtcbiAgICB9KSk7XG5cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuXG5cbiAgfVxuXG4gIHB1YmxpYyBvbkxvY2F0aW9uRHJvcGRvd25DbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLl9zdG9ja1NlcnZpY2UuZ2V0U3RvY2tNYW5hZ2VtZW50TG9jYXRpb25zKHRoaXMuc2VsZWN0ZWRXYXJlaG91c2Uud2FyZWhvdXNlTm8pLnRoZW4oKGxvY2F0aW9ucykgPT4ge1xuICAgICAgdGhpcy5zdG9ja0xvY2F0aW9ucyA9IGxvY2F0aW9ucztcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBsb2NhdGlvbkNoYW5nZWQocm93OiBBcnRpY2xlRGV0YWlsc0JvLCBldmVudDogU3RvY2tMb2NhdGlvbik6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRMb2NhdGlvbk5vID0gZXZlbnQubG9jYXRpb25ObztcbiAgICByb3cubG9jYXRpb25ObyA9IGV2ZW50LmxvY2F0aW9uTm87XG4gICAgdGhpcy5vbkxvY2F0aW9uRHJvcGRvd25DbGljaygpXG4gIH1cblxuICBwdWJsaWMgYW1vdW50SW5TdG9ja0NoYW5nZWQoZGF0YSk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuYW1vdW50SW5TdG9jayA9IGRhdGE7XG4gIH1cblxuICBwdWJsaWMgb3BlblNlbmRNZXRob2REaWFsb2coZGF0YSk6IHZvaWQge1xuICAgIHRoaXMuc2VuZE1ldGhvZERpYWxvZ0NsaWNrZWQuZW1pdChkYXRhKTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVTdG9ja1RyYW5zZmVyQ2xpY2soZXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnRyYW5zZmVySWNvbkNsaWNrZWQuZW1pdChldmVudCk7XG4gIH1cbiAgcHVibGljIG9uT2tDbGlja1NlbmRMb2NhdGlvbnMoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93Q29uZmlybWF0aW9uRGlhbG9nID0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVPa0NsaWNrKCkge1xuICAgIHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuc2VsZWN0ZWQgPSB0cnVlO1xuICAgIHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuZ29vZElkID0gdGhpcy5hcnRpY2xlRmxhdC5nb29kSWQ7XG4gICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5lbnRyeURhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEud2FyZWhvdXNlTm8gPSB0aGlzLnNlbGVjdGVkV2FyZWhvdXNlLndhcmVob3VzZU5vO1xuICAgIHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEubG9jYXRpb25ObyA9IHRoaXMuc2VsZWN0ZWRMb2NhdGlvbk5vPy50b1N0cmluZygpO1xuICAgIHRoaXMuX3N0b2NrU2VydmljZS51cGRhdGVBcnRpY2xlRGV0YWlscyh0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhKS50aGVuKCByZXN1bHQgPT4ge1xuICAgICAgdGhpcy5hcnRpY2xlRGV0YWlsc0luZm9ybWF0aW9uLmdvb2RJZCA9IHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuZ29vZElkPy50b1N0cmluZygpO1xuICAgICAgdGhpcy5hcnRpY2xlRGV0YWlsc0luZm9ybWF0aW9uLndhcmVob3VzZU51bWJlciA9IHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEud2FyZWhvdXNlTm87XG4gICAgICB0aGlzLl9zdG9ja1NlcnZpY2UuZ2V0QXJ0aWNsZURldGFpbHModGhpcy5hcnRpY2xlRGV0YWlsc0luZm9ybWF0aW9uKS50aGVuKChkZXRhaWxzKSA9PiB7XG4gICAgICAgIHRoaXMuYXJ0aWNsZVN0b2NrSW5mbyA9IGRldGFpbHM7XG4gICAgICB9KTtcbiAgICAgIH1cbiAgICApO1xuICAgIHRoaXMuc2hvd0NvbmZpcm1hdGlvbkRpYWxvZyA9IGZhbHNlO1xuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVTdG9ja1N0YXR1c0NoYW5nZShzdGF0dXM6IFN0b2NrU3RhdHVzKSB7XG4gICAgIHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuc3RvY2tTdGF0ZUlkID0gc3RhdHVzLnN0b2NrU3RhdGVJZDtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVTdG9ja1N0YXR1c1JlbWFya0NoYW5nZShyZW1hcms6IHN0cmluZykge1xuICAgIHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuc3RvY2tTdGF0ZVJlbWFyayA9IHJlbWFyaztcbiAgfVxuXG4gIHB1YmxpYyBkaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gKCF0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhPy5zdG9ja1N0YXRlSWQgJiYgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YT8uc3RvY2tTdGF0ZVJlbWFyaz8ubGVuZ3RoIDw9IDEpO1xuICB9XG5cblxuICBwdWJsaWMgc3RhdHVzRm9ySWQoaWQ6IG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLnN0b2NrU3RhdHVzLmZpbmQoIHN0YXR1cyA9PiBzdGF0dXMuc3RvY2tTdGF0ZUlkID09PSBpZCk7XG4gIH1cblxuICBwdWJsaWMgbG9jYXRpb25Gb3JOdW1iZXIobnVtYmVyOiBudW1iZXIpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9ja0xvY2F0aW9ucz8uZmluZCggbG9jYXRpb24gPT4gbG9jYXRpb24ubG9jYXRpb25ObyA9PT0gbnVtYmVyPy50b1N0cmluZygpKTtcbiAgfVxuICBwdWJsaWMgbG9jYXRpb25Gb3JEZXNjcmlwdGlvbihsb2NhdGlvbk5vOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIC8vIEZpbmQgdGhlIGxvY2F0aW9uIGluIHN0b2NrTG9jYXRpb25zIGJ5IGxvY2F0aW9uTm9cbiAgICBjb25zdCBsb2NhdGlvbiA9IHRoaXMuc3RvY2tMb2NhdGlvbnMuZmluZChsb2MgPT4gbG9jLmxvY2F0aW9uTm8gPT09IGxvY2F0aW9uTm8pO1xuICAgIC8vIElmIGxvY2F0aW9uIGlzIGZvdW5kIGFuZCBpdCBoYXMgYSBub24tZW1wdHkgZGVzY3JpcHRpb24sIHJldHVybiBkZXNjcmlwdGlvblxuICAgIC8vIElmIGxvY2F0aW9uIGlzIG5vdCBmb3VuZCBvciBkZXNjcmlwdGlvbiBpcyBlbXB0eSwgcmV0dXJuIGxvY2F0aW9uTm9cbiAgICByZXR1cm4gbG9jYXRpb24gJiYgbG9jYXRpb24uZGVzY3JpcHRpb24gJiYgbG9jYXRpb24uZGVzY3JpcHRpb24udHJpbSgpICE9PSAnJyA/IGxvY2F0aW9uLmRlc2NyaXB0aW9uIDogbG9jYXRpb25ObztcbiAgfVxuXG59XG4iXX0=