@colijnit/sharedcomponents 1.0.54 → 1.0.56

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 (592) hide show
  1. package/.browserslistrc +16 -0
  2. package/.editorconfig +16 -0
  3. package/.vscode/extensions.json +4 -0
  4. package/.vscode/launch.json +20 -0
  5. package/.vscode/tasks.json +42 -0
  6. package/README.md +11 -8
  7. package/Sharedcomponents.iml +11 -0
  8. package/angular.json +177 -0
  9. package/custom-login-bundle.webpack.config.js +3 -0
  10. package/karma.conf.js +44 -0
  11. package/move-assets.js +14 -0
  12. package/package.json +68 -31
  13. package/projects/sharedcomponents/.browserslistrc +16 -0
  14. package/projects/sharedcomponents/README.md +24 -0
  15. package/projects/sharedcomponents/karma.conf.js +44 -0
  16. package/projects/sharedcomponents/ng-package.json +17 -0
  17. package/projects/sharedcomponents/package.json +23 -0
  18. package/projects/sharedcomponents/src/lib/assets/dictionary/text.properties.ts +8 -0
  19. package/projects/sharedcomponents/src/lib/assets/icons/account.svg +1 -0
  20. package/projects/sharedcomponents/src/lib/assets/icons/angle_left_solid.svg +1 -0
  21. package/projects/sharedcomponents/src/lib/assets/icons/angle_right_solid.svg +1 -0
  22. package/projects/sharedcomponents/src/lib/assets/icons/arrow_fat_right.svg +1 -0
  23. package/projects/sharedcomponents/src/lib/assets/icons/arrow_point_left.svg +8 -0
  24. package/projects/sharedcomponents/src/lib/assets/icons/arrow_point_right.svg +4 -0
  25. package/projects/sharedcomponents/src/lib/assets/icons/at_solid.svg +1 -0
  26. package/projects/sharedcomponents/src/lib/assets/icons/bring_forward_regular.svg +1 -0
  27. package/projects/sharedcomponents/src/lib/assets/icons/check_duotone.svg +1 -0
  28. package/projects/sharedcomponents/src/lib/assets/icons/check_round.svg +1 -0
  29. package/projects/sharedcomponents/src/lib/assets/icons/cross_skinny.svg +1 -0
  30. package/projects/sharedcomponents/src/lib/assets/icons/delete_left_regular.svg +1 -0
  31. package/projects/sharedcomponents/src/lib/assets/icons/delivery_truck.svg +12 -0
  32. package/projects/sharedcomponents/src/lib/assets/icons/email.svg +5 -0
  33. package/projects/sharedcomponents/src/lib/assets/icons/envelope_regular.svg +1 -0
  34. package/projects/sharedcomponents/src/lib/assets/icons/eye_regular.svg +1 -0
  35. package/projects/sharedcomponents/src/lib/assets/icons/file_export_regular.svg +1 -0
  36. package/projects/sharedcomponents/src/lib/assets/icons/file_export_solid.svg +1 -0
  37. package/projects/sharedcomponents/src/lib/assets/icons/file_pdf_regular.svg +1 -0
  38. package/projects/sharedcomponents/src/lib/assets/icons/file_pdf_solid.svg +1 -0
  39. package/projects/sharedcomponents/src/lib/assets/icons/file_signature_regular.svg +1 -0
  40. package/projects/sharedcomponents/src/lib/assets/icons/house_blank_regular.svg +1 -0
  41. package/projects/sharedcomponents/src/lib/assets/icons/lock.svg +1 -0
  42. package/projects/sharedcomponents/src/lib/assets/icons/message_sms_regular.svg +1 -0
  43. package/projects/sharedcomponents/src/lib/assets/icons/message_sms_solid.svg +1 -0
  44. package/projects/sharedcomponents/src/lib/assets/icons/pdf.svg +15 -0
  45. package/projects/sharedcomponents/src/lib/assets/icons/print.svg +10 -0
  46. package/projects/sharedcomponents/src/lib/assets/icons/print_regular.svg +1 -0
  47. package/projects/sharedcomponents/src/lib/assets/icons/print_solid.svg +1 -0
  48. package/projects/sharedcomponents/src/lib/assets/icons/signature_field.svg +9 -0
  49. package/projects/sharedcomponents/src/lib/assets/icons/tag_regular.svg +1 -0
  50. package/projects/sharedcomponents/src/lib/assets/icons/x_solid.svg +1 -0
  51. package/projects/sharedcomponents/src/lib/assets/icons/xml.svg +1 -0
  52. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-base-view.component.ts +68 -0
  53. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-day-view.component.ts +35 -0
  54. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-event.component.ts +73 -0
  55. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-events.component.ts +53 -0
  56. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-half-hour-cell.component.ts +81 -0
  57. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-header.component.ts +275 -0
  58. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-hour-cell.component.ts +38 -0
  59. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-hour-view-labels.component.ts +50 -0
  60. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-hour-view.component.ts +46 -0
  61. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-month-view.component.ts +65 -0
  62. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-select-event.component.ts +39 -0
  63. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-view.component.ts +41 -0
  64. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-week-select-view.component.ts +63 -0
  65. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/agenda-week-view.component.ts +50 -0
  66. package/{lib → projects/sharedcomponents/src/lib}/components/date-planning/component/agenda/style/_layout.scss +12 -12
  67. package/{lib → projects/sharedcomponents/src/lib}/components/date-planning/component/agenda/style/_material-definition.scss +2 -1
  68. package/projects/sharedcomponents/src/lib/components/date-planning/component/agenda/view-select.component.ts +43 -0
  69. package/projects/sharedcomponents/src/lib/components/date-planning/component/calendar/calendar-all-months.component.ts +37 -0
  70. package/projects/sharedcomponents/src/lib/components/date-planning/component/calendar/calendar-all-years.component.ts +52 -0
  71. package/projects/sharedcomponents/src/lib/components/date-planning/component/calendar/calendar-header.component.ts +123 -0
  72. package/projects/sharedcomponents/src/lib/components/date-planning/component/calendar/calendar-view.component.ts +200 -0
  73. package/projects/sharedcomponents/src/lib/components/date-planning/component/calendar/calendar.component.ts +35 -0
  74. package/projects/sharedcomponents/src/lib/components/date-planning/date-planning.component.ts +141 -0
  75. package/projects/sharedcomponents/src/lib/components/date-planning/date-planning.module.ts +61 -0
  76. package/projects/sharedcomponents/src/lib/components/date-planning/style/material.scss +7 -0
  77. package/projects/sharedcomponents/src/lib/components/docsign/component/signature/signature.component.ts +82 -0
  78. package/projects/sharedcomponents/src/lib/components/docsign/component/signatures/signatures.component.ts +50 -0
  79. package/projects/sharedcomponents/src/lib/components/docsign/docsign.component.ts +270 -0
  80. package/projects/sharedcomponents/src/lib/components/docsign/docsign.module.ts +22 -0
  81. package/projects/sharedcomponents/src/lib/components/key-pad/key-pad.component.ts +216 -0
  82. package/projects/sharedcomponents/src/lib/components/key-pad/key-pad.module.ts +20 -0
  83. package/projects/sharedcomponents/src/lib/components/layout-switcher/layout-switcher.component.ts +98 -0
  84. package/projects/sharedcomponents/src/lib/components/layout-switcher/layout-switcher.module.ts +21 -0
  85. package/projects/sharedcomponents/src/lib/components/linear-gauge/co-linear-gauge.component.ts +57 -0
  86. package/projects/sharedcomponents/src/lib/components/linear-gauge/co-linear-gauge.module.ts +17 -0
  87. package/projects/sharedcomponents/src/lib/components/login/components/login-base.component.ts +98 -0
  88. package/projects/sharedcomponents/src/lib/components/login/components/login-change-password.component.ts +194 -0
  89. package/projects/sharedcomponents/src/lib/components/login/components/login-mfa-code-entry.component.ts +41 -0
  90. package/projects/sharedcomponents/src/lib/components/login/components/login-mfa-code-setup.component.ts +44 -0
  91. package/projects/sharedcomponents/src/lib/components/login/components/login-username-password.component.ts +167 -0
  92. package/projects/sharedcomponents/src/lib/components/login/localization/login-translation.ts +15 -0
  93. package/projects/sharedcomponents/src/lib/components/login/login.component.ts +137 -0
  94. package/projects/sharedcomponents/src/lib/components/login/login.module.ts +53 -0
  95. package/projects/sharedcomponents/src/lib/components/login/service/login-adapter.service.ts +58 -0
  96. package/projects/sharedcomponents/src/lib/components/login/service/login.service.ts +50 -0
  97. package/projects/sharedcomponents/src/lib/components/screen-config-generator/enums/field-type.enum.ts +9 -0
  98. package/projects/sharedcomponents/src/lib/components/screen-config-generator/models/Config.ts +6 -0
  99. package/projects/sharedcomponents/src/lib/components/screen-config-generator/models/Field.ts +8 -0
  100. package/projects/sharedcomponents/src/lib/components/screen-config-generator/models/Header.ts +8 -0
  101. package/projects/sharedcomponents/src/lib/components/screen-config-generator/models/Module.ts +6 -0
  102. package/projects/sharedcomponents/src/lib/components/screen-config-generator/models/Rubric.ts +10 -0
  103. package/projects/sharedcomponents/src/lib/components/screen-config-generator/models/ScreenConfig.ts +9 -0
  104. package/projects/sharedcomponents/src/lib/components/screen-config-generator/models/SubCat.ts +9 -0
  105. package/projects/sharedcomponents/src/lib/components/screen-config-generator/models/SubRubric.ts +8 -0
  106. package/projects/sharedcomponents/src/lib/components/screen-config-generator/screen-config-generator.component.ts +539 -0
  107. package/projects/sharedcomponents/src/lib/components/screen-config-generator/screen-config-generator.module.ts +21 -0
  108. package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/layout-selection/layout-selection.component.ts +91 -0
  109. package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/layout-selection/layout-selection.module.ts +19 -0
  110. package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/printer-selection/printer-selection.component.ts +84 -0
  111. package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/printer-selection/printer-selection.module.ts +19 -0
  112. package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/send-method-email/send-method-email.component.ts +63 -0
  113. package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/send-method-email/send-method-email.module.ts +24 -0
  114. package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.component.ts +38 -0
  115. package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/send-method-pdf/send-method-pdf.module.ts +21 -0
  116. package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/send-method-pdf/style/_layout.scss +25 -0
  117. package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/send-method-pdf/style/_material-definition.scss +5 -0
  118. package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/send-method-pdf/style/_theme.scss +5 -0
  119. package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.component.ts +60 -0
  120. package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.module.ts +26 -0
  121. package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/signature-button/signature-button.component.ts +42 -0
  122. package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/signature-button/signature-button.module.ts +19 -0
  123. package/projects/sharedcomponents/src/lib/components/send-method-dialog/components/signature-button/style/material.scss +4 -0
  124. package/projects/sharedcomponents/src/lib/components/send-method-dialog/model/email-address-viewmodel.ts +9 -0
  125. package/projects/sharedcomponents/src/lib/components/send-method-dialog/send-method-dialog.component.ts +325 -0
  126. package/projects/sharedcomponents/src/lib/components/send-method-dialog/send-method-dialog.module.ts +32 -0
  127. package/projects/sharedcomponents/src/lib/components/send-method-dialog/send-method-params.interface.ts +13 -0
  128. package/projects/sharedcomponents/src/lib/components/send-method-dialog/service/send-method.service.ts +63 -0
  129. package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/style/_layout.scss +1 -1
  130. package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/style/material.scss +1 -0
  131. package/projects/sharedcomponents/src/lib/components/simple-tags/simple-tags.component.ts +243 -0
  132. package/projects/sharedcomponents/src/lib/components/simple-tags/simple-tags.module.ts +24 -0
  133. package/projects/sharedcomponents/src/lib/components/statusbar/statusbar-popup.component.ts +100 -0
  134. package/projects/sharedcomponents/src/lib/components/statusbar/statusbar.component.ts +107 -0
  135. package/projects/sharedcomponents/src/lib/components/statusbar/statusbar.module.ts +25 -0
  136. package/projects/sharedcomponents/src/lib/components/stock/components/allocation-stock-history/allocation-stock-history.component.ts +45 -0
  137. package/projects/sharedcomponents/src/lib/components/stock/components/order-commission-stock-history/order-commission-stock-history.component.ts +45 -0
  138. package/projects/sharedcomponents/src/lib/components/stock/components/order-stock-history/order-stock-history.component.ts +45 -0
  139. package/projects/sharedcomponents/src/lib/components/stock/components/order-stock-tab/order-stock-tab.component.ts +43 -0
  140. package/projects/sharedcomponents/src/lib/components/stock/components/order-supply-stock-history/order-supply-stock-history.component.ts +45 -0
  141. package/projects/sharedcomponents/src/lib/components/stock/components/order-tab/order-tab.component.ts +71 -0
  142. package/projects/sharedcomponents/src/lib/components/stock/components/stock-history/stock-history.component.ts +52 -0
  143. package/projects/sharedcomponents/src/lib/components/stock/components/stock-location/stock-location.component.ts +276 -0
  144. package/projects/sharedcomponents/src/lib/components/stock/components/stock-prognose/stock-prognose.component.ts +49 -0
  145. package/projects/sharedcomponents/src/lib/components/stock/components/stock-tab/stock-tab.component.ts +40 -0
  146. package/projects/sharedcomponents/src/lib/components/stock/localization/translation.ts +60 -0
  147. package/projects/sharedcomponents/src/lib/components/stock/stock-history-tabs/stock-history-tabs.component.ts +32 -0
  148. package/projects/sharedcomponents/src/lib/components/stock/stock-information/stock-information.component.ts +56 -0
  149. package/projects/sharedcomponents/src/lib/components/stock/stock-information-grid/stock-information-grid.component.ts +500 -0
  150. package/projects/sharedcomponents/src/lib/components/stock/stock-tabs/stock-tabs.component.ts +276 -0
  151. package/{lib/components/stock/stock-transfer/co-drop-down-list-fields.interface.d.ts → projects/sharedcomponents/src/lib/components/stock/stock-transfer/co-drop-down-list-fields.interface.ts} +2 -2
  152. package/projects/sharedcomponents/src/lib/components/stock/stock-transfer/stock-change-amount.component.ts +77 -0
  153. package/projects/sharedcomponents/src/lib/components/stock/stock-transfer/stock-transfer.component.ts +178 -0
  154. package/projects/sharedcomponents/src/lib/components/stock/stock.component.ts +228 -0
  155. package/projects/sharedcomponents/src/lib/components/stock/stock.module.ts +97 -0
  156. package/projects/sharedcomponents/src/lib/components/stock-statusbar/stock-statusbar.component.ts +23 -0
  157. package/projects/sharedcomponents/src/lib/components/stock-statusbar/stock-statusbar.module.ts +17 -0
  158. package/projects/sharedcomponents/src/lib/components/tab-bar/tab-bar.component.ts +106 -0
  159. package/projects/sharedcomponents/src/lib/components/tab-bar/tab-bar.module.ts +20 -0
  160. package/projects/sharedcomponents/src/lib/components/tab-bar/tab.interface.ts +5 -0
  161. package/projects/sharedcomponents/src/lib/components/tags/component/tag-join-label/tag-join-label.component.ts +61 -0
  162. package/projects/sharedcomponents/src/lib/components/tags/component/tag-label/tag-label.component.ts +47 -0
  163. package/projects/sharedcomponents/src/lib/components/tags/component/treeview/model/tree-view-node-item.ts +132 -0
  164. package/projects/sharedcomponents/src/lib/components/tags/component/treeview/treeview.component.ts +258 -0
  165. package/projects/sharedcomponents/src/lib/components/tags/tags.component.ts +192 -0
  166. package/projects/sharedcomponents/src/lib/components/tags/tags.module.ts +27 -0
  167. package/projects/sharedcomponents/src/lib/directives/click-outside.directive.ts +25 -0
  168. package/projects/sharedcomponents/src/lib/enum/calendar-view.enum.ts +8 -0
  169. package/projects/sharedcomponents/src/lib/enum/gauge-color.enum.ts +8 -0
  170. package/{lib/enum/icon.enum.d.ts → projects/sharedcomponents/src/lib/enum/icon.enum.ts} +3 -2
  171. package/projects/sharedcomponents/src/lib/enum/keyboard-code.enum.ts +30 -0
  172. package/projects/sharedcomponents/src/lib/enum/language-code.enum.ts +6 -0
  173. package/projects/sharedcomponents/src/lib/enum/login-component-extra-action-type.enum.ts +4 -0
  174. package/projects/sharedcomponents/src/lib/enum/login-component-page.type.enum.ts +6 -0
  175. package/projects/sharedcomponents/src/lib/enum/login-component-query-variables-name.enum.ts +5 -0
  176. package/{lib/enum/month.enum.d.ts → projects/sharedcomponents/src/lib/enum/month.enum.ts} +2 -1
  177. package/projects/sharedcomponents/src/lib/enum/tag-category.enum.ts +20 -0
  178. package/projects/sharedcomponents/src/lib/enum/thumb-three-way-state.ts +18 -0
  179. package/{lib/enum/time-period.enum.d.ts → projects/sharedcomponents/src/lib/enum/time-period.enum.ts} +2 -1
  180. package/projects/sharedcomponents/src/lib/localization/localization.module.ts +17 -0
  181. package/projects/sharedcomponents/src/lib/localization/localize.pipe.ts +21 -0
  182. package/projects/sharedcomponents/src/lib/localization/localize.service.ts +28 -0
  183. package/projects/sharedcomponents/src/lib/localization/translation.ts +2 -0
  184. package/projects/sharedcomponents/src/lib/model/agenda-event-per-day.model.ts +6 -0
  185. package/projects/sharedcomponents/src/lib/model/agenda-event.model.ts +19 -0
  186. package/projects/sharedcomponents/src/lib/model/agenda-null-objects.ts +11 -0
  187. package/projects/sharedcomponents/src/lib/model/constant/all-months.ts +17 -0
  188. package/projects/sharedcomponents/src/lib/model/date-range.ts +10 -0
  189. package/projects/sharedcomponents/src/lib/model/day.model.ts +9 -0
  190. package/projects/sharedcomponents/src/lib/model/icon-svg.ts +37 -0
  191. package/projects/sharedcomponents/src/lib/model/month.model.ts +11 -0
  192. package/projects/sharedcomponents/src/lib/model/send-method.ts +13 -0
  193. package/projects/sharedcomponents/src/lib/model/settings.ts +5 -0
  194. package/projects/sharedcomponents/src/lib/model/tag-tree-item.bo.ts +28 -0
  195. package/projects/sharedcomponents/src/lib/model/time-window.bo.ts +21 -0
  196. package/projects/sharedcomponents/src/lib/model/tree-object.ts +13 -0
  197. package/projects/sharedcomponents/src/lib/model/tree-view-default.model.ts +107 -0
  198. package/projects/sharedcomponents/src/lib/model/tree-view-node-default.model.ts +196 -0
  199. package/projects/sharedcomponents/src/lib/model/tree-view-node-item-options.model.ts +12 -0
  200. package/projects/sharedcomponents/src/lib/model/tree-view-node.model.ts +150 -0
  201. package/projects/sharedcomponents/src/lib/model/tree-view.model.ts +57 -0
  202. package/projects/sharedcomponents/src/lib/model/week.model.ts +5 -0
  203. package/projects/sharedcomponents/src/lib/model/weekday.model.ts +17 -0
  204. package/projects/sharedcomponents/src/lib/pipe/array-number.pipe.ts +14 -0
  205. package/projects/sharedcomponents/src/lib/pipe/master-pipes.ts +7 -0
  206. package/projects/sharedcomponents/src/lib/pipe/ucfirst.pipe.ts +14 -0
  207. package/projects/sharedcomponents/src/lib/service/dictionary.service.ts +86 -0
  208. package/projects/sharedcomponents/src/lib/service/icon-cache.service.ts +51 -0
  209. package/projects/sharedcomponents/src/lib/service/options.service.ts +43 -0
  210. package/projects/sharedcomponents/src/lib/service/shared-connector.service.ts +401 -0
  211. package/projects/sharedcomponents/src/lib/service/shared-initializer.service.ts +29 -0
  212. package/projects/sharedcomponents/src/lib/service/shared.service.ts +49 -0
  213. package/projects/sharedcomponents/src/lib/service/stock.service.ts +124 -0
  214. package/projects/sharedcomponents/src/lib/utils/array-utils.ts +225 -0
  215. package/projects/sharedcomponents/src/lib/utils/calendar.utils.ts +75 -0
  216. package/projects/sharedcomponents/src/lib/utils/check-precision-and-scale-result.ts +5 -0
  217. package/projects/sharedcomponents/src/lib/utils/check-within-stepped-bounds-result.ts +8 -0
  218. package/projects/sharedcomponents/src/lib/utils/css-utils.ts +275 -0
  219. package/projects/sharedcomponents/src/lib/utils/date-utils.ts +302 -0
  220. package/projects/sharedcomponents/src/lib/utils/function/not-nill.function.ts +4 -0
  221. package/projects/sharedcomponents/src/lib/utils/is-nill.function.ts +4 -0
  222. package/projects/sharedcomponents/src/lib/utils/map-utils.ts +44 -0
  223. package/projects/sharedcomponents/src/lib/utils/number-utils.ts +439 -0
  224. package/projects/sharedcomponents/src/lib/utils/object-utils.ts +310 -0
  225. package/projects/sharedcomponents/src/lib/utils/string-utils.ts +67 -0
  226. package/projects/sharedcomponents/src/lib/utils/tree-utils.ts +63 -0
  227. package/{public-api.d.ts → projects/sharedcomponents/src/public-api.ts} +7 -0
  228. package/projects/sharedcomponents/src/test.ts +27 -0
  229. package/projects/sharedcomponents/tsconfig.lib.json +18 -0
  230. package/projects/sharedcomponents/tsconfig.lib.prod.json +10 -0
  231. package/projects/sharedcomponents/tsconfig.spec.json +17 -0
  232. package/script/create-bundle-version.js +19 -0
  233. package/script/merge-icons.js +39 -0
  234. package/src/app/app.component.scss +31 -0
  235. package/src/app/app.component.spec.ts +31 -0
  236. package/src/app/app.component.ts +454 -0
  237. package/src/app/app.module.ts +69 -0
  238. package/src/app/bundle/index.html +14 -0
  239. package/src/app/bundle/login/login-bundle.component.scss +6 -0
  240. package/src/app/bundle/login/login-bundle.component.ts +111 -0
  241. package/src/app/bundle/login/login-bundle.module.ts +30 -0
  242. package/src/app/bundle/main-login-bundle.ts +11 -0
  243. package/src/app/bundle/polyfills.ts +63 -0
  244. package/src/app/test-data.service.ts +60 -0
  245. package/src/assets/.gitkeep +0 -0
  246. package/src/environments/environment.bundle.prod.ts +3 -0
  247. package/src/environments/environment.prod.ts +3 -0
  248. package/src/environments/environment.ts +16 -0
  249. package/src/favicon.ico +0 -0
  250. package/src/index.html +13 -0
  251. package/src/main.ts +12 -0
  252. package/src/polyfills.ts +53 -0
  253. package/src/styles.scss +54 -0
  254. package/src/test.ts +26 -0
  255. package/tsconfig.app.json +15 -0
  256. package/tsconfig.bundle.json +38 -0
  257. package/tsconfig.json +64 -0
  258. package/tsconfig.spec.json +18 -0
  259. package/webpack.login.bundle.config.js +32 -0
  260. package/bundles/colijnit-sharedcomponents.umd.js +0 -6630
  261. package/bundles/colijnit-sharedcomponents.umd.js.map +0 -1
  262. package/colijnit-sharedcomponents.d.ts +0 -72
  263. package/colijnit-sharedcomponents.metadata.json +0 -1
  264. package/esm2015/colijnit-sharedcomponents.js +0 -73
  265. package/esm2015/lib/assets/dictionary/text.properties.js +0 -11
  266. package/esm2015/lib/components/date-planning/component/agenda/agenda-base-view.component.js +0 -61
  267. package/esm2015/lib/components/date-planning/component/agenda/agenda-day-view.component.js +0 -32
  268. package/esm2015/lib/components/date-planning/component/agenda/agenda-event.component.js +0 -54
  269. package/esm2015/lib/components/date-planning/component/agenda/agenda-events.component.js +0 -43
  270. package/esm2015/lib/components/date-planning/component/agenda/agenda-half-hour-cell.component.js +0 -68
  271. package/esm2015/lib/components/date-planning/component/agenda/agenda-header.component.js +0 -232
  272. package/esm2015/lib/components/date-planning/component/agenda/agenda-hour-cell.component.js +0 -36
  273. package/esm2015/lib/components/date-planning/component/agenda/agenda-hour-view-labels.component.js +0 -50
  274. package/esm2015/lib/components/date-planning/component/agenda/agenda-hour-view.component.js +0 -46
  275. package/esm2015/lib/components/date-planning/component/agenda/agenda-month-view.component.js +0 -61
  276. package/esm2015/lib/components/date-planning/component/agenda/agenda-select-event.component.js +0 -39
  277. package/esm2015/lib/components/date-planning/component/agenda/agenda-view.component.js +0 -35
  278. package/esm2015/lib/components/date-planning/component/agenda/agenda-week-select-view.component.js +0 -64
  279. package/esm2015/lib/components/date-planning/component/agenda/agenda-week-view.component.js +0 -48
  280. package/esm2015/lib/components/date-planning/component/agenda/view-select.component.js +0 -42
  281. package/esm2015/lib/components/date-planning/component/calendar/calendar-all-months.component.js +0 -34
  282. package/esm2015/lib/components/date-planning/component/calendar/calendar-all-years.component.js +0 -48
  283. package/esm2015/lib/components/date-planning/component/calendar/calendar-header.component.js +0 -107
  284. package/esm2015/lib/components/date-planning/component/calendar/calendar-view.component.js +0 -178
  285. package/esm2015/lib/components/date-planning/component/calendar/calendar.component.js +0 -34
  286. package/esm2015/lib/components/date-planning/date-planning.component.js +0 -108
  287. package/esm2015/lib/components/date-planning/date-planning.module.js +0 -63
  288. package/esm2015/lib/components/docsign/component/signature/signature.component.js +0 -75
  289. package/esm2015/lib/components/docsign/component/signatures/signatures.component.js +0 -44
  290. package/esm2015/lib/components/docsign/docsign.component.js +0 -242
  291. package/esm2015/lib/components/docsign/docsign.module.js +0 -23
  292. package/esm2015/lib/components/key-pad/key-pad.component.js +0 -200
  293. package/esm2015/lib/components/key-pad/key-pad.module.js +0 -22
  294. package/esm2015/lib/components/layout-switcher/layout-switcher.component.js +0 -74
  295. package/esm2015/lib/components/layout-switcher/layout-switcher.module.js +0 -21
  296. package/esm2015/lib/components/linear-gauge/co-linear-gauge.component.js +0 -59
  297. package/esm2015/lib/components/linear-gauge/co-linear-gauge.module.js +0 -19
  298. package/esm2015/lib/components/send-method-dialog/components/layout-selection/layout-selection.component.js +0 -79
  299. package/esm2015/lib/components/send-method-dialog/components/layout-selection/layout-selection.module.js +0 -21
  300. package/esm2015/lib/components/send-method-dialog/components/printer-selection/printer-selection.component.js +0 -85
  301. package/esm2015/lib/components/send-method-dialog/components/printer-selection/printer-selection.module.js +0 -21
  302. package/esm2015/lib/components/send-method-dialog/components/send-method-email/send-method-email.component.js +0 -64
  303. package/esm2015/lib/components/send-method-dialog/components/send-method-email/send-method-email.module.js +0 -26
  304. package/esm2015/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.component.js +0 -59
  305. package/esm2015/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.module.js +0 -28
  306. package/esm2015/lib/components/send-method-dialog/components/signature-button/signature-button.component.js +0 -38
  307. package/esm2015/lib/components/send-method-dialog/components/signature-button/signature-button.module.js +0 -21
  308. package/esm2015/lib/components/send-method-dialog/model/email-address-viewmodel.js +0 -7
  309. package/esm2015/lib/components/send-method-dialog/send-method-dialog.component.js +0 -243
  310. package/esm2015/lib/components/send-method-dialog/send-method-dialog.module.js +0 -33
  311. package/esm2015/lib/components/send-method-dialog/send-method-params.interface.js +0 -2
  312. package/esm2015/lib/components/send-method-dialog/service/send-method.service.js +0 -59
  313. package/esm2015/lib/components/simple-tags/simple-tags.component.js +0 -229
  314. package/esm2015/lib/components/simple-tags/simple-tags.module.js +0 -26
  315. package/esm2015/lib/components/statusbar/statusbar-popup.component.js +0 -97
  316. package/esm2015/lib/components/statusbar/statusbar.component.js +0 -81
  317. package/esm2015/lib/components/statusbar/statusbar.module.js +0 -27
  318. package/esm2015/lib/components/stock/components/allocation-stock-history/allocation-stock-history.component.js +0 -46
  319. package/esm2015/lib/components/stock/components/order-commission-stock-history/order-commission-stock-history.component.js +0 -46
  320. package/esm2015/lib/components/stock/components/order-stock-history/order-stock-history.component.js +0 -46
  321. package/esm2015/lib/components/stock/components/order-stock-tab/order-stock-tab.component.js +0 -46
  322. package/esm2015/lib/components/stock/components/order-supply-stock-history/order-supply-stock-history.component.js +0 -46
  323. package/esm2015/lib/components/stock/components/order-tab/order-tab.component.js +0 -65
  324. package/esm2015/lib/components/stock/components/stock-history/stock-history.component.js +0 -51
  325. package/esm2015/lib/components/stock/components/stock-location/stock-location.component.js +0 -236
  326. package/esm2015/lib/components/stock/components/stock-prognose/stock-prognose.component.js +0 -51
  327. package/esm2015/lib/components/stock/components/stock-tab/stock-tab.component.js +0 -40
  328. package/esm2015/lib/components/stock/localization/translation.js +0 -63
  329. package/esm2015/lib/components/stock/stock-history-tabs/stock-history-tabs.component.js +0 -33
  330. package/esm2015/lib/components/stock/stock-information/stock-information.component.js +0 -48
  331. package/esm2015/lib/components/stock/stock-information-grid/stock-information-grid.component.js +0 -457
  332. package/esm2015/lib/components/stock/stock-tabs/stock-tabs.component.js +0 -220
  333. package/esm2015/lib/components/stock/stock-transfer/co-drop-down-list-fields.interface.js +0 -2
  334. package/esm2015/lib/components/stock/stock-transfer/stock-change-amount.component.js +0 -72
  335. package/esm2015/lib/components/stock/stock-transfer/stock-transfer.component.js +0 -147
  336. package/esm2015/lib/components/stock/stock.component.js +0 -186
  337. package/esm2015/lib/components/stock/stock.module.js +0 -80
  338. package/esm2015/lib/components/stock-statusbar/stock-statusbar.component.js +0 -23
  339. package/esm2015/lib/components/stock-statusbar/stock-statusbar.module.js +0 -19
  340. package/esm2015/lib/components/tab-bar/tab-bar.component.js +0 -85
  341. package/esm2015/lib/components/tab-bar/tab-bar.module.js +0 -21
  342. package/esm2015/lib/components/tab-bar/tab.interface.js +0 -2
  343. package/esm2015/lib/enum/calendar-view.enum.js +0 -8
  344. package/esm2015/lib/enum/gauge-color.enum.js +0 -10
  345. package/esm2015/lib/enum/icon.enum.js +0 -38
  346. package/esm2015/lib/enum/keyboard-code.enum.js +0 -32
  347. package/esm2015/lib/enum/language-code.enum.js +0 -8
  348. package/esm2015/lib/enum/month.enum.js +0 -17
  349. package/esm2015/lib/enum/thumb-three-way-state.js +0 -19
  350. package/esm2015/lib/enum/time-period.enum.js +0 -11
  351. package/esm2015/lib/localization/localization.module.js +0 -19
  352. package/esm2015/lib/localization/localize.pipe.js +0 -26
  353. package/esm2015/lib/localization/localize.service.js +0 -30
  354. package/esm2015/lib/localization/translation.js +0 -3
  355. package/esm2015/lib/model/agenda-event-per-day.model.js +0 -6
  356. package/esm2015/lib/model/agenda-event.model.js +0 -8
  357. package/esm2015/lib/model/agenda-null-objects.js +0 -11
  358. package/esm2015/lib/model/constant/all-months.js +0 -17
  359. package/esm2015/lib/model/date-range.js +0 -5
  360. package/esm2015/lib/model/day.model.js +0 -7
  361. package/esm2015/lib/model/icon-svg.js +0 -37
  362. package/esm2015/lib/model/month.model.js +0 -11
  363. package/esm2015/lib/model/send-method.js +0 -8
  364. package/esm2015/lib/model/settings.js +0 -4
  365. package/esm2015/lib/model/time-window.bo.js +0 -26
  366. package/esm2015/lib/model/week.model.js +0 -6
  367. package/esm2015/lib/model/weekday.model.js +0 -10
  368. package/esm2015/lib/pipe/array-number.pipe.js +0 -15
  369. package/esm2015/lib/pipe/master-pipes.js +0 -7
  370. package/esm2015/lib/pipe/ucfirst.pipe.js +0 -16
  371. package/esm2015/lib/service/dictionary.service.js +0 -76
  372. package/esm2015/lib/service/icon-cache.service.js +0 -51
  373. package/esm2015/lib/service/options.service.js +0 -48
  374. package/esm2015/lib/service/shared-connector.service.js +0 -424
  375. package/esm2015/lib/service/shared.service.js +0 -60
  376. package/esm2015/lib/service/stock.service.js +0 -110
  377. package/esm2015/lib/utils/calendar.utils.js +0 -69
  378. package/esm2015/lib/utils/date-utils.js +0 -264
  379. package/esm2015/lib/utils/function/not-nill.function.js +0 -5
  380. package/esm2015/lib/utils/map-utils.js +0 -41
  381. package/esm2015/lib/utils/string-utils.js +0 -64
  382. package/esm2015/public-api.js +0 -24
  383. package/fesm2015/colijnit-sharedcomponents.js +0 -6884
  384. package/fesm2015/colijnit-sharedcomponents.js.map +0 -1
  385. package/lib/assets/dictionary/text.properties.d.ts +0 -3
  386. package/lib/components/date-planning/component/agenda/agenda-base-view.component.d.ts +0 -21
  387. package/lib/components/date-planning/component/agenda/agenda-day-view.component.d.ts +0 -6
  388. package/lib/components/date-planning/component/agenda/agenda-event.component.d.ts +0 -17
  389. package/lib/components/date-planning/component/agenda/agenda-events.component.d.ts +0 -12
  390. package/lib/components/date-planning/component/agenda/agenda-half-hour-cell.component.d.ts +0 -18
  391. package/lib/components/date-planning/component/agenda/agenda-header.component.d.ts +0 -47
  392. package/lib/components/date-planning/component/agenda/agenda-hour-cell.component.d.ts +0 -9
  393. package/lib/components/date-planning/component/agenda/agenda-hour-view-labels.component.d.ts +0 -8
  394. package/lib/components/date-planning/component/agenda/agenda-hour-view.component.d.ts +0 -7
  395. package/lib/components/date-planning/component/agenda/agenda-month-view.component.d.ts +0 -10
  396. package/lib/components/date-planning/component/agenda/agenda-select-event.component.d.ts +0 -12
  397. package/lib/components/date-planning/component/agenda/agenda-view.component.d.ts +0 -11
  398. package/lib/components/date-planning/component/agenda/agenda-week-select-view.component.d.ts +0 -10
  399. package/lib/components/date-planning/component/agenda/agenda-week-view.component.d.ts +0 -8
  400. package/lib/components/date-planning/component/agenda/view-select.component.d.ts +0 -11
  401. package/lib/components/date-planning/component/calendar/calendar-all-months.component.d.ts +0 -9
  402. package/lib/components/date-planning/component/calendar/calendar-all-years.component.d.ts +0 -9
  403. package/lib/components/date-planning/component/calendar/calendar-header.component.d.ts +0 -23
  404. package/lib/components/date-planning/component/calendar/calendar-view.component.d.ts +0 -31
  405. package/lib/components/date-planning/component/calendar/calendar.component.d.ts +0 -10
  406. package/lib/components/date-planning/date-planning.component.d.ts +0 -26
  407. package/lib/components/date-planning/date-planning.module.d.ts +0 -2
  408. package/lib/components/date-planning/style/material.scss +0 -5
  409. package/lib/components/docsign/component/signature/signature.component.d.ts +0 -16
  410. package/lib/components/docsign/component/signatures/signatures.component.d.ts +0 -12
  411. package/lib/components/docsign/docsign.component.d.ts +0 -94
  412. package/lib/components/docsign/docsign.module.d.ts +0 -2
  413. package/lib/components/key-pad/key-pad.component.d.ts +0 -38
  414. package/lib/components/key-pad/key-pad.module.d.ts +0 -2
  415. package/lib/components/layout-switcher/layout-switcher.component.d.ts +0 -16
  416. package/lib/components/layout-switcher/layout-switcher.module.d.ts +0 -2
  417. package/lib/components/linear-gauge/co-linear-gauge.component.d.ts +0 -11
  418. package/lib/components/linear-gauge/co-linear-gauge.module.d.ts +0 -2
  419. package/lib/components/send-method-dialog/components/layout-selection/layout-selection.component.d.ts +0 -19
  420. package/lib/components/send-method-dialog/components/layout-selection/layout-selection.module.d.ts +0 -2
  421. package/lib/components/send-method-dialog/components/printer-selection/printer-selection.component.d.ts +0 -19
  422. package/lib/components/send-method-dialog/components/printer-selection/printer-selection.module.d.ts +0 -2
  423. package/lib/components/send-method-dialog/components/send-method-email/send-method-email.component.d.ts +0 -14
  424. package/lib/components/send-method-dialog/components/send-method-email/send-method-email.module.d.ts +0 -2
  425. package/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.component.d.ts +0 -12
  426. package/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.module.d.ts +0 -2
  427. package/lib/components/send-method-dialog/components/signature-button/signature-button.component.d.ts +0 -12
  428. package/lib/components/send-method-dialog/components/signature-button/signature-button.module.d.ts +0 -2
  429. package/lib/components/send-method-dialog/model/email-address-viewmodel.d.ts +0 -5
  430. package/lib/components/send-method-dialog/send-method-dialog.component.d.ts +0 -68
  431. package/lib/components/send-method-dialog/send-method-dialog.module.d.ts +0 -2
  432. package/lib/components/send-method-dialog/send-method-params.interface.d.ts +0 -13
  433. package/lib/components/send-method-dialog/service/send-method.service.d.ts +0 -23
  434. package/lib/components/simple-tags/simple-tags.component.d.ts +0 -31
  435. package/lib/components/simple-tags/simple-tags.module.d.ts +0 -2
  436. package/lib/components/statusbar/statusbar-popup.component.d.ts +0 -21
  437. package/lib/components/statusbar/statusbar.component.d.ts +0 -26
  438. package/lib/components/statusbar/statusbar.module.d.ts +0 -2
  439. package/lib/components/stock/components/allocation-stock-history/allocation-stock-history.component.d.ts +0 -9
  440. package/lib/components/stock/components/order-commission-stock-history/order-commission-stock-history.component.d.ts +0 -9
  441. package/lib/components/stock/components/order-stock-history/order-stock-history.component.d.ts +0 -9
  442. package/lib/components/stock/components/order-stock-tab/order-stock-tab.component.d.ts +0 -11
  443. package/lib/components/stock/components/order-supply-stock-history/order-supply-stock-history.component.d.ts +0 -9
  444. package/lib/components/stock/components/order-tab/order-tab.component.d.ts +0 -20
  445. package/lib/components/stock/components/stock-history/stock-history.component.d.ts +0 -13
  446. package/lib/components/stock/components/stock-location/stock-location.component.d.ts +0 -50
  447. package/lib/components/stock/components/stock-prognose/stock-prognose.component.d.ts +0 -11
  448. package/lib/components/stock/components/stock-tab/stock-tab.component.d.ts +0 -9
  449. package/lib/components/stock/localization/translation.d.ts +0 -60
  450. package/lib/components/stock/stock-history-tabs/stock-history-tabs.component.d.ts +0 -7
  451. package/lib/components/stock/stock-information/stock-information.component.d.ts +0 -8
  452. package/lib/components/stock/stock-information-grid/stock-information-grid.component.d.ts +0 -75
  453. package/lib/components/stock/stock-tabs/stock-tabs.component.d.ts +0 -54
  454. package/lib/components/stock/stock-transfer/stock-change-amount.component.d.ts +0 -18
  455. package/lib/components/stock/stock-transfer/stock-transfer.component.d.ts +0 -42
  456. package/lib/components/stock/stock.component.d.ts +0 -57
  457. package/lib/components/stock/stock.module.d.ts +0 -2
  458. package/lib/components/stock-statusbar/stock-statusbar.component.d.ts +0 -4
  459. package/lib/components/stock-statusbar/stock-statusbar.module.d.ts +0 -2
  460. package/lib/components/tab-bar/tab-bar.component.d.ts +0 -21
  461. package/lib/components/tab-bar/tab-bar.module.d.ts +0 -2
  462. package/lib/components/tab-bar/tab.interface.d.ts +0 -5
  463. package/lib/enum/calendar-view.enum.d.ts +0 -6
  464. package/lib/enum/gauge-color.enum.d.ts +0 -8
  465. package/lib/enum/keyboard-code.enum.d.ts +0 -30
  466. package/lib/enum/language-code.enum.d.ts +0 -6
  467. package/lib/enum/thumb-three-way-state.d.ts +0 -6
  468. package/lib/localization/localization.module.d.ts +0 -2
  469. package/lib/localization/localize.pipe.d.ts +0 -7
  470. package/lib/localization/localize.service.d.ts +0 -7
  471. package/lib/localization/translation.d.ts +0 -2
  472. package/lib/model/agenda-event-per-day.model.d.ts +0 -5
  473. package/lib/model/agenda-event.model.d.ts +0 -16
  474. package/lib/model/agenda-null-objects.d.ts +0 -10
  475. package/lib/model/constant/all-months.d.ts +0 -2
  476. package/lib/model/date-range.d.ts +0 -7
  477. package/lib/model/day.model.d.ts +0 -8
  478. package/lib/model/icon-svg.d.ts +0 -4
  479. package/lib/model/month.model.d.ts +0 -5
  480. package/lib/model/send-method.d.ts +0 -7
  481. package/lib/model/settings.d.ts +0 -3
  482. package/lib/model/time-window.bo.d.ts +0 -13
  483. package/lib/model/week.model.d.ts +0 -4
  484. package/lib/model/weekday.model.d.ts +0 -16
  485. package/lib/pipe/array-number.pipe.d.ts +0 -4
  486. package/lib/pipe/master-pipes.d.ts +0 -1
  487. package/lib/pipe/ucfirst.pipe.d.ts +0 -4
  488. package/lib/service/dictionary.service.d.ts +0 -21
  489. package/lib/service/icon-cache.service.d.ts +0 -18
  490. package/lib/service/options.service.d.ts +0 -13
  491. package/lib/service/shared-connector.service.d.ts +0 -53
  492. package/lib/service/shared.service.d.ts +0 -18
  493. package/lib/service/stock.service.d.ts +0 -41
  494. package/lib/utils/calendar.utils.d.ts +0 -10
  495. package/lib/utils/date-utils.d.ts +0 -44
  496. package/lib/utils/function/not-nill.function.d.ts +0 -1
  497. package/lib/utils/map-utils.d.ts +0 -16
  498. package/lib/utils/string-utils.d.ts +0 -22
  499. /package/{lib → projects/sharedcomponents/src/lib}/components/date-planning/component/agenda/style/_theme.scss +0 -0
  500. /package/{lib → projects/sharedcomponents/src/lib}/components/date-planning/component/agenda/style/material.scss +0 -0
  501. /package/{lib → projects/sharedcomponents/src/lib}/components/date-planning/component/calendar/style/_layout.scss +0 -0
  502. /package/{lib → projects/sharedcomponents/src/lib}/components/date-planning/component/calendar/style/_material-definition.scss +0 -0
  503. /package/{lib → projects/sharedcomponents/src/lib}/components/date-planning/component/calendar/style/_theme.scss +0 -0
  504. /package/{lib → projects/sharedcomponents/src/lib}/components/date-planning/component/calendar/style/material.scss +0 -0
  505. /package/{lib → projects/sharedcomponents/src/lib}/components/date-planning/style/_layout.scss +0 -0
  506. /package/{lib → projects/sharedcomponents/src/lib}/components/date-planning/style/_material-definition.scss +0 -0
  507. /package/{lib → projects/sharedcomponents/src/lib}/components/date-planning/style/_theme.scss +0 -0
  508. /package/{lib → projects/sharedcomponents/src/lib}/components/docsign/component/signature/style/_layout.scss +0 -0
  509. /package/{lib → projects/sharedcomponents/src/lib}/components/docsign/component/signature/style/_material-definition.scss +0 -0
  510. /package/{lib → projects/sharedcomponents/src/lib}/components/docsign/component/signature/style/_theme.scss +0 -0
  511. /package/{lib → projects/sharedcomponents/src/lib}/components/docsign/component/signature/style/material.scss +0 -0
  512. /package/{lib → projects/sharedcomponents/src/lib}/components/docsign/component/signatures/style/_layout.scss +0 -0
  513. /package/{lib → projects/sharedcomponents/src/lib}/components/docsign/component/signatures/style/_material-definition.scss +0 -0
  514. /package/{lib → projects/sharedcomponents/src/lib}/components/docsign/component/signatures/style/_theme.scss +0 -0
  515. /package/{lib → projects/sharedcomponents/src/lib}/components/docsign/component/signatures/style/material.scss +0 -0
  516. /package/{lib → projects/sharedcomponents/src/lib}/components/docsign/style/_layout.scss +0 -0
  517. /package/{lib → projects/sharedcomponents/src/lib}/components/docsign/style/_material-definition.scss +0 -0
  518. /package/{lib → projects/sharedcomponents/src/lib}/components/docsign/style/_theme.scss +0 -0
  519. /package/{lib → projects/sharedcomponents/src/lib}/components/docsign/style/material.scss +0 -0
  520. /package/{lib → projects/sharedcomponents/src/lib}/components/key-pad/style/_layout.scss +0 -0
  521. /package/{lib → projects/sharedcomponents/src/lib}/components/key-pad/style/_material-definition.scss +0 -0
  522. /package/{lib → projects/sharedcomponents/src/lib}/components/key-pad/style/_theme.scss +0 -0
  523. /package/{lib → projects/sharedcomponents/src/lib}/components/key-pad/style/material.scss +0 -0
  524. /package/{lib → projects/sharedcomponents/src/lib}/components/layout-switcher/style/_layout.scss +0 -0
  525. /package/{lib → projects/sharedcomponents/src/lib}/components/layout-switcher/style/_material-definition.scss +0 -0
  526. /package/{lib → projects/sharedcomponents/src/lib}/components/layout-switcher/style/_theme.scss +0 -0
  527. /package/{lib → projects/sharedcomponents/src/lib}/components/layout-switcher/style/material.scss +0 -0
  528. /package/{lib → projects/sharedcomponents/src/lib}/components/linear-gauge/style/_layout.scss +0 -0
  529. /package/{lib → projects/sharedcomponents/src/lib}/components/linear-gauge/style/_material-definition.scss +0 -0
  530. /package/{lib → projects/sharedcomponents/src/lib}/components/linear-gauge/style/_theme.scss +0 -0
  531. /package/{lib → projects/sharedcomponents/src/lib}/components/linear-gauge/style/material.scss +0 -0
  532. /package/{lib → projects/sharedcomponents/src/lib}/components/login/style/_layout.scss +0 -0
  533. /package/{lib → projects/sharedcomponents/src/lib}/components/login/style/_material-definition.scss +0 -0
  534. /package/{lib → projects/sharedcomponents/src/lib}/components/login/style/_theme.scss +0 -0
  535. /package/{lib → projects/sharedcomponents/src/lib}/components/login/style/material.scss +0 -0
  536. /package/{lib → projects/sharedcomponents/src/lib}/components/screen-config-generator/style/_layout.scss +0 -0
  537. /package/{lib → projects/sharedcomponents/src/lib}/components/screen-config-generator/style/_material-definition.scss +0 -0
  538. /package/{lib → projects/sharedcomponents/src/lib}/components/screen-config-generator/style/_theme.scss +0 -0
  539. /package/{lib → projects/sharedcomponents/src/lib}/components/screen-config-generator/style/material.scss +0 -0
  540. /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/layout-selection/style/_layout.scss +0 -0
  541. /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/layout-selection/style/_material-definition.scss +0 -0
  542. /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/layout-selection/style/_theme.scss +0 -0
  543. /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/layout-selection/style/material.scss +0 -0
  544. /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/printer-selection/style/_layout.scss +0 -0
  545. /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/printer-selection/style/_material-definition.scss +0 -0
  546. /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/printer-selection/style/_theme.scss +0 -0
  547. /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/printer-selection/style/material.scss +0 -0
  548. /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/send-method-email/style/_layout.scss +0 -0
  549. /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/send-method-email/style/_material-definition.scss +0 -0
  550. /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/send-method-email/style/_theme.scss +0 -0
  551. /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/send-method-email/style/material.scss +0 -0
  552. /package/{lib/components/send-method-dialog/components/send-method-printer → projects/sharedcomponents/src/lib/components/send-method-dialog/components/send-method-pdf}/style/material.scss +0 -0
  553. /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/send-method-printer/style/_layout.scss +0 -0
  554. /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/send-method-printer/style/_material-definition.scss +0 -0
  555. /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/send-method-printer/style/_theme.scss +0 -0
  556. /package/{lib/components/send-method-dialog/components/signature-button → projects/sharedcomponents/src/lib/components/send-method-dialog/components/send-method-printer}/style/material.scss +0 -0
  557. /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/signature-button/style/_layout.scss +0 -0
  558. /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/signature-button/style/_material-definition.scss +0 -0
  559. /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/components/signature-button/style/_theme.scss +0 -0
  560. /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/style/_material-definition.scss +0 -0
  561. /package/{lib → projects/sharedcomponents/src/lib}/components/send-method-dialog/style/_theme.scss +0 -0
  562. /package/{lib → projects/sharedcomponents/src/lib}/components/simple-tags/style/_layout.scss +0 -0
  563. /package/{lib → projects/sharedcomponents/src/lib}/components/simple-tags/style/_material-definition.scss +0 -0
  564. /package/{lib → projects/sharedcomponents/src/lib}/components/simple-tags/style/_theme.scss +0 -0
  565. /package/{lib → projects/sharedcomponents/src/lib}/components/simple-tags/style/material.scss +0 -0
  566. /package/{lib → projects/sharedcomponents/src/lib}/components/statusbar/style/_layout.scss +0 -0
  567. /package/{lib → projects/sharedcomponents/src/lib}/components/statusbar/style/_material-definition.scss +0 -0
  568. /package/{lib → projects/sharedcomponents/src/lib}/components/statusbar/style/_theme.scss +0 -0
  569. /package/{lib → projects/sharedcomponents/src/lib}/components/statusbar/style/material.scss +0 -0
  570. /package/{lib → projects/sharedcomponents/src/lib}/components/stock/style/_layout.scss +0 -0
  571. /package/{lib → projects/sharedcomponents/src/lib}/components/stock/style/_material-definition.scss +0 -0
  572. /package/{lib → projects/sharedcomponents/src/lib}/components/stock/style/_theme.scss +0 -0
  573. /package/{lib → projects/sharedcomponents/src/lib}/components/stock/style/material.scss +0 -0
  574. /package/{lib → projects/sharedcomponents/src/lib}/components/stock-statusbar/style/_layout.scss +0 -0
  575. /package/{lib → projects/sharedcomponents/src/lib}/components/stock-statusbar/style/_material-definition.scss +0 -0
  576. /package/{lib → projects/sharedcomponents/src/lib}/components/stock-statusbar/style/_theme.scss +0 -0
  577. /package/{lib → projects/sharedcomponents/src/lib}/components/stock-statusbar/style/material.scss +0 -0
  578. /package/{lib → projects/sharedcomponents/src/lib}/components/tab-bar/style/_layout.scss +0 -0
  579. /package/{lib → projects/sharedcomponents/src/lib}/components/tab-bar/style/_material-definition.scss +0 -0
  580. /package/{lib → projects/sharedcomponents/src/lib}/components/tab-bar/style/_theme.scss +0 -0
  581. /package/{lib → projects/sharedcomponents/src/lib}/components/tab-bar/style/material.scss +0 -0
  582. /package/{lib → projects/sharedcomponents/src/lib}/components/tags/component/style/_layout.scss +0 -0
  583. /package/{lib → projects/sharedcomponents/src/lib}/components/tags/component/style/_material-definition.scss +0 -0
  584. /package/{lib → projects/sharedcomponents/src/lib}/components/tags/component/style/_theme.scss +0 -0
  585. /package/{lib → projects/sharedcomponents/src/lib}/components/tags/component/style/material.scss +0 -0
  586. /package/{lib → projects/sharedcomponents/src/lib}/components/tags/component/tag-join-label/style/_layout.scss +0 -0
  587. /package/{lib → projects/sharedcomponents/src/lib}/components/tags/component/tag-join-label/style/_material-definition.scss +0 -0
  588. /package/{lib → projects/sharedcomponents/src/lib}/components/tags/component/tag-join-label/style/_theme.scss +0 -0
  589. /package/{lib → projects/sharedcomponents/src/lib}/components/tags/component/tag-join-label/style/material.scss +0 -0
  590. /package/{lib → projects/sharedcomponents/src/lib}/style/_mixin.scss +0 -0
  591. /package/{lib → projects/sharedcomponents/src/lib}/style/_variables.scss +0 -0
  592. /package/{lib → projects/sharedcomponents/src/lib}/style/sharedcomponents-globals.scss +0 -0
@@ -1,51 +0,0 @@
1
- import { Injectable } from "@angular/core";
2
- import { DomSanitizer } from "@angular/platform-browser";
3
- import { IconSvg } from "../model/icon-svg";
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/platform-browser";
6
- export class IconCacheService {
7
- constructor(_sanitizer) {
8
- this._sanitizer = _sanitizer;
9
- this._iconCache = {};
10
- this.setIconCache();
11
- }
12
- /**
13
- * All the icons as a large JSON object, from the all-icons.json file.
14
- * The object has property keys that are the icon names, and property values with the data string of the actual svg icon.
15
- */
16
- get iconCache() {
17
- return this._iconCache;
18
- }
19
- getIcon(iconName) {
20
- if (iconName) {
21
- return this._iconCache[iconName.toLowerCase()];
22
- }
23
- }
24
- getIconAsBase64(iconName) {
25
- const icon = IconSvg[iconName];
26
- const base64Data = window.btoa(icon);
27
- return this._sanitizer.bypassSecurityTrustUrl(`data:image/svg+xml;base64,${base64Data}`);
28
- }
29
- getRawIcon(iconName) {
30
- if (iconName) {
31
- return IconSvg[iconName.toLowerCase()];
32
- }
33
- }
34
- setIconCache() {
35
- for (const key in IconSvg) {
36
- if (IconSvg.hasOwnProperty(key) && typeof IconSvg[key] !== "function") {
37
- this._iconCache[key.toLowerCase()] = this._sanitizer.bypassSecurityTrustHtml(IconSvg[key]);
38
- }
39
- }
40
- }
41
- }
42
- IconCacheService.ɵprov = i0.ɵɵdefineInjectable({ factory: function IconCacheService_Factory() { return new IconCacheService(i0.ɵɵinject(i1.DomSanitizer)); }, token: IconCacheService, providedIn: "root" });
43
- IconCacheService.decorators = [
44
- { type: Injectable, args: [{
45
- providedIn: "root"
46
- },] }
47
- ];
48
- IconCacheService.ctorParameters = () => [
49
- { type: DomSanitizer }
50
- ];
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1jYWNoZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLFlBQVksRUFBVyxNQUFNLDJCQUEyQixDQUFDO0FBRWpFLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBSzFDLE1BQU0sT0FBTyxnQkFBZ0I7SUFXM0IsWUFDVSxVQUF3QjtRQUF4QixlQUFVLEdBQVYsVUFBVSxDQUFjO1FBSDFCLGVBQVUsR0FBcUMsRUFBRSxDQUFDO1FBS3hELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBZEQ7OztPQUdHO0lBQ0gsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBVU0sT0FBTyxDQUFDLFFBQXVCO1FBQ3BDLElBQUksUUFBUSxFQUFFO1lBQ1osT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1NBQ2hEO0lBQ0gsQ0FBQztJQUVNLGVBQWUsQ0FBQyxRQUFjO1FBQ25DLE1BQU0sSUFBSSxHQUFXLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN2QyxNQUFNLFVBQVUsR0FBVyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyw2QkFBNkIsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRU0sVUFBVSxDQUFDLFFBQWM7UUFDOUIsSUFBSSxRQUFRLEVBQUU7WUFDWixPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztTQUN4QztJQUNILENBQUM7SUFFTSxZQUFZO1FBQ2pCLEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxFQUFFO1lBQ3pCLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxVQUFVLEVBQUU7Z0JBQ3JFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUM1RjtTQUNGO0lBQ0gsQ0FBQzs7OztZQTVDRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQU5PLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7RG9tU2FuaXRpemVyLCBTYWZlSHRtbH0gZnJvbSBcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIjtcclxuaW1wb3J0IHtJY29ufSBmcm9tIFwiLi4vZW51bS9pY29uLmVudW1cIjtcclxuaW1wb3J0IHtJY29uU3ZnfSBmcm9tIFwiLi4vbW9kZWwvaWNvbi1zdmdcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgSWNvbkNhY2hlU2VydmljZSB7XHJcbiAgLyoqXHJcbiAgICogQWxsIHRoZSBpY29ucyBhcyBhIGxhcmdlIEpTT04gb2JqZWN0LCBmcm9tIHRoZSBhbGwtaWNvbnMuanNvbiBmaWxlLlxyXG4gICAqIFRoZSBvYmplY3QgaGFzIHByb3BlcnR5IGtleXMgdGhhdCBhcmUgdGhlIGljb24gbmFtZXMsIGFuZCBwcm9wZXJ0eSB2YWx1ZXMgd2l0aCB0aGUgZGF0YSBzdHJpbmcgb2YgdGhlIGFjdHVhbCBzdmcgaWNvbi5cclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IGljb25DYWNoZSgpOiB7IFtpY29uTmFtZTogc3RyaW5nXTogU2FmZUh0bWwgfSB7XHJcbiAgICByZXR1cm4gdGhpcy5faWNvbkNhY2hlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaWNvbkNhY2hlOiB7IFtpY29uTmFtZTogc3RyaW5nXTogU2FmZUh0bWwgfSA9IHt9O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3Nhbml0aXplcjogRG9tU2FuaXRpemVyXHJcbiAgKSB7XHJcbiAgICB0aGlzLnNldEljb25DYWNoZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEljb24oaWNvbk5hbWU6IEljb24gfCBzdHJpbmcpOiBTYWZlSHRtbCB7XHJcbiAgICBpZiAoaWNvbk5hbWUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2ljb25DYWNoZVtpY29uTmFtZS50b0xvd2VyQ2FzZSgpXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRJY29uQXNCYXNlNjQoaWNvbk5hbWU6IEljb24pOiBTYWZlSHRtbCB7XHJcbiAgICBjb25zdCBpY29uOiBzdHJpbmcgPSBJY29uU3ZnW2ljb25OYW1lXTtcclxuICAgIGNvbnN0IGJhc2U2NERhdGE6IHN0cmluZyA9IHdpbmRvdy5idG9hKGljb24pO1xyXG4gICAgcmV0dXJuIHRoaXMuX3Nhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0VXJsKGBkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LCR7YmFzZTY0RGF0YX1gKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRSYXdJY29uKGljb25OYW1lOiBJY29uKTogc3RyaW5nIHtcclxuICAgIGlmIChpY29uTmFtZSkge1xyXG4gICAgICByZXR1cm4gSWNvblN2Z1tpY29uTmFtZS50b0xvd2VyQ2FzZSgpXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRJY29uQ2FjaGUoKTogdm9pZCB7XHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBJY29uU3ZnKSB7XHJcbiAgICAgIGlmIChJY29uU3ZnLmhhc093blByb3BlcnR5KGtleSkgJiYgdHlwZW9mIEljb25Tdmdba2V5XSAhPT0gXCJmdW5jdGlvblwiKSB7XHJcbiAgICAgICAgdGhpcy5faWNvbkNhY2hlW2tleS50b0xvd2VyQ2FzZSgpXSA9IHRoaXMuX3Nhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChJY29uU3ZnW2tleV0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,48 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { Injectable } from "@angular/core";
3
- import { BehaviorSubject } from "rxjs";
4
- import { DictionaryService } from "./dictionary.service";
5
- import { SharedSettings } from '../model/settings';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "./dictionary.service";
8
- export class OptionsService {
9
- constructor(_dictionary) {
10
- this._dictionary = _dictionary;
11
- this.optionsInitialized = new BehaviorSubject(false);
12
- this.optionsLoaded = new BehaviorSubject(false);
13
- }
14
- set options(value) {
15
- this._options = value;
16
- }
17
- get options() {
18
- return this._options;
19
- }
20
- createSettingsFromObject(obj) {
21
- return __awaiter(this, void 0, void 0, function* () {
22
- if (!this.options) {
23
- this.options = new SharedSettings();
24
- }
25
- this.options = Object.assign(this.options, obj);
26
- this.optionsLoaded.next(true);
27
- });
28
- }
29
- initialize(options) {
30
- return __awaiter(this, void 0, void 0, function* () {
31
- if (options) {
32
- yield this.createSettingsFromObject(options);
33
- yield this._dictionary.setDictionary(this.options.languageCode);
34
- this.optionsInitialized.next(true);
35
- }
36
- });
37
- }
38
- }
39
- OptionsService.ɵprov = i0.ɵɵdefineInjectable({ factory: function OptionsService_Factory() { return new OptionsService(i0.ɵɵinject(i1.DictionaryService)); }, token: OptionsService, providedIn: "root" });
40
- OptionsService.decorators = [
41
- { type: Injectable, args: [{
42
- providedIn: "root"
43
- },] }
44
- ];
45
- OptionsService.ctorParameters = () => [
46
- { type: DictionaryService }
47
- ];
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2Uvb3B0aW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDOzs7QUFLakQsTUFBTSxPQUFPLGNBQWM7SUFnQnpCLFlBQW9CLFdBQThCO1FBQTlCLGdCQUFXLEdBQVgsV0FBVyxDQUFtQjtRQWQzQyx1QkFBa0IsR0FBNkIsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFVbkYsa0JBQWEsR0FBNkIsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFLNUUsQ0FBQztJQWJELElBQVcsT0FBTyxDQUFDLEtBQVU7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQVNZLHdCQUF3QixDQUFDLEdBQVE7O1lBQzVDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7YUFDckM7WUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxDQUFDO0tBQUE7SUFFWSxVQUFVLENBQUMsT0FBWTs7WUFDbEMsSUFBSSxPQUFPLEVBQUU7Z0JBQ1gsTUFBTSxJQUFJLENBQUMsd0JBQXdCLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzdDLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDaEUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNwQztRQUNILENBQUM7S0FBQTs7OztZQXBDRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQUxPLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtCZWhhdmlvclN1YmplY3R9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gXCIuL2RpY3Rpb25hcnkuc2VydmljZVwiO1xyXG5pbXBvcnQge1NoYXJlZFNldHRpbmdzfSBmcm9tICcuLi9tb2RlbC9zZXR0aW5ncyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogXCJyb290XCJcclxufSlcclxuZXhwb3J0IGNsYXNzIE9wdGlvbnNTZXJ2aWNlIHtcclxuXHJcbiAgcHVibGljIG9wdGlvbnNJbml0aWFsaXplZDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcblxyXG4gIHB1YmxpYyBzZXQgb3B0aW9ucyh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLl9vcHRpb25zID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG9wdGlvbnMoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLl9vcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9wdGlvbnNMb2FkZWQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xyXG5cclxuICBwcml2YXRlIF9vcHRpb25zOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2RpY3Rpb25hcnk6IERpY3Rpb25hcnlTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgY3JlYXRlU2V0dGluZ3NGcm9tT2JqZWN0KG9iajogYW55KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoIXRoaXMub3B0aW9ucykge1xyXG4gICAgICB0aGlzLm9wdGlvbnMgPSBuZXcgU2hhcmVkU2V0dGluZ3MoKTtcclxuICAgIH1cclxuICAgIHRoaXMub3B0aW9ucyA9IE9iamVjdC5hc3NpZ24odGhpcy5vcHRpb25zLCBvYmopO1xyXG4gICAgdGhpcy5vcHRpb25zTG9hZGVkLm5leHQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaW5pdGlhbGl6ZShvcHRpb25zOiBhbnkpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmIChvcHRpb25zKSB7XHJcbiAgICAgIGF3YWl0IHRoaXMuY3JlYXRlU2V0dGluZ3NGcm9tT2JqZWN0KG9wdGlvbnMpO1xyXG4gICAgICBhd2FpdCB0aGlzLl9kaWN0aW9uYXJ5LnNldERpY3Rpb25hcnkodGhpcy5vcHRpb25zLmxhbmd1YWdlQ29kZSk7XHJcbiAgICAgIHRoaXMub3B0aW9uc0luaXRpYWxpemVkLm5leHQodHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,424 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { Articles } from '@colijnit/articleapi/build/articles';
3
- import { Sharedapi } from '@colijnit/sharedapi/build/sharedapi';
4
- import { Injectable } from '@angular/core';
5
- import { ArticleStock as ArticleStockBo } from '@colijnit/articleapi/build/model/article-stock.bo';
6
- import { StockHistoryBo } from '@colijnit/articleapi/build/model/stock-history.bo';
7
- import { ArticleDetailsBo } from '@colijnit/articleapi/build/model/article-details.bo';
8
- import { StockStatus } from '@colijnit/articleapi/build/model/stock-status.bo';
9
- import { StockManagementWarehouses } from '@colijnit/articleapi/build/model/stock-management-warehouses.bo';
10
- import { StockLocation } from '@colijnit/articleapi/build/model/stock-location.bo';
11
- import { ArticleTransaction as ArticleTransactionBo } from '@colijnit/articleapi/build/model/article-transaction.bo';
12
- import { OptionsService } from './options.service';
13
- import { MainApi } from '@colijnit/mainapi';
14
- import { Printer } from '@colijnit/mainapi/build/model/printer.bo';
15
- import { SendMethod } from '@colijnit/mainapi/build/model/send-method.bo';
16
- import { BusinessObjectFactory } from '@colijnit/ioneconnector/build/service/business-object-factory';
17
- import { TagTreeItem } from "@colijnit/mainapi/build/model/tag-tree-item.bo";
18
- import * as i0 from "@angular/core";
19
- import * as i1 from "./options.service";
20
- export class SharedConnectorService {
21
- constructor(_optionsService) {
22
- this._optionsService = _optionsService;
23
- this._boFactory = new BusinessObjectFactory();
24
- }
25
- connect() {
26
- return __awaiter(this, void 0, void 0, function* () {
27
- this.sharedConnector = new Sharedapi(this._optionsService.options);
28
- yield this.sharedConnector.connect();
29
- this.articleConnector = new Articles(this._optionsService.options);
30
- this.mainConnector = new MainApi(this._optionsService.options);
31
- });
32
- }
33
- getAllPrinters() {
34
- return __awaiter(this, void 0, void 0, function* () {
35
- return new Promise((resolve, reject) => {
36
- return this.mainConnector.listAllPrinters().then((result) => {
37
- if (result.validationResult && result.validationResult.success) {
38
- if (result.resultObject) {
39
- resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(Printer, result.resultObject));
40
- }
41
- }
42
- else {
43
- reject(result.validationMessagesAsString);
44
- }
45
- });
46
- });
47
- });
48
- }
49
- getSendMethods() {
50
- return __awaiter(this, void 0, void 0, function* () {
51
- return new Promise((resolve, reject) => {
52
- return this.mainConnector.getSendMethods().then((result) => {
53
- if (result.validationResult && result.validationResult.success) {
54
- if (result.resultObject && result.resultObject.result) {
55
- resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(SendMethod, result.resultObject.result));
56
- }
57
- }
58
- else {
59
- reject(result.validationMessagesAsString);
60
- }
61
- });
62
- });
63
- });
64
- }
65
- getScreenConfigTree() {
66
- return __awaiter(this, void 0, void 0, function* () {
67
- return new Promise((resolve, reject) => {
68
- return this.sharedConnector.getConfigTreeObject('T', 'JS').then((result) => {
69
- if (result.validationResult && result.validationResult.success) {
70
- if (result.resultObjects) {
71
- resolve(result.resultObjects);
72
- }
73
- }
74
- else {
75
- reject(result.validationMessagesAsString);
76
- }
77
- });
78
- });
79
- });
80
- }
81
- getScreenConfigSubRubric(parentRubricId, configId, fixedKey) {
82
- return __awaiter(this, void 0, void 0, function* () {
83
- return new Promise((resolve, reject) => {
84
- return this.sharedConnector.getConfigSubRubric(parentRubricId, configId, fixedKey).then((result) => {
85
- if (result.validationResult && result.validationResult.success) {
86
- if (result.resultObjects) {
87
- resolve(result.resultObjects);
88
- }
89
- }
90
- else {
91
- reject(result.validationMessagesAsString);
92
- }
93
- });
94
- });
95
- });
96
- }
97
- getTagsFullTree(category, includeTags) {
98
- return __awaiter(this, void 0, void 0, function* () {
99
- return new Promise((resolve, reject) => {
100
- return this.mainConnector.getTagsFullTree(category, includeTags).then((result) => {
101
- if (result.validationResult && result.validationResult.success) {
102
- if (result.resultObjects) {
103
- resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(TagTreeItem, result.resultObjects));
104
- }
105
- }
106
- else {
107
- reject(result.validationMessagesAsString);
108
- }
109
- });
110
- });
111
- });
112
- }
113
- getDocumentContent(id, thumbnail = true) {
114
- return __awaiter(this, void 0, void 0, function* () {
115
- return new Promise((resolve, reject) => {
116
- return this.mainConnector.getDocumentContent(id, thumbnail).then((result) => {
117
- if (result.validationResult && result.validationResult.success) {
118
- resolve(result.resultObject.documentContent);
119
- }
120
- else {
121
- reject(result.validationMessagesAsString);
122
- }
123
- });
124
- });
125
- });
126
- }
127
- // public async getPrintStockStickers(request: PrintStockStickers): Promise<PrintStockStickers> {
128
- // return new Promise((resolve: Function, reject: Function) => {
129
- // return this.sharedConnector.getPrintStockStickers(request).then((result: DataServiceResponseData) => {
130
- // if (result.validationResult && result.validationResult.success) {
131
- // if (result.resultObject) {
132
- // resolve(this._boFactory.makeWithRawBackendData(PrintStockStickers, result.resultObject));
133
- // }
134
- // } else {
135
- // reject(result.validationMessagesAsString);
136
- // }
137
- // })
138
- // })
139
- // }
140
- // public async getPrintPriceStickers(request: PrintPriceStickers): Promise<PrintPriceStickers> {
141
- // return new Promise((resolve: Function, reject: Function) => {
142
- // return this.sharedConnector.printPriceStickers(request).then((result: DataServiceResponseData) => {
143
- // if (result.validationResult && result.validationResult.success) {
144
- // if (result.resultObject) {
145
- // resolve(this._boFactory.makeWithRawBackendData(PrintPriceStickers, result.resultObject));
146
- // }
147
- // } else {
148
- // reject(result.validationMessagesAsString);
149
- // }
150
- // })
151
- // })
152
- // }
153
- getStockHistory(request) {
154
- return __awaiter(this, void 0, void 0, function* () {
155
- return new Promise((resolve, reject) => {
156
- return this.articleConnector.getStockHistory(request).then((result) => {
157
- if (result.validationResult && result.validationResult.success) {
158
- if (result.resultObject && result.resultObject.hasOwnProperty("stockHistory")) {
159
- resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(StockHistoryBo, result.resultObject.stockHistory));
160
- }
161
- }
162
- else {
163
- reject(result.validationMessagesAsString);
164
- }
165
- });
166
- });
167
- });
168
- }
169
- getStockInformation(data) {
170
- return __awaiter(this, void 0, void 0, function* () {
171
- return new Promise((resolve, reject) => {
172
- return this.articleConnector.getStockInformation(data).then((result) => {
173
- if (result.validationResult && result.validationResult.success) {
174
- if (result.resultObjects) {
175
- resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(ArticleStockBo, result.resultObjects));
176
- }
177
- }
178
- else {
179
- reject(result.validationMessagesAsString);
180
- }
181
- });
182
- });
183
- });
184
- }
185
- getArtStockStatus(goodId, branchNo, requestedAmount, warehouseId) {
186
- return __awaiter(this, void 0, void 0, function* () {
187
- return new Promise((resolve, reject) => {
188
- return this.articleConnector.getArtStockStatus(goodId, branchNo, requestedAmount, warehouseId).then((result) => {
189
- if (result.validationResult && result.validationResult.success) {
190
- if (result.resultObject) {
191
- resolve(result.resultObject);
192
- }
193
- }
194
- else {
195
- reject(result.validationMessagesAsString);
196
- }
197
- });
198
- });
199
- });
200
- }
201
- getArticleFlat(sku) {
202
- return __awaiter(this, void 0, void 0, function* () {
203
- return new Promise((resolve, reject) => {
204
- return this.articleConnector.getArticleFlat(sku).then((result) => {
205
- if (result.validationResult && result.validationResult.success) {
206
- if (result.resultObject) {
207
- resolve(result.resultObject);
208
- }
209
- }
210
- else {
211
- reject(result.validationMessagesAsString);
212
- }
213
- });
214
- });
215
- });
216
- }
217
- searchArticles(request) {
218
- return __awaiter(this, void 0, void 0, function* () {
219
- return new Promise((resolve, reject) => {
220
- return this.articleConnector.searchArticles(request, false).then((result) => {
221
- if (result.validationResult && result.validationResult.success) {
222
- if (result.resultObjects) {
223
- resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(StockManagementWarehouses, result.resultObjects));
224
- }
225
- }
226
- else {
227
- reject(result.validationMessagesAsString);
228
- }
229
- });
230
- });
231
- });
232
- }
233
- getStockManagementWarehouses() {
234
- return __awaiter(this, void 0, void 0, function* () {
235
- return new Promise((resolve, reject) => {
236
- return this.articleConnector.getStockManagementWarehouses().then((result) => {
237
- if (result.validationResult && result.validationResult.success) {
238
- if (result.resultObjects) {
239
- resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(StockManagementWarehouses, result.resultObjects));
240
- }
241
- }
242
- else {
243
- reject(result.validationMessagesAsString);
244
- }
245
- });
246
- });
247
- });
248
- }
249
- getStockManagementLocations(warehouseNo) {
250
- return __awaiter(this, void 0, void 0, function* () {
251
- return new Promise((resolve, reject) => {
252
- return this.articleConnector.getStockManagementLocations(warehouseNo).then((result) => {
253
- if (result.validationResult && result.validationResult.success) {
254
- if (result.resultObjects) {
255
- resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(StockLocation, result.resultObjects));
256
- }
257
- }
258
- else {
259
- reject(result.validationMessagesAsString);
260
- }
261
- });
262
- });
263
- });
264
- }
265
- // public async getOrderConfirmationDefaultSendMethod(relationId: number): Promise<number> {
266
- // return new Promise((resolve: Function, reject: Function) => {
267
- // return this.sharedConnector.getOrderConfirmationDefaultSendMethod(relationId).then((result: DataServiceResponseData) => {
268
- // if (result.validationResult && result.validationResult.success) {
269
- // if (result.resultObject) {
270
- // resolve (result.resultObject);
271
- // }
272
- // } else {
273
- // reject(result.validationMessagesAsString);
274
- // }
275
- // });
276
- // });
277
- // }
278
- // public async getDefaultEmailAddressListForOrderConfirmation(transactionUUID: string): Promise<string[]> {
279
- // return new Promise((resolve: Function, reject: Function) => {
280
- // return this.sharedConnector.getDefaultEmailAddressListForOrderConfirmation(transactionUUID).then((result: DataServiceResponseData) => {
281
- // if (result.validationResult && result.validationResult.success) {
282
- // if (result.resultObject) {
283
- // resolve (result.resultObject);
284
- // }
285
- // } else {
286
- // reject(result.validationMessagesAsString);
287
- // }
288
- // });
289
- // });
290
- // }
291
- // public async getPurchaseOrderEmailLayouts(transactionUUID: string): Promise<StockStickersEmailLayouts[]> {
292
- // return new Promise((resolve: Function, reject: Function) => {
293
- // return this.sharedConnector.getPurchaseOrderEmailLayouts(transactionUUID).then((result: DataServiceResponseData) => {
294
- // if (result.validationResult && result.validationResult.success) {
295
- // if (result.resultObject) {
296
- // resolve (result.resultObject);
297
- // }
298
- // } else {
299
- // reject(result.validationMessagesAsString);
300
- // }
301
- // });
302
- // });
303
- // }
304
- getArticleDetails(data) {
305
- return __awaiter(this, void 0, void 0, function* () {
306
- return new Promise((resolve, reject) => {
307
- return this.articleConnector.getArticleDetails(data).then((result) => {
308
- if (result.validationResult && result.validationResult.success) {
309
- if (result.resultObjects) {
310
- resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(ArticleDetailsBo, result.resultObjects));
311
- }
312
- }
313
- else {
314
- reject(result.validationMessagesAsString);
315
- }
316
- });
317
- });
318
- });
319
- }
320
- updateArticleDetails(data) {
321
- return __awaiter(this, void 0, void 0, function* () {
322
- return new Promise((resolve, reject) => {
323
- return this.articleConnector.updateArticleDetails(data).then((result) => __awaiter(this, void 0, void 0, function* () {
324
- if (result.validationResult && result.validationResult.success) {
325
- yield this.commit();
326
- resolve(true);
327
- }
328
- else {
329
- reject(result.validationMessagesAsString);
330
- }
331
- }));
332
- });
333
- });
334
- }
335
- lockArticleDetails(data) {
336
- return __awaiter(this, void 0, void 0, function* () {
337
- return new Promise((resolve, reject) => {
338
- return this.articleConnector.lockArticleDetails(data).then((result) => __awaiter(this, void 0, void 0, function* () {
339
- if (result.validationResult && result.validationResult.success) {
340
- yield this.commit();
341
- resolve(true);
342
- }
343
- else {
344
- reject(result.validationMessagesAsString);
345
- }
346
- }));
347
- });
348
- });
349
- }
350
- getStockStatus() {
351
- return __awaiter(this, void 0, void 0, function* () {
352
- return new Promise((resolve, reject) => {
353
- return this.articleConnector.getStockState().then((result) => {
354
- if (result.validationResult && result.validationResult.success) {
355
- if (result.resultObjects) {
356
- resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(StockStatus, result.resultObjects));
357
- }
358
- }
359
- else {
360
- reject(result.validationMessagesAsString);
361
- }
362
- });
363
- });
364
- });
365
- }
366
- // public async getStockStickerTemplates(data: StockStickersPrintLayouts): Promise<StockStickersPrintLayouts[]> {
367
- // return new Promise((resolve: Function, reject: Function) => {
368
- // return this.mainConnector.getStockStickerPrintLayouts(data).then((result: DataServiceResponseData) => {
369
- // if (result.validationResult && result.validationResult.success) {
370
- // if (result.resultObject) {
371
- // resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(StockStickersPrintLayouts, result.resultObject));
372
- // }
373
- // } else {
374
- // reject(result.validationMessagesAsString);
375
- // }
376
- // });
377
- // });
378
- // }
379
- getArticleTransaction(data) {
380
- return __awaiter(this, void 0, void 0, function* () {
381
- return new Promise((resolve, reject) => {
382
- return this.articleConnector.getArticleTransaction(data).then((result) => {
383
- if (result.validationResult && result.validationResult.success) {
384
- if (result.resultObjects) {
385
- resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(ArticleTransactionBo, result.resultObjects));
386
- }
387
- }
388
- else {
389
- reject(result.validationMessagesAsString);
390
- }
391
- });
392
- });
393
- });
394
- }
395
- getStockPrognose(goodId, warehouseNumber) {
396
- return __awaiter(this, void 0, void 0, function* () {
397
- return new Promise((resolve, reject) => {
398
- return this.articleConnector.getStockForecast(goodId, warehouseNumber).then((result) => {
399
- if (result.validationResult && result.validationResult.success) {
400
- if (result.resultObjects) {
401
- resolve(result.resultObjects);
402
- }
403
- }
404
- else {
405
- reject(result.validationMessagesAsString);
406
- }
407
- });
408
- });
409
- });
410
- }
411
- commit() {
412
- return this.articleConnector.commit();
413
- }
414
- }
415
- SharedConnectorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function SharedConnectorService_Factory() { return new SharedConnectorService(i0.ɵɵinject(i1.OptionsService)); }, token: SharedConnectorService, providedIn: "root" });
416
- SharedConnectorService.decorators = [
417
- { type: Injectable, args: [{
418
- providedIn: "root"
419
- },] }
420
- ];
421
- SharedConnectorService.ctorParameters = () => [
422
- { type: OptionsService }
423
- ];
424
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLWNvbm5lY3Rvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2Uvc2hhcmVkLWNvbm5lY3Rvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDN0QsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQzlELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFDLFlBQVksSUFBSSxjQUFjLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUVqRyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFFakYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scURBQXFELENBQUM7QUFDckYsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQzdFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGlFQUFpRSxDQUFDO0FBQzFHLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxvREFBb0QsQ0FBQztBQUVqRixPQUFPLEVBQUMsa0JBQWtCLElBQUksb0JBQW9CLEVBQUMsTUFBTSx5REFBeUQsQ0FBQztBQUNuSCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQzFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUVqRSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sOENBQThDLENBQUM7QUFFeEUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sK0RBQStELENBQUM7QUFFcEcsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdEQUFnRCxD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RSxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBaUIsRUFBRSxNQUFnQixFQUFFLEVBQUU7Z0JBQ3pELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxlQUFlLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUErQixFQUFFLEVBQUU7b0JBQzlHLElBQUksTUFBTSxDQUFDLGdCQUFnQixJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7d0JBQzlELElBQUksTUFBTSxDQUFDLGFBQWEsRUFBRTs0QkFDeEIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQzt5QkFDL0I7cUJBQ0Y7eUJBQU07d0JBQ0wsTUFBTSxDQUFDLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO3FCQUMzQztnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0lBRU0sTUFBTTtRQUNYLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3hDLENBQUM7Ozs7WUFuWEYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFmTyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBcnRpY2xlc30gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvYXJ0aWNsZXMnO1xyXG5pbXBvcnQge1NoYXJlZGFwaX0gZnJvbSAnQGNvbGlqbml0L3NoYXJlZGFwaS9idWlsZC9zaGFyZWRhcGknO1xyXG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0dldFN0b2NrSGlzdG9yeVJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2dldC1zdG9jay1oaXN0b3J5LXJlcXVlc3QnO1xyXG5pbXBvcnQge0FydGljbGVTdG9jayBhcyBBcnRpY2xlU3RvY2tCb30gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1zdG9jay5ibyc7XHJcbmltcG9ydCB7QXJ0aWNsZVN0b2NrfSBmcm9tICdAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLXN0b2NrJztcclxuaW1wb3J0IHtTdG9ja0hpc3RvcnlCb30gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvc3RvY2staGlzdG9yeS5ibyc7XHJcbmltcG9ydCB7QXJ0aWNsZVN0b2NrTWFuYWdlbWVudH0gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1zdG9jay1tYW5hZ2VtZW50JztcclxuaW1wb3J0IHtBcnRpY2xlRGV0YWlsc0JvfSBmcm9tICdAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLWRldGFpbHMuYm8nO1xyXG5pbXBvcnQge1N0b2NrU3RhdHVzfSBmcm9tICdAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9zdG9jay1zdGF0dXMuYm8nO1xyXG5pbXBvcnQge1N0b2NrTWFuYWdlbWVudFdhcmVob3VzZXN9IGZyb20gJ0Bjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL3N0b2NrLW1hbmFnZW1lbnQtd2FyZWhvdXNlcy5ibyc7XHJcbmltcG9ydCB7U3RvY2tMb2NhdGlvbn0gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvc3RvY2stbG9jYXRpb24uYm8nO1xyXG5pbXBvcnQge0FydGljbGVUcmFuc2FjdGlvbn0gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS10cmFuc2FjdGlvbic7XHJcbmltcG9ydCB7QXJ0aWNsZVRyYW5zYWN0aW9uIGFzIEFydGljbGVUcmFuc2FjdGlvbkJvfSBmcm9tICdAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLXRyYW5zYWN0aW9uLmJvJztcclxuaW1wb3J0IHtPcHRpb25zU2VydmljZX0gZnJvbSAnLi9vcHRpb25zLnNlcnZpY2UnO1xyXG5pbXBvcnQge01haW5BcGl9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpJztcclxuaW1wb3J0IHtQcmludGVyfSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9wcmludGVyLmJvJztcclxuaW1wb3J0IHtEYXRhU2VydmljZVJlc3BvbnNlRGF0YX0gZnJvbSAnQGNvbGlqbml0L2lvbmVjb25uZWN0b3IvYnVpbGQvbW9kZWwvZGF0YS1zZXJ2aWNlLXJlc3BvbnNlLWRhdGEnO1xyXG5pbXBvcnQge1NlbmRNZXRob2R9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3NlbmQtbWV0aG9kLmJvJztcclxuaW1wb3J0IHtTdG9ja0ZvcmVjYXN0fSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvc3RvY2stZm9yZWNhc3QuYm9cIjtcclxuaW1wb3J0IHtCdXNpbmVzc09iamVjdEZhY3Rvcnl9IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL3NlcnZpY2UvYnVzaW5lc3Mtb2JqZWN0LWZhY3RvcnknO1xyXG5pbXBvcnQge1RhZ0NhdGVnb3J5fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS90YWItY2F0ZWdvcnkuZW51bVwiO1xyXG5pbXBvcnQge1RhZ1RyZWVJdGVtfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvdGFnLXRyZWUtaXRlbS5ib1wiO1xyXG5pbXBvcnQge0FydGljbGVFeHRlbmRlZH0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtZXh0ZW5kZWQuYm9cIjtcclxuaW1wb3J0IHtBcnRpY2xlRXh0ZW5kZWRSZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1leHRlbmRlZC1yZXF1ZXN0XCI7XHJcbmltcG9ydCB7QXJ0aWNsZUZsYXR9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLWZsYXQuYm9cIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2hhcmVkQ29ubmVjdG9yU2VydmljZSB7XHJcbiAgcHVibGljIGFydGljbGVDb25uZWN0b3I6IEFydGljbGVzO1xyXG4gIHB1YmxpYyBzaGFyZWRDb25uZWN0b3I6IFNoYXJlZGFwaTtcclxuICBwdWJsaWMgbWFpbkNvbm5lY3RvcjogTWFpbkFwaTtcclxuXHJcbiAgcHJpdmF0ZSBfYm9GYWN0b3J5OiBCdXNpbmVzc09iamVjdEZhY3RvcnkgPSBuZXcgQnVzaW5lc3NPYmplY3RGYWN0b3J5KCk7XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX29wdGlvbnNTZXJ2aWNlOiBPcHRpb25zU2VydmljZSxcclxuICApIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjb25uZWN0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5zaGFyZWRDb25uZWN0b3IgPSBuZXcgU2hhcmVkYXBpKHRoaXMuX29wdGlvbnNTZXJ2aWNlLm9wdGlvbnMpO1xyXG4gICAgYXdhaXQgdGhpcy5zaGFyZWRDb25uZWN0b3IuY29ubmVjdCgpO1xyXG4gICAgdGhpcy5hcnRpY2xlQ29ubmVjdG9yID0gbmV3IEFydGljbGVzKHRoaXMuX29wdGlvbnNTZXJ2aWNlLm9wdGlvbnMpO1xyXG4gICAgdGhpcy5tYWluQ29ubmVjdG9yID0gbmV3IE1haW5BcGkodGhpcy5fb3B0aW9uc1NlcnZpY2Uub3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0QWxsUHJpbnRlcnMoKTogUHJvbWlzZTxQcmludGVyW10+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMubWFpbkNvbm5lY3Rvci5saXN0QWxsUHJpbnRlcnMoKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIGlmIChyZXN1bHQucmVzdWx0T2JqZWN0KSB7XHJcbiAgICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VCT0FycmF5RnJvbVJhd0JhY2tlbmREYXRhQXJyYXkoUHJpbnRlciwgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0U2VuZE1ldGhvZHMoKTogUHJvbWlzZTxTZW5kTWV0aG9kW10+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMubWFpbkNvbm5lY3Rvci5nZXRTZW5kTWV0aG9kcygpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdC5yZXN1bHRPYmplY3QgJiYgcmVzdWx0LnJlc3VsdE9iamVjdC5yZXN1bHQpIHtcclxuICAgICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShTZW5kTWV0aG9kLCByZXN1bHQucmVzdWx0T2JqZWN0LnJlc3VsdCkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0U2NyZWVuQ29uZmlnVHJlZSgpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5zaGFyZWRDb25uZWN0b3IuZ2V0Q29uZmlnVHJlZU9iamVjdCgnVCcsICdKUycpLnRoZW4oKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIGlmIChyZXN1bHQucmVzdWx0T2JqZWN0cykge1xyXG4gICAgICAgICAgICByZXNvbHZlKHJlc3VsdC5yZXN1bHRPYmplY3RzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldFNjcmVlbkNvbmZpZ1N1YlJ1YnJpYyhwYXJlbnRSdWJyaWNJZDogbnVtYmVyLCBjb25maWdJZDogbnVtYmVyLCBmaXhlZEtleTogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuc2hhcmVkQ29ubmVjdG9yLmdldENvbmZpZ1N1YlJ1YnJpYyhwYXJlbnRSdWJyaWNJZCwgY29uZmlnSWQsIGZpeGVkS2V5KS50aGVuKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0LnJlc3VsdE9iamVjdHMpIHtcclxuICAgICAgICAgICAgcmVzb2x2ZShyZXN1bHQucmVzdWx0T2JqZWN0cyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRUYWdzRnVsbFRyZWUoY2F0ZWdvcnk6IFRhZ0NhdGVnb3J5LCBpbmNsdWRlVGFnczogYm9vbGVhbik6IFByb21pc2U8VGFnVHJlZUl0ZW1bXT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5tYWluQ29ubmVjdG9yLmdldFRhZ3NGdWxsVHJlZShjYXRlZ29yeSwgaW5jbHVkZVRhZ3MpLnRoZW4oKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIGlmIChyZXN1bHQucmVzdWx0T2JqZWN0cykge1xyXG4gICAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlQk9BcnJheUZyb21SYXdCYWNrZW5kRGF0YUFycmF5KFRhZ1RyZWVJdGVtLCByZXN1bHQucmVzdWx0T2JqZWN0cykpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0RG9jdW1lbnRDb250ZW50KGlkOiBudW1iZXIsIHRodW1ibmFpbDogYm9vbGVhbiA9IHRydWUpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5tYWluQ29ubmVjdG9yLmdldERvY3VtZW50Q29udGVudChpZCwgdGh1bWJuYWlsKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIHJlc29sdmUocmVzdWx0LnJlc3VsdE9iamVjdC5kb2N1bWVudENvbnRlbnQpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyBwdWJsaWMgYXN5bmMgZ2V0UHJpbnRTdG9ja1N0aWNrZXJzKHJlcXVlc3Q6IFByaW50U3RvY2tTdGlja2Vycyk6IFByb21pc2U8UHJpbnRTdG9ja1N0aWNrZXJzPiB7XHJcbiAgLy8gICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgLy8gICAgIHJldHVybiB0aGlzLnNoYXJlZENvbm5lY3Rvci5nZXRQcmludFN0b2NrU3RpY2tlcnMocmVxdWVzdCkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gIC8vICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgLy8gICAgICAgICBpZiAocmVzdWx0LnJlc3VsdE9iamVjdCkge1xyXG4gIC8vICAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFByaW50U3RvY2tTdGlja2VycywgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xyXG4gIC8vICAgICAgICAgfVxyXG4gIC8vICAgICAgIH0gZWxzZSB7XHJcbiAgLy8gICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcclxuICAvLyAgICAgICB9XHJcbiAgLy8gICAgIH0pXHJcbiAgLy8gICB9KVxyXG4gIC8vIH1cclxuXHJcbiAgLy8gcHVibGljIGFzeW5jIGdldFByaW50UHJpY2VTdGlja2VycyhyZXF1ZXN0OiBQcmludFByaWNlU3RpY2tlcnMpOiBQcm9taXNlPFByaW50UHJpY2VTdGlja2Vycz4ge1xyXG4gIC8vICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gIC8vICAgICByZXR1cm4gdGhpcy5zaGFyZWRDb25uZWN0b3IucHJpbnRQcmljZVN0aWNrZXJzKHJlcXVlc3QpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAvLyAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gIC8vICAgICAgICAgaWYgKHJlc3VsdC5yZXN1bHRPYmplY3QpIHtcclxuICAvLyAgICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShQcmludFByaWNlU3RpY2tlcnMsIHJlc3VsdC5yZXN1bHRPYmplY3QpKTtcclxuICAvLyAgICAgICAgIH1cclxuICAvLyAgICAgICB9IGVsc2Uge1xyXG4gIC8vICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XHJcbiAgLy8gICAgICAgfVxyXG4gIC8vICAgICB9KVxyXG4gIC8vICAgfSlcclxuICAvLyB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRTdG9ja0hpc3RvcnkocmVxdWVzdDogR2V0U3RvY2tIaXN0b3J5UmVxdWVzdCk6IFByb21pc2U8U3RvY2tIaXN0b3J5Qm9bXT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5hcnRpY2xlQ29ubmVjdG9yLmdldFN0b2NrSGlzdG9yeShyZXF1ZXN0KS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIGlmIChyZXN1bHQucmVzdWx0T2JqZWN0ICYmIHJlc3VsdC5yZXN1bHRPYmplY3QuaGFzT3duUHJvcGVydHkoXCJzdG9ja0hpc3RvcnlcIikpIHtcclxuICAgICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShTdG9ja0hpc3RvcnlCbywgcmVzdWx0LnJlc3VsdE9iamVjdC5zdG9ja0hpc3RvcnkpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRTdG9ja0luZm9ybWF0aW9uKGRhdGE6IEFydGljbGVTdG9jayk6IFByb21pc2U8QXJ0aWNsZVN0b2NrQm9bXT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5hcnRpY2xlQ29ubmVjdG9yLmdldFN0b2NrSW5mb3JtYXRpb24oZGF0YSkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0LnJlc3VsdE9iamVjdHMpIHtcclxuICAgICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShBcnRpY2xlU3RvY2tCbywgcmVzdWx0LnJlc3VsdE9iamVjdHMpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldEFydFN0b2NrU3RhdHVzKGdvb2RJZDogbnVtYmVyLCBicmFuY2hObz86IHN0cmluZywgcmVxdWVzdGVkQW1vdW50PzogbnVtYmVyLCB3YXJlaG91c2VJZD86IG51bWJlcik6IFByb21pc2U8bnVtYmVyPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmFydGljbGVDb25uZWN0b3IuZ2V0QXJ0U3RvY2tTdGF0dXMoZ29vZElkLCBicmFuY2hObywgcmVxdWVzdGVkQW1vdW50LCB3YXJlaG91c2VJZCkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0LnJlc3VsdE9iamVjdCkge1xyXG4gICAgICAgICAgICByZXNvbHZlKHJlc3VsdC5yZXN1bHRPYmplY3QpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0QXJ0aWNsZUZsYXQoc2t1OiBzdHJpbmcpOiBQcm9taXNlPEFydGljbGVGbGF0PiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmFydGljbGVDb25uZWN0b3IuZ2V0QXJ0aWNsZUZsYXQoc2t1KS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIGlmIChyZXN1bHQucmVzdWx0T2JqZWN0KSB7XHJcbiAgICAgICAgICAgIHJlc29sdmUocmVzdWx0LnJlc3VsdE9iamVjdCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBzZWFyY2hBcnRpY2xlcyhyZXF1ZXN0OiBBcnRpY2xlRXh0ZW5kZWRSZXF1ZXN0KTogUHJvbWlzZTxBcnRpY2xlRXh0ZW5kZWRbXT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5hcnRpY2xlQ29ubmVjdG9yLnNlYXJjaEFydGljbGVzKHJlcXVlc3QsIGZhbHNlKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIGlmIChyZXN1bHQucmVzdWx0T2JqZWN0cykge1xyXG4gICAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlQk9BcnJheUZyb21SYXdCYWNrZW5kRGF0YUFycmF5KFN0b2NrTWFuYWdlbWVudFdhcmVob3VzZXMsIHJlc3VsdC5yZXN1bHRPYmplY3RzKSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRTdG9ja01hbmFnZW1lbnRXYXJlaG91c2VzKCk6IFByb21pc2U8U3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlc1tdPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmFydGljbGVDb25uZWN0b3IuZ2V0U3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlcygpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdC5yZXN1bHRPYmplY3RzKSB7XHJcbiAgICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VCT0FycmF5RnJvbVJhd0JhY2tlbmREYXRhQXJyYXkoU3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlcywgcmVzdWx0LnJlc3VsdE9iamVjdHMpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldFN0b2NrTWFuYWdlbWVudExvY2F0aW9ucyh3YXJlaG91c2VObzogbnVtYmVyKTogUHJvbWlzZTxTdG9ja0xvY2F0aW9uW10+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuYXJ0aWNsZUNvbm5lY3Rvci5nZXRTdG9ja01hbmFnZW1lbnRMb2NhdGlvbnMod2FyZWhvdXNlTm8pLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdC5yZXN1bHRPYmplY3RzKSB7XHJcbiAgICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VCT0FycmF5RnJvbVJhd0JhY2tlbmREYXRhQXJyYXkoU3RvY2tMb2NhdGlvbiwgcmVzdWx0LnJlc3VsdE9iamVjdHMpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gcHVibGljIGFzeW5jIGdldE9yZGVyQ29uZmlybWF0aW9uRGVmYXVsdFNlbmRNZXRob2QocmVsYXRpb25JZDogbnVtYmVyKTogUHJvbWlzZTxudW1iZXI+IHtcclxuICAvLyAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAvLyAgICAgcmV0dXJuIHRoaXMuc2hhcmVkQ29ubmVjdG9yLmdldE9yZGVyQ29uZmlybWF0aW9uRGVmYXVsdFNlbmRNZXRob2QocmVsYXRpb25JZCkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gIC8vICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgLy8gICAgICAgICBpZiAocmVzdWx0LnJlc3VsdE9iamVjdCkge1xyXG4gIC8vICAgICAgICAgICByZXNvbHZlIChyZXN1bHQucmVzdWx0T2JqZWN0KTtcclxuICAvLyAgICAgICAgIH1cclxuICAvLyAgICAgICB9IGVsc2Uge1xyXG4gIC8vICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XHJcbiAgLy8gICAgICAgfVxyXG4gIC8vICAgICB9KTtcclxuICAvLyAgIH0pO1xyXG4gIC8vIH1cclxuXHJcbiAgLy8gcHVibGljIGFzeW5jIGdldERlZmF1bHRFbWFpbEFkZHJlc3NMaXN0Rm9yT3JkZXJDb25maXJtYXRpb24odHJhbnNhY3Rpb25VVUlEOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZ1tdPiB7XHJcbiAgLy8gICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgLy8gICAgIHJldHVybiB0aGlzLnNoYXJlZENvbm5lY3Rvci5nZXREZWZhdWx0RW1haWxBZGRyZXNzTGlzdEZvck9yZGVyQ29uZmlybWF0aW9uKHRyYW5zYWN0aW9uVVVJRCkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gIC8vICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgLy8gICAgICAgICBpZiAocmVzdWx0LnJlc3VsdE9iamVjdCkge1xyXG4gIC8vICAgICAgICAgICByZXNvbHZlIChyZXN1bHQucmVzdWx0T2JqZWN0KTtcclxuICAvLyAgICAgICAgIH1cclxuICAvLyAgICAgICB9IGVsc2Uge1xyXG4gIC8vICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XHJcbiAgLy8gICAgICAgfVxyXG4gIC8vICAgICB9KTtcclxuICAvLyAgIH0pO1xyXG4gIC8vIH1cclxuXHJcbiAgLy8gcHVibGljIGFzeW5jIGdldFB1cmNoYXNlT3JkZXJFbWFpbExheW91dHModHJhbnNhY3Rpb25VVUlEOiBzdHJpbmcpOiBQcm9taXNlPFN0b2NrU3RpY2tlcnNFbWFpbExheW91dHNbXT4ge1xyXG4gIC8vICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gIC8vICAgICByZXR1cm4gdGhpcy5zaGFyZWRDb25uZWN0b3IuZ2V0UHVyY2hhc2VPcmRlckVtYWlsTGF5b3V0cyh0cmFuc2FjdGlvblVVSUQpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAvLyAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gIC8vICAgICAgICAgaWYgKHJlc3VsdC5yZXN1bHRPYmplY3QpIHtcclxuICAvLyAgICAgICAgICAgcmVzb2x2ZSAocmVzdWx0LnJlc3VsdE9iamVjdCk7XHJcbiAgLy8gICAgICAgICB9XHJcbiAgLy8gICAgICAgfSBlbHNlIHtcclxuICAvLyAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xyXG4gIC8vICAgICAgIH1cclxuICAvLyAgICAgfSk7XHJcbiAgLy8gICB9KTtcclxuICAvLyB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRBcnRpY2xlRGV0YWlscyhkYXRhOiBBcnRpY2xlU3RvY2tNYW5hZ2VtZW50KTogUHJvbWlzZTxBcnRpY2xlRGV0YWlsc0JvW10+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuYXJ0aWNsZUNvbm5lY3Rvci5nZXRBcnRpY2xlRGV0YWlscyhkYXRhKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIGlmIChyZXN1bHQucmVzdWx0T2JqZWN0cykge1xyXG4gICAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlQk9BcnJheUZyb21SYXdCYWNrZW5kRGF0YUFycmF5KEFydGljbGVEZXRhaWxzQm8sIHJlc3VsdC5yZXN1bHRPYmplY3RzKSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyB1cGRhdGVBcnRpY2xlRGV0YWlscyhkYXRhOiBBcnRpY2xlRGV0YWlsc0JvKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmFydGljbGVDb25uZWN0b3IudXBkYXRlQXJ0aWNsZURldGFpbHMoZGF0YSkudGhlbihhc3luYyAocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICBhd2FpdCB0aGlzLmNvbW1pdCgpO1xyXG4gICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBwdWJsaWMgYXN5bmMgbG9ja0FydGljbGVEZXRhaWxzKGRhdGE6IEFydGljbGVTdG9ja01hbmFnZW1lbnQpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuYXJ0aWNsZUNvbm5lY3Rvci5sb2NrQXJ0aWNsZURldGFpbHMoZGF0YSkudGhlbihhc3luYyAocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICBhd2FpdCB0aGlzLmNvbW1pdCgpO1xyXG4gICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRTdG9ja1N0YXR1cygpOiBQcm9taXNlPFN0b2NrU3RhdHVzW10+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuYXJ0aWNsZUNvbm5lY3Rvci5nZXRTdG9ja1N0YXRlKCkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0LnJlc3VsdE9iamVjdHMpIHtcclxuICAgICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShTdG9ja1N0YXR1cywgcmVzdWx0LnJlc3VsdE9iamVjdHMpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gcHVibGljIGFzeW5jIGdldFN0b2NrU3RpY2tlclRlbXBsYXRlcyhkYXRhOiBTdG9ja1N0aWNrZXJzUHJpbnRMYXlvdXRzKTogUHJvbWlzZTxTdG9ja1N0aWNrZXJzUHJpbnRMYXlvdXRzW10+IHtcclxuICAvLyAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAvLyAgICAgcmV0dXJuIHRoaXMubWFpbkNvbm5lY3Rvci5nZXRTdG9ja1N0aWNrZXJQcmludExheW91dHMoZGF0YSkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gIC8vICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgLy8gICAgICAgICBpZiAocmVzdWx0LnJlc3VsdE9iamVjdCkge1xyXG4gIC8vICAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlQk9BcnJheUZyb21SYXdCYWNrZW5kRGF0YUFycmF5KFN0b2NrU3RpY2tlcnNQcmludExheW91dHMsIHJlc3VsdC5yZXN1bHRPYmplY3QpKTtcclxuICAvLyAgICAgICAgIH1cclxuICAvLyAgICAgICB9IGVsc2Uge1xyXG4gIC8vICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XHJcbiAgLy8gICAgICAgfVxyXG4gIC8vICAgICB9KTtcclxuICAvLyAgIH0pO1xyXG4gIC8vIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldEFydGljbGVUcmFuc2FjdGlvbihkYXRhOiBBcnRpY2xlVHJhbnNhY3Rpb24pOiBQcm9taXNlPEFydGljbGVUcmFuc2FjdGlvbkJvW10+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuYXJ0aWNsZUNvbm5lY3Rvci5nZXRBcnRpY2xlVHJhbnNhY3Rpb24oZGF0YSkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0LnJlc3VsdE9iamVjdHMpIHtcclxuICAgICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShBcnRpY2xlVHJhbnNhY3Rpb25CbywgcmVzdWx0LnJlc3VsdE9iamVjdHMpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldFN0b2NrUHJvZ25vc2UoZ29vZElkOiBudW1iZXIsIHdhcmVob3VzZU51bWJlcjogbnVtYmVyKTogUHJvbWlzZTxTdG9ja0ZvcmVjYXN0W10+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuYXJ0aWNsZUNvbm5lY3Rvci5nZXRTdG9ja0ZvcmVjYXN0KGdvb2RJZCwgd2FyZWhvdXNlTnVtYmVyKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIGlmIChyZXN1bHQucmVzdWx0T2JqZWN0cykge1xyXG4gICAgICAgICAgICByZXNvbHZlKHJlc3VsdC5yZXN1bHRPYmplY3RzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNvbW1pdCgpOiBQcm9taXNlPERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhPiB7XHJcbiAgICByZXR1cm4gdGhpcy5hcnRpY2xlQ29ubmVjdG9yLmNvbW1pdCgpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19