@datarailsshared/datarailsshared 1.4.569 → 1.5.1

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