@datarailsshared/datarailsshared 1.4.569 → 1.5.1

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 (493) hide show
  1. package/assets/styles/_storybook-styles.scss +37 -0
  2. package/assets/styles/_styles.scss +9 -2
  3. package/assets/styles/colors.scss +88 -74
  4. package/assets/styles/dataRailsFont.scss +1 -1
  5. package/assets/styles/dialog.scss +22 -0
  6. package/assets/styles/icons.scss +1 -1
  7. package/assets/styles/mixins.scss +106 -6
  8. package/assets/styles/vars.scss +6 -4
  9. package/datarailsshared-datarailsshared-1.5.1.tgz +0 -0
  10. package/esm2022/datarailsshared-datarailsshared.mjs +5 -0
  11. package/esm2022/lib/date-tags/any-tag.component.mjs +42 -0
  12. package/esm2022/lib/date-tags/date-tag.component.mjs +126 -0
  13. package/esm2022/lib/date-tags/date-tag.module.mjs +53 -0
  14. package/esm2022/lib/date-tags/day-tag/day-tag.component.mjs +95 -0
  15. package/esm2022/lib/date-tags/forecast-tag/forecast-tag.component.mjs +222 -0
  16. package/esm2022/lib/date-tags/forecast-tag/forecast-tag.service.mjs +87 -0
  17. package/esm2022/lib/date-tags/month-tag/month-tag.component.mjs +98 -0
  18. package/esm2022/lib/date-tags/quarter-tag/quarter-tag.component.mjs +126 -0
  19. package/esm2022/lib/date-tags/week-tag/week-tag.component.mjs +102 -0
  20. package/esm2022/lib/date-tags/year-tag/year-tag.component.mjs +96 -0
  21. package/esm2022/lib/directives/click-outside/click-outside.directive.mjs +92 -0
  22. package/esm2022/lib/directives/click-outside/click-outside.module.mjs +19 -0
  23. package/esm2022/lib/directives/dr-shine-animation/dr-shine-animation.directive.mjs +63 -0
  24. package/esm2022/lib/directives/let/let.directive.mjs +35 -0
  25. package/esm2022/lib/directives/ng-track-by-property/ng-track-by-property.directive.mjs +23 -0
  26. package/esm2022/lib/dr-accordion/accordion-item-body.component.mjs +61 -0
  27. package/esm2022/lib/dr-accordion/accordion-item-header.component.mjs +154 -0
  28. package/esm2022/lib/dr-accordion/accordion-item.component.mjs +143 -0
  29. package/esm2022/lib/dr-accordion/accordion.component.mjs +55 -0
  30. package/esm2022/lib/dr-accordion/accordion.module.mjs +35 -0
  31. package/esm2022/lib/dr-alert/dr-alert.component.mjs +64 -0
  32. package/esm2022/lib/dr-alert/dr-alert.module.mjs +20 -0
  33. package/{esm2015/lib/dr-alert/enums/dr-alert-theme.enum.js → esm2022/lib/dr-alert/enums/dr-alert-theme.enum.mjs} +1 -2
  34. package/esm2022/lib/dr-avatar/dr-avatar.component.mjs +142 -0
  35. package/esm2022/lib/dr-avatar/dr-avatar.module.mjs +21 -0
  36. package/esm2022/lib/dr-avatar/dr-avatar.pipe.mjs +20 -0
  37. package/esm2022/lib/dr-avatar/services/dr-avatar.service.mjs +17 -0
  38. package/esm2022/lib/dr-avatar/types.mjs +2 -0
  39. package/esm2022/lib/dr-badge-status/dr-badge-status.component.mjs +53 -0
  40. package/esm2022/lib/dr-badge-status/dr-badge-status.module.mjs +21 -0
  41. package/esm2022/lib/dr-chat/chat.component.mjs +202 -0
  42. package/esm2022/lib/dr-chat/chat.module.mjs +81 -0
  43. package/esm2022/lib/dr-chat/dr-chat-alert/dr-chat-alert.component.mjs +31 -0
  44. package/esm2022/lib/dr-chat/dr-chat-form/chat-form.component.mjs +273 -0
  45. package/esm2022/lib/dr-chat/dr-chat-form-with-history/chat-form-with-history.component.mjs +380 -0
  46. package/esm2022/lib/dr-chat/dr-chat-message/chat-message.component.mjs +185 -0
  47. package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive.mjs +47 -0
  48. package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.service.mjs +26 -0
  49. package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component.mjs +78 -0
  50. package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component.mjs +30 -0
  51. package/esm2022/lib/dr-chat/dr-chat-suggestions/chat-suggestions.component.mjs +187 -0
  52. package/esm2022/lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component.mjs +14 -0
  53. package/esm2022/lib/dr-chip/dr-chip.component.mjs +58 -0
  54. package/esm2022/lib/dr-code-editor/components/code-editor-hint-wrapper.component.mjs +19 -0
  55. package/esm2022/lib/dr-code-editor/components/dr-codemirror.component.mjs +204 -0
  56. package/esm2022/lib/dr-code-editor/dr-code-editor.component.mjs +326 -0
  57. package/esm2022/lib/dr-code-editor/dr-code-editor.module.mjs +29 -0
  58. package/esm2022/lib/dr-code-editor/models/code-editor-hint.mjs +6 -0
  59. package/esm2022/lib/dr-details-list/dr-details-list.component.mjs +106 -0
  60. package/esm2022/lib/dr-details-list/dr-details-list.module.mjs +20 -0
  61. package/esm2022/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.mjs +339 -0
  62. package/esm2022/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.mjs +238 -0
  63. package/esm2022/lib/dr-dialog/dialog.module.mjs +27 -0
  64. package/esm2022/lib/dr-dialog/interfaces/dialog-data.mjs +27 -0
  65. package/esm2022/lib/dr-dialog/services/dialog.service.mjs +77 -0
  66. package/esm2022/lib/dr-dropdown/dr-dropdown-item/dr-dropdown-item.component.mjs +29 -0
  67. package/esm2022/lib/dr-dropdown/dr-dropdown-item-show.pipe.mjs +16 -0
  68. package/esm2022/lib/dr-dropdown/dr-dropdown.component.mjs +248 -0
  69. package/esm2022/lib/dr-dropdown/dr-dropdown.directive.mjs +142 -0
  70. package/esm2022/lib/dr-dropdown/dr-dropdown.module.mjs +41 -0
  71. package/esm2022/lib/dr-dropdown/dr-dropdown.service.mjs +62 -0
  72. package/esm2022/lib/dr-dynamic-tag/dr-dynamic-tag.component.mjs +203 -0
  73. package/esm2022/lib/dr-dynamic-tag/dr-dynamic-tag.module.mjs +21 -0
  74. package/esm2022/lib/dr-error/dr-error.component.mjs +90 -0
  75. package/esm2022/lib/dr-error/dr-error.module.mjs +22 -0
  76. package/esm2022/lib/dr-inputs/button/button.component.mjs +101 -0
  77. package/esm2022/lib/dr-inputs/checkbox/checkbox.component.mjs +110 -0
  78. package/esm2022/lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive.mjs +55 -0
  79. package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.mjs +400 -0
  80. package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker-range/dr-date-picker-range.component.mjs +157 -0
  81. package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.mjs +269 -0
  82. package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.mjs +326 -0
  83. package/esm2022/lib/dr-inputs/date-pickers/dr-show-timeframe.pipe.mjs +16 -0
  84. package/esm2022/lib/dr-inputs/date-pickers/services/dr-date-picker.service.mjs +224 -0
  85. package/esm2022/lib/dr-inputs/date-pickers/services/week-selection-strategy.mjs +34 -0
  86. package/esm2022/lib/dr-inputs/date-pickers/week-selector/week-selector.component.mjs +91 -0
  87. package/esm2022/lib/dr-inputs/dr-input/dr-input.component.mjs +336 -0
  88. package/esm2022/lib/dr-inputs/dr-inputs.module.mjs +128 -0
  89. package/esm2022/lib/dr-inputs/dr-link/dr-link.component.mjs +43 -0
  90. package/esm2022/lib/dr-inputs/dr-model-debounce-change.directive.mjs +37 -0
  91. package/esm2022/lib/dr-inputs/dr-select/dr-select.component.mjs +391 -0
  92. package/esm2022/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.mjs +138 -0
  93. package/esm2022/lib/dr-inputs/dr-slider/dr-slider.component.mjs +53 -0
  94. package/esm2022/lib/dr-inputs/dr-toggle/dr-toggle.component.mjs +108 -0
  95. package/esm2022/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.mjs +108 -0
  96. package/esm2022/lib/dr-inputs/radio-button/radio-button.component.mjs +88 -0
  97. package/esm2022/lib/dr-inputs/radio-button/radio-group.component.mjs +185 -0
  98. package/esm2022/lib/dr-layout/dr-layout-body.component.mjs +19 -0
  99. package/esm2022/lib/dr-layout/dr-layout-header.component.mjs +25 -0
  100. package/esm2022/lib/dr-layout/dr-layout.component.mjs +21 -0
  101. package/esm2022/lib/dr-layout/dr-layout.module.mjs +22 -0
  102. package/esm2022/lib/dr-popover/dr-popover-ref.mjs +23 -0
  103. package/esm2022/lib/dr-popover/dr-popover.component.mjs +155 -0
  104. package/esm2022/lib/dr-popover/dr-popover.directive.mjs +137 -0
  105. package/esm2022/lib/dr-popover/dr-popover.module.mjs +20 -0
  106. package/esm2022/lib/dr-popover/dr-popover.service.mjs +117 -0
  107. package/esm2022/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.mjs +104 -0
  108. package/esm2022/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.mjs +100 -0
  109. package/esm2022/lib/dr-scenario/consts/scenario-tags-config.mjs +87 -0
  110. package/esm2022/lib/dr-scenario/dr-scenario.module.mjs +27 -0
  111. package/esm2022/lib/dr-scenario/services/scenario.service.mjs +195 -0
  112. package/esm2022/lib/dr-spinner/dr-spinner.component.mjs +27 -0
  113. package/esm2022/lib/dr-spinner/dr-spinner.directive.mjs +66 -0
  114. package/esm2022/lib/dr-spinner/dr-spinner.module.mjs +22 -0
  115. package/esm2022/lib/dr-tabs/dr-tab.component.mjs +47 -0
  116. package/esm2022/lib/dr-tabs/dr-tabs.component.mjs +252 -0
  117. package/esm2022/lib/dr-tabs/dr-tabs.module.mjs +25 -0
  118. package/esm2022/lib/dr-tags/dr-tag.component.mjs +235 -0
  119. package/esm2022/lib/dr-tags/dr-tag.module.mjs +23 -0
  120. package/esm2022/lib/dr-tags-constructor/dr-tags-constructor.component.mjs +161 -0
  121. package/esm2022/lib/dr-tags-constructor/dr-tags-constructor.module.mjs +24 -0
  122. package/esm2022/lib/dr-tags-constructor/tags-constructor.service.mjs +71 -0
  123. package/esm2022/lib/dr-toastr/default-toastr/default-toastr.component.mjs +73 -0
  124. package/esm2022/lib/dr-toastr/dr-toastr.module.mjs +31 -0
  125. package/esm2022/lib/dr-toastr/dr-toastr.service.mjs +44 -0
  126. package/esm2022/lib/dr-tooltip/components/tooltip-default/tooltip-default.component.mjs +31 -0
  127. package/esm2022/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.mjs +82 -0
  128. package/esm2022/lib/dr-tooltip/dr-tooltip.component.mjs +86 -0
  129. package/esm2022/lib/dr-tooltip/dr-tooltip.directive.mjs +194 -0
  130. package/esm2022/lib/dr-tooltip/dr-tooltip.module.mjs +24 -0
  131. package/esm2022/lib/dr-tooltip/interfaces/tooltip-component-context.mjs +14 -0
  132. package/esm2022/lib/dr-treeview/components/treeview/treeview.component.mjs +407 -0
  133. package/esm2022/lib/dr-treeview/components/treeview-item/treeview-item.component.mjs +97 -0
  134. package/esm2022/lib/dr-treeview/dr-tree-view.module.mjs +31 -0
  135. package/esm2022/lib/dr-treeview/helpers/treeview-event-parser.mjs +108 -0
  136. package/esm2022/lib/dr-treeview/helpers/treeview-helper.mjs +82 -0
  137. package/esm2022/lib/dr-treeview/models/treeview-config.mjs +25 -0
  138. package/{esm2015/lib/dr-treeview/models/treeview-header-template-context.js → esm2022/lib/dr-treeview/models/treeview-header-template-context.mjs} +1 -1
  139. package/esm2022/lib/dr-treeview/models/treeview-i18n.mjs +47 -0
  140. package/{esm2015/lib/dr-treeview/models/treeview-item-template-context.js → esm2022/lib/dr-treeview/models/treeview-item-template-context.mjs} +1 -1
  141. package/esm2022/lib/dr-treeview/models/treeview-item.mjs +155 -0
  142. package/esm2022/lib/dr-treeview/pipes/treeview.pipe.mjs +21 -0
  143. package/esm2022/lib/drawer/drawer-animation.mjs +18 -0
  144. package/esm2022/lib/drawer/drawer-config.mjs +35 -0
  145. package/esm2022/lib/drawer/drawer-container.component.mjs +179 -0
  146. package/esm2022/lib/drawer/drawer-position-strategy.mjs +14 -0
  147. package/esm2022/lib/drawer/drawer-ref.mjs +106 -0
  148. package/esm2022/lib/drawer/drawer.module.mjs +19 -0
  149. package/esm2022/lib/drawer/drawer.service.mjs +140 -0
  150. package/esm2022/lib/drawer/public-api.mjs +6 -0
  151. package/esm2022/lib/image-cropper/dr-image-cropper-canvas.service.mjs +78 -0
  152. package/esm2022/lib/image-cropper/dr-image-cropper.component.mjs +133 -0
  153. package/esm2022/lib/image-cropper/dr-image-cropper.types.mjs +6 -0
  154. package/esm2022/lib/list-tags/list-tag.component.mjs +82 -0
  155. package/esm2022/lib/list-tags/list-tag.module.mjs +22 -0
  156. package/esm2022/lib/models/chat.mjs +36 -0
  157. package/{esm2015/lib/models/constants.js → esm2022/lib/models/constants.mjs} +17 -22
  158. package/{esm2015/lib/models/datePicker.js → esm2022/lib/models/datePicker.mjs} +2 -2
  159. package/esm2022/lib/models/datePickerRange.mjs +2 -0
  160. package/esm2022/lib/models/dropdown.mjs +2 -0
  161. package/{esm2015/lib/models/feedback.js → esm2022/lib/models/feedback.mjs} +1 -2
  162. package/esm2022/lib/models/popover.mjs +27 -0
  163. package/{esm2015/lib/models/serverTags.js → esm2022/lib/models/serverTags.mjs} +1 -1
  164. package/esm2022/lib/models/spinnerOptions.mjs +2 -0
  165. package/esm2022/lib/models/toastr.mjs +14 -0
  166. package/esm2022/lib/pipes/filter/filter.pipe.mjs +48 -0
  167. package/esm2022/lib/pipes/img/img.pipe.mjs +19 -0
  168. package/esm2022/lib/stepper/stepper.component.mjs +270 -0
  169. package/esm2022/lib/stepper/stepper.module.mjs +20 -0
  170. package/esm2022/lib/utils/data-analytics.service.mjs +21 -0
  171. package/esm2022/lib/utils/decorators.mjs +12 -0
  172. package/esm2022/lib/utils/dr-shared-utils.mjs +85 -0
  173. package/esm2022/public-api.mjs +156 -0
  174. package/esm2022/src/lib/drawer/drDrawer.mjs +5 -0
  175. package/esm2022/src/lib/drawer/drawer-animation.mjs +18 -0
  176. package/esm2022/src/lib/drawer/drawer-config.mjs +35 -0
  177. package/esm2022/src/lib/drawer/drawer-container.component.mjs +179 -0
  178. package/esm2022/src/lib/drawer/drawer-position-strategy.mjs +14 -0
  179. package/esm2022/src/lib/drawer/drawer-ref.mjs +106 -0
  180. package/esm2022/src/lib/drawer/drawer.module.mjs +19 -0
  181. package/esm2022/src/lib/drawer/drawer.service.mjs +140 -0
  182. package/esm2022/src/lib/drawer/public-api.mjs +6 -0
  183. package/fesm2022/datarailsshared-datarailsshared.mjs +13716 -0
  184. package/fesm2022/datarailsshared-datarailsshared.mjs.map +1 -0
  185. package/fesm2022/drDrawer.mjs +496 -0
  186. package/fesm2022/drDrawer.mjs.map +1 -0
  187. package/index.d.ts +5 -0
  188. package/lib/date-tags/any-tag.component.d.ts +20 -0
  189. package/lib/date-tags/date-tag.component.d.ts +4 -16
  190. package/lib/date-tags/date-tag.module.d.ts +19 -2
  191. package/lib/date-tags/day-tag/day-tag.component.d.ts +4 -1
  192. package/lib/date-tags/forecast-tag/forecast-tag.component.d.ts +4 -1
  193. package/lib/date-tags/forecast-tag/forecast-tag.service.d.ts +11 -8
  194. package/lib/date-tags/month-tag/month-tag.component.d.ts +4 -1
  195. package/lib/date-tags/quarter-tag/quarter-tag.component.d.ts +4 -1
  196. package/lib/date-tags/week-tag/week-tag.component.d.ts +4 -1
  197. package/lib/date-tags/year-tag/year-tag.component.d.ts +4 -1
  198. package/lib/directives/click-outside/click-outside.directive.d.ts +23 -0
  199. package/lib/directives/click-outside/click-outside.module.d.ts +8 -0
  200. package/lib/directives/dr-shine-animation/dr-shine-animation.directive.d.ts +18 -0
  201. package/lib/directives/let/let.directive.d.ts +19 -0
  202. package/lib/directives/ng-track-by-property/ng-track-by-property.directive.d.ts +8 -0
  203. package/lib/dr-accordion/accordion-item-body.component.d.ts +3 -0
  204. package/lib/dr-accordion/accordion-item-header.component.d.ts +14 -1
  205. package/lib/dr-accordion/accordion-item.component.d.ts +4 -1
  206. package/lib/dr-accordion/accordion.component.d.ts +5 -0
  207. package/lib/dr-accordion/accordion.module.d.ts +9 -0
  208. package/lib/dr-alert/dr-alert.component.d.ts +3 -0
  209. package/lib/dr-alert/dr-alert.module.d.ts +6 -0
  210. package/lib/dr-avatar/dr-avatar.component.d.ts +15 -13
  211. package/lib/dr-avatar/dr-avatar.module.d.ts +8 -0
  212. package/lib/dr-avatar/dr-avatar.pipe.d.ts +5 -1
  213. package/lib/dr-avatar/services/dr-avatar.service.d.ts +1 -1
  214. package/lib/dr-avatar/types.d.ts +8 -0
  215. package/lib/dr-badge-status/dr-badge-status.component.d.ts +5 -4
  216. package/lib/dr-badge-status/dr-badge-status.module.d.ts +7 -0
  217. package/lib/dr-chat/chat.component.d.ts +6 -7
  218. package/lib/dr-chat/chat.module.d.ts +20 -0
  219. package/lib/dr-chat/dr-chat-alert/dr-chat-alert.component.d.ts +8 -0
  220. package/lib/dr-chat/dr-chat-form/chat-form.component.d.ts +11 -1
  221. package/lib/dr-chat/dr-chat-form-with-history/chat-form-with-history.component.d.ts +81 -0
  222. package/lib/dr-chat/dr-chat-message/chat-message.component.d.ts +4 -0
  223. package/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive.d.ts +3 -0
  224. package/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.service.d.ts +3 -0
  225. package/lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component.d.ts +3 -0
  226. package/lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component.d.ts +3 -0
  227. package/lib/dr-chat/dr-chat-suggestions/chat-suggestions.component.d.ts +15 -2
  228. package/lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component.d.ts +3 -0
  229. package/lib/dr-chip/dr-chip.component.d.ts +10 -0
  230. package/lib/dr-code-editor/components/code-editor-hint-wrapper.component.d.ts +7 -0
  231. package/lib/dr-code-editor/components/dr-codemirror.component.d.ts +47 -0
  232. package/lib/dr-code-editor/dr-code-editor.component.d.ts +45 -0
  233. package/lib/dr-code-editor/dr-code-editor.module.d.ts +17 -0
  234. package/lib/dr-code-editor/models/code-editor-hint.d.ts +14 -0
  235. package/lib/dr-details-list/dr-details-list.component.d.ts +3 -0
  236. package/lib/dr-details-list/dr-details-list.module.d.ts +6 -0
  237. package/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.d.ts +6 -5
  238. package/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.d.ts +6 -5
  239. package/lib/dr-dialog/dialog.module.d.ts +12 -0
  240. package/lib/dr-dialog/interfaces/dialog-data.d.ts +13 -9
  241. package/lib/dr-dialog/services/dialog.service.d.ts +10 -3
  242. package/lib/dr-dropdown/dr-dropdown-item/dr-dropdown-item.component.d.ts +8 -0
  243. package/lib/dr-dropdown/dr-dropdown-item-show.pipe.d.ts +3 -0
  244. package/lib/dr-dropdown/dr-dropdown.component.d.ts +28 -21
  245. package/lib/dr-dropdown/dr-dropdown.directive.d.ts +21 -14
  246. package/lib/dr-dropdown/dr-dropdown.module.d.ts +11 -0
  247. package/lib/dr-dropdown/dr-dropdown.service.d.ts +26 -8
  248. package/lib/dr-dynamic-tag/dr-dynamic-tag.component.d.ts +3 -0
  249. package/lib/dr-dynamic-tag/dr-dynamic-tag.module.d.ts +8 -0
  250. package/lib/dr-error/dr-error.component.d.ts +12 -8
  251. package/lib/dr-error/dr-error.module.d.ts +8 -0
  252. package/lib/dr-inputs/button/button.component.d.ts +6 -8
  253. package/lib/dr-inputs/checkbox/checkbox.component.d.ts +10 -2
  254. package/lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive.d.ts +3 -0
  255. package/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.d.ts +29 -9
  256. package/lib/dr-inputs/date-pickers/dr-date-picker-range/dr-date-picker-range.component.d.ts +40 -0
  257. package/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.d.ts +18 -11
  258. package/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.d.ts +11 -10
  259. package/lib/dr-inputs/date-pickers/dr-show-timeframe.pipe.d.ts +4 -2
  260. package/lib/dr-inputs/date-pickers/services/dr-date-picker.service.d.ts +22 -5
  261. package/lib/dr-inputs/date-pickers/services/week-selection-strategy.d.ts +12 -0
  262. package/lib/dr-inputs/date-pickers/week-selector/week-selector.component.d.ts +23 -0
  263. package/lib/dr-inputs/dr-input/dr-input.component.d.ts +35 -20
  264. package/lib/dr-inputs/dr-inputs.module.d.ts +30 -0
  265. package/lib/dr-inputs/dr-link/dr-link.component.d.ts +16 -0
  266. package/lib/dr-inputs/dr-model-debounce-change.directive.d.ts +4 -0
  267. package/lib/dr-inputs/dr-select/dr-select.component.d.ts +20 -3
  268. package/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.d.ts +4 -0
  269. package/lib/dr-inputs/dr-slider/dr-slider.component.d.ts +18 -0
  270. package/lib/dr-inputs/dr-toggle/dr-toggle.component.d.ts +3 -0
  271. package/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.d.ts +6 -1
  272. package/lib/dr-inputs/radio-button/radio-button.component.d.ts +3 -0
  273. package/lib/dr-inputs/radio-button/radio-group.component.d.ts +3 -0
  274. package/lib/dr-layout/dr-layout-body.component.d.ts +3 -0
  275. package/lib/dr-layout/dr-layout-header.component.d.ts +3 -0
  276. package/lib/dr-layout/dr-layout.component.d.ts +3 -0
  277. package/lib/dr-layout/dr-layout.module.d.ts +8 -0
  278. package/lib/dr-popover/dr-popover-ref.d.ts +1 -0
  279. package/lib/dr-popover/dr-popover.component.d.ts +8 -4
  280. package/lib/dr-popover/dr-popover.directive.d.ts +9 -5
  281. package/lib/dr-popover/dr-popover.module.d.ts +7 -0
  282. package/lib/dr-popover/dr-popover.service.d.ts +5 -1
  283. package/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.d.ts +3 -4
  284. package/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.d.ts +3 -0
  285. package/lib/dr-scenario/dr-scenario.module.d.ts +11 -0
  286. package/lib/dr-scenario/interfaces/scenario.d.ts +3 -3
  287. package/lib/dr-scenario/services/scenario.service.d.ts +3 -0
  288. package/lib/dr-spinner/dr-spinner.component.d.ts +3 -0
  289. package/lib/dr-spinner/dr-spinner.directive.d.ts +4 -2
  290. package/lib/dr-spinner/dr-spinner.module.d.ts +7 -0
  291. package/lib/dr-tabs/dr-tab.component.d.ts +5 -0
  292. package/lib/dr-tabs/dr-tabs.component.d.ts +21 -4
  293. package/lib/dr-tabs/dr-tabs.module.d.ts +11 -0
  294. package/lib/dr-tags/dr-tag.component.d.ts +3 -0
  295. package/lib/dr-tags/dr-tag.module.d.ts +9 -0
  296. package/lib/dr-tags-constructor/dr-tags-constructor.component.d.ts +33 -0
  297. package/lib/dr-tags-constructor/dr-tags-constructor.module.d.ts +10 -0
  298. package/lib/dr-tags-constructor/tags-constructor.service.d.ts +12 -0
  299. package/lib/dr-toastr/default-toastr/default-toastr.component.d.ts +15 -0
  300. package/lib/dr-toastr/dr-toastr.module.d.ts +9 -0
  301. package/lib/dr-toastr/dr-toastr.service.d.ts +14 -0
  302. package/lib/dr-tooltip/components/tooltip-default/tooltip-default.component.d.ts +9 -0
  303. package/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.d.ts +3 -1
  304. package/lib/dr-tooltip/dr-tooltip.component.d.ts +4 -1
  305. package/lib/dr-tooltip/dr-tooltip.directive.d.ts +7 -0
  306. package/lib/dr-tooltip/dr-tooltip.module.d.ts +9 -0
  307. package/lib/dr-tooltip/interfaces/tooltip-component-context.d.ts +18 -2
  308. package/lib/dr-treeview/components/treeview/treeview.component.d.ts +3 -0
  309. package/lib/dr-treeview/components/treeview-item/treeview-item.component.d.ts +3 -0
  310. package/lib/dr-treeview/dr-tree-view.module.d.ts +9 -0
  311. package/lib/dr-treeview/helpers/treeview-event-parser.d.ts +9 -0
  312. package/lib/dr-treeview/models/treeview-config.d.ts +3 -0
  313. package/lib/dr-treeview/models/treeview-i18n.d.ts +5 -0
  314. package/lib/dr-treeview/models/treeview-item.d.ts +2 -1
  315. package/lib/dr-treeview/pipes/treeview.pipe.d.ts +3 -0
  316. package/lib/drawer/drawer-animation.d.ts +5 -0
  317. package/lib/drawer/drawer-config.d.ts +68 -0
  318. package/lib/drawer/drawer-container.component.d.ts +45 -0
  319. package/lib/drawer/drawer-position-strategy.d.ts +10 -0
  320. package/lib/drawer/drawer-ref.d.ts +55 -0
  321. package/lib/drawer/drawer.module.d.ts +7 -0
  322. package/lib/drawer/drawer.service.d.ts +62 -0
  323. package/lib/drawer/public-api.d.ts +5 -0
  324. package/lib/image-cropper/dr-image-cropper-canvas.service.d.ts +20 -0
  325. package/lib/image-cropper/dr-image-cropper.component.d.ts +28 -0
  326. package/lib/image-cropper/dr-image-cropper.types.d.ts +9 -0
  327. package/lib/list-tags/list-tag.component.d.ts +3 -0
  328. package/lib/list-tags/list-tag.module.d.ts +8 -0
  329. package/lib/models/chat.d.ts +3 -3
  330. package/lib/models/datePicker.d.ts +10 -3
  331. package/lib/models/datePickerRange.d.ts +4 -0
  332. package/lib/models/dropdown.d.ts +15 -21
  333. package/lib/models/popover.d.ts +7 -4
  334. package/lib/models/serverTags.d.ts +4 -4
  335. package/lib/models/spinnerOptions.d.ts +2 -10
  336. package/lib/models/toastr.d.ts +18 -0
  337. package/lib/pipes/filter/filter.pipe.d.ts +7 -0
  338. package/lib/pipes/img/img.pipe.d.ts +7 -0
  339. package/lib/stepper/interfaces/stepper.d.ts +1 -1
  340. package/lib/stepper/stepper.component.d.ts +13 -8
  341. package/lib/stepper/stepper.module.d.ts +7 -0
  342. package/lib/utils/data-analytics.service.d.ts +8 -0
  343. package/lib/utils/decorators.d.ts +1 -0
  344. package/lib/utils/dr-shared-utils.d.ts +9 -0
  345. package/package.json +41 -15
  346. package/public-api.d.ts +59 -6
  347. package/src/lib/drawer/drawer-animation.d.ts +5 -0
  348. package/src/lib/drawer/drawer-config.d.ts +68 -0
  349. package/src/lib/drawer/drawer-container.component.d.ts +45 -0
  350. package/src/lib/drawer/drawer-position-strategy.d.ts +10 -0
  351. package/src/lib/drawer/drawer-ref.d.ts +55 -0
  352. package/src/lib/drawer/drawer.module.d.ts +7 -0
  353. package/src/lib/drawer/drawer.service.d.ts +62 -0
  354. package/src/lib/drawer/index.d.ts +5 -0
  355. package/src/lib/drawer/public-api.d.ts +5 -0
  356. package/styles.css +749 -0
  357. package/_datarailsshared.styles.css +0 -4
  358. package/assets/styles/img/dr-icon-info.svg +0 -4
  359. package/bundles/datarailsshared-datarailsshared.umd.js +0 -8372
  360. package/bundles/datarailsshared-datarailsshared.umd.js.map +0 -1
  361. package/datarailsshared-datarailsshared-1.4.569.tgz +0 -0
  362. package/datarailsshared-datarailsshared.d.ts +0 -34
  363. package/datarailsshared-datarailsshared.metadata.json +0 -1
  364. package/esm2015/datarailsshared-datarailsshared.js +0 -35
  365. package/esm2015/lib/date-tags/date-tag.component.js +0 -74
  366. package/esm2015/lib/date-tags/date-tag.module.js +0 -36
  367. package/esm2015/lib/date-tags/day-tag/day-tag.component.js +0 -77
  368. package/esm2015/lib/date-tags/forecast-tag/forecast-tag.component.js +0 -164
  369. package/esm2015/lib/date-tags/forecast-tag/forecast-tag.service.js +0 -83
  370. package/esm2015/lib/date-tags/month-tag/month-tag.component.js +0 -80
  371. package/esm2015/lib/date-tags/quarter-tag/quarter-tag.component.js +0 -114
  372. package/esm2015/lib/date-tags/week-tag/week-tag.component.js +0 -84
  373. package/esm2015/lib/date-tags/year-tag/year-tag.component.js +0 -78
  374. package/esm2015/lib/dr-accordion/accordion-item-body.component.js +0 -55
  375. package/esm2015/lib/dr-accordion/accordion-item-header.component.js +0 -77
  376. package/esm2015/lib/dr-accordion/accordion-item.component.js +0 -123
  377. package/esm2015/lib/dr-accordion/accordion.component.js +0 -43
  378. package/esm2015/lib/dr-accordion/accordion.module.js +0 -23
  379. package/esm2015/lib/dr-alert/dr-alert.component.js +0 -35
  380. package/esm2015/lib/dr-alert/dr-alert.module.js +0 -18
  381. package/esm2015/lib/dr-avatar/dr-avatar.component.js +0 -54
  382. package/esm2015/lib/dr-avatar/dr-avatar.module.js +0 -26
  383. package/esm2015/lib/dr-avatar/dr-avatar.pipe.js +0 -16
  384. package/esm2015/lib/dr-avatar/services/dr-avatar.service.js +0 -17
  385. package/esm2015/lib/dr-badge-status/dr-badge-status.component.js +0 -25
  386. package/esm2015/lib/dr-badge-status/dr-badge-status.module.js +0 -20
  387. package/esm2015/lib/dr-chat/chat.component.js +0 -119
  388. package/esm2015/lib/dr-chat/chat.module.js +0 -41
  389. package/esm2015/lib/dr-chat/dr-chat-form/chat-form.component.js +0 -155
  390. package/esm2015/lib/dr-chat/dr-chat-message/chat-message.component.js +0 -71
  391. package/esm2015/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive.js +0 -49
  392. package/esm2015/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.service.js +0 -23
  393. package/esm2015/lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component.js +0 -47
  394. package/esm2015/lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component.js +0 -18
  395. package/esm2015/lib/dr-chat/dr-chat-suggestions/chat-suggestions.component.js +0 -87
  396. package/esm2015/lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component.js +0 -15
  397. package/esm2015/lib/dr-details-list/dr-details-list.component.js +0 -65
  398. package/esm2015/lib/dr-details-list/dr-details-list.module.js +0 -16
  399. package/esm2015/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.js +0 -84
  400. package/esm2015/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.js +0 -92
  401. package/esm2015/lib/dr-dialog/dialog.module.js +0 -34
  402. package/esm2015/lib/dr-dialog/interfaces/dialog-data.js +0 -25
  403. package/esm2015/lib/dr-dialog/services/dialog.service.js +0 -78
  404. package/esm2015/lib/dr-dropdown/dr-dropdown-item-show.pipe.js +0 -12
  405. package/esm2015/lib/dr-dropdown/dr-dropdown-position.directive.js +0 -104
  406. package/esm2015/lib/dr-dropdown/dr-dropdown.component.js +0 -114
  407. package/esm2015/lib/dr-dropdown/dr-dropdown.directive.js +0 -104
  408. package/esm2015/lib/dr-dropdown/dr-dropdown.module.js +0 -34
  409. package/esm2015/lib/dr-dropdown/dr-dropdown.service.js +0 -24
  410. package/esm2015/lib/dr-dynamic-tag/dr-dynamic-tag.component.js +0 -120
  411. package/esm2015/lib/dr-dynamic-tag/dr-dynamic-tag.module.js +0 -19
  412. package/esm2015/lib/dr-error/dr-error.component.js +0 -56
  413. package/esm2015/lib/dr-error/dr-error.module.js +0 -22
  414. package/esm2015/lib/dr-inputs/button/button.component.js +0 -39
  415. package/esm2015/lib/dr-inputs/checkbox/checkbox.component.js +0 -66
  416. package/esm2015/lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive.js +0 -47
  417. package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.js +0 -234
  418. package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.js +0 -182
  419. package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.js +0 -183
  420. package/esm2015/lib/dr-inputs/date-pickers/dr-show-timeframe.pipe.js +0 -12
  421. package/esm2015/lib/dr-inputs/date-pickers/services/dr-date-picker.service.js +0 -194
  422. package/esm2015/lib/dr-inputs/dr-input/dr-input.component.js +0 -194
  423. package/esm2015/lib/dr-inputs/dr-inputs.module.js +0 -68
  424. package/esm2015/lib/dr-inputs/dr-model-debounce-change.directive.js +0 -29
  425. package/esm2015/lib/dr-inputs/dr-select/dr-select.component.js +0 -123
  426. package/esm2015/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.js +0 -74
  427. package/esm2015/lib/dr-inputs/dr-toggle/dr-toggle.component.js +0 -68
  428. package/esm2015/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.js +0 -67
  429. package/esm2015/lib/dr-inputs/radio-button/radio-button.component.js +0 -73
  430. package/esm2015/lib/dr-inputs/radio-button/radio-group.component.js +0 -157
  431. package/esm2015/lib/dr-layout/dr-layout-body.component.js +0 -13
  432. package/esm2015/lib/dr-layout/dr-layout-header.component.js +0 -17
  433. package/esm2015/lib/dr-layout/dr-layout.component.js +0 -14
  434. package/esm2015/lib/dr-layout/dr-layout.module.js +0 -20
  435. package/esm2015/lib/dr-popover/dr-popover-ref.js +0 -20
  436. package/esm2015/lib/dr-popover/dr-popover.component.js +0 -106
  437. package/esm2015/lib/dr-popover/dr-popover.directive.js +0 -84
  438. package/esm2015/lib/dr-popover/dr-popover.module.js +0 -23
  439. package/esm2015/lib/dr-popover/dr-popover.service.js +0 -106
  440. package/esm2015/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.js +0 -104
  441. package/esm2015/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.js +0 -75
  442. package/esm2015/lib/dr-scenario/consts/scenario-tags-config.js +0 -79
  443. package/esm2015/lib/dr-scenario/dr-scenario.module.js +0 -28
  444. package/esm2015/lib/dr-scenario/services/scenario.service.js +0 -196
  445. package/esm2015/lib/dr-spinner/dr-spinner.component.js +0 -18
  446. package/esm2015/lib/dr-spinner/dr-spinner.directive.js +0 -58
  447. package/esm2015/lib/dr-spinner/dr-spinner.module.js +0 -18
  448. package/esm2015/lib/dr-tabs/dr-tab.component.js +0 -26
  449. package/esm2015/lib/dr-tabs/dr-tabs.component.js +0 -35
  450. package/esm2015/lib/dr-tabs/dr-tabs.module.js +0 -32
  451. package/esm2015/lib/dr-tags/dr-tag.component.js +0 -183
  452. package/esm2015/lib/dr-tags/dr-tag.module.js +0 -24
  453. package/esm2015/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.js +0 -19
  454. package/esm2015/lib/dr-tooltip/components/tooltip-info-simple/tooltip-info-simple.component.js +0 -18
  455. package/esm2015/lib/dr-tooltip/components/tooltip-no-body/tooltip-no-body.component.js +0 -20
  456. package/esm2015/lib/dr-tooltip/components/tooltip-process-default/tooltip-process-default.component.js +0 -34
  457. package/esm2015/lib/dr-tooltip/dr-tooltip.component.js +0 -41
  458. package/esm2015/lib/dr-tooltip/dr-tooltip.directive.js +0 -151
  459. package/esm2015/lib/dr-tooltip/dr-tooltip.module.js +0 -38
  460. package/esm2015/lib/dr-tooltip/interfaces/tooltip-component-context.js +0 -2
  461. package/esm2015/lib/dr-treeview/components/treeview/treeview.component.js +0 -210
  462. package/esm2015/lib/dr-treeview/components/treeview-item/treeview-item.component.js +0 -58
  463. package/esm2015/lib/dr-treeview/dr-tree-view.module.js +0 -38
  464. package/esm2015/lib/dr-treeview/helpers/treeview-event-parser.js +0 -97
  465. package/esm2015/lib/dr-treeview/helpers/treeview-helper.js +0 -82
  466. package/esm2015/lib/dr-treeview/models/treeview-config.js +0 -22
  467. package/esm2015/lib/dr-treeview/models/treeview-i18n.js +0 -42
  468. package/esm2015/lib/dr-treeview/models/treeview-item.js +0 -155
  469. package/esm2015/lib/dr-treeview/pipes/treeview.pipe.js +0 -17
  470. package/esm2015/lib/list-tags/list-tag.component.js +0 -37
  471. package/esm2015/lib/list-tags/list-tag.module.js +0 -23
  472. package/esm2015/lib/models/chat.js +0 -38
  473. package/esm2015/lib/models/dropdown.js +0 -2
  474. package/esm2015/lib/models/popover.js +0 -27
  475. package/esm2015/lib/models/spinnerOptions.js +0 -13
  476. package/esm2015/lib/stepper/stepper.component.js +0 -55
  477. package/esm2015/lib/stepper/stepper.module.js +0 -17
  478. package/esm2015/lib/utils/dr-shared-utils.js +0 -47
  479. package/esm2015/public-api.js +0 -101
  480. package/fesm2015/datarailsshared-datarailsshared.js +0 -7194
  481. package/fesm2015/datarailsshared-datarailsshared.js.map +0 -1
  482. package/lib/dr-dropdown/dr-dropdown-position.directive.d.ts +0 -12
  483. package/lib/dr-tooltip/components/tooltip-info-simple/tooltip-info-simple.component.d.ts +0 -5
  484. package/lib/dr-tooltip/components/tooltip-no-body/tooltip-no-body.component.d.ts +0 -6
  485. package/lib/dr-tooltip/components/tooltip-process-default/tooltip-process-default.component.d.ts +0 -4
  486. /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
  487. /package/{esm2015/lib/dr-scenario/interfaces/scenario.js → esm2022/lib/dr-scenario/interfaces/scenario.mjs} +0 -0
  488. /package/{esm2015/lib/dr-tags/dr-tag.types.js → esm2022/lib/dr-tags/dr-tag.types.mjs} +0 -0
  489. /package/{esm2015/lib/dr-tooltip/enums/tooltip-position.enum.js → esm2022/lib/dr-tooltip/enums/tooltip-position.enum.mjs} +0 -0
  490. /package/{esm2015/lib/dr-tooltip/enums/tooltip-theme.enum.js → esm2022/lib/dr-tooltip/enums/tooltip-theme.enum.mjs} +0 -0
  491. /package/{esm2015/lib/models/badgeStatus.js → esm2022/lib/models/badgeStatus.mjs} +0 -0
  492. /package/{esm2015/lib/models/validationError.js → esm2022/lib/models/validationError.mjs} +0 -0
  493. /package/{esm2015/lib/stepper/interfaces/stepper.js → esm2022/lib/stepper/interfaces/stepper.mjs} +0 -0
@@ -0,0 +1,137 @@
1
+ import { Directive, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core';
2
+ import { first } from 'rxjs/operators';
3
+ import { DrPopoverService } from './dr-popover.service';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "./dr-popover.service";
6
+ export class DrPopoverDirective {
7
+ constructor(elementRef, drPopoverService) {
8
+ this.elementRef = elementRef;
9
+ this.drPopoverService = drPopoverService;
10
+ this.contentContext = {};
11
+ this.position = 'bottom';
12
+ this.class = '';
13
+ this.overlayConfig = {};
14
+ this.manualClosing = { enabled: false };
15
+ this.popoverClose = new EventEmitter();
16
+ this.popoverOpened = new EventEmitter();
17
+ this.showStateChange = new EventEmitter();
18
+ this.scrollHandler = (event) => {
19
+ // Find the nearest scrollable parent for which scrolling is possible
20
+ const isVerticalScroll = !event.shiftKey;
21
+ const scrollableElement = this.getScrollableElement(event.target, isVerticalScroll);
22
+ // Check if scroll possible and host element places inside scrollable element
23
+ if (scrollableElement && scrollableElement.contains(this.elementRef.nativeElement)) {
24
+ this.closePopover();
25
+ }
26
+ };
27
+ }
28
+ togglePopover() {
29
+ if (this.disabled)
30
+ return;
31
+ if (this.popoverRef) {
32
+ this.closePopover();
33
+ }
34
+ else {
35
+ this.renderPopover();
36
+ this.showStateChange.emit({ isShown: !!this.popoverRef });
37
+ }
38
+ }
39
+ closePopover(res) {
40
+ if (this.popoverRef) {
41
+ this.popoverRef.close(res);
42
+ this.popoverRef = null;
43
+ window.removeEventListener('wheel', this.scrollHandler);
44
+ }
45
+ }
46
+ renderPopover() {
47
+ const popoverRef = (this.popoverRef = this.drPopoverService.open(this.content, {
48
+ hostRef: this.elementRef,
49
+ overlayConfig: this.overlayConfig,
50
+ class: this.class,
51
+ manualClosing: this.manualClosing,
52
+ position: this.position,
53
+ contentContext: this.contentContext,
54
+ alignment: this.alignment,
55
+ freezeToContainerSelector: this.freezeToContainerSelector,
56
+ }));
57
+ popoverRef.onClose.pipe(first()).subscribe((res) => {
58
+ this.closePopover();
59
+ this.popoverClose.emit(res);
60
+ this.showStateChange.emit({ isShown: !!this.popoverRef });
61
+ });
62
+ popoverRef.componentRef.instance.popoverOpened.pipe(first()).subscribe(() => {
63
+ this.popoverOpened.emit();
64
+ });
65
+ if (!this.manualClosing?.enabled && !this.freezeToContainerSelector) {
66
+ window.addEventListener('wheel', this.scrollHandler);
67
+ }
68
+ }
69
+ ngOnDestroy() {
70
+ this.closePopover();
71
+ }
72
+ getScrollableElement(element, isVerticalScroll) {
73
+ while (element) {
74
+ const overflow = isVerticalScroll
75
+ ? window.getComputedStyle(element).overflowY
76
+ : window.getComputedStyle(element).overflowX;
77
+ const isScrollable = ['auto', 'scroll'].includes(overflow) &&
78
+ (isVerticalScroll ? element.scrollHeight > element.clientHeight : element.scrollWidth > element.clientWidth);
79
+ if (isScrollable) {
80
+ return element;
81
+ }
82
+ element = element.parentElement;
83
+ }
84
+ return null;
85
+ }
86
+ /** @nocollapse */ static { this.ɵfac = function DrPopoverDirective_Factory(t) { return new (t || DrPopoverDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.DrPopoverService)); }; }
87
+ /** @nocollapse */ static { this.ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: DrPopoverDirective, selectors: [["", "drPopover", ""]], hostBindings: function DrPopoverDirective_HostBindings(rf, ctx) { if (rf & 1) {
88
+ i0.ɵɵlistener("click", function DrPopoverDirective_click_HostBindingHandler() { return ctx.togglePopover(); });
89
+ } }, inputs: { content: ["drPopover", "content"], contentContext: ["drPopoverContext", "contentContext"], position: ["drPopoverPosition", "position"], class: ["drPopoverClass", "class"], overlayConfig: ["drPopoverOverlayConfig", "overlayConfig"], manualClosing: ["drPopoverManualClosing", "manualClosing"], alignment: ["drPopoverAlignment", "alignment"], disabled: ["drPopoverDisabled", "disabled"], freezeToContainerSelector: ["drPopoverFreezeToContainerSelector", "freezeToContainerSelector"] }, outputs: { popoverClose: "drPopoverClose", popoverOpened: "drPopoverOpened", showStateChange: "drPopoverShowStateChange" }, exportAs: ["drPopoverInstance"] }); }
90
+ }
91
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrPopoverDirective, [{
92
+ type: Directive,
93
+ args: [{
94
+ selector: '[drPopover]',
95
+ exportAs: 'drPopoverInstance',
96
+ }]
97
+ }], function () { return [{ type: i0.ElementRef }, { type: i1.DrPopoverService }]; }, { content: [{
98
+ type: Input,
99
+ args: ['drPopover']
100
+ }], contentContext: [{
101
+ type: Input,
102
+ args: ['drPopoverContext']
103
+ }], position: [{
104
+ type: Input,
105
+ args: ['drPopoverPosition']
106
+ }], class: [{
107
+ type: Input,
108
+ args: ['drPopoverClass']
109
+ }], overlayConfig: [{
110
+ type: Input,
111
+ args: ['drPopoverOverlayConfig']
112
+ }], manualClosing: [{
113
+ type: Input,
114
+ args: ['drPopoverManualClosing']
115
+ }], alignment: [{
116
+ type: Input,
117
+ args: ['drPopoverAlignment']
118
+ }], disabled: [{
119
+ type: Input,
120
+ args: ['drPopoverDisabled']
121
+ }], freezeToContainerSelector: [{
122
+ type: Input,
123
+ args: ['drPopoverFreezeToContainerSelector']
124
+ }], popoverClose: [{
125
+ type: Output,
126
+ args: ['drPopoverClose']
127
+ }], popoverOpened: [{
128
+ type: Output,
129
+ args: ['drPopoverOpened']
130
+ }], showStateChange: [{
131
+ type: Output,
132
+ args: ['drPopoverShowStateChange']
133
+ }], togglePopover: [{
134
+ type: HostListener,
135
+ args: ['click']
136
+ }] }); })();
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItcG9wb3Zlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1wb3BvdmVyL2RyLXBvcG92ZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDL0gsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3ZDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7QUFPeEQsTUFBTSxPQUFPLGtCQUFrQjtJQTJCM0IsWUFDWSxVQUFzQixFQUN0QixnQkFBa0M7UUFEbEMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBMUJuQixtQkFBYyxHQUFlLEVBQWdCLENBQUM7UUFFN0MsYUFBUSxHQUFlLFFBQVEsQ0FBQztRQUVuQyxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRUgsa0JBQWEsR0FBb0IsRUFBRSxDQUFDO1FBRXBDLGtCQUFhLEdBQTBCLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBUWpFLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUV0QyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFaEMsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBd0IsQ0FBQztRQTREdkYsa0JBQWEsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzlCLHFFQUFxRTtZQUNyRSxNQUFNLGdCQUFnQixHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQztZQUN6QyxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsTUFB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QUFDLGlCQUFpQjtZQUVXLGVBQWU7a0JBQWxELE1BQU07bUJBQUMsMEJBQTBCO1lBVWxDLGFBQWE7a0JBRFosWUFBWTttQkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0LCBUZW1wbGF0ZVJlZiwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFbFBvc2l0aW9uIH0gZnJvbSAnLi8uLi9tb2RlbHMvZHJvcGRvd24nO1xuaW1wb3J0IHsgRHJQb3BvdmVyUmVmIH0gZnJvbSAnLi9kci1wb3BvdmVyLXJlZic7XG5pbXBvcnQgeyBEclBvcG92ZXJTZXJ2aWNlIH0gZnJvbSAnLi9kci1wb3BvdmVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRHJQb3BvdmVyQWxpZ25tZW50LCBEclBvcG92ZXJDb25maWcsIElQb3BvdmVyTWFudWFsQ2xvc2luZyB9IGZyb20gJy4uL21vZGVscy9wb3BvdmVyJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZHJQb3BvdmVyXScsXG4gICAgZXhwb3J0QXM6ICdkclBvcG92ZXJJbnN0YW5jZScsXG59KVxuZXhwb3J0IGNsYXNzIERyUG9wb3ZlckRpcmVjdGl2ZTxUPiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCdkclBvcG92ZXInKSBjb250ZW50OiBUZW1wbGF0ZVJlZjxUPiB8IFR5cGU8VD47XG5cbiAgICBASW5wdXQoJ2RyUG9wb3ZlckNvbnRleHQnKSBjb250ZW50Q29udGV4dDogUGFydGlhbDxUPiA9IHt9IGFzIFBhcnRpYWw8VD47XG5cbiAgICBASW5wdXQoJ2RyUG9wb3ZlclBvc2l0aW9uJykgcG9zaXRpb246IEVsUG9zaXRpb24gPSAnYm90dG9tJztcblxuICAgIEBJbnB1dCgnZHJQb3BvdmVyQ2xhc3MnKSBjbGFzcyA9ICcnO1xuXG4gICAgQElucHV0KCdkclBvcG92ZXJPdmVybGF5Q29uZmlnJykgb3ZlcmxheUNvbmZpZzogRHJQb3BvdmVyQ29uZmlnID0ge307XG5cbiAgICBASW5wdXQoJ2RyUG9wb3Zlck1hbnVhbENsb3NpbmcnKSBtYW51YWxDbG9zaW5nOiBJUG9wb3Zlck1hbnVhbENsb3NpbmcgPSB7IGVuYWJsZWQ6IGZhbHNlIH07XG5cbiAgICBASW5wdXQoJ2RyUG9wb3ZlckFsaWdubWVudCcpIGFsaWdubWVudDogRHJQb3BvdmVyQWxpZ25tZW50O1xuXG4gICAgQElucHV0KCdkclBvcG92ZXJEaXNhYmxlZCcpIGRpc2FibGVkOiBib29sZWFuO1xuXG4gICAgQElucHV0KCdkclBvcG92ZXJGcmVlemVUb0NvbnRhaW5lclNlbGVjdG9yJykgZnJlZXplVG9Db250YWluZXJTZWxlY3Rvcjogc3RyaW5nO1xuXG4gICAgQE91dHB1dCgnZHJQb3BvdmVyQ2xvc2UnKSBwb3BvdmVyQ2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIEBPdXRwdXQoJ2RyUG9wb3Zlck9wZW5lZCcpIHBvcG92ZXJPcGVuZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBAT3V0cHV0KCdkclBvcG92ZXJTaG93U3RhdGVDaGFuZ2UnKSBzaG93U3RhdGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgaXNTaG93bjogYm9vbGVhbiB9PigpO1xuXG4gICAgcHJpdmF0ZSBwb3BvdmVyUmVmOiBEclBvcG92ZXJSZWY8VD47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIGRyUG9wb3ZlclNlcnZpY2U6IERyUG9wb3ZlclNlcnZpY2UsXG4gICAgKSB7fVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICAgIHRvZ2dsZVBvcG92ZXIoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XG5cbiAgICAgICAgaWYgKHRoaXMucG9wb3ZlclJlZikge1xuICAgICAgICAgICAgdGhpcy5jbG9zZVBvcG92ZXIoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyUG9wb3ZlcigpO1xuICAgICAgICAgICAgdGhpcy5zaG93U3RhdGVDaGFuZ2UuZW1pdCh7IGlzU2hvd246ICEhdGhpcy5wb3BvdmVyUmVmIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2xvc2VQb3BvdmVyKHJlcz86IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wb3BvdmVyUmVmKSB7XG4gICAgICAgICAgICB0aGlzLnBvcG92ZXJSZWYuY2xvc2UocmVzKTtcbiAgICAgICAgICAgIHRoaXMucG9wb3ZlclJlZiA9IG51bGw7XG4gICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignd2hlZWwnLCB0aGlzLnNjcm9sbEhhbmRsZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW5kZXJQb3BvdmVyKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBwb3BvdmVyUmVmID0gKHRoaXMucG9wb3ZlclJlZiA9IHRoaXMuZHJQb3BvdmVyU2VydmljZS5vcGVuKHRoaXMuY29udGVudCwge1xuICAgICAgICAgICAgaG9zdFJlZjogdGhpcy5lbGVtZW50UmVmLFxuICAgICAgICAgICAgb3ZlcmxheUNvbmZpZzogdGhpcy5vdmVybGF5Q29uZmlnLFxuICAgICAgICAgICAgY2xhc3M6IHRoaXMuY2xhc3MsXG4gICAgICAgICAgICBtYW51YWxDbG9zaW5nOiB0aGlzLm1hbnVhbENsb3NpbmcsXG4gICAgICAgICAgICBwb3NpdGlvbjogdGhpcy5wb3NpdGlvbixcbiAgICAgICAgICAgIGNvbnRlbnRDb250ZXh0OiB0aGlzLmNvbnRlbnRDb250ZXh0LFxuICAgICAgICAgICAgYWxpZ25tZW50OiB0aGlzLmFsaWdubWVudCxcbiAgICAgICAgICAgIGZyZWV6ZVRvQ29udGFpbmVyU2VsZWN0b3I6IHRoaXMuZnJlZXplVG9Db250YWluZXJTZWxlY3RvcixcbiAgICAgICAgfSkpO1xuXG4gICAgICAgIHBvcG92ZXJSZWYub25DbG9zZS5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlUG9wb3ZlcigpO1xuICAgICAgICAgICAgdGhpcy5wb3BvdmVyQ2xvc2UuZW1pdChyZXMpO1xuICAgICAgICAgICAgdGhpcy5zaG93U3RhdGVDaGFuZ2UuZW1pdCh7IGlzU2hvd246ICEhdGhpcy5wb3BvdmVyUmVmIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBwb3BvdmVyUmVmLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5wb3BvdmVyT3BlbmVkLnBpcGUoZmlyc3QoKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucG9wb3Zlck9wZW5lZC5lbWl0KCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICghdGhpcy5tYW51YWxDbG9zaW5nPy5lbmFibGVkICYmICF0aGlzLmZyZWV6ZVRvQ29udGFpbmVyU2VsZWN0b3IpIHtcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCd3aGVlbCcsIHRoaXMuc2Nyb2xsSGFuZGxlcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbG9zZVBvcG92ZXIoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNjcm9sbEhhbmRsZXIgPSAoZXZlbnQpID0+IHtcbiAgICAgICAgLy8gRmluZCB0aGUgbmVhcmVzdCBzY3JvbGxhYmxlIHBhcmVudCBmb3Igd2hpY2ggc2Nyb2xsaW5nIGlzIHBvc3NpYmxlXG4gICAgICAgIGNvbnN0IGlzVmVydGljYWxTY3JvbGwgPSAhZXZlbnQuc2hpZnRLZXk7XG4gICAgICAgIGNvbnN0IHNjcm9sbGFibGVFbGVtZW50ID0gdGhpcy5nZXRTY3JvbGxhYmxlRWxlbWVudChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQsIGlzVmVydGljYWxTY3JvbGwpO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIHNjcm9sbCBwb3NzaWJsZSBhbmQgaG9zdCBlbGVtZW50IHBsYWNlcyBpbnNpZGUgc2Nyb2xsYWJsZSBlbGVtZW50XG4gICAgICAgIGlmIChzY3JvbGxhYmxlRWxlbWVudCAmJiBzY3JvbGxhYmxlRWxlbWVudC5jb250YWlucyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VQb3BvdmVyKCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgZ2V0U2Nyb2xsYWJsZUVsZW1lbnQoZWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsLCBpc1ZlcnRpY2FsU2Nyb2xsKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgd2hpbGUgKGVsZW1lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IG92ZXJmbG93ID0gaXNWZXJ0aWNhbFNjcm9sbFxuICAgICAgICAgICAgICAgID8gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkub3ZlcmZsb3dZXG4gICAgICAgICAgICAgICAgOiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5vdmVyZmxvd1g7XG4gICAgICAgICAgICBjb25zdCBpc1Njcm9sbGFibGUgPVxuICAgICAgICAgICAgICAgIFsnYXV0bycsICdzY3JvbGwnXS5pbmNsdWRlcyhvdmVyZmxvdykgJiZcbiAgICAgICAgICAgICAgICAoaXNWZXJ0aWNhbFNjcm9sbCA/IGVsZW1lbnQuc2Nyb2xsSGVpZ2h0ID4gZWxlbWVudC5jbGllbnRIZWlnaHQgOiBlbGVtZW50LnNjcm9sbFdpZHRoID4gZWxlbWVudC5jbGllbnRXaWR0aCk7XG5cbiAgICAgICAgICAgIGlmIChpc1Njcm9sbGFibGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZWxlbWVudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZWxlbWVudCA9IGVsZW1lbnQucGFyZW50RWxlbWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,20 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { DrPopoverDirective } from './dr-popover.directive';
3
+ import { CommonModule } from '@angular/common';
4
+ import { DrPopoverComponent } from './dr-popover.component';
5
+ import * as i0 from "@angular/core";
6
+ export class DrPopoverModule {
7
+ /** @nocollapse */ static { this.ɵfac = function DrPopoverModule_Factory(t) { return new (t || DrPopoverModule)(); }; }
8
+ /** @nocollapse */ static { this.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DrPopoverModule }); }
9
+ /** @nocollapse */ static { this.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [CommonModule] }); }
10
+ }
11
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrPopoverModule, [{
12
+ type: NgModule,
13
+ args: [{
14
+ imports: [CommonModule],
15
+ exports: [DrPopoverDirective, DrPopoverComponent],
16
+ declarations: [DrPopoverDirective, DrPopoverComponent],
17
+ }]
18
+ }], null, null); })();
19
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(DrPopoverModule, { declarations: [DrPopoverDirective, DrPopoverComponent], imports: [CommonModule], exports: [DrPopoverDirective, DrPopoverComponent] }); })();
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItcG9wb3Zlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1wb3BvdmVyL2RyLXBvcG92ZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQU81RCxNQUFNLE9BQU8sZUFBZTttR0FBZixlQUFlO2tHQUFmLGVBQWU7c0dBSmQsWUFBWTs7dUZBSWIsZUFBZTtjQUwzQixRQUFRO2VBQUM7Z0JBQ04sT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2dCQUN2QixPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxrQkFBa0IsQ0FBQztnQkFDakQsWUFBWSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsa0JBQWtCLENBQUM7YUFDekQ7O3dGQUNZLGVBQWUsbUJBRlQsa0JBQWtCLEVBQUUsa0JBQWtCLGFBRjNDLFlBQVksYUFDWixrQkFBa0IsRUFBRSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRHJQb3BvdmVyRGlyZWN0aXZlIH0gZnJvbSAnLi9kci1wb3BvdmVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRHJQb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi9kci1wb3BvdmVyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gICAgZXhwb3J0czogW0RyUG9wb3ZlckRpcmVjdGl2ZSwgRHJQb3BvdmVyQ29tcG9uZW50XSxcbiAgICBkZWNsYXJhdGlvbnM6IFtEclBvcG92ZXJEaXJlY3RpdmUsIERyUG9wb3ZlckNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIERyUG9wb3Zlck1vZHVsZSB7fVxuIl19
@@ -0,0 +1,117 @@
1
+ import { first } from 'rxjs/operators';
2
+ import { DrPopoverRef } from './dr-popover-ref';
3
+ import { DrPopoverComponent } from './dr-popover.component';
4
+ import { ComponentPortal } from '@angular/cdk/portal';
5
+ import { Injectable, Injector } from '@angular/core';
6
+ import { Overlay, OverlayConfig, OverlayPositionBuilder } from '@angular/cdk/overlay';
7
+ import { POPUP_POSITIONS } from '../models/constants';
8
+ import { DEFAULT_CONFIG, DEFAULT_MODEL, getAlignmentDimension } from '../models/popover';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@angular/cdk/overlay";
11
+ export class DrPopoverService {
12
+ constructor(overlay, overlayPositionBuilder, injector) {
13
+ this.overlay = overlay;
14
+ this.overlayPositionBuilder = overlayPositionBuilder;
15
+ this.injector = injector;
16
+ }
17
+ open(content, popoverModel) {
18
+ if (!content)
19
+ return;
20
+ const model = { ...DEFAULT_MODEL, ...popoverModel };
21
+ const overlayRef = this.createOverlay(model);
22
+ const popoverRef = new DrPopoverRef(overlayRef);
23
+ this.attachOverlayContainer(content, model, overlayRef, popoverRef);
24
+ this.registerListeners(model, overlayRef, popoverRef);
25
+ return popoverRef;
26
+ }
27
+ attachOverlayContainer(content, { contentContext, position, class: elementClass, manualClosing, hostRef, alignment, freezeToContainerSelector, overlayConfig, }, overlayRef, popoverRef) {
28
+ const componentPortal = new ComponentPortal(DrPopoverComponent, null, this.createInjector(popoverRef, overlayConfig.providers));
29
+ const contentRef = overlayRef.attach(componentPortal);
30
+ popoverRef.componentRef = contentRef;
31
+ contentRef.instance.content = content;
32
+ contentRef.instance.contentContext = { ...contentContext, closePopover: popoverRef.close.bind(popoverRef) };
33
+ contentRef.instance.class = elementClass + ' ' + position;
34
+ contentRef.instance.manualClosing = manualClosing;
35
+ contentRef.instance.hostRef = hostRef;
36
+ contentRef.instance.alignment = alignment;
37
+ contentRef.instance.position = position;
38
+ contentRef.instance.freezeToContainerSelector = freezeToContainerSelector;
39
+ }
40
+ createOverlay(popoverModel) {
41
+ const overlayConfig = this.getOverlayConfig(popoverModel);
42
+ return this.overlay.create(overlayConfig);
43
+ }
44
+ getOverlayConfig(popoverModel) {
45
+ if (!POPUP_POSITIONS[popoverModel.position])
46
+ throw new Error(`DrPopover does not support the '${popoverModel?.position}' position!`);
47
+ const position = { ...POPUP_POSITIONS[popoverModel.position] };
48
+ const positionOffsetY = popoverModel.overlayConfig.positionOffsetY;
49
+ const positionOffsetX = popoverModel.overlayConfig.positionOffsetX;
50
+ if (positionOffsetY || positionOffsetX) {
51
+ if (position.offsetY) {
52
+ position.offsetY = position.offsetY < 0 ? positionOffsetY : positionOffsetY;
53
+ position.offsetX = positionOffsetX;
54
+ }
55
+ if (position.offsetX) {
56
+ position.offsetX = position.offsetX < 0 ? -positionOffsetX : positionOffsetX;
57
+ position.offsetY = positionOffsetY;
58
+ }
59
+ }
60
+ if (popoverModel.overlayConfig.noPadding) {
61
+ position.offsetY = 0;
62
+ position.offsetX = 0;
63
+ }
64
+ const config = { ...DEFAULT_CONFIG, ...(popoverModel.overlayConfig || {}) };
65
+ const hostElement = this.getHostElement(popoverModel.hostRef);
66
+ const positionStrategy = this.overlayPositionBuilder.flexibleConnectedTo(popoverModel.hostRef).withPositions([position]);
67
+ const overlayConfig = new OverlayConfig({
68
+ scrollStrategy: this.overlay.scrollStrategies.noop(),
69
+ positionStrategy,
70
+ ...config,
71
+ });
72
+ if (popoverModel.alignment === 'host' && hostElement) {
73
+ const alignmentDimension = getAlignmentDimension(popoverModel.position);
74
+ overlayConfig[alignmentDimension] = hostElement.getBoundingClientRect()[alignmentDimension];
75
+ }
76
+ return overlayConfig;
77
+ }
78
+ createInjector(popoverRef, tokens) {
79
+ const injectionTokens = [...(tokens || []), { provide: DrPopoverRef, useValue: popoverRef }];
80
+ return Injector.create({ providers: injectionTokens, parent: this.injector });
81
+ }
82
+ registerListeners(popoverModel, overlayRef, popoverRef) {
83
+ const config = popoverModel.overlayConfig || {};
84
+ const targetElement = popoverModel.targetElement;
85
+ const hostElement = this.getHostElement(popoverModel.hostRef);
86
+ if (config?.closeOnBackdropClick && config?.hasBackdrop) {
87
+ overlayRef.backdropClick().subscribe(() => popoverRef.close());
88
+ }
89
+ if (targetElement) {
90
+ targetElement.addEventListener('mouseup', () => popoverRef.close(), { once: true });
91
+ }
92
+ if (popoverModel.alignment === 'host' && hostElement) {
93
+ const alignmentDimension = getAlignmentDimension(popoverModel.position);
94
+ const resizeObserver = new ResizeObserver((entries) => {
95
+ entries.forEach((host) => overlayRef.updateSize({ [alignmentDimension]: host.target.getBoundingClientRect()[alignmentDimension] }));
96
+ });
97
+ resizeObserver.observe(hostElement);
98
+ popoverRef.onClose.pipe(first()).subscribe(() => resizeObserver.unobserve(hostElement));
99
+ }
100
+ }
101
+ getHostElement(hostRef) {
102
+ if (!hostRef || hostRef.x)
103
+ return null;
104
+ if (hostRef.nativeElement)
105
+ return hostRef.nativeElement;
106
+ return hostRef;
107
+ }
108
+ /** @nocollapse */ static { this.ɵfac = function DrPopoverService_Factory(t) { return new (t || DrPopoverService)(i0.ɵɵinject(i1.Overlay), i0.ɵɵinject(i1.OverlayPositionBuilder), i0.ɵɵinject(i0.Injector)); }; }
109
+ /** @nocollapse */ static { this.ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: DrPopoverService, factory: DrPopoverService.ɵfac, providedIn: 'root' }); }
110
+ }
111
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrPopoverService, [{
112
+ type: Injectable,
113
+ args: [{
114
+ providedIn: 'root',
115
+ }]
116
+ }], function () { return [{ type: i1.Overlay }, { type: i1.OverlayPositionBuilder }, { type: i0.Injector }]; }, null); })();
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItcG9wb3Zlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItcG9wb3Zlci9kci1wb3BvdmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFpQixNQUFNLHFCQUFxQixDQUFDO0FBQ3JFLE9BQU8sRUFBYyxVQUFVLEVBQUUsUUFBUSxFQUFxQyxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxzQkFBc0IsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQ2xHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFBbUMsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBSzFILE1BQU0sT0FBTyxnQkFBZ0I7SUFDekIsWUFDWSxPQUFnQixFQUNoQixzQkFBOEMsRUFDOUMsUUFBa0I7UUFGbEIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLGFBQVEsR0FBUixRQUFRLENBQVU7SUFDM0IsQ0FBQztJQUVKLElBQUksQ0FDQSxPQUEwRCxFQUMxRCxZQUF5QztRQUV6QyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU87UUFFckIsTUFBTSxLQUFLLEdBQUcsRUFBRSxHQUFHLGFBQWEsRUFBRSxHQUFHLFlBQVksRUFBRSxDQUFDO1FBRXBELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFh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QUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUNyQixVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FDM0csQ0FBQztZQUNOLENBQUMsQ0FBQyxDQUFDO1lBQ0gsY0FBYyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNwQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7U0FDM0Y7SUFDTCxDQUFDO0lBRU8sY0FBYyxDQUFJLE9BQTRDO1FBQ2xFLElBQUksQ0FBQyxPQUFPLElBQVksT0FBUSxDQUFDLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUNoRCxJQUFpQixPQUFRLENBQUMsYUFBYTtZQUFFLE9BQW9CLE9BQVEsQ0FBQyxhQUFhLENBQUM7UUFDcEYsT0FBb0IsT0FBTyxDQUFDO0lBQ2hDLENBQUM7b0dBbEpRLGdCQUFnQjtzR0FBaEIsZ0JBQWdCLFdBQWhCLGdCQUFnQixtQkFGYixNQUFNOzt1RkFFVCxnQkFBZ0I7Y0FINUIsVUFBVTtlQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEclBvcG92ZXJSZWYgfSBmcm9tICcuL2RyLXBvcG92ZXItcmVmJztcbmltcG9ydCB7IERyUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJy4vZHItcG9wb3Zlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsLCBDb21wb25lbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RhYmxlLCBJbmplY3RvciwgU3RhdGljUHJvdmlkZXIsIFRlbXBsYXRlUmVmLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBPdmVybGF5UG9zaXRpb25CdWlsZGVyLCBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgUE9QVVBfUE9TSVRJT05TIH0gZnJvbSAnLi4vbW9kZWxzL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBERUZBVUxUX0NPTkZJRywgREVGQVVMVF9NT0RFTCwgZ2V0QWxpZ25tZW50RGltZW5zaW9uLCBJRHJQb3BvdmVyQ29tcG9uZW50TW9kZWwsIFBvaW50IH0gZnJvbSAnLi4vbW9kZWxzL3BvcG92ZXInO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBEclBvcG92ZXJTZXJ2aWNlIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgICAgICBwcml2YXRlIG92ZXJsYXlQb3NpdGlvbkJ1aWxkZXI6IE92ZXJsYXlQb3NpdGlvbkJ1aWxkZXIsXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICkge31cblxuICAgIG9wZW48VD4oXG4gICAgICAgIGNvbnRlbnQ6IFR5cGU8VD4gfCBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IENvbXBvbmVudFR5cGU8VD4sXG4gICAgICAgIHBvcG92ZXJNb2RlbDogSURyUG9wb3ZlckNvbXBvbmVudE1vZGVsPFQ+LFxuICAgICk6IERyUG9wb3ZlclJlZjxUPiB7XG4gICAgICAgIGlmICghY29udGVudCkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IG1vZGVsID0geyAuLi5ERUZBVUxUX01PREVMLCAuLi5wb3BvdmVyTW9kZWwgfTtcblxuICAgICAgICBjb25zdCBvdmVybGF5UmVmID0gdGhpcy5jcmVhdGVPdmVybGF5KG1vZGVsKTtcblxuICAgICAgICBjb25zdCBwb3BvdmVyUmVmID0gbmV3IERyUG9wb3ZlclJlZjxUPihvdmVybGF5UmVmKTtcblxuICAgICAgICB0aGlzLmF0dGFjaE92ZXJsYXlDb250YWluZXIoY29udGVudCwgbW9kZWwsIG92ZXJsYXlSZWYsIHBvcG92ZXJSZWYpO1xuXG4gICAgICAgIHRoaXMucmVnaXN0ZXJMaXN0ZW5lcnMobW9kZWwsIG92ZXJsYXlSZWYsIHBvcG92ZXJSZWYpO1xuXG4gICAgICAgIHJldHVybiBwb3BvdmVyUmVmO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXR0YWNoT3ZlcmxheUNvbnRhaW5lcjxUPihcbiAgICAgICAgY29udGVudDogVHlwZTxUPiB8IFRlbXBsYXRlUmVmPHVua25vd24+LFxuICAgICAgICB7XG4gICAgICAgICAgICBjb250ZW50Q29udGV4dCxcbiAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgY2xhc3M6IGVsZW1lbnRDbGFzcyxcbiAgICAgICAgICAgIG1hbnVhbENsb3NpbmcsXG4gICAgICAgICAgICBob3N0UmVmLFxuICAgICAgICAgICAgYWxpZ25tZW50LFxuICAgICAgICAgICAgZnJlZXplVG9Db250YWluZXJTZWxlY3RvcixcbiAgICAgICAgICAgIG92ZXJsYXlDb25maWcsXG4gICAgICAgIH06IElEclBvcG92ZXJDb21wb25lbnRNb2RlbCxcbiAgICAgICAgb3ZlcmxheVJlZjogT3ZlcmxheVJlZixcbiAgICAgICAgcG9wb3ZlclJlZjogRHJQb3BvdmVyUmVmPFQ+LFxuICAgICk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb21wb25lbnRQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsPERyUG9wb3ZlckNvbXBvbmVudDxUPj4oXG4gICAgICAgICAgICBEclBvcG92ZXJDb21wb25lbnQsXG4gICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgdGhpcy5jcmVhdGVJbmplY3Rvcihwb3BvdmVyUmVmLCBvdmVybGF5Q29uZmlnLnByb3ZpZGVycyksXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGNvbnRlbnRSZWYgPSBvdmVybGF5UmVmLmF0dGFjaDxEclBvcG92ZXJDb21wb25lbnQ8VD4+KGNvbXBvbmVudFBvcnRhbCk7XG5cbiAgICAgICAgcG9wb3ZlclJlZi5jb21wb25lbnRSZWYgPSBjb250ZW50UmVmO1xuXG4gICAgICAgIGNvbnRlbnRSZWYuaW5zdGFuY2UuY29udGVudCA9IGNvbnRlbnQ7XG4gICAgICAgIGNvbnRlbnRSZWYuaW5zdGFuY2UuY29udGVudENvbnRleHQgPSB7IC4uLmNvbnRlbnRDb250ZXh0LCBjbG9zZVBvcG92ZXI6IHBvcG92ZXJSZWYuY2xvc2UuYmluZChwb3BvdmVyUmVmKSB9O1xuICAgICAgICBjb250ZW50UmVmLmluc3RhbmNlLmNsYXNzID0gZWxlbWVudENsYXNzICsgJyAnICsgcG9zaXRpb247XG4gICAgICAgIGNvbnRlbnRSZWYuaW5zdGFuY2UubWFudWFsQ2xvc2luZyA9IG1hbnVhbENsb3Npbmc7XG4gICAgICAgIGNvbnRlbnRSZWYuaW5zdGFuY2UuaG9zdFJlZiA9IGhvc3RSZWY7XG4gICAgICAgIGNvbnRlbnRSZWYuaW5zdGFuY2UuYWxpZ25tZW50ID0gYWxpZ25tZW50O1xuICAgICAgICBjb250ZW50UmVmLmluc3RhbmNlLnBvc2l0aW9uID0gcG9zaXRpb247XG4gICAgICAgIGNvbnRlbnRSZWYuaW5zdGFuY2UuZnJlZXplVG9Db250YWluZXJTZWxlY3RvciA9IGZyZWV6ZVRvQ29udGFpbmVyU2VsZWN0b3I7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVPdmVybGF5KHBvcG92ZXJNb2RlbDogSURyUG9wb3ZlckNvbXBvbmVudE1vZGVsKTogT3ZlcmxheVJlZiB7XG4gICAgICAgIGNvbnN0IG92ZXJsYXlDb25maWcgPSB0aGlzLmdldE92ZXJsYXlDb25maWcocG9wb3Zlck1vZGVsKTtcbiAgICAgICAgcmV0dXJuIHRoaXMub3ZlcmxheS5jcmVhdGUob3ZlcmxheUNvbmZpZyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRPdmVybGF5Q29uZmlnKHBvcG92ZXJNb2RlbDogSURyUG9wb3ZlckNvbXBvbmVudE1vZGVsKTogT3ZlcmxheUNvbmZpZyB7XG4gICAgICAgIGlmICghUE9QVVBfUE9TSVRJT05TW3BvcG92ZXJNb2RlbC5wb3NpdGlvbl0pXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYERyUG9wb3ZlciBkb2VzIG5vdCBzdXBwb3J0IHRoZSAnJHtwb3BvdmVyTW9kZWw/LnBvc2l0aW9ufScgcG9zaXRpb24hYCk7XG5cbiAgICAgICAgY29uc3QgcG9zaXRpb246IGFueSA9IHsgLi4uUE9QVVBfUE9TSVRJT05TW3BvcG92ZXJNb2RlbC5wb3NpdGlvbl0gfTtcbiAgICAgICAgY29uc3QgcG9zaXRpb25PZmZzZXRZID0gcG9wb3Zlck1vZGVsLm92ZXJsYXlDb25maWcucG9zaXRpb25PZmZzZXRZO1xuICAgICAgICBjb25zdCBwb3NpdGlvbk9mZnNldFggPSBwb3BvdmVyTW9kZWwub3ZlcmxheUNvbmZpZy5wb3NpdGlvbk9mZnNldFg7XG5cbiAgICAgICAgaWYgKHBvc2l0aW9uT2Zmc2V0WSB8fCBwb3NpdGlvbk9mZnNldFgpIHtcbiAgICAgICAgICAgIGlmIChwb3NpdGlvbi5vZmZzZXRZKSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb24ub2Zmc2V0WSA9IHBvc2l0aW9uLm9mZnNldFkgPCAwID8gcG9zaXRpb25PZmZzZXRZIDogcG9zaXRpb25PZmZzZXRZO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uLm9mZnNldFggPSBwb3NpdGlvbk9mZnNldFg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocG9zaXRpb24ub2Zmc2V0WCkge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uLm9mZnNldFggPSBwb3NpdGlvbi5vZmZzZXRYIDwgMCA/IC1wb3NpdGlvbk9mZnNldFggOiBwb3NpdGlvbk9mZnNldFg7XG4gICAgICAgICAgICAgICAgcG9zaXRpb24ub2Zmc2V0WSA9IHBvc2l0aW9uT2Zmc2V0WTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwb3BvdmVyTW9kZWwub3ZlcmxheUNvbmZpZy5ub1BhZGRpbmcpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uLm9mZnNldFkgPSAwO1xuICAgICAgICAgICAgcG9zaXRpb24ub2Zmc2V0WCA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29uZmlnID0geyAuLi5ERUZBVUxUX0NPTkZJRywgLi4uKHBvcG92ZXJNb2RlbC5vdmVybGF5Q29uZmlnIHx8IHt9KSB9O1xuICAgICAgICBjb25zdCBob3N0RWxlbWVudCA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQocG9wb3Zlck1vZGVsLmhvc3RSZWYpO1xuXG4gICAgICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXlQb3NpdGlvbkJ1aWxkZXIuZmxleGlibGVDb25uZWN0ZWRUbyhwb3BvdmVyTW9kZWwuaG9zdFJlZikud2l0aFBvc2l0aW9ucyhbcG9zaXRpb25dKTtcblxuICAgICAgICBjb25zdCBvdmVybGF5Q29uZmlnID0gbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLm5vb3AoKSxcbiAgICAgICAgICAgIHBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgICAgICAgICAuLi5jb25maWcsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChwb3BvdmVyTW9kZWwuYWxpZ25tZW50ID09PSAnaG9zdCcgJiYgaG9zdEVsZW1lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGFsaWdubWVudERpbWVuc2lvbiA9IGdldEFsaWdubWVudERpbWVuc2lvbihwb3BvdmVyTW9kZWwucG9zaXRpb24pO1xuICAgICAgICAgICAgb3ZlcmxheUNvbmZpZ1thbGlnbm1lbnREaW1lbnNpb25dID0gaG9zdEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClbYWxpZ25tZW50RGltZW5zaW9uXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvdmVybGF5Q29uZmlnO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlSW5qZWN0b3I8VD4ocG9wb3ZlclJlZjogRHJQb3BvdmVyUmVmPFQ+LCB0b2tlbnM6IFN0YXRpY1Byb3ZpZGVyW10pOiBJbmplY3RvciB7XG4gICAgICAgIGNvbnN0IGluamVjdGlvblRva2VuczogU3RhdGljUHJvdmlkZXJbXSA9IFsuLi4odG9rZW5zIHx8IFtdKSwgeyBwcm92aWRlOiBEclBvcG92ZXJSZWYsIHVzZVZhbHVlOiBwb3BvdmVyUmVmIH1dO1xuXG4gICAgICAgIHJldHVybiBJbmplY3Rvci5jcmVhdGUoeyBwcm92aWRlcnM6IGluamVjdGlvblRva2VucywgcGFyZW50OiB0aGlzLmluamVjdG9yIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVnaXN0ZXJMaXN0ZW5lcnM8VD4oXG4gICAgICAgIHBvcG92ZXJNb2RlbDogSURyUG9wb3ZlckNvbXBvbmVudE1vZGVsLFxuICAgICAgICBvdmVybGF5UmVmOiBPdmVybGF5UmVmLFxuICAgICAgICBwb3BvdmVyUmVmOiBEclBvcG92ZXJSZWY8VD4sXG4gICAgKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHBvcG92ZXJNb2RlbC5vdmVybGF5Q29uZmlnIHx8IHt9O1xuICAgICAgICBjb25zdCB0YXJnZXRFbGVtZW50ID0gcG9wb3Zlck1vZGVsLnRhcmdldEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGhvc3RFbGVtZW50ID0gdGhpcy5nZXRIb3N0RWxlbWVudChwb3BvdmVyTW9kZWwuaG9zdFJlZik7XG5cbiAgICAgICAgaWYgKGNvbmZpZz8uY2xvc2VPbkJhY2tkcm9wQ2xpY2sgJiYgY29uZmlnPy5oYXNCYWNrZHJvcCkge1xuICAgICAgICAgICAgb3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKCgpID0+IHBvcG92ZXJSZWYuY2xvc2UoKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGFyZ2V0RWxlbWVudCkge1xuICAgICAgICAgICAgdGFyZ2V0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgKCkgPT4gcG9wb3ZlclJlZi5jbG9zZSgpLCB7IG9uY2U6IHRydWUgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocG9wb3Zlck1vZGVsLmFsaWdubWVudCA9PT0gJ2hvc3QnICYmIGhvc3RFbGVtZW50KSB7XG4gICAgICAgICAgICBjb25zdCBhbGlnbm1lbnREaW1lbnNpb24gPSBnZXRBbGlnbm1lbnREaW1lbnNpb24ocG9wb3Zlck1vZGVsLnBvc2l0aW9uKTtcbiAgICAgICAgICAgIGNvbnN0IHJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKChlbnRyaWVzKSA9PiB7XG4gICAgICAgICAgICAgICAgZW50cmllcy5mb3JFYWNoKChob3N0KSA9PlxuICAgICAgICAgICAgICAgICAgICBvdmVybGF5UmVmLnVwZGF0ZVNpemUoeyBbYWxpZ25tZW50RGltZW5zaW9uXTogaG9zdC50YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClbYWxpZ25tZW50RGltZW5zaW9uXSB9KSxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXNpemVPYnNlcnZlci5vYnNlcnZlKGhvc3RFbGVtZW50KTtcbiAgICAgICAgICAgIHBvcG92ZXJSZWYub25DbG9zZS5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSgoKSA9PiByZXNpemVPYnNlcnZlci51bm9ic2VydmUoaG9zdEVsZW1lbnQpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0SG9zdEVsZW1lbnQ8VD4oaG9zdFJlZjogUG9pbnQgfCBIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWY8VD4pOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIGlmICghaG9zdFJlZiB8fCAoPFBvaW50Pmhvc3RSZWYpLngpIHJldHVybiBudWxsO1xuICAgICAgICBpZiAoKDxFbGVtZW50UmVmPmhvc3RSZWYpLm5hdGl2ZUVsZW1lbnQpIHJldHVybiAoPEVsZW1lbnRSZWY+aG9zdFJlZikubmF0aXZlRWxlbWVudDtcbiAgICAgICAgcmV0dXJuIDxIVE1MRWxlbWVudD5ob3N0UmVmO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,104 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { Scenario } from '../../interfaces/scenario';
3
+ import { ScenarioService } from '../../services/scenario.service';
4
+ import { TagTypes } from '../../../models/serverTags';
5
+ import { find as _find } from 'lodash';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../../services/scenario.service";
8
+ import * as i2 from "@angular/common";
9
+ import * as i3 from "../../../dr-inputs/dr-select/dr-select.component";
10
+ import * as i4 from "@angular/forms";
11
+ import * as i5 from "../../../dr-tags-constructor/dr-tags-constructor.component";
12
+ function DrScenarioConfigurationComponent_div_5_Template(rf, ctx) { if (rf & 1) {
13
+ const _r2 = i0.ɵɵgetCurrentView();
14
+ i0.ɵɵelementStart(0, "div", 5)(1, "dr-tags-constructor", 6);
15
+ i0.ɵɵlistener("tagChange", function DrScenarioConfigurationComponent_div_5_Template_dr_tags_constructor_tagChange_1_listener() { i0.ɵɵrestoreView(_r2); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onScenarioDataChange()); })("tagToggle", function DrScenarioConfigurationComponent_div_5_Template_dr_tags_constructor_tagToggle_1_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onScenarioTagToggle($event)); });
16
+ i0.ɵɵelementEnd()();
17
+ } if (rf & 2) {
18
+ const ctx_r0 = i0.ɵɵnextContext();
19
+ i0.ɵɵadvance(1);
20
+ i0.ɵɵproperty("scenarioTagsConfig", ctx_r0.scenarioTags);
21
+ } }
22
+ export class DrScenarioConfigurationComponent {
23
+ set selectedScenario(scenario) {
24
+ if (!Object.values(Scenario).includes(scenario)) {
25
+ this._selectedScenario = Scenario.ACTUALS;
26
+ return;
27
+ }
28
+ this._selectedScenario = scenario;
29
+ }
30
+ get selectedScenario() {
31
+ return this._selectedScenario || Scenario.ACTUALS;
32
+ }
33
+ get scenarioTags() {
34
+ return this._scenarioTags;
35
+ }
36
+ set scenarioTags(tags) {
37
+ this._scenarioTags = tags;
38
+ this.tagNotSupportingDates = _find(tags, { turnOffDateTags: true });
39
+ }
40
+ get dateTag() {
41
+ return _find(this.scenarioTags, { type: TagTypes.DATE });
42
+ }
43
+ constructor(scenarioService) {
44
+ this.scenarioService = scenarioService;
45
+ this._scenarioTags = [];
46
+ this.wholeTagsConfig = [];
47
+ this.isMultipleDimension = false;
48
+ this.isForecastMultipleDimension = false;
49
+ this.scenarioDataChanged = new EventEmitter();
50
+ }
51
+ ngOnInit() {
52
+ this.scenarios = this.scenarioService.scenarios;
53
+ this.scenarioService.initScenarioTags(this.wholeTagsConfig, this.currentTagsConfig, this.isMultipleDimension, this.isForecastMultipleDimension);
54
+ this.scenarioTags = this.scenarioService.getScenarioTagsByScenario(this.selectedScenario);
55
+ }
56
+ onScenarioChange(scenario) {
57
+ this.scenarioTags = this.scenarioService.getScenarioTagsByScenario(scenario);
58
+ this.onScenarioDataChange();
59
+ }
60
+ onScenarioTagToggle(tag) {
61
+ this.scenarioService.tagNotSupportingDatesHandler(tag, this.tagNotSupportingDates, this.dateTag);
62
+ this.scenarioService.tagAcceptableSubTagsHandler(tag, this.dateTag);
63
+ this.onScenarioDataChange();
64
+ }
65
+ onScenarioDataChange() {
66
+ this.scenarioDataChanged.emit({
67
+ scenario: this.selectedScenario,
68
+ tagsConfig: this.scenarioService.getTagsConfigByScenarioTags(this.scenarioTags, this.wholeTagsConfig),
69
+ });
70
+ }
71
+ /** @nocollapse */ static { this.ɵfac = function DrScenarioConfigurationComponent_Factory(t) { return new (t || DrScenarioConfigurationComponent)(i0.ɵɵdirectiveInject(i1.ScenarioService)); }; }
72
+ /** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DrScenarioConfigurationComponent, selectors: [["dr-scenario-configuration"]], inputs: { currentTagsConfig: "currentTagsConfig", wholeTagsConfig: "wholeTagsConfig", selectedScenario: "selectedScenario", isMultipleDimension: "isMultipleDimension", isForecastMultipleDimension: "isForecastMultipleDimension" }, outputs: { scenarioDataChanged: "scenarioDataChanged" }, features: [i0.ɵɵProvidersFeature([ScenarioService])], decls: 6, vars: 3, consts: [[1, "scenario"], [1, "scenario__list"], [1, "scenario__title", "scenario__title-list"], ["placeholder", "Select", 3, "ngModel", "items", "ngModelChange"], ["class", "scenario__tags", 4, "ngIf"], [1, "scenario__tags"], [3, "scenarioTagsConfig", "tagChange", "tagToggle"]], template: function DrScenarioConfigurationComponent_Template(rf, ctx) { if (rf & 1) {
73
+ i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "p", 2);
74
+ i0.ɵɵtext(3, "Scenario");
75
+ i0.ɵɵelementEnd();
76
+ i0.ɵɵelementStart(4, "dr-select", 3);
77
+ i0.ɵɵlistener("ngModelChange", function DrScenarioConfigurationComponent_Template_dr_select_ngModelChange_4_listener($event) { return ctx.selectedScenario = $event; })("ngModelChange", function DrScenarioConfigurationComponent_Template_dr_select_ngModelChange_4_listener($event) { return ctx.onScenarioChange($event); });
78
+ i0.ɵɵelementEnd()();
79
+ i0.ɵɵtemplate(5, DrScenarioConfigurationComponent_div_5_Template, 2, 1, "div", 4);
80
+ i0.ɵɵelementEnd();
81
+ } if (rf & 2) {
82
+ i0.ɵɵadvance(4);
83
+ i0.ɵɵproperty("ngModel", ctx.selectedScenario)("items", ctx.scenarios);
84
+ i0.ɵɵadvance(1);
85
+ i0.ɵɵproperty("ngIf", ctx.scenarioTags == null ? null : ctx.scenarioTags.length);
86
+ } }, dependencies: [i2.NgIf, i3.DrSelectComponent, i4.NgControlStatus, i4.NgModel, i5.DrTagsConstructorComponent], styles: [".scenario__title[_ngcontent-%COMP%]{padding:0;margin:0;color:#0c142b;font-weight:400;font-size:14px;line-height:22px;font-weight:600}.scenario__title-list[_ngcontent-%COMP%]{margin-bottom:4px}.scenario__tags[_ngcontent-%COMP%]{margin-top:24px}[_nghost-%COMP%] .toggle-container__item{padding:2px 8px!important}"], changeDetection: 0 }); }
87
+ }
88
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrScenarioConfigurationComponent, [{
89
+ type: Component,
90
+ args: [{ selector: 'dr-scenario-configuration', changeDetection: ChangeDetectionStrategy.OnPush, providers: [ScenarioService], template: "<div class=\"scenario\">\n <div class=\"scenario__list\">\n <p class=\"scenario__title scenario__title-list\">Scenario</p>\n <dr-select\n [(ngModel)]=\"selectedScenario\"\n placeholder=\"Select\"\n [items]=\"scenarios\"\n (ngModelChange)=\"onScenarioChange($event)\"></dr-select>\n </div>\n <div class=\"scenario__tags\" *ngIf=\"scenarioTags?.length\">\n <dr-tags-constructor\n [scenarioTagsConfig]=\"scenarioTags\"\n (tagChange)=\"onScenarioDataChange()\"\n (tagToggle)=\"onScenarioTagToggle($any($event))\"></dr-tags-constructor>\n </div>\n</div>\n", styles: [".scenario__title{padding:0;margin:0;color:#0c142b;font-weight:400;font-size:14px;line-height:22px;font-weight:600}.scenario__title-list{margin-bottom:4px}.scenario__tags{margin-top:24px}:host::ng-deep .toggle-container__item{padding:2px 8px!important}\n"] }]
91
+ }], function () { return [{ type: i1.ScenarioService }]; }, { currentTagsConfig: [{
92
+ type: Input
93
+ }], wholeTagsConfig: [{
94
+ type: Input
95
+ }], selectedScenario: [{
96
+ type: Input
97
+ }], isMultipleDimension: [{
98
+ type: Input
99
+ }], isForecastMultipleDimension: [{
100
+ type: Input
101
+ }], scenarioDataChanged: [{
102
+ type: Output
103
+ }] }); })();
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItc2NlbmFyaW8tY29uZmlndXJhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1zY2VuYXJpby9jb21wb25lbnRzL2RyLXNjZW5hcmlvLWNvbmZpZ3VyYXRpb24vZHItc2NlbmFyaW8tY29uZmlndXJhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1zY2VuYXJpby9jb21wb25lbnRzL2RyLXNjZW5hcmlvLWNvbmZpZ3VyYXRpb24vZHItc2NlbmFyaW8tY29uZmlndXJhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBa0IsUUFBUSxFQUF3QixNQUFNLDJCQUEyQixDQUFDO0FBQzNGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEVBQVEsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7Ozs7Ozs7OztJQ0tuQyw4QkFBeUQsNkJBQUE7SUFHakQsa01BQWEsZUFBQSw2QkFBc0IsQ0FBQSxJQUFDLDJMQUN2QixlQUFBLGtDQUFpQyxDQUFBLElBRFY7SUFDWSxpQkFBc0IsRUFBQTs7O0lBRnRFLGVBQW1DO0lBQW5DLHdEQUFtQzs7QURFL0MsTUFBTSxPQUFPLGdDQUFnQztJQVN6QyxJQUFvQixnQkFBZ0IsQ0FBQyxRQUFrQjtRQUNuRCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMs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O1lBWE0sZUFBOEI7WUFBOUIsOENBQThCLHdCQUFBO1lBS1QsZUFBMEI7WUFBMUIsZ0ZBQTBCOzs7dUZESTlDLGdDQUFnQztjQVA1QyxTQUFTOzJCQUNJLDJCQUEyQixtQkFHcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLGVBQWUsQ0FBQztrRUFTWixpQkFBaUI7a0JBQWhDLEtBQUs7WUFDVSxlQUFlO2tCQUE5QixLQUFLO1lBQ2MsZ0JBQWdCO2tCQUFuQyxLQUFLO1lBUVUsbUJBQW1CO2tCQUFsQyxLQUFLO1lBQ1UsMkJBQTJCO2tCQUExQyxLQUFLO1lBRVcsbUJBQW1CO2tCQUFuQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElTY2VuYXJpb1RhZ1VpLCBTY2VuYXJpbywgVFNjZW5hcmlvRGF0YUNoYW5nZWQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3NjZW5hcmlvJztcbmltcG9ydCB7IFNjZW5hcmlvU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NjZW5hcmlvLnNlcnZpY2UnO1xuaW1wb3J0IHsgSVRhZywgVGFnVHlwZXMgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvc2VydmVyVGFncyc7XG5pbXBvcnQgeyBmaW5kIGFzIF9maW5kIH0gZnJvbSAnbG9kYXNoJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci1zY2VuYXJpby1jb25maWd1cmF0aW9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZHItc2NlbmFyaW8tY29uZmlndXJhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHItc2NlbmFyaW8tY29uZmlndXJhdGlvbi5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1NjZW5hcmlvU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIERyU2NlbmFyaW9Db25maWd1cmF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBwdWJsaWMgc2NlbmFyaW9zOiBTY2VuYXJpb1tdO1xuXG4gICAgcHJpdmF0ZSBfc2NlbmFyaW9UYWdzOiBJU2NlbmFyaW9UYWdVaVtdID0gW107XG4gICAgcHJpdmF0ZSBfc2VsZWN0ZWRTY2VuYXJpbzogU2NlbmFyaW87XG4gICAgcHJpdmF0ZSB0YWdOb3RTdXBwb3J0aW5nRGF0ZXM6IElTY2VuYXJpb1RhZ1VpO1xuXG4gICAgQElucHV0KCkgcHVibGljIGN1cnJlbnRUYWdzQ29uZmlnOiBJVGFnW107XG4gICAgQElucHV0KCkgcHVibGljIHdob2xlVGFnc0NvbmZpZzogSVRhZ1tdID0gW107XG4gICAgQElucHV0KCkgcHVibGljIHNldCBzZWxlY3RlZFNjZW5hcmlvKHNjZW5hcmlvOiBTY2VuYXJpbykge1xuICAgICAgICBpZiAoIU9iamVjdC52YWx1ZXMoU2NlbmFyaW8pLmluY2x1ZGVzKHNjZW5hcmlvKSkge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRTY2VuYXJpbyA9IFNjZW5hcmlvLkFDVFVBTFM7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zZWxlY3RlZFNjZW5hcmlvID0gc2NlbmFyaW87XG4gICAgfVxuICAgIEBJbnB1dCgpIHB1YmxpYyBpc011bHRpcGxlRGltZW5zaW9uOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgcHVibGljIGlzRm9yZWNhc3RNdWx0aXBsZURpbWVuc2lvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpIHB1YmxpYyBzY2VuYXJpb0RhdGFDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8VFNjZW5hcmlvRGF0YUNoYW5nZWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxUU2NlbmFyaW9EYXRhQ2hhbmdlZD4oKTtcblxuICAgIHB1YmxpYyBnZXQgc2VsZWN0ZWRTY2VuYXJpbygpOiBTY2VuYXJpbyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZFNjZW5hcmlvIHx8IFNjZW5hcmlvLkFDVFVBTFM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzY2VuYXJpb1RhZ3MoKTogSVNjZW5hcmlvVGFnVWlbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zY2VuYXJpb1RhZ3M7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBzY2VuYXJpb1RhZ3ModGFnczogSVNjZW5hcmlvVGFnVWlbXSkge1xuICAgICAgICB0aGlzLl9zY2VuYXJpb1RhZ3MgPSB0YWdzO1xuICAgICAgICB0aGlzLnRhZ05vdFN1cHBvcnRpbmdEYXRlcyA9IF9maW5kKHRhZ3MsIHsgdHVybk9mZkRhdGVUYWdzOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZGF0ZVRhZygpOiBJU2NlbmFyaW9UYWdVaSB7XG4gICAgICAgIHJldHVybiBfZmluZCh0aGlzLnNjZW5hcmlvVGFncywgeyB0eXBlOiBUYWdUeXBlcy5EQVRFIH0pO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgc2NlbmFyaW9TZXJ2aWNlOiBTY2VuYXJpb1NlcnZpY2UpIHt9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2NlbmFyaW9zID0gdGhpcy5zY2VuYXJpb1NlcnZpY2Uuc2NlbmFyaW9zO1xuICAgICAgICB0aGlzLnNjZW5hcmlvU2VydmljZS5pbml0U2NlbmFyaW9UYWdzKHRoaXMud2hvbGVUYWdzQ29uZmlnLCB0aGlzLmN1cnJlbnRUYWdzQ29uZmlnLCB0aGlzLmlzTXVsdGlwbGVEaW1lbnNpb24sIHRoaXMuaXNGb3JlY2FzdE11bHRpcGxlRGltZW5zaW9uKTtcbiAgICAgICAgdGhpcy5zY2VuYXJpb1RhZ3MgPSB0aGlzLnNjZW5hcmlvU2VydmljZS5nZXRTY2VuYXJpb1RhZ3NCeVNjZW5hcmlvKHRoaXMuc2VsZWN0ZWRTY2VuYXJpbyk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uU2NlbmFyaW9DaGFuZ2Uoc2NlbmFyaW86IFNjZW5hcmlvKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2NlbmFyaW9UYWdzID0gdGhpcy5zY2VuYXJpb1NlcnZpY2UuZ2V0U2NlbmFyaW9UYWdzQnlTY2VuYXJpbyhzY2VuYXJpbyk7XG4gICAgICAgIHRoaXMub25TY2VuYXJpb0RhdGFDaGFuZ2UoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25TY2VuYXJpb1RhZ1RvZ2dsZSh0YWc6IElTY2VuYXJpb1RhZ1VpKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2NlbmFyaW9TZXJ2aWNlLnRhZ05vdFN1cHBvcnRpbmdEYXRlc0hhbmRsZXI8SVNjZW5hcmlvVGFnVWk+KHRhZywgdGhpcy50YWdOb3RTdXBwb3J0aW5nRGF0ZXMsIHRoaXMuZGF0ZVRhZyk7XG4gICAgICAgIHRoaXMuc2NlbmFyaW9TZXJ2aWNlLnRhZ0FjY2VwdGFibGVTdWJUYWdzSGFuZGxlcjxJU2NlbmFyaW9UYWdVaT4odGFnLCB0aGlzLmRhdGVUYWcpO1xuICAgICAgICB0aGlzLm9uU2NlbmFyaW9EYXRhQ2hhbmdlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uU2NlbmFyaW9EYXRhQ2hhbmdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNjZW5hcmlvRGF0YUNoYW5nZWQuZW1pdCh7XG4gICAgICAgICAgICBzY2VuYXJpbzogdGhpcy5zZWxlY3RlZFNjZW5hcmlvLFxuICAgICAgICAgICAgdGFnc0NvbmZpZzogdGhpcy5zY2VuYXJpb1NlcnZpY2UuZ2V0VGFnc0NvbmZpZ0J5U2NlbmFyaW9UYWdzKHRoaXMuc2NlbmFyaW9UYWdzLCB0aGlzLndob2xlVGFnc0NvbmZpZyksXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzY2VuYXJpb1wiPlxuICAgIDxkaXYgY2xhc3M9XCJzY2VuYXJpb19fbGlzdFwiPlxuICAgICAgICA8cCBjbGFzcz1cInNjZW5hcmlvX190aXRsZSBzY2VuYXJpb19fdGl0bGUtbGlzdFwiPlNjZW5hcmlvPC9wPlxuICAgICAgICA8ZHItc2VsZWN0XG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkU2NlbmFyaW9cIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3RcIlxuICAgICAgICAgICAgW2l0ZW1zXT1cInNjZW5hcmlvc1wiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblNjZW5hcmlvQ2hhbmdlKCRldmVudClcIj48L2RyLXNlbGVjdD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic2NlbmFyaW9fX3RhZ3NcIiAqbmdJZj1cInNjZW5hcmlvVGFncz8ubGVuZ3RoXCI+XG4gICAgICAgIDxkci10YWdzLWNvbnN0cnVjdG9yXG4gICAgICAgICAgICBbc2NlbmFyaW9UYWdzQ29uZmlnXT1cInNjZW5hcmlvVGFnc1wiXG4gICAgICAgICAgICAodGFnQ2hhbmdlKT1cIm9uU2NlbmFyaW9EYXRhQ2hhbmdlKClcIlxuICAgICAgICAgICAgKHRhZ1RvZ2dsZSk9XCJvblNjZW5hcmlvVGFnVG9nZ2xlKCRhbnkoJGV2ZW50KSlcIj48L2RyLXRhZ3MtY29uc3RydWN0b3I+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,100 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { reduce as _reduce, find as _find, merge as _merge } from 'lodash';
3
+ import { Scenario } from '../../interfaces/scenario';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "../../../dr-tags/dr-tag.component";
7
+ function DrScenarioTagConfigurationComponent_div_0_Template(rf, ctx) { if (rf & 1) {
8
+ const _r3 = i0.ɵɵgetCurrentView();
9
+ i0.ɵɵelementStart(0, "div", 1)(1, "dr-tag", 2);
10
+ i0.ɵɵlistener("tagChange", function DrScenarioTagConfigurationComponent_div_0_Template_dr_tag_tagChange_1_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onTagChange($event)); })("dynamicTagChange", function DrScenarioTagConfigurationComponent_div_0_Template_dr_tag_dynamicTagChange_1_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.onDynamicTagsChange($event)); });
11
+ i0.ɵɵelementEnd()();
12
+ } if (rf & 2) {
13
+ const tagConfig_r1 = ctx.$implicit;
14
+ const ctx_r0 = i0.ɵɵnextContext();
15
+ i0.ɵɵadvance(1);
16
+ i0.ɵɵproperty("tagConfig", tagConfig_r1)("selectedTag", ctx_r0.currentTagsMap[tagConfig_r1.id])("lockedDate", ctx_r0.lockedDates)("fiscalYearStartsFrom", ctx_r0.fiscalYearStartsFrom)("fiscalYearBack", ctx_r0.fiscalYearBack)("tagsConfig", ctx_r0.tagsConfig)("dynamicTagValues", ctx_r0.dynamicTagValues)("connectedTags", ctx_r0.connectedTags[tagConfig_r1.id])("isDynamicTagAddEnabled", ctx_r0.isDynamicAddEnabled)("tagAdditionalSettings", ctx_r0.tagAdditionalSettings);
17
+ } }
18
+ export class DrScenarioTagConfigurationComponent {
19
+ constructor() {
20
+ this.connectedTags = {};
21
+ this.dynamicTagValues = {};
22
+ this.lockedDates = [];
23
+ this.scenarioTagDataChanged = new EventEmitter();
24
+ this.currentTagsMap = {};
25
+ this._currentTags = [];
26
+ this.dynamicTagsToSave = [];
27
+ this.tagsToSave = [];
28
+ }
29
+ set currentTags(tags) {
30
+ this._currentTags = tags;
31
+ this.currentTagsMap = _reduce(tags, (acc, curr) => {
32
+ const tagId = _find(this.tagsConfig, { name: curr.name })?.id;
33
+ if (isNaN(tagId))
34
+ return acc;
35
+ acc[tagId] = curr;
36
+ return acc;
37
+ }, {});
38
+ }
39
+ get currentTags() {
40
+ return this._currentTags;
41
+ }
42
+ ngOnChanges(simpleChanges) {
43
+ this.currentTags = this.currentTags;
44
+ }
45
+ onTagChange($event) {
46
+ const savedTag = _find(this.tagsToSave, { id: $event.id });
47
+ if (savedTag) {
48
+ _merge(savedTag, $event);
49
+ }
50
+ else {
51
+ this.tagsToSave.push($event);
52
+ }
53
+ this.onScenarioTagDataChanged();
54
+ }
55
+ onDynamicTagsChange($event) {
56
+ this.dynamicTagsToSave = $event;
57
+ this.onScenarioTagDataChanged();
58
+ }
59
+ onScenarioTagDataChanged() {
60
+ const tags = [...this.dynamicTagsToSave, ...this.tagsToSave];
61
+ this.scenarioTagDataChanged.emit({
62
+ scenario: this.scenario,
63
+ tagsConfig: this.tagsConfig,
64
+ tags,
65
+ });
66
+ }
67
+ /** @nocollapse */ static { this.ɵfac = function DrScenarioTagConfigurationComponent_Factory(t) { return new (t || DrScenarioTagConfigurationComponent)(); }; }
68
+ /** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DrScenarioTagConfigurationComponent, selectors: [["dr-scenario-tag-configuration"]], inputs: { tagsConfig: "tagsConfig", currentTags: "currentTags", scenario: "scenario", connectedTags: "connectedTags", dynamicTagValues: "dynamicTagValues", tagAdditionalSettings: "tagAdditionalSettings", lockedDates: "lockedDates", fiscalYearStartsFrom: "fiscalYearStartsFrom", fiscalYearBack: "fiscalYearBack", isDynamicAddEnabled: "isDynamicAddEnabled" }, outputs: { scenarioTagDataChanged: "scenarioTagDataChanged" }, features: [i0.ɵɵNgOnChangesFeature], decls: 1, vars: 1, consts: [["class", "scenario-tag-configuration", 4, "ngFor", "ngForOf"], [1, "scenario-tag-configuration"], [3, "tagConfig", "selectedTag", "lockedDate", "fiscalYearStartsFrom", "fiscalYearBack", "tagsConfig", "dynamicTagValues", "connectedTags", "isDynamicTagAddEnabled", "tagAdditionalSettings", "tagChange", "dynamicTagChange"]], template: function DrScenarioTagConfigurationComponent_Template(rf, ctx) { if (rf & 1) {
69
+ i0.ɵɵtemplate(0, DrScenarioTagConfigurationComponent_div_0_Template, 2, 10, "div", 0);
70
+ } if (rf & 2) {
71
+ i0.ɵɵproperty("ngForOf", ctx.tagsConfig);
72
+ } }, dependencies: [i1.NgForOf, i2.DrTagComponent], styles: [".scenario-tag-configuration[_ngcontent-%COMP%]{margin-bottom:24px}.scenario-tag-configuration[_ngcontent-%COMP%]:last-child{margin-bottom:0}"], changeDetection: 0 }); }
73
+ }
74
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrScenarioTagConfigurationComponent, [{
75
+ type: Component,
76
+ args: [{ selector: 'dr-scenario-tag-configuration', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"scenario-tag-configuration\" *ngFor=\"let tagConfig of tagsConfig\">\n <dr-tag\n [tagConfig]=\"tagConfig\"\n [selectedTag]=\"currentTagsMap[tagConfig.id]\"\n [lockedDate]=\"lockedDates\"\n [fiscalYearStartsFrom]=\"fiscalYearStartsFrom\"\n [fiscalYearBack]=\"fiscalYearBack\"\n [tagsConfig]=\"tagsConfig\"\n [dynamicTagValues]=\"dynamicTagValues\"\n [connectedTags]=\"connectedTags[tagConfig.id]\"\n [isDynamicTagAddEnabled]=\"isDynamicAddEnabled\"\n [tagAdditionalSettings]=\"tagAdditionalSettings\"\n (tagChange)=\"onTagChange($event)\"\n (dynamicTagChange)=\"onDynamicTagsChange($event)\"></dr-tag>\n</div>\n", styles: [".scenario-tag-configuration{margin-bottom:24px}.scenario-tag-configuration:last-child{margin-bottom:0}\n"] }]
77
+ }], null, { tagsConfig: [{
78
+ type: Input
79
+ }], currentTags: [{
80
+ type: Input
81
+ }], scenario: [{
82
+ type: Input
83
+ }], connectedTags: [{
84
+ type: Input
85
+ }], dynamicTagValues: [{
86
+ type: Input
87
+ }], tagAdditionalSettings: [{
88
+ type: Input
89
+ }], lockedDates: [{
90
+ type: Input
91
+ }], fiscalYearStartsFrom: [{
92
+ type: Input
93
+ }], fiscalYearBack: [{
94
+ type: Input
95
+ }], isDynamicAddEnabled: [{
96
+ type: Input
97
+ }], scenarioTagDataChanged: [{
98
+ type: Output
99
+ }] }); })();
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItc2NlbmFyaW8tdGFnLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItc2NlbmFyaW8vY29tcG9uZW50cy9kci1zY2VuYXJpby10YWctY29uZmlndXJhdGlvbi9kci1zY2VuYXJpby10YWctY29uZmlndXJhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1zY2VuYXJpby9jb21wb25lbnRzL2RyLXNjZW5hcmlvLXRhZy1jb25maWd1cmF0aW9uL2RyLXNjZW5hcmlvLXRhZy1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRTFILE9BQU8sRUFBRSxNQUFNLElBQUksT0FBTyxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUUsS0FBSyxJQUFJLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMzRSxPQUFPLEVBQUUsUUFBUSxFQUF3QixNQUFNLDJCQUEyQixDQUFDOzs7Ozs7SUNIM0UsOEJBQTZFLGdCQUFBO0lBWXJFLDhMQUFhLGVBQUEsMEJBQW1CLENBQUEsSUFBQywrTEFDYixlQUFBLGtDQUEyQixDQUFBLElBRGQ7SUFDZ0IsaUJBQVMsRUFBQTs7OztJQVgxRCxlQUF1QjtJQUF2Qix3Q0FBdUIsdURBQUEsa0NBQUEscURBQUEseUNBQUEsaUNBQUEsNkNBQUEsd0RBQUEsc0RBQUEsdURBQUE7O0FEVS9CLE1BQU0sT0FBTyxtQ0FBbUM7SUFOaEQ7UUF3Qm9CLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztRQUNuQyxxQkFBZ0IsR0FB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dEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSVRhZywgSVRhZ0ZvclNlcnZlciwgVENvbm5lY3RlZFRhZ3MsIFREeW5hbWljVGFnIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3NlcnZlclRhZ3MnO1xuaW1wb3J0IHsgcmVkdWNlIGFzIF9yZWR1Y2UsIGZpbmQgYXMgX2ZpbmQsIG1lcmdlIGFzIF9tZXJnZSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBTY2VuYXJpbywgVFNjZW5hcmlvRGF0YUNoYW5nZWQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3NjZW5hcmlvJztcbmltcG9ydCB7IElUYWdBZGRpdGlvbmFsU2V0dGluZ3MgfSBmcm9tICcuLi8uLi8uLi9kci10YWdzL2RyLXRhZy50eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZHItc2NlbmFyaW8tdGFnLWNvbmZpZ3VyYXRpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kci1zY2VuYXJpby10YWctY29uZmlndXJhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHItc2NlbmFyaW8tdGFnLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRHJTY2VuYXJpb1RhZ0NvbmZpZ3VyYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIEBJbnB1dCgpIHB1YmxpYyB0YWdzQ29uZmlnOiBJVGFnW107XG4gICAgQElucHV0KCkgcHVibGljIHNldCBjdXJyZW50VGFncyh0YWdzOiBJVGFnRm9yU2VydmVyW10pIHtcbiAgICAgICAgdGhpcy5fY3VycmVudFRhZ3MgPSB0YWdzO1xuICAgICAgICB0aGlzLmN1cnJlbnRUYWdzTWFwID0gX3JlZHVjZShcbiAgICAgICAgICAgIHRhZ3MsXG4gICAgICAgICAgICAoYWNjLCBjdXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGFnSWQgPSBfZmluZCh0aGlzLnRhZ3NDb25maWcsIHsgbmFtZTogY3Vyci5uYW1lIH0pPy5pZDtcbiAgICAgICAgICAgICAgICBpZiAoaXNOYU4odGFnSWQpKSByZXR1cm4gYWNjO1xuXG4gICAgICAgICAgICAgICAgYWNjW3RhZ0lkXSA9IGN1cnI7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7fSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBwdWJsaWMgc2NlbmFyaW86IFNjZW5hcmlvO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBjb25uZWN0ZWRUYWdzOiBUQ29ubmVjdGVkVGFncyA9IHt9O1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkeW5hbWljVGFnVmFsdWVzOiBURHluYW1pY1RhZyA9IHt9O1xuICAgIEBJbnB1dCgpIHB1YmxpYyB0YWdBZGRpdGlvbmFsU2V0dGluZ3M6IFJlY29yZDxzdHJpbmcsIElUYWdBZGRpdGlvbmFsU2V0dGluZ3M+O1xuXG4gICAgQElucHV0KCkgcHVibGljIGxvY2tlZERhdGVzOiBzdHJpbmdbXSB8IG51bWJlcltdID0gW107XG4gICAgQElucHV0KCkgcHVibGljIGZpc2NhbFllYXJTdGFydHNGcm9tOiBudW1iZXI7XG4gICAgQElucHV0KCkgcHVibGljIGZpc2NhbFllYXJCYWNrOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpc0R5bmFtaWNBZGRFbmFibGVkOiBib29sZWFuO1xuXG4gICAgQE91dHB1dCgpIHB1YmxpYyBzY2VuYXJpb1RhZ0RhdGFDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8VFNjZW5hcmlvRGF0YUNoYW5nZWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxUU2NlbmFyaW9EYXRhQ2hhbmdlZD4oKTtcblxuICAgIHB1YmxpYyBjdXJyZW50VGFnc01hcDogeyBbdGFnSWQ6IG51bWJlcl06IElUYWdGb3JTZXJ2ZXIgfSA9IHt9O1xuXG4gICAgcHJpdmF0ZSBfY3VycmVudFRhZ3M6IElUYWdGb3JTZXJ2ZXJbXSA9IFtdO1xuICAgIHByaXZhdGUgZHluYW1pY1RhZ3NUb1NhdmU6IElUYWdGb3JTZXJ2ZXJbXSA9IFtdO1xuICAgIHByaXZhdGUgdGFnc1RvU2F2ZTogSVRhZ0ZvclNlcnZlcltdID0gW107XG5cbiAgICBwdWJsaWMgZ2V0IGN1cnJlbnRUYWdzKCk6IElUYWdGb3JTZXJ2ZXJbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jdXJyZW50VGFncztcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoc2ltcGxlQ2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJlbnRUYWdzID0gdGhpcy5jdXJyZW50VGFncztcbiAgICB9XG5cbiAgICBwdWJsaWMgb25UYWdDaGFuZ2UoJGV2ZW50OiBJVGFnRm9yU2VydmVyKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNhdmVkVGFnID0gX2ZpbmQodGhpcy50YWdzVG9TYXZlLCB7IGlkOiAkZXZlbnQuaWQgfSk7XG5cbiAgICAgICAgaWYgKHNhdmVkVGFnKSB7XG4gICAgICAgICAgICBfbWVyZ2Uoc2F2ZWRUYWcsICRldmVudCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRhZ3NUb1NhdmUucHVzaCgkZXZlbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vblNjZW5hcmlvVGFnRGF0YUNoYW5nZWQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25EeW5hbWljVGFnc0NoYW5nZSgkZXZlbnQ6IElUYWdGb3JTZXJ2ZXJbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLmR5bmFtaWNUYWdzVG9TYXZlID0gJGV2ZW50O1xuICAgICAgICB0aGlzLm9uU2NlbmFyaW9UYWdEYXRhQ2hhbmdlZCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblNjZW5hcmlvVGFnRGF0YUNoYW5nZWQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRhZ3MgPSBbLi4udGhpcy5keW5hbWljVGFnc1RvU2F2ZSwgLi4udGhpcy50YWdzVG9TYXZlXTtcbiAgICAgICAgdGhpcy5zY2VuYXJpb1RhZ0RhdGFDaGFuZ2VkLmVtaXQoe1xuICAgICAgICAgICAgc2NlbmFyaW86IHRoaXMuc2NlbmFyaW8sXG4gICAgICAgICAgICB0YWdzQ29uZmlnOiB0aGlzLnRhZ3NDb25maWcsXG4gICAgICAgICAgICB0YWdzLFxuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2NlbmFyaW8tdGFnLWNvbmZpZ3VyYXRpb25cIiAqbmdGb3I9XCJsZXQgdGFnQ29uZmlnIG9mIHRhZ3NDb25maWdcIj5cbiAgICA8ZHItdGFnXG4gICAgICAgIFt0YWdDb25maWddPVwidGFnQ29uZmlnXCJcbiAgICAgICAgW3NlbGVjdGVkVGFnXT1cImN1cnJlbnRUYWdzTWFwW3RhZ0NvbmZpZy5pZF1cIlxuICAgICAgICBbbG9ja2VkRGF0ZV09XCJsb2NrZWREYXRlc1wiXG4gICAgICAgIFtmaXNjYWxZZWFyU3RhcnRzRnJvbV09XCJmaXNjYWxZZWFyU3RhcnRzRnJvbVwiXG4gICAgICAgIFtmaXNjYWxZZWFyQmFja109XCJmaXNjYWxZZWFyQmFja1wiXG4gICAgICAgIFt0YWdzQ29uZmlnXT1cInRhZ3NDb25maWdcIlxuICAgICAgICBbZHluYW1pY1RhZ1ZhbHVlc109XCJkeW5hbWljVGFnVmFsdWVzXCJcbiAgICAgICAgW2Nvbm5lY3RlZFRhZ3NdPVwiY29ubmVjdGVkVGFnc1t0YWdDb25maWcuaWRdXCJcbiAgICAgICAgW2lzRHluYW1pY1RhZ0FkZEVuYWJsZWRdPVwiaXNEeW5hbWljQWRkRW5hYmxlZFwiXG4gICAgICAgIFt0YWdBZGRpdGlvbmFsU2V0dGluZ3NdPVwidGFnQWRkaXRpb25hbFNldHRpbmdzXCJcbiAgICAgICAgKHRhZ0NoYW5nZSk9XCJvblRhZ0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKGR5bmFtaWNUYWdDaGFuZ2UpPVwib25EeW5hbWljVGFnc0NoYW5nZSgkZXZlbnQpXCI+PC9kci10YWc+XG48L2Rpdj5cbiJdfQ==