@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,78 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { CROP_IMAGE_MODES } from './dr-image-cropper.types';
3
+ import * as i0 from "@angular/core";
4
+ export class DrImageCropperCanvasService {
5
+ constructor() {
6
+ this.ALPHA_FOR_SHADOW = 0.2;
7
+ // this param means that a side of a white square is half of a side of a canvas
8
+ this.CROP_AREA_PROPORTION = 2;
9
+ this.RECTANGULAR_SHADOW_WIDTH = 30;
10
+ this.RECTANGULAR_SHADOW_HEIGHT = 70;
11
+ }
12
+ drawShape(canvasSize, cropMode, zoomLevel, htmlImageElement) {
13
+ this.clearCanvas(canvasSize);
14
+ this.drawImageByZoom(canvasSize, zoomLevel, htmlImageElement);
15
+ this.drawShadow(cropMode, canvasSize);
16
+ }
17
+ getCoordinates(cropMode, canvasSize) {
18
+ return cropMode === CROP_IMAGE_MODES.SQUARE
19
+ ? this.getCoordinatesForSquare(canvasSize)
20
+ : this.getCoordinatesForRectangle(canvasSize);
21
+ }
22
+ getCoordinatesForSquare(canvasSize) {
23
+ const shadowLength = canvasSize / (this.CROP_AREA_PROPORTION * 2);
24
+ const bottomPosition = canvasSize - shadowLength;
25
+ return [shadowLength, shadowLength, bottomPosition, bottomPosition].join(',');
26
+ }
27
+ getCoordinatesForRectangle(canvasSize) {
28
+ return [
29
+ this.RECTANGULAR_SHADOW_WIDTH,
30
+ this.RECTANGULAR_SHADOW_HEIGHT,
31
+ canvasSize - this.RECTANGULAR_SHADOW_WIDTH,
32
+ canvasSize - this.RECTANGULAR_SHADOW_HEIGHT,
33
+ ].join(',');
34
+ }
35
+ drawShadow(cropMode, canvasSize) {
36
+ this.ctx.globalAlpha = this.ALPHA_FOR_SHADOW;
37
+ this.ctx.fillStyle = 'black';
38
+ if (cropMode === CROP_IMAGE_MODES.SQUARE) {
39
+ this.drawSquareShadow(canvasSize);
40
+ }
41
+ else if (cropMode === CROP_IMAGE_MODES.RECTANGLE) {
42
+ this.drawRectangularShadow(canvasSize);
43
+ }
44
+ this.ctx.globalAlpha = 1;
45
+ }
46
+ drawSquareShadow(canvasSize) {
47
+ const shadowLength = canvasSize / (this.CROP_AREA_PROPORTION * 2);
48
+ this.ctx.fillRect(0, 0, shadowLength, canvasSize);
49
+ this.ctx.fillRect(canvasSize - shadowLength, 0, shadowLength, canvasSize);
50
+ this.ctx.fillRect(shadowLength, 0, 2 * shadowLength, shadowLength);
51
+ this.ctx.fillRect(shadowLength, canvasSize - shadowLength, 2 * shadowLength, shadowLength);
52
+ }
53
+ drawRectangularShadow(canvasSize) {
54
+ this.ctx.fillRect(0, 0, this.RECTANGULAR_SHADOW_WIDTH, canvasSize);
55
+ this.ctx.fillRect(canvasSize - this.RECTANGULAR_SHADOW_WIDTH, 0, this.RECTANGULAR_SHADOW_WIDTH, canvasSize);
56
+ this.ctx.fillRect(this.RECTANGULAR_SHADOW_WIDTH, 0, canvasSize - 2 * this.RECTANGULAR_SHADOW_WIDTH, this.RECTANGULAR_SHADOW_HEIGHT);
57
+ this.ctx.fillRect(this.RECTANGULAR_SHADOW_WIDTH, canvasSize - this.RECTANGULAR_SHADOW_HEIGHT, canvasSize - 2 * this.RECTANGULAR_SHADOW_WIDTH, this.RECTANGULAR_SHADOW_HEIGHT);
58
+ }
59
+ drawImageByZoom(canvasSize, zoomLevel, htmlImageElement) {
60
+ const maxImageDimension = Math.max(htmlImageElement.width, htmlImageElement.height);
61
+ const proportion = canvasSize / (this.CROP_AREA_PROPORTION * maxImageDimension);
62
+ const suitableWidth = htmlImageElement.width * proportion * zoomLevel;
63
+ const suitableHeight = htmlImageElement.height * proportion * zoomLevel;
64
+ const rectX = (canvasSize - suitableWidth) / 2;
65
+ const rectY = (canvasSize - suitableHeight) / 2;
66
+ this.ctx.drawImage(htmlImageElement, rectX, rectY, suitableWidth, suitableHeight);
67
+ }
68
+ clearCanvas(canvasSize) {
69
+ this.ctx.fillStyle = 'white';
70
+ this.ctx.fillRect(0, 0, canvasSize, canvasSize);
71
+ }
72
+ /** @nocollapse */ static { this.ɵfac = function DrImageCropperCanvasService_Factory(t) { return new (t || DrImageCropperCanvasService)(); }; }
73
+ /** @nocollapse */ static { this.ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: DrImageCropperCanvasService, factory: DrImageCropperCanvasService.ɵfac }); }
74
+ }
75
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrImageCropperCanvasService, [{
76
+ type: Injectable
77
+ }], null, null); })();
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItaW1hZ2UtY3JvcHBlci1jYW52YXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2ltYWdlLWNyb3BwZXIvZHItaW1hZ2UtY3JvcHBlci1jYW52YXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQUc1RCxNQUFNLE9BQU8sMkJBQTJCO0lBRHhDO1FBSXFCLHFCQUFnQixHQUFHLEdBQUcsQ0FBQztRQUN4QywrRUFBK0U7UUFDOUQseUJBQW9CLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLDZCQUF3QixHQUFHLEVBQUUsQ0FBQztRQUM5Qiw4QkFBeUIsR0FBRyxFQUFFLENBQUM7S0FpRm5EO0lBL0VHLFNBQVMsQ0FBQyxVQUFrQixFQUFFLFFBQTBCLEVBQUUsU0FBaUIsRUFBRSxnQkFBa0M7UUFDM0csSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsY0FBYyxDQUFDLFFBQTBCLEVBQUUsVUFBa0I7UUFDekQsT0FBTyxRQUFRLEtBQUssZ0JBQWdCLENBQUMsTUFBTTtZQUN2QyxDQUFDLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFVBQVUsQ0FBQztZQUMxQyxDQUFDLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxVQUFrQjtRQUM5QyxNQUFNLFlBQVksR0FB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QUFpQixFQUFFLGdCQUFrQztRQUM3RixNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BGLE1BQU0sVUFBVSxHQUFHLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2hGLE1BQU0sYUFBYSxHQUFHLGdCQUFnQixDQUFDLEtBQUssR0FBRyxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBQ3RFLE1BQU0sY0FBYyxHQUFHLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBRXhFLE1BQU0sS0FBSyxHQUFHLENBQUMsVUFBVSxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQyxNQUFNLEtBQUssR0FBRyxDQUFDLFVBQVUsR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFaEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUVPLFdBQVcsQ0FBQyxVQUFrQjtRQUNsQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUM7UUFDN0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDcEQsQ0FBQzsrR0F2RlEsMkJBQTJCO3NHQUEzQiwyQkFBMkIsV0FBM0IsMkJBQTJCOzt1RkFBM0IsMkJBQTJCO2NBRHZDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDUk9QX0lNQUdFX01PREVTIH0gZnJvbSAnLi9kci1pbWFnZS1jcm9wcGVyLnR5cGVzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERySW1hZ2VDcm9wcGVyQ2FudmFzU2VydmljZSB7XG4gICAgY3R4OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IEFMUEhBX0ZPUl9TSEFET1cgPSAwLjI7XG4gICAgLy8gdGhpcyBwYXJhbSBtZWFucyB0aGF0IGEgc2lkZSBvZiBhIHdoaXRlIHNxdWFyZSBpcyBoYWxmIG9mIGEgc2lkZSBvZiBhIGNhbnZhc1xuICAgIHByaXZhdGUgcmVhZG9ubHkgQ1JPUF9BUkVBX1BST1BPUlRJT04gPSAyO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgUkVDVEFOR1VMQVJfU0hBRE9XX1dJRFRIID0gMzA7XG4gICAgcHJpdmF0ZSByZWFkb25seSBSRUNUQU5HVUxBUl9TSEFET1dfSEVJR0hUID0gNzA7XG5cbiAgICBkcmF3U2hhcGUoY2FudmFzU2l6ZTogbnVtYmVyLCBjcm9wTW9kZTogQ1JPUF9JTUFHRV9NT0RFUywgem9vbUxldmVsOiBudW1iZXIsIGh0bWxJbWFnZUVsZW1lbnQ6IEhUTUxJbWFnZUVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbGVhckNhbnZhcyhjYW52YXNTaXplKTtcbiAgICAgICAgdGhpcy5kcmF3SW1hZ2VCeVpvb20oY2FudmFzU2l6ZSwgem9vbUxldmVsLCBodG1sSW1hZ2VFbGVtZW50KTtcbiAgICAgICAgdGhpcy5kcmF3U2hhZG93KGNyb3BNb2RlLCBjYW52YXNTaXplKTtcbiAgICB9XG5cbiAgICBnZXRDb29yZGluYXRlcyhjcm9wTW9kZTogQ1JPUF9JTUFHRV9NT0RFUywgY2FudmFzU2l6ZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGNyb3BNb2RlID09PSBDUk9QX0lNQUdFX01PREVTLlNRVUFSRVxuICAgICAgICAgICAgPyB0aGlzLmdldENvb3JkaW5hdGVzRm9yU3F1YXJlKGNhbnZhc1NpemUpXG4gICAgICAgICAgICA6IHRoaXMuZ2V0Q29vcmRpbmF0ZXNGb3JSZWN0YW5nbGUoY2FudmFzU2l6ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDb29yZGluYXRlc0ZvclNxdWFyZShjYW52YXNTaXplOiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBzaGFkb3dMZW5ndGggPSBjYW52YXNTaXplIC8gKHRoaXMuQ1JPUF9BUkVBX1BST1BPUlRJT04gKiAyKTtcbiAgICAgICAgY29uc3QgYm90dG9tUG9zaXRpb24gPSBjYW52YXNTaXplIC0gc2hhZG93TGVuZ3RoO1xuICAgICAgICByZXR1cm4gW3NoYWRvd0xlbmd0aCwgc2hhZG93TGVuZ3RoLCBib3R0b21Qb3NpdGlvbiwgYm90dG9tUG9zaXRpb25dLmpvaW4oJywnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvb3JkaW5hdGVzRm9yUmVjdGFuZ2xlKGNhbnZhc1NpemU6IG51bWJlcik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB0aGlzLlJFQ1RBTkdVTEFSX1NIQURPV19XSURUSCxcbiAgICAgICAgICAgIHRoaXMuUkVDVEFOR1VMQVJfU0hBRE9XX0hFSUdIVCxcbiAgICAgICAgICAgIGNhbnZhc1NpemUgLSB0aGlzLlJFQ1RBTkdVTEFSX1NIQURPV19XSURUSCxcbiAgICAgICAgICAgIGNhbnZhc1NpemUgLSB0aGlzLlJFQ1RBTkdVTEFSX1NIQURPV19IRUlHSFQsXG4gICAgICAgIF0uam9pbignLCcpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZHJhd1NoYWRvdyhjcm9wTW9kZTogQ1JPUF9JTUFHRV9NT0RFUywgY2FudmFzU2l6ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3R4Lmdsb2JhbEFscGhhID0gdGhpcy5BTFBIQV9GT1JfU0hBRE9XO1xuICAgICAgICB0aGlzLmN0eC5maWxsU3R5bGUgPSAnYmxhY2snO1xuICAgICAgICBpZiAoY3JvcE1vZGUgPT09IENST1BfSU1BR0VfTU9ERVMuU1FVQVJFKSB7XG4gICAgICAgICAgICB0aGlzLmRyYXdTcXVhcmVTaGFkb3coY2FudmFzU2l6ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoY3JvcE1vZGUgPT09IENST1BfSU1BR0VfTU9ERVMuUkVDVEFOR0xFKSB7XG4gICAgICAgICAgICB0aGlzLmRyYXdSZWN0YW5ndWxhclNoYWRvdyhjYW52YXNTaXplKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmN0eC5nbG9iYWxBbHBoYSA9IDE7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkcmF3U3F1YXJlU2hhZG93KGNhbnZhc1NpemU6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBzaGFkb3dMZW5ndGggPSBjYW52YXNTaXplIC8gKHRoaXMuQ1JPUF9BUkVBX1BST1BPUlRJT04gKiAyKTtcbiAgICAgICAgdGhpcy5jdHguZmlsbFJlY3QoMCwgMCwgc2hhZG93TGVuZ3RoLCBjYW52YXNTaXplKTtcbiAgICAgICAgdGhpcy5jdHguZmlsbFJlY3QoY2FudmFzU2l6ZSAtIHNoYWRvd0xlbmd0aCwgMCwgc2hhZG93TGVuZ3RoLCBjYW52YXNTaXplKTtcbiAgICAgICAgdGhpcy5jdHguZmlsbFJlY3Qoc2hhZG93TGVuZ3RoLCAwLCAyICogc2hhZG93TGVuZ3RoLCBzaGFkb3dMZW5ndGgpO1xuICAgICAgICB0aGlzLmN0eC5maWxsUmVjdChzaGFkb3dMZW5ndGgsIGNhbnZhc1NpemUgLSBzaGFkb3dMZW5ndGgsIDIgKiBzaGFkb3dMZW5ndGgsIHNoYWRvd0xlbmd0aCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkcmF3UmVjdGFuZ3VsYXJTaGFkb3coY2FudmFzU2l6ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3R4LmZpbGxSZWN0KDAsIDAsIHRoaXMuUkVDVEFOR1VMQVJfU0hBRE9XX1dJRFRILCBjYW52YXNTaXplKTtcbiAgICAgICAgdGhpcy5jdHguZmlsbFJlY3QoY2FudmFzU2l6ZSAtIHRoaXMuUkVDVEFOR1VMQVJfU0hBRE9XX1dJRFRILCAwLCB0aGlzLlJFQ1RBTkdVTEFSX1NIQURPV19XSURUSCwgY2FudmFzU2l6ZSk7XG4gICAgICAgIHRoaXMuY3R4LmZpbGxSZWN0KFxuICAgICAgICAgICAgdGhpcy5SRUNUQU5HVUxBUl9TSEFET1dfV0lEVEgsXG4gICAgICAgICAgICAwLFxuICAgICAgICAgICAgY2FudmFzU2l6ZSAtIDIgKiB0aGlzLlJFQ1RBTkdVTEFSX1NIQURPV19XSURUSCxcbiAgICAgICAgICAgIHRoaXMuUkVDVEFOR1VMQVJfU0hBRE9XX0hFSUdIVCxcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5jdHguZmlsbFJlY3QoXG4gICAgICAgICAgICB0aGlzLlJFQ1RBTkdVTEFSX1NIQURPV19XSURUSCxcbiAgICAgICAgICAgIGNhbnZhc1NpemUgLSB0aGlzLlJFQ1RBTkdVTEFSX1NIQURPV19IRUlHSFQsXG4gICAgICAgICAgICBjYW52YXNTaXplIC0gMiAqIHRoaXMuUkVDVEFOR1VMQVJfU0hBRE9XX1dJRFRILFxuICAgICAgICAgICAgdGhpcy5SRUNUQU5HVUxBUl9TSEFET1dfSEVJR0hULFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZHJhd0ltYWdlQnlab29tKGNhbnZhc1NpemU6IG51bWJlciwgem9vbUxldmVsOiBudW1iZXIsIGh0bWxJbWFnZUVsZW1lbnQ6IEhUTUxJbWFnZUVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbWF4SW1hZ2VEaW1lbnNpb24gPSBNYXRoLm1heChodG1sSW1hZ2VFbGVtZW50LndpZHRoLCBodG1sSW1hZ2VFbGVtZW50LmhlaWdodCk7XG4gICAgICAgIGNvbnN0IHByb3BvcnRpb24gPSBjYW52YXNTaXplIC8gKHRoaXMuQ1JPUF9BUkVBX1BST1BPUlRJT04gKiBtYXhJbWFnZURpbWVuc2lvbik7XG4gICAgICAgIGNvbnN0IHN1aXRhYmxlV2lkdGggPSBodG1sSW1hZ2VFbGVtZW50LndpZHRoICogcHJvcG9ydGlvbiAqIHpvb21MZXZlbDtcbiAgICAgICAgY29uc3Qgc3VpdGFibGVIZWlnaHQgPSBodG1sSW1hZ2VFbGVtZW50LmhlaWdodCAqIHByb3BvcnRpb24gKiB6b29tTGV2ZWw7XG5cbiAgICAgICAgY29uc3QgcmVjdFggPSAoY2FudmFzU2l6ZSAtIHN1aXRhYmxlV2lkdGgpIC8gMjtcbiAgICAgICAgY29uc3QgcmVjdFkgPSAoY2FudmFzU2l6ZSAtIHN1aXRhYmxlSGVpZ2h0KSAvIDI7XG5cbiAgICAgICAgdGhpcy5jdHguZHJhd0ltYWdlKGh0bWxJbWFnZUVsZW1lbnQsIHJlY3RYLCByZWN0WSwgc3VpdGFibGVXaWR0aCwgc3VpdGFibGVIZWlnaHQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xlYXJDYW52YXMoY2FudmFzU2l6ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3R4LmZpbGxTdHlsZSA9ICd3aGl0ZSc7XG4gICAgICAgIHRoaXMuY3R4LmZpbGxSZWN0KDAsIDAsIGNhbnZhc1NpemUsIGNhbnZhc1NpemUpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,133 @@
1
+ import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
2
+ import { FormsModule } from '@angular/forms';
3
+ import { DrSliderComponent } from '../dr-inputs/dr-slider/dr-slider.component';
4
+ import { CROP_IMAGE_MODES } from './dr-image-cropper.types';
5
+ import { DrInputsModule } from '../dr-inputs/dr-inputs.module';
6
+ import { DrImageCropperCanvasService } from './dr-image-cropper-canvas.service';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "./dr-image-cropper-canvas.service";
9
+ import * as i2 from "@angular/forms";
10
+ import * as i3 from "../dr-inputs/button/button.component";
11
+ const _c0 = ["imageCanvas"];
12
+ export class DrImageCropperComponent {
13
+ constructor(canvasService) {
14
+ this.canvasService = canvasService;
15
+ this.maxZoom = 10;
16
+ this.minZoom = 0.5;
17
+ this.zoomStep = 0.1;
18
+ this.zoomLevel = 1;
19
+ this.cropChanged = new EventEmitter();
20
+ this.clearClicked = new EventEmitter();
21
+ this.cropMode = CROP_IMAGE_MODES.SQUARE;
22
+ this.CROP_IMAGE_MODES = CROP_IMAGE_MODES;
23
+ }
24
+ ngOnChanges(changes) {
25
+ if (changes.imageFile && this.imageFile) {
26
+ this.readImageFile();
27
+ }
28
+ }
29
+ ngAfterViewInit() {
30
+ this.canvasService.ctx = this.canvasElement.nativeElement.getContext('2d');
31
+ }
32
+ drawImage(newZoomEvent) {
33
+ if (newZoomEvent !== undefined) {
34
+ this.zoomLevel = newZoomEvent.target.value;
35
+ }
36
+ this.onCropModeUpdated();
37
+ }
38
+ onCropModeUpdated(cropMode) {
39
+ if (cropMode) {
40
+ this.cropMode = cropMode;
41
+ }
42
+ this.canvasService.drawShape(this.cropperSize, this.cropMode, this.zoomLevel, this.htmlImageElement);
43
+ const coordinates = this.canvasService.getCoordinates(this.cropMode, this.cropperSize);
44
+ this.canvasElement.nativeElement.toBlob((blob) => {
45
+ const file = new File([blob], this.imageFile.name, { type: this.imageFile.type, lastModified: Date.now() });
46
+ this.cropChanged.emit({ file, coordinates, cropMode: this.cropMode });
47
+ }, this.imageFile.type);
48
+ }
49
+ readImageFile() {
50
+ const reader = new FileReader();
51
+ reader.onload = () => {
52
+ this.htmlImageElement = new Image();
53
+ this.htmlImageElement.src = this.getImagesStringSrc(reader);
54
+ this.htmlImageElement.onload = () => {
55
+ this.canvasElement.nativeElement.width = this.canvasElement.nativeElement.height = this.cropperSize;
56
+ this.drawImage();
57
+ };
58
+ };
59
+ reader.readAsDataURL(this.imageFile);
60
+ }
61
+ getImagesStringSrc(reader) {
62
+ if (typeof reader.result === 'string')
63
+ return reader.result;
64
+ const decoder = new TextDecoder();
65
+ return decoder.decode(reader.result);
66
+ }
67
+ /** @nocollapse */ static { this.ɵfac = function DrImageCropperComponent_Factory(t) { return new (t || DrImageCropperComponent)(i0.ɵɵdirectiveInject(i1.DrImageCropperCanvasService)); }; }
68
+ /** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DrImageCropperComponent, selectors: [["dr-image-cropper"]], viewQuery: function DrImageCropperComponent_Query(rf, ctx) { if (rf & 1) {
69
+ i0.ɵɵviewQuery(_c0, 7);
70
+ } if (rf & 2) {
71
+ let _t;
72
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.canvasElement = _t.first);
73
+ } }, inputs: { cropperSize: "cropperSize", imageFile: "imageFile", maxZoom: "maxZoom", minZoom: "minZoom", zoomStep: "zoomStep", zoomLevel: "zoomLevel" }, outputs: { cropChanged: "cropChanged", clearClicked: "clearClicked" }, standalone: true, features: [i0.ɵɵProvidersFeature([DrImageCropperCanvasService]), i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature], decls: 15, vars: 11, consts: [[1, "crop-mode-btns-container"], ["theme", "ghost", 3, "click"], [1, "mode-btn"], [1, "mode-btn__square-icon"], [1, "mode-btn__rectangle-icon"], [1, "image-cropper"], ["imageCanvas", ""], [1, "image-crop-slider", 3, "ngModel", "max", "min", "step", "ngModelChange", "input"], [1, "try-another-btn", 3, "theme", "click"]], template: function DrImageCropperComponent_Template(rf, ctx) { if (rf & 1) {
74
+ i0.ɵɵelementStart(0, "div", 0)(1, "dr-button", 1);
75
+ i0.ɵɵlistener("click", function DrImageCropperComponent_Template_dr_button_click_1_listener() { return ctx.onCropModeUpdated(ctx.CROP_IMAGE_MODES.SQUARE); });
76
+ i0.ɵɵelementStart(2, "div", 2);
77
+ i0.ɵɵelement(3, "div", 3);
78
+ i0.ɵɵtext(4, " Square ");
79
+ i0.ɵɵelementEnd()();
80
+ i0.ɵɵelementStart(5, "dr-button", 1);
81
+ i0.ɵɵlistener("click", function DrImageCropperComponent_Template_dr_button_click_5_listener() { return ctx.onCropModeUpdated(ctx.CROP_IMAGE_MODES.RECTANGLE); });
82
+ i0.ɵɵelementStart(6, "div", 2);
83
+ i0.ɵɵelement(7, "div", 4);
84
+ i0.ɵɵtext(8, " Rectangle ");
85
+ i0.ɵɵelementEnd()()();
86
+ i0.ɵɵelementStart(9, "div", 5);
87
+ i0.ɵɵelement(10, "canvas", null, 6);
88
+ i0.ɵɵelementEnd();
89
+ i0.ɵɵelementStart(12, "dr-slider", 7);
90
+ i0.ɵɵlistener("ngModelChange", function DrImageCropperComponent_Template_dr_slider_ngModelChange_12_listener($event) { return ctx.zoomLevel = $event; })("input", function DrImageCropperComponent_Template_dr_slider_input_12_listener($event) { return ctx.drawImage($event); });
91
+ i0.ɵɵelementEnd();
92
+ i0.ɵɵelementStart(13, "dr-button", 8);
93
+ i0.ɵɵlistener("click", function DrImageCropperComponent_Template_dr_button_click_13_listener() { return ctx.clearClicked.emit(); });
94
+ i0.ɵɵtext(14, " Try another image ");
95
+ i0.ɵɵelementEnd();
96
+ } if (rf & 2) {
97
+ i0.ɵɵadvance(1);
98
+ i0.ɵɵclassProp("active-mode", ctx.cropMode === ctx.CROP_IMAGE_MODES.SQUARE);
99
+ i0.ɵɵadvance(4);
100
+ i0.ɵɵclassProp("active-mode", ctx.cropMode === ctx.CROP_IMAGE_MODES.RECTANGLE);
101
+ i0.ɵɵadvance(7);
102
+ i0.ɵɵstyleProp("width", ctx.cropperSize + "px");
103
+ i0.ɵɵproperty("ngModel", ctx.zoomLevel)("max", ctx.maxZoom)("min", ctx.minZoom)("step", ctx.zoomStep);
104
+ i0.ɵɵadvance(1);
105
+ i0.ɵɵproperty("theme", "ghost");
106
+ } }, dependencies: [FormsModule, i2.NgControlStatus, i2.NgModel, DrSliderComponent, DrInputsModule, i3.DrButtonComponent], styles: ["[_nghost-%COMP%]{display:flex;flex-direction:column}[_nghost-%COMP%] .crop-mode-btns-container[_ngcontent-%COMP%]{display:flex;justify-content:center;margin-bottom:16px}[_nghost-%COMP%] .crop-mode-btns-container[_ngcontent-%COMP%] dr-button.active-mode>button{background:#eaeaff}[_nghost-%COMP%] .crop-mode-btns-container[_ngcontent-%COMP%] dr-button>button{height:56px;width:80px}[_nghost-%COMP%] .crop-mode-btns-container[_ngcontent-%COMP%] dr-button[_ngcontent-%COMP%]:not(:first-child){margin-left:8px}[_nghost-%COMP%] .crop-mode-btns-container[_ngcontent-%COMP%] .mode-btn[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#333;height:56px;width:80px}[_nghost-%COMP%] .crop-mode-btns-container[_ngcontent-%COMP%] .mode-btn__rectangle-icon[_ngcontent-%COMP%]{height:8px;width:24px;margin-top:4px;margin-bottom:4px}[_nghost-%COMP%] .crop-mode-btns-container[_ngcontent-%COMP%] .mode-btn__square-icon[_ngcontent-%COMP%]{width:16px;height:16px}[_nghost-%COMP%] .crop-mode-btns-container[_ngcontent-%COMP%] .mode-btn__rectangle-icon[_ngcontent-%COMP%], [_nghost-%COMP%] .crop-mode-btns-container[_ngcontent-%COMP%] .mode-btn__square-icon[_ngcontent-%COMP%]{border:1px solid #333333}[_nghost-%COMP%] .image-cropper[_ngcontent-%COMP%]{overflow:hidden;position:relative}[_nghost-%COMP%] .image-cropper__shadow[_ngcontent-%COMP%]{position:absolute}[_nghost-%COMP%] .image-crop-slider[_ngcontent-%COMP%]{margin-top:8px}[_nghost-%COMP%] .try-another-btn[_ngcontent-%COMP%]{display:flex;justify-content:center;margin-top:8px}"], changeDetection: 0 }); }
107
+ }
108
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrImageCropperComponent, [{
109
+ type: Component,
110
+ args: [{ selector: 'dr-image-cropper', changeDetection: ChangeDetectionStrategy.OnPush, imports: [FormsModule, DrSliderComponent, DrInputsModule], standalone: true, providers: [DrImageCropperCanvasService], template: "<div class=\"crop-mode-btns-container\">\n <dr-button\n theme=\"ghost\"\n [class.active-mode]=\"cropMode === CROP_IMAGE_MODES.SQUARE\"\n (click)=\"onCropModeUpdated(CROP_IMAGE_MODES.SQUARE)\">\n <div class=\"mode-btn\">\n <div class=\"mode-btn__square-icon\"></div>\n Square\n </div>\n </dr-button>\n <dr-button\n theme=\"ghost\"\n [class.active-mode]=\"cropMode === CROP_IMAGE_MODES.RECTANGLE\"\n (click)=\"onCropModeUpdated(CROP_IMAGE_MODES.RECTANGLE)\">\n <div class=\"mode-btn\">\n <div class=\"mode-btn__rectangle-icon\"></div>\n Rectangle\n </div>\n </dr-button>\n</div>\n\n<div class=\"image-cropper\">\n <canvas #imageCanvas></canvas>\n</div>\n<dr-slider\n [(ngModel)]=\"zoomLevel\"\n [max]=\"maxZoom\"\n [min]=\"minZoom\"\n [step]=\"zoomStep\"\n [style.width]=\"cropperSize + 'px'\"\n class=\"image-crop-slider\"\n (input)=\"drawImage($event)\">\n</dr-slider>\n<dr-button [theme]=\"'ghost'\" (click)=\"clearClicked.emit()\" class=\"try-another-btn\"> Try another image </dr-button>\n", styles: [":host{display:flex;flex-direction:column}:host .crop-mode-btns-container{display:flex;justify-content:center;margin-bottom:16px}:host .crop-mode-btns-container ::ng-deep dr-button.active-mode>button{background:#eaeaff}:host .crop-mode-btns-container ::ng-deep dr-button>button{height:56px;width:80px}:host .crop-mode-btns-container dr-button:not(:first-child){margin-left:8px}:host .crop-mode-btns-container .mode-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#333;height:56px;width:80px}:host .crop-mode-btns-container .mode-btn__rectangle-icon{height:8px;width:24px;margin-top:4px;margin-bottom:4px}:host .crop-mode-btns-container .mode-btn__square-icon{width:16px;height:16px}:host .crop-mode-btns-container .mode-btn__rectangle-icon,:host .crop-mode-btns-container .mode-btn__square-icon{border:1px solid #333333}:host .image-cropper{overflow:hidden;position:relative}:host .image-cropper__shadow{position:absolute}:host .image-crop-slider{margin-top:8px}:host .try-another-btn{display:flex;justify-content:center;margin-top:8px}\n"] }]
111
+ }], function () { return [{ type: i1.DrImageCropperCanvasService }]; }, { cropperSize: [{
112
+ type: Input,
113
+ args: [{ required: true }]
114
+ }], imageFile: [{
115
+ type: Input,
116
+ args: [{ required: true }]
117
+ }], maxZoom: [{
118
+ type: Input
119
+ }], minZoom: [{
120
+ type: Input
121
+ }], zoomStep: [{
122
+ type: Input
123
+ }], zoomLevel: [{
124
+ type: Input
125
+ }], cropChanged: [{
126
+ type: Output
127
+ }], clearClicked: [{
128
+ type: Output
129
+ }], canvasElement: [{
130
+ type: ViewChild,
131
+ args: ['imageCanvas', { static: true }]
132
+ }] }); })();
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItaW1hZ2UtY3JvcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9pbWFnZS1jcm9wcGVyL2RyLWltYWdlLWNyb3BwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvaW1hZ2UtY3JvcHBlci9kci1pbWFnZS1jcm9wcGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBa0IsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDL0QsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7Ozs7OztBQVdoRixNQUFNLE9BQU8sdUJBQXVCO0lBaUJoQyxZQUE2QixhQUEwQztRQUExQyxrQkFBYSxHQUFiLGFBQWEsQ0FBNkI7UUFkOUQsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUNyQixZQUFPLEdBQVcsR0FBRyxDQUFDO1FBQ3RCLGFBQVEsR0FBVyxHQUFHLENBQUM7UUFDdkIsY0FBUyxHQUFXLENBQUMsQ0FBQztRQUVyQixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFrQixDQUFDO1FBQ2pELGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUtsRCxhQUFRLEdBQXFCLGdCQUFnQixDQUFD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UUFBUTtrQkFBaEIsS0FBSztZQUNHLFNBQVM7a0JBQWpCLEtBQUs7WUFFSSxXQUFXO2tCQUFwQixNQUFNO1lBQ0csWUFBWTtrQkFBckIsTUFBTTtZQUVxQyxhQUFhO2tCQUF4RCxTQUFTO21CQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEclNsaWRlckNvbXBvbmVudCB9IGZyb20gJy4uL2RyLWlucHV0cy9kci1zbGlkZXIvZHItc2xpZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDUk9QX0lNQUdFX01PREVTLCBJQ3JvcEltYWdlRGF0YSB9IGZyb20gJy4vZHItaW1hZ2UtY3JvcHBlci50eXBlcyc7XG5pbXBvcnQgeyBEcklucHV0c01vZHVsZSB9IGZyb20gJy4uL2RyLWlucHV0cy9kci1pbnB1dHMubW9kdWxlJztcbmltcG9ydCB7IERySW1hZ2VDcm9wcGVyQ2FudmFzU2VydmljZSB9IGZyb20gJy4vZHItaW1hZ2UtY3JvcHBlci1jYW52YXMuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZHItaW1hZ2UtY3JvcHBlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RyLWltYWdlLWNyb3BwZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RyLWltYWdlLWNyb3BwZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBpbXBvcnRzOiBbRm9ybXNNb2R1bGUsIERyU2xpZGVyQ29tcG9uZW50LCBEcklucHV0c01vZHVsZV0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFtEckltYWdlQ3JvcHBlckNhbnZhc1NlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBEckltYWdlQ3JvcHBlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgY3JvcHBlclNpemU6IG51bWJlcjtcbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBpbWFnZUZpbGU6IEZpbGU7XG4gICAgQElucHV0KCkgbWF4Wm9vbTogbnVtYmVyID0gMTA7XG4gICAgQElucHV0KCkgbWluWm9vbTogbnVtYmVyID0gMC41O1xuICAgIEBJbnB1dCgpIHpvb21TdGVwOiBudW1iZXIgPSAwLjE7XG4gICAgQElucHV0KCkgem9vbUxldmVsOiBudW1iZXIgPSAxO1xuXG4gICAgQE91dHB1dCgpIGNyb3BDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxJQ3JvcEltYWdlRGF0YT4oKTtcbiAgICBAT3V0cHV0KCkgY2xlYXJDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgQFZpZXdDaGlsZCgnaW1hZ2VDYW52YXMnLCB7IHN0YXRpYzogdHJ1ZSB9KSBjYW52YXNFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxDYW52YXNFbGVtZW50PjtcblxuICAgIGh0bWxJbWFnZUVsZW1lbnQ6IEhUTUxJbWFnZUVsZW1lbnQ7XG4gICAgY3JvcE1vZGU6IENST1BfSU1BR0VfTU9ERVMgPSBDUk9QX0lNQUdFX01PREVTLlNRVUFSRTtcbiAgICByZWFkb25seSBDUk9QX0lNQUdFX01PREVTID0gQ1JPUF9JTUFHRV9NT0RFUztcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY2FudmFzU2VydmljZTogRHJJbWFnZUNyb3BwZXJDYW52YXNTZXJ2aWNlKSB7fVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlcy5pbWFnZUZpbGUgJiYgdGhpcy5pbWFnZUZpbGUpIHtcbiAgICAgICAgICAgIHRoaXMucmVhZEltYWdlRmlsZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNhbnZhc1NlcnZpY2UuY3R4ID0gdGhpcy5jYW52YXNFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZ2V0Q29udGV4dCgnMmQnKTtcbiAgICB9XG5cbiAgICBkcmF3SW1hZ2UobmV3Wm9vbUV2ZW50Pyk6IHZvaWQge1xuICAgICAgICBpZiAobmV3Wm9vbUV2ZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuem9vbUxldmVsID0gbmV3Wm9vbUV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9uQ3JvcE1vZGVVcGRhdGVkKCk7XG4gICAgfVxuXG4gICAgb25Dcm9wTW9kZVVwZGF0ZWQoY3JvcE1vZGU/OiBDUk9QX0lNQUdFX01PREVTKTogdm9pZCB7XG4gICAgICAgIGlmIChjcm9wTW9kZSkge1xuICAgICAgICAgICAgdGhpcy5jcm9wTW9kZSA9IGNyb3BNb2RlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jYW52YXNTZXJ2aWNlLmRyYXdTaGFwZSh0aGlzLmNyb3BwZXJTaXplLCB0aGlzLmNyb3BNb2RlLCB0aGlzLnpvb21MZXZlbCwgdGhpcy5odG1sSW1hZ2VFbGVtZW50KTtcbiAgICAgICAgY29uc3QgY29vcmRpbmF0ZXMgPSB0aGlzLmNhbnZhc1NlcnZpY2UuZ2V0Q29vcmRpbmF0ZXModGhpcy5jcm9wTW9kZSwgdGhpcy5jcm9wcGVyU2l6ZSk7XG4gICAgICAgIHRoaXMuY2FudmFzRWxlbWVudC5uYXRpdmVFbGVtZW50LnRvQmxvYigoYmxvYikgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmlsZSA9IG5ldyBGaWxlKFtibG9iXSwgdGhpcy5pbWFnZUZpbGUubmFtZSwgeyB0eXBlOiB0aGlzLmltYWdlRmlsZS50eXBlLCBsYXN0TW9kaWZpZWQ6IERhdGUubm93KCkgfSk7XG4gICAgICAgICAgICB0aGlzLmNyb3BDaGFuZ2VkLmVtaXQoeyBmaWxlLCBjb29yZGluYXRlcywgY3JvcE1vZGU6IHRoaXMuY3JvcE1vZGUgfSk7XG4gICAgICAgIH0sIHRoaXMuaW1hZ2VGaWxlLnR5cGUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVhZEltYWdlRmlsZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaHRtbEltYWdlRWxlbWVudCA9IG5ldyBJbWFnZSgpO1xuICAgICAgICAgICAgdGhpcy5odG1sSW1hZ2VFbGVtZW50LnNyYyA9IHRoaXMuZ2V0SW1hZ2VzU3RyaW5nU3JjKHJlYWRlcik7XG4gICAgICAgICAgICB0aGlzLmh0bWxJbWFnZUVsZW1lbnQub25sb2FkID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2FudmFzRWxlbWVudC5uYXRpdmVFbGVtZW50LndpZHRoID0gdGhpcy5jYW52YXNFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuaGVpZ2h0ID0gdGhpcy5jcm9wcGVyU2l6ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmRyYXdJbWFnZSgpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfTtcbiAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwodGhpcy5pbWFnZUZpbGUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0SW1hZ2VzU3RyaW5nU3JjKHJlYWRlcjogRmlsZVJlYWRlcik6IHN0cmluZyB7XG4gICAgICAgIGlmICh0eXBlb2YgcmVhZGVyLnJlc3VsdCA9PT0gJ3N0cmluZycpIHJldHVybiByZWFkZXIucmVzdWx0O1xuXG4gICAgICAgIGNvbnN0IGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoKTtcbiAgICAgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlKHJlYWRlci5yZXN1bHQpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjcm9wLW1vZGUtYnRucy1jb250YWluZXJcIj5cbiAgICA8ZHItYnV0dG9uXG4gICAgICAgIHRoZW1lPVwiZ2hvc3RcIlxuICAgICAgICBbY2xhc3MuYWN0aXZlLW1vZGVdPVwiY3JvcE1vZGUgPT09IENST1BfSU1BR0VfTU9ERVMuU1FVQVJFXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ3JvcE1vZGVVcGRhdGVkKENST1BfSU1BR0VfTU9ERVMuU1FVQVJFKVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kZS1idG5cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RlLWJ0bl9fc3F1YXJlLWljb25cIj48L2Rpdj5cbiAgICAgICAgICAgIFNxdWFyZVxuICAgICAgICA8L2Rpdj5cbiAgICA8L2RyLWJ1dHRvbj5cbiAgICA8ZHItYnV0dG9uXG4gICAgICAgIHRoZW1lPVwiZ2hvc3RcIlxuICAgICAgICBbY2xhc3MuYWN0aXZlLW1vZGVdPVwiY3JvcE1vZGUgPT09IENST1BfSU1BR0VfTU9ERVMuUkVDVEFOR0xFXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ3JvcE1vZGVVcGRhdGVkKENST1BfSU1BR0VfTU9ERVMuUkVDVEFOR0xFKVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kZS1idG5cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RlLWJ0bl9fcmVjdGFuZ2xlLWljb25cIj48L2Rpdj5cbiAgICAgICAgICAgIFJlY3RhbmdsZVxuICAgICAgICA8L2Rpdj5cbiAgICA8L2RyLWJ1dHRvbj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiaW1hZ2UtY3JvcHBlclwiPlxuICAgIDxjYW52YXMgI2ltYWdlQ2FudmFzPjwvY2FudmFzPlxuPC9kaXY+XG48ZHItc2xpZGVyXG4gICAgWyhuZ01vZGVsKV09XCJ6b29tTGV2ZWxcIlxuICAgIFttYXhdPVwibWF4Wm9vbVwiXG4gICAgW21pbl09XCJtaW5ab29tXCJcbiAgICBbc3RlcF09XCJ6b29tU3RlcFwiXG4gICAgW3N0eWxlLndpZHRoXT1cImNyb3BwZXJTaXplICsgJ3B4J1wiXG4gICAgY2xhc3M9XCJpbWFnZS1jcm9wLXNsaWRlclwiXG4gICAgKGlucHV0KT1cImRyYXdJbWFnZSgkZXZlbnQpXCI+XG48L2RyLXNsaWRlcj5cbjxkci1idXR0b24gW3RoZW1lXT1cIidnaG9zdCdcIiAoY2xpY2spPVwiY2xlYXJDbGlja2VkLmVtaXQoKVwiIGNsYXNzPVwidHJ5LWFub3RoZXItYnRuXCI+IFRyeSBhbm90aGVyIGltYWdlIDwvZHItYnV0dG9uPlxuIl19
@@ -0,0 +1,6 @@
1
+ export var CROP_IMAGE_MODES;
2
+ (function (CROP_IMAGE_MODES) {
3
+ CROP_IMAGE_MODES["SQUARE"] = "square";
4
+ CROP_IMAGE_MODES["RECTANGLE"] = "rectangle";
5
+ })(CROP_IMAGE_MODES || (CROP_IMAGE_MODES = {}));
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItaW1hZ2UtY3JvcHBlci50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2ltYWdlLWNyb3BwZXIvZHItaW1hZ2UtY3JvcHBlci50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxnQkFHWDtBQUhELFdBQVksZ0JBQWdCO0lBQ3hCLHFDQUFpQixDQUFBO0lBQ2pCLDJDQUF1QixDQUFBO0FBQzNCLENBQUMsRUFIVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBRzNCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gQ1JPUF9JTUFHRV9NT0RFUyB7XG4gICAgU1FVQVJFID0gJ3NxdWFyZScsXG4gICAgUkVDVEFOR0xFID0gJ3JlY3RhbmdsZScsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNyb3BJbWFnZURhdGEge1xuICAgIGZpbGU6IEZpbGU7XG4gICAgY29vcmRpbmF0ZXM6IHN0cmluZztcbiAgICBjcm9wTW9kZTogQ1JPUF9JTUFHRV9NT0RFUztcbn1cbiJdfQ==