@datarailsshared/datarailsshared 1.4.564 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (493) hide show
  1. package/assets/styles/_storybook-styles.scss +37 -0
  2. package/assets/styles/_styles.scss +9 -2
  3. package/assets/styles/colors.scss +88 -74
  4. package/assets/styles/dataRailsFont.scss +1 -1
  5. package/assets/styles/dialog.scss +22 -0
  6. package/assets/styles/icons.scss +1 -1
  7. package/assets/styles/mixins.scss +106 -6
  8. package/assets/styles/vars.scss +6 -4
  9. package/datarailsshared-datarailsshared-1.5.1.tgz +0 -0
  10. package/esm2022/datarailsshared-datarailsshared.mjs +5 -0
  11. package/esm2022/lib/date-tags/any-tag.component.mjs +42 -0
  12. package/esm2022/lib/date-tags/date-tag.component.mjs +126 -0
  13. package/esm2022/lib/date-tags/date-tag.module.mjs +53 -0
  14. package/esm2022/lib/date-tags/day-tag/day-tag.component.mjs +95 -0
  15. package/esm2022/lib/date-tags/forecast-tag/forecast-tag.component.mjs +222 -0
  16. package/esm2022/lib/date-tags/forecast-tag/forecast-tag.service.mjs +87 -0
  17. package/esm2022/lib/date-tags/month-tag/month-tag.component.mjs +98 -0
  18. package/esm2022/lib/date-tags/quarter-tag/quarter-tag.component.mjs +126 -0
  19. package/esm2022/lib/date-tags/week-tag/week-tag.component.mjs +102 -0
  20. package/esm2022/lib/date-tags/year-tag/year-tag.component.mjs +96 -0
  21. package/esm2022/lib/directives/click-outside/click-outside.directive.mjs +92 -0
  22. package/esm2022/lib/directives/click-outside/click-outside.module.mjs +19 -0
  23. package/esm2022/lib/directives/dr-shine-animation/dr-shine-animation.directive.mjs +63 -0
  24. package/esm2022/lib/directives/let/let.directive.mjs +35 -0
  25. package/esm2022/lib/directives/ng-track-by-property/ng-track-by-property.directive.mjs +23 -0
  26. package/esm2022/lib/dr-accordion/accordion-item-body.component.mjs +61 -0
  27. package/esm2022/lib/dr-accordion/accordion-item-header.component.mjs +154 -0
  28. package/esm2022/lib/dr-accordion/accordion-item.component.mjs +143 -0
  29. package/esm2022/lib/dr-accordion/accordion.component.mjs +55 -0
  30. package/esm2022/lib/dr-accordion/accordion.module.mjs +35 -0
  31. package/esm2022/lib/dr-alert/dr-alert.component.mjs +64 -0
  32. package/esm2022/lib/dr-alert/dr-alert.module.mjs +20 -0
  33. package/{esm2015/lib/dr-alert/enums/dr-alert-theme.enum.js → esm2022/lib/dr-alert/enums/dr-alert-theme.enum.mjs} +1 -2
  34. package/esm2022/lib/dr-avatar/dr-avatar.component.mjs +142 -0
  35. package/esm2022/lib/dr-avatar/dr-avatar.module.mjs +21 -0
  36. package/esm2022/lib/dr-avatar/dr-avatar.pipe.mjs +20 -0
  37. package/esm2022/lib/dr-avatar/services/dr-avatar.service.mjs +17 -0
  38. package/esm2022/lib/dr-avatar/types.mjs +2 -0
  39. package/esm2022/lib/dr-badge-status/dr-badge-status.component.mjs +53 -0
  40. package/esm2022/lib/dr-badge-status/dr-badge-status.module.mjs +21 -0
  41. package/esm2022/lib/dr-chat/chat.component.mjs +202 -0
  42. package/esm2022/lib/dr-chat/chat.module.mjs +81 -0
  43. package/esm2022/lib/dr-chat/dr-chat-alert/dr-chat-alert.component.mjs +31 -0
  44. package/esm2022/lib/dr-chat/dr-chat-form/chat-form.component.mjs +273 -0
  45. package/esm2022/lib/dr-chat/dr-chat-form-with-history/chat-form-with-history.component.mjs +380 -0
  46. package/esm2022/lib/dr-chat/dr-chat-message/chat-message.component.mjs +185 -0
  47. package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive.mjs +47 -0
  48. package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.service.mjs +26 -0
  49. package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component.mjs +78 -0
  50. package/esm2022/lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component.mjs +30 -0
  51. package/esm2022/lib/dr-chat/dr-chat-suggestions/chat-suggestions.component.mjs +187 -0
  52. package/esm2022/lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component.mjs +14 -0
  53. package/esm2022/lib/dr-chip/dr-chip.component.mjs +58 -0
  54. package/esm2022/lib/dr-code-editor/components/code-editor-hint-wrapper.component.mjs +19 -0
  55. package/esm2022/lib/dr-code-editor/components/dr-codemirror.component.mjs +204 -0
  56. package/esm2022/lib/dr-code-editor/dr-code-editor.component.mjs +326 -0
  57. package/esm2022/lib/dr-code-editor/dr-code-editor.module.mjs +29 -0
  58. package/esm2022/lib/dr-code-editor/models/code-editor-hint.mjs +6 -0
  59. package/esm2022/lib/dr-details-list/dr-details-list.component.mjs +106 -0
  60. package/esm2022/lib/dr-details-list/dr-details-list.module.mjs +20 -0
  61. package/esm2022/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.mjs +339 -0
  62. package/esm2022/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.mjs +238 -0
  63. package/esm2022/lib/dr-dialog/dialog.module.mjs +27 -0
  64. package/esm2022/lib/dr-dialog/interfaces/dialog-data.mjs +27 -0
  65. package/esm2022/lib/dr-dialog/services/dialog.service.mjs +77 -0
  66. package/esm2022/lib/dr-dropdown/dr-dropdown-item/dr-dropdown-item.component.mjs +29 -0
  67. package/esm2022/lib/dr-dropdown/dr-dropdown-item-show.pipe.mjs +16 -0
  68. package/esm2022/lib/dr-dropdown/dr-dropdown.component.mjs +248 -0
  69. package/esm2022/lib/dr-dropdown/dr-dropdown.directive.mjs +142 -0
  70. package/esm2022/lib/dr-dropdown/dr-dropdown.module.mjs +41 -0
  71. package/esm2022/lib/dr-dropdown/dr-dropdown.service.mjs +62 -0
  72. package/esm2022/lib/dr-dynamic-tag/dr-dynamic-tag.component.mjs +203 -0
  73. package/esm2022/lib/dr-dynamic-tag/dr-dynamic-tag.module.mjs +21 -0
  74. package/esm2022/lib/dr-error/dr-error.component.mjs +90 -0
  75. package/esm2022/lib/dr-error/dr-error.module.mjs +22 -0
  76. package/esm2022/lib/dr-inputs/button/button.component.mjs +101 -0
  77. package/esm2022/lib/dr-inputs/checkbox/checkbox.component.mjs +110 -0
  78. package/esm2022/lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive.mjs +55 -0
  79. package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.mjs +400 -0
  80. package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker-range/dr-date-picker-range.component.mjs +157 -0
  81. package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.mjs +269 -0
  82. package/esm2022/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.mjs +326 -0
  83. package/esm2022/lib/dr-inputs/date-pickers/dr-show-timeframe.pipe.mjs +16 -0
  84. package/esm2022/lib/dr-inputs/date-pickers/services/dr-date-picker.service.mjs +224 -0
  85. package/esm2022/lib/dr-inputs/date-pickers/services/week-selection-strategy.mjs +34 -0
  86. package/esm2022/lib/dr-inputs/date-pickers/week-selector/week-selector.component.mjs +91 -0
  87. package/esm2022/lib/dr-inputs/dr-input/dr-input.component.mjs +336 -0
  88. package/esm2022/lib/dr-inputs/dr-inputs.module.mjs +128 -0
  89. package/esm2022/lib/dr-inputs/dr-link/dr-link.component.mjs +43 -0
  90. package/esm2022/lib/dr-inputs/dr-model-debounce-change.directive.mjs +37 -0
  91. package/esm2022/lib/dr-inputs/dr-select/dr-select.component.mjs +391 -0
  92. package/esm2022/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.mjs +138 -0
  93. package/esm2022/lib/dr-inputs/dr-slider/dr-slider.component.mjs +53 -0
  94. package/esm2022/lib/dr-inputs/dr-toggle/dr-toggle.component.mjs +108 -0
  95. package/esm2022/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.mjs +108 -0
  96. package/esm2022/lib/dr-inputs/radio-button/radio-button.component.mjs +88 -0
  97. package/esm2022/lib/dr-inputs/radio-button/radio-group.component.mjs +185 -0
  98. package/esm2022/lib/dr-layout/dr-layout-body.component.mjs +19 -0
  99. package/esm2022/lib/dr-layout/dr-layout-header.component.mjs +25 -0
  100. package/esm2022/lib/dr-layout/dr-layout.component.mjs +21 -0
  101. package/esm2022/lib/dr-layout/dr-layout.module.mjs +22 -0
  102. package/esm2022/lib/dr-popover/dr-popover-ref.mjs +23 -0
  103. package/esm2022/lib/dr-popover/dr-popover.component.mjs +155 -0
  104. package/esm2022/lib/dr-popover/dr-popover.directive.mjs +137 -0
  105. package/esm2022/lib/dr-popover/dr-popover.module.mjs +20 -0
  106. package/esm2022/lib/dr-popover/dr-popover.service.mjs +117 -0
  107. package/esm2022/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.mjs +104 -0
  108. package/esm2022/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.mjs +100 -0
  109. package/esm2022/lib/dr-scenario/consts/scenario-tags-config.mjs +87 -0
  110. package/esm2022/lib/dr-scenario/dr-scenario.module.mjs +27 -0
  111. package/esm2022/lib/dr-scenario/services/scenario.service.mjs +195 -0
  112. package/esm2022/lib/dr-spinner/dr-spinner.component.mjs +27 -0
  113. package/esm2022/lib/dr-spinner/dr-spinner.directive.mjs +66 -0
  114. package/esm2022/lib/dr-spinner/dr-spinner.module.mjs +22 -0
  115. package/esm2022/lib/dr-tabs/dr-tab.component.mjs +47 -0
  116. package/esm2022/lib/dr-tabs/dr-tabs.component.mjs +252 -0
  117. package/esm2022/lib/dr-tabs/dr-tabs.module.mjs +25 -0
  118. package/esm2022/lib/dr-tags/dr-tag.component.mjs +235 -0
  119. package/esm2022/lib/dr-tags/dr-tag.module.mjs +23 -0
  120. package/esm2022/lib/dr-tags-constructor/dr-tags-constructor.component.mjs +161 -0
  121. package/esm2022/lib/dr-tags-constructor/dr-tags-constructor.module.mjs +24 -0
  122. package/esm2022/lib/dr-tags-constructor/tags-constructor.service.mjs +71 -0
  123. package/esm2022/lib/dr-toastr/default-toastr/default-toastr.component.mjs +73 -0
  124. package/esm2022/lib/dr-toastr/dr-toastr.module.mjs +31 -0
  125. package/esm2022/lib/dr-toastr/dr-toastr.service.mjs +44 -0
  126. package/esm2022/lib/dr-tooltip/components/tooltip-default/tooltip-default.component.mjs +31 -0
  127. package/esm2022/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.mjs +82 -0
  128. package/esm2022/lib/dr-tooltip/dr-tooltip.component.mjs +86 -0
  129. package/esm2022/lib/dr-tooltip/dr-tooltip.directive.mjs +194 -0
  130. package/esm2022/lib/dr-tooltip/dr-tooltip.module.mjs +24 -0
  131. package/esm2022/lib/dr-tooltip/interfaces/tooltip-component-context.mjs +14 -0
  132. package/esm2022/lib/dr-treeview/components/treeview/treeview.component.mjs +407 -0
  133. package/esm2022/lib/dr-treeview/components/treeview-item/treeview-item.component.mjs +97 -0
  134. package/esm2022/lib/dr-treeview/dr-tree-view.module.mjs +31 -0
  135. package/esm2022/lib/dr-treeview/helpers/treeview-event-parser.mjs +108 -0
  136. package/esm2022/lib/dr-treeview/helpers/treeview-helper.mjs +82 -0
  137. package/esm2022/lib/dr-treeview/models/treeview-config.mjs +25 -0
  138. package/{esm2015/lib/dr-treeview/models/treeview-header-template-context.js → esm2022/lib/dr-treeview/models/treeview-header-template-context.mjs} +1 -1
  139. package/esm2022/lib/dr-treeview/models/treeview-i18n.mjs +47 -0
  140. package/{esm2015/lib/dr-treeview/models/treeview-item-template-context.js → esm2022/lib/dr-treeview/models/treeview-item-template-context.mjs} +1 -1
  141. package/esm2022/lib/dr-treeview/models/treeview-item.mjs +155 -0
  142. package/esm2022/lib/dr-treeview/pipes/treeview.pipe.mjs +21 -0
  143. package/esm2022/lib/drawer/drawer-animation.mjs +18 -0
  144. package/esm2022/lib/drawer/drawer-config.mjs +35 -0
  145. package/esm2022/lib/drawer/drawer-container.component.mjs +179 -0
  146. package/esm2022/lib/drawer/drawer-position-strategy.mjs +14 -0
  147. package/esm2022/lib/drawer/drawer-ref.mjs +106 -0
  148. package/esm2022/lib/drawer/drawer.module.mjs +19 -0
  149. package/esm2022/lib/drawer/drawer.service.mjs +140 -0
  150. package/esm2022/lib/drawer/public-api.mjs +6 -0
  151. package/esm2022/lib/image-cropper/dr-image-cropper-canvas.service.mjs +78 -0
  152. package/esm2022/lib/image-cropper/dr-image-cropper.component.mjs +133 -0
  153. package/esm2022/lib/image-cropper/dr-image-cropper.types.mjs +6 -0
  154. package/esm2022/lib/list-tags/list-tag.component.mjs +82 -0
  155. package/esm2022/lib/list-tags/list-tag.module.mjs +22 -0
  156. package/esm2022/lib/models/chat.mjs +36 -0
  157. package/{esm2015/lib/models/constants.js → esm2022/lib/models/constants.mjs} +17 -22
  158. package/{esm2015/lib/models/datePicker.js → esm2022/lib/models/datePicker.mjs} +2 -2
  159. package/esm2022/lib/models/datePickerRange.mjs +2 -0
  160. package/esm2022/lib/models/dropdown.mjs +2 -0
  161. package/{esm2015/lib/models/feedback.js → esm2022/lib/models/feedback.mjs} +1 -2
  162. package/esm2022/lib/models/popover.mjs +27 -0
  163. package/{esm2015/lib/models/serverTags.js → esm2022/lib/models/serverTags.mjs} +1 -1
  164. package/esm2022/lib/models/spinnerOptions.mjs +2 -0
  165. package/esm2022/lib/models/toastr.mjs +14 -0
  166. package/esm2022/lib/pipes/filter/filter.pipe.mjs +48 -0
  167. package/esm2022/lib/pipes/img/img.pipe.mjs +19 -0
  168. package/esm2022/lib/stepper/stepper.component.mjs +270 -0
  169. package/esm2022/lib/stepper/stepper.module.mjs +20 -0
  170. package/esm2022/lib/utils/data-analytics.service.mjs +21 -0
  171. package/esm2022/lib/utils/decorators.mjs +12 -0
  172. package/esm2022/lib/utils/dr-shared-utils.mjs +85 -0
  173. package/esm2022/public-api.mjs +156 -0
  174. package/esm2022/src/lib/drawer/drDrawer.mjs +5 -0
  175. package/esm2022/src/lib/drawer/drawer-animation.mjs +18 -0
  176. package/esm2022/src/lib/drawer/drawer-config.mjs +35 -0
  177. package/esm2022/src/lib/drawer/drawer-container.component.mjs +179 -0
  178. package/esm2022/src/lib/drawer/drawer-position-strategy.mjs +14 -0
  179. package/esm2022/src/lib/drawer/drawer-ref.mjs +106 -0
  180. package/esm2022/src/lib/drawer/drawer.module.mjs +19 -0
  181. package/esm2022/src/lib/drawer/drawer.service.mjs +140 -0
  182. package/esm2022/src/lib/drawer/public-api.mjs +6 -0
  183. package/fesm2022/datarailsshared-datarailsshared.mjs +13716 -0
  184. package/fesm2022/datarailsshared-datarailsshared.mjs.map +1 -0
  185. package/fesm2022/drDrawer.mjs +496 -0
  186. package/fesm2022/drDrawer.mjs.map +1 -0
  187. package/index.d.ts +5 -0
  188. package/lib/date-tags/any-tag.component.d.ts +20 -0
  189. package/lib/date-tags/date-tag.component.d.ts +4 -16
  190. package/lib/date-tags/date-tag.module.d.ts +19 -2
  191. package/lib/date-tags/day-tag/day-tag.component.d.ts +4 -1
  192. package/lib/date-tags/forecast-tag/forecast-tag.component.d.ts +4 -1
  193. package/lib/date-tags/forecast-tag/forecast-tag.service.d.ts +11 -8
  194. package/lib/date-tags/month-tag/month-tag.component.d.ts +4 -1
  195. package/lib/date-tags/quarter-tag/quarter-tag.component.d.ts +4 -1
  196. package/lib/date-tags/week-tag/week-tag.component.d.ts +4 -1
  197. package/lib/date-tags/year-tag/year-tag.component.d.ts +4 -1
  198. package/lib/directives/click-outside/click-outside.directive.d.ts +23 -0
  199. package/lib/directives/click-outside/click-outside.module.d.ts +8 -0
  200. package/lib/directives/dr-shine-animation/dr-shine-animation.directive.d.ts +18 -0
  201. package/lib/directives/let/let.directive.d.ts +19 -0
  202. package/lib/directives/ng-track-by-property/ng-track-by-property.directive.d.ts +8 -0
  203. package/lib/dr-accordion/accordion-item-body.component.d.ts +3 -0
  204. package/lib/dr-accordion/accordion-item-header.component.d.ts +14 -1
  205. package/lib/dr-accordion/accordion-item.component.d.ts +4 -1
  206. package/lib/dr-accordion/accordion.component.d.ts +5 -0
  207. package/lib/dr-accordion/accordion.module.d.ts +9 -0
  208. package/lib/dr-alert/dr-alert.component.d.ts +3 -0
  209. package/lib/dr-alert/dr-alert.module.d.ts +6 -0
  210. package/lib/dr-avatar/dr-avatar.component.d.ts +15 -13
  211. package/lib/dr-avatar/dr-avatar.module.d.ts +8 -0
  212. package/lib/dr-avatar/dr-avatar.pipe.d.ts +5 -1
  213. package/lib/dr-avatar/services/dr-avatar.service.d.ts +1 -1
  214. package/lib/dr-avatar/types.d.ts +8 -0
  215. package/lib/dr-badge-status/dr-badge-status.component.d.ts +5 -4
  216. package/lib/dr-badge-status/dr-badge-status.module.d.ts +7 -0
  217. package/lib/dr-chat/chat.component.d.ts +6 -7
  218. package/lib/dr-chat/chat.module.d.ts +20 -0
  219. package/lib/dr-chat/dr-chat-alert/dr-chat-alert.component.d.ts +8 -0
  220. package/lib/dr-chat/dr-chat-form/chat-form.component.d.ts +11 -1
  221. package/lib/dr-chat/dr-chat-form-with-history/chat-form-with-history.component.d.ts +81 -0
  222. package/lib/dr-chat/dr-chat-message/chat-message.component.d.ts +4 -0
  223. package/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive.d.ts +3 -0
  224. package/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.service.d.ts +3 -0
  225. package/lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component.d.ts +3 -0
  226. package/lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component.d.ts +3 -0
  227. package/lib/dr-chat/dr-chat-suggestions/chat-suggestions.component.d.ts +15 -2
  228. package/lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component.d.ts +3 -0
  229. package/lib/dr-chip/dr-chip.component.d.ts +10 -0
  230. package/lib/dr-code-editor/components/code-editor-hint-wrapper.component.d.ts +7 -0
  231. package/lib/dr-code-editor/components/dr-codemirror.component.d.ts +47 -0
  232. package/lib/dr-code-editor/dr-code-editor.component.d.ts +45 -0
  233. package/lib/dr-code-editor/dr-code-editor.module.d.ts +17 -0
  234. package/lib/dr-code-editor/models/code-editor-hint.d.ts +14 -0
  235. package/lib/dr-details-list/dr-details-list.component.d.ts +3 -0
  236. package/lib/dr-details-list/dr-details-list.module.d.ts +6 -0
  237. package/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.d.ts +6 -5
  238. package/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.d.ts +6 -5
  239. package/lib/dr-dialog/dialog.module.d.ts +12 -0
  240. package/lib/dr-dialog/interfaces/dialog-data.d.ts +13 -9
  241. package/lib/dr-dialog/services/dialog.service.d.ts +10 -3
  242. package/lib/dr-dropdown/dr-dropdown-item/dr-dropdown-item.component.d.ts +8 -0
  243. package/lib/dr-dropdown/dr-dropdown-item-show.pipe.d.ts +3 -0
  244. package/lib/dr-dropdown/dr-dropdown.component.d.ts +28 -21
  245. package/lib/dr-dropdown/dr-dropdown.directive.d.ts +21 -14
  246. package/lib/dr-dropdown/dr-dropdown.module.d.ts +11 -0
  247. package/lib/dr-dropdown/dr-dropdown.service.d.ts +26 -8
  248. package/lib/dr-dynamic-tag/dr-dynamic-tag.component.d.ts +3 -0
  249. package/lib/dr-dynamic-tag/dr-dynamic-tag.module.d.ts +8 -0
  250. package/lib/dr-error/dr-error.component.d.ts +12 -8
  251. package/lib/dr-error/dr-error.module.d.ts +8 -0
  252. package/lib/dr-inputs/button/button.component.d.ts +6 -8
  253. package/lib/dr-inputs/checkbox/checkbox.component.d.ts +10 -2
  254. package/lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive.d.ts +3 -0
  255. package/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.d.ts +29 -9
  256. package/lib/dr-inputs/date-pickers/dr-date-picker-range/dr-date-picker-range.component.d.ts +40 -0
  257. package/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.d.ts +18 -11
  258. package/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.d.ts +11 -10
  259. package/lib/dr-inputs/date-pickers/dr-show-timeframe.pipe.d.ts +4 -2
  260. package/lib/dr-inputs/date-pickers/services/dr-date-picker.service.d.ts +22 -5
  261. package/lib/dr-inputs/date-pickers/services/week-selection-strategy.d.ts +12 -0
  262. package/lib/dr-inputs/date-pickers/week-selector/week-selector.component.d.ts +23 -0
  263. package/lib/dr-inputs/dr-input/dr-input.component.d.ts +35 -20
  264. package/lib/dr-inputs/dr-inputs.module.d.ts +30 -0
  265. package/lib/dr-inputs/dr-link/dr-link.component.d.ts +16 -0
  266. package/lib/dr-inputs/dr-model-debounce-change.directive.d.ts +4 -0
  267. package/lib/dr-inputs/dr-select/dr-select.component.d.ts +20 -3
  268. package/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.d.ts +4 -0
  269. package/lib/dr-inputs/dr-slider/dr-slider.component.d.ts +18 -0
  270. package/lib/dr-inputs/dr-toggle/dr-toggle.component.d.ts +3 -0
  271. package/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.d.ts +6 -1
  272. package/lib/dr-inputs/radio-button/radio-button.component.d.ts +3 -0
  273. package/lib/dr-inputs/radio-button/radio-group.component.d.ts +3 -0
  274. package/lib/dr-layout/dr-layout-body.component.d.ts +3 -0
  275. package/lib/dr-layout/dr-layout-header.component.d.ts +3 -0
  276. package/lib/dr-layout/dr-layout.component.d.ts +3 -0
  277. package/lib/dr-layout/dr-layout.module.d.ts +8 -0
  278. package/lib/dr-popover/dr-popover-ref.d.ts +1 -0
  279. package/lib/dr-popover/dr-popover.component.d.ts +8 -4
  280. package/lib/dr-popover/dr-popover.directive.d.ts +9 -5
  281. package/lib/dr-popover/dr-popover.module.d.ts +7 -0
  282. package/lib/dr-popover/dr-popover.service.d.ts +5 -1
  283. package/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.d.ts +3 -4
  284. package/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.d.ts +3 -0
  285. package/lib/dr-scenario/dr-scenario.module.d.ts +11 -0
  286. package/lib/dr-scenario/interfaces/scenario.d.ts +3 -3
  287. package/lib/dr-scenario/services/scenario.service.d.ts +3 -0
  288. package/lib/dr-spinner/dr-spinner.component.d.ts +3 -0
  289. package/lib/dr-spinner/dr-spinner.directive.d.ts +4 -2
  290. package/lib/dr-spinner/dr-spinner.module.d.ts +7 -0
  291. package/lib/dr-tabs/dr-tab.component.d.ts +5 -0
  292. package/lib/dr-tabs/dr-tabs.component.d.ts +21 -4
  293. package/lib/dr-tabs/dr-tabs.module.d.ts +11 -0
  294. package/lib/dr-tags/dr-tag.component.d.ts +3 -0
  295. package/lib/dr-tags/dr-tag.module.d.ts +9 -0
  296. package/lib/dr-tags-constructor/dr-tags-constructor.component.d.ts +33 -0
  297. package/lib/dr-tags-constructor/dr-tags-constructor.module.d.ts +10 -0
  298. package/lib/dr-tags-constructor/tags-constructor.service.d.ts +12 -0
  299. package/lib/dr-toastr/default-toastr/default-toastr.component.d.ts +15 -0
  300. package/lib/dr-toastr/dr-toastr.module.d.ts +9 -0
  301. package/lib/dr-toastr/dr-toastr.service.d.ts +14 -0
  302. package/lib/dr-tooltip/components/tooltip-default/tooltip-default.component.d.ts +9 -0
  303. package/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.d.ts +3 -1
  304. package/lib/dr-tooltip/dr-tooltip.component.d.ts +4 -1
  305. package/lib/dr-tooltip/dr-tooltip.directive.d.ts +7 -0
  306. package/lib/dr-tooltip/dr-tooltip.module.d.ts +9 -0
  307. package/lib/dr-tooltip/interfaces/tooltip-component-context.d.ts +18 -2
  308. package/lib/dr-treeview/components/treeview/treeview.component.d.ts +3 -0
  309. package/lib/dr-treeview/components/treeview-item/treeview-item.component.d.ts +3 -0
  310. package/lib/dr-treeview/dr-tree-view.module.d.ts +9 -0
  311. package/lib/dr-treeview/helpers/treeview-event-parser.d.ts +9 -0
  312. package/lib/dr-treeview/models/treeview-config.d.ts +3 -0
  313. package/lib/dr-treeview/models/treeview-i18n.d.ts +5 -0
  314. package/lib/dr-treeview/models/treeview-item.d.ts +2 -1
  315. package/lib/dr-treeview/pipes/treeview.pipe.d.ts +3 -0
  316. package/lib/drawer/drawer-animation.d.ts +5 -0
  317. package/lib/drawer/drawer-config.d.ts +68 -0
  318. package/lib/drawer/drawer-container.component.d.ts +45 -0
  319. package/lib/drawer/drawer-position-strategy.d.ts +10 -0
  320. package/lib/drawer/drawer-ref.d.ts +55 -0
  321. package/lib/drawer/drawer.module.d.ts +7 -0
  322. package/lib/drawer/drawer.service.d.ts +62 -0
  323. package/lib/drawer/public-api.d.ts +5 -0
  324. package/lib/image-cropper/dr-image-cropper-canvas.service.d.ts +20 -0
  325. package/lib/image-cropper/dr-image-cropper.component.d.ts +28 -0
  326. package/lib/image-cropper/dr-image-cropper.types.d.ts +9 -0
  327. package/lib/list-tags/list-tag.component.d.ts +3 -0
  328. package/lib/list-tags/list-tag.module.d.ts +8 -0
  329. package/lib/models/chat.d.ts +3 -3
  330. package/lib/models/datePicker.d.ts +10 -3
  331. package/lib/models/datePickerRange.d.ts +4 -0
  332. package/lib/models/dropdown.d.ts +15 -21
  333. package/lib/models/popover.d.ts +7 -4
  334. package/lib/models/serverTags.d.ts +4 -4
  335. package/lib/models/spinnerOptions.d.ts +2 -10
  336. package/lib/models/toastr.d.ts +18 -0
  337. package/lib/pipes/filter/filter.pipe.d.ts +7 -0
  338. package/lib/pipes/img/img.pipe.d.ts +7 -0
  339. package/lib/stepper/interfaces/stepper.d.ts +1 -1
  340. package/lib/stepper/stepper.component.d.ts +13 -8
  341. package/lib/stepper/stepper.module.d.ts +7 -0
  342. package/lib/utils/data-analytics.service.d.ts +8 -0
  343. package/lib/utils/decorators.d.ts +1 -0
  344. package/lib/utils/dr-shared-utils.d.ts +9 -0
  345. package/package.json +41 -15
  346. package/public-api.d.ts +59 -5
  347. package/src/lib/drawer/drawer-animation.d.ts +5 -0
  348. package/src/lib/drawer/drawer-config.d.ts +68 -0
  349. package/src/lib/drawer/drawer-container.component.d.ts +45 -0
  350. package/src/lib/drawer/drawer-position-strategy.d.ts +10 -0
  351. package/src/lib/drawer/drawer-ref.d.ts +55 -0
  352. package/src/lib/drawer/drawer.module.d.ts +7 -0
  353. package/src/lib/drawer/drawer.service.d.ts +62 -0
  354. package/src/lib/drawer/index.d.ts +5 -0
  355. package/src/lib/drawer/public-api.d.ts +5 -0
  356. package/styles.css +749 -0
  357. package/_datarailsshared.styles.css +0 -4
  358. package/assets/styles/img/dr-icon-info.svg +0 -4
  359. package/bundles/datarailsshared-datarailsshared.umd.js +0 -8372
  360. package/bundles/datarailsshared-datarailsshared.umd.js.map +0 -1
  361. package/datarailsshared-datarailsshared-1.4.564.tgz +0 -0
  362. package/datarailsshared-datarailsshared.d.ts +0 -34
  363. package/datarailsshared-datarailsshared.metadata.json +0 -1
  364. package/esm2015/datarailsshared-datarailsshared.js +0 -35
  365. package/esm2015/lib/date-tags/date-tag.component.js +0 -74
  366. package/esm2015/lib/date-tags/date-tag.module.js +0 -36
  367. package/esm2015/lib/date-tags/day-tag/day-tag.component.js +0 -77
  368. package/esm2015/lib/date-tags/forecast-tag/forecast-tag.component.js +0 -164
  369. package/esm2015/lib/date-tags/forecast-tag/forecast-tag.service.js +0 -83
  370. package/esm2015/lib/date-tags/month-tag/month-tag.component.js +0 -80
  371. package/esm2015/lib/date-tags/quarter-tag/quarter-tag.component.js +0 -114
  372. package/esm2015/lib/date-tags/week-tag/week-tag.component.js +0 -84
  373. package/esm2015/lib/date-tags/year-tag/year-tag.component.js +0 -78
  374. package/esm2015/lib/dr-accordion/accordion-item-body.component.js +0 -55
  375. package/esm2015/lib/dr-accordion/accordion-item-header.component.js +0 -77
  376. package/esm2015/lib/dr-accordion/accordion-item.component.js +0 -123
  377. package/esm2015/lib/dr-accordion/accordion.component.js +0 -43
  378. package/esm2015/lib/dr-accordion/accordion.module.js +0 -23
  379. package/esm2015/lib/dr-alert/dr-alert.component.js +0 -35
  380. package/esm2015/lib/dr-alert/dr-alert.module.js +0 -18
  381. package/esm2015/lib/dr-avatar/dr-avatar.component.js +0 -54
  382. package/esm2015/lib/dr-avatar/dr-avatar.module.js +0 -26
  383. package/esm2015/lib/dr-avatar/dr-avatar.pipe.js +0 -16
  384. package/esm2015/lib/dr-avatar/services/dr-avatar.service.js +0 -17
  385. package/esm2015/lib/dr-badge-status/dr-badge-status.component.js +0 -25
  386. package/esm2015/lib/dr-badge-status/dr-badge-status.module.js +0 -20
  387. package/esm2015/lib/dr-chat/chat.component.js +0 -119
  388. package/esm2015/lib/dr-chat/chat.module.js +0 -41
  389. package/esm2015/lib/dr-chat/dr-chat-form/chat-form.component.js +0 -155
  390. package/esm2015/lib/dr-chat/dr-chat-message/chat-message.component.js +0 -71
  391. package/esm2015/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive.js +0 -49
  392. package/esm2015/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.service.js +0 -23
  393. package/esm2015/lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component.js +0 -47
  394. package/esm2015/lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component.js +0 -18
  395. package/esm2015/lib/dr-chat/dr-chat-suggestions/chat-suggestions.component.js +0 -87
  396. package/esm2015/lib/dr-chat/dr-dot-flashing/dr-dot-flashing.component.js +0 -15
  397. package/esm2015/lib/dr-details-list/dr-details-list.component.js +0 -65
  398. package/esm2015/lib/dr-details-list/dr-details-list.module.js +0 -16
  399. package/esm2015/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.js +0 -84
  400. package/esm2015/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.js +0 -92
  401. package/esm2015/lib/dr-dialog/dialog.module.js +0 -34
  402. package/esm2015/lib/dr-dialog/interfaces/dialog-data.js +0 -25
  403. package/esm2015/lib/dr-dialog/services/dialog.service.js +0 -78
  404. package/esm2015/lib/dr-dropdown/dr-dropdown-item-show.pipe.js +0 -12
  405. package/esm2015/lib/dr-dropdown/dr-dropdown-position.directive.js +0 -104
  406. package/esm2015/lib/dr-dropdown/dr-dropdown.component.js +0 -114
  407. package/esm2015/lib/dr-dropdown/dr-dropdown.directive.js +0 -104
  408. package/esm2015/lib/dr-dropdown/dr-dropdown.module.js +0 -34
  409. package/esm2015/lib/dr-dropdown/dr-dropdown.service.js +0 -24
  410. package/esm2015/lib/dr-dynamic-tag/dr-dynamic-tag.component.js +0 -120
  411. package/esm2015/lib/dr-dynamic-tag/dr-dynamic-tag.module.js +0 -19
  412. package/esm2015/lib/dr-error/dr-error.component.js +0 -56
  413. package/esm2015/lib/dr-error/dr-error.module.js +0 -22
  414. package/esm2015/lib/dr-inputs/button/button.component.js +0 -39
  415. package/esm2015/lib/dr-inputs/checkbox/checkbox.component.js +0 -66
  416. package/esm2015/lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive.js +0 -47
  417. package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.js +0 -234
  418. package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.js +0 -182
  419. package/esm2015/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.js +0 -183
  420. package/esm2015/lib/dr-inputs/date-pickers/dr-show-timeframe.pipe.js +0 -12
  421. package/esm2015/lib/dr-inputs/date-pickers/services/dr-date-picker.service.js +0 -194
  422. package/esm2015/lib/dr-inputs/dr-input/dr-input.component.js +0 -194
  423. package/esm2015/lib/dr-inputs/dr-inputs.module.js +0 -68
  424. package/esm2015/lib/dr-inputs/dr-model-debounce-change.directive.js +0 -29
  425. package/esm2015/lib/dr-inputs/dr-select/dr-select.component.js +0 -123
  426. package/esm2015/lib/dr-inputs/dr-select-add-item/dr-select-add-item.component.js +0 -74
  427. package/esm2015/lib/dr-inputs/dr-toggle/dr-toggle.component.js +0 -68
  428. package/esm2015/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.js +0 -67
  429. package/esm2015/lib/dr-inputs/radio-button/radio-button.component.js +0 -73
  430. package/esm2015/lib/dr-inputs/radio-button/radio-group.component.js +0 -157
  431. package/esm2015/lib/dr-layout/dr-layout-body.component.js +0 -13
  432. package/esm2015/lib/dr-layout/dr-layout-header.component.js +0 -17
  433. package/esm2015/lib/dr-layout/dr-layout.component.js +0 -14
  434. package/esm2015/lib/dr-layout/dr-layout.module.js +0 -20
  435. package/esm2015/lib/dr-popover/dr-popover-ref.js +0 -20
  436. package/esm2015/lib/dr-popover/dr-popover.component.js +0 -106
  437. package/esm2015/lib/dr-popover/dr-popover.directive.js +0 -84
  438. package/esm2015/lib/dr-popover/dr-popover.module.js +0 -23
  439. package/esm2015/lib/dr-popover/dr-popover.service.js +0 -106
  440. package/esm2015/lib/dr-scenario/components/dr-scenario-configuration/dr-scenario-configuration.component.js +0 -104
  441. package/esm2015/lib/dr-scenario/components/dr-scenario-tag-configuration/dr-scenario-tag-configuration.component.js +0 -75
  442. package/esm2015/lib/dr-scenario/consts/scenario-tags-config.js +0 -79
  443. package/esm2015/lib/dr-scenario/dr-scenario.module.js +0 -28
  444. package/esm2015/lib/dr-scenario/services/scenario.service.js +0 -196
  445. package/esm2015/lib/dr-spinner/dr-spinner.component.js +0 -18
  446. package/esm2015/lib/dr-spinner/dr-spinner.directive.js +0 -58
  447. package/esm2015/lib/dr-spinner/dr-spinner.module.js +0 -18
  448. package/esm2015/lib/dr-tabs/dr-tab.component.js +0 -26
  449. package/esm2015/lib/dr-tabs/dr-tabs.component.js +0 -35
  450. package/esm2015/lib/dr-tabs/dr-tabs.module.js +0 -32
  451. package/esm2015/lib/dr-tags/dr-tag.component.js +0 -183
  452. package/esm2015/lib/dr-tags/dr-tag.module.js +0 -24
  453. package/esm2015/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.js +0 -19
  454. package/esm2015/lib/dr-tooltip/components/tooltip-info-simple/tooltip-info-simple.component.js +0 -18
  455. package/esm2015/lib/dr-tooltip/components/tooltip-no-body/tooltip-no-body.component.js +0 -20
  456. package/esm2015/lib/dr-tooltip/components/tooltip-process-default/tooltip-process-default.component.js +0 -34
  457. package/esm2015/lib/dr-tooltip/dr-tooltip.component.js +0 -41
  458. package/esm2015/lib/dr-tooltip/dr-tooltip.directive.js +0 -151
  459. package/esm2015/lib/dr-tooltip/dr-tooltip.module.js +0 -38
  460. package/esm2015/lib/dr-tooltip/interfaces/tooltip-component-context.js +0 -2
  461. package/esm2015/lib/dr-treeview/components/treeview/treeview.component.js +0 -210
  462. package/esm2015/lib/dr-treeview/components/treeview-item/treeview-item.component.js +0 -58
  463. package/esm2015/lib/dr-treeview/dr-tree-view.module.js +0 -38
  464. package/esm2015/lib/dr-treeview/helpers/treeview-event-parser.js +0 -97
  465. package/esm2015/lib/dr-treeview/helpers/treeview-helper.js +0 -82
  466. package/esm2015/lib/dr-treeview/models/treeview-config.js +0 -22
  467. package/esm2015/lib/dr-treeview/models/treeview-i18n.js +0 -42
  468. package/esm2015/lib/dr-treeview/models/treeview-item.js +0 -155
  469. package/esm2015/lib/dr-treeview/pipes/treeview.pipe.js +0 -17
  470. package/esm2015/lib/list-tags/list-tag.component.js +0 -37
  471. package/esm2015/lib/list-tags/list-tag.module.js +0 -23
  472. package/esm2015/lib/models/chat.js +0 -38
  473. package/esm2015/lib/models/dropdown.js +0 -2
  474. package/esm2015/lib/models/popover.js +0 -27
  475. package/esm2015/lib/models/spinnerOptions.js +0 -13
  476. package/esm2015/lib/stepper/stepper.component.js +0 -55
  477. package/esm2015/lib/stepper/stepper.module.js +0 -17
  478. package/esm2015/lib/utils/dr-shared-utils.js +0 -47
  479. package/esm2015/public-api.js +0 -100
  480. package/fesm2015/datarailsshared-datarailsshared.js +0 -7194
  481. package/fesm2015/datarailsshared-datarailsshared.js.map +0 -1
  482. package/lib/dr-dropdown/dr-dropdown-position.directive.d.ts +0 -12
  483. package/lib/dr-tooltip/components/tooltip-info-simple/tooltip-info-simple.component.d.ts +0 -5
  484. package/lib/dr-tooltip/components/tooltip-no-body/tooltip-no-body.component.d.ts +0 -6
  485. package/lib/dr-tooltip/components/tooltip-process-default/tooltip-process-default.component.d.ts +0 -4
  486. /package/{esm2015/lib/dr-inputs/dr-toggle-button/toggle-button-mode.js → esm2022/lib/dr-inputs/dr-toggle-button/toggle-button-mode.mjs} +0 -0
  487. /package/{esm2015/lib/dr-scenario/interfaces/scenario.js → esm2022/lib/dr-scenario/interfaces/scenario.mjs} +0 -0
  488. /package/{esm2015/lib/dr-tags/dr-tag.types.js → esm2022/lib/dr-tags/dr-tag.types.mjs} +0 -0
  489. /package/{esm2015/lib/dr-tooltip/enums/tooltip-position.enum.js → esm2022/lib/dr-tooltip/enums/tooltip-position.enum.mjs} +0 -0
  490. /package/{esm2015/lib/dr-tooltip/enums/tooltip-theme.enum.js → esm2022/lib/dr-tooltip/enums/tooltip-theme.enum.mjs} +0 -0
  491. /package/{esm2015/lib/models/badgeStatus.js → esm2022/lib/models/badgeStatus.mjs} +0 -0
  492. /package/{esm2015/lib/models/validationError.js → esm2022/lib/models/validationError.mjs} +0 -0
  493. /package/{esm2015/lib/stepper/interfaces/stepper.js → esm2022/lib/stepper/interfaces/stepper.mjs} +0 -0
@@ -0,0 +1,81 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { DrInputsModule } from '../dr-inputs/dr-inputs.module';
3
+ import { DrAvatarModule } from '../dr-avatar/dr-avatar.module';
4
+ import { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';
5
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
6
+ import { CommonModule } from '@angular/common';
7
+ import { DrChatComponent } from './chat.component';
8
+ import { DrChatMessageComponent } from './dr-chat-message/chat-message.component';
9
+ import { DrChatFormComponent } from './dr-chat-form/chat-form.component';
10
+ import { DrChatMessageTextComponent } from './dr-chat-message/dr-chat-message-text/chat-message-text.component';
11
+ import { DrChatMessageFileComponent } from './dr-chat-message/dr-chat-message-file/chat-message-file.component';
12
+ import { DrChatCustomMessageDirective } from './dr-chat-message/dr-chat-message-custom/chat-custom-message.directive';
13
+ import { DrChatSuggestionsComponent } from './dr-chat-suggestions/chat-suggestions.component';
14
+ import { DrDotFlashingComponent } from './dr-dot-flashing/dr-dot-flashing.component';
15
+ import { DrChatAlertComponent } from './dr-chat-alert/dr-chat-alert.component';
16
+ import { ClickOutsideModule } from '../directives/click-outside/click-outside.module';
17
+ import { DrChatFormWithHistoryComponent } from './dr-chat-form-with-history/chat-form-with-history.component';
18
+ import * as i0 from "@angular/core";
19
+ const DR_CHAT_COMPONENTS = [
20
+ DrChatComponent,
21
+ DrChatMessageComponent,
22
+ DrChatFormComponent,
23
+ DrChatFormWithHistoryComponent,
24
+ DrChatMessageTextComponent,
25
+ DrChatMessageFileComponent,
26
+ DrChatSuggestionsComponent,
27
+ DrDotFlashingComponent,
28
+ DrChatAlertComponent,
29
+ ];
30
+ const DR_CHAT_DIRECTIVES = [DrChatCustomMessageDirective];
31
+ export class DrChatModule {
32
+ /** @nocollapse */ static { this.ɵfac = function DrChatModule_Factory(t) { return new (t || DrChatModule)(); }; }
33
+ /** @nocollapse */ static { this.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: DrChatModule }); }
34
+ /** @nocollapse */ static { this.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [FormsModule,
35
+ ReactiveFormsModule,
36
+ CommonModule,
37
+ DrAvatarModule,
38
+ DrInputsModule,
39
+ DrTooltipModule,
40
+ ClickOutsideModule] }); }
41
+ }
42
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrChatModule, [{
43
+ type: NgModule,
44
+ args: [{
45
+ imports: [
46
+ FormsModule,
47
+ ReactiveFormsModule,
48
+ CommonModule,
49
+ DrAvatarModule,
50
+ DrInputsModule,
51
+ DrTooltipModule,
52
+ ClickOutsideModule,
53
+ ],
54
+ declarations: [...DR_CHAT_COMPONENTS, ...DR_CHAT_DIRECTIVES],
55
+ exports: [...DR_CHAT_COMPONENTS, ...DR_CHAT_DIRECTIVES],
56
+ }]
57
+ }], null, null); })();
58
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(DrChatModule, { declarations: [DrChatComponent,
59
+ DrChatMessageComponent,
60
+ DrChatFormComponent,
61
+ DrChatFormWithHistoryComponent,
62
+ DrChatMessageTextComponent,
63
+ DrChatMessageFileComponent,
64
+ DrChatSuggestionsComponent,
65
+ DrDotFlashingComponent,
66
+ DrChatAlertComponent, DrChatCustomMessageDirective], imports: [FormsModule,
67
+ ReactiveFormsModule,
68
+ CommonModule,
69
+ DrAvatarModule,
70
+ DrInputsModule,
71
+ DrTooltipModule,
72
+ ClickOutsideModule], exports: [DrChatComponent,
73
+ DrChatMessageComponent,
74
+ DrChatFormComponent,
75
+ DrChatFormWithHistoryComponent,
76
+ DrChatMessageTextComponent,
77
+ DrChatMessageFileComponent,
78
+ DrChatSuggestionsComponent,
79
+ DrDotFlashingComponent,
80
+ DrChatAlertComponent, DrChatCustomMessageDirective] }); })();
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1jaGF0L2NoYXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDbEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDekUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDaEgsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDaEgsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDdEgsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDOUYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDckYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDdEYsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sOERBQThELENBQUM7O0FBRTlHLE1BQU0sa0JBQWtCLEdBQUc7SUFDdkIsZUFBZTtJQUNmLHNCQUFzQjtJQUN0QixtQkFBbUI7SUFDbkIsOEJBQThCO0lBQzlCLDBCQUEwQjtJQUMxQiwwQkFBMEI7SUFDMUIsMEJBQTBCO0lBQzFCLHNCQUFzQjtJQUN0QixvQkFBb0I7Q0FDdkIsQ0FBQztBQUVGLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0FBZTFELE1BQU0sT0FBTyxZQUFZO2dHQUFaLFlBQVk7a0dBQVosWUFBWTtzR0FYakIsV0FBVztZQUNYLG1CQUFtQjtZQUNuQixZQUFZO1lBQ1osY0FBYztZQUNkLGNBQWM7WUFDZCxlQUFlO1lBQ2Ysa0JBQWtCOzt1RkFLYixZQUFZO2NBYnhCLFFBQVE7ZUFBQztnQkFDTixPQUFPLEVBQUU7b0JBQ0wsV0FBVztvQkFDWCxtQkFBbUI7b0JBQ25CLFlBQVk7b0JBQ1osY0FBYztvQkFDZCxjQUFjO29CQUNkLGVBQWU7b0JBQ2Ysa0JBQWtCO2lCQUNyQjtnQkFDRCxZQUFZLEVBQUUsQ0FBQyxHQUFHLGtCQUFrQixFQUFFLEdBQUcsa0JBQWtCLENBQUM7Z0JBQzVELE9BQU8sRUFBRSxDQUFDLEdBQUcsa0JBQWtCLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQzthQUMxRDs7d0ZBQ1ksWUFBWSxtQkExQnJCLGVBQWU7UUFDZixzQkFBc0I7UUFDdEIsbUJBQW1CO1FBQ25CLDhCQUE4QjtRQUM5QiwwQkFBMEI7UUFDMUIsMEJBQTBCO1FBQzFCLDBCQUEwQjtRQUMxQixzQkFBc0I7UUFDdEIsb0JBQW9CLEVBR0ksNEJBQTRCLGFBSWhELFdBQVc7UUFDWCxtQkFBbUI7UUFDbkIsWUFBWTtRQUNaLGNBQWM7UUFDZCxjQUFjO1FBQ2QsZUFBZTtRQUNmLGtCQUFrQixhQXJCdEIsZUFBZTtRQUNmLHNCQUFzQjtRQUN0QixtQkFBbUI7UUFDbkIsOEJBQThCO1FBQzlCLDBCQUEwQjtRQUMxQiwwQkFBMEI7UUFDMUIsMEJBQTBCO1FBQzFCLHNCQUFzQjtRQUN0QixvQkFBb0IsRUFHSSw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRHJJbnB1dHNNb2R1bGUgfSBmcm9tICcuLi9kci1pbnB1dHMvZHItaW5wdXRzLm1vZHVsZSc7XG5pbXBvcnQgeyBEckF2YXRhck1vZHVsZSB9IGZyb20gJy4uL2RyLWF2YXRhci9kci1hdmF0YXIubW9kdWxlJztcbmltcG9ydCB7IERyVG9vbHRpcE1vZHVsZSB9IGZyb20gJy4uL2RyLXRvb2x0aXAvZHItdG9vbHRpcC5tb2R1bGUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBEckNoYXRDb21wb25lbnQgfSBmcm9tICcuL2NoYXQuY29tcG9uZW50JztcbmltcG9ydCB7IERyQ2hhdE1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuL2RyLWNoYXQtbWVzc2FnZS9jaGF0LW1lc3NhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IERyQ2hhdEZvcm1Db21wb25lbnQgfSBmcm9tICcuL2RyLWNoYXQtZm9ybS9jaGF0LWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IERyQ2hhdE1lc3NhZ2VUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi9kci1jaGF0LW1lc3NhZ2UvZHItY2hhdC1tZXNzYWdlLXRleHQvY2hhdC1tZXNzYWdlLXRleHQuY29tcG9uZW50JztcbmltcG9ydCB7IERyQ2hhdE1lc3NhZ2VGaWxlQ29tcG9uZW50IH0gZnJvbSAnLi9kci1jaGF0LW1lc3NhZ2UvZHItY2hhdC1tZXNzYWdlLWZpbGUvY2hhdC1tZXNzYWdlLWZpbGUuY29tcG9uZW50JztcbmltcG9ydCB7IERyQ2hhdEN1c3RvbU1lc3NhZ2VEaXJlY3RpdmUgfSBmcm9tICcuL2RyLWNoYXQtbWVzc2FnZS9kci1jaGF0LW1lc3NhZ2UtY3VzdG9tL2NoYXQtY3VzdG9tLW1lc3NhZ2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IERyQ2hhdFN1Z2dlc3Rpb25zQ29tcG9uZW50IH0gZnJvbSAnLi9kci1jaGF0LXN1Z2dlc3Rpb25zL2NoYXQtc3VnZ2VzdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IERyRG90Rmxhc2hpbmdDb21wb25lbnQgfSBmcm9tICcuL2RyLWRvdC1mbGFzaGluZy9kci1kb3QtZmxhc2hpbmcuY29tcG9uZW50JztcbmltcG9ydCB7IERyQ2hhdEFsZXJ0Q29tcG9uZW50IH0gZnJvbSAnLi9kci1jaGF0LWFsZXJ0L2RyLWNoYXQtYWxlcnQuY29tcG9uZW50JztcbmltcG9ydCB7IENsaWNrT3V0c2lkZU1vZHVsZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvY2xpY2stb3V0c2lkZS9jbGljay1vdXRzaWRlLm1vZHVsZSc7XG5pbXBvcnQgeyBEckNoYXRGb3JtV2l0aEhpc3RvcnlDb21wb25lbnQgfSBmcm9tICcuL2RyLWNoYXQtZm9ybS13aXRoLWhpc3RvcnkvY2hhdC1mb3JtLXdpdGgtaGlzdG9yeS5jb21wb25lbnQnO1xuXG5jb25zdCBEUl9DSEFUX0NPTVBPTkVOVFMgPSBbXG4gICAgRHJDaGF0Q29tcG9uZW50LFxuICAgIERyQ2hhdE1lc3NhZ2VDb21wb25lbnQsXG4gICAgRHJDaGF0Rm9ybUNvbXBvbmVudCxcbiAgICBEckNoYXRGb3JtV2l0aEhpc3RvcnlDb21wb25lbnQsXG4gICAgRHJDaGF0TWVzc2FnZVRleHRDb21wb25lbnQsXG4gICAgRHJDaGF0TWVzc2FnZUZpbGVDb21wb25lbnQsXG4gICAgRHJDaGF0U3VnZ2VzdGlvbnNDb21wb25lbnQsXG4gICAgRHJEb3RGbGFzaGluZ0NvbXBvbmVudCxcbiAgICBEckNoYXRBbGVydENvbXBvbmVudCxcbl07XG5cbmNvbnN0IERSX0NIQVRfRElSRUNUSVZFUyA9IFtEckNoYXRDdXN0b21NZXNzYWdlRGlyZWN0aXZlXTtcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIERyQXZhdGFyTW9kdWxlLFxuICAgICAgICBEcklucHV0c01vZHVsZSxcbiAgICAgICAgRHJUb29sdGlwTW9kdWxlLFxuICAgICAgICBDbGlja091dHNpZGVNb2R1bGUsXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFsuLi5EUl9DSEFUX0NPTVBPTkVOVFMsIC4uLkRSX0NIQVRfRElSRUNUSVZFU10sXG4gICAgZXhwb3J0czogWy4uLkRSX0NIQVRfQ09NUE9ORU5UUywgLi4uRFJfQ0hBVF9ESVJFQ1RJVkVTXSxcbn0pXG5leHBvcnQgY2xhc3MgRHJDaGF0TW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,31 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../dr-inputs/button/button.component";
4
+ import * as i2 from "../../dr-tooltip/dr-tooltip.directive";
5
+ const _c0 = ["*"];
6
+ export class DrChatAlertComponent {
7
+ constructor() {
8
+ this.iconClass = 'dr-icon-info';
9
+ this.close = new EventEmitter();
10
+ }
11
+ /** @nocollapse */ static { this.ɵfac = function DrChatAlertComponent_Factory(t) { return new (t || DrChatAlertComponent)(); }; }
12
+ /** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DrChatAlertComponent, selectors: [["dr-chat-alert"]], inputs: { iconClass: "iconClass" }, outputs: { close: "close" }, ngContentSelectors: _c0, decls: 3, vars: 2, consts: [["theme", "icon", "icon", "dr-icon-exit", "drTooltip", "Close", 1, "chat-alert-close-btn", 3, "click"]], template: function DrChatAlertComponent_Template(rf, ctx) { if (rf & 1) {
13
+ i0.ɵɵprojectionDef();
14
+ i0.ɵɵelement(0, "i");
15
+ i0.ɵɵprojection(1);
16
+ i0.ɵɵelementStart(2, "dr-button", 0);
17
+ i0.ɵɵlistener("click", function DrChatAlertComponent_Template_dr_button_click_2_listener() { return ctx.close.emit(); });
18
+ i0.ɵɵelementEnd();
19
+ } if (rf & 2) {
20
+ i0.ɵɵclassMap(ctx.iconClass);
21
+ } }, dependencies: [i1.DrButtonComponent, i2.DrTooltipDirective], styles: ["[_nghost-%COMP%]{display:flex;padding:8px 24px;align-items:center;min-height:40px;color:#6d6e6f;background-color:#f6f7f8;border-top:1px solid #dfe0e3;font-size:12px;line-height:20px;white-space:pre-line}[_nghost-%COMP%] i[_ngcontent-%COMP%]{margin-right:8px}[_nghost-%COMP%] .chat-alert-close-btn[_ngcontent-%COMP%]{display:none;position:absolute;right:16px;color:#aeabac}[_nghost-%COMP%]:hover .chat-alert-close-btn[_ngcontent-%COMP%]{display:block}"], changeDetection: 0 }); }
22
+ }
23
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrChatAlertComponent, [{
24
+ type: Component,
25
+ args: [{ selector: 'dr-chat-alert', changeDetection: ChangeDetectionStrategy.OnPush, template: "<i [class]=\"iconClass\"></i>\n<ng-content></ng-content>\n<dr-button (click)=\"close.emit()\" theme=\"icon\" icon=\"dr-icon-exit\" class=\"chat-alert-close-btn\" drTooltip=\"Close\"> </dr-button>\n", styles: [":host{display:flex;padding:8px 24px;align-items:center;min-height:40px;color:#6d6e6f;background-color:#f6f7f8;border-top:1px solid #dfe0e3;font-size:12px;line-height:20px;white-space:pre-line}:host i{margin-right:8px}:host .chat-alert-close-btn{display:none;position:absolute;right:16px;color:#aeabac}:host:hover .chat-alert-close-btn{display:block}\n"] }]
26
+ }], null, { iconClass: [{
27
+ type: Input
28
+ }], close: [{
29
+ type: Output
30
+ }] }); })();
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItY2hhdC1hbGVydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1jaGF0L2RyLWNoYXQtYWxlcnQvZHItY2hhdC1hbGVydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1jaGF0L2RyLWNoYXQtYWxlcnQvZHItY2hhdC1hbGVydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQVFoRyxNQUFNLE9BQU8sb0JBQW9CO0lBTmpDO1FBT2EsY0FBUyxHQUFHLGNBQWMsQ0FBQztRQUMxQixVQUFLLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7S0FDbEU7d0dBSFksb0JBQW9CO21HQUFwQixvQkFBb0I7O1lDUmpDLG9CQUEyQjtZQUMzQixrQkFBeUI7WUFDekIsb0NBQWtIO1lBQXZHLG9HQUFTLGdCQUFZLElBQUM7WUFBa0YsaUJBQVk7O1lBRjVILDRCQUFtQjs7O3VGRFFULG9CQUFvQjtjQU5oQyxTQUFTOzJCQUNJLGVBQWUsbUJBR1IsdUJBQXVCLENBQUMsTUFBTTtnQkFHdEMsU0FBUztrQkFBakIsS0FBSztZQUNJLEtBQUs7a0JBQWQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RyLWNoYXQtYWxlcnQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kci1jaGF0LWFsZXJ0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kci1jaGF0LWFsZXJ0LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIERyQ2hhdEFsZXJ0Q29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBpY29uQ2xhc3MgPSAnZHItaWNvbi1pbmZvJztcbiAgICBAT3V0cHV0KCkgY2xvc2U6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbn1cbiIsIjxpIFtjbGFzc109XCJpY29uQ2xhc3NcIj48L2k+XG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48ZHItYnV0dG9uIChjbGljayk9XCJjbG9zZS5lbWl0KClcIiB0aGVtZT1cImljb25cIiBpY29uPVwiZHItaWNvbi1leGl0XCIgY2xhc3M9XCJjaGF0LWFsZXJ0LWNsb3NlLWJ0blwiIGRyVG9vbHRpcD1cIkNsb3NlXCI+IDwvZHItYnV0dG9uPlxuIl19
@@ -0,0 +1,273 @@
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
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/platform-browser";
6
+ import * as i2 from "@angular/forms";
7
+ import * as i3 from "@angular/common";
8
+ import * as i4 from "../../dr-inputs/button/button.component";
9
+ import * as i5 from "../dr-dot-flashing/dr-dot-flashing.component";
10
+ function DrChatFormComponent_div_0_div_1_i_2_Template(rf, ctx) { if (rf & 1) {
11
+ i0.ɵɵelement(0, "i", 16);
12
+ } }
13
+ function DrChatFormComponent_div_0_div_1_Template(rf, ctx) { if (rf & 1) {
14
+ const _r10 = i0.ɵɵgetCurrentView();
15
+ i0.ɵɵelementStart(0, "div", 11)(1, "div", 12);
16
+ i0.ɵɵtemplate(2, DrChatFormComponent_div_0_div_1_i_2_Template, 1, 0, "i", 13);
17
+ i0.ɵɵelementEnd();
18
+ i0.ɵɵelementStart(3, "div", 14);
19
+ i0.ɵɵtext(4);
20
+ i0.ɵɵelementEnd();
21
+ i0.ɵɵelementStart(5, "i", 15);
22
+ i0.ɵɵlistener("click", function DrChatFormComponent_div_0_div_1_Template_i_click_5_listener() { const restoredCtx = i0.ɵɵrestoreView(_r10); const file_r7 = restoredCtx.$implicit; const ctx_r9 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r9.removeFile(file_r7)); });
23
+ i0.ɵɵelementEnd()();
24
+ } if (rf & 2) {
25
+ const file_r7 = ctx.$implicit;
26
+ i0.ɵɵadvance(1);
27
+ i0.ɵɵstyleProp("background-image", file_r7.urlStyle || "none");
28
+ i0.ɵɵadvance(1);
29
+ i0.ɵɵproperty("ngIf", !file_r7.urlStyle);
30
+ i0.ɵɵadvance(2);
31
+ i0.ɵɵtextInterpolate(file_r7.name);
32
+ } }
33
+ function DrChatFormComponent_div_0_Template(rf, ctx) { if (rf & 1) {
34
+ i0.ɵɵelementStart(0, "div", 9);
35
+ i0.ɵɵtemplate(1, DrChatFormComponent_div_0_div_1_Template, 6, 4, "div", 10);
36
+ i0.ɵɵelementEnd();
37
+ } if (rf & 2) {
38
+ const ctx_r0 = i0.ɵɵnextContext();
39
+ i0.ɵɵadvance(1);
40
+ i0.ɵɵproperty("ngForOf", ctx_r0.droppedFiles);
41
+ } }
42
+ function DrChatFormComponent_i_6_Template(rf, ctx) { if (rf & 1) {
43
+ const _r12 = i0.ɵɵgetCurrentView();
44
+ i0.ɵɵelementStart(0, "i", 17);
45
+ i0.ɵɵlistener("click", function DrChatFormComponent_i_6_Template_i_click_0_listener($event) { i0.ɵɵrestoreView(_r12); const ctx_r11 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r11.sendMessage($event)); });
46
+ i0.ɵɵelementEnd();
47
+ } if (rf & 2) {
48
+ const ctx_r2 = i0.ɵɵnextContext();
49
+ const _r1 = i0.ɵɵreference(4);
50
+ i0.ɵɵstyleMap(ctx_r2.getSendButtonPosition(_r1));
51
+ } }
52
+ function DrChatFormComponent_i_7_Template(rf, ctx) { if (rf & 1) {
53
+ const _r14 = i0.ɵɵgetCurrentView();
54
+ i0.ɵɵelementStart(0, "i", 18);
55
+ i0.ɵɵlistener("click", function DrChatFormComponent_i_7_Template_i_click_0_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r13 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r13.sendMessage($event)); });
56
+ i0.ɵɵelementEnd();
57
+ } }
58
+ function DrChatFormComponent_dr_dot_flashing_8_Template(rf, ctx) { if (rf & 1) {
59
+ i0.ɵɵelement(0, "dr-dot-flashing", 19);
60
+ } }
61
+ function DrChatFormComponent_dr_button_9_Template(rf, ctx) { if (rf & 1) {
62
+ const _r16 = i0.ɵɵgetCurrentView();
63
+ i0.ɵɵelementStart(0, "dr-button", 20);
64
+ i0.ɵɵlistener("click", function DrChatFormComponent_dr_button_9_Template_dr_button_click_0_listener() { i0.ɵɵrestoreView(_r16); const ctx_r15 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r15.abortMessage()); });
65
+ i0.ɵɵtext(1, "Stop generating");
66
+ i0.ɵɵelementEnd();
67
+ } }
68
+ const _c0 = function (a0, a1) { return { "message-row__input--focused": a0, "message-row__input--filled": a1 }; };
69
+ export class DrChatFormComponent {
70
+ constructor(cdr, domSanitizer) {
71
+ this.cdr = cdr;
72
+ this.domSanitizer = domSanitizer;
73
+ this._textareaInitialHeight = true;
74
+ this.inputFocus = false;
75
+ this.inputHover = false;
76
+ this.droppedFiles = [];
77
+ /**
78
+ * Predefined message text
79
+ *
80
+ * @type {string}
81
+ */
82
+ this.message = '';
83
+ /**
84
+ * Message placeholder text
85
+ *
86
+ * @type {string}
87
+ */
88
+ this.messagePlaceholder = 'Type a message';
89
+ /**
90
+ * Show send button
91
+ *
92
+ * @type {boolean}
93
+ */
94
+ this.dropFiles = false;
95
+ /**
96
+ * File drop placeholder text
97
+ *
98
+ * @type {string}
99
+ */
100
+ this.dropFilePlaceholder = 'Drop file to send';
101
+ /**
102
+ * Parameter to check is send message function available
103
+ *
104
+ * @type {boolean}
105
+ */
106
+ this.waitForReply = false;
107
+ /**
108
+ * Parameter to check is send message function available
109
+ *
110
+ * @type {boolean}
111
+ */
112
+ this.showDisabledButtonInsteadOfDotFlashing = false;
113
+ /**
114
+ *
115
+ * @type {EventEmitter<{ message: string, files: File[] }>}
116
+ */
117
+ this.send = new EventEmitter();
118
+ this.abort = new EventEmitter();
119
+ /**
120
+ * Emits when message input value has been changed
121
+ *
122
+ * @type {EventEmitter<string>}
123
+ */
124
+ this.inputChange = new EventEmitter();
125
+ this.fileOver = false;
126
+ }
127
+ onDrop(event) {
128
+ if (this.dropFiles) {
129
+ event.preventDefault();
130
+ event.stopPropagation();
131
+ this.fileOver = false;
132
+ if (event.dataTransfer?.files) {
133
+ for (const file of event.dataTransfer.files) {
134
+ const res = file;
135
+ if (IMAGE_TYPES.includes(file.type)) {
136
+ const fr = new FileReader();
137
+ fr.onload = (e) => {
138
+ res.src = e.target.result;
139
+ res.urlStyle = this.domSanitizer.bypassSecurityTrustStyle(`url(${res.src})`);
140
+ this.cdr.detectChanges();
141
+ };
142
+ fr.readAsDataURL(file);
143
+ }
144
+ this.droppedFiles.push(res);
145
+ }
146
+ }
147
+ }
148
+ }
149
+ removeFile(file) {
150
+ const index = this.droppedFiles.indexOf(file);
151
+ if (index >= 0) {
152
+ this.droppedFiles.splice(index, 1);
153
+ }
154
+ }
155
+ onDragOver(event) {
156
+ event.preventDefault();
157
+ event.stopPropagation();
158
+ if (this.dropFiles) {
159
+ this.fileOver = true;
160
+ }
161
+ }
162
+ onDragLeave(event) {
163
+ event.preventDefault();
164
+ event.stopPropagation();
165
+ if (this.dropFiles) {
166
+ this.fileOver = false;
167
+ }
168
+ }
169
+ sendMessage($event) {
170
+ if (!$event || !$event.shiftKey) {
171
+ $event && $event.preventDefault();
172
+ if (this.waitForReply) {
173
+ return;
174
+ }
175
+ if (this.droppedFiles.length || String(this.message).trim().length) {
176
+ this._textareaInitialHeight = true;
177
+ this.send.emit({ message: this.message, files: this.droppedFiles });
178
+ this.message = '';
179
+ this.droppedFiles = [];
180
+ this.cdr.markForCheck();
181
+ }
182
+ }
183
+ }
184
+ abortMessage() {
185
+ this.abort.emit();
186
+ }
187
+ onModelChange(value) {
188
+ this._textareaInitialHeight = false;
189
+ this.inputChange.emit(value);
190
+ }
191
+ getTextAreaHeight(textAreaElement) {
192
+ if (this._textareaInitialHeight) {
193
+ textAreaElement.style.height = '45px';
194
+ }
195
+ else {
196
+ textAreaElement.style.height = 'auto';
197
+ textAreaElement.style.height = textAreaElement.scrollHeight + 'px';
198
+ }
199
+ return `${textAreaElement.style.height}`;
200
+ }
201
+ getSendButtonPosition(textAreaElement) {
202
+ return `top: calc(${this.getTextAreaHeight(textAreaElement)} - var(--send-button-offset));`;
203
+ }
204
+ /** @nocollapse */ static { this.ɵfac = function DrChatFormComponent_Factory(t) { return new (t || DrChatFormComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.DomSanitizer)); }; }
205
+ /** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DrChatFormComponent, selectors: [["dr-chat-form"]], hostVars: 2, hostBindings: function DrChatFormComponent_HostBindings(rf, ctx) { if (rf & 1) {
206
+ i0.ɵɵlistener("drop", function DrChatFormComponent_drop_HostBindingHandler($event) { return ctx.onDrop($event); })("dragover", function DrChatFormComponent_dragover_HostBindingHandler($event) { return ctx.onDragOver($event); })("dragleave", function DrChatFormComponent_dragleave_HostBindingHandler($event) { return ctx.onDragLeave($event); });
207
+ } if (rf & 2) {
208
+ i0.ɵɵclassProp("file-over", ctx.fileOver);
209
+ } }, inputs: { message: "message", messagePlaceholder: "messagePlaceholder", dropFiles: "dropFiles", dropFilePlaceholder: "dropFilePlaceholder", waitForReply: "waitForReply", showDisabledButtonInsteadOfDotFlashing: "showDisabledButtonInsteadOfDotFlashing" }, outputs: { send: "send", abort: "abort", inputChange: "inputChange" }, decls: 10, vars: 14, consts: [["class", "dropped-files", 4, "ngIf"], [1, "message-row"], [1, "message-row__input", 3, "ngClass"], ["type", "text", 3, "ngModel", "rows", "placeholder", "focus", "blur", "mouseenter", "mouseleave", "ngModelChange", "keydown.enter"], ["textAreaElement", ""], ["class", "dr-icon-notify send-button", 3, "style", "click", 4, "ngIf"], ["class", "dr-icon-notify send-button-disabled", 3, "click", 4, "ngIf"], ["class", "wait-reply-dot-flashing", 4, "ngIf"], ["theme", "ghost", "class", "abort-button", 3, "click", 4, "ngIf"], [1, "dropped-files"], ["class", "dropped-files__item", 4, "ngFor", "ngForOf"], [1, "dropped-files__item"], [1, "dropped-files__item__preview"], ["class", "dr-icon-file", 4, "ngIf"], [1, "dropped-files__item__name"], [1, "dropped-files__item__remove", "dr-icon-exit", 3, "click"], [1, "dr-icon-file"], [1, "dr-icon-notify", "send-button", 3, "click"], [1, "dr-icon-notify", "send-button-disabled", 3, "click"], [1, "wait-reply-dot-flashing"], ["theme", "ghost", 1, "abort-button", 3, "click"]], template: function DrChatFormComponent_Template(rf, ctx) { if (rf & 1) {
210
+ i0.ɵɵtemplate(0, DrChatFormComponent_div_0_Template, 2, 1, "div", 0);
211
+ i0.ɵɵelementStart(1, "div", 1)(2, "div", 2)(3, "textarea", 3, 4);
212
+ i0.ɵɵlistener("focus", function DrChatFormComponent_Template_textarea_focus_3_listener() { return ctx.inputFocus = true; })("blur", function DrChatFormComponent_Template_textarea_blur_3_listener() { return ctx.inputFocus = false; })("mouseenter", function DrChatFormComponent_Template_textarea_mouseenter_3_listener() { return ctx.inputHover = true; })("mouseleave", function DrChatFormComponent_Template_textarea_mouseleave_3_listener() { return ctx.inputHover = false; })("ngModelChange", function DrChatFormComponent_Template_textarea_ngModelChange_3_listener($event) { return ctx.message = $event; })("ngModelChange", function DrChatFormComponent_Template_textarea_ngModelChange_3_listener($event) { return ctx.onModelChange($event); })("keydown.enter", function DrChatFormComponent_Template_textarea_keydown_enter_3_listener($event) { return ctx.sendMessage($event); });
213
+ i0.ɵɵtext(5, " ");
214
+ i0.ɵɵelementEnd();
215
+ i0.ɵɵtemplate(6, DrChatFormComponent_i_6_Template, 1, 2, "i", 5);
216
+ i0.ɵɵtemplate(7, DrChatFormComponent_i_7_Template, 1, 0, "i", 6);
217
+ i0.ɵɵtemplate(8, DrChatFormComponent_dr_dot_flashing_8_Template, 1, 0, "dr-dot-flashing", 7);
218
+ i0.ɵɵtemplate(9, DrChatFormComponent_dr_button_9_Template, 2, 0, "dr-button", 8);
219
+ i0.ɵɵelementEnd()();
220
+ } if (rf & 2) {
221
+ const _r1 = i0.ɵɵreference(4);
222
+ i0.ɵɵproperty("ngIf", ctx.droppedFiles == null ? null : ctx.droppedFiles.length);
223
+ i0.ɵɵadvance(2);
224
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(11, _c0, ctx.inputFocus, !!(ctx.message == null ? null : ctx.message.length)));
225
+ i0.ɵɵadvance(1);
226
+ i0.ɵɵstyleMap(ctx.getTextAreaHeight(_r1));
227
+ i0.ɵɵpropertyInterpolate("placeholder", ctx.fileOver ? ctx.dropFilePlaceholder : ctx.messagePlaceholder);
228
+ i0.ɵɵproperty("ngModel", ctx.message)("rows", 1);
229
+ i0.ɵɵadvance(3);
230
+ i0.ɵɵproperty("ngIf", !ctx.waitForReply);
231
+ i0.ɵɵadvance(1);
232
+ i0.ɵɵproperty("ngIf", ctx.waitForReply && ctx.showDisabledButtonInsteadOfDotFlashing);
233
+ i0.ɵɵadvance(1);
234
+ i0.ɵɵproperty("ngIf", ctx.waitForReply && !ctx.showDisabledButtonInsteadOfDotFlashing);
235
+ i0.ɵɵadvance(1);
236
+ i0.ɵɵproperty("ngIf", ctx.waitForReply);
237
+ } }, dependencies: [i2.DefaultValueAccessor, i2.NgControlStatus, i2.NgModel, i3.NgClass, i3.NgForOf, i3.NgIf, i4.DrButtonComponent, i5.DrDotFlashingComponent], styles: ["[_nghost-%COMP%]{--send-button-offset: 42px;display:flex;flex-direction:column;align-items:center;padding:0 16px;margin-top:12px}[_nghost-%COMP%] .message-row[_ngcontent-%COMP%]{display:flex;justify-content:center;width:100%;padding:0 0 21px;max-width:956px}[_nghost-%COMP%] .message-row__input[_ngcontent-%COMP%]{position:relative;display:flex;align-items:center;flex-grow:1;flex-direction:row;height:auto;overflow:visible;min-width:265px;border-radius:24px;background:#dfe0e3 border-box;border:1.5px solid transparent;box-shadow:0 2px 16px -10px #603cff29}[_nghost-%COMP%] .message-row__input[_ngcontent-%COMP%] .send-button[_ngcontent-%COMP%], [_nghost-%COMP%] .message-row__input[_ngcontent-%COMP%] .send-button-disabled[_ngcontent-%COMP%]{position:absolute;right:4px;top:2.5px;cursor:pointer;font-size:28px;width:68px;border-radius:100px;display:flex;align-items:center;justify-content:center;height:40px;background:#f0f1f4;color:#aeabac}[_nghost-%COMP%] .message-row__input--focused[_ngcontent-%COMP%]{background:linear-gradient(-90deg,#6969ff,#4eb7df) border-box}[_nghost-%COMP%] .message-row__input--filled[_ngcontent-%COMP%]{background:linear-gradient(-90deg,#6969ff,#4eb7df) border-box}[_nghost-%COMP%] .message-row__input--filled[_ngcontent-%COMP%] .send-button[_ngcontent-%COMP%]{color:#fff;background:linear-gradient(-90deg,#6969ff,#4eb7df) border-box}[_nghost-%COMP%] .message-row__input[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]{font-size:14px;color:#333;line-height:19px;flex-grow:1;resize:none;padding:14px 76px 12px 23px;margin:auto;border:none;border-radius:22.5px}[_nghost-%COMP%] .message-row__input[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]:focus{border:none}[_nghost-%COMP%] .message-row__input[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]::placeholder{color:#9ea1aa}[_nghost-%COMP%] .message-row__input[_ngcontent-%COMP%] .wait-reply-dot-flashing[_ngcontent-%COMP%]{position:absolute;right:20px}[_nghost-%COMP%] .message-row__input[_ngcontent-%COMP%] .abort-button[_ngcontent-%COMP%]{position:absolute;right:0;top:-44px}[_nghost-%COMP%] .message-row__input[_ngcontent-%COMP%] .abort-button[_ngcontent-%COMP%] button{background:#f2f2ff!important;border-radius:4px}[_nghost-%COMP%] input[_ngcontent-%COMP%]{flex:1}[_nghost-%COMP%] input.with-button[_ngcontent-%COMP%]{border-bottom-right-radius:0;border-top-right-radius:0}[_nghost-%COMP%] .dropped-files[_ngcontent-%COMP%]{display:flex;flex-direction:row;margin-bottom:.5rem;flex-wrap:wrap}[_nghost-%COMP%] .dropped-files__item[_ngcontent-%COMP%]{display:flex;flex-direction:column;justify-content:center;margin:0 10px 10px 0;position:relative}[_nghost-%COMP%] .dropped-files__item__preview[_ngcontent-%COMP%]{background-size:cover;background-position:center;width:64px;height:64px;border-radius:8px;border:1px solid #ccc}[_nghost-%COMP%] .dropped-files__item__preview[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:62px}[_nghost-%COMP%] .dropped-files__item__name[_ngcontent-%COMP%]{white-space:nowrap;font-size:12px;color:#8f929e;margin-top:4px;max-width:64px;overflow:hidden;text-overflow:ellipsis}[_nghost-%COMP%] .dropped-files__item__remove[_ngcontent-%COMP%]{position:absolute;right:-4px;top:-4px;cursor:pointer;background:#fff;border-radius:12px;color:#8f929e;border:1px solid #8f929e;font-size:14px}"], changeDetection: 0 }); }
238
+ }
239
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrChatFormComponent, [{
240
+ type: Component,
241
+ args: [{ selector: 'dr-chat-form', changeDetection: ChangeDetectionStrategy.OnPush, 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\n class=\"message-row__input\"\n [ngClass]=\"{ 'message-row__input--focused': inputFocus, 'message-row__input--filled': !!message?.length }\">\n <textarea\n #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 (keydown.enter)=\"sendMessage($event)\">\n </textarea>\n <i\n *ngIf=\"!waitForReply\"\n [style]=\"getSendButtonPosition(textAreaElement)\"\n (click)=\"sendMessage($event)\"\n class=\"dr-icon-notify send-button\"></i>\n <i\n *ngIf=\"waitForReply && showDisabledButtonInsteadOfDotFlashing\"\n (click)=\"sendMessage($event)\"\n class=\"dr-icon-notify send-button-disabled\"></i>\n <dr-dot-flashing\n *ngIf=\"waitForReply && !showDisabledButtonInsteadOfDotFlashing\"\n 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", styles: [":host{--send-button-offset: 42px;display:flex;flex-direction:column;align-items:center;padding:0 16px;margin-top:12px}:host .message-row{display:flex;justify-content:center;width:100%;padding:0 0 21px;max-width:956px}:host .message-row__input{position:relative;display:flex;align-items:center;flex-grow:1;flex-direction:row;height:auto;overflow:visible;min-width:265px;border-radius:24px;background:#dfe0e3 border-box;border:1.5px solid transparent;box-shadow:0 2px 16px -10px #603cff29}:host .message-row__input .send-button,:host .message-row__input .send-button-disabled{position:absolute;right:4px;top:2.5px;cursor:pointer;font-size:28px;width:68px;border-radius:100px;display:flex;align-items:center;justify-content:center;height:40px;background:#f0f1f4;color:#aeabac}:host .message-row__input--focused{background:linear-gradient(-90deg,#6969ff,#4eb7df) border-box}:host .message-row__input--filled{background:linear-gradient(-90deg,#6969ff,#4eb7df) border-box}:host .message-row__input--filled .send-button{color:#fff;background:linear-gradient(-90deg,#6969ff,#4eb7df) border-box}:host .message-row__input textarea{font-size:14px;color:#333;line-height:19px;flex-grow:1;resize:none;padding:14px 76px 12px 23px;margin:auto;border:none;border-radius:22.5px}:host .message-row__input textarea:focus{border:none}:host .message-row__input textarea::placeholder{color:#9ea1aa}:host .message-row__input .wait-reply-dot-flashing{position:absolute;right:20px}: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:#fff;border-radius:12px;color:#8f929e;border:1px solid #8f929e;font-size:14px}\n"] }]
242
+ }], function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.DomSanitizer }]; }, { message: [{
243
+ type: Input
244
+ }], messagePlaceholder: [{
245
+ type: Input
246
+ }], dropFiles: [{
247
+ type: Input
248
+ }], dropFilePlaceholder: [{
249
+ type: Input
250
+ }], waitForReply: [{
251
+ type: Input
252
+ }], showDisabledButtonInsteadOfDotFlashing: [{
253
+ type: Input
254
+ }], send: [{
255
+ type: Output
256
+ }], abort: [{
257
+ type: Output
258
+ }], inputChange: [{
259
+ type: Output
260
+ }], fileOver: [{
261
+ type: HostBinding,
262
+ args: ['class.file-over']
263
+ }], onDrop: [{
264
+ type: HostListener,
265
+ args: ['drop', ['$event']]
266
+ }], onDragOver: [{
267
+ type: HostListener,
268
+ args: ['dragover', ['$event']]
269
+ }], onDragLeave: [{
270
+ type: HostListener,
271
+ args: ['dragleave', ['$event']]
272
+ }] }); })();
273
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWNoYXQvZHItY2hhdC1mb3JtL2NoYXQtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1jaGF0L2RyLWNoYXQtZm9ybS9jaGF0LWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7Ozs7SUNScEMsd0JBQW1EOzs7O0lBRjNELCtCQUFtRSxjQUFBO0lBRTNELDZFQUFtRDtJQUN2RCxpQkFBTTtJQUNOLCtCQUF1QztJQUFBLFlBQWU7SUFBQSxpQkFBTTtJQUM1RCw2QkFBK0U7SUFBM0IsOE5BQVMsZUFBQSwwQkFBZ0IsQ0FBQSxJQUFDO0lBQUMsaUJBQUksRUFBQTs7O0lBSnpDLGVBQWtEO0lBQWxELDhEQUFrRDtJQUMvRCxlQUFvQjtJQUFwQix3Q0FBb0I7SUFFVixlQUFlO0lBQWYsa0NBQWU7OztJQUw5RCw4QkFBd0Q7SUFDcEQsMkVBTU07SUFDVixpQkFBTTs7O0lBUGdELGVBQWU7SUFBZiw2Q0FBZTs7OztJQTBCN0QsNkJBSXVDO0lBRG5DLGlLQUFTLGVBQUEsMkJBQW1CLENBQUEsSUFBQztJQUNNLGlCQUFJOzs7O0lBRnZDLGdEQUFnRDs7OztJQUdwRCw2QkFHZ0Q7SUFENUMsaUtBQVMsZUFB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RkFBNEQ7WUFJNUQsZUFBNkQ7WUFBN0Qsc0ZBQTZEO1lBRXRELGVBQWtCO1lBQWxCLHVDQUFrQjs7O3VGRHBCekIsbUJBQW1CO2NBTi9CLFNBQVM7MkJBQ0ksY0FBYyxtQkFHUCx1QkFBdUIsQ0FBQyxNQUFNOytGQWN0QyxPQUFPO2tCQUFmLEtBQUs7WUFPRyxrQkFBa0I7a0JBQTFCLEtBQUs7WUFPRyxTQUFTO2tCQUFqQixLQUFLO1lBT0csbUJBQW1CO2tCQUEzQixLQUFLO1lBT0csWUFBWTtrQkFBcEIsS0FBSztZQU9HLHNDQUFzQztrQkFBOUMsS0FBSztZQU1JLElBQUk7a0JBQWIsTUFBTTtZQUNHLEtBQUs7a0JBQWQsTUFBTTtZQVFHLFdBQVc7a0JBQXBCLE1BQU07WUFFeUIsUUFBUTtrQkFBdkMsV0FBVzttQkFBQyxpQkFBaUI7WUFROUIsTUFBTTtrQkFETCxZQUFZO21CQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQztZQW1DaEMsVUFBVTtrQkFEVCxZQUFZO21CQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQztZQVVwQyxXQUFXO2tCQURWLFlBQVk7bUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBJTUFHRV9UWVBFUyB9IGZyb20gJy4uLy4uL21vZGVscy9jaGF0JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci1jaGF0LWZvcm0nLFxuICAgIHRlbXBsYXRlVXJsOiAnY2hhdC1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jaGF0LWZvcm0uY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRHJDaGF0Rm9ybUNvbXBvbmVudCB7XG4gICAgX3RleHRhcmVhSW5pdGlhbEhlaWdodCA9IHRydWU7XG4gICAgaW5wdXRGb2N1cyA9IGZhbHNlO1xuICAgIGlucHV0SG92ZXIgPSBmYWxzZTtcblxuICAgIGRyb3BwZWRGaWxlczogYW55W10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIFByZWRlZmluZWQgbWVzc2FnZSB0ZXh0XG4gICAgICpcbiAgICAgKiBAdHlwZSB7c3RyaW5nfVxuICAgICAqL1xuICAgIEBJbnB1dCgpIG1lc3NhZ2UgPSAnJztcblxuICAgIC8qKlxuICAgICAqIE1lc3NhZ2UgcGxhY2Vob2xkZXIgdGV4dFxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICBASW5wdXQoKSBtZXNzYWdlUGxhY2Vob2xkZXIgPSAnVHlwZSBhIG1lc3NhZ2UnO1xuXG4gICAgLyoqXG4gICAgICogU2hvdyBzZW5kIGJ1dHRvblxuICAgICAqXG4gICAgICogQHR5cGUge2Jvb2xlYW59XG4gICAgICovXG4gICAgQElucHV0KCkgZHJvcEZpbGVzID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBGaWxlIGRyb3AgcGxhY2Vob2xkZXIgdGV4dFxuICAgICAqXG4gICAgICogQHR5cGUge3N0cmluZ31cbiAgICAgKi9cbiAgICBASW5wdXQoKSBkcm9wRmlsZVBsYWNlaG9sZGVyID0gJ0Ryb3AgZmlsZSB0byBzZW5kJztcblxuICAgIC8qKlxuICAgICAqIFBhcmFtZXRlciB0byBjaGVjayBpcyBzZW5kIG1lc3NhZ2UgZnVuY3Rpb24gYXZhaWxhYmxlXG4gICAgICpcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBASW5wdXQoKSB3YWl0Rm9yUmVwbHkgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFBhcmFtZXRlciB0byBjaGVjayBpcyBzZW5kIG1lc3NhZ2UgZnVuY3Rpb24gYXZhaWxhYmxlXG4gICAgICpcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBASW5wdXQoKSBzaG93RGlzYWJsZWRCdXR0b25JbnN0ZWFkT2ZEb3RGbGFzaGluZyA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAdHlwZSB7RXZlbnRFbWl0dGVyPHsgbWVzc2FnZTogc3RyaW5nLCBmaWxlczogRmlsZVtdIH0+fVxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBzZW5kID0gbmV3IEV2ZW50RW1pdHRlcjx7IG1lc3NhZ2U6IHN0cmluZzsgZmlsZXM6IEZpbGVbXSB9PigpO1xuICAgIEBPdXRwdXQoKSBhYm9ydCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHMgd2hlbiBtZXNzYWdlIGlucHV0IHZhbHVlIGhhcyBiZWVuIGNoYW5nZWRcbiAgICAgKlxuICAgICAqIEB0eXBlIHtFdmVudEVtaXR0ZXI8c3RyaW5nPn1cbiAgICAgKi9cblxuICAgIEBPdXRwdXQoKSBpbnB1dENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5maWxlLW92ZXInKSBmaWxlT3ZlciA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcm90ZWN0ZWQgZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXG4gICAgKSB7fVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZHJvcCcsIFsnJGV2ZW50J10pXG4gICAgb25Ecm9wKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgaWYgKHRoaXMuZHJvcEZpbGVzKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgICAgIHRoaXMuZmlsZU92ZXIgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmIChldmVudC5kYXRhVHJhbnNmZXI/LmZpbGVzKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBmaWxlIG9mIGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlcykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXMgPSBmaWxlO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChJTUFHRV9UWVBFUy5pbmNsdWRlcyhmaWxlLnR5cGUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBmci5vbmxvYWQgPSAoZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnNyYyA9IGUudGFyZ2V0LnJlc3VsdDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMudXJsU3R5bGUgPSB0aGlzLmRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0U3R5bGUoYHVybCgke3Jlcy5zcmN9KWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGZyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kcm9wcGVkRmlsZXMucHVzaChyZXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlbW92ZUZpbGUoZmlsZSkge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZHJvcHBlZEZpbGVzLmluZGV4T2YoZmlsZSk7XG4gICAgICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmRyb3BwZWRGaWxlcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZHJhZ292ZXInLCBbJyRldmVudCddKVxuICAgIG9uRHJhZ092ZXIoZXZlbnQ6IERyYWdFdmVudCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgaWYgKHRoaXMuZHJvcEZpbGVzKSB7XG4gICAgICAgICAgICB0aGlzLmZpbGVPdmVyID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIFsnJGV2ZW50J10pXG4gICAgb25EcmFnTGVhdmUoZXZlbnQ6IERyYWdFdmVudCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgaWYgKHRoaXMuZHJvcEZpbGVzKSB7XG4gICAgICAgICAgICB0aGlzLmZpbGVPdmVyID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZW5kTWVzc2FnZSgkZXZlbnQpIHtcbiAgICAgICAgaWYgKCEkZXZlbnQgfHwgISRldmVudC5zaGlmdEtleSkge1xuICAgICAgICAgICAgJGV2ZW50ICYmICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKHRoaXMud2FpdEZvclJlcGx5KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5kcm9wcGVkRmlsZXMubGVuZ3RoIHx8IFN0cmluZyh0aGlzLm1lc3NhZ2UpLnRyaW0oKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl90ZXh0YXJlYUluaXRpYWxIZWlnaHQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VuZC5lbWl0KHsgbWVzc2FnZTogdGhpcy5tZXNzYWdlLCBmaWxlczogdGhpcy5kcm9wcGVkRmlsZXMgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5tZXNzYWdlID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5kcm9wcGVkRmlsZXMgPSBbXTtcbiAgICAgICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFib3J0TWVzc2FnZSgpIHtcbiAgICAgICAgdGhpcy5hYm9ydC5lbWl0KCk7XG4gICAgfVxuXG4gICAgb25Nb2RlbENoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RleHRhcmVhSW5pdGlhbEhlaWdodCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlucHV0Q2hhbmdlLmVtaXQodmFsdWUpO1xuICAgIH1cblxuICAgIGdldFRleHRBcmVhSGVpZ2h0KHRleHRBcmVhRWxlbWVudDogSFRNTFRleHRBcmVhRWxlbWVudCkge1xuICAgICAgICBpZiAodGhpcy5fdGV4dGFyZWFJbml0aWFsSGVpZ2h0KSB7XG4gICAgICAgICAgICB0ZXh0QXJlYUVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gJzQ1cHgnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGV4dEFyZWFFbGVtZW50LnN0eWxlLmhlaWdodCA9ICdhdXRvJztcbiAgICAgICAgICAgIHRleHRBcmVhRWxlbWVudC5zdHlsZS5oZWlnaHQgPSB0ZXh0QXJlYUVsZW1lbnQuc2Nyb2xsSGVpZ2h0ICsgJ3B4JztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBgJHt0ZXh0QXJlYUVsZW1lbnQuc3R5bGUuaGVpZ2h0fWA7XG4gICAgfVxuXG4gICAgZ2V0U2VuZEJ1dHRvblBvc2l0aW9uKHRleHRBcmVhRWxlbWVudDogSFRNTFRleHRBcmVhRWxlbWVudCkge1xuICAgICAgICByZXR1cm4gYHRvcDogY2FsYygke3RoaXMuZ2V0VGV4dEFyZWFIZWlnaHQodGV4dEFyZWFFbGVtZW50KX0gLSB2YXIoLS1zZW5kLWJ1dHRvbi1vZmZzZXQpKTtgO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkcm9wcGVkLWZpbGVzXCIgKm5nSWY9XCJkcm9wcGVkRmlsZXM/Lmxlbmd0aFwiPlxuICAgIDxkaXYgY2xhc3M9XCJkcm9wcGVkLWZpbGVzX19pdGVtXCIgKm5nRm9yPVwibGV0IGZpbGUgb2YgZHJvcHBlZEZpbGVzXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wcGVkLWZpbGVzX19pdGVtX19wcmV2aWV3XCIgW3N0eWxlLmJhY2tncm91bmQtaW1hZ2VdPVwiZmlsZS51cmxTdHlsZSB8fCAnbm9uZSdcIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZHItaWNvbi1maWxlXCIgKm5nSWY9XCIhZmlsZS51cmxTdHlsZVwiPjwvaT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wcGVkLWZpbGVzX19pdGVtX19uYW1lXCI+e3sgZmlsZS5uYW1lIH19PC9kaXY+XG4gICAgICAgIDxpIGNsYXNzPVwiZHJvcHBlZC1maWxlc19faXRlbV9fcmVtb3ZlIGRyLWljb24tZXhpdFwiIChjbGljayk9XCJyZW1vdmVGaWxlKGZpbGUpXCI+PC9pPlxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwibWVzc2FnZS1yb3dcIj5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibWVzc2FnZS1yb3dfX2lucHV0XCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnbWVzc2FnZS1yb3dfX2lucHV0LS1mb2N1c2VkJzogaW5wdXRGb2N1cywgJ21lc3NhZ2Utcm93X19pbnB1dC0tZmlsbGVkJzogISFtZXNzYWdlPy5sZW5ndGggfVwiPlxuICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgICN0ZXh0QXJlYUVsZW1lbnRcbiAgICAgICAgICAgIChmb2N1cyk9XCJpbnB1dEZvY3VzID0gdHJ1ZVwiXG4gICAgICAgICAgICAoYmx1cik9XCJpbnB1dEZvY3VzID0gZmFsc2VcIlxuICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwiaW5wdXRIb3ZlciA9IHRydWVcIlxuICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwiaW5wdXRIb3ZlciA9IGZhbHNlXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwibWVzc2FnZVwiXG4gICAgICAgICAgICBbcm93c109XCIxXCJcbiAgICAgICAgICAgIFtzdHlsZV09XCJnZXRUZXh0QXJlYUhlaWdodCh0ZXh0QXJlYUVsZW1lbnQpXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uTW9kZWxDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7IGZpbGVPdmVyID8gZHJvcEZpbGVQbGFjZWhvbGRlciA6IG1lc3NhZ2VQbGFjZWhvbGRlciB9fVwiXG4gICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJzZW5kTWVzc2FnZSgkZXZlbnQpXCI+XG4gICAgICAgIDwvdGV4dGFyZWE+XG4gICAgICAgIDxpXG4gICAgICAgICAgICAqbmdJZj1cIiF3YWl0Rm9yUmVwbHlcIlxuICAgICAgICAgICAgW3N0eWxlXT1cImdldFNlbmRCdXR0b25Qb3NpdGlvbih0ZXh0QXJlYUVsZW1lbnQpXCJcbiAgICAgICAgICAgIChjbGljayk9XCJzZW5kTWVzc2FnZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZHItaWNvbi1ub3RpZnkgc2VuZC1idXR0b25cIj48L2k+XG4gICAgICAgIDxpXG4gICAgICAgICAgICAqbmdJZj1cIndhaXRGb3JSZXBseSAmJiBzaG93RGlzYWJsZWRCdXR0b25JbnN0ZWFkT2ZEb3RGbGFzaGluZ1wiXG4gICAgICAgICAgICAoY2xpY2spPVwic2VuZE1lc3NhZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICBjbGFzcz1cImRyLWljb24tbm90aWZ5IHNlbmQtYnV0dG9uLWRpc2FibGVkXCI+PC9pPlxuICAgICAgICA8ZHItZG90LWZsYXNoaW5nXG4gICAgICAgICAgICAqbmdJZj1cIndhaXRGb3JSZXBseSAmJiAhc2hvd0Rpc2FibGVkQnV0dG9uSW5zdGVhZE9mRG90Rmxhc2hpbmdcIlxuICAgICAgICAgICAgY2xhc3M9XCJ3YWl0LXJlcGx5LWRvdC1mbGFzaGluZ1wiPjwvZHItZG90LWZsYXNoaW5nPlxuICAgICAgICA8ZHItYnV0dG9uICpuZ0lmPVwid2FpdEZvclJlcGx5XCIgKGNsaWNrKT1cImFib3J0TWVzc2FnZSgpXCIgdGhlbWU9XCJnaG9zdFwiIGNsYXNzPVwiYWJvcnQtYnV0dG9uXCI+U3RvcCBnZW5lcmF0aW5nPC9kci1idXR0b24+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==