@datarailsshared/datarailsshared 1.4.188 → 1.4.193-rocket

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 (359) hide show
  1. package/_datarailsshared.styles.css +4 -4
  2. package/assets/styles/_styles.scss +2 -2
  3. package/datarailsshared-datarailsshared-1.4.193-rocket.tgz +0 -0
  4. package/esm2022/datarailsshared-datarailsshared.mjs +5 -0
  5. package/esm2022/lib/date-tags/any-tag.component.mjs +45 -0
  6. package/esm2022/lib/date-tags/date-tag.component.mjs +48 -0
  7. package/esm2022/lib/date-tags/date-tag.module.mjs +66 -0
  8. package/esm2022/lib/date-tags/day-tag/day-tag.component.mjs +84 -0
  9. package/esm2022/lib/date-tags/forecast-tag/forecast-tag.component.mjs +162 -0
  10. package/esm2022/lib/date-tags/month-tag/month-tag.component.mjs +87 -0
  11. package/esm2022/lib/date-tags/quarter-tag/quarter-tag.component.mjs +107 -0
  12. package/esm2022/lib/date-tags/week-tag/week-tag.component.mjs +91 -0
  13. package/esm2022/lib/date-tags/year-tag/year-tag.component.mjs +85 -0
  14. package/esm2022/lib/directives/click-outside/click-outside.directive.mjs +94 -0
  15. package/esm2022/lib/directives/click-outside/click-outside.module.mjs +18 -0
  16. package/esm2022/lib/dr-accordion/accordion-item-body.component.mjs +59 -0
  17. package/esm2022/lib/dr-accordion/accordion-item-header.component.mjs +109 -0
  18. package/esm2022/lib/dr-accordion/accordion-item.component.mjs +142 -0
  19. package/esm2022/lib/dr-accordion/accordion.component.mjs +41 -0
  20. package/esm2022/lib/dr-accordion/accordion.module.mjs +34 -0
  21. package/esm2022/lib/dr-avatar/dr-avatar.component.mjs +48 -0
  22. package/esm2022/lib/dr-avatar/dr-avatar.module.mjs +37 -0
  23. package/esm2022/lib/dr-avatar/dr-avatar.pipe.mjs +20 -0
  24. package/esm2022/lib/dr-badge-status/dr-badge-status.component.mjs +30 -0
  25. package/esm2022/lib/dr-badge-status/dr-badge-status.module.mjs +27 -0
  26. package/esm2022/lib/dr-chat/chat.component.mjs +147 -0
  27. package/esm2022/lib/dr-chat/chat.module.mjs +68 -0
  28. package/esm2022/lib/dr-chat/dr-chat-form/chat-form.component.mjs +169 -0
  29. package/esm2022/lib/dr-chat/dr-chat-message/chat-message.component.mjs +108 -0
  30. package/{esm2015/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive.js → esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive.mjs} +21 -21
  31. package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.service.mjs +24 -0
  32. package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component.mjs +57 -0
  33. package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component.mjs +23 -0
  34. package/esm2022/lib/dr-chat/dr-chat-suggestions/chat-suggestions.component.mjs +89 -0
  35. package/esm2022/lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component.mjs +13 -0
  36. package/esm2022/lib/dr-details-list/dr-details-list.component.mjs +78 -0
  37. package/esm2022/lib/dr-details-list/dr-details-list.module.mjs +21 -0
  38. package/esm2022/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.mjs +79 -0
  39. package/esm2022/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.mjs +102 -0
  40. package/esm2022/lib/dr-dialog/dialog.module.mjs +51 -0
  41. package/esm2022/lib/dr-dialog/interfaces/dialog-data.mjs +25 -0
  42. package/esm2022/lib/dr-dialog/services/dialog.service.mjs +78 -0
  43. package/esm2022/lib/dr-dropdown/dr-dropdown-item-show.pipe.mjs +16 -0
  44. package/esm2022/lib/dr-dropdown/dr-dropdown-position.directive.mjs +108 -0
  45. package/esm2022/lib/dr-dropdown/dr-dropdown.component.mjs +124 -0
  46. package/esm2022/lib/dr-dropdown/dr-dropdown.directive.mjs +125 -0
  47. package/esm2022/lib/dr-dropdown/dr-dropdown.module.mjs +49 -0
  48. package/esm2022/lib/dr-dropdown/dr-dropdown.service.mjs +26 -0
  49. package/esm2022/lib/dr-dynamic-tag/dr-dynamic-tag.component.mjs +119 -0
  50. package/esm2022/lib/dr-dynamic-tag/dr-dynamic-tag.module.mjs +28 -0
  51. package/esm2022/lib/dr-error/dr-error.component.mjs +69 -0
  52. package/esm2022/lib/dr-error/dr-error.module.mjs +31 -0
  53. package/esm2022/lib/dr-inputs/button/button.component.mjs +70 -0
  54. package/esm2022/lib/dr-inputs/checkbox/checkbox.component.mjs +67 -0
  55. package/esm2022/lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive.mjs +67 -0
  56. package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.mjs +234 -0
  57. package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.mjs +194 -0
  58. package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.mjs +190 -0
  59. package/esm2022/lib/dr-inputs/date-pickers/dr-show-timeframe.pipe.mjs +16 -0
  60. package/esm2022/lib/dr-inputs/date-pickers/services/dr-date-picker.service.mjs +198 -0
  61. package/esm2022/lib/dr-inputs/dr-input/dr-input.component.mjs +232 -0
  62. package/esm2022/lib/dr-inputs/dr-inputs.module.mjs +108 -0
  63. package/esm2022/lib/dr-inputs/dr-model-debounce-change.directive.mjs +32 -0
  64. package/esm2022/lib/dr-inputs/dr-select/dr-select.component.mjs +182 -0
  65. package/esm2022/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.mjs +82 -0
  66. package/esm2022/lib/dr-inputs/dr-toggle/dr-toggle.component.mjs +77 -0
  67. package/esm2022/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.mjs +69 -0
  68. package/esm2022/lib/dr-inputs/radio-button/radio-button.component.mjs +82 -0
  69. package/esm2022/lib/dr-inputs/radio-button/radio-group.component.mjs +180 -0
  70. package/esm2022/lib/dr-layout/dr-layout-body.component.mjs +16 -0
  71. package/esm2022/lib/dr-layout/dr-layout-header.component.mjs +24 -0
  72. package/esm2022/lib/dr-layout/dr-layout.component.mjs +13 -0
  73. package/esm2022/lib/dr-layout/dr-layout.module.mjs +29 -0
  74. package/esm2022/lib/dr-popover/dr-popover-ref.mjs +23 -0
  75. package/esm2022/lib/dr-popover/dr-popover.component.mjs +141 -0
  76. package/esm2022/lib/dr-popover/dr-popover.directive.mjs +115 -0
  77. package/esm2022/lib/dr-popover/dr-popover.module.mjs +30 -0
  78. package/esm2022/lib/dr-popover/dr-popover.service.mjs +110 -0
  79. package/esm2022/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.mjs +110 -0
  80. package/esm2022/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.mjs +85 -0
  81. package/esm2022/lib/dr-scenario/consts/scenario-tags-config.mjs +81 -0
  82. package/esm2022/lib/dr-scenario/dr-scenario.module.mjs +41 -0
  83. package/esm2022/lib/dr-scenario/services/scenario.service.mjs +166 -0
  84. package/esm2022/lib/dr-spinner/dr-spinner.component.mjs +18 -0
  85. package/esm2022/lib/dr-spinner/dr-spinner.directive.mjs +66 -0
  86. package/esm2022/lib/dr-spinner/dr-spinner.module.mjs +23 -0
  87. package/esm2022/lib/dr-tabs/dr-tab.component.mjs +42 -0
  88. package/esm2022/lib/dr-tabs/dr-tabs.component.mjs +51 -0
  89. package/esm2022/lib/dr-tabs/dr-tabs.module.mjs +49 -0
  90. package/esm2022/lib/dr-tags/dr-tag.component.mjs +201 -0
  91. package/esm2022/lib/dr-tags/dr-tag.module.mjs +35 -0
  92. package/esm2022/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.mjs +20 -0
  93. package/esm2022/lib/dr-tooltip/components/tooltip-info-simple/tooltip-info-simple.component.mjs +17 -0
  94. package/esm2022/lib/dr-tooltip/components/tooltip-no-body/tooltip-no-body.component.mjs +19 -0
  95. package/esm2022/lib/dr-tooltip/components/tooltip-process-default/tooltip-process-default.component.mjs +20 -0
  96. package/esm2022/lib/dr-tooltip/dr-tooltip.component.mjs +53 -0
  97. package/esm2022/lib/dr-tooltip/dr-tooltip.directive.mjs +165 -0
  98. package/esm2022/lib/dr-tooltip/dr-tooltip.module.mjs +48 -0
  99. package/esm2022/lib/dr-treeview/components/treeview/treeview.component.mjs +224 -0
  100. package/esm2022/lib/dr-treeview/components/treeview-item/treeview-item.component.mjs +62 -0
  101. package/esm2022/lib/dr-treeview/dr-tree-view.module.mjs +48 -0
  102. package/esm2022/lib/dr-treeview/helpers/treeview-event-parser.mjs +103 -0
  103. package/esm2022/lib/dr-treeview/models/treeview-config.mjs +23 -0
  104. package/esm2022/lib/dr-treeview/models/treeview-i18n.mjs +47 -0
  105. package/esm2022/lib/dr-treeview/models/treeview-item.mjs +158 -0
  106. package/esm2022/lib/dr-treeview/pipes/treeview.pipe.mjs +21 -0
  107. package/esm2022/lib/list-tags/list-tag.component.mjs +45 -0
  108. package/esm2022/lib/list-tags/list-tag.module.mjs +34 -0
  109. package/esm2022/lib/models/chat.mjs +49 -0
  110. package/esm2022/lib/models/datePicker.mjs +71 -0
  111. package/esm2022/lib/models/popover.mjs +27 -0
  112. package/esm2022/lib/stepper/stepper.component.mjs +66 -0
  113. package/esm2022/lib/stepper/stepper.module.mjs +24 -0
  114. package/esm2022/public-api.mjs +120 -0
  115. package/fesm2022/datarailsshared-datarailsshared.mjs +7893 -0
  116. package/fesm2022/datarailsshared-datarailsshared.mjs.map +1 -0
  117. package/index.d.ts +5 -0
  118. package/lib/date-tags/any-tag.component.d.ts +20 -0
  119. package/lib/date-tags/date-tag.component.d.ts +4 -16
  120. package/lib/date-tags/date-tag.module.d.ts +19 -2
  121. package/lib/date-tags/day-tag/day-tag.component.d.ts +4 -1
  122. package/lib/date-tags/forecast-tag/forecast-tag.component.d.ts +5 -2
  123. package/lib/date-tags/month-tag/month-tag.component.d.ts +4 -1
  124. package/lib/date-tags/quarter-tag/quarter-tag.component.d.ts +4 -1
  125. package/lib/date-tags/week-tag/week-tag.component.d.ts +4 -1
  126. package/lib/date-tags/year-tag/year-tag.component.d.ts +4 -1
  127. package/lib/directives/click-outside/click-outside.directive.d.ts +23 -0
  128. package/lib/directives/click-outside/click-outside.module.d.ts +8 -0
  129. package/lib/dr-accordion/accordion-item-body.component.d.ts +3 -0
  130. package/lib/dr-accordion/accordion-item-header.component.d.ts +3 -0
  131. package/lib/dr-accordion/accordion-item.component.d.ts +3 -0
  132. package/lib/dr-accordion/accordion.component.d.ts +3 -0
  133. package/lib/dr-accordion/accordion.module.d.ts +9 -0
  134. package/lib/dr-avatar/dr-avatar.component.d.ts +3 -0
  135. package/lib/dr-avatar/dr-avatar.module.d.ts +9 -0
  136. package/lib/dr-avatar/dr-avatar.pipe.d.ts +3 -0
  137. package/lib/dr-badge-status/dr-badge-status.component.d.ts +3 -0
  138. package/lib/dr-badge-status/dr-badge-status.module.d.ts +7 -0
  139. package/lib/dr-chat/chat.component.d.ts +3 -0
  140. package/lib/dr-chat/chat.module.d.ts +17 -0
  141. package/lib/dr-chat/dr-chat-form/chat-form.component.d.ts +3 -0
  142. package/lib/dr-chat/dr-chat-message/chat-message.component.d.ts +3 -0
  143. package/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive.d.ts +3 -0
  144. package/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.service.d.ts +3 -0
  145. package/lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component.d.ts +3 -0
  146. package/lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component.d.ts +3 -0
  147. package/lib/dr-chat/dr-chat-suggestions/chat-suggestions.component.d.ts +3 -0
  148. package/lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component.d.ts +3 -0
  149. package/lib/dr-details-list/dr-details-list.component.d.ts +3 -0
  150. package/lib/dr-details-list/dr-details-list.module.d.ts +6 -0
  151. package/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.d.ts +4 -1
  152. package/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.d.ts +4 -1
  153. package/lib/dr-dialog/dialog.module.d.ts +12 -0
  154. package/lib/dr-dialog/interfaces/dialog-data.d.ts +7 -7
  155. package/lib/dr-dialog/services/dialog.service.d.ts +4 -1
  156. package/lib/dr-dropdown/dr-dropdown-item-show.pipe.d.ts +3 -0
  157. package/lib/dr-dropdown/dr-dropdown-position.directive.d.ts +3 -0
  158. package/lib/dr-dropdown/dr-dropdown.component.d.ts +3 -0
  159. package/lib/dr-dropdown/dr-dropdown.directive.d.ts +3 -0
  160. package/lib/dr-dropdown/dr-dropdown.module.d.ts +10 -0
  161. package/lib/dr-dropdown/dr-dropdown.service.d.ts +3 -0
  162. package/lib/dr-dynamic-tag/dr-dynamic-tag.component.d.ts +3 -0
  163. package/lib/dr-dynamic-tag/dr-dynamic-tag.module.d.ts +8 -0
  164. package/lib/dr-error/dr-error.component.d.ts +3 -0
  165. package/lib/dr-error/dr-error.module.d.ts +8 -0
  166. package/lib/dr-inputs/button/button.component.d.ts +4 -1
  167. package/lib/dr-inputs/checkbox/checkbox.component.d.ts +3 -0
  168. package/lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive.d.ts +3 -0
  169. package/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.d.ts +3 -0
  170. package/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.d.ts +3 -0
  171. package/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.d.ts +4 -8
  172. package/lib/dr-inputs/date-pickers/dr-show-timeframe.pipe.d.ts +4 -2
  173. package/lib/dr-inputs/date-pickers/services/dr-date-picker.service.d.ts +3 -0
  174. package/lib/dr-inputs/dr-input/dr-input.component.d.ts +3 -0
  175. package/lib/dr-inputs/dr-inputs.module.d.ts +25 -0
  176. package/lib/dr-inputs/dr-model-debounce-change.directive.d.ts +3 -0
  177. package/lib/dr-inputs/dr-select/dr-select.component.d.ts +3 -0
  178. package/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.d.ts +3 -0
  179. package/lib/dr-inputs/dr-toggle/dr-toggle.component.d.ts +3 -0
  180. package/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.d.ts +3 -0
  181. package/lib/dr-inputs/radio-button/radio-button.component.d.ts +3 -0
  182. package/lib/dr-inputs/radio-button/radio-group.component.d.ts +3 -0
  183. package/lib/dr-layout/dr-layout-body.component.d.ts +3 -0
  184. package/lib/dr-layout/dr-layout-header.component.d.ts +3 -0
  185. package/lib/dr-layout/dr-layout.component.d.ts +3 -0
  186. package/lib/dr-layout/dr-layout.module.d.ts +8 -0
  187. package/lib/dr-popover/dr-popover.component.d.ts +8 -4
  188. package/lib/dr-popover/dr-popover.directive.d.ts +3 -0
  189. package/lib/dr-popover/dr-popover.module.d.ts +7 -0
  190. package/lib/dr-popover/dr-popover.service.d.ts +3 -0
  191. package/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.d.ts +3 -0
  192. package/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.d.ts +3 -0
  193. package/lib/dr-scenario/dr-scenario.module.d.ts +10 -0
  194. package/lib/dr-scenario/interfaces/scenario.d.ts +3 -3
  195. package/lib/dr-scenario/services/scenario.service.d.ts +3 -0
  196. package/lib/dr-spinner/dr-spinner.component.d.ts +3 -0
  197. package/lib/dr-spinner/dr-spinner.directive.d.ts +3 -0
  198. package/lib/dr-spinner/dr-spinner.module.d.ts +7 -0
  199. package/lib/dr-tabs/dr-tab.component.d.ts +3 -0
  200. package/lib/dr-tabs/dr-tabs.component.d.ts +3 -0
  201. package/lib/dr-tabs/dr-tabs.module.d.ts +11 -0
  202. package/lib/dr-tags/dr-tag.component.d.ts +3 -0
  203. package/lib/dr-tags/dr-tag.module.d.ts +9 -0
  204. package/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.d.ts +3 -0
  205. package/lib/dr-tooltip/components/tooltip-info-simple/tooltip-info-simple.component.d.ts +3 -0
  206. package/lib/dr-tooltip/components/tooltip-no-body/tooltip-no-body.component.d.ts +3 -0
  207. package/lib/dr-tooltip/components/tooltip-process-default/tooltip-process-default.component.d.ts +3 -0
  208. package/lib/dr-tooltip/dr-tooltip.component.d.ts +4 -1
  209. package/lib/dr-tooltip/dr-tooltip.directive.d.ts +3 -0
  210. package/lib/dr-tooltip/dr-tooltip.module.d.ts +11 -0
  211. package/lib/dr-tooltip/interfaces/tooltip-component-context.d.ts +1 -1
  212. package/lib/dr-treeview/components/treeview/treeview.component.d.ts +3 -0
  213. package/lib/dr-treeview/components/treeview-item/treeview-item.component.d.ts +3 -0
  214. package/lib/dr-treeview/dr-tree-view.module.d.ts +9 -0
  215. package/lib/dr-treeview/helpers/treeview-event-parser.d.ts +9 -0
  216. package/lib/dr-treeview/models/treeview-config.d.ts +3 -0
  217. package/lib/dr-treeview/models/treeview-i18n.d.ts +5 -0
  218. package/lib/dr-treeview/pipes/treeview.pipe.d.ts +3 -0
  219. package/lib/list-tags/list-tag.component.d.ts +3 -0
  220. package/lib/list-tags/list-tag.module.d.ts +8 -0
  221. package/lib/models/chat.d.ts +2 -2
  222. package/lib/models/datePicker.d.ts +10 -3
  223. package/lib/models/dropdown.d.ts +1 -1
  224. package/lib/models/popover.d.ts +1 -1
  225. package/lib/models/serverTags.d.ts +4 -4
  226. package/lib/stepper/interfaces/stepper.d.ts +1 -1
  227. package/lib/stepper/stepper.component.d.ts +3 -0
  228. package/lib/stepper/stepper.module.d.ts +7 -0
  229. package/package.json +27 -15
  230. package/public-api.d.ts +27 -0
  231. package/bundles/datarailsshared-datarailsshared.umd.js +0 -8041
  232. package/bundles/datarailsshared-datarailsshared.umd.js.map +0 -1
  233. package/datarailsshared-datarailsshared-1.4.188.tgz +0 -0
  234. package/datarailsshared-datarailsshared.d.ts +0 -34
  235. package/datarailsshared-datarailsshared.metadata.json +0 -1
  236. package/esm2015/datarailsshared-datarailsshared.js +0 -35
  237. package/esm2015/lib/date-tags/date-tag.component.js +0 -73
  238. package/esm2015/lib/date-tags/date-tag.module.js +0 -36
  239. package/esm2015/lib/date-tags/day-tag/day-tag.component.js +0 -77
  240. package/esm2015/lib/date-tags/forecast-tag/forecast-tag.component.js +0 -153
  241. package/esm2015/lib/date-tags/month-tag/month-tag.component.js +0 -80
  242. package/esm2015/lib/date-tags/quarter-tag/quarter-tag.component.js +0 -105
  243. package/esm2015/lib/date-tags/week-tag/week-tag.component.js +0 -84
  244. package/esm2015/lib/date-tags/year-tag/year-tag.component.js +0 -78
  245. package/esm2015/lib/dr-accordion/accordion-item-body.component.js +0 -55
  246. package/esm2015/lib/dr-accordion/accordion-item-header.component.js +0 -77
  247. package/esm2015/lib/dr-accordion/accordion-item.component.js +0 -123
  248. package/esm2015/lib/dr-accordion/accordion.component.js +0 -43
  249. package/esm2015/lib/dr-accordion/accordion.module.js +0 -23
  250. package/esm2015/lib/dr-avatar/dr-avatar.component.js +0 -44
  251. package/esm2015/lib/dr-avatar/dr-avatar.module.js +0 -26
  252. package/esm2015/lib/dr-avatar/dr-avatar.pipe.js +0 -16
  253. package/esm2015/lib/dr-badge-status/dr-badge-status.component.js +0 -25
  254. package/esm2015/lib/dr-badge-status/dr-badge-status.module.js +0 -20
  255. package/esm2015/lib/dr-chat/chat.component.js +0 -119
  256. package/esm2015/lib/dr-chat/chat.module.js +0 -41
  257. package/esm2015/lib/dr-chat/dr-chat-form/chat-form.component.js +0 -155
  258. package/esm2015/lib/dr-chat/dr-chat-message/chat-message.component.js +0 -71
  259. package/esm2015/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.service.js +0 -23
  260. package/esm2015/lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component.js +0 -47
  261. package/esm2015/lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component.js +0 -18
  262. package/esm2015/lib/dr-chat/dr-chat-suggestions/chat-suggestions.component.js +0 -87
  263. package/esm2015/lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component.js +0 -15
  264. package/esm2015/lib/dr-details-list/dr-details-list.component.js +0 -65
  265. package/esm2015/lib/dr-details-list/dr-details-list.module.js +0 -16
  266. package/esm2015/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.js +0 -70
  267. package/esm2015/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.js +0 -92
  268. package/esm2015/lib/dr-dialog/dialog.module.js +0 -34
  269. package/esm2015/lib/dr-dialog/interfaces/dialog-data.js +0 -25
  270. package/esm2015/lib/dr-dialog/services/dialog.service.js +0 -78
  271. package/esm2015/lib/dr-dropdown/dr-dropdown-item-show.pipe.js +0 -12
  272. package/esm2015/lib/dr-dropdown/dr-dropdown-position.directive.js +0 -104
  273. package/esm2015/lib/dr-dropdown/dr-dropdown.component.js +0 -114
  274. package/esm2015/lib/dr-dropdown/dr-dropdown.directive.js +0 -104
  275. package/esm2015/lib/dr-dropdown/dr-dropdown.module.js +0 -34
  276. package/esm2015/lib/dr-dropdown/dr-dropdown.service.js +0 -24
  277. package/esm2015/lib/dr-dynamic-tag/dr-dynamic-tag.component.js +0 -103
  278. package/esm2015/lib/dr-dynamic-tag/dr-dynamic-tag.module.js +0 -19
  279. package/esm2015/lib/dr-error/dr-error.component.js +0 -64
  280. package/esm2015/lib/dr-error/dr-error.module.js +0 -22
  281. package/esm2015/lib/dr-inputs/button/button.component.js +0 -39
  282. package/esm2015/lib/dr-inputs/checkbox/checkbox.component.js +0 -65
  283. package/esm2015/lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive.js +0 -47
  284. package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.js +0 -216
  285. package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.js +0 -180
  286. package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.js +0 -183
  287. package/esm2015/lib/dr-inputs/date-pickers/dr-show-timeframe.pipe.js +0 -12
  288. package/esm2015/lib/dr-inputs/date-pickers/services/dr-date-picker.service.js +0 -194
  289. package/esm2015/lib/dr-inputs/dr-input/dr-input.component.js +0 -194
  290. package/esm2015/lib/dr-inputs/dr-inputs.module.js +0 -66
  291. package/esm2015/lib/dr-inputs/dr-model-debounce-change.directive.js +0 -29
  292. package/esm2015/lib/dr-inputs/dr-select/dr-select.component.js +0 -119
  293. package/esm2015/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.js +0 -74
  294. package/esm2015/lib/dr-inputs/dr-toggle/dr-toggle.component.js +0 -68
  295. package/esm2015/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.js +0 -63
  296. package/esm2015/lib/dr-inputs/radio-button/radio-button.component.js +0 -73
  297. package/esm2015/lib/dr-inputs/radio-button/radio-group.component.js +0 -157
  298. package/esm2015/lib/dr-layout/dr-layout-body.component.js +0 -13
  299. package/esm2015/lib/dr-layout/dr-layout-header.component.js +0 -17
  300. package/esm2015/lib/dr-layout/dr-layout.component.js +0 -14
  301. package/esm2015/lib/dr-layout/dr-layout.module.js +0 -20
  302. package/esm2015/lib/dr-popover/dr-popover-ref.js +0 -20
  303. package/esm2015/lib/dr-popover/dr-popover.component.js +0 -106
  304. package/esm2015/lib/dr-popover/dr-popover.directive.js +0 -84
  305. package/esm2015/lib/dr-popover/dr-popover.module.js +0 -23
  306. package/esm2015/lib/dr-popover/dr-popover.service.js +0 -106
  307. package/esm2015/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.js +0 -102
  308. package/esm2015/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.js +0 -74
  309. package/esm2015/lib/dr-scenario/consts/scenario-tags-config.js +0 -73
  310. package/esm2015/lib/dr-scenario/dr-scenario.module.js +0 -28
  311. package/esm2015/lib/dr-scenario/services/scenario.service.js +0 -167
  312. package/esm2015/lib/dr-spinner/dr-spinner.component.js +0 -18
  313. package/esm2015/lib/dr-spinner/dr-spinner.directive.js +0 -56
  314. package/esm2015/lib/dr-spinner/dr-spinner.module.js +0 -18
  315. package/esm2015/lib/dr-tabs/dr-tab.component.js +0 -26
  316. package/esm2015/lib/dr-tabs/dr-tabs.component.js +0 -35
  317. package/esm2015/lib/dr-tabs/dr-tabs.module.js +0 -32
  318. package/esm2015/lib/dr-tags/dr-tag.component.js +0 -177
  319. package/esm2015/lib/dr-tags/dr-tag.module.js +0 -24
  320. package/esm2015/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.js +0 -19
  321. package/esm2015/lib/dr-tooltip/components/tooltip-info-simple/tooltip-info-simple.component.js +0 -18
  322. package/esm2015/lib/dr-tooltip/components/tooltip-no-body/tooltip-no-body.component.js +0 -20
  323. package/esm2015/lib/dr-tooltip/components/tooltip-process-default/tooltip-process-default.component.js +0 -34
  324. package/esm2015/lib/dr-tooltip/dr-tooltip.component.js +0 -40
  325. package/esm2015/lib/dr-tooltip/dr-tooltip.directive.js +0 -147
  326. package/esm2015/lib/dr-tooltip/dr-tooltip.module.js +0 -35
  327. package/esm2015/lib/dr-treeview/components/treeview/treeview.component.js +0 -210
  328. package/esm2015/lib/dr-treeview/components/treeview-item/treeview-item.component.js +0 -58
  329. package/esm2015/lib/dr-treeview/dr-tree-view.module.js +0 -38
  330. package/esm2015/lib/dr-treeview/helpers/treeview-event-parser.js +0 -97
  331. package/esm2015/lib/dr-treeview/models/treeview-config.js +0 -22
  332. package/esm2015/lib/dr-treeview/models/treeview-i18n.js +0 -42
  333. package/esm2015/lib/dr-treeview/models/treeview-item.js +0 -155
  334. package/esm2015/lib/dr-treeview/pipes/treeview.pipe.js +0 -17
  335. package/esm2015/lib/list-tags/list-tag.component.js +0 -37
  336. package/esm2015/lib/list-tags/list-tag.module.js +0 -23
  337. package/esm2015/lib/models/chat.js +0 -36
  338. package/esm2015/lib/models/datePicker.js +0 -73
  339. package/esm2015/lib/models/popover.js +0 -27
  340. package/esm2015/lib/stepper/stepper.component.js +0 -55
  341. package/esm2015/lib/stepper/stepper.module.js +0 -17
  342. package/esm2015/public-api.js +0 -93
  343. package/fesm2015/datarailsshared-datarailsshared.js +0 -6885
  344. package/fesm2015/datarailsshared-datarailsshared.js.map +0 -1
  345. /package/{esm2015/lib/dr-inputs/dr-toggle-button/toggle-button-mode.js → esm2022/lib/dr-inputs/dr-toggle-button/toggle-button-mode.mjs} +0 -0
  346. /package/{esm2015/lib/dr-scenario/interfaces/scenario.js → esm2022/lib/dr-scenario/interfaces/scenario.mjs} +0 -0
  347. /package/{esm2015/lib/dr-tooltip/enums/tooltip-position.enum.js → esm2022/lib/dr-tooltip/enums/tooltip-position.enum.mjs} +0 -0
  348. /package/{esm2015/lib/dr-tooltip/interfaces/tooltip-component-context.js → esm2022/lib/dr-tooltip/interfaces/tooltip-component-context.mjs} +0 -0
  349. /package/{esm2015/lib/dr-treeview/helpers/treeview-helper.js → esm2022/lib/dr-treeview/helpers/treeview-helper.mjs} +0 -0
  350. /package/{esm2015/lib/dr-treeview/models/treeview-header-template-context.js → esm2022/lib/dr-treeview/models/treeview-header-template-context.mjs} +0 -0
  351. /package/{esm2015/lib/dr-treeview/models/treeview-item-template-context.js → esm2022/lib/dr-treeview/models/treeview-item-template-context.mjs} +0 -0
  352. /package/{esm2015/lib/models/badgeStatus.js → esm2022/lib/models/badgeStatus.mjs} +0 -0
  353. /package/{esm2015/lib/models/constants.js → esm2022/lib/models/constants.mjs} +0 -0
  354. /package/{esm2015/lib/models/dropdown.js → esm2022/lib/models/dropdown.mjs} +0 -0
  355. /package/{esm2015/lib/models/serverTags.js → esm2022/lib/models/serverTags.mjs} +0 -0
  356. /package/{esm2015/lib/models/spinnerOptions.js → esm2022/lib/models/spinnerOptions.mjs} +0 -0
  357. /package/{esm2015/lib/models/validationError.js → esm2022/lib/models/validationError.mjs} +0 -0
  358. /package/{esm2015/lib/stepper/interfaces/stepper.js → esm2022/lib/stepper/interfaces/stepper.mjs} +0 -0
  359. /package/{esm2015/lib/utils/dr-shared-utils.js → esm2022/lib/utils/dr-shared-utils.mjs} +0 -0
@@ -0,0 +1,81 @@
1
+ import { TagsConfigSubType } from '../../models/serverTags';
2
+ import { Scenario } from '../interfaces/scenario';
3
+ export const allDateTags = {
4
+ [TagsConfigSubType.YEAR]: {
5
+ name: 'Date',
6
+ toggle: false,
7
+ },
8
+ [TagsConfigSubType.QUARTER]: {
9
+ name: 'Date',
10
+ toggle: false,
11
+ },
12
+ [TagsConfigSubType.MONTH]: {
13
+ name: 'Date',
14
+ toggle: false,
15
+ },
16
+ [TagsConfigSubType.DAY]: {
17
+ name: 'Date',
18
+ toggle: false,
19
+ },
20
+ [TagsConfigSubType.WEEK]: {
21
+ name: 'Date',
22
+ toggle: false,
23
+ }
24
+ };
25
+ export function getScenarioTagDataConfig(isMultipleDimension) {
26
+ return {
27
+ [Scenario.ACTUALS]: {
28
+ ...allDateTags,
29
+ [TagsConfigSubType.MONTH]: {
30
+ name: 'Date',
31
+ toggle: true,
32
+ },
33
+ [TagsConfigSubType.FILE_STATUS]: {
34
+ toggle: false,
35
+ },
36
+ },
37
+ [Scenario.BUDGET]: {
38
+ [TagsConfigSubType.BUDGET_CYCLE]: {
39
+ toggle: true,
40
+ acceptableDateTags: [TagsConfigSubType.YEAR],
41
+ hidden: !isMultipleDimension,
42
+ },
43
+ [TagsConfigSubType.PLAN]: {
44
+ toggle: false,
45
+ turnOffDateTags: true,
46
+ hidden: isMultipleDimension,
47
+ },
48
+ [TagsConfigSubType.YEAR]: {
49
+ name: 'Date',
50
+ toggle: true,
51
+ },
52
+ [TagsConfigSubType.QUARTER]: {
53
+ name: 'Date',
54
+ toggle: false,
55
+ },
56
+ [TagsConfigSubType.FILE_STATUS]: {
57
+ toggle: false,
58
+ },
59
+ },
60
+ [Scenario.FORECAST]: {
61
+ [TagsConfigSubType.FORECAST_NEW]: {
62
+ toggle: true,
63
+ name: 'Date',
64
+ },
65
+ [TagsConfigSubType.FILE_STATUS]: {
66
+ toggle: false,
67
+ },
68
+ },
69
+ [Scenario.NONE]: {
70
+ ...allDateTags,
71
+ [TagsConfigSubType.MONTH]: {
72
+ name: 'Date',
73
+ toggle: true,
74
+ },
75
+ [TagsConfigSubType.FILE_STATUS]: {
76
+ toggle: true,
77
+ },
78
+ },
79
+ };
80
+ }
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NlbmFyaW8tdGFncy1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1zY2VuYXJpby9jb25zdHMvc2NlbmFyaW8tdGFncy1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFFBQVEsRUFBNEMsTUFBTSx3QkFBd0IsQ0FBQztBQUU1RixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUc7SUFDdkIsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUN0QixJQUFJLEVBQUUsTUFBTTtRQUNaLE1BQU0sRUFBRSxLQUFLO0tBQ2hCO0lBQ0QsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUN6QixJQUFJLEVBQUUsTUFBTTtRQUNaLE1BQU0sRUFBRSxLQUFLO0tBQ2hCO0lBQ0QsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUN2QixJQUFJLEVBQUUsTUFBTTtRQUNaLE1BQU0sRUFBRSxLQUFLO0tBQ2hCO0lBQ0QsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNyQixJQUFJLEVBQUUsTUFBTTtRQUNaLE1BQU0sRUFBRSxLQUFLO0tBQ2hCO0lBQ0QsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUN0QixJQUFJLEVBQUUsTUFBTTtRQUNaLE1BQU0sRUFBRSxLQUFLO0tBQ2hCO0NBQ0osQ0FBQztBQUVGLE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxtQkFBNEI7SUFDakUsT0FBTztRQUNILENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2hCLEdBQUcsV0FBVztZQUNkLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3ZCLElBQUksRUFBRSxNQUFNO2dCQUNaLE1BQU0sRUFBRSxJQUFJO2FBQ2Y7WUFDRCxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUM3QixNQUFNLEVBQUUsS0FBSzthQUNoQjtTQUNKO1FBQ0QsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDZixDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxFQUFFO2dCQUM5QixNQUFNLEVBQUUsSUFBSTtnQkFDWixrQkFBa0IsRUFBRSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQztnQkFDNUMsTUFBTSxFQUFFLENBQUMsbUJBQW1CO2FBQy9CO1lBQ0QsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDdEIsTUFBTSxFQUFFLEtBQUs7Z0JBQ2IsZUFBZSxFQUFFLElBQUk7Z0JBQ3JCLE1BQU0sRUFBRSxtQkFBbUI7YUFDOUI7WUFDRCxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUN0QixJQUFJLEVBQUUsTUFBTTtnQkFDWixNQUFNLEVBQUUsSUFBSTthQUNmO1lBQ0QsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDekIsSUFBSSxFQUFFLE1BQU07Z0JBQ1osTUFBTSxFQUFFLEtBQUs7YUFDaEI7WUFDRCxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUM3QixNQUFNLEVBQUUsS0FBSzthQUNoQjtTQUNKO1FBQ0QsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDakIsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsRUFBRTtnQkFDOUIsTUFBTSxFQUFFLElBQUk7Z0JBQ1osSUFBSSxFQUFFLE1BQU07YUFDZjtZQUNELENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLEVBQUU7Z0JBQzdCLE1BQU0sRUFBRSxLQUFLO2FBQ2hCO1NBQ0o7UUFDRCxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNiLEdBQUcsV0FBVztZQUNkLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3ZCLElBQUksRUFBRSxNQUFNO2dCQUNaLE1BQU0sRUFBRSxJQUFJO2FBQ2Y7WUFDRCxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUM3QixNQUFNLEVBQUUsSUFBSTthQUNmO1NBQ0o7S0FDSixDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRhZ3NDb25maWdTdWJUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlcnZlclRhZ3MnO1xuaW1wb3J0IHsgU2NlbmFyaW8sIFRTY2VuYXJpb1RhZ0NvbmZpZ0RhdGEsIFRTY2VuYXJpb1RhZ0RhdGEgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3NjZW5hcmlvJztcblxuZXhwb3J0IGNvbnN0IGFsbERhdGVUYWdzID0ge1xuICAgIFtUYWdzQ29uZmlnU3ViVHlwZS5ZRUFSXToge1xuICAgICAgICBuYW1lOiAnRGF0ZScsXG4gICAgICAgIHRvZ2dsZTogZmFsc2UsXG4gICAgfSxcbiAgICBbVGFnc0NvbmZpZ1N1YlR5cGUuUVVBUlRFUl06IHtcbiAgICAgICAgbmFtZTogJ0RhdGUnLFxuICAgICAgICB0b2dnbGU6IGZhbHNlLFxuICAgIH0sXG4gICAgW1RhZ3NDb25maWdTdWJUeXBlLk1PTlRIXToge1xuICAgICAgICBuYW1lOiAnRGF0ZScsXG4gICAgICAgIHRvZ2dsZTogZmFsc2UsXG4gICAgfSxcbiAgICBbVGFnc0NvbmZpZ1N1YlR5cGUuREFZXToge1xuICAgICAgICBuYW1lOiAnRGF0ZScsXG4gICAgICAgIHRvZ2dsZTogZmFsc2UsXG4gICAgfSxcbiAgICBbVGFnc0NvbmZpZ1N1YlR5cGUuV0VFS106IHtcbiAgICAgICAgbmFtZTogJ0RhdGUnLFxuICAgICAgICB0b2dnbGU6IGZhbHNlLFxuICAgIH1cbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTY2VuYXJpb1RhZ0RhdGFDb25maWcoaXNNdWx0aXBsZURpbWVuc2lvbjogYm9vbGVhbik6IFRTY2VuYXJpb1RhZ0RhdGE8VFNjZW5hcmlvVGFnQ29uZmlnRGF0YT4ge1xuICAgIHJldHVybiB7XG4gICAgICAgIFtTY2VuYXJpby5BQ1RVQUxTXToge1xuICAgICAgICAgICAgLi4uYWxsRGF0ZVRhZ3MsXG4gICAgICAgICAgICBbVGFnc0NvbmZpZ1N1YlR5cGUuTU9OVEhdOiB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ0RhdGUnLFxuICAgICAgICAgICAgICAgIHRvZ2dsZTogdHJ1ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBbVGFnc0NvbmZpZ1N1YlR5cGUuRklMRV9TVEFUVVNdOiB7XG4gICAgICAgICAgICAgICAgdG9nZ2xlOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIFtTY2VuYXJpby5CVURHRVRdOiB7XG4gICAgICAgICAgICBbVGFnc0NvbmZpZ1N1YlR5cGUuQlVER0VUX0NZQ0xFXToge1xuICAgICAgICAgICAgICAgIHRvZ2dsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBhY2NlcHRhYmxlRGF0ZVRhZ3M6IFtUYWdzQ29uZmlnU3ViVHlwZS5ZRUFSXSxcbiAgICAgICAgICAgICAgICBoaWRkZW46ICFpc011bHRpcGxlRGltZW5zaW9uLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFtUYWdzQ29uZmlnU3ViVHlwZS5QTEFOXToge1xuICAgICAgICAgICAgICAgIHRvZ2dsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgdHVybk9mZkRhdGVUYWdzOiB0cnVlLFxuICAgICAgICAgICAgICAgIGhpZGRlbjogaXNNdWx0aXBsZURpbWVuc2lvbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBbVGFnc0NvbmZpZ1N1YlR5cGUuWUVBUl06IHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnRGF0ZScsXG4gICAgICAgICAgICAgICAgdG9nZ2xlOiB0cnVlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFtUYWdzQ29uZmlnU3ViVHlwZS5RVUFSVEVSXToge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdEYXRlJyxcbiAgICAgICAgICAgICAgICB0b2dnbGU6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFtUYWdzQ29uZmlnU3ViVHlwZS5GSUxFX1NUQVRVU106IHtcbiAgICAgICAgICAgICAgICB0b2dnbGU6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgW1NjZW5hcmlvLkZPUkVDQVNUXToge1xuICAgICAgICAgICAgW1RhZ3NDb25maWdTdWJUeXBlLkZPUkVDQVNUX05FV106IHtcbiAgICAgICAgICAgICAgICB0b2dnbGU6IHRydWUsXG4gICAgICAgICAgICAgICAgbmFtZTogJ0RhdGUnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFtUYWdzQ29uZmlnU3ViVHlwZS5GSUxFX1NUQVRVU106IHtcbiAgICAgICAgICAgICAgICB0b2dnbGU6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgW1NjZW5hcmlvLk5PTkVdOiB7XG4gICAgICAgICAgICAuLi5hbGxEYXRlVGFncyxcbiAgICAgICAgICAgIFtUYWdzQ29uZmlnU3ViVHlwZS5NT05USF06IHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnRGF0ZScsXG4gICAgICAgICAgICAgICAgdG9nZ2xlOiB0cnVlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFtUYWdzQ29uZmlnU3ViVHlwZS5GSUxFX1NUQVRVU106IHtcbiAgICAgICAgICAgICAgICB0b2dnbGU6IHRydWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgIH07XG59XG4iXX0=
@@ -0,0 +1,41 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { ScenarioService } from './services/scenario.service';
4
+ import { DrInputsModule } from '../dr-inputs/dr-inputs.module';
5
+ import { FormsModule } from '@angular/forms';
6
+ import { DrScenarioConfigurationComponent } from './components/dr-scenario-configuration/dr-scenario-configuration.component';
7
+ import { DrScenarioTagConfigurationComponent } from './components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component';
8
+ import { DrTagModule } from '../dr-tags/dr-tag.module';
9
+ import * as i0 from "@angular/core";
10
+ const COMPONENTS = [
11
+ DrScenarioConfigurationComponent,
12
+ DrScenarioTagConfigurationComponent,
13
+ ];
14
+ export class DrScenarioModule {
15
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: DrScenarioModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
16
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.5", ngImport: i0, type: DrScenarioModule, declarations: [DrScenarioConfigurationComponent,
17
+ DrScenarioTagConfigurationComponent], imports: [CommonModule,
18
+ DrInputsModule,
19
+ FormsModule,
20
+ DrTagModule], exports: [DrScenarioConfigurationComponent,
21
+ DrScenarioTagConfigurationComponent] });
22
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: DrScenarioModule, providers: [ScenarioService], imports: [CommonModule,
23
+ DrInputsModule,
24
+ FormsModule,
25
+ DrTagModule] });
26
+ }
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: DrScenarioModule, decorators: [{
28
+ type: NgModule,
29
+ args: [{
30
+ declarations: [...COMPONENTS],
31
+ providers: [ScenarioService],
32
+ imports: [
33
+ CommonModule,
34
+ DrInputsModule,
35
+ FormsModule,
36
+ DrTagModule
37
+ ],
38
+ exports: [...COMPONENTS],
39
+ }]
40
+ }] });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItc2NlbmFyaW8ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItc2NlbmFyaW8vZHItc2NlbmFyaW8ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDRFQUE0RSxDQUFDO0FBQzlILE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLG9GQUFvRixDQUFDO0FBQ3pJLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFHdkQsTUFBTSxVQUFVLEdBQUc7SUFDZixnQ0FBZ0M7SUFDaEMsbUNBQW1DO0NBQ3RDLENBQUE7QUFhRCxNQUFNLE9BQU8sZ0JBQWdCO3VHQUFoQixnQkFBZ0I7d0dBQWhCLGdCQUFnQixpQkFmekIsZ0NBQWdDO1lBQ2hDLG1DQUFtQyxhQU8vQixZQUFZO1lBQ1osY0FBYztZQUNkLFdBQVc7WUFDWCxXQUFXLGFBWGYsZ0NBQWdDO1lBQ2hDLG1DQUFtQzt3R0FjMUIsZ0JBQWdCLGFBVGQsQ0FBQyxlQUFlLENBQUMsWUFFeEIsWUFBWTtZQUNaLGNBQWM7WUFDZCxXQUFXO1lBQ1gsV0FBVzs7MkZBSU4sZ0JBQWdCO2tCQVg1QixRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDO29CQUM3QixTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQUM7b0JBQzVCLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsV0FBVzt3QkFDWCxXQUFXO3FCQUNkO29CQUNELE9BQU8sRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDO2lCQUMzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU2NlbmFyaW9TZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9zY2VuYXJpby5zZXJ2aWNlJztcbmltcG9ydCB7IERySW5wdXRzTW9kdWxlIH0gZnJvbSAnLi4vZHItaW5wdXRzL2RyLWlucHV0cy5tb2R1bGUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEclNjZW5hcmlvQ29uZmlndXJhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kci1zY2VuYXJpby1jb25maWd1cmF0aW9uL2RyLXNjZW5hcmlvLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IERyU2NlbmFyaW9UYWdDb25maWd1cmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RyLXNjZW5hcmlvLXRhZy1jb25maWd1cmF0aW9uL2RyLXNjZW5hcmlvLXRhZy1jb25maWd1cmF0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEclRhZ01vZHVsZSB9IGZyb20gJy4uL2RyLXRhZ3MvZHItdGFnLm1vZHVsZSc7XG5cblxuY29uc3QgQ09NUE9ORU5UUyA9IFtcbiAgICBEclNjZW5hcmlvQ29uZmlndXJhdGlvbkNvbXBvbmVudCxcbiAgICBEclNjZW5hcmlvVGFnQ29uZmlndXJhdGlvbkNvbXBvbmVudCxcbl1cblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFsuLi5DT01QT05FTlRTXSxcbiAgICBwcm92aWRlcnM6IFtTY2VuYXJpb1NlcnZpY2VdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBEcklucHV0c01vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIERyVGFnTW9kdWxlXG4gICAgXSxcbiAgICBleHBvcnRzOiBbLi4uQ09NUE9ORU5UU10sXG59KVxuZXhwb3J0IGNsYXNzIERyU2NlbmFyaW9Nb2R1bGUge1xufVxuIl19
@@ -0,0 +1,166 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { TagsConfigSubType, TagTypes } from '../../models/serverTags';
3
+ import { Scenario } from '../interfaces/scenario';
4
+ import { cloneDeep as _cloneDeep, filter as _filter, find as _find, forEach as _forEach, orderBy as _orderBy, indexOf as _indexOf, reduce as _reduce, some as _some, } from 'lodash';
5
+ import { getScenarioTagDataConfig } from '../consts/scenario-tags-config';
6
+ import * as i0 from "@angular/core";
7
+ export class ScenarioService {
8
+ DEFAULT_FORECAST_DATE_TAG = 'Month';
9
+ wholeTagsConfig;
10
+ currentTagsConfig;
11
+ isMultipleDimension;
12
+ get scenarios() {
13
+ return _orderBy(Object.values(Scenario), (scenario) => scenario === Scenario.NONE ? 1 : 0);
14
+ }
15
+ get areExistingTagsConfig() {
16
+ return !!this.currentTagsConfig;
17
+ }
18
+ initScenarioTags(wholeTagsConfig, currentTagsConfig, isMultipleDimension) {
19
+ if (!wholeTagsConfig?.length)
20
+ return;
21
+ this.wholeTagsConfig = _cloneDeep(wholeTagsConfig);
22
+ this.currentTagsConfig = currentTagsConfig;
23
+ this.isMultipleDimension = isMultipleDimension;
24
+ }
25
+ getTagsConfigByScenarioTags(scenarioTags, tagsConfig) {
26
+ const scenarioTagsConfig = _filter(tagsConfig, (tagConfig) => _some(scenarioTags, (scenarioTag) => scenarioTag.toggle && scenarioTag.selectedTagSubType === tagConfig.options.sub_type));
27
+ return this.sortScenarioTags(scenarioTagsConfig);
28
+ }
29
+ getScenarioTagsByScenario(scenario) {
30
+ const scenarioTagsConfig = this.getScenarioTagsConfig(scenario, this.wholeTagsConfig);
31
+ const scenarioTagsUi = [];
32
+ _forEach(scenarioTagsConfig, (scenarioTag) => {
33
+ const isTagWithSubTags = scenarioTag.type === TagTypes.DATE;
34
+ const tagWithSubTags = isTagWithSubTags && _find(scenarioTagsUi, { type: scenarioTag.type });
35
+ const tag = tagWithSubTags || this.prepareScenarioTag(scenarioTagsConfig, scenarioTag, scenario, isTagWithSubTags);
36
+ if (isTagWithSubTags) {
37
+ this.updateScenarioSubTags(tag, scenarioTag);
38
+ tag.subTags = this.sortedScenarioSubTags(tag);
39
+ }
40
+ if (tagWithSubTags)
41
+ return;
42
+ scenarioTagsUi.push(tag);
43
+ });
44
+ if (this.areExistingTagsConfig) {
45
+ this.initExistingTagsConfig(scenario, scenarioTagsUi);
46
+ }
47
+ const isTagNotSupportingDates = _some(scenarioTagsUi, { turnOffDateTags: true, toggle: true });
48
+ if (isTagNotSupportingDates) {
49
+ this.turnOffDateTag(scenarioTagsUi);
50
+ }
51
+ const tagWithSpecificDateTags = _find(scenarioTagsUi, (tag) => tag.toggle && !!tag.acceptableDateTags?.length);
52
+ if (tagWithSpecificDateTags) {
53
+ this.hideNotAvailableTags(tagWithSpecificDateTags, scenarioTagsUi);
54
+ }
55
+ return this.sortScenarioTags(scenarioTagsUi);
56
+ }
57
+ sortScenarioTags(scenarioTagsUi) {
58
+ return _orderBy(scenarioTagsUi, [
59
+ (tag) => (tag.type === TagTypes.DATE ? 0 : 1),
60
+ (tag) => (tag.name === 'File Status')
61
+ ]);
62
+ }
63
+ initExistingTagsConfig(scenario, scenarioTagsUi) {
64
+ _forEach(this.currentTagsConfig, (tagConfig) => {
65
+ const tagSubType = tagConfig?.options?.sub_type;
66
+ const scenarioTagDataConfig = getScenarioTagDataConfig(this.isMultipleDimension);
67
+ if (!scenarioTagDataConfig || !scenarioTagDataConfig[scenario] || !scenarioTagDataConfig[scenario][tagSubType]) {
68
+ return;
69
+ }
70
+ const scenarioTagUi = tagConfig.type === TagTypes.DATE
71
+ ? _find(scenarioTagsUi, { type: tagConfig.type })
72
+ : _find(scenarioTagsUi, { selectedTagSubType: tagSubType });
73
+ scenarioTagUi.toggle = true;
74
+ scenarioTagUi.selectedTagSubType = tagSubType;
75
+ });
76
+ }
77
+ prepareScenarioTag(scenarioTagsConfig, scenarioTag, scenario, isDateTag) {
78
+ const toggleStatus = isDateTag
79
+ ? _some(scenarioTagsConfig, (tag) => tag.type === TagTypes.DATE && tag.scenarioData.toggle)
80
+ : scenarioTag.scenarioData.toggle;
81
+ const selectedTagSubType = isDateTag
82
+ ? this.getScenarioSelectedDateTag(scenario, scenarioTagsConfig)
83
+ : scenarioTag.options.sub_type;
84
+ const tag = {
85
+ toggle: this.areExistingTagsConfig ? false : toggleStatus,
86
+ name: scenarioTag.scenarioData.name || scenarioTag.name,
87
+ description: scenarioTag.scenarioData.description || scenarioTag.description,
88
+ type: scenarioTag.type,
89
+ selectedTagSubType,
90
+ };
91
+ if (scenarioTag.scenarioData.turnOffDateTags) {
92
+ tag.turnOffDateTags = scenarioTag.scenarioData.turnOffDateTags;
93
+ }
94
+ if (scenarioTag.scenarioData.acceptableDateTags) {
95
+ tag.acceptableDateTags = scenarioTag.scenarioData.acceptableDateTags;
96
+ }
97
+ return tag;
98
+ }
99
+ sortedScenarioSubTags(tag) {
100
+ const SUB_TAGS_ORDER = [TagsConfigSubType.DAY, TagsConfigSubType.WEEK, TagsConfigSubType.MONTH, TagsConfigSubType.QUARTER, TagsConfigSubType.YEAR];
101
+ return _orderBy(tag.subTags, (subTag) => _indexOf(SUB_TAGS_ORDER, subTag.subType));
102
+ }
103
+ updateScenarioSubTags(tag, scenarioTag) {
104
+ if (!tag.subTags) {
105
+ tag.subTags = [];
106
+ }
107
+ const tagSubType = scenarioTag.options.sub_type;
108
+ tag.subTags.push({
109
+ subType: tagSubType,
110
+ name: tagSubType === TagsConfigSubType.FORECAST_NEW ? this.DEFAULT_FORECAST_DATE_TAG : scenarioTag.name,
111
+ });
112
+ }
113
+ turnOffDateTag(scenarioTags) {
114
+ const dateTag = _find(scenarioTags, { type: TagTypes.DATE });
115
+ if (!dateTag)
116
+ return;
117
+ dateTag.toggle = false;
118
+ }
119
+ hideNotAvailableTags(tagWithSpecificDateTags, scenarioTags) {
120
+ const subTags = _find(scenarioTags, { type: TagTypes.DATE })?.subTags;
121
+ if (!subTags.length)
122
+ return;
123
+ _forEach(scenarioTags, (tag) => {
124
+ if (!tag.acceptableDateTags?.length)
125
+ return;
126
+ if (tag !== tagWithSpecificDateTags) {
127
+ tag.toggle = false;
128
+ }
129
+ });
130
+ _forEach(subTags, (subTag) => {
131
+ subTag.hidden = !tagWithSpecificDateTags.acceptableDateTags.includes(subTag.subType);
132
+ });
133
+ }
134
+ getScenarioSelectedDateTag(scenario, dateTags) {
135
+ const monthSubType = _find(dateTags, (tag) => tag.options.sub_type === TagsConfigSubType.MONTH)?.options?.sub_type;
136
+ const scenarioSelectedDateTag = {
137
+ [Scenario.ACTUALS]: () => monthSubType,
138
+ [Scenario.BUDGET]: () => _find(dateTags, (tag) => tag.options.sub_type === TagsConfigSubType.YEAR)?.options?.sub_type,
139
+ [Scenario.FORECAST]: () => _find(dateTags, (tag) => tag.options.sub_type === TagsConfigSubType.FORECAST_NEW)?.options?.sub_type,
140
+ [Scenario.NONE]: () => monthSubType,
141
+ };
142
+ if (!scenarioSelectedDateTag[scenario])
143
+ return;
144
+ return scenarioSelectedDateTag[scenario]();
145
+ }
146
+ getScenarioTagsConfig(scenario, tagsConfig) {
147
+ return _reduce(tagsConfig, (acc, tagConfig) => {
148
+ const tagSubType = tagConfig?.options?.sub_type;
149
+ const scenarioTagDataConfig = getScenarioTagDataConfig(this.isMultipleDimension);
150
+ const scenarioTagConfig = scenarioTagDataConfig && scenarioTagDataConfig[scenario] ?
151
+ scenarioTagDataConfig[scenario][tagSubType] : null;
152
+ if (!scenarioTagConfig || scenarioTagConfig.hidden)
153
+ return acc;
154
+ const clonedTagConfig = _cloneDeep(tagConfig);
155
+ const scenarioTag = { ...clonedTagConfig, scenarioData: scenarioTagConfig };
156
+ acc.push(scenarioTag);
157
+ return acc;
158
+ }, []);
159
+ }
160
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ScenarioService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
161
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ScenarioService });
162
+ }
163
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ScenarioService, decorators: [{
164
+ type: Injectable
165
+ }] });
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NlbmFyaW8uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLXNjZW5hcmlvL3NlcnZpY2VzL3NjZW5hcmlvLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQVEsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUUsT0FBTyxFQUE0RCxRQUFRLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RyxPQUFPLEVBQ0gsU0FBUyxJQUFJLFVBQVUsRUFDdkIsTUFBTSxJQUFJLE9BQU8sRUFDakIsSUFBSSxJQUFJLEtBQUssRUFDYixPQUFPLElBQUksUUFBUSxFQUNuQixPQUFPLElBQUksUUFBUSxFQUNuQixPQUFPLElBQUksUUFBUSxFQUNuQixNQUFNLElBQUksT0FBTyxFQUNqQixJQUFJLElBQUksS0FBSyxHQUNoQixNQUFNLFFBQVEsQ0FBQztBQUNoQixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFHMUUsTUFBTSxPQUFPLGVBQWU7SUFDaEIseUJBQXlCLEdBQUcsT0FBTyxDQUFDO0lBRXBDLGVBQWUsQ0FBUztJQUN4QixpQkFBaUIsQ0FBUztJQUMxQixtQkFBbUIsQ0FBVTtJQUVyQyxJQUFXLFNBQVM7UUFDaEIsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUVELElBQVkscUJBQXFCO1FBQzdCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FB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QUFFLENBQUMsQ0FBQztJQUNYLENBQUM7dUdBNUxRLGVBQWU7MkdBQWYsZUFBZTs7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElUYWcsIFRhZ3NDb25maWdTdWJUeXBlLCBUYWdUeXBlcyB9IGZyb20gJy4uLy4uL21vZGVscy9zZXJ2ZXJUYWdzJztcbmltcG9ydCB7IElTY2VuYXJpbywgSVNjZW5hcmlvU3ViVGFnLCBJU2NlbmFyaW9UYWcsIElTY2VuYXJpb1RhZ1VpLCBTY2VuYXJpbyB9IGZyb20gJy4uL2ludGVyZmFjZXMvc2NlbmFyaW8nO1xuaW1wb3J0IHtcbiAgICBjbG9uZURlZXAgYXMgX2Nsb25lRGVlcCxcbiAgICBmaWx0ZXIgYXMgX2ZpbHRlcixcbiAgICBmaW5kIGFzIF9maW5kLFxuICAgIGZvckVhY2ggYXMgX2ZvckVhY2gsXG4gICAgb3JkZXJCeSBhcyBfb3JkZXJCeSxcbiAgICBpbmRleE9mIGFzIF9pbmRleE9mLFxuICAgIHJlZHVjZSBhcyBfcmVkdWNlLFxuICAgIHNvbWUgYXMgX3NvbWUsXG59IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBnZXRTY2VuYXJpb1RhZ0RhdGFDb25maWcgfSBmcm9tICcuLi9jb25zdHMvc2NlbmFyaW8tdGFncy1jb25maWcnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2NlbmFyaW9TZXJ2aWNlIHtcbiAgICBwcml2YXRlIERFRkFVTFRfRk9SRUNBU1RfREFURV9UQUcgPSAnTW9udGgnO1xuXG4gICAgcHJpdmF0ZSB3aG9sZVRhZ3NDb25maWc6IElUYWdbXTtcbiAgICBwcml2YXRlIGN1cnJlbnRUYWdzQ29uZmlnOiBJVGFnW107XG4gICAgcHJpdmF0ZSBpc011bHRpcGxlRGltZW5zaW9uOiBib29sZWFuO1xuXG4gICAgcHVibGljIGdldCBzY2VuYXJpb3MoKTogU2NlbmFyaW9bXSB7XG4gICAgICAgIHJldHVybiBfb3JkZXJCeShPYmplY3QudmFsdWVzKFNjZW5hcmlvKSwgKHNjZW5hcmlvKSA9PiBzY2VuYXJpbyA9PT0gU2NlbmFyaW8uTk9ORSA/IDEgOiAwKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBhcmVFeGlzdGluZ1RhZ3NDb25maWcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuY3VycmVudFRhZ3NDb25maWc7XG4gICAgfVxuXG4gICAgcHVibGljIGluaXRTY2VuYXJpb1RhZ3Mod2hvbGVUYWdzQ29uZmlnOiBJVGFnW10sIGN1cnJlbnRUYWdzQ29uZmlnOiBJVGFnW10sIGlzTXVsdGlwbGVEaW1lbnNpb246IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKCF3aG9sZVRhZ3NDb25maWc/Lmxlbmd0aCkgcmV0dXJuO1xuXG4gICAgICAgIHRoaXMud2hvbGVUYWdzQ29uZmlnID0gX2Nsb25lRGVlcCh3aG9sZVRhZ3NDb25maWcpO1xuICAgICAgICB0aGlzLmN1cnJlbnRUYWdzQ29uZmlnID0gY3VycmVudFRhZ3NDb25maWc7XG4gICAgICAgIHRoaXMuaXNNdWx0aXBsZURpbWVuc2lvbiA9IGlzTXVsdGlwbGVEaW1lbnNpb247XG4gICAgfVxuXG4gICAgcHVibGljIGdldFRhZ3NDb25maWdCeVNjZW5hcmlvVGFncyhzY2VuYXJpb1RhZ3M6IElTY2VuYXJpb1RhZ1VpW10sIHRhZ3NDb25maWc6IElUYWdbXSk6IElUYWdbXSB7XG4gICAgICAgIGNvbnN0IHNjZW5hcmlvVGFnc0NvbmZpZyA9IF9maWx0ZXIodGFnc0NvbmZpZywgKHRhZ0NvbmZpZykgPT5cbiAgICAgICAgICAgIF9zb21lKHNjZW5hcmlvVGFncywgKHNjZW5hcmlvVGFnKSA9PiBzY2VuYXJpb1RhZy50b2dnbGUgJiYgc2NlbmFyaW9UYWcuc2VsZWN0ZWRUYWdTdWJUeXBlID09PSB0YWdDb25maWcub3B0aW9ucy5zdWJfdHlwZSkpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnNvcnRTY2VuYXJpb1RhZ3Moc2NlbmFyaW9UYWdzQ29uZmlnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U2NlbmFyaW9UYWdzQnlTY2VuYXJpbyhzY2VuYXJpbzogU2NlbmFyaW8pIHtcbiAgICAgICAgY29uc3Qgc2NlbmFyaW9UYWdzQ29uZmlnOiBJU2NlbmFyaW9UYWdbXSA9IHRoaXMuZ2V0U2NlbmFyaW9UYWdzQ29uZmlnKHNjZW5hcmlvLCB0aGlzLndob2xlVGFnc0NvbmZpZyk7XG4gICAgICAgIGNvbnN0IHNjZW5hcmlvVGFnc1VpOiBJU2NlbmFyaW9UYWdVaVtdID0gW107XG5cbiAgICAgICAgX2ZvckVhY2goc2NlbmFyaW9UYWdzQ29uZmlnLCAoc2NlbmFyaW9UYWc6IElTY2VuYXJpb1RhZykgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNUYWdXaXRoU3ViVGFncyA9IHNjZW5hcmlvVGFnLnR5cGUgPT09IFRhZ1R5cGVzLkRBVEU7XG4gICAgICAgICAgICBjb25zdCB0YWdXaXRoU3ViVGFncyA9IGlzVGFnV2l0aFN1YlRhZ3MgJiYgX2ZpbmQoc2NlbmFyaW9UYWdzVWksIHsgdHlwZTogc2NlbmFyaW9UYWcudHlwZSB9KTtcblxuICAgICAgICAgICAgY29uc3QgdGFnOiBJU2NlbmFyaW9UYWdVaSA9IHRhZ1dpdGhTdWJUYWdzIHx8IHRoaXMucHJlcGFyZVNjZW5hcmlvVGFnKHNjZW5hcmlvVGFnc0NvbmZpZywgc2NlbmFyaW9UYWcsIHNjZW5hcmlvLCBpc1RhZ1dpdGhTdWJUYWdzKTtcblxuICAgICAgICAgICAgaWYgKGlzVGFnV2l0aFN1YlRhZ3MpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVNjZW5hcmlvU3ViVGFncyh0YWcsIHNjZW5hcmlvVGFnKTtcbiAgICAgICAgICAgICAgICB0YWcuc3ViVGFncyA9IHRoaXMuc29ydGVkU2NlbmFyaW9TdWJUYWdzKHRhZyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0YWdXaXRoU3ViVGFncykgcmV0dXJuO1xuICAgICAgICAgICAgc2NlbmFyaW9UYWdzVWkucHVzaCh0YWcpO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAodGhpcy5hcmVFeGlzdGluZ1RhZ3NDb25maWcpIHtcbiAgICAgICAgICAgIHRoaXMuaW5pdEV4aXN0aW5nVGFnc0NvbmZpZyhzY2VuYXJpbywgc2NlbmFyaW9UYWdzVWkpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaXNUYWdOb3RTdXBwb3J0aW5nRGF0ZXMgPSBfc29tZShzY2VuYXJpb1RhZ3NVaSwgeyB0dXJuT2ZmRGF0ZVRhZ3M6IHRydWUsIHRvZ2dsZTogdHJ1ZSB9KTtcbiAgICAgICAgaWYgKGlzVGFnTm90U3VwcG9ydGluZ0RhdGVzKSB7XG4gICAgICAgICAgICB0aGlzLnR1cm5PZmZEYXRlVGFnKHNjZW5hcmlvVGFnc1VpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRhZ1dpdGhTcGVjaWZpY0RhdGVUYWdzOiBJU2NlbmFyaW9UYWdVaSA9IF9maW5kKHNjZW5hcmlvVGFnc1VpLCAodGFnKSA9PiB0YWcudG9nZ2xlICYmICEhdGFnLmFjY2VwdGFibGVEYXRlVGFncz8ubGVuZ3RoKTtcbiAgICAgICAgaWYgKHRhZ1dpdGhTcGVjaWZpY0RhdGVUYWdzKSB7XG4gICAgICAgICAgICB0aGlzLmhpZGVOb3RBdmFpbGFibGVUYWdzKHRhZ1dpdGhTcGVjaWZpY0RhdGVUYWdzLCBzY2VuYXJpb1RhZ3NVaSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5zb3J0U2NlbmFyaW9UYWdzKHNjZW5hcmlvVGFnc1VpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc29ydFNjZW5hcmlvVGFncyhzY2VuYXJpb1RhZ3NVaTogYW55W10pOiBhbnlbXSB7XG4gICAgICAgIHJldHVybiBfb3JkZXJCeShzY2VuYXJpb1RhZ3NVaSwgW1xuICAgICAgICAgICAgKHRhZykgPT4gKHRhZy50eXBlID09PSBUYWdUeXBlcy5EQVRFID8gMCA6IDEpLFxuICAgICAgICAgICAgKHRhZykgPT4gKHRhZy5uYW1lID09PSAnRmlsZSBTdGF0dXMnKVxuICAgICAgICBdKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRFeGlzdGluZ1RhZ3NDb25maWcoc2NlbmFyaW86IFNjZW5hcmlvLCBzY2VuYXJpb1RhZ3NVaTogSVNjZW5hcmlvVGFnVWlbXSkge1xuICAgICAgICBfZm9yRWFjaCh0aGlzLmN1cnJlbnRUYWdzQ29uZmlnLCAodGFnQ29uZmlnKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0YWdTdWJUeXBlID0gdGFnQ29uZmlnPy5vcHRpb25zPy5zdWJfdHlwZTtcbiAgICAgICAgICAgIGNvbnN0IHNjZW5hcmlvVGFnRGF0YUNvbmZpZyA9IGdldFNjZW5hcmlvVGFnRGF0YUNvbmZpZyh0aGlzLmlzTXVsdGlwbGVEaW1lbnNpb24pO1xuICAgICAgICAgICAgaWYgKCFzY2VuYXJpb1RhZ0RhdGFDb25maWcgfHwgIXNjZW5hcmlvVGFnRGF0YUNvbmZpZ1tzY2VuYXJpb10gfHwgIXNjZW5hcmlvVGFnRGF0YUNvbmZpZ1tzY2VuYXJpb11bdGFnU3ViVHlwZV0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHNjZW5hcmlvVGFnVWkgPSB0YWdDb25maWcudHlwZSA9PT0gVGFnVHlwZXMuREFURVxuICAgICAgICAgICAgICAgID8gX2ZpbmQoc2NlbmFyaW9UYWdzVWksIHsgdHlwZTogdGFnQ29uZmlnLnR5cGUgfSlcbiAgICAgICAgICAgICAgICA6IF9maW5kKHNjZW5hcmlvVGFnc1VpLCB7IHNlbGVjdGVkVGFnU3ViVHlwZTogdGFnU3ViVHlwZSB9KTtcblxuICAgICAgICAgICAgc2NlbmFyaW9UYWdVaS50b2dnbGUgPSB0cnVlO1xuICAgICAgICAgICAgc2NlbmFyaW9UYWdVaS5zZWxlY3RlZFRhZ1N1YlR5cGUgPSB0YWdTdWJUeXBlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHByZXBhcmVTY2VuYXJpb1RhZyhzY2VuYXJpb1RhZ3NDb25maWc6IElTY2VuYXJpb1RhZ1tdLCBzY2VuYXJpb1RhZzogSVNjZW5hcmlvVGFnLCBzY2VuYXJpbzogU2NlbmFyaW8sIGlzRGF0ZVRhZzogYm9vbGVhbik6IElTY2VuYXJpb1RhZ1VpIHtcbiAgICAgICAgY29uc3QgdG9nZ2xlU3RhdHVzID0gaXNEYXRlVGFnXG4gICAgICAgICAgICA/IF9zb21lKHNjZW5hcmlvVGFnc0NvbmZpZywgKHRhZykgPT4gdGFnLnR5cGUgPT09IFRhZ1R5cGVzLkRBVEUgJiYgdGFnLnNjZW5hcmlvRGF0YS50b2dnbGUpXG4gICAgICAgICAgICA6IHNjZW5hcmlvVGFnLnNjZW5hcmlvRGF0YS50b2dnbGU7XG5cbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRUYWdTdWJUeXBlID0gIGlzRGF0ZVRhZ1xuICAgICAgICAgICAgICAgID8gdGhpcy5nZXRTY2VuYXJpb1NlbGVjdGVkRGF0ZVRhZyhzY2VuYXJpbywgc2NlbmFyaW9UYWdzQ29uZmlnKVxuICAgICAgICAgICAgICAgIDogc2NlbmFyaW9UYWcub3B0aW9ucy5zdWJfdHlwZTtcblxuICAgICAgICBjb25zdCB0YWc6IElTY2VuYXJpb1RhZ1VpID0ge1xuICAgICAgICAgICAgdG9nZ2xlOiB0aGlzLmFyZUV4aXN0aW5nVGFnc0NvbmZpZyA/IGZhbHNlIDogdG9nZ2xlU3RhdHVzLFxuICAgICAgICAgICAgbmFtZTogc2NlbmFyaW9UYWcuc2NlbmFyaW9EYXRhLm5hbWUgfHwgc2NlbmFyaW9UYWcubmFtZSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBzY2VuYXJpb1RhZy5zY2VuYXJpb0RhdGEuZGVzY3JpcHRpb24gfHwgc2NlbmFyaW9UYWcuZGVzY3JpcHRpb24sXG4gICAgICAgICAgICB0eXBlOiBzY2VuYXJpb1RhZy50eXBlLFxuICAgICAgICAgICAgc2VsZWN0ZWRUYWdTdWJUeXBlLFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmIChzY2VuYXJpb1RhZy5zY2VuYXJpb0RhdGEudHVybk9mZkRhdGVUYWdzKSB7XG4gICAgICAgICAgICB0YWcudHVybk9mZkRhdGVUYWdzID0gc2NlbmFyaW9UYWcuc2NlbmFyaW9EYXRhLnR1cm5PZmZEYXRlVGFncztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzY2VuYXJpb1RhZy5zY2VuYXJpb0RhdGEuYWNjZXB0YWJsZURhdGVUYWdzKSB7XG4gICAgICAgICAgICB0YWcuYWNjZXB0YWJsZURhdGVUYWdzID0gc2NlbmFyaW9UYWcuc2NlbmFyaW9EYXRhLmFjY2VwdGFibGVEYXRlVGFncztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0YWc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzb3J0ZWRTY2VuYXJpb1N1YlRhZ3ModGFnOiBJU2NlbmFyaW9UYWdVaSk6IElTY2VuYXJpb1N1YlRhZ1tdIHtcbiAgICAgICAgY29uc3QgU1VCX1RBR1NfT1JERVIgPSBbVGFnc0NvbmZpZ1N1YlR5cGUuREFZLCBUYWdzQ29uZmlnU3ViVHlwZS5XRUVLLCBUYWdzQ29uZmlnU3ViVHlwZS5NT05USCwgVGFnc0NvbmZpZ1N1YlR5cGUuUVVBUlRFUiwgVGFnc0NvbmZpZ1N1YlR5cGUuWUVBUl07XG4gICAgICAgIHJldHVybiBfb3JkZXJCeSh0YWcuc3ViVGFncywgKHN1YlRhZykgPT4gX2luZGV4T2YoU1VCX1RBR1NfT1JERVIsIHN1YlRhZy5zdWJUeXBlKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVTY2VuYXJpb1N1YlRhZ3ModGFnOiBJU2NlbmFyaW9UYWdVaSwgc2NlbmFyaW9UYWc6IElTY2VuYXJpb1RhZyk6IHZvaWQge1xuICAgICAgICBpZiAoIXRhZy5zdWJUYWdzKSB7XG4gICAgICAgICAgICB0YWcuc3ViVGFncyA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGFnU3ViVHlwZSA9IHNjZW5hcmlvVGFnLm9wdGlvbnMuc3ViX3R5cGU7XG5cbiAgICAgICAgdGFnLnN1YlRhZ3MucHVzaCh7XG4gICAgICAgICAgICBzdWJUeXBlOiB0YWdTdWJUeXBlLFxuICAgICAgICAgICAgbmFtZTogdGFnU3ViVHlwZSA9PT0gVGFnc0NvbmZpZ1N1YlR5cGUuRk9SRUNBU1RfTkVXID8gdGhpcy5ERUZBVUxUX0ZPUkVDQVNUX0RBVEVfVEFHIDogc2NlbmFyaW9UYWcubmFtZSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB0dXJuT2ZmRGF0ZVRhZyhzY2VuYXJpb1RhZ3M6IElTY2VuYXJpb1RhZ1VpW10pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGF0ZVRhZyA9IF9maW5kKHNjZW5hcmlvVGFncywgeyB0eXBlOiBUYWdUeXBlcy5EQVRFIH0pO1xuXG4gICAgICAgIGlmICghZGF0ZVRhZykgcmV0dXJuO1xuICAgICAgICBkYXRlVGFnLnRvZ2dsZT0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoaWRlTm90QXZhaWxhYmxlVGFncyh0YWdXaXRoU3BlY2lmaWNEYXRlVGFnczogSVNjZW5hcmlvVGFnVWksIHNjZW5hcmlvVGFnczogSVNjZW5hcmlvVGFnVWlbXSk6IHZvaWQge1xuICAgICAgICBjb25zdCBzdWJUYWdzID0gX2ZpbmQoc2NlbmFyaW9UYWdzLCB7IHR5cGU6IFRhZ1R5cGVzLkRBVEUgfSk/LnN1YlRhZ3M7XG4gICAgICAgIGlmICghc3ViVGFncy5sZW5ndGgpIHJldHVybjtcblxuICAgICAgICBfZm9yRWFjaChzY2VuYXJpb1RhZ3MsICh0YWcpID0+IHtcbiAgICAgICAgICAgIGlmICghdGFnLmFjY2VwdGFibGVEYXRlVGFncz8ubGVuZ3RoKSByZXR1cm47XG4gICAgICAgICAgICBpZiAodGFnICE9PSB0YWdXaXRoU3BlY2lmaWNEYXRlVGFncykge1xuICAgICAgICAgICAgICAgIHRhZy50b2dnbGUgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgX2ZvckVhY2goc3ViVGFncywgKHN1YlRhZykgPT4ge1xuICAgICAgICAgICAgc3ViVGFnLmhpZGRlbiA9ICF0YWdXaXRoU3BlY2lmaWNEYXRlVGFncy5hY2NlcHRhYmxlRGF0ZVRhZ3MuaW5jbHVkZXMoc3ViVGFnLnN1YlR5cGUpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNjZW5hcmlvU2VsZWN0ZWREYXRlVGFnKHNjZW5hcmlvOiBTY2VuYXJpbywgZGF0ZVRhZ3M6IElTY2VuYXJpb1RhZ1tdKTogVGFnc0NvbmZpZ1N1YlR5cGUge1xuICAgICAgICBjb25zdCBtb250aFN1YlR5cGUgPSBfZmluZChkYXRlVGFncywgKHRhZzogSVNjZW5hcmlvVGFnKSA9PiB0YWcub3B0aW9ucy5zdWJfdHlwZSA9PT0gVGFnc0NvbmZpZ1N1YlR5cGUuTU9OVEgpPy5vcHRpb25zPy5zdWJfdHlwZTtcblxuICAgICAgICBjb25zdCBzY2VuYXJpb1NlbGVjdGVkRGF0ZVRhZyA9IHtcbiAgICAgICAgICAgIFtTY2VuYXJpby5BQ1RVQUxTXTogKCkgPT4gbW9udGhTdWJUeXBlLFxuICAgICAgICAgICAgW1NjZW5hcmlvLkJVREdFVF06ICgpID0+IF9maW5kKGRhdGVUYWdzLCAodGFnOiBJU2NlbmFyaW9UYWcpID0+IHRhZy5vcHRpb25zLnN1Yl90eXBlID09PSBUYWdzQ29uZmlnU3ViVHlwZS5ZRUFSKT8ub3B0aW9ucz8uc3ViX3R5cGUsXG4gICAgICAgICAgICBbU2NlbmFyaW8uRk9SRUNBU1RdOiAoKSA9PiBfZmluZChkYXRlVGFncywgKHRhZzogSVNjZW5hcmlvVGFnKSA9PiB0YWcub3B0aW9ucy5zdWJfdHlwZSA9PT0gVGFnc0NvbmZpZ1N1YlR5cGUuRk9SRUNBU1RfTkVXKT8ub3B0aW9ucz8uc3ViX3R5cGUsXG4gICAgICAgICAgICBbU2NlbmFyaW8uTk9ORV06ICgpID0+IG1vbnRoU3ViVHlwZSxcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghc2NlbmFyaW9TZWxlY3RlZERhdGVUYWdbc2NlbmFyaW9dKSByZXR1cm47XG4gICAgICAgIHJldHVybiBzY2VuYXJpb1NlbGVjdGVkRGF0ZVRhZ1tzY2VuYXJpb10oKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNjZW5hcmlvVGFnc0NvbmZpZyhzY2VuYXJpbzogU2NlbmFyaW8sIHRhZ3NDb25maWc6IElUYWdbXSk6IElTY2VuYXJpb1RhZ1tdIHtcbiAgICAgICAgcmV0dXJuIF9yZWR1Y2UodGFnc0NvbmZpZywgKGFjYzogSVNjZW5hcmlvVGFnW10sIHRhZ0NvbmZpZzogSVRhZykgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGFnU3ViVHlwZSA9IHRhZ0NvbmZpZz8ub3B0aW9ucz8uc3ViX3R5cGU7XG5cbiAgICAgICAgICAgIGNvbnN0IHNjZW5hcmlvVGFnRGF0YUNvbmZpZyA9IGdldFNjZW5hcmlvVGFnRGF0YUNvbmZpZyh0aGlzLmlzTXVsdGlwbGVEaW1lbnNpb24pO1xuICAgICAgICAgICAgY29uc3Qgc2NlbmFyaW9UYWdDb25maWc6IElTY2VuYXJpbyA9IHNjZW5hcmlvVGFnRGF0YUNvbmZpZyAmJiBzY2VuYXJpb1RhZ0RhdGFDb25maWdbc2NlbmFyaW9dID9cbiAgICAgICAgICAgICAgICBzY2VuYXJpb1RhZ0RhdGFDb25maWdbc2NlbmFyaW9dW3RhZ1N1YlR5cGVdIDogbnVsbDtcbiAgICAgICAgICAgIGlmICghc2NlbmFyaW9UYWdDb25maWcgfHwgc2NlbmFyaW9UYWdDb25maWcuaGlkZGVuKSByZXR1cm4gYWNjO1xuXG4gICAgICAgICAgICBjb25zdCBjbG9uZWRUYWdDb25maWcgPSBfY2xvbmVEZWVwKHRhZ0NvbmZpZyk7XG4gICAgICAgICAgICBjb25zdCBzY2VuYXJpb1RhZzogSVNjZW5hcmlvVGFnID0geyAuLi5jbG9uZWRUYWdDb25maWcsIHNjZW5hcmlvRGF0YTogc2NlbmFyaW9UYWdDb25maWcgfTtcblxuICAgICAgICAgICAgYWNjLnB1c2goc2NlbmFyaW9UYWcpO1xuICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwgW10pO1xuICAgIH1cbn1cbiJdfQ==