@datarailsshared/datarailsshared 1.4.204-rocket → 1.4.217

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 (365) hide show
  1. package/_datarailsshared.styles.css +4 -4
  2. package/assets/styles/_styles.scss +2 -2
  3. package/assets/styles/colors.scss +4 -1
  4. package/bundles/datarailsshared-datarailsshared.umd.js +8108 -0
  5. package/bundles/datarailsshared-datarailsshared.umd.js.map +1 -0
  6. package/datarailsshared-datarailsshared-1.4.217.tgz +0 -0
  7. package/datarailsshared-datarailsshared.d.ts +34 -0
  8. package/datarailsshared-datarailsshared.metadata.json +1 -0
  9. package/esm2015/datarailsshared-datarailsshared.js +35 -0
  10. package/esm2015/lib/date-tags/date-tag.component.js +73 -0
  11. package/esm2015/lib/date-tags/date-tag.module.js +36 -0
  12. package/esm2015/lib/date-tags/day-tag/day-tag.component.js +77 -0
  13. package/esm2015/lib/date-tags/forecast-tag/forecast-tag.component.js +153 -0
  14. package/esm2015/lib/date-tags/month-tag/month-tag.component.js +80 -0
  15. package/esm2015/lib/date-tags/quarter-tag/quarter-tag.component.js +105 -0
  16. package/esm2015/lib/date-tags/week-tag/week-tag.component.js +84 -0
  17. package/esm2015/lib/date-tags/year-tag/year-tag.component.js +78 -0
  18. package/esm2015/lib/dr-accordion/accordion-item-body.component.js +55 -0
  19. package/esm2015/lib/dr-accordion/accordion-item-header.component.js +77 -0
  20. package/esm2015/lib/dr-accordion/accordion-item.component.js +123 -0
  21. package/esm2015/lib/dr-accordion/accordion.component.js +43 -0
  22. package/esm2015/lib/dr-accordion/accordion.module.js +23 -0
  23. package/esm2015/lib/dr-alert/dr-alert.component.js +35 -0
  24. package/esm2015/lib/dr-alert/dr-alert.module.js +18 -0
  25. package/esm2015/lib/dr-alert/enums/dr-alert-theme.enum.js +10 -0
  26. package/esm2015/lib/dr-avatar/dr-avatar.component.js +44 -0
  27. package/esm2015/lib/dr-avatar/dr-avatar.module.js +26 -0
  28. package/esm2015/lib/dr-avatar/dr-avatar.pipe.js +16 -0
  29. package/esm2015/lib/dr-badge-status/dr-badge-status.component.js +25 -0
  30. package/esm2015/lib/dr-badge-status/dr-badge-status.module.js +20 -0
  31. package/esm2015/lib/dr-chat/chat.component.js +119 -0
  32. package/esm2015/lib/dr-chat/chat.module.js +41 -0
  33. package/esm2015/lib/dr-chat/dr-chat-form/chat-form.component.js +155 -0
  34. package/esm2015/lib/dr-chat/dr-chat-message/chat-message.component.js +71 -0
  35. package/esm2015/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive.js +49 -0
  36. package/esm2015/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.service.js +23 -0
  37. package/esm2015/lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component.js +47 -0
  38. package/esm2015/lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component.js +18 -0
  39. package/esm2015/lib/dr-chat/dr-chat-suggestions/chat-suggestions.component.js +87 -0
  40. package/esm2015/lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component.js +15 -0
  41. package/esm2015/lib/dr-details-list/dr-details-list.component.js +65 -0
  42. package/esm2015/lib/dr-details-list/dr-details-list.module.js +16 -0
  43. package/esm2015/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.js +70 -0
  44. package/esm2015/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.js +92 -0
  45. package/esm2015/lib/dr-dialog/dialog.module.js +34 -0
  46. package/esm2015/lib/dr-dialog/interfaces/dialog-data.js +25 -0
  47. package/esm2015/lib/dr-dialog/services/dialog.service.js +78 -0
  48. package/esm2015/lib/dr-dropdown/dr-dropdown-item-show.pipe.js +12 -0
  49. package/esm2015/lib/dr-dropdown/dr-dropdown-position.directive.js +104 -0
  50. package/esm2015/lib/dr-dropdown/dr-dropdown.component.js +114 -0
  51. package/esm2015/lib/dr-dropdown/dr-dropdown.directive.js +104 -0
  52. package/esm2015/lib/dr-dropdown/dr-dropdown.module.js +34 -0
  53. package/esm2015/lib/dr-dropdown/dr-dropdown.service.js +24 -0
  54. package/esm2015/lib/dr-dynamic-tag/dr-dynamic-tag.component.js +103 -0
  55. package/esm2015/lib/dr-dynamic-tag/dr-dynamic-tag.module.js +19 -0
  56. package/esm2015/lib/dr-error/dr-error.component.js +54 -0
  57. package/esm2015/lib/dr-error/dr-error.module.js +22 -0
  58. package/esm2015/lib/dr-inputs/button/button.component.js +39 -0
  59. package/esm2015/lib/dr-inputs/checkbox/checkbox.component.js +65 -0
  60. package/esm2015/lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive.js +47 -0
  61. package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.js +216 -0
  62. package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.js +181 -0
  63. package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.js +183 -0
  64. package/esm2015/lib/dr-inputs/date-pickers/dr-show-timeframe.pipe.js +12 -0
  65. package/esm2015/lib/dr-inputs/date-pickers/services/dr-date-picker.service.js +194 -0
  66. package/esm2015/lib/dr-inputs/dr-input/dr-input.component.js +194 -0
  67. package/esm2015/lib/dr-inputs/dr-inputs.module.js +66 -0
  68. package/esm2015/lib/dr-inputs/dr-model-debounce-change.directive.js +29 -0
  69. package/esm2015/lib/dr-inputs/dr-select/dr-select.component.js +121 -0
  70. package/esm2015/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.js +74 -0
  71. package/esm2015/lib/dr-inputs/dr-toggle/dr-toggle.component.js +68 -0
  72. package/esm2015/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.js +63 -0
  73. package/esm2015/lib/dr-inputs/radio-button/radio-button.component.js +73 -0
  74. package/esm2015/lib/dr-inputs/radio-button/radio-group.component.js +157 -0
  75. package/esm2015/lib/dr-layout/dr-layout-body.component.js +13 -0
  76. package/esm2015/lib/dr-layout/dr-layout-header.component.js +17 -0
  77. package/esm2015/lib/dr-layout/dr-layout.component.js +14 -0
  78. package/esm2015/lib/dr-layout/dr-layout.module.js +20 -0
  79. package/esm2015/lib/dr-popover/dr-popover.component.js +106 -0
  80. package/esm2015/lib/dr-popover/dr-popover.directive.js +84 -0
  81. package/esm2015/lib/dr-popover/dr-popover.module.js +23 -0
  82. package/esm2015/lib/dr-popover/dr-popover.service.js +106 -0
  83. package/esm2015/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.js +102 -0
  84. package/esm2015/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.js +74 -0
  85. package/esm2015/lib/dr-scenario/consts/scenario-tags-config.js +73 -0
  86. package/esm2015/lib/dr-scenario/dr-scenario.module.js +28 -0
  87. package/esm2015/lib/dr-scenario/services/scenario.service.js +167 -0
  88. package/esm2015/lib/dr-spinner/dr-spinner.component.js +18 -0
  89. package/esm2015/lib/dr-spinner/dr-spinner.directive.js +56 -0
  90. package/esm2015/lib/dr-spinner/dr-spinner.module.js +18 -0
  91. package/esm2015/lib/dr-tabs/dr-tab.component.js +26 -0
  92. package/esm2015/lib/dr-tabs/dr-tabs.component.js +35 -0
  93. package/esm2015/lib/dr-tabs/dr-tabs.module.js +32 -0
  94. package/esm2015/lib/dr-tags/dr-tag.component.js +177 -0
  95. package/esm2015/lib/dr-tags/dr-tag.module.js +24 -0
  96. package/esm2015/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.js +19 -0
  97. package/esm2015/lib/dr-tooltip/components/tooltip-info-simple/tooltip-info-simple.component.js +18 -0
  98. package/esm2015/lib/dr-tooltip/components/tooltip-no-body/tooltip-no-body.component.js +20 -0
  99. package/esm2015/lib/dr-tooltip/components/tooltip-process-default/tooltip-process-default.component.js +34 -0
  100. package/esm2015/lib/dr-tooltip/dr-tooltip.component.js +40 -0
  101. package/esm2015/lib/dr-tooltip/dr-tooltip.directive.js +147 -0
  102. package/esm2015/lib/dr-tooltip/dr-tooltip.module.js +35 -0
  103. package/esm2015/lib/dr-treeview/components/treeview/treeview.component.js +210 -0
  104. package/esm2015/lib/dr-treeview/components/treeview-item/treeview-item.component.js +58 -0
  105. package/esm2015/lib/dr-treeview/dr-tree-view.module.js +38 -0
  106. package/esm2015/lib/dr-treeview/helpers/treeview-event-parser.js +97 -0
  107. package/esm2015/lib/dr-treeview/models/treeview-config.js +22 -0
  108. package/esm2015/lib/dr-treeview/models/treeview-i18n.js +42 -0
  109. package/esm2015/lib/dr-treeview/pipes/treeview.pipe.js +17 -0
  110. package/esm2015/lib/list-tags/list-tag.component.js +37 -0
  111. package/esm2015/lib/list-tags/list-tag.module.js +23 -0
  112. package/esm2015/lib/models/chat.js +36 -0
  113. package/{esm2022/lib/models/datePicker.mjs → esm2015/lib/models/datePicker.js} +1 -1
  114. package/esm2015/lib/models/popover.js +27 -0
  115. package/esm2015/lib/stepper/stepper.component.js +55 -0
  116. package/esm2015/lib/stepper/stepper.module.js +17 -0
  117. package/esm2015/lib/utils/dr-shared-utils.js +47 -0
  118. package/esm2015/public-api.js +96 -0
  119. package/fesm2015/datarailsshared-datarailsshared.js +6938 -0
  120. package/fesm2015/datarailsshared-datarailsshared.js.map +1 -0
  121. package/lib/date-tags/date-tag.component.d.ts +16 -4
  122. package/lib/date-tags/date-tag.module.d.ts +2 -19
  123. package/lib/date-tags/day-tag/day-tag.component.d.ts +1 -4
  124. package/lib/date-tags/forecast-tag/forecast-tag.component.d.ts +2 -5
  125. package/lib/date-tags/month-tag/month-tag.component.d.ts +1 -4
  126. package/lib/date-tags/quarter-tag/quarter-tag.component.d.ts +1 -4
  127. package/lib/date-tags/week-tag/week-tag.component.d.ts +1 -4
  128. package/lib/date-tags/year-tag/year-tag.component.d.ts +1 -4
  129. package/lib/dr-accordion/accordion-item-body.component.d.ts +0 -3
  130. package/lib/dr-accordion/accordion-item-header.component.d.ts +0 -3
  131. package/lib/dr-accordion/accordion-item.component.d.ts +0 -3
  132. package/lib/dr-accordion/accordion.component.d.ts +0 -3
  133. package/lib/dr-accordion/accordion.module.d.ts +0 -9
  134. package/lib/dr-alert/dr-alert.component.d.ts +8 -0
  135. package/lib/dr-alert/dr-alert.module.d.ts +2 -0
  136. package/lib/dr-alert/enums/dr-alert-theme.enum.d.ts +7 -0
  137. package/lib/dr-avatar/dr-avatar.component.d.ts +0 -3
  138. package/lib/dr-avatar/dr-avatar.module.d.ts +0 -9
  139. package/lib/dr-avatar/dr-avatar.pipe.d.ts +0 -3
  140. package/lib/dr-badge-status/dr-badge-status.component.d.ts +0 -3
  141. package/lib/dr-badge-status/dr-badge-status.module.d.ts +0 -7
  142. package/lib/dr-chat/chat.component.d.ts +0 -3
  143. package/lib/dr-chat/chat.module.d.ts +0 -17
  144. package/lib/dr-chat/dr-chat-form/chat-form.component.d.ts +0 -3
  145. package/lib/dr-chat/dr-chat-message/chat-message.component.d.ts +0 -3
  146. package/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive.d.ts +0 -3
  147. package/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.service.d.ts +0 -3
  148. package/lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component.d.ts +0 -3
  149. package/lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component.d.ts +0 -3
  150. package/lib/dr-chat/dr-chat-suggestions/chat-suggestions.component.d.ts +0 -3
  151. package/lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component.d.ts +0 -3
  152. package/lib/dr-details-list/dr-details-list.component.d.ts +0 -3
  153. package/lib/dr-details-list/dr-details-list.module.d.ts +0 -6
  154. package/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.d.ts +1 -4
  155. package/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.d.ts +2 -5
  156. package/lib/dr-dialog/dialog.module.d.ts +0 -12
  157. package/lib/dr-dialog/interfaces/dialog-data.d.ts +7 -7
  158. package/lib/dr-dialog/services/dialog.service.d.ts +1 -4
  159. package/lib/dr-dropdown/dr-dropdown-item-show.pipe.d.ts +0 -3
  160. package/lib/dr-dropdown/dr-dropdown-position.directive.d.ts +0 -3
  161. package/lib/dr-dropdown/dr-dropdown.component.d.ts +0 -3
  162. package/lib/dr-dropdown/dr-dropdown.directive.d.ts +0 -3
  163. package/lib/dr-dropdown/dr-dropdown.module.d.ts +0 -10
  164. package/lib/dr-dropdown/dr-dropdown.service.d.ts +0 -3
  165. package/lib/dr-dynamic-tag/dr-dynamic-tag.component.d.ts +0 -3
  166. package/lib/dr-dynamic-tag/dr-dynamic-tag.module.d.ts +0 -8
  167. package/lib/dr-error/dr-error.component.d.ts +3 -7
  168. package/lib/dr-error/dr-error.module.d.ts +0 -8
  169. package/lib/dr-inputs/button/button.component.d.ts +1 -4
  170. package/lib/dr-inputs/checkbox/checkbox.component.d.ts +0 -3
  171. package/lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive.d.ts +0 -3
  172. package/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.d.ts +0 -3
  173. package/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.d.ts +0 -3
  174. package/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.d.ts +8 -4
  175. package/lib/dr-inputs/date-pickers/dr-show-timeframe.pipe.d.ts +2 -4
  176. package/lib/dr-inputs/date-pickers/services/dr-date-picker.service.d.ts +0 -3
  177. package/lib/dr-inputs/dr-input/dr-input.component.d.ts +0 -3
  178. package/lib/dr-inputs/dr-inputs.module.d.ts +0 -25
  179. package/lib/dr-inputs/dr-model-debounce-change.directive.d.ts +0 -3
  180. package/lib/dr-inputs/dr-select/dr-select.component.d.ts +1 -3
  181. package/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.d.ts +0 -3
  182. package/lib/dr-inputs/dr-toggle/dr-toggle.component.d.ts +0 -3
  183. package/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.d.ts +0 -3
  184. package/lib/dr-inputs/radio-button/radio-button.component.d.ts +0 -3
  185. package/lib/dr-inputs/radio-button/radio-group.component.d.ts +0 -3
  186. package/lib/dr-layout/dr-layout-body.component.d.ts +0 -3
  187. package/lib/dr-layout/dr-layout-header.component.d.ts +0 -3
  188. package/lib/dr-layout/dr-layout.component.d.ts +0 -3
  189. package/lib/dr-layout/dr-layout.module.d.ts +0 -8
  190. package/lib/dr-popover/dr-popover.component.d.ts +4 -8
  191. package/lib/dr-popover/dr-popover.directive.d.ts +0 -3
  192. package/lib/dr-popover/dr-popover.module.d.ts +0 -7
  193. package/lib/dr-popover/dr-popover.service.d.ts +0 -3
  194. package/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.d.ts +0 -3
  195. package/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.d.ts +0 -3
  196. package/lib/dr-scenario/dr-scenario.module.d.ts +0 -10
  197. package/lib/dr-scenario/interfaces/scenario.d.ts +3 -3
  198. package/lib/dr-scenario/services/scenario.service.d.ts +0 -3
  199. package/lib/dr-spinner/dr-spinner.component.d.ts +0 -3
  200. package/lib/dr-spinner/dr-spinner.directive.d.ts +0 -3
  201. package/lib/dr-spinner/dr-spinner.module.d.ts +0 -7
  202. package/lib/dr-tabs/dr-tab.component.d.ts +0 -3
  203. package/lib/dr-tabs/dr-tabs.component.d.ts +3 -11
  204. package/lib/dr-tabs/dr-tabs.module.d.ts +0 -11
  205. package/lib/dr-tags/dr-tag.component.d.ts +0 -3
  206. package/lib/dr-tags/dr-tag.module.d.ts +0 -9
  207. package/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.d.ts +0 -3
  208. package/lib/dr-tooltip/components/tooltip-info-simple/tooltip-info-simple.component.d.ts +0 -3
  209. package/lib/dr-tooltip/components/tooltip-no-body/tooltip-no-body.component.d.ts +0 -3
  210. package/lib/dr-tooltip/components/tooltip-process-default/tooltip-process-default.component.d.ts +0 -3
  211. package/lib/dr-tooltip/dr-tooltip.component.d.ts +1 -4
  212. package/lib/dr-tooltip/dr-tooltip.directive.d.ts +0 -3
  213. package/lib/dr-tooltip/dr-tooltip.module.d.ts +0 -11
  214. package/lib/dr-tooltip/interfaces/tooltip-component-context.d.ts +1 -1
  215. package/lib/dr-treeview/components/treeview/treeview.component.d.ts +0 -3
  216. package/lib/dr-treeview/components/treeview-item/treeview-item.component.d.ts +0 -3
  217. package/lib/dr-treeview/dr-tree-view.module.d.ts +0 -9
  218. package/lib/dr-treeview/helpers/treeview-event-parser.d.ts +0 -9
  219. package/lib/dr-treeview/models/treeview-config.d.ts +0 -3
  220. package/lib/dr-treeview/models/treeview-i18n.d.ts +0 -5
  221. package/lib/dr-treeview/pipes/treeview.pipe.d.ts +0 -3
  222. package/lib/list-tags/list-tag.component.d.ts +0 -3
  223. package/lib/list-tags/list-tag.module.d.ts +0 -8
  224. package/lib/models/chat.d.ts +2 -2
  225. package/lib/models/datePicker.d.ts +3 -10
  226. package/lib/models/dropdown.d.ts +1 -1
  227. package/lib/models/popover.d.ts +1 -1
  228. package/lib/models/serverTags.d.ts +4 -4
  229. package/lib/stepper/interfaces/stepper.d.ts +1 -1
  230. package/lib/stepper/stepper.component.d.ts +0 -3
  231. package/lib/stepper/stepper.module.d.ts +0 -7
  232. package/package.json +15 -27
  233. package/public-api.d.ts +3 -27
  234. package/datarailsshared-datarailsshared-1.4.204-rocket.tgz +0 -0
  235. package/esm2022/datarailsshared-datarailsshared.mjs +0 -5
  236. package/esm2022/lib/date-tags/any-tag.component.mjs +0 -44
  237. package/esm2022/lib/date-tags/date-tag.component.mjs +0 -47
  238. package/esm2022/lib/date-tags/date-tag.module.mjs +0 -66
  239. package/esm2022/lib/date-tags/day-tag/day-tag.component.mjs +0 -82
  240. package/esm2022/lib/date-tags/forecast-tag/forecast-tag.component.mjs +0 -159
  241. package/esm2022/lib/date-tags/month-tag/month-tag.component.mjs +0 -87
  242. package/esm2022/lib/date-tags/quarter-tag/quarter-tag.component.mjs +0 -106
  243. package/esm2022/lib/date-tags/week-tag/week-tag.component.mjs +0 -89
  244. package/esm2022/lib/date-tags/year-tag/year-tag.component.mjs +0 -83
  245. package/esm2022/lib/directives/click-outside/click-outside.directive.mjs +0 -92
  246. package/esm2022/lib/directives/click-outside/click-outside.module.mjs +0 -18
  247. package/esm2022/lib/dr-accordion/accordion-item-body.component.mjs +0 -58
  248. package/esm2022/lib/dr-accordion/accordion-item-header.component.mjs +0 -108
  249. package/esm2022/lib/dr-accordion/accordion-item.component.mjs +0 -138
  250. package/esm2022/lib/dr-accordion/accordion.component.mjs +0 -42
  251. package/esm2022/lib/dr-accordion/accordion.module.mjs +0 -34
  252. package/esm2022/lib/dr-avatar/dr-avatar.component.mjs +0 -48
  253. package/esm2022/lib/dr-avatar/dr-avatar.module.mjs +0 -37
  254. package/esm2022/lib/dr-avatar/dr-avatar.pipe.mjs +0 -20
  255. package/esm2022/lib/dr-badge-status/dr-badge-status.component.mjs +0 -27
  256. package/esm2022/lib/dr-badge-status/dr-badge-status.module.mjs +0 -27
  257. package/esm2022/lib/dr-chat/chat.component.mjs +0 -138
  258. package/esm2022/lib/dr-chat/chat.module.mjs +0 -68
  259. package/esm2022/lib/dr-chat/dr-chat-form/chat-form.component.mjs +0 -168
  260. package/esm2022/lib/dr-chat/dr-chat-message/chat-message.component.mjs +0 -89
  261. package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive.mjs +0 -47
  262. package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.service.mjs +0 -26
  263. package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component.mjs +0 -49
  264. package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component.mjs +0 -17
  265. package/esm2022/lib/dr-chat/dr-chat-suggestions/chat-suggestions.component.mjs +0 -88
  266. package/esm2022/lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component.mjs +0 -13
  267. package/esm2022/lib/dr-details-list/dr-details-list.component.mjs +0 -79
  268. package/esm2022/lib/dr-details-list/dr-details-list.module.mjs +0 -21
  269. package/esm2022/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.mjs +0 -76
  270. package/esm2022/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.mjs +0 -97
  271. package/esm2022/lib/dr-dialog/dialog.module.mjs +0 -51
  272. package/esm2022/lib/dr-dialog/interfaces/dialog-data.mjs +0 -25
  273. package/esm2022/lib/dr-dialog/services/dialog.service.mjs +0 -77
  274. package/esm2022/lib/dr-dropdown/dr-dropdown-item-show.pipe.mjs +0 -16
  275. package/esm2022/lib/dr-dropdown/dr-dropdown-position.directive.mjs +0 -104
  276. package/esm2022/lib/dr-dropdown/dr-dropdown.component.mjs +0 -116
  277. package/esm2022/lib/dr-dropdown/dr-dropdown.directive.mjs +0 -117
  278. package/esm2022/lib/dr-dropdown/dr-dropdown.module.mjs +0 -49
  279. package/esm2022/lib/dr-dropdown/dr-dropdown.service.mjs +0 -25
  280. package/esm2022/lib/dr-dynamic-tag/dr-dynamic-tag.component.mjs +0 -112
  281. package/esm2022/lib/dr-dynamic-tag/dr-dynamic-tag.module.mjs +0 -28
  282. package/esm2022/lib/dr-error/dr-error.component.mjs +0 -67
  283. package/esm2022/lib/dr-error/dr-error.module.mjs +0 -31
  284. package/esm2022/lib/dr-inputs/button/button.component.mjs +0 -66
  285. package/esm2022/lib/dr-inputs/checkbox/checkbox.component.mjs +0 -65
  286. package/esm2022/lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive.mjs +0 -64
  287. package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.mjs +0 -226
  288. package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.mjs +0 -190
  289. package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.mjs +0 -186
  290. package/esm2022/lib/dr-inputs/date-pickers/dr-show-timeframe.pipe.mjs +0 -16
  291. package/esm2022/lib/dr-inputs/date-pickers/services/dr-date-picker.service.mjs +0 -195
  292. package/esm2022/lib/dr-inputs/dr-input/dr-input.component.mjs +0 -218
  293. package/esm2022/lib/dr-inputs/dr-inputs.module.mjs +0 -108
  294. package/esm2022/lib/dr-inputs/dr-model-debounce-change.directive.mjs +0 -31
  295. package/esm2022/lib/dr-inputs/dr-select/dr-select.component.mjs +0 -159
  296. package/esm2022/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.mjs +0 -79
  297. package/esm2022/lib/dr-inputs/dr-toggle/dr-toggle.component.mjs +0 -72
  298. package/esm2022/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.mjs +0 -66
  299. package/esm2022/lib/dr-inputs/radio-button/radio-button.component.mjs +0 -78
  300. package/esm2022/lib/dr-inputs/radio-button/radio-group.component.mjs +0 -173
  301. package/esm2022/lib/dr-layout/dr-layout-body.component.mjs +0 -16
  302. package/esm2022/lib/dr-layout/dr-layout-header.component.mjs +0 -24
  303. package/esm2022/lib/dr-layout/dr-layout.component.mjs +0 -13
  304. package/esm2022/lib/dr-layout/dr-layout.module.mjs +0 -29
  305. package/esm2022/lib/dr-popover/dr-popover.component.mjs +0 -126
  306. package/esm2022/lib/dr-popover/dr-popover.directive.mjs +0 -110
  307. package/esm2022/lib/dr-popover/dr-popover.module.mjs +0 -30
  308. package/esm2022/lib/dr-popover/dr-popover.service.mjs +0 -107
  309. package/esm2022/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.mjs +0 -105
  310. package/esm2022/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.mjs +0 -83
  311. package/esm2022/lib/dr-scenario/consts/scenario-tags-config.mjs +0 -81
  312. package/esm2022/lib/dr-scenario/dr-scenario.module.mjs +0 -41
  313. package/esm2022/lib/dr-scenario/services/scenario.service.mjs +0 -165
  314. package/esm2022/lib/dr-spinner/dr-spinner.component.mjs +0 -17
  315. package/esm2022/lib/dr-spinner/dr-spinner.directive.mjs +0 -59
  316. package/esm2022/lib/dr-spinner/dr-spinner.module.mjs +0 -23
  317. package/esm2022/lib/dr-tabs/dr-tab.component.mjs +0 -37
  318. package/esm2022/lib/dr-tabs/dr-tabs.component.mjs +0 -70
  319. package/esm2022/lib/dr-tabs/dr-tabs.module.mjs +0 -49
  320. package/esm2022/lib/dr-tags/dr-tag.component.mjs +0 -188
  321. package/esm2022/lib/dr-tags/dr-tag.module.mjs +0 -35
  322. package/esm2022/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.mjs +0 -18
  323. package/esm2022/lib/dr-tooltip/components/tooltip-info-simple/tooltip-info-simple.component.mjs +0 -16
  324. package/esm2022/lib/dr-tooltip/components/tooltip-no-body/tooltip-no-body.component.mjs +0 -18
  325. package/esm2022/lib/dr-tooltip/components/tooltip-process-default/tooltip-process-default.component.mjs +0 -19
  326. package/esm2022/lib/dr-tooltip/dr-tooltip.component.mjs +0 -48
  327. package/esm2022/lib/dr-tooltip/dr-tooltip.directive.mjs +0 -156
  328. package/esm2022/lib/dr-tooltip/dr-tooltip.module.mjs +0 -48
  329. package/esm2022/lib/dr-treeview/components/treeview/treeview.component.mjs +0 -215
  330. package/esm2022/lib/dr-treeview/components/treeview-item/treeview-item.component.mjs +0 -60
  331. package/esm2022/lib/dr-treeview/dr-tree-view.module.mjs +0 -48
  332. package/esm2022/lib/dr-treeview/helpers/treeview-event-parser.mjs +0 -106
  333. package/esm2022/lib/dr-treeview/models/treeview-config.mjs +0 -25
  334. package/esm2022/lib/dr-treeview/models/treeview-i18n.mjs +0 -47
  335. package/esm2022/lib/dr-treeview/pipes/treeview.pipe.mjs +0 -21
  336. package/esm2022/lib/list-tags/list-tag.component.mjs +0 -42
  337. package/esm2022/lib/list-tags/list-tag.module.mjs +0 -34
  338. package/esm2022/lib/models/chat.mjs +0 -36
  339. package/esm2022/lib/models/popover.mjs +0 -27
  340. package/esm2022/lib/stepper/stepper.component.mjs +0 -63
  341. package/esm2022/lib/stepper/stepper.module.mjs +0 -24
  342. package/esm2022/lib/utils/dr-shared-utils.mjs +0 -47
  343. package/esm2022/public-api.mjs +0 -120
  344. package/fesm2022/datarailsshared-datarailsshared.mjs +0 -7574
  345. package/fesm2022/datarailsshared-datarailsshared.mjs.map +0 -1
  346. package/index.d.ts +0 -5
  347. package/lib/date-tags/any-tag.component.d.ts +0 -20
  348. package/lib/directives/click-outside/click-outside.directive.d.ts +0 -23
  349. package/lib/directives/click-outside/click-outside.module.d.ts +0 -8
  350. /package/{esm2022/lib/dr-inputs/dr-toggle-button/toggle-button-mode.mjs → esm2015/lib/dr-inputs/dr-toggle-button/toggle-button-mode.js} +0 -0
  351. /package/{esm2022/lib/dr-popover/dr-popover-ref.mjs → esm2015/lib/dr-popover/dr-popover-ref.js} +0 -0
  352. /package/{esm2022/lib/dr-scenario/interfaces/scenario.mjs → esm2015/lib/dr-scenario/interfaces/scenario.js} +0 -0
  353. /package/{esm2022/lib/dr-tooltip/enums/tooltip-position.enum.mjs → esm2015/lib/dr-tooltip/enums/tooltip-position.enum.js} +0 -0
  354. /package/{esm2022/lib/dr-tooltip/interfaces/tooltip-component-context.mjs → esm2015/lib/dr-tooltip/interfaces/tooltip-component-context.js} +0 -0
  355. /package/{esm2022/lib/dr-treeview/helpers/treeview-helper.mjs → esm2015/lib/dr-treeview/helpers/treeview-helper.js} +0 -0
  356. /package/{esm2022/lib/dr-treeview/models/treeview-header-template-context.mjs → esm2015/lib/dr-treeview/models/treeview-header-template-context.js} +0 -0
  357. /package/{esm2022/lib/dr-treeview/models/treeview-item-template-context.mjs → esm2015/lib/dr-treeview/models/treeview-item-template-context.js} +0 -0
  358. /package/{esm2022/lib/dr-treeview/models/treeview-item.mjs → esm2015/lib/dr-treeview/models/treeview-item.js} +0 -0
  359. /package/{esm2022/lib/models/badgeStatus.mjs → esm2015/lib/models/badgeStatus.js} +0 -0
  360. /package/{esm2022/lib/models/constants.mjs → esm2015/lib/models/constants.js} +0 -0
  361. /package/{esm2022/lib/models/dropdown.mjs → esm2015/lib/models/dropdown.js} +0 -0
  362. /package/{esm2022/lib/models/serverTags.mjs → esm2015/lib/models/serverTags.js} +0 -0
  363. /package/{esm2022/lib/models/spinnerOptions.mjs → esm2015/lib/models/spinnerOptions.js} +0 -0
  364. /package/{esm2022/lib/models/validationError.mjs → esm2015/lib/models/validationError.js} +0 -0
  365. /package/{esm2022/lib/stepper/interfaces/stepper.mjs → esm2015/lib/stepper/interfaces/stepper.js} +0 -0
@@ -0,0 +1,104 @@
1
+ import { Directive, ElementRef, Input, Renderer2 } from '@angular/core';
2
+ export class DrDropdownPositionDirective {
3
+ constructor(el, renderer) {
4
+ this.el = el;
5
+ this.renderer = renderer;
6
+ this.position = 'left';
7
+ }
8
+ ngOnInit() {
9
+ setTimeout(this.calculatePosition.bind(this), 1);
10
+ }
11
+ calculatePosition() {
12
+ let xDifference = 0;
13
+ let defaultDelta = 10;
14
+ let defaultPadding = 0;
15
+ const originalPosition = this.position;
16
+ if (this.position === 'child') {
17
+ defaultDelta = 0;
18
+ defaultPadding = 10;
19
+ xDifference = this.el.nativeElement.parentElement.parentElement.offsetWidth - this.el.nativeElement.offsetWidth;
20
+ const parentRect = this.el.nativeElement.parentElement.parentElement.getBoundingClientRect();
21
+ this.position = {
22
+ x: this.el.nativeElement.offsetWidth,
23
+ y: this.el.nativeElement.parentElement.parentElement.offsetTop - 9,
24
+ clientX: parentRect.x + this.el.nativeElement.parentElement.parentElement.offsetWidth,
25
+ clientY: parentRect.y
26
+ };
27
+ }
28
+ if (typeof this.position === 'string') {
29
+ this.renderer.setStyle(this.el.nativeElement, 'top', this.position === 'bottom' ?
30
+ this.drDropdownPosition.y - this.drDropdownPosition.height + 'px' :
31
+ this.drDropdownPosition.y + 'px');
32
+ this.renderer.setStyle(this.el.nativeElement, 'left', this.position === 'right' ?
33
+ this.drDropdownPosition.x + this.drDropdownPosition.width + 'px' :
34
+ this.drDropdownPosition.x + 'px');
35
+ const menuHeight = this.el.nativeElement.offsetHeight;
36
+ const heightMoreWindowBottom = menuHeight + this.drDropdownPosition.y > window.innerHeight;
37
+ const heightMoreWindowTop = menuHeight - this.drDropdownPosition.y + this.drDropdownPosition.height / 2 > 48; // header height;
38
+ const widthMoreWindowRight = this.drDropdownPosition.x + 250 > window.innerWidth;
39
+ const spaceBetweenElAndRightBorder = window.innerWidth - (this.drDropdownPosition.x + this.el.nativeElement.offsetWidth);
40
+ this.widthMoreRight = this.drDropdownPosition.x < spaceBetweenElAndRightBorder;
41
+ if (heightMoreWindowBottom) {
42
+ this.position = 'top';
43
+ }
44
+ if (heightMoreWindowBottom && widthMoreWindowRight && !heightMoreWindowTop || this.position === 'top-left') {
45
+ this.position = 'top-left';
46
+ const translateX = `calc(-100% + ${this.drDropdownPosition.width}px)`;
47
+ const translateY = 'calc(-100% - 8px)';
48
+ this.renderer.setStyle(this.el.nativeElement, 'transform', `translate(${translateX}, ${translateY})`);
49
+ }
50
+ if (heightMoreWindowTop && heightMoreWindowBottom) {
51
+ this.position = 'left-center';
52
+ }
53
+ if (this.position === 'bottom-left') {
54
+ this.renderer.setStyle(this.el.nativeElement, 'transform', `translate(calc(-100% + ${this.drDropdownPosition.width}px), ${this.drDropdownPosition.height + 8}px)`);
55
+ }
56
+ const className = this.position === 'top' ? 'content-top'
57
+ : this.position === 'top-left' ? 'content-top-left'
58
+ : this.position === 'bottom' ? 'content-bottom'
59
+ : this.position === 'bottom-left' ? 'content-bottom-left'
60
+ : this.position === 'left' ? 'content-left'
61
+ : this.position === 'left-center' ? 'content-left-center'
62
+ : this.position === 'right' ? 'content-right'
63
+ : this.position === 'bottom-right' ? 'content-bottom-right' : '';
64
+ this.renderer.addClass(this.el.nativeElement, className);
65
+ this.renderer.setStyle(this.el.nativeElement, 'z-index', '10010');
66
+ }
67
+ else {
68
+ const defaultChildPadding = 3;
69
+ const widthMoreWindowRight = originalPosition !== 'child'
70
+ ? window.innerWidth - (this.position.clientX - this.el.nativeElement.offsetWidth - defaultPadding)
71
+ : window.innerWidth - this.position.clientX - this.el.nativeElement.offsetWidth - defaultPadding;
72
+ const widthMoreWindowBottom = originalPosition !== 'child'
73
+ ? window.innerHeight - (this.position.clientY - this.el.nativeElement.offsetHeight - defaultPadding)
74
+ : window.innerHeight - this.position.clientY - this.el.nativeElement.offsetHeight - defaultPadding;
75
+ const spaceRightAmount = window.innerWidth - (this.position.clientX + this.el.nativeElement.offsetWidth + defaultPadding);
76
+ this.widthMoreRight = !(widthMoreWindowRight < 0);
77
+ let calculatedHorizantallyPos = widthMoreWindowRight < 0
78
+ ? -this.position.x + -defaultChildPadding
79
+ : this.position.x + defaultChildPadding + xDifference;
80
+ if (spaceRightAmount <= 0 && originalPosition !== 'child') {
81
+ calculatedHorizantallyPos -= this.el.nativeElement.offsetWidth;
82
+ }
83
+ const deltaHeight = widthMoreWindowBottom < 0 ? widthMoreWindowBottom : defaultDelta;
84
+ this.renderer.setStyle(this.el.nativeElement, 'top', (this.position.y + deltaHeight) + 'px');
85
+ this.renderer.setStyle(this.el.nativeElement, 'left', (calculatedHorizantallyPos) + 'px');
86
+ this.renderer.setStyle(this.el.nativeElement, 'z-index', '10010');
87
+ }
88
+ }
89
+ }
90
+ DrDropdownPositionDirective.decorators = [
91
+ { type: Directive, args: [{
92
+ selector: '[drDropdownPosition]',
93
+ exportAs: 'dropdownPosition'
94
+ },] }
95
+ ];
96
+ DrDropdownPositionDirective.ctorParameters = () => [
97
+ { type: ElementRef },
98
+ { type: Renderer2 }
99
+ ];
100
+ DrDropdownPositionDirective.propDecorators = {
101
+ drDropdownPosition: [{ type: Input }],
102
+ position: [{ type: Input }]
103
+ };
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZHJvcGRvd24tcG9zaXRpb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZHJvcGRvd24vZHItZHJvcGRvd24tcG9zaXRpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFPaEYsTUFBTSxPQUFPLDJCQUEyQjtJQU9wQyxZQUFvQixFQUFjLEVBQVUsUUFBbUI7UUFBM0MsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUFKdEQsYUFBUSxHQUFxQyxNQUFNLENBQUM7SUFLN0QsQ0FBQztJQUVELFFBQVE7UUFDSixVQUFVLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2IsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLElBQUksWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLGNBQWMsR0FBRyxDQUFDLENBQUM7UUFDdkIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBRXZDLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxPQUFPLEVBQUU7WUFDM0IsWUFBWSxHQUFHLENBQUMsQ0FBQztZQUNqQixjQUFjLEdBQUcsRUFBRSxDQUFDO1lBQ3BCLFdBQVcsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7WUFDaEgsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEVB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QUs7dUJBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbFBvc2l0aW9uLCBJRHJvcGRvd25Db29yZGluYXRlIH0gZnJvbSAnLi4vbW9kZWxzL2Ryb3Bkb3duJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZHJEcm9wZG93blBvc2l0aW9uXScsXG4gICAgZXhwb3J0QXM6ICdkcm9wZG93blBvc2l0aW9uJ1xufSlcbmV4cG9ydCBjbGFzcyBEckRyb3Bkb3duUG9zaXRpb25EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgQElucHV0KCkgZHJEcm9wZG93blBvc2l0aW9uO1xuICAgIEBJbnB1dCgpIHBvc2l0aW9uOiBFbFBvc2l0aW9uIHwgSURyb3Bkb3duQ29vcmRpbmF0ZSA9ICdsZWZ0JztcblxuICAgIHdpZHRoTW9yZVJpZ2h0OiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHNldFRpbWVvdXQodGhpcy5jYWxjdWxhdGVQb3NpdGlvbi5iaW5kKHRoaXMpLCAxKTtcbiAgICB9XG5cbiAgICBjYWxjdWxhdGVQb3NpdGlvbigpIHtcbiAgICAgICAgbGV0IHhEaWZmZXJlbmNlID0gMDtcbiAgICAgICAgbGV0IGRlZmF1bHREZWx0YSA9IDEwO1xuICAgICAgICBsZXQgZGVmYXVsdFBhZGRpbmcgPSAwO1xuICAgICAgICBjb25zdCBvcmlnaW5hbFBvc2l0aW9uID0gdGhpcy5wb3NpdGlvbjtcblxuICAgICAgICBpZiAodGhpcy5wb3NpdGlvbiA9PT0gJ2NoaWxkJykge1xuICAgICAgICAgICAgZGVmYXVsdERlbHRhID0gMDtcbiAgICAgICAgICAgIGRlZmF1bHRQYWRkaW5nID0gMTA7XG4gICAgICAgICAgICB4RGlmZmVyZW5jZSA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQub2Zmc2V0V2lkdGggLSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnRSZWN0ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbiA9IHtcbiAgICAgICAgICAgICAgICB4OiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgsXG4gICAgICAgICAgICAgICAgeTogdGhpcy5lbC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudC5vZmZzZXRUb3AgLSA5LFxuICAgICAgICAgICAgICAgIGNsaWVudFg6IHBhcmVudFJlY3QueCArIHRoaXMuZWwubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQub2Zmc2V0V2lkdGgsXG4gICAgICAgICAgICAgICAgY2xpZW50WTogcGFyZW50UmVjdC55XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBvc2l0aW9uID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICd0b3AnLFxuICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPT09ICdib3R0b20nID9cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kckRyb3Bkb3duUG9zaXRpb24ueSAtIHRoaXMuZHJEcm9wZG93blBvc2l0aW9uLmhlaWdodCArICdweCcgOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmRyRHJvcGRvd25Qb3NpdGlvbi55ICsgJ3B4Jyk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2xlZnQnLFxuICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPT09ICdyaWdodCcgP1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRyRHJvcGRvd25Qb3NpdGlvbi54ICsgdGhpcy5kckRyb3Bkb3duUG9zaXRpb24ud2lkdGggKyAncHgnIDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kckRyb3Bkb3duUG9zaXRpb24ueCArICdweCcpO1xuICAgICAgICAgICAgY29uc3QgbWVudUhlaWdodCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgICAgICAgICBjb25zdCBoZWlnaHRNb3JlV2luZG93Qm90dG9tID0gbWVudUhlaWdodCArIHRoaXMuZHJEcm9wZG93blBvc2l0aW9uLnkgPiB3aW5kb3cuaW5uZXJIZWlnaHQ7XG4gICAgICAgICAgICBjb25zdCBoZWlnaHRNb3JlV2luZG93VG9wID0gbWVudUhlaWdodCAtIHRoaXMuZHJEcm9wZG93blBvc2l0aW9uLnkgKyB0aGlzLmRyRHJvcGRvd25Qb3NpdGlvbi5oZWlnaHQgLyAyID4gNDg7IC8vIGhlYWRlciBoZWlnaHQ7XG4gICAgICAgICAgICBjb25zdCB3aWR0aE1vcmVXaW5kb3dSaWdodCA9IHRoaXMuZHJEcm9wZG93blBvc2l0aW9uLnggKyAyNTAgPiB3aW5kb3cuaW5uZXJXaWR0aDtcblxuICAgICAgICAgICAgY29uc3Qgc3BhY2VCZXR3ZWVuRWxBbmRSaWdodEJvcmRlciA9IHdpbmRvdy5pbm5lcldpZHRoIC0gKHRoaXMuZHJEcm9wZG93blBvc2l0aW9uLnggKyB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgpO1xuICAgICAgICAgICAgdGhpcy53aWR0aE1vcmVSaWdodCA9IHRoaXMuZHJEcm9wZG93blBvc2l0aW9uLnggPCBzcGFjZUJldHdlZW5FbEFuZFJpZ2h0Qm9yZGVyO1xuXG4gICAgICAgICAgICBpZiAoaGVpZ2h0TW9yZVdpbmRvd0JvdHRvbSkge1xuICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPSAndG9wJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChoZWlnaHRNb3JlV2luZG93Qm90dG9tICYmIHdpZHRoTW9yZVdpbmRvd1JpZ2h0ICYmICFoZWlnaHRNb3JlV2luZG93VG9wIHx8IHRoaXMucG9zaXRpb24gPT09ICd0b3AtbGVmdCcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uID0gJ3RvcC1sZWZ0JztcbiAgICAgICAgICAgICAgICBjb25zdCB0cmFuc2xhdGVYID0gYGNhbGMoLTEwMCUgKyAkeyB0aGlzLmRyRHJvcGRvd25Qb3NpdGlvbi53aWR0aCB9cHgpYDtcbiAgICAgICAgICAgICAgICBjb25zdCB0cmFuc2xhdGVZID0gJ2NhbGMoLTEwMCUgLSA4cHgpJztcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ3RyYW5zZm9ybScsIGB0cmFuc2xhdGUoJHsgdHJhbnNsYXRlWCB9LCAkeyB0cmFuc2xhdGVZIH0pYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaGVpZ2h0TW9yZVdpbmRvd1RvcCAmJiBoZWlnaHRNb3JlV2luZG93Qm90dG9tKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbiA9ICdsZWZ0LWNlbnRlcic7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5wb3NpdGlvbiA9PT0gJ2JvdHRvbS1sZWZ0Jykge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgJ3RyYW5zZm9ybScsXG4gICAgICAgICAgICAgICAgICAgIGB0cmFuc2xhdGUoY2FsYygtMTAwJSArICR7IHRoaXMuZHJEcm9wZG93blBvc2l0aW9uLndpZHRoIH1weCksICR7IHRoaXMuZHJEcm9wZG93blBvc2l0aW9uLmhlaWdodCArIDggfXB4KWBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgY2xhc3NOYW1lID0gdGhpcy5wb3NpdGlvbiA9PT0gJ3RvcCcgPyAnY29udGVudC10b3AnXG4gICAgICAgICAgICAgICAgOiB0aGlzLnBvc2l0aW9uID09PSAndG9wLWxlZnQnID8gJ2NvbnRlbnQtdG9wLWxlZnQnXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5wb3NpdGlvbiA9PT0gJ2JvdHRvbScgPyAnY29udGVudC1ib3R0b20nXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMucG9zaXRpb24gPT09ICdib3R0b20tbGVmdCcgPyAnY29udGVudC1ib3R0b20tbGVmdCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMucG9zaXRpb24gPT09ICdsZWZ0JyA/ICdjb250ZW50LWxlZnQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5wb3NpdGlvbiA9PT0gJ2xlZnQtY2VudGVyJyA/ICdjb250ZW50LWxlZnQtY2VudGVyJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnBvc2l0aW9uID09PSAncmlnaHQnID8gJ2NvbnRlbnQtcmlnaHQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnBvc2l0aW9uID09PSAnYm90dG9tLXJpZ2h0JyA/ICdjb250ZW50LWJvdHRvbS1yaWdodCcgOiAnJztcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCBjbGFzc05hbWUpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICd6LWluZGV4JywgJzEwMDEwJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBkZWZhdWx0Q2hpbGRQYWRkaW5nID0gMztcbiAgICAgICAgICAgIGNvbnN0IHdpZHRoTW9yZVdpbmRvd1JpZ2h0ID0gb3JpZ2luYWxQb3NpdGlvbiAhPT0gJ2NoaWxkJ1xuICAgICAgICAgICAgICAgID8gd2luZG93LmlubmVyV2lkdGggLSAodGhpcy5wb3NpdGlvbi5jbGllbnRYIC0gdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIC0gZGVmYXVsdFBhZGRpbmcpXG4gICAgICAgICAgICAgICAgOiB3aW5kb3cuaW5uZXJXaWR0aCAtIHRoaXMucG9zaXRpb24uY2xpZW50WCAtIHRoaXMuZWwubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCAtIGRlZmF1bHRQYWRkaW5nO1xuXG4gICAgICAgICAgICBjb25zdCB3aWR0aE1vcmVXaW5kb3dCb3R0b20gPSBvcmlnaW5hbFBvc2l0aW9uICE9PSAnY2hpbGQnXG4gICAgICAgICAgICAgICAgPyB3aW5kb3cuaW5uZXJIZWlnaHQgLSAodGhpcy5wb3NpdGlvbi5jbGllbnRZIC0gdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCAtIGRlZmF1bHRQYWRkaW5nKVxuICAgICAgICAgICAgICAgIDogd2luZG93LmlubmVySGVpZ2h0IC0gdGhpcy5wb3NpdGlvbi5jbGllbnRZIC0gdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCAtIGRlZmF1bHRQYWRkaW5nO1xuXG4gICAgICAgICAgICBjb25zdCBzcGFjZVJpZ2h0QW1vdW50ID0gd2luZG93LmlubmVyV2lkdGggLSAodGhpcy5wb3NpdGlvbi5jbGllbnRYICsgdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoICsgZGVmYXVsdFBhZGRpbmcpO1xuICAgICAgICAgICAgdGhpcy53aWR0aE1vcmVSaWdodCA9ICEod2lkdGhNb3JlV2luZG93UmlnaHQgPCAwKTtcblxuICAgICAgICAgICAgbGV0IGNhbGN1bGF0ZWRIb3JpemFudGFsbHlQb3MgPSB3aWR0aE1vcmVXaW5kb3dSaWdodCA8IDBcbiAgICAgICAgICAgICAgICA/IC10aGlzLnBvc2l0aW9uLnggKyAtZGVmYXVsdENoaWxkUGFkZGluZ1xuICAgICAgICAgICAgICAgIDogdGhpcy5wb3NpdGlvbi54ICsgZGVmYXVsdENoaWxkUGFkZGluZyArIHhEaWZmZXJlbmNlO1xuXG4gICAgICAgICAgICBpZiAoc3BhY2VSaWdodEFtb3VudCA8PSAwICYmIG9yaWdpbmFsUG9zaXRpb24gIT09ICdjaGlsZCcpIHtcbiAgICAgICAgICAgICAgICBjYWxjdWxhdGVkSG9yaXphbnRhbGx5UG9zIC09IHRoaXMuZWwubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgZGVsdGFIZWlnaHQgPSB3aWR0aE1vcmVXaW5kb3dCb3R0b20gPCAwID8gd2lkdGhNb3JlV2luZG93Qm90dG9tIDogZGVmYXVsdERlbHRhO1xuXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ3RvcCcsICh0aGlzLnBvc2l0aW9uLnkgKyBkZWx0YUhlaWdodCkgKyAncHgnKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnbGVmdCcsIChjYWxjdWxhdGVkSG9yaXphbnRhbGx5UG9zKSArICdweCcpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICd6LWluZGV4JywgJzEwMDEwJyk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,114 @@
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewChild } from '@angular/core';
2
+ import { DrDropdownService } from './dr-dropdown.service';
3
+ export class DrDropdownComponent {
4
+ constructor(menuService, cdr) {
5
+ this.menuService = menuService;
6
+ this.cdr = cdr;
7
+ this.position = 'left';
8
+ this.wasHovered = false;
9
+ }
10
+ set options(data) {
11
+ if (data) {
12
+ this.option = data.option;
13
+ this.position = data.position;
14
+ this.drDropdownInHover = data.drDropdownInHover;
15
+ this.containerClass = data.class;
16
+ this.list = data.list || [];
17
+ this.list.forEach(item => {
18
+ var _a, _b;
19
+ if ((_a = item.children) === null || _a === void 0 ? void 0 : _a.length) {
20
+ item.childOptions = {
21
+ list: item.children,
22
+ class: ((_b = item === null || item === void 0 ? void 0 : item.childOptions) === null || _b === void 0 ? void 0 : _b.class) || '',
23
+ position: 'child'
24
+ };
25
+ }
26
+ });
27
+ this.cdr.markForCheck();
28
+ }
29
+ }
30
+ onMouseEnter() {
31
+ this.wasHovered = true;
32
+ }
33
+ onMouseLeave() {
34
+ if (this.drDropdownInHover)
35
+ this.menuService.destroy();
36
+ }
37
+ onClickedOutside() {
38
+ if (this.firstInit) {
39
+ this.menuService.destroy();
40
+ }
41
+ else {
42
+ this.firstInit = true;
43
+ }
44
+ }
45
+ hide() {
46
+ this.menuService.destroy();
47
+ }
48
+ disabled(act) {
49
+ if (!act.disabled) {
50
+ return false;
51
+ }
52
+ if (typeof act.disabled === 'boolean') {
53
+ return act.disabled;
54
+ }
55
+ else {
56
+ return act.disabled(act.data);
57
+ }
58
+ }
59
+ selected(act) {
60
+ if (!act.selected) {
61
+ return false;
62
+ }
63
+ if (typeof act.selected === 'boolean') {
64
+ return act.selected;
65
+ }
66
+ else {
67
+ return act.selected(act.data);
68
+ }
69
+ }
70
+ tooltipToShow(act) {
71
+ if (act.toolTipIfDisabled && !this.disabled(act))
72
+ return '';
73
+ return act.customTooltip ? act.customTooltip(act.data) : act.toolTip;
74
+ }
75
+ tooltipPosition(widthMoreRight) {
76
+ return widthMoreRight ? 'right' : 'left';
77
+ }
78
+ action(act) {
79
+ if (!this.disabled(act)) {
80
+ if (act.action) {
81
+ act.action(act.data);
82
+ }
83
+ else {
84
+ this.menuService.actionItem.next({ event: act.event || act.title || 'default', data: act.data });
85
+ }
86
+ this.hide();
87
+ }
88
+ }
89
+ onActionIconClick($event, actionIcon, data) {
90
+ $event.stopPropagation();
91
+ if (!this.disabled(actionIcon)) {
92
+ actionIcon.action(data);
93
+ this.hide();
94
+ }
95
+ }
96
+ }
97
+ DrDropdownComponent.decorators = [
98
+ { type: Component, args: [{
99
+ selector: 'dr-dropdown',
100
+ template: "<div #menuContainer\n (mouseleave)=\"onMouseLeave()\"\n (mouseenter)=\"onMouseEnter()\"\n (clickOutside)=\"onClickedOutside()\"\n [drDropdownPosition]=\"option\"\n #dropdownPosition=\"dropdownPosition\"\n [position]=\"position\"\n [class]=\"containerClass\"\n class=\"dr-dropdown\">\n <div class=\"dr-dropdown__container\">\n <div *ngFor=\"let act of list | drDropdownItemShowPipe\"\n (click)=\"action(act)\"\n [drTooltip]=\"tooltipToShow(act)\"\n [drTooltipPosition]=\"tooltipPosition(dropdownPosition.widthMoreRight)\"\n [drTooltipOptions]=\"{ withoutArrow: true }\"\n [drTooltipClass]=\"'dr-dropdown__tooltip'\"\n class=\"dr-dropdown__container__item\"\n [class.item-disabled]=\"disabled(act)\"\n [class.item-selected]=\"selected(act)\"\n [class.separate-line]=\"act.separateLine\">\n <i *ngIf=\"act.icon\" [class]=\"act.icon\"></i>\n <span class=\"dr-dropdown__container__item__text\">{{act.title}}</span>\n <i *ngFor=\"let actionIcon of act.actionIcons\"\n [class]=\"actionIcon.icon\"\n [class.showOnHover]=\"actionIcon.showOnHover\"\n (click)=\"onActionIconClick($event, actionIcon, act.data)\"></i>\n <i *ngIf=\"act.children?.length\" class=\"dr-icon-arrow-right\"></i>\n <dr-dropdown *ngIf=\"act.children?.length\" [options]=\"act.childOptions\"></dr-dropdown>\n </div>\n </div>\n</div>\n",
101
+ changeDetection: ChangeDetectionStrategy.OnPush,
102
+ styles: ["::ng-deep .dr-dropdown__container__item .dr-dropdown{visibility:hidden;transition-delay:.2s}::ng-deep .dr-dropdown__container__item:hover>*>.dr-dropdown{visibility:visible;transition-delay:0s}::ng-deep .dr-dropdown__tooltip>.default-content{max-width:300px;white-space:normal!important}.dr-dropdown{position:absolute;z-index:-1;top:0;left:0;width:auto}.dr-dropdown__container{display:flex;flex-direction:column;background:#fff;border-radius:4px;box-shadow:0 4px 8px 1px #00000040;padding:8px 0;overflow-y:auto;max-height:60vh}.dr-dropdown__container__item{display:flex;align-items:center;justify-content:flex-start;cursor:pointer;min-width:15rem;font-style:normal;font-weight:400;font-size:14px;line-height:24px;clear:both;width:100%;white-space:nowrap;padding:0 12px;height:36px;flex-shrink:0}.dr-dropdown__container__item.separate-line{border-top:1px solid #bcbcbc}.dr-dropdown__container__item:hover{background-color:#f9faff}.dr-dropdown__container__item:hover .showOnHover{visibility:visible}.dr-dropdown__container__item.item-selected{background:#f3f7ff}.dr-dropdown__container__item.item-disabled,.dr-dropdown__container__item.item-disabled i,.dr-dropdown__container__item.item-disabled .dr-dropdown__container__item__text{color:#bcbcbc}.dr-dropdown__container__item i:first-child{margin-right:8px}.dr-dropdown__container__item__text{margin-right:auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dr-dropdown__container__item i,.dr-dropdown__container__item__text{color:#151b3f}.dr-dropdown__container__item i{color:#4e566c}.dr-dropdown__container__item i:hover{color:#4646ce}.dr-dropdown__container__item .showOnHover{visibility:hidden}.dr-dropdown.content-top{transform:translate(-50%,-100%)}.dr-dropdown.content-top-left{transform:translate(-100%,-100%)}.dr-dropdown.content-bottom{transform:translate(-50%,50%)}.dr-dropdown.content-bottom-left{transform:translate(-90%,35%)}.dr-dropdown.content-bottom-right{transform:translateY(15%)}.dr-dropdown.content-left{transform:translate(-100%)}.dr-dropdown.content-left-center{transform:translate(-100%,-50%)}.dr-dropdown.content-right{transform:translate(5%)}\n"]
103
+ },] }
104
+ ];
105
+ DrDropdownComponent.ctorParameters = () => [
106
+ { type: DrDropdownService },
107
+ { type: ChangeDetectorRef }
108
+ ];
109
+ DrDropdownComponent.propDecorators = {
110
+ viewMenu: [{ type: ViewChild, args: ['listMenu',] }],
111
+ menuContainer: [{ type: ViewChild, args: ['menuContainer',] }],
112
+ options: [{ type: Input }]
113
+ };
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZHJvcGRvd24vZHItZHJvcGRvd24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQVExRCxNQUFNLE9BQU8sbUJBQW1CO0lBWTVCLFlBQXNCLFdBQThCLEVBQVUsR0FBc0I7UUFBOUQsZ0JBQVcsR0FBWCxXQUFXLENBQW1CO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFQcEYsYUFBUSxHQUFxQyxNQUFNLENBQUM7UUFJN0MsZUFBVSxHQUFHLEtBQUssQ0FBQztJQUkxQixDQUFDO0lBRUQsSUFBYSxPQUFPLENBQUMsSUFBbUM7UUFDcEQsSUFBSSxJQUFJLEVBQUU7WUFDTixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQzlCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7WUFDaEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7O2dCQUNyQixJQUFJLE1BQUEsSUFBSSxDQUFDLFFBQVEsMENBQUUsTUFBTSxFQUFFO29CQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHO3dCQUNoQixJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVE7d0JBQ25CLEtBQUssRUFBRSxDQUFBLE1BQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLFlBQVksMENBQUUsS0FBSyxLQUFJLEVBQUU7d0JBQ3RDLFFBQVEsRUFBRSxPQUFPO3FCQUNwQixDQUFDO2lCQUNMO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQzNCO0lBQ0wsQ0FBQztJQUVELFlBQVk7UUFDUixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztJQUMzQixDQUFDO0lBRUQsWUFBWTtRQUNSLElBQUksSUFBSSxDQUFDLGlCQUFpQjtZQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDM0QsQ0FBQztJQUVELGdCQUFnQjtRQUNaLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNoQixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQzlCO2FBQU07WUFDSCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztTQUN6QjtJQUNMLENBQUM7SUFFRCxJQUFJO1FBQ0EsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsUUFBUSxDQUFDLEdBQXNEO1FBQzNELElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFO1lBQ2YsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFDRCxJQUFJLE9BQU8sR0FBRyxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUU7WUFDbkMsT0FBTyxHQUFHLENBQUMsUUFBUSxDQUFDO1NBQ3ZCO2FBQU07WUFDSCxPQUFPLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2pDO0lBQ0wsQ0FBQztJQUVELFFBQVEsQ0FBQyxHQUEyQjtRQUNoQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRTtZQUNmLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBQ0QsSUFBSSxPQUFPLEdBQUcsQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFO1lBQ25DLE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQztTQUN2QjthQUFNO1lBQ0gsT0FBTyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNqQztJQUNMLENBQUM7SUFFRCxhQUFhLENBQUMsR0FBMkI7UUFDckMsSUFBSSxHQUFHLENBQUMsaUJBQWlCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQzVELE9BQU8sR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7SUFDekUsQ0FBQztJQUVELGVBQWUsQ0FBQyxjQUF1QjtRQUNuQyxPQUFPLGNBQWMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDN0MsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUF1QjtRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNyQixJQUFJLEdBQUcsQ0FBQyxNQUFNLEVBQUU7Z0JBQ1osR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDeEI7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLEtBQUssSUFBSSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO2FBQ3BHO1lBQ0QsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2Y7SUFDTCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsTUFBTSxFQUFFLFVBQW9DLEVBQUUsSUFBUztRQUNyRSxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDNUIsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN4QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDZjtJQUNMLENBQUM7OztZQTdHSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLGFBQWE7Z0JBQ3ZCLDZoREFBMkM7Z0JBRTNDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOzthQUNsRDs7O1lBUFEsaUJBQWlCO1lBRlEsaUJBQWlCOzs7dUJBWTlDLFNBQVMsU0FBQyxVQUFVOzRCQUNwQixTQUFTLFNBQUMsZUFBZTtzQkFZekIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbFBvc2l0aW9uLCBJRHJvcGRvd24sIElEcm9wZG93bkFjdGlvbkljb24sIElEcm9wZG93bkNvb3JkaW5hdGUsIElEcm9wZG93bkl0ZW0gfSBmcm9tICcuLi9tb2RlbHMvZHJvcGRvd24nO1xuaW1wb3J0IHsgRHJEcm9wZG93blNlcnZpY2UgfSBmcm9tICcuL2RyLWRyb3Bkb3duLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RyLWRyb3Bkb3duJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZHItZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RyLWRyb3Bkb3duLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRHJEcm9wZG93bkNvbXBvbmVudCB7XG5cbiAgICBAVmlld0NoaWxkKCdsaXN0TWVudScpIHZpZXdNZW51OiBIVE1MRWxlbWVudDtcbiAgICBAVmlld0NoaWxkKCdtZW51Q29udGFpbmVyJykgbWVudUNvbnRhaW5lcjogSFRNTEVsZW1lbnQ7XG4gICAgb3B0aW9uOiBhbnk7XG4gICAgcG9zaXRpb246IEVsUG9zaXRpb24gfCBJRHJvcGRvd25Db29yZGluYXRlID0gJ2xlZnQnO1xuICAgIGRyRHJvcGRvd25JbkhvdmVyOiBib29sZWFuO1xuICAgIGxpc3Q6IElEcm9wZG93bkl0ZW08dW5rbm93bj5bXTtcbiAgICBjb250YWluZXJDbGFzczogc3RyaW5nO1xuICAgIHB1YmxpYyB3YXNIb3ZlcmVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBmaXJzdEluaXQ6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgbWVudVNlcnZpY2U6IERyRHJvcGRvd25TZXJ2aWNlLCBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgb3B0aW9ucyhkYXRhOiBJRHJvcGRvd248SURyb3Bkb3duSXRlbTxhbnk+Pikge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgdGhpcy5vcHRpb24gPSBkYXRhLm9wdGlvbjtcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24gPSBkYXRhLnBvc2l0aW9uO1xuICAgICAgICAgICAgdGhpcy5kckRyb3Bkb3duSW5Ib3ZlciA9IGRhdGEuZHJEcm9wZG93bkluSG92ZXI7XG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5lckNsYXNzID0gZGF0YS5jbGFzcztcbiAgICAgICAgICAgIHRoaXMubGlzdCA9IGRhdGEubGlzdCB8fCBbXTtcbiAgICAgICAgICAgIHRoaXMubGlzdC5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpdGVtLmNoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5jaGlsZE9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsaXN0OiBpdGVtLmNoaWxkcmVuLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IGl0ZW0/LmNoaWxkT3B0aW9ucz8uY2xhc3MgfHwgJycsXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogJ2NoaWxkJ1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk1vdXNlRW50ZXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMud2FzSG92ZXJlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgb25Nb3VzZUxlYXZlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kckRyb3Bkb3duSW5Ib3ZlcikgdGhpcy5tZW51U2VydmljZS5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgb25DbGlja2VkT3V0c2lkZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZmlyc3RJbml0KSB7XG4gICAgICAgICAgICB0aGlzLm1lbnVTZXJ2aWNlLmRlc3Ryb3koKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZmlyc3RJbml0ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhpZGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWVudVNlcnZpY2UuZGVzdHJveSgpO1xuICAgIH1cblxuICAgIGRpc2FibGVkKGFjdDogSURyb3Bkb3duSXRlbTx1bmtub3duPiB8IElEcm9wZG93bkFjdGlvbkljb248YW55Pik6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIWFjdC5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgYWN0LmRpc2FibGVkID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgIHJldHVybiBhY3QuZGlzYWJsZWQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gYWN0LmRpc2FibGVkKGFjdC5kYXRhKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNlbGVjdGVkKGFjdDogSURyb3Bkb3duSXRlbTx1bmtub3duPik6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIWFjdC5zZWxlY3RlZCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgYWN0LnNlbGVjdGVkID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgIHJldHVybiBhY3Quc2VsZWN0ZWQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gYWN0LnNlbGVjdGVkKGFjdC5kYXRhKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRvb2x0aXBUb1Nob3coYWN0OiBJRHJvcGRvd25JdGVtPHVua25vd24+KTogc3RyaW5nIHtcbiAgICAgICAgaWYgKGFjdC50b29sVGlwSWZEaXNhYmxlZCAmJiAhdGhpcy5kaXNhYmxlZChhY3QpKSByZXR1cm4gJyc7XG4gICAgICAgIHJldHVybiBhY3QuY3VzdG9tVG9vbHRpcCA/IGFjdC5jdXN0b21Ub29sdGlwKGFjdC5kYXRhKSA6IGFjdC50b29sVGlwO1xuICAgIH1cblxuICAgIHRvb2x0aXBQb3NpdGlvbih3aWR0aE1vcmVSaWdodDogYm9vbGVhbikge1xuICAgICAgICByZXR1cm4gd2lkdGhNb3JlUmlnaHQgPyAncmlnaHQnIDogJ2xlZnQnO1xuICAgIH1cblxuICAgIGFjdGlvbihhY3Q6IElEcm9wZG93bkl0ZW08YW55Pikge1xuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQoYWN0KSkge1xuICAgICAgICAgICAgaWYgKGFjdC5hY3Rpb24pIHtcbiAgICAgICAgICAgICAgICBhY3QuYWN0aW9uKGFjdC5kYXRhKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tZW51U2VydmljZS5hY3Rpb25JdGVtLm5leHQoeyBldmVudDogYWN0LmV2ZW50IHx8IGFjdC50aXRsZSB8fCAnZGVmYXVsdCcsIGRhdGE6IGFjdC5kYXRhIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkFjdGlvbkljb25DbGljaygkZXZlbnQsIGFjdGlvbkljb246IElEcm9wZG93bkFjdGlvbkljb248YW55PiwgZGF0YTogYW55KSB7XG4gICAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKGFjdGlvbkljb24pKSB7XG4gICAgICAgICAgICBhY3Rpb25JY29uLmFjdGlvbihkYXRhKTtcbiAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4iXX0=
@@ -0,0 +1,104 @@
1
+ import { ComponentFactoryResolver, Directive, ElementRef, HostListener, Inject, Input, ViewChild, ViewContainerRef } from '@angular/core';
2
+ import { DOCUMENT } from '@angular/common';
3
+ import { DrDropdownComponent } from './dr-dropdown.component';
4
+ import { DrDropdownService } from './dr-dropdown.service';
5
+ export class DrDropdownDirective {
6
+ constructor(componentFactoryResolver, viewContainerRef, service, el, _document) {
7
+ this.componentFactoryResolver = componentFactoryResolver;
8
+ this.viewContainerRef = viewContainerRef;
9
+ this.service = service;
10
+ this.el = el;
11
+ this._document = _document;
12
+ this.position = 'left';
13
+ this.mouseleaveTimeout = 200;
14
+ }
15
+ elementHover() {
16
+ if (!this.drDropdownInHover)
17
+ return;
18
+ this.openDropdown();
19
+ }
20
+ elementClick() {
21
+ this.openDropdown();
22
+ }
23
+ leaveDropdownTriggerElement() {
24
+ if (this.drDropdownInHover) {
25
+ setTimeout(_ => {
26
+ if (this.contentCmpRef && !this.contentCmpRef.instance.wasHovered) {
27
+ this.contentCmpRef.destroy();
28
+ this.contentCmpRef = null;
29
+ }
30
+ }, this.mouseleaveTimeout);
31
+ }
32
+ }
33
+ documentClick(e) {
34
+ this.closeDropdown(e);
35
+ }
36
+ openDropdown() {
37
+ const option = this.el.nativeElement.getBoundingClientRect();
38
+ this._document.querySelectorAll('dr-dropdown').forEach(item => item.remove());
39
+ if (this.contentCmpRef && this.contentCmpRef.destroyCbs) {
40
+ this.contentCmpRef.destroy();
41
+ this.contentCmpRef = null;
42
+ }
43
+ else {
44
+ this.service.destroy();
45
+ this.showMenu({
46
+ option,
47
+ drDropdownInHover: this.drDropdownInHover,
48
+ position: this.position,
49
+ list: this.drDropdown,
50
+ class: this.drDropdownClass
51
+ });
52
+ }
53
+ }
54
+ closeDropdown(e) {
55
+ if (!this.contentCmpRef) {
56
+ return;
57
+ }
58
+ const clickTarget = e.target;
59
+ const triggerElement = this.el.nativeElement;
60
+ const dropdownElement = this.contentCmpRef.location.nativeElement;
61
+ const isClickTriggerElement = triggerElement.contains(clickTarget) || triggerElement === clickTarget;
62
+ const isClickDropdownContents = dropdownElement.contains(clickTarget);
63
+ if (!isClickTriggerElement && !isClickDropdownContents) {
64
+ const elems = this._document.querySelectorAll('dr-dropdown');
65
+ setTimeout(() => elems.forEach(item => item.remove()), 100);
66
+ }
67
+ }
68
+ showMenu(options) {
69
+ const componentFactory = this.componentFactoryResolver.resolveComponentFactory(DrDropdownComponent);
70
+ this.contentCmpRef = this.viewContainerRef.createComponent(componentFactory);
71
+ this.service.addMenu = this.contentCmpRef;
72
+ this._document.querySelector('dr-layout').appendChild(this.contentCmpRef.location.nativeElement);
73
+ this.contentCmpRef.instance.options = options;
74
+ }
75
+ ngOnDestroy() {
76
+ if (this.contentCmpRef) {
77
+ this.contentCmpRef.destroy();
78
+ }
79
+ }
80
+ }
81
+ DrDropdownDirective.decorators = [
82
+ { type: Directive, args: [{
83
+ selector: '[drDropdown]'
84
+ },] }
85
+ ];
86
+ DrDropdownDirective.ctorParameters = () => [
87
+ { type: ComponentFactoryResolver },
88
+ { type: ViewContainerRef },
89
+ { type: DrDropdownService },
90
+ { type: ElementRef },
91
+ { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
92
+ ];
93
+ DrDropdownDirective.propDecorators = {
94
+ position: [{ type: Input }],
95
+ drDropdown: [{ type: Input }],
96
+ drDropdownClass: [{ type: Input }],
97
+ drDropdownInHover: [{ type: Input }],
98
+ contentCmpRef: [{ type: ViewChild, args: [DrDropdownComponent, { static: true, read: ViewContainerRef },] }],
99
+ elementHover: [{ type: HostListener, args: ['mouseenter',] }],
100
+ elementClick: [{ type: HostListener, args: ['click',] }],
101
+ leaveDropdownTriggerElement: [{ type: HostListener, args: ['mouseleave',] }],
102
+ documentClick: [{ type: HostListener, args: ['document:mouseup', ['$event'],] }]
103
+ };
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZHJvcGRvd24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZHJvcGRvd24vZHItZHJvcGRvd24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx3QkFBd0IsRUFDeEIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFFTCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUsxRCxNQUFNLE9BQU8sbUJBQW1CO0lBVTVCLFlBQW9CLHdCQUFrRCxFQUNsRCxnQkFBa0MsRUFDbEMsT0FBMEIsRUFDMUIsRUFBYyxFQUNJLFNBQWM7UUFKaEMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLFlBQU8sR0FBUCxPQUFPLENBQW1CO1FBQzFCLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDSSxjQUFTLEdBQVQsU0FBUyxDQUFLO1FBWjNDLGFBQVEsR0FBZSxNQUFNLENBQUM7UUFNdEIsc0JBQWlCLEdBQUcsR0FBRyxDQUFDO0lBT3pDLENBQUM7SUFFMkIsWUFBWTtRQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQjtZQUFFLE9BQU87UUFDcEMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFc0IsWUFBWTtRQUMvQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUUyQiwyQkFBMkI7UUFDbkQsSUFB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Q0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNqRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQ2xELENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDaEM7SUFDTCxDQUFDOzs7WUE1RkosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxjQUFjO2FBQzNCOzs7WUFqQkcsd0JBQXdCO1lBUXhCLGdCQUFnQjtZQUtYLGlCQUFpQjtZQVh0QixVQUFVOzRDQThCRyxNQUFNLFNBQUMsUUFBUTs7O3VCQVozQixLQUFLO3lCQUNMLEtBQUs7OEJBQ0wsS0FBSztnQ0FDTCxLQUFLOzRCQUNMLFNBQVMsU0FBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFOzJCQVd2RSxZQUFZLFNBQUMsWUFBWTsyQkFLekIsWUFBWSxTQUFDLE9BQU87MENBSXBCLFlBQVksU0FBQyxZQUFZOzRCQVd6QixZQUFZLFNBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudEZhY3RvcnksXG4gICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRWxQb3NpdGlvbiwgSURyb3Bkb3duLCBJRHJvcGRvd25JdGVtIH0gZnJvbSAnLi4vbW9kZWxzL2Ryb3Bkb3duJztcbmltcG9ydCB7IERyRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL2RyLWRyb3Bkb3duLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEckRyb3Bkb3duU2VydmljZSB9IGZyb20gJy4vZHItZHJvcGRvd24uc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2RyRHJvcGRvd25dJ1xufSlcbmV4cG9ydCBjbGFzcyBEckRyb3Bkb3duRGlyZWN0aXZlPFQ+IGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICAgIEBJbnB1dCgpIHBvc2l0aW9uOiBFbFBvc2l0aW9uID0gJ2xlZnQnO1xuICAgIEBJbnB1dCgpIGRyRHJvcGRvd246IElEcm9wZG93bkl0ZW08VD5bXTtcbiAgICBASW5wdXQoKSBkckRyb3Bkb3duQ2xhc3M6IHN0cmluZztcbiAgICBASW5wdXQoKSBkckRyb3Bkb3duSW5Ib3ZlcjogYm9vbGVhbjtcbiAgICBAVmlld0NoaWxkKERyRHJvcGRvd25Db21wb25lbnQsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIGNvbnRlbnRDbXBSZWY7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IG1vdXNlbGVhdmVUaW1lb3V0ID0gMjAwO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBzZXJ2aWNlOiBEckRyb3Bkb3duU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxuICAgICAgICAgICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgX2RvY3VtZW50OiBhbnkpIHtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJykgZWxlbWVudEhvdmVyKCkge1xuICAgICAgICBpZiAoIXRoaXMuZHJEcm9wZG93bkluSG92ZXIpIHJldHVybjtcbiAgICAgICAgdGhpcy5vcGVuRHJvcGRvd24oKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycpIGVsZW1lbnRDbGljaygpIHtcbiAgICAgICAgdGhpcy5vcGVuRHJvcGRvd24oKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJykgbGVhdmVEcm9wZG93blRyaWdnZXJFbGVtZW50KCkge1xuICAgICAgICBpZiAodGhpcy5kckRyb3Bkb3duSW5Ib3Zlcikge1xuICAgICAgICAgICAgc2V0VGltZW91dChfID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jb250ZW50Q21wUmVmICYmICF0aGlzLmNvbnRlbnRDbXBSZWYuaW5zdGFuY2Uud2FzSG92ZXJlZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRDbXBSZWYuZGVzdHJveSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRDbXBSZWYgPSBudWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIHRoaXMubW91c2VsZWF2ZVRpbWVvdXQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6bW91c2V1cCcsIFsnJGV2ZW50J10pIGRvY3VtZW50Q2xpY2soZSkge1xuICAgICAgICB0aGlzLmNsb3NlRHJvcGRvd24oZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvcGVuRHJvcGRvd24oKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG9wdGlvbiA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgdGhpcy5fZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZHItZHJvcGRvd24nKS5mb3JFYWNoKGl0ZW0gPT4gaXRlbS5yZW1vdmUoKSk7XG4gICAgICAgIGlmICh0aGlzLmNvbnRlbnRDbXBSZWYgJiYgdGhpcy5jb250ZW50Q21wUmVmLmRlc3Ryb3lDYnMpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGVudENtcFJlZi5kZXN0cm95KCk7XG4gICAgICAgICAgICB0aGlzLmNvbnRlbnRDbXBSZWYgPSBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIHRoaXMuc2hvd01lbnUoe1xuICAgICAgICAgICAgICAgIG9wdGlvbixcbiAgICAgICAgICAgICAgICBkckRyb3Bkb3duSW5Ib3ZlcjogdGhpcy5kckRyb3Bkb3duSW5Ib3ZlcixcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogdGhpcy5wb3NpdGlvbixcbiAgICAgICAgICAgICAgICBsaXN0OiB0aGlzLmRyRHJvcGRvd24sXG4gICAgICAgICAgICAgICAgY2xhc3M6IHRoaXMuZHJEcm9wZG93bkNsYXNzXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY2xvc2VEcm9wZG93bihlKTogdm9pZCB7XG5cbiAgICAgICAgaWYgKCF0aGlzLmNvbnRlbnRDbXBSZWYpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNsaWNrVGFyZ2V0ID0gZS50YXJnZXQ7XG4gICAgICAgIGNvbnN0IHRyaWdnZXJFbGVtZW50ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICAgICAgICBjb25zdCBkcm9wZG93bkVsZW1lbnQgPSB0aGlzLmNvbnRlbnRDbXBSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgaXNDbGlja1RyaWdnZXJFbGVtZW50ID0gdHJpZ2dlckVsZW1lbnQuY29udGFpbnMoY2xpY2tUYXJnZXQpIHx8IHRyaWdnZXJFbGVtZW50ID09PSBjbGlja1RhcmdldDtcbiAgICAgICAgY29uc3QgaXNDbGlja0Ryb3Bkb3duQ29udGVudHMgPSBkcm9wZG93bkVsZW1lbnQuY29udGFpbnMoY2xpY2tUYXJnZXQpO1xuXG4gICAgICAgIGlmICghaXNDbGlja1RyaWdnZXJFbGVtZW50ICYmICFpc0NsaWNrRHJvcGRvd25Db250ZW50cykge1xuICAgICAgICAgICAgY29uc3QgZWxlbXMgPSB0aGlzLl9kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkci1kcm9wZG93bicpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBlbGVtcy5mb3JFYWNoKGl0ZW0gPT4gaXRlbS5yZW1vdmUoKSksIDEwMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNob3dNZW51KG9wdGlvbnM6IElEcm9wZG93bjxUPikge1xuICAgICAgICBjb25zdCBjb21wb25lbnRGYWN0b3J5OiBDb21wb25lbnRGYWN0b3J5PERyRHJvcGRvd25Db21wb25lbnQ+ID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoRHJEcm9wZG93bkNvbXBvbmVudCk7XG4gICAgICAgIHRoaXMuY29udGVudENtcFJlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50RmFjdG9yeSk7XG4gICAgICAgIHRoaXMuc2VydmljZS5hZGRNZW51ID0gdGhpcy5jb250ZW50Q21wUmVmO1xuICAgICAgICB0aGlzLl9kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdkci1sYXlvdXQnKS5hcHBlbmRDaGlsZCh0aGlzLmNvbnRlbnRDbXBSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIHRoaXMuY29udGVudENtcFJlZi5pbnN0YW5jZS5vcHRpb25zID0gb3B0aW9ucztcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRlbnRDbXBSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGVudENtcFJlZi5kZXN0cm95KCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,34 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { DrDropdownPositionDirective } from './dr-dropdown-position.directive';
3
+ import { DrDropdownDirective } from './dr-dropdown.directive';
4
+ import { DrDropdownComponent } from './dr-dropdown.component';
5
+ import { CommonModule } from '@angular/common';
6
+ import { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';
7
+ import { DrDropdownItemShowPipe } from './dr-dropdown-item-show.pipe';
8
+ import { DrDropdownService } from './dr-dropdown.service';
9
+ export class DrDropdownModule {
10
+ }
11
+ DrDropdownModule.decorators = [
12
+ { type: NgModule, args: [{
13
+ imports: [
14
+ CommonModule,
15
+ DrTooltipModule,
16
+ ],
17
+ declarations: [
18
+ DrDropdownDirective,
19
+ DrDropdownPositionDirective,
20
+ DrDropdownComponent,
21
+ DrDropdownItemShowPipe,
22
+ ],
23
+ exports: [
24
+ DrDropdownDirective,
25
+ DrDropdownPositionDirective,
26
+ DrDropdownComponent,
27
+ DrDropdownItemShowPipe,
28
+ ],
29
+ providers: [
30
+ DrDropdownService,
31
+ ],
32
+ },] }
33
+ ];
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZHJvcGRvd24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZHJvcGRvd24vZHItZHJvcGRvd24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDL0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQXdCMUQsTUFBTSxPQUFPLGdCQUFnQjs7O1lBdEI1QixRQUFRLFNBQUM7Z0JBQ04sT0FBTyxFQUFFO29CQUNMLFlBQVk7b0JBQ1osZUFBZTtpQkFDbEI7Z0JBQ0QsWUFBWSxFQUFFO29CQUNWLG1CQUFtQjtvQkFDbkIsMkJBQTJCO29CQUMzQixtQkFBbUI7b0JBQ25CLHNCQUFzQjtpQkFDekI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNMLG1CQUFtQjtvQkFDbkIsMkJBQTJCO29CQUMzQixtQkFBbUI7b0JBQ25CLHNCQUFzQjtpQkFDekI7Z0JBQ0QsU0FBUyxFQUFFO29CQUNQLGlCQUFpQjtpQkFDcEI7YUFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEckRyb3Bkb3duUG9zaXRpb25EaXJlY3RpdmUgfSBmcm9tICcuL2RyLWRyb3Bkb3duLXBvc2l0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEckRyb3Bkb3duRGlyZWN0aXZlIH0gZnJvbSAnLi9kci1kcm9wZG93bi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRHJEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4vZHItZHJvcGRvd24uY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEclRvb2x0aXBNb2R1bGUgfSBmcm9tICcuLi9kci10b29sdGlwL2RyLXRvb2x0aXAubW9kdWxlJztcbmltcG9ydCB7IERyRHJvcGRvd25JdGVtU2hvd1BpcGUgfSBmcm9tICcuL2RyLWRyb3Bkb3duLWl0ZW0tc2hvdy5waXBlJztcbmltcG9ydCB7IERyRHJvcGRvd25TZXJ2aWNlIH0gZnJvbSAnLi9kci1kcm9wZG93bi5zZXJ2aWNlJztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgRHJUb29sdGlwTW9kdWxlLFxuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIERyRHJvcGRvd25EaXJlY3RpdmUsXG4gICAgICAgIERyRHJvcGRvd25Qb3NpdGlvbkRpcmVjdGl2ZSxcbiAgICAgICAgRHJEcm9wZG93bkNvbXBvbmVudCxcbiAgICAgICAgRHJEcm9wZG93bkl0ZW1TaG93UGlwZSxcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgRHJEcm9wZG93bkRpcmVjdGl2ZSxcbiAgICAgICAgRHJEcm9wZG93blBvc2l0aW9uRGlyZWN0aXZlLFxuICAgICAgICBEckRyb3Bkb3duQ29tcG9uZW50LFxuICAgICAgICBEckRyb3Bkb3duSXRlbVNob3dQaXBlLFxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIERyRHJvcGRvd25TZXJ2aWNlLFxuICAgIF0sXG59KVxuXG5leHBvcnQgY2xhc3MgRHJEcm9wZG93bk1vZHVsZSB7XG59XG4iXX0=
@@ -0,0 +1,24 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export class DrDropdownService {
5
+ constructor() {
6
+ this.actionItem = new Subject();
7
+ }
8
+ set addMenu(item) {
9
+ this.menuInView = item;
10
+ }
11
+ destroy() {
12
+ if (this.menuInView) {
13
+ this.menuInView.destroy();
14
+ }
15
+ }
16
+ }
17
+ DrDropdownService.ɵprov = i0.ɵɵdefineInjectable({ factory: function DrDropdownService_Factory() { return new DrDropdownService(); }, token: DrDropdownService, providedIn: "root" });
18
+ DrDropdownService.decorators = [
19
+ { type: Injectable, args: [{
20
+ providedIn: 'root'
21
+ },] }
22
+ ];
23
+ DrDropdownService.ctorParameters = () => [];
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZHJvcGRvd24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWRyb3Bkb3duL2RyLWRyb3Bkb3duLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFPL0IsTUFBTSxPQUFPLGlCQUFpQjtJQUsxQjtRQUhBLGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBNEIsQ0FBQztJQUlyRCxDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsSUFBdUM7UUFDL0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDM0IsQ0FBQztJQUVELE9BQU87UUFDSCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUM3QjtJQUNMLENBQUM7Ozs7WUFuQkosVUFBVSxTQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50UmVmLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEckRyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi9kci1kcm9wZG93bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSURyb3Bkb3duQWN0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL2Ryb3Bkb3duJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBEckRyb3Bkb3duU2VydmljZSB7XG5cbiAgICBhY3Rpb25JdGVtID0gbmV3IFN1YmplY3Q8SURyb3Bkb3duQWN0aW9uPHVua25vd24+PigpO1xuICAgIHByb3RlY3RlZCBtZW51SW5WaWV3OiBDb21wb25lbnRSZWY8RHJEcm9wZG93bkNvbXBvbmVudD47XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICB9XG5cbiAgICBzZXQgYWRkTWVudShpdGVtOiBDb21wb25lbnRSZWY8RHJEcm9wZG93bkNvbXBvbmVudD4pIHtcbiAgICAgICAgdGhpcy5tZW51SW5WaWV3ID0gaXRlbTtcbiAgICB9XG5cbiAgICBkZXN0cm95KCkge1xuICAgICAgICBpZiAodGhpcy5tZW51SW5WaWV3KSB7XG4gICAgICAgICAgICB0aGlzLm1lbnVJblZpZXcuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -0,0 +1,103 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { find as _find, isNumber as _isNumber, isObject as _isObject, isNil as _isNil, map as _map } from 'lodash';
3
+ import * as moment from 'moment';
4
+ export class DrDynamicTagComponent {
5
+ constructor() {
6
+ this.lockedTags = [];
7
+ this.tagChange = new EventEmitter();
8
+ this.tagAdd = new EventEmitter();
9
+ }
10
+ get isPrimitiveDataSource() {
11
+ const values = Object.values(this.values) || [];
12
+ return !_isObject(values[0]);
13
+ }
14
+ ngOnChanges(changes) {
15
+ this.updateDynamicTagValues();
16
+ }
17
+ onTagChanged($event) {
18
+ var _a, _b;
19
+ const resultEvent = {
20
+ id: this.tagConfig.id,
21
+ name: this.tagConfig.name,
22
+ value: $event,
23
+ locked: this.lockedTags.includes($event)
24
+ };
25
+ if (!_isNil((_a = this.selectedTag) === null || _a === void 0 ? void 0 : _a.locked)) {
26
+ resultEvent.locked = this.selectedTag.locked;
27
+ }
28
+ if (!_isNil((_b = this.selectedTag) === null || _b === void 0 ? void 0 : _b.label)) {
29
+ resultEvent.label = this.selectedTag.label;
30
+ }
31
+ this.isLockedTagSelected = resultEvent.locked;
32
+ this.tagChange.emit(resultEvent);
33
+ }
34
+ onOptionClick($event, tagValue) {
35
+ if (this.lockedTags.includes(tagValue)) {
36
+ $event.stopImmediatePropagation();
37
+ }
38
+ }
39
+ onDynamicValueAdd($event) {
40
+ const parentValueKey = this.getParentValueKey();
41
+ const parentValues = this.values[parentValueKey] || [];
42
+ if (this.isPrimitiveDataSource) {
43
+ this.values[parentValueKey] = [$event, ...parentValues];
44
+ }
45
+ else {
46
+ this.values[parentValueKey] = [{ value: $event }, ...parentValues];
47
+ }
48
+ this.selectedDynamicTag = $event;
49
+ this.currentValues = this.values[parentValueKey];
50
+ this.onTagChanged($event);
51
+ this.tagAdd.emit($event);
52
+ }
53
+ updateDynamicTagValues() {
54
+ var _a;
55
+ const parentValueKey = this.getParentValueKey();
56
+ this.currentValues = this.values[parentValueKey];
57
+ this.selectedDynamicTag = this.getSelectedDynamicTag(this.currentValues, (_a = this.selectedTag) === null || _a === void 0 ? void 0 : _a.value);
58
+ this.onTagChanged(this.selectedDynamicTag);
59
+ }
60
+ getSelectedDynamicTag(currentValues, selectedValue) {
61
+ if (!(currentValues === null || currentValues === void 0 ? void 0 : currentValues.length))
62
+ return null;
63
+ if (_isObject(currentValues[0])) {
64
+ const valueFromConfig = _find(currentValues, { value: selectedValue });
65
+ const favoriteValue = _find(currentValues, { is_favorite: true });
66
+ return (valueFromConfig || favoriteValue || currentValues[0]).value;
67
+ }
68
+ const valueFromConfig = _find(currentValues, (value) => value === selectedValue);
69
+ return (valueFromConfig || currentValues[0]);
70
+ }
71
+ getParentValueKey() {
72
+ return _map(this.connectedTags, this.tryToParseParentValue).join('__');
73
+ }
74
+ tryToParseParentValue(connectedTags) {
75
+ if (_isNumber(connectedTags.value)) {
76
+ const momentData = moment.unix(connectedTags.value);
77
+ const convertedParentValue = momentData.get('year'); // TODO: add input prop (selectedTimeDimension) or Format
78
+ if (momentData.isValid() && convertedParentValue) {
79
+ return convertedParentValue;
80
+ }
81
+ }
82
+ return connectedTags.value;
83
+ }
84
+ }
85
+ DrDynamicTagComponent.decorators = [
86
+ { type: Component, args: [{
87
+ selector: 'dr-dynamic-tag',
88
+ template: "<p class=\"dynamic-tag__label\">{{ tagConfig.name }}</p>\n<dr-select [(ngModel)]=\"selectedDynamicTag\"\n [class.dynamic-tag__locked]=\"isLockedTagSelected\"\n bindLabel=\"value\"\n bindValue=\"value\"\n [items]=\"currentValues\"\n [disabled]=\"disabled\"\n dropdownClass=\"dynamic-tag__select dr-tag__select\"\n (ngModelChange)=\"onTagChanged($event)\">\n <ng-template #optionHeaderTemplate *ngIf=\"isDynamicTagAddEnabled\">\n <dr-select-add-item bindValue=\"value\"\n [values]=\"currentValues\"\n [dynamicAddLabel]=\"' Add new ' + tagConfig.name\"\n (dynamicValueAdded)=\"onDynamicValueAdd($event)\"></dr-select-add-item>\n </ng-template>\n <ng-template #labelTemplate let-item=\"item\">\n <div class=\"dynamic-tag__field--label\">\n <p class=\"dynamic-tag__field__text\">{{ item?.value || item }}</p>\n <i *ngIf=\"item?.is_favorite\" class=\"dynamic-tag__field__icon dr-icon-star-fill\"></i>\n </div>\n </ng-template>\n <ng-template #optionTemplate let-item=\"item\">\n <div class=\"dynamic-tag__field--option\"\n [class.disabled]=\"lockedTags.includes(item?.value || item)\"\n (click)=\"onOptionClick($event, item?.value || item)\">\n <p class=\"dynamic-tag__field__text\">{{ item?.value || item }}</p>\n <i *ngIf=\"item?.is_favorite\" class=\"dynamic-tag__field__icon dr-icon-star-fill\"></i>\n </div>\n </ng-template>\n</dr-select>\n",
89
+ styles: [".dynamic-tag__label{margin:0 0 4px;color:#0c142b;font-size:14px;font-weight:400;line-height:22px}.dynamic-tag__field,.dynamic-tag__field--option,.dynamic-tag__field--label{cursor:pointer;height:24px}.dynamic-tag__field--option{padding:8px 12px;width:100%;display:flex;justify-content:space-between;align-items:center}.dynamic-tag__field--option.disabled{opacity:.5;box-sizing:content-box}.dynamic-tag__field--label{display:flex;align-items:center}.dynamic-tag__field--label>.dynamic-tag__field__icon{position:absolute;right:25px}.dynamic-tag__field--label>dynamic-tag__field__text{margin:0}.dr-icon-star-fill{color:#f0bc57}::ng-deep dr-select.dynamic-tag__locked>ng-select>.ng-select-container{opacity:.4}::ng-deep .ng-option:has(.dynamic-tag__field--option){padding:0!important}\n"]
90
+ },] }
91
+ ];
92
+ DrDynamicTagComponent.propDecorators = {
93
+ values: [{ type: Input }],
94
+ tagConfig: [{ type: Input }],
95
+ selectedTag: [{ type: Input }],
96
+ lockedTags: [{ type: Input }],
97
+ connectedTags: [{ type: Input }],
98
+ isDynamicTagAddEnabled: [{ type: Input }],
99
+ disabled: [{ type: Input }],
100
+ tagChange: [{ type: Output }],
101
+ tagAdd: [{ type: Output }]
102
+ };
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZHluYW1pYy10YWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZHluYW1pYy10YWcvZHItZHluYW1pYy10YWcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRVQsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUUsUUFBUSxJQUFJLFNBQVMsRUFBRSxRQUFRLElBQUksU0FBUyxFQUFFLEtBQUssSUFBSSxNQUFNLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUVuSCxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQU9qQyxNQUFNLE9BQU8scUJBQXFCO0lBTGxDO1FBV29CLGVBQVUsR0FBVSxFQUFFLENBQUM7UUFLN0IsY0FBUyxHQUFnQyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQUMzRSxXQUFNLEdBQW1DLElBQUksWUFBWSxFQUFvQixDQUFDO0lBOEY1RixDQUFDO0lBeEZHLElBQVcscUJBQXFCO1FBQzVCLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNoRCxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFTSxXQUFXLENBQUMsT0FBc0I7UUFDckMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVNLFlBQVksQ0FBQyxNQUFjOztRQUM5QixNQUFNLFdBQVcsR0FBa0I7WUFDL0IsRUFBRSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNyQixJQUFJLEVBQUUs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XG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmluZCBhcyBfZmluZCwgaXNOdW1iZXIgYXMgX2lzTnVtYmVyLCBpc09iamVjdCBhcyBfaXNPYmplY3QsIGlzTmlsIGFzIF9pc05pbCwgbWFwIGFzIF9tYXAgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgSUR5bmFtaWNUYWcsIElUYWcsIElUYWdGb3JTZXJ2ZXIsIFREeW5hbWljVGFnLCBURHluYW1pY1RhZ1ZhbHVlIH0gZnJvbSAnLi4vbW9kZWxzL3NlcnZlclRhZ3MnO1xuaW1wb3J0ICogYXMgbW9tZW50IGZyb20gJ21vbWVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZHItZHluYW1pYy10YWcnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kci1keW5hbWljLXRhZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHItZHluYW1pYy10YWcuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEckR5bmFtaWNUYWdDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuXG4gICAgQElucHV0KCkgcHVibGljIHZhbHVlczogVER5bmFtaWNUYWc7XG4gICAgQElucHV0KCkgcHVibGljIHRhZ0NvbmZpZzogSVRhZztcbiAgICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0ZWRUYWc6IElUYWdGb3JTZXJ2ZXI7XG5cbiAgICBASW5wdXQoKSBwdWJsaWMgbG9ja2VkVGFnczogYW55W10gPSBbXTtcbiAgICBASW5wdXQoKSBwdWJsaWMgY29ubmVjdGVkVGFnczogSVRhZ0ZvclNlcnZlcltdO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpc0R5bmFtaWNUYWdBZGRFbmFibGVkOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbjtcblxuICAgIEBPdXRwdXQoKSB0YWdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJVGFnRm9yU2VydmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8SVRhZ0ZvclNlcnZlcj4oKTtcbiAgICBAT3V0cHV0KCkgdGFnQWRkOiBFdmVudEVtaXR0ZXI8VER5bmFtaWNUYWdWYWx1ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPFREeW5hbWljVGFnVmFsdWU+KCk7XG5cbiAgICBwdWJsaWMgc2VsZWN0ZWREeW5hbWljVGFnOiBURHluYW1pY1RhZ1ZhbHVlO1xuICAgIHB1YmxpYyBjdXJyZW50VmFsdWVzOiBURHluYW1pY1RhZ1ZhbHVlW107XG4gICAgcHVibGljIGlzTG9ja2VkVGFnU2VsZWN0ZWQ6IGJvb2xlYW47XG5cbiAgICBwdWJsaWMgZ2V0IGlzUHJpbWl0aXZlRGF0YVNvdXJjZSgpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgdmFsdWVzID0gT2JqZWN0LnZhbHVlcyh0aGlzLnZhbHVlcykgfHwgW107XG4gICAgICAgIHJldHVybiAhX2lzT2JqZWN0KHZhbHVlc1swXSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVEeW5hbWljVGFnVmFsdWVzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uVGFnQ2hhbmdlZCgkZXZlbnQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCByZXN1bHRFdmVudDogSVRhZ0ZvclNlcnZlciA9IHtcbiAgICAgICAgICAgIGlkOiB0aGlzLnRhZ0NvbmZpZy5pZCxcbiAgICAgICAgICAgIG5hbWU6IHRoaXMudGFnQ29uZmlnLm5hbWUsXG4gICAgICAgICAgICB2YWx1ZTogJGV2ZW50LFxuICAgICAgICAgICAgbG9ja2VkOiB0aGlzLmxvY2tlZFRhZ3MuaW5jbHVkZXMoJGV2ZW50KVxuICAgICAgICB9O1xuXG4gICAgICAgIGlmICghX2lzTmlsKHRoaXMuc2VsZWN0ZWRUYWc/LmxvY2tlZCkpIHtcbiAgICAgICAgICAgIHJlc3VsdEV2ZW50LmxvY2tlZCA9IHRoaXMuc2VsZWN0ZWRUYWcubG9ja2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFfaXNOaWwodGhpcy5zZWxlY3RlZFRhZz8ubGFiZWwpKSB7XG4gICAgICAgICAgICByZXN1bHRFdmVudC5sYWJlbCA9IHRoaXMuc2VsZWN0ZWRUYWcubGFiZWw7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmlzTG9ja2VkVGFnU2VsZWN0ZWQgPSByZXN1bHRFdmVudC5sb2NrZWQ7XG4gICAgICAgIHRoaXMudGFnQ2hhbmdlLmVtaXQocmVzdWx0RXZlbnQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbk9wdGlvbkNsaWNrKCRldmVudDogRXZlbnQsIHRhZ1ZhbHVlOiBzdHJpbmcgfCBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubG9ja2VkVGFncy5pbmNsdWRlcyh0YWdWYWx1ZSkpIHtcbiAgICAgICAgICAgICRldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbkR5bmFtaWNWYWx1ZUFkZCgkZXZlbnQ6IHN0cmluZykge1xuICAgICAgICBjb25zdCBwYXJlbnRWYWx1ZUtleSA9IHRoaXMuZ2V0UGFyZW50VmFsdWVLZXkoKTtcbiAgICAgICAgY29uc3QgcGFyZW50VmFsdWVzID0gdGhpcy52YWx1ZXNbcGFyZW50VmFsdWVLZXldIHx8IFtdO1xuXG4gICAgICAgIGlmICh0aGlzLmlzUHJpbWl0aXZlRGF0YVNvdXJjZSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZXNbcGFyZW50VmFsdWVLZXldID0gWyRldmVudCwgLi4ucGFyZW50VmFsdWVzXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWVzW3BhcmVudFZhbHVlS2V5XSA9IFt7IHZhbHVlOiAkZXZlbnQgfSwgLi4ucGFyZW50VmFsdWVzXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREeW5hbWljVGFnID0gJGV2ZW50O1xuXG4gICAgICAgIHRoaXMuY3VycmVudFZhbHVlcyA9IHRoaXMudmFsdWVzW3BhcmVudFZhbHVlS2V5XTtcbiAgICAgICAgdGhpcy5vblRhZ0NoYW5nZWQoJGV2ZW50KTtcbiAgICAgICAgdGhpcy50YWdBZGQuZW1pdCgkZXZlbnQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlRHluYW1pY1RhZ1ZhbHVlcygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcGFyZW50VmFsdWVLZXkgPSB0aGlzLmdldFBhcmVudFZhbHVlS2V5KCk7XG4gICAgICAgIHRoaXMuY3VycmVudFZhbHVlcyA9IHRoaXMudmFsdWVzW3BhcmVudFZhbHVlS2V5XTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZER5bmFtaWNUYWcgPSB0aGlzLmdldFNlbGVjdGVkRHluYW1pY1RhZyh0aGlzLmN1cnJlbnRWYWx1ZXMsIHRoaXMuc2VsZWN0ZWRUYWc/LnZhbHVlKTtcbiAgICAgICAgdGhpcy5vblRhZ0NoYW5nZWQodGhpcy5zZWxlY3RlZER5bmFtaWNUYWcpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2VsZWN0ZWREeW5hbWljVGFnKGN1cnJlbnRWYWx1ZXM6IFREeW5hbWljVGFnVmFsdWVbXSwgc2VsZWN0ZWRWYWx1ZTogc3RyaW5nIHwgbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCFjdXJyZW50VmFsdWVzPy5sZW5ndGgpIHJldHVybiBudWxsO1xuXG4gICAgICAgIGlmIChfaXNPYmplY3QoY3VycmVudFZhbHVlc1swXSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlRnJvbUNvbmZpZyA9IF9maW5kKGN1cnJlbnRWYWx1ZXMsIHsgdmFsdWU6IHNlbGVjdGVkVmFsdWUgfSkgYXMgSUR5bmFtaWNUYWc7XG4gICAgICAgICAgICBjb25zdCBmYXZvcml0ZVZhbHVlID0gX2ZpbmQoY3VycmVudFZhbHVlcywgeyBpc19mYXZvcml0ZTogdHJ1ZSB9KSBhcyBJRHluYW1pY1RhZztcbiAgICAgICAgICAgIHJldHVybiAodmFsdWVGcm9tQ29uZmlnIHx8IGZhdm9yaXRlVmFsdWUgfHwgY3VycmVudFZhbHVlc1swXSkudmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB2YWx1ZUZyb21Db25maWcgPSBfZmluZChjdXJyZW50VmFsdWVzLCAodmFsdWUpID0+IHZhbHVlID09PSBzZWxlY3RlZFZhbHVlKTtcbiAgICAgICAgcmV0dXJuICh2YWx1ZUZyb21Db25maWcgfHwgY3VycmVudFZhbHVlc1swXSkgYXMgc3RyaW5nO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UGFyZW50VmFsdWVLZXkoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIF9tYXAodGhpcy5jb25uZWN0ZWRUYWdzLCB0aGlzLnRyeVRvUGFyc2VQYXJlbnRWYWx1ZSkuam9pbignX18nKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHRyeVRvUGFyc2VQYXJlbnRWYWx1ZShjb25uZWN0ZWRUYWdzOiBJVGFnRm9yU2VydmVyKSB7XG4gICAgICAgIGlmIChfaXNOdW1iZXIoY29ubmVjdGVkVGFncy52YWx1ZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IG1vbWVudERhdGEgPSBtb21lbnQudW5peChjb25uZWN0ZWRUYWdzLnZhbHVlKTtcbiAgICAgICAgICAgIGNvbnN0IGNvbnZlcnRlZFBhcmVudFZhbHVlID0gbW9tZW50RGF0YS5nZXQoJ3llYXInKTsgLy8gVE9ETzogYWRkIGlucHV0IHByb3AgKHNlbGVjdGVkVGltZURpbWVuc2lvbikgb3IgRm9ybWF0XG5cbiAgICAgICAgICAgIGlmIChtb21lbnREYXRhLmlzVmFsaWQoKSAmJiBjb252ZXJ0ZWRQYXJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb252ZXJ0ZWRQYXJlbnRWYWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb25uZWN0ZWRUYWdzLnZhbHVlO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,19 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { DrDynamicTagComponent } from './dr-dynamic-tag.component';
4
+ import { DrInputsModule } from '../dr-inputs/dr-inputs.module';
5
+ import { FormsModule } from '@angular/forms';
6
+ export class DrDynamicTagModule {
7
+ }
8
+ DrDynamicTagModule.decorators = [
9
+ { type: NgModule, args: [{
10
+ declarations: [DrDynamicTagComponent],
11
+ imports: [
12
+ CommonModule,
13
+ DrInputsModule,
14
+ FormsModule,
15
+ ],
16
+ exports: [DrDynamicTagComponent]
17
+ },] }
18
+ ];
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZHluYW1pYy10YWcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItZHluYW1pYy10YWcvZHItZHluYW1pYy10YWcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFXN0MsTUFBTSxPQUFPLGtCQUFrQjs7O1lBVDlCLFFBQVEsU0FBQztnQkFDTixZQUFZLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztnQkFDckMsT0FBTyxFQUFFO29CQUNMLFlBQVk7b0JBQ1osY0FBYztvQkFDZCxXQUFXO2lCQUNkO2dCQUNELE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDO2FBQ25DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEckR5bmFtaWNUYWdDb21wb25lbnQgfSBmcm9tICcuL2RyLWR5bmFtaWMtdGFnLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEcklucHV0c01vZHVsZSB9IGZyb20gJy4uL2RyLWlucHV0cy9kci1pbnB1dHMubW9kdWxlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW0RyRHluYW1pY1RhZ0NvbXBvbmVudF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIERySW5wdXRzTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtEckR5bmFtaWNUYWdDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIERyRHluYW1pY1RhZ01vZHVsZSB7XG59XG4iXX0=