@datarailsshared/datarailsshared 1.4.195-rocket → 1.4.202

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 (360) hide show
  1. package/_datarailsshared.styles.css +4 -4
  2. package/assets/styles/_styles.scss +2 -2
  3. package/assets/styles/mixins.scss +7 -0
  4. package/bundles/datarailsshared-datarailsshared.umd.js +8041 -0
  5. package/bundles/datarailsshared-datarailsshared.umd.js.map +1 -0
  6. package/datarailsshared-datarailsshared-1.4.202.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-avatar/dr-avatar.component.js +44 -0
  24. package/esm2015/lib/dr-avatar/dr-avatar.module.js +26 -0
  25. package/esm2015/lib/dr-avatar/dr-avatar.pipe.js +16 -0
  26. package/esm2015/lib/dr-badge-status/dr-badge-status.component.js +25 -0
  27. package/esm2015/lib/dr-badge-status/dr-badge-status.module.js +20 -0
  28. package/esm2015/lib/dr-chat/chat.component.js +119 -0
  29. package/esm2015/lib/dr-chat/chat.module.js +41 -0
  30. package/esm2015/lib/dr-chat/dr-chat-form/chat-form.component.js +155 -0
  31. package/esm2015/lib/dr-chat/dr-chat-message/chat-message.component.js +71 -0
  32. package/{esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive.mjs → esm2015/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive.js} +21 -21
  33. package/esm2015/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.service.js +23 -0
  34. package/esm2015/lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component.js +47 -0
  35. package/esm2015/lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component.js +18 -0
  36. package/esm2015/lib/dr-chat/dr-chat-suggestions/chat-suggestions.component.js +87 -0
  37. package/esm2015/lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component.js +15 -0
  38. package/esm2015/lib/dr-details-list/dr-details-list.component.js +65 -0
  39. package/esm2015/lib/dr-details-list/dr-details-list.module.js +16 -0
  40. package/esm2015/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.js +70 -0
  41. package/esm2015/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.js +92 -0
  42. package/esm2015/lib/dr-dialog/dialog.module.js +34 -0
  43. package/esm2015/lib/dr-dialog/interfaces/dialog-data.js +25 -0
  44. package/esm2015/lib/dr-dialog/services/dialog.service.js +78 -0
  45. package/esm2015/lib/dr-dropdown/dr-dropdown-item-show.pipe.js +12 -0
  46. package/esm2015/lib/dr-dropdown/dr-dropdown-position.directive.js +104 -0
  47. package/esm2015/lib/dr-dropdown/dr-dropdown.component.js +114 -0
  48. package/esm2015/lib/dr-dropdown/dr-dropdown.directive.js +104 -0
  49. package/esm2015/lib/dr-dropdown/dr-dropdown.module.js +34 -0
  50. package/esm2015/lib/dr-dropdown/dr-dropdown.service.js +24 -0
  51. package/esm2015/lib/dr-dynamic-tag/dr-dynamic-tag.component.js +103 -0
  52. package/esm2015/lib/dr-dynamic-tag/dr-dynamic-tag.module.js +19 -0
  53. package/esm2015/lib/dr-error/dr-error.component.js +64 -0
  54. package/esm2015/lib/dr-error/dr-error.module.js +22 -0
  55. package/esm2015/lib/dr-inputs/button/button.component.js +39 -0
  56. package/esm2015/lib/dr-inputs/checkbox/checkbox.component.js +65 -0
  57. package/esm2015/lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive.js +47 -0
  58. package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.js +216 -0
  59. package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.js +180 -0
  60. package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.js +183 -0
  61. package/esm2015/lib/dr-inputs/date-pickers/dr-show-timeframe.pipe.js +12 -0
  62. package/esm2015/lib/dr-inputs/date-pickers/services/dr-date-picker.service.js +194 -0
  63. package/esm2015/lib/dr-inputs/dr-input/dr-input.component.js +194 -0
  64. package/esm2015/lib/dr-inputs/dr-inputs.module.js +66 -0
  65. package/esm2015/lib/dr-inputs/dr-model-debounce-change.directive.js +29 -0
  66. package/esm2015/lib/dr-inputs/dr-select/dr-select.component.js +119 -0
  67. package/esm2015/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.js +74 -0
  68. package/esm2015/lib/dr-inputs/dr-toggle/dr-toggle.component.js +68 -0
  69. package/esm2015/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.js +63 -0
  70. package/esm2015/lib/dr-inputs/radio-button/radio-button.component.js +73 -0
  71. package/esm2015/lib/dr-inputs/radio-button/radio-group.component.js +157 -0
  72. package/esm2015/lib/dr-layout/dr-layout-body.component.js +13 -0
  73. package/esm2015/lib/dr-layout/dr-layout-header.component.js +17 -0
  74. package/esm2015/lib/dr-layout/dr-layout.component.js +14 -0
  75. package/esm2015/lib/dr-layout/dr-layout.module.js +20 -0
  76. package/esm2015/lib/dr-popover/dr-popover-ref.js +20 -0
  77. package/esm2015/lib/dr-popover/dr-popover.component.js +106 -0
  78. package/esm2015/lib/dr-popover/dr-popover.directive.js +84 -0
  79. package/esm2015/lib/dr-popover/dr-popover.module.js +23 -0
  80. package/esm2015/lib/dr-popover/dr-popover.service.js +106 -0
  81. package/esm2015/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.js +102 -0
  82. package/esm2015/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.js +74 -0
  83. package/esm2015/lib/dr-scenario/consts/scenario-tags-config.js +73 -0
  84. package/esm2015/lib/dr-scenario/dr-scenario.module.js +28 -0
  85. package/esm2015/lib/dr-scenario/services/scenario.service.js +167 -0
  86. package/esm2015/lib/dr-spinner/dr-spinner.component.js +18 -0
  87. package/esm2015/lib/dr-spinner/dr-spinner.directive.js +56 -0
  88. package/esm2015/lib/dr-spinner/dr-spinner.module.js +18 -0
  89. package/esm2015/lib/dr-tabs/dr-tab.component.js +26 -0
  90. package/esm2015/lib/dr-tabs/dr-tabs.component.js +35 -0
  91. package/esm2015/lib/dr-tabs/dr-tabs.module.js +32 -0
  92. package/esm2015/lib/dr-tags/dr-tag.component.js +177 -0
  93. package/esm2015/lib/dr-tags/dr-tag.module.js +24 -0
  94. package/esm2015/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.js +19 -0
  95. package/esm2015/lib/dr-tooltip/components/tooltip-info-simple/tooltip-info-simple.component.js +18 -0
  96. package/esm2015/lib/dr-tooltip/components/tooltip-no-body/tooltip-no-body.component.js +20 -0
  97. package/esm2015/lib/dr-tooltip/components/tooltip-process-default/tooltip-process-default.component.js +34 -0
  98. package/esm2015/lib/dr-tooltip/dr-tooltip.component.js +40 -0
  99. package/esm2015/lib/dr-tooltip/dr-tooltip.directive.js +147 -0
  100. package/esm2015/lib/dr-tooltip/dr-tooltip.module.js +35 -0
  101. package/esm2015/lib/dr-treeview/components/treeview/treeview.component.js +210 -0
  102. package/esm2015/lib/dr-treeview/components/treeview-item/treeview-item.component.js +58 -0
  103. package/esm2015/lib/dr-treeview/dr-tree-view.module.js +38 -0
  104. package/esm2015/lib/dr-treeview/helpers/treeview-event-parser.js +97 -0
  105. package/esm2015/lib/dr-treeview/models/treeview-config.js +22 -0
  106. package/esm2015/lib/dr-treeview/models/treeview-i18n.js +42 -0
  107. package/esm2015/lib/dr-treeview/models/treeview-item.js +155 -0
  108. package/esm2015/lib/dr-treeview/pipes/treeview.pipe.js +17 -0
  109. package/esm2015/lib/list-tags/list-tag.component.js +37 -0
  110. package/esm2015/lib/list-tags/list-tag.module.js +23 -0
  111. package/esm2015/lib/models/chat.js +36 -0
  112. package/esm2015/lib/models/datePicker.js +73 -0
  113. package/esm2015/lib/models/popover.js +27 -0
  114. package/esm2015/lib/stepper/stepper.component.js +55 -0
  115. package/esm2015/lib/stepper/stepper.module.js +17 -0
  116. package/esm2015/public-api.js +93 -0
  117. package/fesm2015/datarailsshared-datarailsshared.js +6885 -0
  118. package/fesm2015/datarailsshared-datarailsshared.js.map +1 -0
  119. package/lib/date-tags/date-tag.component.d.ts +16 -4
  120. package/lib/date-tags/date-tag.module.d.ts +2 -19
  121. package/lib/date-tags/day-tag/day-tag.component.d.ts +1 -4
  122. package/lib/date-tags/forecast-tag/forecast-tag.component.d.ts +2 -5
  123. package/lib/date-tags/month-tag/month-tag.component.d.ts +1 -4
  124. package/lib/date-tags/quarter-tag/quarter-tag.component.d.ts +1 -4
  125. package/lib/date-tags/week-tag/week-tag.component.d.ts +1 -4
  126. package/lib/date-tags/year-tag/year-tag.component.d.ts +1 -4
  127. package/lib/dr-accordion/accordion-item-body.component.d.ts +0 -3
  128. package/lib/dr-accordion/accordion-item-header.component.d.ts +0 -3
  129. package/lib/dr-accordion/accordion-item.component.d.ts +0 -3
  130. package/lib/dr-accordion/accordion.component.d.ts +0 -3
  131. package/lib/dr-accordion/accordion.module.d.ts +0 -9
  132. package/lib/dr-avatar/dr-avatar.component.d.ts +0 -3
  133. package/lib/dr-avatar/dr-avatar.module.d.ts +0 -9
  134. package/lib/dr-avatar/dr-avatar.pipe.d.ts +0 -3
  135. package/lib/dr-badge-status/dr-badge-status.component.d.ts +0 -3
  136. package/lib/dr-badge-status/dr-badge-status.module.d.ts +0 -7
  137. package/lib/dr-chat/chat.component.d.ts +0 -3
  138. package/lib/dr-chat/chat.module.d.ts +0 -17
  139. package/lib/dr-chat/dr-chat-form/chat-form.component.d.ts +0 -3
  140. package/lib/dr-chat/dr-chat-message/chat-message.component.d.ts +0 -3
  141. package/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive.d.ts +0 -3
  142. package/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.service.d.ts +0 -3
  143. package/lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component.d.ts +0 -3
  144. package/lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component.d.ts +0 -3
  145. package/lib/dr-chat/dr-chat-suggestions/chat-suggestions.component.d.ts +0 -3
  146. package/lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component.d.ts +0 -3
  147. package/lib/dr-details-list/dr-details-list.component.d.ts +0 -3
  148. package/lib/dr-details-list/dr-details-list.module.d.ts +0 -6
  149. package/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.d.ts +1 -4
  150. package/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.d.ts +1 -4
  151. package/lib/dr-dialog/dialog.module.d.ts +0 -12
  152. package/lib/dr-dialog/interfaces/dialog-data.d.ts +7 -7
  153. package/lib/dr-dialog/services/dialog.service.d.ts +1 -4
  154. package/lib/dr-dropdown/dr-dropdown-item-show.pipe.d.ts +0 -3
  155. package/lib/dr-dropdown/dr-dropdown-position.directive.d.ts +0 -3
  156. package/lib/dr-dropdown/dr-dropdown.component.d.ts +0 -3
  157. package/lib/dr-dropdown/dr-dropdown.directive.d.ts +0 -3
  158. package/lib/dr-dropdown/dr-dropdown.module.d.ts +0 -10
  159. package/lib/dr-dropdown/dr-dropdown.service.d.ts +0 -3
  160. package/lib/dr-dynamic-tag/dr-dynamic-tag.component.d.ts +0 -3
  161. package/lib/dr-dynamic-tag/dr-dynamic-tag.module.d.ts +0 -8
  162. package/lib/dr-error/dr-error.component.d.ts +0 -3
  163. package/lib/dr-error/dr-error.module.d.ts +0 -8
  164. package/lib/dr-inputs/button/button.component.d.ts +1 -4
  165. package/lib/dr-inputs/checkbox/checkbox.component.d.ts +0 -3
  166. package/lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive.d.ts +0 -3
  167. package/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.d.ts +0 -3
  168. package/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.d.ts +0 -3
  169. package/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.d.ts +8 -4
  170. package/lib/dr-inputs/date-pickers/dr-show-timeframe.pipe.d.ts +2 -4
  171. package/lib/dr-inputs/date-pickers/services/dr-date-picker.service.d.ts +0 -3
  172. package/lib/dr-inputs/dr-input/dr-input.component.d.ts +0 -3
  173. package/lib/dr-inputs/dr-inputs.module.d.ts +0 -25
  174. package/lib/dr-inputs/dr-model-debounce-change.directive.d.ts +0 -3
  175. package/lib/dr-inputs/dr-select/dr-select.component.d.ts +0 -3
  176. package/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.d.ts +0 -3
  177. package/lib/dr-inputs/dr-toggle/dr-toggle.component.d.ts +0 -3
  178. package/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.d.ts +0 -3
  179. package/lib/dr-inputs/radio-button/radio-button.component.d.ts +0 -3
  180. package/lib/dr-inputs/radio-button/radio-group.component.d.ts +0 -3
  181. package/lib/dr-layout/dr-layout-body.component.d.ts +0 -3
  182. package/lib/dr-layout/dr-layout-header.component.d.ts +0 -3
  183. package/lib/dr-layout/dr-layout.component.d.ts +0 -3
  184. package/lib/dr-layout/dr-layout.module.d.ts +0 -8
  185. package/lib/dr-popover/dr-popover.component.d.ts +4 -8
  186. package/lib/dr-popover/dr-popover.directive.d.ts +0 -3
  187. package/lib/dr-popover/dr-popover.module.d.ts +0 -7
  188. package/lib/dr-popover/dr-popover.service.d.ts +0 -3
  189. package/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.d.ts +0 -3
  190. package/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.d.ts +0 -3
  191. package/lib/dr-scenario/dr-scenario.module.d.ts +0 -10
  192. package/lib/dr-scenario/interfaces/scenario.d.ts +3 -3
  193. package/lib/dr-scenario/services/scenario.service.d.ts +0 -3
  194. package/lib/dr-spinner/dr-spinner.component.d.ts +0 -3
  195. package/lib/dr-spinner/dr-spinner.directive.d.ts +0 -3
  196. package/lib/dr-spinner/dr-spinner.module.d.ts +0 -7
  197. package/lib/dr-tabs/dr-tab.component.d.ts +0 -3
  198. package/lib/dr-tabs/dr-tabs.component.d.ts +0 -3
  199. package/lib/dr-tabs/dr-tabs.module.d.ts +0 -11
  200. package/lib/dr-tags/dr-tag.component.d.ts +0 -3
  201. package/lib/dr-tags/dr-tag.module.d.ts +0 -9
  202. package/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.d.ts +0 -3
  203. package/lib/dr-tooltip/components/tooltip-info-simple/tooltip-info-simple.component.d.ts +0 -3
  204. package/lib/dr-tooltip/components/tooltip-no-body/tooltip-no-body.component.d.ts +0 -3
  205. package/lib/dr-tooltip/components/tooltip-process-default/tooltip-process-default.component.d.ts +0 -3
  206. package/lib/dr-tooltip/dr-tooltip.component.d.ts +1 -4
  207. package/lib/dr-tooltip/dr-tooltip.directive.d.ts +0 -3
  208. package/lib/dr-tooltip/dr-tooltip.module.d.ts +0 -11
  209. package/lib/dr-tooltip/interfaces/tooltip-component-context.d.ts +1 -1
  210. package/lib/dr-treeview/components/treeview/treeview.component.d.ts +0 -3
  211. package/lib/dr-treeview/components/treeview-item/treeview-item.component.d.ts +0 -3
  212. package/lib/dr-treeview/dr-tree-view.module.d.ts +0 -9
  213. package/lib/dr-treeview/helpers/treeview-event-parser.d.ts +0 -9
  214. package/lib/dr-treeview/models/treeview-config.d.ts +0 -3
  215. package/lib/dr-treeview/models/treeview-i18n.d.ts +0 -5
  216. package/lib/dr-treeview/pipes/treeview.pipe.d.ts +0 -3
  217. package/lib/list-tags/list-tag.component.d.ts +0 -3
  218. package/lib/list-tags/list-tag.module.d.ts +0 -8
  219. package/lib/models/chat.d.ts +2 -2
  220. package/lib/models/datePicker.d.ts +3 -10
  221. package/lib/models/dropdown.d.ts +1 -1
  222. package/lib/models/popover.d.ts +1 -1
  223. package/lib/models/serverTags.d.ts +4 -4
  224. package/lib/stepper/interfaces/stepper.d.ts +1 -1
  225. package/lib/stepper/stepper.component.d.ts +0 -3
  226. package/lib/stepper/stepper.module.d.ts +0 -7
  227. package/package.json +15 -27
  228. package/public-api.d.ts +0 -27
  229. package/datarailsshared-datarailsshared-1.4.195-rocket.tgz +0 -0
  230. package/esm2022/datarailsshared-datarailsshared.mjs +0 -5
  231. package/esm2022/lib/date-tags/any-tag.component.mjs +0 -45
  232. package/esm2022/lib/date-tags/date-tag.component.mjs +0 -48
  233. package/esm2022/lib/date-tags/date-tag.module.mjs +0 -66
  234. package/esm2022/lib/date-tags/day-tag/day-tag.component.mjs +0 -83
  235. package/esm2022/lib/date-tags/forecast-tag/forecast-tag.component.mjs +0 -161
  236. package/esm2022/lib/date-tags/month-tag/month-tag.component.mjs +0 -88
  237. package/esm2022/lib/date-tags/quarter-tag/quarter-tag.component.mjs +0 -106
  238. package/esm2022/lib/date-tags/week-tag/week-tag.component.mjs +0 -90
  239. package/esm2022/lib/date-tags/year-tag/year-tag.component.mjs +0 -84
  240. package/esm2022/lib/directives/click-outside/click-outside.directive.mjs +0 -94
  241. package/esm2022/lib/directives/click-outside/click-outside.module.mjs +0 -18
  242. package/esm2022/lib/dr-accordion/accordion-item-body.component.mjs +0 -59
  243. package/esm2022/lib/dr-accordion/accordion-item-header.component.mjs +0 -109
  244. package/esm2022/lib/dr-accordion/accordion-item.component.mjs +0 -142
  245. package/esm2022/lib/dr-accordion/accordion.component.mjs +0 -41
  246. package/esm2022/lib/dr-accordion/accordion.module.mjs +0 -34
  247. package/esm2022/lib/dr-avatar/dr-avatar.component.mjs +0 -48
  248. package/esm2022/lib/dr-avatar/dr-avatar.module.mjs +0 -37
  249. package/esm2022/lib/dr-avatar/dr-avatar.pipe.mjs +0 -20
  250. package/esm2022/lib/dr-badge-status/dr-badge-status.component.mjs +0 -30
  251. package/esm2022/lib/dr-badge-status/dr-badge-status.module.mjs +0 -27
  252. package/esm2022/lib/dr-chat/chat.component.mjs +0 -147
  253. package/esm2022/lib/dr-chat/chat.module.mjs +0 -68
  254. package/esm2022/lib/dr-chat/dr-chat-form/chat-form.component.mjs +0 -169
  255. package/esm2022/lib/dr-chat/dr-chat-message/chat-message.component.mjs +0 -108
  256. package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.service.mjs +0 -24
  257. package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component.mjs +0 -57
  258. package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component.mjs +0 -23
  259. package/esm2022/lib/dr-chat/dr-chat-suggestions/chat-suggestions.component.mjs +0 -89
  260. package/esm2022/lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component.mjs +0 -13
  261. package/esm2022/lib/dr-details-list/dr-details-list.component.mjs +0 -78
  262. package/esm2022/lib/dr-details-list/dr-details-list.module.mjs +0 -21
  263. package/esm2022/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.mjs +0 -79
  264. package/esm2022/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.mjs +0 -102
  265. package/esm2022/lib/dr-dialog/dialog.module.mjs +0 -51
  266. package/esm2022/lib/dr-dialog/interfaces/dialog-data.mjs +0 -25
  267. package/esm2022/lib/dr-dialog/services/dialog.service.mjs +0 -78
  268. package/esm2022/lib/dr-dropdown/dr-dropdown-item-show.pipe.mjs +0 -16
  269. package/esm2022/lib/dr-dropdown/dr-dropdown-position.directive.mjs +0 -108
  270. package/esm2022/lib/dr-dropdown/dr-dropdown.component.mjs +0 -124
  271. package/esm2022/lib/dr-dropdown/dr-dropdown.directive.mjs +0 -125
  272. package/esm2022/lib/dr-dropdown/dr-dropdown.module.mjs +0 -49
  273. package/esm2022/lib/dr-dropdown/dr-dropdown.service.mjs +0 -26
  274. package/esm2022/lib/dr-dynamic-tag/dr-dynamic-tag.component.mjs +0 -119
  275. package/esm2022/lib/dr-dynamic-tag/dr-dynamic-tag.module.mjs +0 -28
  276. package/esm2022/lib/dr-error/dr-error.component.mjs +0 -69
  277. package/esm2022/lib/dr-error/dr-error.module.mjs +0 -31
  278. package/esm2022/lib/dr-inputs/button/button.component.mjs +0 -70
  279. package/esm2022/lib/dr-inputs/checkbox/checkbox.component.mjs +0 -67
  280. package/esm2022/lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive.mjs +0 -67
  281. package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.mjs +0 -233
  282. package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.mjs +0 -194
  283. package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.mjs +0 -194
  284. package/esm2022/lib/dr-inputs/date-pickers/dr-show-timeframe.pipe.mjs +0 -16
  285. package/esm2022/lib/dr-inputs/date-pickers/services/dr-date-picker.service.mjs +0 -196
  286. package/esm2022/lib/dr-inputs/dr-input/dr-input.component.mjs +0 -232
  287. package/esm2022/lib/dr-inputs/dr-inputs.module.mjs +0 -108
  288. package/esm2022/lib/dr-inputs/dr-model-debounce-change.directive.mjs +0 -32
  289. package/esm2022/lib/dr-inputs/dr-select/dr-select.component.mjs +0 -182
  290. package/esm2022/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.mjs +0 -82
  291. package/esm2022/lib/dr-inputs/dr-toggle/dr-toggle.component.mjs +0 -77
  292. package/esm2022/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.mjs +0 -69
  293. package/esm2022/lib/dr-inputs/radio-button/radio-button.component.mjs +0 -82
  294. package/esm2022/lib/dr-inputs/radio-button/radio-group.component.mjs +0 -180
  295. package/esm2022/lib/dr-layout/dr-layout-body.component.mjs +0 -16
  296. package/esm2022/lib/dr-layout/dr-layout-header.component.mjs +0 -24
  297. package/esm2022/lib/dr-layout/dr-layout.component.mjs +0 -13
  298. package/esm2022/lib/dr-layout/dr-layout.module.mjs +0 -29
  299. package/esm2022/lib/dr-popover/dr-popover-ref.mjs +0 -23
  300. package/esm2022/lib/dr-popover/dr-popover.component.mjs +0 -141
  301. package/esm2022/lib/dr-popover/dr-popover.directive.mjs +0 -115
  302. package/esm2022/lib/dr-popover/dr-popover.module.mjs +0 -30
  303. package/esm2022/lib/dr-popover/dr-popover.service.mjs +0 -110
  304. package/esm2022/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.mjs +0 -110
  305. package/esm2022/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.mjs +0 -85
  306. package/esm2022/lib/dr-scenario/consts/scenario-tags-config.mjs +0 -81
  307. package/esm2022/lib/dr-scenario/dr-scenario.module.mjs +0 -41
  308. package/esm2022/lib/dr-scenario/services/scenario.service.mjs +0 -166
  309. package/esm2022/lib/dr-spinner/dr-spinner.component.mjs +0 -18
  310. package/esm2022/lib/dr-spinner/dr-spinner.directive.mjs +0 -66
  311. package/esm2022/lib/dr-spinner/dr-spinner.module.mjs +0 -23
  312. package/esm2022/lib/dr-tabs/dr-tab.component.mjs +0 -42
  313. package/esm2022/lib/dr-tabs/dr-tabs.component.mjs +0 -51
  314. package/esm2022/lib/dr-tabs/dr-tabs.module.mjs +0 -49
  315. package/esm2022/lib/dr-tags/dr-tag.component.mjs +0 -201
  316. package/esm2022/lib/dr-tags/dr-tag.module.mjs +0 -35
  317. package/esm2022/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.mjs +0 -20
  318. package/esm2022/lib/dr-tooltip/components/tooltip-info-simple/tooltip-info-simple.component.mjs +0 -17
  319. package/esm2022/lib/dr-tooltip/components/tooltip-no-body/tooltip-no-body.component.mjs +0 -19
  320. package/esm2022/lib/dr-tooltip/components/tooltip-process-default/tooltip-process-default.component.mjs +0 -20
  321. package/esm2022/lib/dr-tooltip/dr-tooltip.component.mjs +0 -53
  322. package/esm2022/lib/dr-tooltip/dr-tooltip.directive.mjs +0 -165
  323. package/esm2022/lib/dr-tooltip/dr-tooltip.module.mjs +0 -48
  324. package/esm2022/lib/dr-treeview/components/treeview/treeview.component.mjs +0 -224
  325. package/esm2022/lib/dr-treeview/components/treeview-item/treeview-item.component.mjs +0 -62
  326. package/esm2022/lib/dr-treeview/dr-tree-view.module.mjs +0 -48
  327. package/esm2022/lib/dr-treeview/helpers/treeview-event-parser.mjs +0 -103
  328. package/esm2022/lib/dr-treeview/models/treeview-config.mjs +0 -23
  329. package/esm2022/lib/dr-treeview/models/treeview-i18n.mjs +0 -47
  330. package/esm2022/lib/dr-treeview/models/treeview-item.mjs +0 -158
  331. package/esm2022/lib/dr-treeview/pipes/treeview.pipe.mjs +0 -21
  332. package/esm2022/lib/list-tags/list-tag.component.mjs +0 -45
  333. package/esm2022/lib/list-tags/list-tag.module.mjs +0 -34
  334. package/esm2022/lib/models/chat.mjs +0 -49
  335. package/esm2022/lib/models/datePicker.mjs +0 -71
  336. package/esm2022/lib/models/popover.mjs +0 -27
  337. package/esm2022/lib/stepper/stepper.component.mjs +0 -66
  338. package/esm2022/lib/stepper/stepper.module.mjs +0 -24
  339. package/esm2022/public-api.mjs +0 -120
  340. package/fesm2022/datarailsshared-datarailsshared.mjs +0 -7879
  341. package/fesm2022/datarailsshared-datarailsshared.mjs.map +0 -1
  342. package/index.d.ts +0 -5
  343. package/lib/date-tags/any-tag.component.d.ts +0 -20
  344. package/lib/directives/click-outside/click-outside.directive.d.ts +0 -23
  345. package/lib/directives/click-outside/click-outside.module.d.ts +0 -8
  346. /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
  347. /package/{esm2022/lib/dr-scenario/interfaces/scenario.mjs → esm2015/lib/dr-scenario/interfaces/scenario.js} +0 -0
  348. /package/{esm2022/lib/dr-tooltip/enums/tooltip-position.enum.mjs → esm2015/lib/dr-tooltip/enums/tooltip-position.enum.js} +0 -0
  349. /package/{esm2022/lib/dr-tooltip/interfaces/tooltip-component-context.mjs → esm2015/lib/dr-tooltip/interfaces/tooltip-component-context.js} +0 -0
  350. /package/{esm2022/lib/dr-treeview/helpers/treeview-helper.mjs → esm2015/lib/dr-treeview/helpers/treeview-helper.js} +0 -0
  351. /package/{esm2022/lib/dr-treeview/models/treeview-header-template-context.mjs → esm2015/lib/dr-treeview/models/treeview-header-template-context.js} +0 -0
  352. /package/{esm2022/lib/dr-treeview/models/treeview-item-template-context.mjs → esm2015/lib/dr-treeview/models/treeview-item-template-context.js} +0 -0
  353. /package/{esm2022/lib/models/badgeStatus.mjs → esm2015/lib/models/badgeStatus.js} +0 -0
  354. /package/{esm2022/lib/models/constants.mjs → esm2015/lib/models/constants.js} +0 -0
  355. /package/{esm2022/lib/models/dropdown.mjs → esm2015/lib/models/dropdown.js} +0 -0
  356. /package/{esm2022/lib/models/serverTags.mjs → esm2015/lib/models/serverTags.js} +0 -0
  357. /package/{esm2022/lib/models/spinnerOptions.mjs → esm2015/lib/models/spinnerOptions.js} +0 -0
  358. /package/{esm2022/lib/models/validationError.mjs → esm2015/lib/models/validationError.js} +0 -0
  359. /package/{esm2022/lib/stepper/interfaces/stepper.mjs → esm2015/lib/stepper/interfaces/stepper.js} +0 -0
  360. /package/{esm2022/lib/utils/dr-shared-utils.mjs → esm2015/lib/utils/dr-shared-utils.js} +0 -0
@@ -0,0 +1,155 @@
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, HostBinding, HostListener, Input, Output, } from '@angular/core';
2
+ import { DomSanitizer } from '@angular/platform-browser';
3
+ import { IMAGE_TYPES } from '../../models/chat';
4
+ export class DrChatFormComponent {
5
+ constructor(cdr, domSanitizer) {
6
+ this.cdr = cdr;
7
+ this.domSanitizer = domSanitizer;
8
+ this._textareaInitialHeight = true;
9
+ this.inputFocus = false;
10
+ this.inputHover = false;
11
+ this.droppedFiles = [];
12
+ /**
13
+ * Predefined message text
14
+ *
15
+ * @type {string}
16
+ */
17
+ this.message = '';
18
+ /**
19
+ * Message placeholder text
20
+ *
21
+ * @type {string}
22
+ */
23
+ this.messagePlaceholder = 'Type a message';
24
+ /**
25
+ * Show send button
26
+ *
27
+ * @type {boolean}
28
+ */
29
+ this.dropFiles = false;
30
+ /**
31
+ * File drop placeholder text
32
+ *
33
+ * @type {string}
34
+ */
35
+ this.dropFilePlaceholder = 'Drop file to send';
36
+ /**
37
+ * Parameter to check is send message function available
38
+ *
39
+ * @type {boolean}
40
+ */
41
+ this.waitForReply = false;
42
+ /**
43
+ *
44
+ * @type {EventEmitter<{ message: string, files: File[] }>}
45
+ */
46
+ this.send = new EventEmitter();
47
+ this.abort = new EventEmitter();
48
+ /**
49
+ * Emits when message input value has been changed
50
+ *
51
+ * @type {EventEmitter<string>}
52
+ */
53
+ this.inputChange = new EventEmitter();
54
+ this.fileOver = false;
55
+ }
56
+ onDrop(event) {
57
+ var _a;
58
+ if (this.dropFiles) {
59
+ event.preventDefault();
60
+ event.stopPropagation();
61
+ this.fileOver = false;
62
+ if ((_a = event.dataTransfer) === null || _a === void 0 ? void 0 : _a.files) {
63
+ for (const file of event.dataTransfer.files) {
64
+ const res = file;
65
+ if (IMAGE_TYPES.includes(file.type)) {
66
+ const fr = new FileReader();
67
+ fr.onload = (e) => {
68
+ res.src = e.target.result;
69
+ res.urlStyle = this.domSanitizer.bypassSecurityTrustStyle(`url(${res.src})`);
70
+ this.cdr.detectChanges();
71
+ };
72
+ fr.readAsDataURL(file);
73
+ }
74
+ this.droppedFiles.push(res);
75
+ }
76
+ }
77
+ }
78
+ }
79
+ removeFile(file) {
80
+ const index = this.droppedFiles.indexOf(file);
81
+ if (index >= 0) {
82
+ this.droppedFiles.splice(index, 1);
83
+ }
84
+ }
85
+ onDragOver(event) {
86
+ event.preventDefault();
87
+ event.stopPropagation();
88
+ if (this.dropFiles) {
89
+ this.fileOver = true;
90
+ }
91
+ }
92
+ onDragLeave(event) {
93
+ event.preventDefault();
94
+ event.stopPropagation();
95
+ if (this.dropFiles) {
96
+ this.fileOver = false;
97
+ }
98
+ }
99
+ sendMessage() {
100
+ if (this.waitForReply) {
101
+ return;
102
+ }
103
+ if (this.droppedFiles.length || String(this.message).trim().length) {
104
+ this._textareaInitialHeight = true;
105
+ this.send.emit({ message: this.message, files: this.droppedFiles });
106
+ this.message = '';
107
+ this.droppedFiles = [];
108
+ this.cdr.markForCheck();
109
+ }
110
+ }
111
+ abortMessage() {
112
+ this.abort.emit();
113
+ }
114
+ onModelChange(value) {
115
+ this._textareaInitialHeight = false;
116
+ this.inputChange.emit(value);
117
+ }
118
+ getTextAreaHeight(textAreaElement) {
119
+ let height;
120
+ if (this._textareaInitialHeight) {
121
+ height = 50;
122
+ }
123
+ else {
124
+ height = textAreaElement.scrollHeight + 2;
125
+ }
126
+ return `height: ${height}px;`;
127
+ }
128
+ }
129
+ DrChatFormComponent.decorators = [
130
+ { type: Component, args: [{
131
+ selector: 'dr-chat-form',
132
+ template: "<div class=\"dropped-files\" *ngIf=\"droppedFiles?.length\">\n <div class=\"dropped-files__item\" *ngFor=\"let file of droppedFiles\">\n <div class=\"dropped-files__item__preview\" [style.background-image]=\"file.urlStyle || 'none'\">\n <i class=\"dr-icon-file\" *ngIf=\"!file.urlStyle\"></i>\n </div>\n <div class=\"dropped-files__item__name\">{{ file.name }}</div>\n <i class=\"dropped-files__item__remove dr-icon-exit\" (click)=\"removeFile(file)\"></i>\n </div>\n</div>\n<div class=\"message-row\">\n <div class=\"message-row__input\">\n <textarea #textAreaElement\n (focus)=\"inputFocus = true\"\n (blur)=\"inputFocus = false\"\n (mouseenter)=\"inputHover = true\"\n (mouseleave)=\"inputHover = false\"\n [(ngModel)]=\"message\"\n [rows]=\"1\"\n [style]=\"getTextAreaHeight(textAreaElement)\"\n (ngModelChange)=\"onModelChange($event)\"\n type=\"text\"\n placeholder=\"{{ fileOver ? dropFilePlaceholder : messagePlaceholder }}\"\n (keyup.enter)=\"sendMessage()\">\n </textarea>\n <i *ngIf=\"!waitForReply\" (click)=\"sendMessage()\" class=\"dr-icon-notify send-button\"></i>\n <dr-dot-flashing *ngIf=\"waitForReply\" class=\"wait-reply-dot-flashing\"></dr-dot-flashing>\n <dr-button *ngIf=\"waitForReply\" (click)=\"abortMessage()\" theme=\"ghost\" class=\"abort-button\">Stop generating</dr-button>\n </div>\n</div>\n",
133
+ changeDetection: ChangeDetectionStrategy.OnPush,
134
+ styles: [":host{display:flex;flex-direction:column;align-items:center;padding:0 24px;margin-top:12px}:host .message-row{display:flex;justify-content:center;width:100%;padding:0 0 21px;max-width:970px}:host .message-row__input{position:relative;display:flex;align-items:center;flex-grow:1;flex-direction:row;height:auto;overflow:visible;min-width:265px}:host .message-row__input textarea{font-size:14px;line-height:22px;max-height:100%;flex-grow:1;resize:none;padding:14px 40px 12px 23px;margin:auto;border:1px solid #DFE0E3;border-radius:12px;min-height:50px}:host .message-row__input textarea:focus{border:1px solid #7F7FDD}:host .message-row__input textarea::placeholder{color:#9ea1aa}:host .message-row__input .send-button{position:absolute;right:14px;cursor:pointer;color:#dfe0e3;font-size:28px}:host .message-row__input .wait-reply-dot-flashing{position:absolute;right:20px}:host .message-row__input textarea:focus+.send-button,:host .message-row__input .send-button:hover{color:#25258c}:host .message-row__input .abort-button{position:absolute;right:0;top:-44px}:host .message-row__input .abort-button::ng-deep button{background:#F2F2FF!important;border-radius:4px}:host input{flex:1}:host input.with-button{border-bottom-right-radius:0;border-top-right-radius:0}:host .dropped-files{display:flex;flex-direction:row;margin-bottom:.5rem;flex-wrap:wrap}:host .dropped-files__item{display:flex;flex-direction:column;justify-content:center;margin:0 10px 10px 0;position:relative}:host .dropped-files__item__preview{background-size:cover;background-position:center;width:64px;height:64px;border-radius:8px;border:1px solid #ccc}:host .dropped-files__item__preview i{font-size:62px}:host .dropped-files__item__name{white-space:nowrap;font-size:12px;color:#8f929e;margin-top:4px;max-width:64px;overflow:hidden;text-overflow:ellipsis}:host .dropped-files__item__remove{position:absolute;right:-4px;top:-4px;cursor:pointer;background:white;border-radius:12px;color:#8f929e;border:1px solid #8f929e;font-size:14px}\n"]
135
+ },] }
136
+ ];
137
+ DrChatFormComponent.ctorParameters = () => [
138
+ { type: ChangeDetectorRef },
139
+ { type: DomSanitizer }
140
+ ];
141
+ DrChatFormComponent.propDecorators = {
142
+ message: [{ type: Input }],
143
+ messagePlaceholder: [{ type: Input }],
144
+ dropFiles: [{ type: Input }],
145
+ dropFilePlaceholder: [{ type: Input }],
146
+ waitForReply: [{ type: Input }],
147
+ send: [{ type: Output }],
148
+ abort: [{ type: Output }],
149
+ inputChange: [{ type: Output }],
150
+ fileOver: [{ type: HostBinding, args: ['class.file-over',] }],
151
+ onDrop: [{ type: HostListener, args: ['drop', ['$event'],] }],
152
+ onDragOver: [{ type: HostListener, args: ['dragover', ['$event'],] }],
153
+ onDragLeave: [{ type: HostListener, args: ['dragleave', ['$event'],] }]
154
+ };
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWNoYXQvZHItY2hhdC1mb3JtL2NoYXQtZm9ybS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQVFoRCxNQUFNLE9BQU8sbUJBQW1CO0lBNEQ1QixZQUFzQixHQUFzQixFQUFZLFlBQTBCO1FBQTVELFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVksaUJBQVksR0FBWixZQUFZLENBQWM7UUExRGxGLDJCQUFzQixHQUFHLElBQUksQ0FBQztRQUM5QixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFFbkIsaUJBQVksR0FBVSxFQUFFLENBQUM7UUFFekI7Ozs7V0FJRztRQUNNLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFFdEI7Ozs7V0FJRztRQUNNLHVCQUFrQixHQUFHLGdCQUFnQixDQUFDO1FBRS9DOzs7O1dBSUc7UUFDTSxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRTNCOzs7O1dBSUc7UUFDTSx3QkFBbUIsR0FBRyxtQkFBbUIsQ0FBQztRQUVuRDs7OztXQUlHO1FBQ00saUJBQVksR0FBRyxLQUFLLENBQUM7UUFFOUI7OztXQUdHO1FBQ08sU0FBSSxHQUFHLElBQUksWUFBWSxFQUFzQyxDQUFDO1FBQzlELFVBQUssR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRTFDOzs7O1dBSUc7UUFFTyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFbkIsYUFBUSxHQUFHLEtBQUssQ0FBQztJQUdqRCxDQUFDO0lBR0QsTUFBTSxDQUFDLEtBQVU7O1FBQ2IsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2hCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7WUFFeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDdEIsSUFBSSxNQUFBLEtBQUssQ0FBQyxZQUFZLDBDQUFFLEtBQUssRUFBRTtnQkFDM0IsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRTtvQkFDekMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDO29CQUVqQixJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO3dCQUNqQyxNQUFNLEVBQUUsR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO3dCQUM1QixFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUU7NEJBQ25CLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7NEJBQzFCLEdBQUcsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyx3QkFBd0IsQ0FBQyxPQUFRLEdBQUcsQ0FBQyxHQUFJLEdBQUcsQ0FBQyxDQUFDOzRCQUMvRSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO3dCQUM3QixDQUFDLENBQUM7d0JBRUYsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDMUI7b0JBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQy9CO2FBQ0o7U0FDSjtJQUNMLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBSTtRQUNYLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlDLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRTtZQUNaLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztTQUN0QztJQUNMLENBQUM7SUFHRCxVQUFVLENBQUMsS0FBZ0I7UUFDdkIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7U0FDeEI7SUFDTCxDQUFDO0lBR0QsV0FBVyxDQUFDLEtBQWdCO1FBQ3hCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1NBQ3pCO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDbkIsT0FBTztTQUNWO1FBRUQsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRTtZQUNoRSxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDO1lBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1lBQ3BFLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDM0I7SUFDTCxDQUFDO0lBRUQsWUFBWTtRQUNSLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFhO1FBQ3ZCLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxLQUFLLENBQUM7UUFDcEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELGlCQUFpQixDQUFDLGVBQW9DO1FBQ2xELElBQUksTUFBTSxDQUFDO1FBQ1gsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUU7WUFDN0IsTUFBTSxHQUFHLEVBQUUsQ0FBQztTQUNmO2FBQU07WUFDSCxNQUFNLEdBQUcsZUFBZSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7U0FDN0M7UUFDRCxPQUFPLFdBQVksTUFBTyxLQUFLLENBQUM7SUFDcEMsQ0FBQzs7O1lBeEpKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsY0FBYztnQkFDeEIsNG5EQUF1QztnQkFFdkMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2xEOzs7WUFoQkcsaUJBQWlCO1lBUVosWUFBWTs7O3NCQXNCaEIsS0FBSztpQ0FPTCxLQUFLO3dCQU9MLEtBQUs7a0NBT0wsS0FBSzsyQkFPTCxLQUFLO21CQU1MLE1BQU07b0JBQ04sTUFBTTswQkFRTixNQUFNO3VCQUVOLFdBQVcsU0FBQyxpQkFBaUI7cUJBSzdCLFlBQVksU0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUM7eUJBa0MvQixZQUFZLFNBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDOzBCQVNuQyxZQUFZLFNBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBJTUFHRV9UWVBFUyB9IGZyb20gJy4uLy4uL21vZGVscy9jaGF0JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci1jaGF0LWZvcm0nLFxuICAgIHRlbXBsYXRlVXJsOiAnY2hhdC1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jaGF0LWZvcm0uY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRHJDaGF0Rm9ybUNvbXBvbmVudCB7XG5cbiAgICBfdGV4dGFyZWFJbml0aWFsSGVpZ2h0ID0gdHJ1ZTtcbiAgICBpbnB1dEZvY3VzID0gZmFsc2U7XG4gICAgaW5wdXRIb3ZlciA9IGZhbHNlO1xuXG4gICAgZHJvcHBlZEZpbGVzOiBhbnlbXSA9IFtdO1xuXG4gICAgLyoqXG4gICAgICogUHJlZGVmaW5lZCBtZXNzYWdlIHRleHRcbiAgICAgKlxuICAgICAqIEB0eXBlIHtzdHJpbmd9XG4gICAgICovXG4gICAgQElucHV0KCkgbWVzc2FnZSA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogTWVzc2FnZSBwbGFjZWhvbGRlciB0ZXh0XG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqL1xuICAgIEBJbnB1dCgpIG1lc3NhZ2VQbGFjZWhvbGRlciA9ICdUeXBlIGEgbWVzc2FnZSc7XG5cbiAgICAvKipcbiAgICAgKiBTaG93IHNlbmQgYnV0dG9uXG4gICAgICpcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBASW5wdXQoKSBkcm9wRmlsZXMgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEZpbGUgZHJvcCBwbGFjZWhvbGRlciB0ZXh0XG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqL1xuICAgIEBJbnB1dCgpIGRyb3BGaWxlUGxhY2Vob2xkZXIgPSAnRHJvcCBmaWxlIHRvIHNlbmQnO1xuXG4gICAgLyoqXG4gICAgICogUGFyYW1ldGVyIHRvIGNoZWNrIGlzIHNlbmQgbWVzc2FnZSBmdW5jdGlvbiBhdmFpbGFibGVcbiAgICAgKlxuICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHdhaXRGb3JSZXBseSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAdHlwZSB7RXZlbnRFbWl0dGVyPHsgbWVzc2FnZTogc3RyaW5nLCBmaWxlczogRmlsZVtdIH0+fVxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBzZW5kID0gbmV3IEV2ZW50RW1pdHRlcjx7IG1lc3NhZ2U6IHN0cmluZzsgZmlsZXM6IEZpbGVbXSB9PigpO1xuICAgIEBPdXRwdXQoKSBhYm9ydCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgd2hlbiBtZXNzYWdlIGlucHV0IHZhbHVlIGhhcyBiZWVuIGNoYW5nZWRcbiAgICAgKlxuICAgICAqIEB0eXBlIHtFdmVudEVtaXR0ZXI8c3RyaW5nPn1cbiAgICAgKi9cblxuICAgIEBPdXRwdXQoKSBpbnB1dENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5maWxlLW92ZXInKSBmaWxlT3ZlciA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByb3RlY3RlZCBkb21TYW5pdGl6ZXI6IERvbVNhbml0aXplcikge1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2Ryb3AnLCBbJyRldmVudCddKVxuICAgIG9uRHJvcChldmVudDogYW55KSB7XG4gICAgICAgIGlmICh0aGlzLmRyb3BGaWxlcykge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgICAgICB0aGlzLmZpbGVPdmVyID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAoZXZlbnQuZGF0YVRyYW5zZmVyPy5maWxlcykge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzID0gZmlsZTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoSU1BR0VfVFlQRVMuaW5jbHVkZXMoZmlsZS50eXBlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZnIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZnIub25sb2FkID0gKGU6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5zcmMgPSBlLnRhcmdldC5yZXN1bHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnVybFN0eWxlID0gdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFN0eWxlKGB1cmwoJHsgcmVzLnNyYyB9KWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGZyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kcm9wcGVkRmlsZXMucHVzaChyZXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlbW92ZUZpbGUoZmlsZSkge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZHJvcHBlZEZpbGVzLmluZGV4T2YoZmlsZSk7XG4gICAgICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmRyb3BwZWRGaWxlcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZHJhZ292ZXInLCBbJyRldmVudCddKVxuICAgIG9uRHJhZ092ZXIoZXZlbnQ6IERyYWdFdmVudCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgaWYgKHRoaXMuZHJvcEZpbGVzKSB7XG4gICAgICAgICAgICB0aGlzLmZpbGVPdmVyID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIFsnJGV2ZW50J10pXG4gICAgb25EcmFnTGVhdmUoZXZlbnQ6IERyYWdFdmVudCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgaWYgKHRoaXMuZHJvcEZpbGVzKSB7XG4gICAgICAgICAgICB0aGlzLmZpbGVPdmVyID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZW5kTWVzc2FnZSgpIHtcbiAgICAgICAgaWYgKHRoaXMud2FpdEZvclJlcGx5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5kcm9wcGVkRmlsZXMubGVuZ3RoIHx8IFN0cmluZyh0aGlzLm1lc3NhZ2UpLnRyaW0oKS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuX3RleHRhcmVhSW5pdGlhbEhlaWdodCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnNlbmQuZW1pdCh7IG1lc3NhZ2U6IHRoaXMubWVzc2FnZSwgZmlsZXM6IHRoaXMuZHJvcHBlZEZpbGVzIH0pO1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlID0gJyc7XG4gICAgICAgICAgICB0aGlzLmRyb3BwZWRGaWxlcyA9IFtdO1xuICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhYm9ydE1lc3NhZ2UoKSB7XG4gICAgICAgIHRoaXMuYWJvcnQuZW1pdCgpO1xuICAgIH1cblxuICAgIG9uTW9kZWxDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLl90ZXh0YXJlYUluaXRpYWxIZWlnaHQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pbnB1dENoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBnZXRUZXh0QXJlYUhlaWdodCh0ZXh0QXJlYUVsZW1lbnQ6IEhUTUxUZXh0QXJlYUVsZW1lbnQpIHtcbiAgICAgICAgbGV0IGhlaWdodDtcbiAgICAgICAgaWYgKHRoaXMuX3RleHRhcmVhSW5pdGlhbEhlaWdodCkge1xuICAgICAgICAgICAgaGVpZ2h0ID0gNTA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBoZWlnaHQgPSB0ZXh0QXJlYUVsZW1lbnQuc2Nyb2xsSGVpZ2h0ICsgMjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYGhlaWdodDogJHsgaGVpZ2h0IH1weDtgO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,71 @@
1
+ import { ChangeDetectionStrategy, Component, ContentChild, HostBinding, Input } from '@angular/core';
2
+ import { animate, state, style, transition, trigger } from '@angular/animations';
3
+ import { CHAT_MESSAGE_TYPE } from '../../models/chat';
4
+ import { DrChatCustomMessageService } from './dr-chat-message-custom/chat-custom-message.service';
5
+ export class DrChatMessageComponent {
6
+ constructor(customMessageService) {
7
+ this.customMessageService = customMessageService;
8
+ this.MESSAGE_TYPE = CHAT_MESSAGE_TYPE;
9
+ this._reply = false;
10
+ }
11
+ get flyInOut() {
12
+ return true;
13
+ }
14
+ get notReply() {
15
+ return !this.reply;
16
+ }
17
+ /**
18
+ * Determines if a message is a reply
19
+ */
20
+ get reply() {
21
+ return this._reply;
22
+ }
23
+ set reply(value) {
24
+ this._reply = !!value;
25
+ }
26
+ getTemplate() {
27
+ this.customMessage = true;
28
+ const customMessage = this.getCustomMessage(this.type);
29
+ return customMessage.templateRef;
30
+ }
31
+ getTemplateContext() {
32
+ return { $implicit: this.customMessageData, isReply: this.reply };
33
+ }
34
+ getCustomMessage(type) {
35
+ const customMessageDirective = this.customMessageService.getInstance(type);
36
+ if (!customMessageDirective) {
37
+ throw new Error(`dr-chat: Can't find template for custom type '${type}'. ` +
38
+ `Make sure you provide it in the chat component with *drCustomMessage='${type}'.`);
39
+ }
40
+ return customMessageDirective;
41
+ }
42
+ }
43
+ DrChatMessageComponent.decorators = [
44
+ { type: Component, args: [{
45
+ selector: 'dr-chat-message',
46
+ template: "<ng-container *ngIf=\"message.avatarUrl; else userAvatar\">\n <div class=\"avatar\" [style.background-image]=\"'url(' + message.avatarUrl + ')'\"></div>\n</ng-container>\n<ng-template #userAvatar>\n <dr-avatar *ngIf=\"message.user\" [users]=\"message.user\"></dr-avatar>\n</ng-template>\n<div class=\"message\" [class.message--custom]=\"customMessage\">\n <ng-container [ngSwitch]=\"message.kind\">\n <dr-chat-message-text *ngSwitchCase=\"MESSAGE_TYPE.TEXT\" [message]=\"message\"></dr-chat-message-text>\n <dr-chat-message-file *ngSwitchCase=\"MESSAGE_TYPE.DOWNLOAD_FILE\" [message]=\"message\"></dr-chat-message-file>\n <ng-container *ngSwitchDefault>\n <ng-container [ngTemplateOutlet]=\"getTemplate()\" [ngTemplateOutletContext]=\"getTemplateContext()\"></ng-container>\n </ng-container>\n </ng-container>\n <div class=\"message__actions\" *ngIf=\"drChatMessageActions;\">\n <ng-container [ngTemplateOutlet]=\"drChatMessageActions\"></ng-container>\n </div>\n</div>\n",
47
+ animations: [
48
+ trigger('flyInOut', [
49
+ state('in', style({ transform: 'translateX(0)' })),
50
+ transition('void => *', [style({ transform: 'translateX(-100%)' }), animate(80)]),
51
+ transition('* => void', [animate(80, style({ transform: 'translateX(100%)' }))]),
52
+ ]),
53
+ ],
54
+ changeDetection: ChangeDetectionStrategy.OnPush,
55
+ styles: [":host{position:relative;display:flex;flex-direction:row;width:100%;background:rgba(249,250,255,.7);border-top:1px solid #E5E5E5;padding:16px 24px}:host:first-child{border:none}:host:last-child{border-bottom:1px solid #E5E5E5}.reply+:host.reply,.not-reply+:host.not-reply{border-top:none;padding-top:0;padding-left:75px}.reply+:host.reply .avatar,.reply+:host.reply dr-avatar,.not-reply+:host.not-reply .avatar,.not-reply+:host.not-reply dr-avatar{display:none}:host.not-reply{background-color:#fff}:host .avatar{display:flex;width:28px;height:28px;background-color:#fff;border-radius:16px;flex-shrink:0;box-shadow:0 1px 3px 1px #0003;background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22%3F%3E%3Csvg id%3D%22Layer_1%22 data-name%3D%22Layer 1%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22 viewBox%3D%220 0 74 65%22%3E %3Cdefs%3E %3Cstyle%3E .cls-1%2C .cls-2%2C .cls-3 %7B fill%3A none%3B %7D .cls-4 %7B fill%3A url(%23linear-gradient)%3B %7D .cls-5 %7B fill%3A %234eb7df%3B %7D .cls-2 %7B stroke%3A %23a6a8aa%3B stroke-miterlimit%3A 10%3B stroke-width%3A .37px%3B %7D .cls-6 %7B fill%3A url(%23linear-gradient-3)%3B %7D .cls-7 %7B fill%3A url(%23linear-gradient-2)%3B %7D .cls-3 %7B clip-path%3A url(%23clippath)%3B %7D %3C%2Fstyle%3E %3CclipPath id%3D%22clippath%22%3E %3Crect class%3D%22cls-1%22 width%3D%2274%22 height%3D%2265%22%2F%3E %3C%2FclipPath%3E %3ClinearGradient id%3D%22linear-gradient%22 x1%3D%2224.26%22 y1%3D%22-3.79%22 x2%3D%2295.63%22 y2%3D%2288.82%22 gradientTransform%3D%22translate(0 65.89) scale(1 -1)%22 gradientUnits%3D%22userSpaceOnUse%22%3E %3Cstop offset%3D%220%22 stop-color%3D%22%237676ff%22%2F%3E %3Cstop offset%3D%22.18%22 stop-color%3D%22%235959ff%22%2F%3E %3Cstop offset%3D%22.35%22 stop-color%3D%22%235757e0%22%2F%3E %3Cstop offset%3D%22.61%22 stop-color%3D%22%234646ce%22%2F%3E %3Cstop offset%3D%22.84%22 stop-color%3D%22%234b4be4%22%2F%3E %3Cstop offset%3D%221%22 stop-color%3D%22%234444eb%22%2F%3E %3C%2FlinearGradient%3E %3ClinearGradient id%3D%22linear-gradient-2%22 x1%3D%2212.05%22 y1%3D%2277.06%22 x2%3D%2210.77%22 y2%3D%2213.85%22 gradientTransform%3D%22translate(0 65.89) scale(1 -1)%22 gradientUnits%3D%22userSpaceOnUse%22%3E %3Cstop offset%3D%22.45%22 stop-color%3D%22%232f92b8%22%2F%3E %3Cstop offset%3D%22.84%22 stop-color%3D%22%234eb7df%22%2F%3E %3Cstop offset%3D%221%22 stop-color%3D%22%234eb7df%22%2F%3E %3C%2FlinearGradient%3E %3ClinearGradient id%3D%22linear-gradient-3%22 x1%3D%2262.26%22 y1%3D%22-2.54%22 x2%3D%2261.76%22 y2%3D%2285.91%22 gradientTransform%3D%22translate(0 65.89) scale(1 -1)%22 gradientUnits%3D%22userSpaceOnUse%22%3E %3Cstop offset%3D%220%22 stop-color%3D%22%2336369b%22%2F%3E %3Cstop offset%3D%22.52%22 stop-color%3D%22%234848d0%22%2F%3E %3C%2FlinearGradient%3E %3C%2Fdefs%3E %3Cg class%3D%22cls-3%22%3E %3Cg%3E %3Cpath class%3D%22cls-4%22 d%3D%22m73.32%2C24.79v15.73c0%2C13.12-9.87%2C23.79-22%2C23.79h-21.32c-3.46-.06-6.25-3.11-6.25-6.87s2.79-6.81%2C6.25-6.87h21.32c5.13%2C0%2C9.29-4.51%2C9.29-10.05v-15.73c0-5.54-4.17-10.05-9.29-10.05h-7.46c3.51%2C0%2C6.35-3.08%2C6.35-6.88s-2.79-6.8-6.25-6.87h7.35c12.12%2C0%2C22%2C10.67%2C22%2C23.79h0Z%22%2F%3E %3Cpath class%3D%22cls-5%22 d%3D%22m50.26%2C7.82c0%2C3.8-2.9%2C6.93-6.41%2C6.93h-21.86c-5.13%2C0-9.29%2C4.51-9.29%2C10.05v15.73c0%2C5.54%2C4.17%2C10.05%2C9.29%2C10.05h8.01c-3.46.06-6.25%2C3.11-6.25%2C6.87s2.79%2C6.81%2C6.25%2C6.87h-8.01c-12.12%2C0-22-10.67-22-23.79v-15.73C0%2C11.68%2C9.87%2C1%2C21.99%2C1h21.97c3.46.06%2C6.3%2C3.06%2C6.3%2C6.82Z%22%2F%3E %3Cpath class%3D%22cls-2%22 d%3D%22m66.45%2C1h-.22.22%2C0Z%22%2F%3E %3Cpath class%3D%22cls-2%22 d%3D%22m36.05%2C50.58h-.22.22%2C0Z%22%2F%3E %3Cpath class%3D%22cls-7%22 d%3D%22m0%2C33.78v-2.76C0%2C12.9%2C13.62%2C14.48%2C13.62%2C14.48h8.38c-5.5.46-9.5%2C4.71-9.5%2C9.96l.02%2C15.8c0%2C5.54%2C4.44%2C10.59%2C9.48%2C10.59l-8-.5S0%2C51.88%2C0%2C33.77h0Z%22%2F%3E %3Cpath class%3D%22cls-6%22 d%3D%22m73%2C31.51v2.76c0%2C18.12-13.62%2C16.53-13.62%2C16.53h-7.99c5.61-.85%2C9.09-4.76%2C9.09-10.02l.02-16.33c0-5.54-4.46-10-9.5-10h8s13.99-1.05%2C13.99%2C17.07h0Z%22%2F%3E %3C%2Fg%3E %3C%2Fg%3E%3C%2Fsvg%3E\");background-size:20px 22px;background-repeat:no-repeat;background-position-x:4px;background-position-y:3px}:host .avatar,:host dr-avatar{margin:0 23px 0 0}:host .message{display:flex;align-items:center;flex-grow:1}:host .message__actions{display:flex;align-items:center;margin-left:24px;flex-grow:1;justify-content:flex-end}:host .message__actions::ng-deep button:not(:hover) i[class*=dr-icon]{color:#b9b9ec!important}\n"]
56
+ },] }
57
+ ];
58
+ DrChatMessageComponent.ctorParameters = () => [
59
+ { type: DrChatCustomMessageService }
60
+ ];
61
+ DrChatMessageComponent.propDecorators = {
62
+ flyInOut: [{ type: HostBinding, args: ['@flyInOut',] }],
63
+ notReply: [{ type: HostBinding, args: ['class.not-reply',] }],
64
+ reply: [{ type: Input }, { type: HostBinding, args: ['class.reply',] }],
65
+ type: [{ type: Input }],
66
+ message: [{ type: Input }],
67
+ customMessageData: [{ type: Input }],
68
+ user: [{ type: Input }],
69
+ drChatMessageActions: [{ type: ContentChild, args: ['drChatMessageActions',] }]
70
+ };
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1tZXNzYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWNoYXQvZHItY2hhdC1tZXNzYWdlL2NoYXQtbWVzc2FnZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUNsSCxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxpQkFBaUIsRUFBZ0IsTUFBTSxtQkFBbUIsQ0FBQztBQUVwRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQWVsRyxNQUFNLE9BQU8sc0JBQXNCO0lBc0QvQixZQUFvQixvQkFBZ0Q7UUFBaEQseUJBQW9CLEdBQXBCLG9CQUFvQixDQUE0QjtRQXBEcEUsaUJBQVksR0FBRyxpQkFBaUIsQ0FBQztRQXlCdkIsV0FBTSxHQUFHLEtBQUssQ0FBQztJQTRCekIsQ0FBQztJQW5ERCxJQUNJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsSUFDSSxRQUFRO1FBQ1IsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFFSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxLQUFjO1FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBZ0NNLFdBQVc7UUFDZCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUMxQixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZELE9BQU8sYUFBYSxDQUFDLFdBQVcsQ0FBQztJQUNyQyxDQUFDO0lBRU0sa0JBQWtCO1FBQ3JCLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdEUsQ0FBQztJQUVTLGdCQUFnQixDQUFDLElBQVk7UUFDbkMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTNFLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUN6QixNQUFNLElBQUksS0FBSyxDQUNYLGlEQUFrRCxJQUFLLEtBQUs7Z0JBQzVELHlFQUEwRSxJQUFLLElBQUksQ0FDdEYsQ0FBQztTQUNMO1FBRUQsT0FBTyxzQkFBc0IsQ0FBQztJQUNsQyxDQUFDOzs7WUEzRkosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLHVoQ0FBMEM7Z0JBRTFDLFVBQVUsRUFBRTtvQkFDUixPQUFPLENBQUMsVUFBVSxFQUFFO3dCQUNoQixLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO3dCQUNsRCxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzt3QkFDakYsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQ25GLENBQUM7aUJBQ0w7Z0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2xEOzs7WUFkUSwwQkFBMEI7Ozt1QkFtQjlCLFdBQVcsU0FBQyxXQUFXO3VCQUt2QixXQUFXLFNBQUMsaUJBQWlCO29CQVE3QixLQUFLLFlBQ0wsV0FBVyxTQUFDLGFBQWE7bUJBV3pCLEtBQUs7c0JBT0wsS0FBSztnQ0FPTCxLQUFLO21CQUtMLEtBQUs7bUNBRUwsWUFBWSxTQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgSG9zdEJpbmRpbmcsIElucHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBDSEFUX01FU1NBR0VfVFlQRSwgSUNoYXRNZXNzYWdlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NoYXQnO1xuaW1wb3J0IHsgRHJDaGF0Q3VzdG9tTWVzc2FnZURpcmVjdGl2ZSB9IGZyb20gJy4vZHItY2hhdC1tZXNzYWdlLWN1c3RvbS9jaGF0LWN1c3RvbS1tZXNzYWdlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEckNoYXRDdXN0b21NZXNzYWdlU2VydmljZSB9IGZyb20gJy4vZHItY2hhdC1tZXNzYWdlLWN1c3RvbS9jaGF0LWN1c3RvbS1tZXNzYWdlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RyLWNoYXQtbWVzc2FnZScsXG4gICAgdGVtcGxhdGVVcmw6ICdjaGF0LW1lc3NhZ2UuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NoYXQtbWVzc2FnZS5jb21wb25lbnQuc2NzcyddLFxuICAgIGFuaW1hdGlvbnM6IFtcbiAgICAgICAgdHJpZ2dlcignZmx5SW5PdXQnLCBbXG4gICAgICAgICAgICBzdGF0ZSgnaW4nLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMCknIH0pKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gKicsIFtzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoLTEwMCUpJyB9KSwgYW5pbWF0ZSg4MCldKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJyogPT4gdm9pZCcsIFthbmltYXRlKDgwLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMTAwJSknIH0pKV0pLFxuICAgICAgICBdKSxcbiAgICBdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBEckNoYXRNZXNzYWdlQ29tcG9uZW50IHtcblxuICAgIE1FU1NBR0VfVFlQRSA9IENIQVRfTUVTU0FHRV9UWVBFO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdAZmx5SW5PdXQnKVxuICAgIGdldCBmbHlJbk91dCgpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5ub3QtcmVwbHknKVxuICAgIGdldCBub3RSZXBseSgpIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnJlcGx5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERldGVybWluZXMgaWYgYSBtZXNzYWdlIGlzIGEgcmVwbHlcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MucmVwbHknKVxuICAgIGdldCByZXBseSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlcGx5O1xuICAgIH1cblxuICAgIHNldCByZXBseSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9yZXBseSA9ICEhdmFsdWU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9yZXBseSA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgdHlwZTogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogTWVzc2FnZVxuICAgICAqXG4gICAgICogQHR5cGUge0lDaGF0TWVzc2FnZX1cbiAgICAgKi9cbiAgICBASW5wdXQoKSBtZXNzYWdlOiBJQ2hhdE1lc3NhZ2U7XG5cbiAgICAvKipcbiAgICAgKiBEYXRhIHdoaWNoIHdpbGwgYmUgc2V0IGFzIGN1c3RvbSBtZXNzYWdlIHRlbXBsYXRlIGNvbnRleHRcbiAgICAgKlxuICAgICAqIEB0eXBlIHthbnl9XG4gICAgICovXG4gICAgQElucHV0KCkgY3VzdG9tTWVzc2FnZURhdGE6IGFueTtcblxuICAgIC8qKlxuICAgICAqIFVzZXIgaW5mbyBmb3IgYXZhdGFyXG4gICAgICovXG4gICAgQElucHV0KCkgdXNlcjogYW55O1xuXG4gICAgQENvbnRlbnRDaGlsZCgnZHJDaGF0TWVzc2FnZUFjdGlvbnMnKSBkckNoYXRNZXNzYWdlQWN0aW9uczogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIHB1YmxpYyBjdXN0b21NZXNzYWdlOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjdXN0b21NZXNzYWdlU2VydmljZTogRHJDaGF0Q3VzdG9tTWVzc2FnZVNlcnZpY2UpIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0VGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgICAgIHRoaXMuY3VzdG9tTWVzc2FnZSA9IHRydWU7XG4gICAgICAgIGNvbnN0IGN1c3RvbU1lc3NhZ2UgPSB0aGlzLmdldEN1c3RvbU1lc3NhZ2UodGhpcy50eXBlKTtcbiAgICAgICAgcmV0dXJuIGN1c3RvbU1lc3NhZ2UudGVtcGxhdGVSZWY7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFRlbXBsYXRlQ29udGV4dCgpOiB7ICRpbXBsaWNpdDogYW55OyBpc1JlcGx5OiBib29sZWFuIH0ge1xuICAgICAgICByZXR1cm4geyAkaW1wbGljaXQ6IHRoaXMuY3VzdG9tTWVzc2FnZURhdGEsIGlzUmVwbHk6IHRoaXMucmVwbHkgfTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0Q3VzdG9tTWVzc2FnZSh0eXBlOiBzdHJpbmcpOiBEckNoYXRDdXN0b21NZXNzYWdlRGlyZWN0aXZlIHtcbiAgICAgICAgY29uc3QgY3VzdG9tTWVzc2FnZURpcmVjdGl2ZSA9IHRoaXMuY3VzdG9tTWVzc2FnZVNlcnZpY2UuZ2V0SW5zdGFuY2UodHlwZSk7XG5cbiAgICAgICAgaWYgKCFjdXN0b21NZXNzYWdlRGlyZWN0aXZlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgYGRyLWNoYXQ6IENhbid0IGZpbmQgdGVtcGxhdGUgZm9yIGN1c3RvbSB0eXBlICckeyB0eXBlIH0nLiBgICtcbiAgICAgICAgICAgICAgICBgTWFrZSBzdXJlIHlvdSBwcm92aWRlIGl0IGluIHRoZSBjaGF0IGNvbXBvbmVudCB3aXRoICpkckN1c3RvbU1lc3NhZ2U9JyR7IHR5cGUgfScuYCxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY3VzdG9tTWVzc2FnZURpcmVjdGl2ZTtcbiAgICB9XG59XG4iXX0=
@@ -1,12 +1,14 @@
1
- import { Directive, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "./chat-custom-message.service";
1
+ import { Directive, Input, TemplateRef } from '@angular/core';
2
+ import { DrChatCustomMessageService } from './chat-custom-message.service';
4
3
  const throwCustomMessageTypeIsRequired = () => {
5
4
  throw new Error('[drCustomMessage]: custom message type is required.');
6
5
  };
6
+ const ɵ0 = throwCustomMessageTypeIsRequired;
7
7
  export class DrChatCustomMessageDirective {
8
- templateRef;
9
- customMessageService;
8
+ constructor(templateRef, customMessageService) {
9
+ this.templateRef = templateRef;
10
+ this.customMessageService = customMessageService;
11
+ }
10
12
  /**
11
13
  * Defines a message type which should rendered with the custom message template.
12
14
  *
@@ -18,14 +20,9 @@ export class DrChatCustomMessageDirective {
18
20
  set drCustomMessage(value) {
19
21
  this._type = value;
20
22
  }
21
- _type;
22
23
  get type() {
23
24
  return this._type;
24
25
  }
25
- constructor(templateRef, customMessageService) {
26
- this.templateRef = templateRef;
27
- this.customMessageService = customMessageService;
28
- }
29
26
  ngOnInit() {
30
27
  if (!this._type) {
31
28
  throwCustomMessageTypeIsRequired();
@@ -35,15 +32,18 @@ export class DrChatCustomMessageDirective {
35
32
  ngOnDestroy() {
36
33
  this.customMessageService.unregister(this.type);
37
34
  }
38
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: DrChatCustomMessageDirective, deps: [{ token: i0.TemplateRef }, { token: i1.DrChatCustomMessageService }], target: i0.ɵɵFactoryTarget.Directive });
39
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.5", type: DrChatCustomMessageDirective, selector: "[drCustomMessage]", inputs: { drCustomMessage: "drCustomMessage" }, ngImport: i0 });
40
35
  }
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: DrChatCustomMessageDirective, decorators: [{
42
- type: Directive,
43
- args: [{
44
- selector: `[drCustomMessage]`,
45
- }]
46
- }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i1.DrChatCustomMessageService }]; }, propDecorators: { drCustomMessage: [{
47
- type: Input
48
- }] } });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1jdXN0b20tbWVzc2FnZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1jaGF0L2RyLWNoYXQtbWVzc2FnZS9kci1jaGF0LW1lc3NhZ2UtY3VzdG9tL2NoYXQtY3VzdG9tLW1lc3NhZ2UuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFrQyxNQUFNLGVBQWUsQ0FBQzs7O0FBSWpGLE1BQU0sZ0NBQWdDLEdBQUcsR0FBRyxFQUFFO0lBQzFDLE1BQU0sSUFBSSxLQUFLLENBQUMscURBQXFELENBQUMsQ0FBQztBQUMzRSxDQUFDLENBQUM7QUFLRixNQUFNLE9BQU8sNEJBQTRCO0lBbUJsQjtJQUNHO0lBbkJ0Qjs7OztPQUlHO0lBQ0gsSUFDSSxlQUFlO1FBQ2YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFDRCxJQUFJLGVBQWUsQ0FBQyxLQUFhO1FBQzdCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFDUyxLQUFLLENBQVM7SUFFeEIsSUFBSSxJQUFJO1FBQ0osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxZQUFtQixXQUE2QixFQUMxQixvQkFBZ0Q7UUFEbkQsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO1FBQzFCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBNEI7SUFBRyxDQUFDO0lBRTFFLFFBQVE7UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNiLGdDQUFnQyxFQUFFLENBQUM7U0FDdEM7UUFDRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO3VHQS9CUSw0QkFBNEI7MkZBQTVCLDRCQUE0Qjs7MkZBQTVCLDRCQUE0QjtrQkFIeEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsbUJBQW1CO2lCQUNoQzsySUFRTyxlQUFlO3NCQURsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IERyQ2hhdEN1c3RvbU1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9jaGF0LWN1c3RvbS1tZXNzYWdlLnNlcnZpY2UnO1xuXG5jb25zdCB0aHJvd0N1c3RvbU1lc3NhZ2VUeXBlSXNSZXF1aXJlZCA9ICgpID0+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1tkckN1c3RvbU1lc3NhZ2VdOiBjdXN0b20gbWVzc2FnZSB0eXBlIGlzIHJlcXVpcmVkLicpO1xufTtcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6IGBbZHJDdXN0b21NZXNzYWdlXWAsXG59KVxuZXhwb3J0IGNsYXNzIERyQ2hhdEN1c3RvbU1lc3NhZ2VEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBhIG1lc3NhZ2UgdHlwZSB3aGljaCBzaG91bGQgcmVuZGVyZWQgd2l0aCB0aGUgY3VzdG9tIG1lc3NhZ2UgdGVtcGxhdGUuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGRyQ3VzdG9tTWVzc2FnZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fdHlwZTtcbiAgICB9XG4gICAgc2V0IGRyQ3VzdG9tTWVzc2FnZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3R5cGUgPSB2YWx1ZTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF90eXBlOiBzdHJpbmc7XG5cbiAgICBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fdHlwZTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIGN1c3RvbU1lc3NhZ2VTZXJ2aWNlOiBEckNoYXRDdXN0b21NZXNzYWdlU2VydmljZSkge31cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAoIXRoaXMuX3R5cGUpIHtcbiAgICAgICAgICAgIHRocm93Q3VzdG9tTWVzc2FnZVR5cGVJc1JlcXVpcmVkKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jdXN0b21NZXNzYWdlU2VydmljZS5yZWdpc3Rlcih0aGlzLnR5cGUsIHRoaXMpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmN1c3RvbU1lc3NhZ2VTZXJ2aWNlLnVucmVnaXN0ZXIodGhpcy50eXBlKTtcbiAgICB9XG59XG4iXX0=
36
+ DrChatCustomMessageDirective.decorators = [
37
+ { type: Directive, args: [{
38
+ selector: `[drCustomMessage]`,
39
+ },] }
40
+ ];
41
+ DrChatCustomMessageDirective.ctorParameters = () => [
42
+ { type: TemplateRef },
43
+ { type: DrChatCustomMessageService }
44
+ ];
45
+ DrChatCustomMessageDirective.propDecorators = {
46
+ drCustomMessage: [{ type: Input }]
47
+ };
48
+ export { ɵ0 };
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1jdXN0b20tbWVzc2FnZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1jaGF0L2RyLWNoYXQtbWVzc2FnZS9kci1jaGF0LW1lc3NhZ2UtY3VzdG9tL2NoYXQtY3VzdG9tLW1lc3NhZ2UuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFM0UsTUFBTSxnQ0FBZ0MsR0FBRyxHQUFHLEVBQUU7SUFDMUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO0FBQzNFLENBQUMsQ0FBQzs7QUFLRixNQUFNLE9BQU8sNEJBQTRCO0lBbUJyQyxZQUFtQixXQUE2QixFQUMxQixvQkFBZ0Q7UUFEbkQsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO1FBQzFCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBNEI7SUFBRyxDQUFDO0lBbkIxRTs7OztPQUlHO0lBQ0gsSUFDSSxlQUFlO1FBQ2YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFDRCxJQUFJLGVBQWUsQ0FBQyxLQUFhO1FBQzdCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFHRCxJQUFJLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUtELFFBQVE7UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNiLGdDQUFnQyxFQUFFLENBQUM7U0FDdEM7UUFDRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDOzs7WUFsQ0osU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxtQkFBbUI7YUFDaEM7OztZQVY2QyxXQUFXO1lBRWhELDBCQUEwQjs7OzhCQWU5QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IERyQ2hhdEN1c3RvbU1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9jaGF0LWN1c3RvbS1tZXNzYWdlLnNlcnZpY2UnO1xuXG5jb25zdCB0aHJvd0N1c3RvbU1lc3NhZ2VUeXBlSXNSZXF1aXJlZCA9ICgpID0+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1tkckN1c3RvbU1lc3NhZ2VdOiBjdXN0b20gbWVzc2FnZSB0eXBlIGlzIHJlcXVpcmVkLicpO1xufTtcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6IGBbZHJDdXN0b21NZXNzYWdlXWAsXG59KVxuZXhwb3J0IGNsYXNzIERyQ2hhdEN1c3RvbU1lc3NhZ2VEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBhIG1lc3NhZ2UgdHlwZSB3aGljaCBzaG91bGQgcmVuZGVyZWQgd2l0aCB0aGUgY3VzdG9tIG1lc3NhZ2UgdGVtcGxhdGUuXG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGRyQ3VzdG9tTWVzc2FnZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fdHlwZTtcbiAgICB9XG4gICAgc2V0IGRyQ3VzdG9tTWVzc2FnZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3R5cGUgPSB2YWx1ZTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF90eXBlOiBzdHJpbmc7XG5cbiAgICBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fdHlwZTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIGN1c3RvbU1lc3NhZ2VTZXJ2aWNlOiBEckNoYXRDdXN0b21NZXNzYWdlU2VydmljZSkge31cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAoIXRoaXMuX3R5cGUpIHtcbiAgICAgICAgICAgIHRocm93Q3VzdG9tTWVzc2FnZVR5cGVJc1JlcXVpcmVkKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jdXN0b21NZXNzYWdlU2VydmljZS5yZWdpc3Rlcih0aGlzLnR5cGUsIHRoaXMpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmN1c3RvbU1lc3NhZ2VTZXJ2aWNlLnVucmVnaXN0ZXIodGhpcy50eXBlKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,23 @@
1
+ import { Injectable } from '@angular/core';
2
+ /**
3
+ * `DrCustomMessageService` is used to store instances of `DrChatCustomMessageDirective`s which
4
+ * were provided in the chat component.
5
+ */
6
+ export class DrChatCustomMessageService {
7
+ constructor() {
8
+ this.customMessages = new Map();
9
+ }
10
+ register(type, instance) {
11
+ this.customMessages.set(type, instance);
12
+ }
13
+ unregister(type) {
14
+ return this.customMessages.delete(type);
15
+ }
16
+ getInstance(type) {
17
+ return this.customMessages.get(type);
18
+ }
19
+ }
20
+ DrChatCustomMessageService.decorators = [
21
+ { type: Injectable }
22
+ ];
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1jdXN0b20tbWVzc2FnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItY2hhdC9kci1jaGF0LW1lc3NhZ2UvZHItY2hhdC1tZXNzYWdlLWN1c3RvbS9jaGF0LWN1c3RvbS1tZXNzYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkzQzs7O0dBR0c7QUFFSCxNQUFNLE9BQU8sMEJBQTBCO0lBRHZDO1FBRXFCLG1CQUFjLEdBQUcsSUFBSSxHQUFHLEVBQXdDLENBQUM7SUFhdEYsQ0FBQztJQVhDLFFBQVEsQ0FBQyxJQUFZLEVBQUUsUUFBc0M7UUFDM0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxXQUFXLENBQUMsSUFBWTtRQUN0QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7OztZQWRGLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IERyQ2hhdEN1c3RvbU1lc3NhZ2VEaXJlY3RpdmUgfSBmcm9tICcuL2NoYXQtY3VzdG9tLW1lc3NhZ2UuZGlyZWN0aXZlJztcblxuLyoqXG4gKiBgRHJDdXN0b21NZXNzYWdlU2VydmljZWAgaXMgdXNlZCB0byBzdG9yZSBpbnN0YW5jZXMgb2YgYERyQ2hhdEN1c3RvbU1lc3NhZ2VEaXJlY3RpdmVgcyB3aGljaFxuICogd2VyZSBwcm92aWRlZCBpbiB0aGUgY2hhdCBjb21wb25lbnQuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEckNoYXRDdXN0b21NZXNzYWdlU2VydmljZSB7XG4gIHByb3RlY3RlZCByZWFkb25seSBjdXN0b21NZXNzYWdlcyA9IG5ldyBNYXA8c3RyaW5nLCBEckNoYXRDdXN0b21NZXNzYWdlRGlyZWN0aXZlPigpO1xuXG4gIHJlZ2lzdGVyKHR5cGU6IHN0cmluZywgaW5zdGFuY2U6IERyQ2hhdEN1c3RvbU1lc3NhZ2VEaXJlY3RpdmUpOiB2b2lkIHtcbiAgICB0aGlzLmN1c3RvbU1lc3NhZ2VzLnNldCh0eXBlLCBpbnN0YW5jZSk7XG4gIH1cblxuICB1bnJlZ2lzdGVyKHR5cGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmN1c3RvbU1lc3NhZ2VzLmRlbGV0ZSh0eXBlKTtcbiAgfVxuXG4gIGdldEluc3RhbmNlKHR5cGU6IHN0cmluZyk6IERyQ2hhdEN1c3RvbU1lc3NhZ2VEaXJlY3RpdmUgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmN1c3RvbU1lc3NhZ2VzLmdldCh0eXBlKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,47 @@
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input } from '@angular/core';
2
+ import { DomSanitizer } from '@angular/platform-browser';
3
+ import { IMAGE_TYPES } from '../../../models/chat';
4
+ /**
5
+ * Chat message component.
6
+ */
7
+ export class DrChatMessageFileComponent {
8
+ constructor(cd, domSanitizer) {
9
+ this.cd = cd;
10
+ this.domSanitizer = domSanitizer;
11
+ }
12
+ /**
13
+ * Message file path
14
+ *
15
+ * @type {Date}
16
+ */
17
+ set files(files) {
18
+ this.readyFiles = (files || []).map((file) => {
19
+ const isImage = this.isImage(file);
20
+ return Object.assign(Object.assign({}, file), { urlStyle: isImage && this.domSanitizer.bypassSecurityTrustStyle(`url(${file.url})`), isImage });
21
+ });
22
+ this.cd.detectChanges();
23
+ }
24
+ isImage(file) {
25
+ const type = file.type;
26
+ if (type) {
27
+ return IMAGE_TYPES.includes(type);
28
+ }
29
+ return false;
30
+ }
31
+ }
32
+ DrChatMessageFileComponent.decorators = [
33
+ { type: Component, args: [{
34
+ selector: 'dr-chat-message-file',
35
+ template: "<div class=\"message-content-group\">\n <a *ngFor=\"let file of readyFiles\" [href]=\"file.url\" target=\"_blank\">\n <i class=\"dr-icon-file\" *ngIf=\"!file.urlStyle && file.icon\"></i>\n <div *ngIf=\"file.urlStyle\" [style.background-image]=\"file.urlStyle\"></div>\n </a>\n</div>\n",
36
+ changeDetection: ChangeDetectionStrategy.OnPush
37
+ },] }
38
+ ];
39
+ DrChatMessageFileComponent.ctorParameters = () => [
40
+ { type: ChangeDetectorRef },
41
+ { type: DomSanitizer }
42
+ ];
43
+ DrChatMessageFileComponent.propDecorators = {
44
+ message: [{ type: Input }],
45
+ files: [{ type: Input }]
46
+ };
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1tZXNzYWdlLWZpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItY2hhdC9kci1jaGF0LW1lc3NhZ2UvZHItY2hhdC1tZXNzYWdlLWZpbGUvY2hhdC1tZXNzYWdlLWZpbGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBS0gsV0FBVyxFQUNkLE1BQU0sc0JBQXNCLENBQUM7QUFFOUI7O0dBRUc7QUFNSCxNQUFNLE9BQU8sMEJBQTBCO0lBNkJuQyxZQUFzQixFQUFxQixFQUFZLFlBQTBCO1FBQTNELE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQVksaUJBQVksR0FBWixZQUFZLENBQWM7SUFDakYsQ0FBQztJQW5CRDs7OztPQUlHO0lBQ0gsSUFDSSxLQUFLLENBQUMsS0FBeUI7UUFDL0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUM5QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25DLHVDQUNPLElBQUksS0FDUCxRQUFRLEVBQUUsT0FBTyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsd0JBQXdCLENBQUMsT0FBUSxJQUFJLENBQUMsR0FBSSxHQUFHLENBQUMsRUFDckYsT0FBTyxJQUNUO1FBQ04sQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFNRCxPQUFPLENBQUMsSUFBc0I7UUFDMUIsTUFBTSxJQUFJLEdBQUksSUFBcUMsQ0FBQyxJQUFJLENBQUM7UUFDekQsSUFBSSxJQUFJLEVBQUU7WUFDTixPQUFPLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDckM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDOzs7WUE1Q0osU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxzQkFBc0I7Z0JBQ2hDLDRUQUErQztnQkFDL0MsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDbEQ7OztZQWpCaUMsaUJBQWlCO1lBQzFDLFlBQVk7OztzQkEwQmhCLEtBQUs7b0JBT0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQge1xuICAgIElDaGF0RG93bmxvYWRGaWxlTWVzc2FnZSxcbiAgICBJQ2hhdEltYWdlTWVzc2FnZSxcbiAgICBJQ2hhdE1lc3NhZ2VGaWxlLFxuICAgIElDaGF0TWVzc2FnZUZpbGVJbWFnZVByZXZpZXcsXG4gICAgSU1BR0VfVFlQRVNcbn0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2NoYXQnO1xuXG4vKipcbiAqIENoYXQgbWVzc2FnZSBjb21wb25lbnQuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZHItY2hhdC1tZXNzYWdlLWZpbGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnY2hhdC1tZXNzYWdlLWZpbGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBEckNoYXRNZXNzYWdlRmlsZUNvbXBvbmVudCB7XG5cbiAgICByZWFkeUZpbGVzOiBhbnlbXTtcblxuICAgIC8qKlxuICAgICAqIE1lc3NhZ2Ugd2l0aCBmaWxlXG4gICAgICpcbiAgICAgKiBAdHlwZSB7SUNoYXREb3dubG9hZEZpbGVNZXNzYWdlIHwgSUNoYXRJbWFnZU1lc3NhZ2V9XG4gICAgICovXG4gICAgQElucHV0KCkgbWVzc2FnZTogSUNoYXREb3dubG9hZEZpbGVNZXNzYWdlIHwgSUNoYXRJbWFnZU1lc3NhZ2U7XG5cbiAgICAvKipcbiAgICAgKiBNZXNzYWdlIGZpbGUgcGF0aFxuICAgICAqXG4gICAgICogQHR5cGUge0RhdGV9XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgZmlsZXMoZmlsZXM6IElDaGF0TWVzc2FnZUZpbGVbXSkge1xuICAgICAgICB0aGlzLnJlYWR5RmlsZXMgPSAoZmlsZXMgfHwgW10pLm1hcCgoZmlsZTogYW55KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpc0ltYWdlID0gdGhpcy5pc0ltYWdlKGZpbGUpO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5maWxlLFxuICAgICAgICAgICAgICAgIHVybFN0eWxlOiBpc0ltYWdlICYmIHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RTdHlsZShgdXJsKCR7IGZpbGUudXJsIH0pYCksXG4gICAgICAgICAgICAgICAgaXNJbWFnZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgY2Q6IENoYW5nZURldGVjdG9yUmVmLCBwcm90ZWN0ZWQgZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXIpIHtcbiAgICB9XG5cblxuICAgIGlzSW1hZ2UoZmlsZTogSUNoYXRNZXNzYWdlRmlsZSk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCB0eXBlID0gKGZpbGUgYXMgSUNoYXRNZXNzYWdlRmlsZUltYWdlUHJldmlldykudHlwZTtcbiAgICAgICAgaWYgKHR5cGUpIHtcbiAgICAgICAgICAgIHJldHVybiBJTUFHRV9UWVBFUy5pbmNsdWRlcyh0eXBlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,18 @@
1
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
+ /**
3
+ * Chat text message component.
4
+ */
5
+ export class DrChatMessageTextComponent {
6
+ }
7
+ DrChatMessageTextComponent.decorators = [
8
+ { type: Component, args: [{
9
+ selector: 'dr-chat-message-text',
10
+ template: "<div class=\"text\" *ngIf=\"message\">{{ message.text }}</div>\n",
11
+ changeDetection: ChangeDetectionStrategy.OnPush,
12
+ styles: [":host{display:flex}:host .text{display:flex;word-break:break-word}\n"]
13
+ },] }
14
+ ];
15
+ DrChatMessageTextComponent.propDecorators = {
16
+ message: [{ type: Input }]
17
+ };
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1tZXNzYWdlLXRleHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItY2hhdC9kci1jaGF0LW1lc3NhZ2UvZHItY2hhdC1tZXNzYWdlLXRleHQvY2hhdC1tZXNzYWdlLXRleHQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzFFOztHQUVHO0FBT0gsTUFBTSxPQUFPLDBCQUEwQjs7O1lBTnRDLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsc0JBQXNCO2dCQUNoQyw0RUFBK0M7Z0JBRS9DLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOzthQUNsRDs7O3NCQU9JLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUNoYXRUZXh0TWVzc2FnZSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9jaGF0JztcblxuLyoqXG4gKiBDaGF0IHRleHQgbWVzc2FnZSBjb21wb25lbnQuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZHItY2hhdC1tZXNzYWdlLXRleHQnLFxuICAgIHRlbXBsYXRlVXJsOiAnY2hhdC1tZXNzYWdlLXRleHQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NoYXQtbWVzc2FnZS10ZXh0LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIERyQ2hhdE1lc3NhZ2VUZXh0Q29tcG9uZW50IHtcbiAgICAvKipcbiAgICAgKiBNZXNzYWdlIHNlbmRlclxuICAgICAqXG4gICAgICogQHR5cGUge0lDaGF0VGV4dE1lc3NhZ2V9XG4gICAgICovXG4gICAgQElucHV0KCkgbWVzc2FnZTogSUNoYXRUZXh0TWVzc2FnZTtcbn1cbiJdfQ==
@@ -0,0 +1,87 @@
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, } from '@angular/core';
2
+ import * as _ from 'lodash';
3
+ export class DrChatSuggestionsComponent {
4
+ constructor(cdr) {
5
+ this.cdr = cdr;
6
+ this._nonHiddenValues = [];
7
+ this.visibleValues = [];
8
+ this.isSuggestedMenuOpen = false;
9
+ this.values = [];
10
+ this.fullScreen = false;
11
+ this.buttonMode = false;
12
+ /**
13
+ * Parameter to check is send message function available
14
+ *
15
+ * @type {boolean}
16
+ */
17
+ this.waitForReply = false;
18
+ this.suggestionSelect = new EventEmitter();
19
+ }
20
+ get hiddenValues() {
21
+ return JSON.parse(localStorage.getItem('aiChatSuggestions')) || [];
22
+ }
23
+ set hiddenValues(values) {
24
+ localStorage.setItem('aiChatSuggestions', JSON.stringify(values));
25
+ }
26
+ ngOnInit() {
27
+ this.filterValues();
28
+ }
29
+ onItemClick(item) {
30
+ if (this.waitForReply) {
31
+ return;
32
+ }
33
+ this.isSuggestedMenuOpen = false;
34
+ this.suggestionSelect.emit(item);
35
+ this.hiddenValues = [...this.hiddenValues, item];
36
+ this.filterValues();
37
+ }
38
+ filterValues() {
39
+ const hiddenValues = this.hiddenValues;
40
+ this._nonHiddenValues = _.filter(this.values, val => !hiddenValues.includes(val));
41
+ this.fillVisibleValues();
42
+ }
43
+ fillVisibleValues() {
44
+ const maxItemsCount = this.fullScreen ? 6 : 4;
45
+ const nonHiddenValues = _.clone(this._nonHiddenValues);
46
+ this.visibleValues.length = 0;
47
+ for (let i = 0; i < maxItemsCount; i++) {
48
+ if (!nonHiddenValues.length) {
49
+ break;
50
+ }
51
+ const randomIndex = Math.floor(Math.random() * nonHiddenValues.length);
52
+ const item = nonHiddenValues.splice(randomIndex, 1)[0];
53
+ this.visibleValues.push(item);
54
+ }
55
+ this.cdr.markForCheck();
56
+ }
57
+ clearHidden() {
58
+ localStorage.setItem('aiChatSuggestions', null);
59
+ this.filterValues();
60
+ }
61
+ toggleSuggestedMenu() {
62
+ this.isSuggestedMenuOpen = !this.isSuggestedMenuOpen;
63
+ if (this.isSuggestedMenuOpen) {
64
+ this.fillVisibleValues();
65
+ }
66
+ this.cdr.markForCheck();
67
+ }
68
+ }
69
+ DrChatSuggestionsComponent.decorators = [
70
+ { type: Component, args: [{
71
+ selector: 'dr-chat-suggestions',
72
+ template: "<div class=\"chat-suggestions\">\n <ng-container *ngIf=\"buttonMode; else suggestionCards\">\n <div class=\"chat-suggestions__container\"\n [class.chat-suggestions__container--opened]=\"isSuggestedMenuOpen\"\n *ngIf=\"visibleValues.length\">\n <dr-button theme=\"ghost\" class=\"chat-suggestions__container__button\" (click)=\"toggleSuggestedMenu()\">\n Suggested chats\n </dr-button>\n <ng-container *ngTemplateOutlet=\"suggestionCards\"></ng-container>\n </div>\n </ng-container>\n</div>\n\n<ng-template #suggestionCards>\n <div class=\"chat-suggestions__items\">\n <div class=\"chat-suggestions__items__background\"></div>\n <div *ngFor=\"let item of visibleValues\"\n class=\"chat-suggestions__items__item\" (click)=\"onItemClick(item)\">\n {{ item }}\n </div>\n </div>\n</ng-template>\n",
73
+ changeDetection: ChangeDetectionStrategy.OnPush,
74
+ styles: [":host{display:flex;align-items:flex-start;justify-content:center}:host .chat-suggestions{display:flex;width:100%;max-width:970px}:host .chat-suggestions__container{display:flex;position:relative;width:auto;margin-top:12px;padding:0 24px}:host .chat-suggestions__container__button{z-index:3}:host .chat-suggestions__container__button::ng-deep button{background:#F2F2FB!important;border-radius:4px;cursor:pointer}:host .chat-suggestions__container .chat-suggestions__items{display:none;position:absolute;width:100%;bottom:0;left:0;padding-bottom:32px;z-index:2}:host .chat-suggestions__container--opened{width:100%}:host .chat-suggestions__container--opened .chat-suggestions__container__button::ng-deep button{color:#4646ce;background:#F2F2FB}:host .chat-suggestions__container--opened .chat-suggestions__items,:host .chat-suggestions__container--opened .chat-suggestions__items__background{display:flex}:host .chat-suggestions__items{display:flex;flex-wrap:wrap;width:100%;justify-content:space-between;padding:0 24px}:host .chat-suggestions__items__background{display:none;position:absolute;top:-32px;right:0;bottom:32px;left:0;background:#FFFFFF;opacity:.7;z-index:-1}:host .chat-suggestions__items__item{margin:0 0 20px;display:inline-flex;height:76px;width:275px;padding:16px;border-radius:8px;background:#F2F2FB;box-shadow:0 1px 2px #00000026;font-size:14px;line-height:24px;color:#25258c}:host .chat-suggestions__items__item:hover{cursor:pointer;background:#EAEAFF}\n"]
75
+ },] }
76
+ ];
77
+ DrChatSuggestionsComponent.ctorParameters = () => [
78
+ { type: ChangeDetectorRef }
79
+ ];
80
+ DrChatSuggestionsComponent.propDecorators = {
81
+ values: [{ type: Input }],
82
+ fullScreen: [{ type: Input }],
83
+ buttonMode: [{ type: Input }],
84
+ waitForReply: [{ type: Input }],
85
+ suggestionSelect: [{ type: Output }]
86
+ };
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1zdWdnZXN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1jaGF0L2RyLWNoYXQtc3VnZ2VzdGlvbnMvY2hhdC1zdWdnZXN0aW9ucy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxHQUNqRCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQVE1QixNQUFNLE9BQU8sMEJBQTBCO0lBeUJuQyxZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQXZCMUMscUJBQWdCLEdBQWEsRUFBRSxDQUFDO1FBQ2hDLGtCQUFhLEdBQWEsRUFBRSxDQUFDO1FBQzdCLHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQUNuQixXQUFNLEdBQWMsRUFBRSxDQUFDO1FBQ3ZCLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUVyQzs7OztXQUlHO1FBQ00saUJBQVksR0FBRyxLQUFLLENBQUM7UUFFcEIscUJBQWdCLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7SUFVOUUsQ0FBQztJQVJELElBQUksWUFBWTtRQUNaLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkUsQ0FBQztJQUNELElBQUksWUFBWSxDQUFDLE1BQU07UUFDbkIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUtELFFBQVE7UUFDSixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFZO1FBQ3BCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNuQixPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELFlBQVk7UUFDUixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNsRixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsaUJBQWlCO1FBQ2IsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDOUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGFBQWEsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNwQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRTtnQkFDekIsTUFBTTthQUNUO1lBQ0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZFLE1BQU0sSUFBSSxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3ZELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2pDO1FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsV0FBVztRQUNQLFlBQVksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxtQkFBbUI7UUFDZixJQUFJLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUM7UUFDckQsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDMUIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDNUI7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVCLENBQUM7OztZQWhGSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLHFCQUFxQjtnQkFDL0IsaTdCQUE4QztnQkFFOUMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2xEOzs7WUFWRyxpQkFBaUI7OztxQkFnQmhCLEtBQUs7eUJBQ0wsS0FBSzt5QkFDTCxLQUFLOzJCQU9MLEtBQUs7K0JBRUwsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZHItY2hhdC1zdWdnZXN0aW9ucycsXG4gICAgdGVtcGxhdGVVcmw6ICdjaGF0LXN1Z2dlc3Rpb25zLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jaGF0LXN1Z2dlc3Rpb25zLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIERyQ2hhdFN1Z2dlc3Rpb25zQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAgIF9ub25IaWRkZW5WYWx1ZXM6IHN0cmluZ1tdID0gW107XG4gICAgdmlzaWJsZVZhbHVlczogc3RyaW5nW10gPSBbXTtcbiAgICBpc1N1Z2dlc3RlZE1lbnVPcGVuID0gZmFsc2U7XG4gICAgQElucHV0KCkgdmFsdWVzOiBzdHJpbmcgW10gPSBbXTtcbiAgICBASW5wdXQoKSBmdWxsU2NyZWVuOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgYnV0dG9uTW9kZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogUGFyYW1ldGVyIHRvIGNoZWNrIGlzIHNlbmQgbWVzc2FnZSBmdW5jdGlvbiBhdmFpbGFibGVcbiAgICAgKlxuICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHdhaXRGb3JSZXBseSA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpIHN1Z2dlc3Rpb25TZWxlY3Q6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgICBnZXQgaGlkZGVuVmFsdWVzKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2FpQ2hhdFN1Z2dlc3Rpb25zJykpIHx8IFtdO1xuICAgIH1cbiAgICBzZXQgaGlkZGVuVmFsdWVzKHZhbHVlcykge1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnYWlDaGF0U3VnZ2VzdGlvbnMnLCBKU09OLnN0cmluZ2lmeSh2YWx1ZXMpKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJWYWx1ZXMoKTtcbiAgICB9XG5cbiAgICBvbkl0ZW1DbGljayhpdGVtOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRoaXMud2FpdEZvclJlcGx5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pc1N1Z2dlc3RlZE1lbnVPcGVuID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc3VnZ2VzdGlvblNlbGVjdC5lbWl0KGl0ZW0pO1xuICAgICAgICB0aGlzLmhpZGRlblZhbHVlcyA9IFsuLi50aGlzLmhpZGRlblZhbHVlcywgaXRlbV07XG4gICAgICAgIHRoaXMuZmlsdGVyVmFsdWVzKCk7XG4gICAgfVxuXG4gICAgZmlsdGVyVmFsdWVzKCkge1xuICAgICAgICBjb25zdCBoaWRkZW5WYWx1ZXMgPSB0aGlzLmhpZGRlblZhbHVlcztcbiAgICAgICAgdGhpcy5fbm9uSGlkZGVuVmFsdWVzID0gXy5maWx0ZXIodGhpcy52YWx1ZXMsIHZhbCA9PiAhaGlkZGVuVmFsdWVzLmluY2x1ZGVzKHZhbCkpO1xuICAgICAgICB0aGlzLmZpbGxWaXNpYmxlVmFsdWVzKCk7XG4gICAgfVxuXG4gICAgZmlsbFZpc2libGVWYWx1ZXMoKSB7XG4gICAgICAgIGNvbnN0IG1heEl0ZW1zQ291bnQgPSB0aGlzLmZ1bGxTY3JlZW4gPyA2IDogNDtcbiAgICAgICAgY29uc3Qgbm9uSGlkZGVuVmFsdWVzID0gXy5jbG9uZSh0aGlzLl9ub25IaWRkZW5WYWx1ZXMpO1xuICAgICAgICB0aGlzLnZpc2libGVWYWx1ZXMubGVuZ3RoID0gMDtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtYXhJdGVtc0NvdW50OyBpKyspIHtcbiAgICAgICAgICAgIGlmICghbm9uSGlkZGVuVmFsdWVzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgcmFuZG9tSW5kZXggPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBub25IaWRkZW5WYWx1ZXMubGVuZ3RoKTtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBub25IaWRkZW5WYWx1ZXMuc3BsaWNlKHJhbmRvbUluZGV4LCAxKVswXTtcbiAgICAgICAgICAgIHRoaXMudmlzaWJsZVZhbHVlcy5wdXNoKGl0ZW0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIGNsZWFySGlkZGVuKCkge1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnYWlDaGF0U3VnZ2VzdGlvbnMnLCBudWxsKTtcbiAgICAgICAgdGhpcy5maWx0ZXJWYWx1ZXMoKTtcbiAgICB9XG5cbiAgICB0b2dnbGVTdWdnZXN0ZWRNZW51KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzU3VnZ2VzdGVkTWVudU9wZW4gPSAhdGhpcy5pc1N1Z2dlc3RlZE1lbnVPcGVuO1xuICAgICAgICBpZiAodGhpcy5pc1N1Z2dlc3RlZE1lbnVPcGVuKSB7XG4gICAgICAgICAgICB0aGlzLmZpbGxWaXNpYmxlVmFsdWVzKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,15 @@
1
+ import { ChangeDetectionStrategy, Component, } from '@angular/core';
2
+ export class DrDotFlashingComponent {
3
+ constructor() {
4
+ }
5
+ }
6
+ DrDotFlashingComponent.decorators = [
7
+ { type: Component, args: [{
8
+ selector: 'dr-dot-flashing',
9
+ template: "<div class=\"dot-flashing\"></div>\n",
10
+ changeDetection: ChangeDetectionStrategy.OnPush,
11
+ styles: [":host .dot-flashing{position:relative;width:6px;height:6px;border-radius:5px;background-color:#25258c;color:#25258c;animation:dot-flashing 1s infinite linear alternate;animation-delay:.5s;margin-left:11px}:host .dot-flashing:before,:host .dot-flashing:after{content:\"\";display:inline-block;position:absolute;top:0}:host .dot-flashing:before{left:-10px;width:6px;height:6px;border-radius:5px;background-color:#25258c;color:#25258c;animation:dot-flashing 1s infinite alternate;animation-delay:0s}:host .dot-flashing:after{left:10px;width:6px;height:6px;border-radius:5px;background-color:#25258c;color:#25258c;animation:dot-flashing 1s infinite alternate;animation-delay:1s}@keyframes dot-flashing{0%{background-color:#25258c}50%,to{background-color:#9880ff33}}\n"]
12
+ },] }
13
+ ];
14
+ DrDotFlashingComponent.ctorParameters = () => [];
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItZG90LWZsYXNoaW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWNoYXQvZHItZG90LWZsYXNoaW5nL2RyLWRvdC1mbGFzaGluZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsR0FBRyxNQUFNLGVBQWUsQ0FBQztBQVFwRSxNQUFNLE9BQU8sc0JBQXNCO0lBRS9CO0lBQ0EsQ0FBQzs7O1lBVEosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLGdEQUE2QztnQkFFN0MsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2xEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci1kb3QtZmxhc2hpbmcnLFxuICAgIHRlbXBsYXRlVXJsOiAnZHItZG90LWZsYXNoaW5nLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kci1kb3QtZmxhc2hpbmcuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRHJEb3RGbGFzaGluZ0NvbXBvbmVudCB7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICB9XG59XG4iXX0=