@datarailsshared/datarailsshared 1.4.569 → 1.5.3

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.3.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,126 @@
1
+ import { Component, HostBinding, Input } from '@angular/core';
2
+ import { AnyTagComponent } from '../any-tag.component';
3
+ import moment from 'moment';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/forms";
6
+ import * as i2 from "../../dr-inputs/dr-select/dr-select.component";
7
+ export class QuarterTagComponent extends AnyTagComponent {
8
+ get isLocked() {
9
+ return this.quarters ? this.quarters.some((quarter) => !this.dateFilter(moment.unix(quarter.value))) : false;
10
+ }
11
+ constructor() {
12
+ super();
13
+ this.lockedDate = [];
14
+ this.selectedValue = 0;
15
+ this.quarters = [];
16
+ }
17
+ ngOnChanges(changes) {
18
+ if (changes.lockedDate) {
19
+ this.initName();
20
+ this.initTags();
21
+ }
22
+ }
23
+ ngOnInit() {
24
+ this.initName();
25
+ this.initTags();
26
+ }
27
+ initName() {
28
+ if (!this.name) {
29
+ this.name = 'Quarter';
30
+ }
31
+ }
32
+ initTags() {
33
+ this.quarters = this.getQuarterOptions();
34
+ for (const quarter of this.quarters) {
35
+ if (quarter.isSelected) {
36
+ this.selectedValue = quarter;
37
+ this.chosenTagHandler(quarter);
38
+ }
39
+ this.dateFilter(quarter);
40
+ }
41
+ }
42
+ chosenTagHandler(quarter) {
43
+ const resultDate = moment.unix(quarter.value);
44
+ const resultTag = {
45
+ name: this.name,
46
+ value: resultDate.unix(),
47
+ label: this.getQuarterLabel(resultDate.toString()),
48
+ locked: !this.dateFilter(quarter),
49
+ };
50
+ this.dateChange.emit(resultTag);
51
+ }
52
+ getQuarterOptions() {
53
+ const quartersBeforeToday = 8;
54
+ const quartersAfterToday = 8;
55
+ const dateNow = new Date();
56
+ const dateNowUnix = this.getUTCTimestamp(dateNow);
57
+ let defaultValue = dateNowUnix;
58
+ let tempDate = new Date();
59
+ if (this.defaultValue) {
60
+ defaultValue = this.defaultValue * 1000;
61
+ }
62
+ let afterDefault = Math.round(Math.abs(dateNowUnix - defaultValue) / 7776000000) + quartersAfterToday;
63
+ afterDefault = Math.min(afterDefault, 100);
64
+ let i;
65
+ let tempValue;
66
+ const to_return = [];
67
+ for (i = 0 - quartersBeforeToday; i <= afterDefault; i++) {
68
+ tempDate = new Date(defaultValue);
69
+ tempDate.setDate(15);
70
+ tempDate.setMonth(tempDate.getMonth() + 3 * i);
71
+ tempValue = this.getUTCTimestamp(tempDate);
72
+ to_return.push({
73
+ value: tempValue / 1000,
74
+ label: this.getQuarterLabel(tempValue),
75
+ isSelected: i === 0,
76
+ disabled: false,
77
+ });
78
+ }
79
+ return to_return;
80
+ }
81
+ getQuarterLabel(timeValue) {
82
+ const date = new Date(timeValue);
83
+ return 'Q' + Math.floor(date.getMonth() / 3 + 1) + ' ' + date.getFullYear();
84
+ }
85
+ getUTCTimestamp(date) {
86
+ const month = Math.floor(date.getMonth() / 3) * 3;
87
+ return Date.UTC(date.getFullYear(), month, 1, 12, 0, 0, 0);
88
+ }
89
+ dateFilter(quarter) {
90
+ const quarterDate = moment.unix(quarter.value);
91
+ return !this.lockedDate.some((timestamp) => {
92
+ const lockDate = moment.unix(timestamp);
93
+ if (lockDate.year() === quarterDate.year() && lockDate.quarter() === quarterDate.quarter()) {
94
+ quarter.disabled = true;
95
+ return true;
96
+ }
97
+ return false;
98
+ });
99
+ }
100
+ /** @nocollapse */ static { this.ɵfac = function QuarterTagComponent_Factory(t) { return new (t || QuarterTagComponent)(); }; }
101
+ /** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: QuarterTagComponent, selectors: [["quarter-tag"]], hostVars: 2, hostBindings: function QuarterTagComponent_HostBindings(rf, ctx) { if (rf & 2) {
102
+ i0.ɵɵclassProp("locked", ctx.isLocked);
103
+ } }, inputs: { lockedDate: "lockedDate" }, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 4, vars: 4, consts: [[1, "tag-wrapper", "quarter-tag"], [1, "tag__label"], ["placeholder", "Select", "bindLabel", "label", "dropdownClass", "quarter-tag__select dr-tag__select", 1, "quarter-tag__list", 3, "ngModel", "disabled", "items", "ngModelChange"]], template: function QuarterTagComponent_Template(rf, ctx) { if (rf & 1) {
104
+ i0.ɵɵelementStart(0, "div", 0)(1, "p", 1);
105
+ i0.ɵɵtext(2);
106
+ i0.ɵɵelementEnd();
107
+ i0.ɵɵelementStart(3, "dr-select", 2);
108
+ i0.ɵɵlistener("ngModelChange", function QuarterTagComponent_Template_dr_select_ngModelChange_3_listener($event) { return ctx.selectedValue = $event; })("ngModelChange", function QuarterTagComponent_Template_dr_select_ngModelChange_3_listener($event) { return ctx.chosenTagHandler($event); });
109
+ i0.ɵɵelementEnd()();
110
+ } if (rf & 2) {
111
+ i0.ɵɵadvance(2);
112
+ i0.ɵɵtextInterpolate(ctx.name);
113
+ i0.ɵɵadvance(1);
114
+ i0.ɵɵproperty("ngModel", ctx.selectedValue)("disabled", ctx.disabled)("items", ctx.quarters);
115
+ } }, dependencies: [i1.NgControlStatus, i1.NgModel, i2.DrSelectComponent], styles: [".locked[_nghost-%COMP%] > .tag-wrapper[_ngcontent-%COMP%] > dr-select.quarter-tag__list[_ngcontent-%COMP%]{opacity:.4}.tag__label[_ngcontent-%COMP%]{margin:0 0 4px;color:#0c142b;font-size:14px;font-weight:400;line-height:22px}"] }); }
116
+ }
117
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QuarterTagComponent, [{
118
+ type: Component,
119
+ args: [{ selector: 'quarter-tag', template: "<div class=\"tag-wrapper quarter-tag\">\n <p class=\"tag__label\">{{ name }}</p>\n <dr-select\n class=\"quarter-tag__list\"\n placeholder=\"Select\"\n bindLabel=\"label\"\n [(ngModel)]=\"selectedValue\"\n [disabled]=\"disabled\"\n [items]=\"quarters\"\n dropdownClass=\"quarter-tag__select dr-tag__select\"\n (ngModelChange)=\"chosenTagHandler($event)\"></dr-select>\n</div>\n", styles: [":host.locked>.tag-wrapper>dr-select.quarter-tag__list{opacity:.4}.tag__label{margin:0 0 4px;color:#0c142b;font-size:14px;font-weight:400;line-height:22px}\n"] }]
120
+ }], function () { return []; }, { isLocked: [{
121
+ type: HostBinding,
122
+ args: ['class.locked']
123
+ }], lockedDate: [{
124
+ type: Input
125
+ }] }); })();
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhcnRlci10YWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZGF0ZS10YWdzL3F1YXJ0ZXItdGFnL3F1YXJ0ZXItdGFnLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RhdGUtdGFncy9xdWFydGVyLXRhZy9xdWFydGVyLXRhZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQW9DLE1BQU0sZUFBZSxDQUFDO0FBRWhHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7Ozs7QUFPNUIsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGVBQWU7SUFDcEQsSUFDSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ2pILENBQUM7SUFNRDtRQUNJLEtBQUssRUFBRSxDQUFDO1FBTEgsZUFBVSxHQUFVLEVBQUUsQ0FBQztRQUNoQyxrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUNsQixhQUFRLEdBQVUsRUFBRSxDQUFDO0lBSXJCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoQixJQUFJ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Z0JBQ3hGLE9BQU8sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO2dCQUN4QixPQUFPLElBQUksQ0FBQzthQUNmO1lBRUQsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO3VHQTVHUSxtQkFBbUI7bUdBQW5CLG1CQUFtQjs7O1lDVmhDLDhCQUFxQyxXQUFBO1lBQ1gsWUFBVTtZQUFBLGlCQUFJO1lBQ3BDLG9DQVErQztZQUozQyx1SkFBMkIsNEdBSVYsNEJBQXdCLElBSmQ7WUFJZ0IsaUJBQVksRUFBQTs7WUFUckMsZUFBVTtZQUFWLDhCQUFVO1lBSzVCLGVBQTJCO1lBQTNCLDJDQUEyQiwwQkFBQSx1QkFBQTs7O3VGREl0QixtQkFBbUI7Y0FML0IsU0FBUzsyQkFHSSxhQUFhO3NDQUluQixRQUFRO2tCQURYLFdBQVc7bUJBQUMsY0FBYztZQUtsQixVQUFVO2tCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJRGF0ZVRhZyB9IGZyb20gJy4uLy4uL21vZGVscy9zZXJ2ZXJUYWdzJztcbmltcG9ydCB7IEFueVRhZ0NvbXBvbmVudCB9IGZyb20gJy4uL2FueS10YWcuY29tcG9uZW50JztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGVVcmw6ICdxdWFydGVyLXRhZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcXVhcnRlci10YWcuY29tcG9uZW50LnNjc3MnXSxcbiAgICBzZWxlY3RvcjogJ3F1YXJ0ZXItdGFnJyxcbn0pXG5leHBvcnQgY2xhc3MgUXVhcnRlclRhZ0NvbXBvbmVudCBleHRlbmRzIEFueVRhZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmxvY2tlZCcpXG4gICAgZ2V0IGlzTG9ja2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5xdWFydGVycyA/IHRoaXMucXVhcnRlcnMuc29tZSgocXVhcnRlcikgPT4gIXRoaXMuZGF0ZUZpbHRlcihtb21lbnQudW5peChxdWFydGVyLnZhbHVlKSkpIDogZmFsc2U7XG4gICAgfVxuXG4gICAgQElucHV0KCkgbG9ja2VkRGF0ZTogYW55W10gPSBbXTtcbiAgICBzZWxlY3RlZFZhbHVlID0gMDtcbiAgICBxdWFydGVyczogYW55W10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKGNoYW5nZXMubG9ja2VkRGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5pbml0TmFtZSgpO1xuICAgICAgICAgICAgdGhpcy5pbml0VGFncygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuaW5pdE5hbWUoKTtcbiAgICAgICAgdGhpcy5pbml0VGFncygpO1xuICAgIH1cblxuICAgIGluaXROYW1lKCkge1xuICAgICAgICBpZiAoIXRoaXMubmFtZSkge1xuICAgICAgICAgICAgdGhpcy5uYW1lID0gJ1F1YXJ0ZXInO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW5pdFRhZ3MoKSB7XG4gICAgICAgIHRoaXMucXVhcnRlcnMgPSB0aGlzLmdldFF1YXJ0ZXJPcHRpb25zKCk7XG5cbiAgICAgICAgZm9yIChjb25zdCBxdWFydGVyIG9mIHRoaXMucXVhcnRlcnMpIHtcbiAgICAgICAgICAgIGlmIChxdWFydGVyLmlzU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSBxdWFydGVyO1xuICAgICAgICAgICAgICAgIHRoaXMuY2hvc2VuVGFnSGFuZGxlcihxdWFydGVyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5kYXRlRmlsdGVyKHF1YXJ0ZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2hvc2VuVGFnSGFuZGxlcihxdWFydGVyKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdERhdGUgPSBtb21lbnQudW5peChxdWFydGVyLnZhbHVlKTtcbiAgICAgICAgY29uc3QgcmVzdWx0VGFnOiBJRGF0ZVRhZyA9IHtcbiAgICAgICAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgICAgICAgIHZhbHVlOiByZXN1bHREYXRlLnVuaXgoKSxcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLmdldFF1YXJ0ZXJMYWJlbChyZXN1bHREYXRlLnRvU3RyaW5nKCkpLFxuICAgICAgICAgICAgbG9ja2VkOiAhdGhpcy5kYXRlRmlsdGVyKHF1YXJ0ZXIpLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmRhdGVDaGFuZ2UuZW1pdChyZXN1bHRUYWcpO1xuICAgIH1cblxuICAgIGdldFF1YXJ0ZXJPcHRpb25zKCkge1xuICAgICAgICBjb25zdCBxdWFydGVyc0JlZm9yZVRvZGF5ID0gODtcbiAgICAgICAgY29uc3QgcXVhcnRlcnNBZnRlclRvZGF5ID0gODtcbiAgICAgICAgY29uc3QgZGF0ZU5vdyA9IG5ldyBEYXRlKCk7XG4gICAgICAgIGNvbnN0IGRhdGVOb3dVbml4ID0gdGhpcy5nZXRVVENUaW1lc3RhbXAoZGF0ZU5vdyk7XG4gICAgICAgIGxldCBkZWZhdWx0VmFsdWUgPSBkYXRlTm93VW5peDtcbiAgICAgICAgbGV0IHRlbXBEYXRlID0gbmV3IERhdGUoKTtcbiAgICAgICAgaWYgKHRoaXMuZGVmYXVsdFZhbHVlKSB7XG4gICAgICAgICAgICBkZWZhdWx0VmFsdWUgPSB0aGlzLmRlZmF1bHRWYWx1ZSAqIDEwMDA7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgYWZ0ZXJEZWZhdWx0ID0gTWF0aC5yb3VuZChNYXRoLmFicyhkYXRlTm93VW5peCAtIGRlZmF1bHRWYWx1ZSkgLyA3Nzc2MDAwMDAwKSArIHF1YXJ0ZXJzQWZ0ZXJUb2RheTtcbiAgICAgICAgYWZ0ZXJEZWZhdWx0ID0gTWF0aC5taW4oYWZ0ZXJEZWZhdWx0LCAxMDApO1xuICAgICAgICBsZXQgaTtcbiAgICAgICAgbGV0IHRlbXBWYWx1ZTtcbiAgICAgICAgY29uc3QgdG9fcmV0dXJuOiBhbnlbXSA9IFtdO1xuICAgICAgICBmb3IgKGkgPSAwIC0gcXVhcnRlcnNCZWZvcmVUb2RheTsgaSA8PSBhZnRlckRlZmF1bHQ7IGkrKykge1xuICAgICAgICAgICAgdGVtcERhdGUgPSBuZXcgRGF0ZShkZWZhdWx0VmFsdWUpO1xuICAgICAgICAgICAgdGVtcERhdGUuc2V0RGF0ZSgxNSk7XG4gICAgICAgICAgICB0ZW1wRGF0ZS5zZXRNb250aCh0ZW1wRGF0ZS5nZXRNb250aCgpICsgMyAqIGkpO1xuICAgICAgICAgICAgdGVtcFZhbHVlID0gdGhpcy5nZXRVVENUaW1lc3RhbXAodGVtcERhdGUpO1xuICAgICAgICAgICAgdG9fcmV0dXJuLnB1c2goe1xuICAgICAgICAgICAgICAgIHZhbHVlOiB0ZW1wVmFsdWUgLyAxMDAwLFxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLmdldFF1YXJ0ZXJMYWJlbCh0ZW1wVmFsdWUpLFxuICAgICAgICAgICAgICAgIGlzU2VsZWN0ZWQ6IGkgPT09IDAsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRvX3JldHVybjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFF1YXJ0ZXJMYWJlbCh0aW1lVmFsdWUpIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRpbWVWYWx1ZSk7XG4gICAgICAgIHJldHVybiAnUScgKyBNYXRoLmZsb29yKGRhdGUuZ2V0TW9udGgoKSAvIDMgKyAxKSArICcgJyArIGRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFVUQ1RpbWVzdGFtcChkYXRlKSB7XG4gICAgICAgIGNvbnN0IG1vbnRoID0gTWF0aC5mbG9vcihkYXRlLmdldE1vbnRoKCkgLyAzKSAqIDM7XG4gICAgICAgIHJldHVybiBEYXRlLlVUQyhkYXRlLmdldEZ1bGxZZWFyKCksIG1vbnRoLCAxLCAxMiwgMCwgMCwgMCk7XG4gICAgfVxuXG4gICAgZGF0ZUZpbHRlcihxdWFydGVyKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IHF1YXJ0ZXJEYXRlID0gbW9tZW50LnVuaXgocXVhcnRlci52YWx1ZSk7XG4gICAgICAgIHJldHVybiAhdGhpcy5sb2NrZWREYXRlLnNvbWUoKHRpbWVzdGFtcCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbG9ja0RhdGUgPSBtb21lbnQudW5peCh0aW1lc3RhbXApO1xuICAgICAgICAgICAgaWYgKGxvY2tEYXRlLnllYXIoKSA9PT0gcXVhcnRlckRhdGUueWVhcigpICYmIGxvY2tEYXRlLnF1YXJ0ZXIoKSA9PT0gcXVhcnRlckRhdGUucXVhcnRlcigpKSB7XG4gICAgICAgICAgICAgICAgcXVhcnRlci5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRhZy13cmFwcGVyIHF1YXJ0ZXItdGFnXCI+XG4gICAgPHAgY2xhc3M9XCJ0YWdfX2xhYmVsXCI+e3sgbmFtZSB9fTwvcD5cbiAgICA8ZHItc2VsZWN0XG4gICAgICAgIGNsYXNzPVwicXVhcnRlci10YWdfX2xpc3RcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdFwiXG4gICAgICAgIGJpbmRMYWJlbD1cImxhYmVsXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFZhbHVlXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW2l0ZW1zXT1cInF1YXJ0ZXJzXCJcbiAgICAgICAgZHJvcGRvd25DbGFzcz1cInF1YXJ0ZXItdGFnX19zZWxlY3QgZHItdGFnX19zZWxlY3RcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJjaG9zZW5UYWdIYW5kbGVyKCRldmVudClcIj48L2RyLXNlbGVjdD5cbjwvZGl2PlxuIl19
@@ -0,0 +1,102 @@
1
+ import { Component, HostBinding, Input } from '@angular/core';
2
+ import { AnyTagComponent } from '../any-tag.component';
3
+ import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';
4
+ import { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';
5
+ import moment from 'moment';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/forms";
8
+ import * as i2 from "../../dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component";
9
+ const WEEK_FORMATS = {
10
+ parse: {
11
+ dateInput: 'WW-YYYY',
12
+ },
13
+ display: {
14
+ dateInput: '[Week] WW, YYYY',
15
+ monthYearLabel: 'MMMM YYYY',
16
+ dateA11yLabel: 'LL',
17
+ monthYearA11yLabel: 'MMMM YYYY',
18
+ },
19
+ };
20
+ export class WeekTagComponent extends AnyTagComponent {
21
+ get isLocked() {
22
+ return this.date ? !this.dateFilter(moment.unix(this.date)) : false;
23
+ }
24
+ constructor() {
25
+ super();
26
+ this.lockedDate = [];
27
+ }
28
+ ngOnInit() {
29
+ this.initName();
30
+ const timestamp = this.defaultValue || moment().unix();
31
+ this.date = timestamp;
32
+ this.dateObj.date = timestamp;
33
+ this.chosenTagHandler(timestamp);
34
+ }
35
+ initName() {
36
+ if (!this.name) {
37
+ this.name = 'Week';
38
+ }
39
+ }
40
+ dateFilter(date) {
41
+ const week = date.week();
42
+ const year = date.year();
43
+ return !this.lockedDate.some((timestamp) => {
44
+ const lockDate = moment.unix(timestamp);
45
+ return lockDate.week() === week && lockDate.year() === year;
46
+ });
47
+ }
48
+ chosenTagHandler(value) {
49
+ const resultDate = moment.unix(value).utc().weekday(1);
50
+ const resultTag = {
51
+ name: this.name,
52
+ value: resultDate.unix(),
53
+ label: this.getWeekLabel(resultDate),
54
+ locked: !this.dateFilter(resultDate),
55
+ };
56
+ console.log('resultTag', resultTag);
57
+ this.dateChange.emit(resultTag);
58
+ }
59
+ getWeekLabel(moment) {
60
+ return `W${moment.week()} ${moment.year()}`;
61
+ }
62
+ /** @nocollapse */ static { this.ɵfac = function WeekTagComponent_Factory(t) { return new (t || WeekTagComponent)(); }; }
63
+ /** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: WeekTagComponent, selectors: [["week-tag"]], hostVars: 2, hostBindings: function WeekTagComponent_HostBindings(rf, ctx) { if (rf & 2) {
64
+ i0.ɵɵclassProp("locked", ctx.isLocked);
65
+ } }, inputs: { lockedDate: "lockedDate" }, features: [i0.ɵɵProvidersFeature([
66
+ {
67
+ provide: DateAdapter,
68
+ useClass: MomentDateAdapter,
69
+ deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
70
+ },
71
+ { provide: MAT_DATE_FORMATS, useValue: WEEK_FORMATS },
72
+ ]), i0.ɵɵInheritDefinitionFeature], decls: 4, vars: 4, consts: [[1, "tag-wrapper"], [1, "tag__label"], ["format", "week", 3, "ngModel", "disabled", "datepickerFilter", "ngModelChange"]], template: function WeekTagComponent_Template(rf, ctx) { if (rf & 1) {
73
+ i0.ɵɵelementStart(0, "div", 0)(1, "p", 1);
74
+ i0.ɵɵtext(2);
75
+ i0.ɵɵelementEnd();
76
+ i0.ɵɵelementStart(3, "dr-date-picker", 2);
77
+ i0.ɵɵlistener("ngModelChange", function WeekTagComponent_Template_dr_date_picker_ngModelChange_3_listener($event) { return ctx.date = $event; })("ngModelChange", function WeekTagComponent_Template_dr_date_picker_ngModelChange_3_listener($event) { return ctx.chosenTagHandler($event); });
78
+ i0.ɵɵelementEnd()();
79
+ } if (rf & 2) {
80
+ i0.ɵɵadvance(2);
81
+ i0.ɵɵtextInterpolate(ctx.name);
82
+ i0.ɵɵadvance(1);
83
+ i0.ɵɵproperty("ngModel", ctx.date)("disabled", ctx.disabled)("datepickerFilter", ctx.dateFilter.bind(ctx));
84
+ } }, dependencies: [i1.NgControlStatus, i1.NgModel, i2.DrDatePickerComponent], styles: [".locked[_nghost-%COMP%] > .tag-wrapper[_ngcontent-%COMP%] > dr-date-picker[_ngcontent-%COMP%]{opacity:.4}.tag__label[_ngcontent-%COMP%]{margin:0 0 4px;color:#0c142b;font-size:14px;font-weight:400;line-height:22px}"] }); }
85
+ }
86
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WeekTagComponent, [{
87
+ type: Component,
88
+ args: [{ selector: 'week-tag', providers: [
89
+ {
90
+ provide: DateAdapter,
91
+ useClass: MomentDateAdapter,
92
+ deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
93
+ },
94
+ { provide: MAT_DATE_FORMATS, useValue: WEEK_FORMATS },
95
+ ], template: "<div class=\"tag-wrapper\">\n <p class=\"tag__label\">{{ name }}</p>\n <dr-date-picker\n format=\"week\"\n [(ngModel)]=\"date\"\n [disabled]=\"disabled\"\n [datepickerFilter]=\"dateFilter.bind(this)\"\n (ngModelChange)=\"chosenTagHandler($event)\"></dr-date-picker>\n</div>\n", styles: [":host.locked>.tag-wrapper>dr-date-picker{opacity:.4}.tag__label{margin:0 0 4px;color:#0c142b;font-size:14px;font-weight:400;line-height:22px}\n"] }]
96
+ }], function () { return []; }, { isLocked: [{
97
+ type: HostBinding,
98
+ args: ['class.locked']
99
+ }], lockedDate: [{
100
+ type: Input
101
+ }] }); })();
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vlay10YWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZGF0ZS10YWdzL3dlZWstdGFnL3dlZWstdGFnLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RhdGUtdGFncy93ZWVrLXRhZy93ZWVrLXRhZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEYsT0FBTyxFQUFFLCtCQUErQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEcsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDOzs7O0FBRTVCLE1BQU0sWUFBWSxHQUFHO0lBQ2pCLEtBQUssRUFBRTtRQUNILFNBQVMsRUFBRSxTQUFTO0tBQ3ZCO0lBQ0QsT0FBTyxFQUFFO1FBQ0wsU0FBUyxFQUFFLGlCQUFpQjtRQUM1QixjQUFjLEVBQUUsV0FBVztRQUMzQixhQUFhLEVBQUUsSUFBSTtRQUNuQixrQkFBa0IsRUFBRSxXQUFXO0tBQ2xDO0NBQ0osQ0FBQztBQWVGLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxlQUFlO0lBQ2pELElBQ0ksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtB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QUNELEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUU7aUJBQ3hEO3NDQUlHLFFBQVE7a0JBRFgsV0FBVzttQkFBQyxjQUFjO1lBS2xCLFVBQVU7a0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJRGF0ZVRhZyB9IGZyb20gJy4uLy4uL21vZGVscy9zZXJ2ZXJUYWdzJztcbmltcG9ydCB7IEFueVRhZ0NvbXBvbmVudCB9IGZyb20gJy4uL2FueS10YWcuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVBZGFwdGVyLCBNQVRfREFURV9GT1JNQVRTLCBNQVRfREFURV9MT0NBTEUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1BVF9NT01FTlRfREFURV9BREFQVEVSX09QVElPTlMsIE1vbWVudERhdGVBZGFwdGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwtbW9tZW50LWFkYXB0ZXInO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuXG5jb25zdCBXRUVLX0ZPUk1BVFMgPSB7XG4gICAgcGFyc2U6IHtcbiAgICAgICAgZGF0ZUlucHV0OiAnV1ctWVlZWScsXG4gICAgfSxcbiAgICBkaXNwbGF5OiB7XG4gICAgICAgIGRhdGVJbnB1dDogJ1tXZWVrXSBXVywgWVlZWScsXG4gICAgICAgIG1vbnRoWWVhckxhYmVsOiAnTU1NTSBZWVlZJyxcbiAgICAgICAgZGF0ZUExMXlMYWJlbDogJ0xMJyxcbiAgICAgICAgbW9udGhZZWFyQTExeUxhYmVsOiAnTU1NTSBZWVlZJyxcbiAgICB9LFxufTtcblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGVVcmw6ICd3ZWVrLXRhZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc2VsZWN0b3I6ICd3ZWVrLXRhZycsXG4gICAgc3R5bGVVcmxzOiBbJy4vd2Vlay10YWcuY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRGF0ZUFkYXB0ZXIsXG4gICAgICAgICAgICB1c2VDbGFzczogTW9tZW50RGF0ZUFkYXB0ZXIsXG4gICAgICAgICAgICBkZXBzOiBbTUFUX0RBVEVfTE9DQUxFLCBNQVRfTU9NRU5UX0RBVEVfQURBUFRFUl9PUFRJT05TXSxcbiAgICAgICAgfSxcbiAgICAgICAgeyBwcm92aWRlOiBNQVRfREFURV9GT1JNQVRTLCB1c2VWYWx1ZTogV0VFS19GT1JNQVRTIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgV2Vla1RhZ0NvbXBvbmVudCBleHRlbmRzIEFueVRhZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5sb2NrZWQnKVxuICAgIGdldCBpc0xvY2tlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0ZSA/ICF0aGlzLmRhdGVGaWx0ZXIobW9tZW50LnVuaXgodGhpcy5kYXRlKSkgOiBmYWxzZTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBsb2NrZWREYXRlOiBhbnlbXSA9IFtdO1xuXG4gICAgZGF0ZTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmluaXROYW1lKCk7XG4gICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IHRoaXMuZGVmYXVsdFZhbHVlIHx8IG1vbWVudCgpLnVuaXgoKTtcbiAgICAgICAgdGhpcy5kYXRlID0gdGltZXN0YW1wO1xuICAgICAgICB0aGlzLmRhdGVPYmouZGF0ZSA9IHRpbWVzdGFtcDtcbiAgICAgICAgdGhpcy5jaG9zZW5UYWdIYW5kbGVyKHRpbWVzdGFtcCk7XG4gICAgfVxuXG4gICAgaW5pdE5hbWUoKSB7XG4gICAgICAgIGlmICghdGhpcy5uYW1lKSB7XG4gICAgICAgICAgICB0aGlzLm5hbWUgPSAnV2Vlayc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkYXRlRmlsdGVyKGRhdGUpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3Qgd2VlayA9IGRhdGUud2VlaygpO1xuICAgICAgICBjb25zdCB5ZWFyID0gZGF0ZS55ZWFyKCk7XG5cbiAgICAgICAgcmV0dXJuICF0aGlzLmxvY2tlZERhdGUuc29tZSgodGltZXN0YW1wKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsb2NrRGF0ZSA9IG1vbWVudC51bml4KHRpbWVzdGFtcCk7XG4gICAgICAgICAgICByZXR1cm4gbG9ja0RhdGUud2VlaygpID09PSB3ZWVrICYmIGxvY2tEYXRlLnllYXIoKSA9PT0geWVhcjtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY2hvc2VuVGFnSGFuZGxlcih2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdERhdGUgPSBtb21lbnQudW5peCh2YWx1ZSkudXRjKCkud2Vla2RheSgxKTtcbiAgICAgICAgY29uc3QgcmVzdWx0VGFnOiBJRGF0ZVRhZyA9IHtcbiAgICAgICAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgICAgICAgIHZhbHVlOiByZXN1bHREYXRlLnVuaXgoKSxcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLmdldFdlZWtMYWJlbChyZXN1bHREYXRlKSxcbiAgICAgICAgICAgIGxvY2tlZDogIXRoaXMuZGF0ZUZpbHRlcihyZXN1bHREYXRlKSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc29sZS5sb2coJ3Jlc3VsdFRhZycsIHJlc3VsdFRhZyk7XG4gICAgICAgIHRoaXMuZGF0ZUNoYW5nZS5lbWl0KHJlc3VsdFRhZyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRXZWVrTGFiZWwobW9tZW50KSB7XG4gICAgICAgIHJldHVybiBgVyR7bW9tZW50LndlZWsoKX0gJHttb21lbnQueWVhcigpfWA7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRhZy13cmFwcGVyXCI+XG4gICAgPHAgY2xhc3M9XCJ0YWdfX2xhYmVsXCI+e3sgbmFtZSB9fTwvcD5cbiAgICA8ZHItZGF0ZS1waWNrZXJcbiAgICAgICAgZm9ybWF0PVwid2Vla1wiXG4gICAgICAgIFsobmdNb2RlbCldPVwiZGF0ZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFtkYXRlcGlja2VyRmlsdGVyXT1cImRhdGVGaWx0ZXIuYmluZCh0aGlzKVwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNob3NlblRhZ0hhbmRsZXIoJGV2ZW50KVwiPjwvZHItZGF0ZS1waWNrZXI+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,96 @@
1
+ import { Component, HostBinding, Input } from '@angular/core';
2
+ import { AnyTagComponent } from '../any-tag.component';
3
+ import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';
4
+ import { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';
5
+ import moment from 'moment';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/forms";
8
+ import * as i2 from "../../dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component";
9
+ const YEAR_FORMATS = {
10
+ parse: {
11
+ dateInput: 'YYYY',
12
+ },
13
+ display: {
14
+ dateInput: 'YYYY',
15
+ monthYearLabel: 'MMMM YYYY',
16
+ dateA11yLabel: 'LL',
17
+ monthYearA11yLabel: 'MMMM YYYY',
18
+ },
19
+ };
20
+ export class YearTagComponent extends AnyTagComponent {
21
+ get isLocked() {
22
+ return this.date ? !this.dateFilter(moment.unix(this.date)) : false;
23
+ }
24
+ constructor() {
25
+ super();
26
+ this.lockedDate = [];
27
+ }
28
+ initDate() {
29
+ this.date = this.defaultValue || moment().unix();
30
+ this.dateObj.date = this.date;
31
+ }
32
+ initName() {
33
+ if (!this.name) {
34
+ this.name = 'Year';
35
+ }
36
+ }
37
+ chosenTagHandler(value) {
38
+ const resultDate = moment.unix(value);
39
+ resultDate.hour(12);
40
+ const resultTag = {
41
+ name: this.name,
42
+ value: resultDate.unix(),
43
+ label: resultDate.format('YYYY'),
44
+ locked: !this.dateFilter(resultDate),
45
+ };
46
+ console.log('resultTag', resultTag);
47
+ this.dateChange.emit(resultTag);
48
+ }
49
+ dateFilter(date) {
50
+ const calendarDateYear = date.year();
51
+ return !this.lockedDate.some((timestamp) => {
52
+ const lockDate = moment.unix(timestamp);
53
+ return lockDate.year() === calendarDateYear;
54
+ });
55
+ }
56
+ /** @nocollapse */ static { this.ɵfac = function YearTagComponent_Factory(t) { return new (t || YearTagComponent)(); }; }
57
+ /** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: YearTagComponent, selectors: [["year-tag"]], hostVars: 2, hostBindings: function YearTagComponent_HostBindings(rf, ctx) { if (rf & 2) {
58
+ i0.ɵɵclassProp("locked", ctx.isLocked);
59
+ } }, inputs: { lockedDate: "lockedDate" }, features: [i0.ɵɵProvidersFeature([
60
+ {
61
+ provide: DateAdapter,
62
+ useClass: MomentDateAdapter,
63
+ deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
64
+ },
65
+ { provide: MAT_DATE_FORMATS, useValue: YEAR_FORMATS },
66
+ ]), i0.ɵɵInheritDefinitionFeature], decls: 4, vars: 4, consts: [[1, "tag-wrapper"], [1, "tag__label"], ["format", "year", 3, "ngModel", "disabled", "datepickerFilter", "ngModelChange"]], template: function YearTagComponent_Template(rf, ctx) { if (rf & 1) {
67
+ i0.ɵɵelementStart(0, "div", 0)(1, "p", 1);
68
+ i0.ɵɵtext(2);
69
+ i0.ɵɵelementEnd();
70
+ i0.ɵɵelementStart(3, "dr-date-picker", 2);
71
+ i0.ɵɵlistener("ngModelChange", function YearTagComponent_Template_dr_date_picker_ngModelChange_3_listener($event) { return ctx.date = $event; })("ngModelChange", function YearTagComponent_Template_dr_date_picker_ngModelChange_3_listener($event) { return ctx.chosenTagHandler($event); });
72
+ i0.ɵɵelementEnd()();
73
+ } if (rf & 2) {
74
+ i0.ɵɵadvance(2);
75
+ i0.ɵɵtextInterpolate(ctx.name);
76
+ i0.ɵɵadvance(1);
77
+ i0.ɵɵproperty("ngModel", ctx.date)("disabled", ctx.disabled)("datepickerFilter", ctx.dateFilter.bind(ctx));
78
+ } }, dependencies: [i1.NgControlStatus, i1.NgModel, i2.DrDatePickerComponent], styles: [".locked[_nghost-%COMP%] > .tag-wrapper[_ngcontent-%COMP%] > dr-date-picker[_ngcontent-%COMP%]{opacity:.4}.tag__label[_ngcontent-%COMP%]{margin:0 0 4px;color:#0c142b;font-size:14px;font-weight:400;line-height:22px}"] }); }
79
+ }
80
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(YearTagComponent, [{
81
+ type: Component,
82
+ args: [{ selector: 'year-tag', providers: [
83
+ {
84
+ provide: DateAdapter,
85
+ useClass: MomentDateAdapter,
86
+ deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
87
+ },
88
+ { provide: MAT_DATE_FORMATS, useValue: YEAR_FORMATS },
89
+ ], template: "<div class=\"tag-wrapper\">\n <p class=\"tag__label\">{{ name }}</p>\n <dr-date-picker\n format=\"year\"\n [(ngModel)]=\"date\"\n [disabled]=\"disabled\"\n [datepickerFilter]=\"dateFilter.bind(this)\"\n (ngModelChange)=\"chosenTagHandler($event)\"></dr-date-picker>\n</div>\n", styles: [":host.locked>.tag-wrapper>dr-date-picker{opacity:.4}.tag__label{margin:0 0 4px;color:#0c142b;font-size:14px;font-weight:400;line-height:22px}\n"] }]
90
+ }], function () { return []; }, { isLocked: [{
91
+ type: HostBinding,
92
+ args: ['class.locked']
93
+ }], lockedDate: [{
94
+ type: Input
95
+ }] }); })();
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWVhci10YWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZGF0ZS10YWdzL3llYXItdGFnL3llYXItdGFnLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RhdGUtdGFncy95ZWFyLXRhZy95ZWFyLXRhZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEYsT0FBTyxFQUFFLCtCQUErQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEcsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDOzs7O0FBRTVCLE1BQU0sWUFBWSxHQUFHO0lBQ2pCLEtBQUssRUFBRTtRQUNILFNBQVMsRUFBRSxNQUFNO0tBQ3BCO0lBQ0QsT0FBTyxFQUFFO1FBQ0wsU0FBUyxFQUFFLE1BQU07UUFDakIsY0FBYyxFQUFFLFdBQVc7UUFDM0IsYUFBYSxFQUFFLElBQUk7UUFDbkIsa0JBQWtCLEVBQUUsV0FBVztLQUNsQztDQUNKLENBQUM7QUFlRixNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsZUFBZTtJQUNqRCxJQUNJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDeEUsQ0FBQztJQU1EO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUFMSCxlQUFVLEdBQVUsRUFBRSxDQUFDO0lBTWhDLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxJQUFJLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2pELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbEMsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNaLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDO1NBQ3RCO0lBQ0wsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQWE7UUFDMUIsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXBCLE1BQU0sU0FBUyxHQUFhO1lBQ3hCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLEtBQUssRUFBRSxVQUFVLENBQUMsSUFBSSxFQUFFO1lBQ3hCLEtBQUssRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztZQUNoQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQztTQUN2QyxDQUFDO1FBQ0YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFJO1FBQ1gsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFckMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDdkMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN4QyxPQUFPLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxnQkFBZ0IsQ0FBQztRQUNoRCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7b0dBOUNRLGdCQUFnQjttR0FBaEIsZ0JBQWdCOztvRkFUZDtnQkFDUDtvQkFDSSxPQUFPLEVBQUUsV0FBVztvQkFDcEIsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsSUFBSSxFQUFFLENBQUMsZUFBZSxFQUFFLCtCQUErQixDQUFDO2lCQUMzRDtnQkFDRCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFO2FBQ3hEO1lDOUJMLDhCQUF5QixXQUFBO1lBQ0MsWUFBVTtZQUFBLGlCQUFJO1lBQ3BDLHlDQUsrQztZQUgzQyxnSkFBa0IsOEdBR0QsNEJBQXdCLElBSHZCO1lBR3lCLGlCQUFpQixFQUFBOztZQU4xQyxlQUFVO1lBQVYsOEJBQVU7WUFHNUIsZUFBa0I7WUFBbEIsa0NBQWtCLDBCQUFBLDhDQUFBOzs7dUZENEJiLGdCQUFnQjtjQWI1QixTQUFTOzJCQUVJLFVBQVUsYUFFVDtvQkFDUDt3QkFDSSxPQUFPLEVBQUUsV0FBVzt3QkFDcEIsUUFBUSxFQUFFLGlCQUFpQjt3QkFDM0IsSUFBSSxFQUFFLENBQUMsZUFBZSxFQUFFLCtCQUErQixDQUFDO3FCQUMzRDtvQkFDRCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFO2lCQUN4RDtzQ0FJRyxRQUFRO2tCQURYLFdBQVc7bUJBQUMsY0FBYztZQUtsQixVQUFVO2tCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElEYXRlVGFnIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlcnZlclRhZ3MnO1xuaW1wb3J0IHsgQW55VGFnQ29tcG9uZW50IH0gZnJvbSAnLi4vYW55LXRhZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIsIE1BVF9EQVRFX0ZPUk1BVFMsIE1BVF9EQVRFX0xPQ0FMRSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTUFUX01PTUVOVF9EQVRFX0FEQVBURVJfT1BUSU9OUywgTW9tZW50RGF0ZUFkYXB0ZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC1tb21lbnQtYWRhcHRlcic7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5cbmNvbnN0IFlFQVJfRk9STUFUUyA9IHtcbiAgICBwYXJzZToge1xuICAgICAgICBkYXRlSW5wdXQ6ICdZWVlZJyxcbiAgICB9LFxuICAgIGRpc3BsYXk6IHtcbiAgICAgICAgZGF0ZUlucHV0OiAnWVlZWScsXG4gICAgICAgIG1vbnRoWWVhckxhYmVsOiAnTU1NTSBZWVlZJyxcbiAgICAgICAgZGF0ZUExMXlMYWJlbDogJ0xMJyxcbiAgICAgICAgbW9udGhZZWFyQTExeUxhYmVsOiAnTU1NTSBZWVlZJyxcbiAgICB9LFxufTtcblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGVVcmw6ICd5ZWFyLXRhZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc2VsZWN0b3I6ICd5ZWFyLXRhZycsXG4gICAgc3R5bGVVcmxzOiBbJy4veWVhci10YWcuY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRGF0ZUFkYXB0ZXIsXG4gICAgICAgICAgICB1c2VDbGFzczogTW9tZW50RGF0ZUFkYXB0ZXIsXG4gICAgICAgICAgICBkZXBzOiBbTUFUX0RBVEVfTE9DQUxFLCBNQVRfTU9NRU5UX0RBVEVfQURBUFRFUl9PUFRJT05TXSxcbiAgICAgICAgfSxcbiAgICAgICAgeyBwcm92aWRlOiBNQVRfREFURV9GT1JNQVRTLCB1c2VWYWx1ZTogWUVBUl9GT1JNQVRTIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgWWVhclRhZ0NvbXBvbmVudCBleHRlbmRzIEFueVRhZ0NvbXBvbmVudCB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5sb2NrZWQnKVxuICAgIGdldCBpc0xvY2tlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0ZSA/ICF0aGlzLmRhdGVGaWx0ZXIobW9tZW50LnVuaXgodGhpcy5kYXRlKSkgOiBmYWxzZTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBsb2NrZWREYXRlOiBhbnlbXSA9IFtdO1xuXG4gICAgZGF0ZTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIGluaXREYXRlKCkge1xuICAgICAgICB0aGlzLmRhdGUgPSB0aGlzLmRlZmF1bHRWYWx1ZSB8fCBtb21lbnQoKS51bml4KCk7XG4gICAgICAgIHRoaXMuZGF0ZU9iai5kYXRlID0gdGhpcy5kYXRlO1xuICAgIH1cblxuICAgIGluaXROYW1lKCkge1xuICAgICAgICBpZiAoIXRoaXMubmFtZSkge1xuICAgICAgICAgICAgdGhpcy5uYW1lID0gJ1llYXInO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2hvc2VuVGFnSGFuZGxlcih2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdERhdGUgPSBtb21lbnQudW5peCh2YWx1ZSk7XG4gICAgICAgIHJlc3VsdERhdGUuaG91cigxMik7XG5cbiAgICAgICAgY29uc3QgcmVzdWx0VGFnOiBJRGF0ZVRhZyA9IHtcbiAgICAgICAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgICAgICAgIHZhbHVlOiByZXN1bHREYXRlLnVuaXgoKSxcbiAgICAgICAgICAgIGxhYmVsOiByZXN1bHREYXRlLmZvcm1hdCgnWVlZWScpLFxuICAgICAgICAgICAgbG9ja2VkOiAhdGhpcy5kYXRlRmlsdGVyKHJlc3VsdERhdGUpLFxuICAgICAgICB9O1xuICAgICAgICBjb25zb2xlLmxvZygncmVzdWx0VGFnJywgcmVzdWx0VGFnKTtcbiAgICAgICAgdGhpcy5kYXRlQ2hhbmdlLmVtaXQocmVzdWx0VGFnKTtcbiAgICB9XG5cbiAgICBkYXRlRmlsdGVyKGRhdGUpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgY2FsZW5kYXJEYXRlWWVhciA9IGRhdGUueWVhcigpO1xuXG4gICAgICAgIHJldHVybiAhdGhpcy5sb2NrZWREYXRlLnNvbWUoKHRpbWVzdGFtcCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbG9ja0RhdGUgPSBtb21lbnQudW5peCh0aW1lc3RhbXApO1xuICAgICAgICAgICAgcmV0dXJuIGxvY2tEYXRlLnllYXIoKSA9PT0gY2FsZW5kYXJEYXRlWWVhcjtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRhZy13cmFwcGVyXCI+XG4gICAgPHAgY2xhc3M9XCJ0YWdfX2xhYmVsXCI+e3sgbmFtZSB9fTwvcD5cbiAgICA8ZHItZGF0ZS1waWNrZXJcbiAgICAgICAgZm9ybWF0PVwieWVhclwiXG4gICAgICAgIFsobmdNb2RlbCldPVwiZGF0ZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFtkYXRlcGlja2VyRmlsdGVyXT1cImRhdGVGaWx0ZXIuYmluZCh0aGlzKVwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNob3NlblRhZ0hhbmRsZXIoJGV2ZW50KVwiPjwvZHItZGF0ZS1waWNrZXI+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,92 @@
1
+ import { Directive, ElementRef, EventEmitter, Inject, Input, Output, } from '@angular/core';
2
+ import { DOCUMENT } from '@angular/common';
3
+ import * as i0 from "@angular/core";
4
+ export class ClickOutsideDirective {
5
+ constructor(_document /*: HTMLDocument*/, _el) {
6
+ this._document = _document;
7
+ this._el = _el;
8
+ this.attachOutsideOnClick = false;
9
+ this.exclude = '';
10
+ this.clickOutside = new EventEmitter();
11
+ this._nodesExcluded = [];
12
+ this._initOnClickBody = this._initOnClickBody.bind(this);
13
+ this._onClickBody = this._onClickBody.bind(this);
14
+ }
15
+ ngOnInit() {
16
+ this._init();
17
+ }
18
+ ngOnDestroy() {
19
+ if (this.attachOutsideOnClick) {
20
+ this._el.nativeElement.removeEventListener('click', this._initOnClickBody);
21
+ }
22
+ this._document.body.removeEventListener('click', this._onClickBody);
23
+ }
24
+ ngOnChanges(changes) {
25
+ if (changes['attachOutsideOnClick'] || changes['exclude']) {
26
+ this._init();
27
+ }
28
+ }
29
+ _init() {
30
+ if (this.exclude) {
31
+ this.exclude.split(',').forEach((selector) => {
32
+ if (selector) {
33
+ try {
34
+ const node = this._document.querySelector(selector.trim());
35
+ if (node) {
36
+ this._nodesExcluded.push(node);
37
+ }
38
+ }
39
+ catch (err) {
40
+ if (window.console) {
41
+ window.console.error('[ng2-click-outside] Check your exclude selector syntax.', err);
42
+ }
43
+ }
44
+ }
45
+ });
46
+ }
47
+ if (this.attachOutsideOnClick) {
48
+ this._el.nativeElement.addEventListener('click', this._initOnClickBody);
49
+ }
50
+ else {
51
+ this._initOnClickBody();
52
+ }
53
+ }
54
+ /** @internal */
55
+ _initOnClickBody() {
56
+ this._document.body.addEventListener('click', this._onClickBody);
57
+ }
58
+ /** @internal */
59
+ _onClickBody(e) {
60
+ if (!this._el.nativeElement.contains(e.target) && !this._shouldExclude(e.target)) {
61
+ this.clickOutside.emit(e);
62
+ if (this.attachOutsideOnClick) {
63
+ this._document.body.removeEventListener('click', this._onClickBody);
64
+ }
65
+ }
66
+ }
67
+ /** @internal */
68
+ _shouldExclude(target) {
69
+ for (let i = 0; i < this._nodesExcluded.length; i++) {
70
+ if (this._nodesExcluded[i].contains(target)) {
71
+ return true;
72
+ }
73
+ }
74
+ return false;
75
+ }
76
+ /** @nocollapse */ static { this.ɵfac = function ClickOutsideDirective_Factory(t) { return new (t || ClickOutsideDirective)(i0.ɵɵdirectiveInject(DOCUMENT), i0.ɵɵdirectiveInject(i0.ElementRef)); }; }
77
+ /** @nocollapse */ static { this.ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: ClickOutsideDirective, selectors: [["", "clickOutside", ""]], inputs: { attachOutsideOnClick: "attachOutsideOnClick", exclude: "exclude" }, outputs: { clickOutside: "clickOutside" }, features: [i0.ɵɵNgOnChangesFeature] }); }
78
+ }
79
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ClickOutsideDirective, [{
80
+ type: Directive,
81
+ args: [{ selector: '[clickOutside]' }]
82
+ }], function () { return [{ type: undefined, decorators: [{
83
+ type: Inject,
84
+ args: [DOCUMENT]
85
+ }] }, { type: i0.ElementRef }]; }, { attachOutsideOnClick: [{
86
+ type: Input
87
+ }], exclude: [{
88
+ type: Input
89
+ }], clickOutside: [{
90
+ type: Output
91
+ }] }); })();
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kaXJlY3RpdmVzL2NsaWNrLW91dHNpZGUvY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBSUwsTUFBTSxHQUVULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFHM0MsTUFBTSxPQUFPLHFCQUFxQjtJQVE5QixZQUM4QixTQUFTLENBQUMsa0JBQWtCLEVBQzlDLEdBQWU7UUFERyxjQUFTLEdBQVQsU0FBUyxDQUFBO1FBQzNCLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFUbEIseUJBQW9CLEdBQVksS0FBSyxDQUFDO1FBQ3RDLFlBQU8sR0FBVyxFQUFFLENBQUM7UUFFcEIsaUJBQVksR0FBd0IsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQUVoRSxtQkFBYyxHQUF1QixFQUFFLENBQUM7UUFNNUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUM5RTtRQUVELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixJQUFJLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUN2RCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDaEI7SUFDTCxDQUFDO0lBRU8sS0FBSztRQUNULElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUN6QyxJQUFJLFFBQVEsRUFBRTtvQkFDVixJQUFJO3dCQUNBLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO3dCQUMzRCxJQUFJLElBQUksRUFBRTs0QkFDTixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzt5QkFDbEM7cUJBQ0o7b0JBQUMsT0FBTyxHQUFHLEVBQUU7d0JBQ1YsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFOzRCQUNoQixNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyx5REFBeUQsRUFBRSxHQUFHLENBQUMsQ0FBQzt5QkFDeEY7cUJBQ0o7aUJBQ0o7WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNOO1FBRUQsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQzNFO2FBQU07WUFDSCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztTQUMzQjtJQUNMLENBQUM7SUFFRCxnQkFBZ0I7SUFDUixnQkFBZ0I7UUFDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsZ0JBQWdCO0lBQ1IsWUFBWSxDQUFDLENBQVE7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM5RSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUUxQixJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtnQkFDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUN2RTtTQUNKO0lBQ0wsQ0FBQztJQUVELGdCQUFnQjtJQUNSLGNBQWMsQ0FBQyxNQUFNO1FBQ3pCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNqRCxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUN6QyxPQUFPLElBQUksQ0FBQzthQUNmO1NBQ0o7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO3lHQXBGUSxxQkFBcUIsdUJBU2xCLFFBQVE7bUdBVFgscUJBQXFCOzt1RkFBckIscUJBQXFCO2NBRGpDLFNBQVM7ZUFBQyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRTs7c0JBVWhDLE1BQU07dUJBQUMsUUFBUTtpREFSWCxvQkFBb0I7a0JBQTVCLEtBQUs7WUFDRyxPQUFPO2tCQUFmLEtBQUs7WUFFSSxZQUFZO2tCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW2NsaWNrT3V0c2lkZV0nIH0pXG5leHBvcnQgY2xhc3MgQ2xpY2tPdXRzaWRlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KCkgYXR0YWNoT3V0c2lkZU9uQ2xpY2s6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBleGNsdWRlOiBzdHJpbmcgPSAnJztcblxuICAgIEBPdXRwdXQoKSBjbGlja091dHNpZGU6IEV2ZW50RW1pdHRlcjxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuXG4gICAgcHJpdmF0ZSBfbm9kZXNFeGNsdWRlZDogQXJyYXk8SFRNTEVsZW1lbnQ+ID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBfZG9jdW1lbnQgLyo6IEhUTUxEb2N1bWVudCovLFxuICAgICAgICBwcml2YXRlIF9lbDogRWxlbWVudFJlZixcbiAgICApIHtcbiAgICAgICAgdGhpcy5faW5pdE9uQ2xpY2tCb2R5ID0gdGhpcy5faW5pdE9uQ2xpY2tCb2R5LmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuX29uQ2xpY2tCb2R5ID0gdGhpcy5fb25DbGlja0JvZHkuYmluZCh0aGlzKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5faW5pdCgpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICBpZiAodGhpcy5hdHRhY2hPdXRzaWRlT25DbGljaykge1xuICAgICAgICAgICAgdGhpcy5fZWwubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuX2luaXRPbkNsaWNrQm9keSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9kb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5fb25DbGlja0JvZHkpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKGNoYW5nZXNbJ2F0dGFjaE91dHNpZGVPbkNsaWNrJ10gfHwgY2hhbmdlc1snZXhjbHVkZSddKSB7XG4gICAgICAgICAgICB0aGlzLl9pbml0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9pbml0KCkge1xuICAgICAgICBpZiAodGhpcy5leGNsdWRlKSB7XG4gICAgICAgICAgICB0aGlzLmV4Y2x1ZGUuc3BsaXQoJywnKS5mb3JFYWNoKChzZWxlY3RvcikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChzZWxlY3Rvcikge1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXMuX2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IudHJpbSgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChub2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbm9kZXNFeGNsdWRlZC5wdXNoKG5vZGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuY29uc29sZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5jb25zb2xlLmVycm9yKCdbbmcyLWNsaWNrLW91dHNpZGVdIENoZWNrIHlvdXIgZXhjbHVkZSBzZWxlY3RvciBzeW50YXguJywgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuYXR0YWNoT3V0c2lkZU9uQ2xpY2spIHtcbiAgICAgICAgICAgIHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLl9pbml0T25DbGlja0JvZHkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5faW5pdE9uQ2xpY2tCb2R5KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGludGVybmFsICovXG4gICAgcHJpdmF0ZSBfaW5pdE9uQ2xpY2tCb2R5KCkge1xuICAgICAgICB0aGlzLl9kb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5fb25DbGlja0JvZHkpO1xuICAgIH1cblxuICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICBwcml2YXRlIF9vbkNsaWNrQm9keShlOiBFdmVudCkge1xuICAgICAgICBpZiAoIXRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZS50YXJnZXQpICYmICF0aGlzLl9zaG91bGRFeGNsdWRlKGUudGFyZ2V0KSkge1xuICAgICAgICAgICAgdGhpcy5jbGlja091dHNpZGUuZW1pdChlKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuYXR0YWNoT3V0c2lkZU9uQ2xpY2spIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5fb25DbGlja0JvZHkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xuICAgIHByaXZhdGUgX3Nob3VsZEV4Y2x1ZGUodGFyZ2V0KTogYm9vbGVhbiB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fbm9kZXNFeGNsdWRlZC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKHRoaXMuX25vZGVzRXhjbHVkZWRbaV0uY29udGFpbnModGFyZ2V0KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,19 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { ClickOutsideDirective } from './click-outside.directive';
3
+ import { CommonModule } from '@angular/common';
4
+ import * as i0 from "@angular/core";
5
+ export class ClickOutsideModule {
6
+ /** @nocollapse */ static { this.ɵfac = function ClickOutsideModule_Factory(t) { return new (t || ClickOutsideModule)(); }; }
7
+ /** @nocollapse */ static { this.ɵmod = /** @pureOrBreakMyCode */ i0.ɵɵdefineNgModule({ type: ClickOutsideModule }); }
8
+ /** @nocollapse */ static { this.ɵinj = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjector({ imports: [CommonModule] }); }
9
+ }
10
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ClickOutsideModule, [{
11
+ type: NgModule,
12
+ args: [{
13
+ imports: [CommonModule],
14
+ declarations: [ClickOutsideDirective],
15
+ exports: [ClickOutsideDirective],
16
+ }]
17
+ }], null, null); })();
18
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(ClickOutsideModule, { declarations: [ClickOutsideDirective], imports: [CommonModule], exports: [ClickOutsideDirective] }); })();
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2stb3V0c2lkZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kaXJlY3RpdmVzL2NsaWNrLW91dHNpZGUvY2xpY2stb3V0c2lkZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBTy9DLE1BQU0sT0FBTyxrQkFBa0I7c0dBQWxCLGtCQUFrQjtrR0FBbEIsa0JBQWtCO3NHQUpqQixZQUFZOzt1RkFJYixrQkFBa0I7Y0FMOUIsUUFBUTtlQUFDO2dCQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztnQkFDdkIsWUFBWSxFQUFFLENBQUMscUJBQXFCLENBQUM7Z0JBQ3JDLE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDO2FBQ25DOzt3RkFDWSxrQkFBa0IsbUJBSFoscUJBQXFCLGFBRDFCLFlBQVksYUFFWixxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2xpY2tPdXRzaWRlRGlyZWN0aXZlIH0gZnJvbSAnLi9jbGljay1vdXRzaWRlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIGRlY2xhcmF0aW9uczogW0NsaWNrT3V0c2lkZURpcmVjdGl2ZV0sXG4gICAgZXhwb3J0czogW0NsaWNrT3V0c2lkZURpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIENsaWNrT3V0c2lkZU1vZHVsZSB7fVxuIl19
@@ -0,0 +1,63 @@
1
+ import { Directive, ElementRef, Renderer2, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export const DR_SHINE_ANIMATION_CLASS = 'dr-shine-effect-animation';
4
+ export class DrShineAnimationDirective {
5
+ constructor(el, renderer) {
6
+ this.el = el;
7
+ this.renderer = renderer;
8
+ this.isShineEnabled = true;
9
+ this.drShineAnimationInterval = 5000; // Default interval in milliseconds
10
+ }
11
+ ngOnChanges(changes) {
12
+ if (changes.isShineEnabled) {
13
+ if (this.isShineEnabled) {
14
+ this.startShine();
15
+ }
16
+ else {
17
+ this.stopShine();
18
+ }
19
+ }
20
+ }
21
+ ngOnDestroy() {
22
+ this.stopShine();
23
+ }
24
+ startShine() {
25
+ this.stopShine(); // Clear any existing intervals
26
+ // Run the shine animation immediately
27
+ this.addShineEffect();
28
+ // Set interval to repeat the shine effect
29
+ this.intervalId = setInterval(() => {
30
+ this.addShineEffect();
31
+ }, this.drShineAnimationInterval);
32
+ }
33
+ stopShine() {
34
+ if (this.intervalId) {
35
+ clearInterval(this.intervalId);
36
+ this.intervalId = null;
37
+ }
38
+ this.renderer.removeClass(this.el.nativeElement, DR_SHINE_ANIMATION_CLASS);
39
+ }
40
+ addShineEffect() {
41
+ // Add the shine class
42
+ this.renderer.addClass(this.el.nativeElement, DR_SHINE_ANIMATION_CLASS);
43
+ // Remove the class after the animation completes
44
+ setTimeout(() => {
45
+ this.renderer.removeClass(this.el.nativeElement, DR_SHINE_ANIMATION_CLASS);
46
+ }, 2000); // Match the animation duration (2s in this case)
47
+ }
48
+ /** @nocollapse */ static { this.ɵfac = function DrShineAnimationDirective_Factory(t) { return new (t || DrShineAnimationDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2)); }; }
49
+ /** @nocollapse */ static { this.ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: DrShineAnimationDirective, selectors: [["", "drShineAnimation", ""]], inputs: { isShineEnabled: ["drShineAnimation", "isShineEnabled"], drShineAnimationInterval: "drShineAnimationInterval" }, standalone: true, features: [i0.ɵɵNgOnChangesFeature] }); }
50
+ }
51
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DrShineAnimationDirective, [{
52
+ type: Directive,
53
+ args: [{
54
+ selector: '[drShineAnimation]',
55
+ standalone: true,
56
+ }]
57
+ }], function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, { isShineEnabled: [{
58
+ type: Input,
59
+ args: ['drShineAnimation']
60
+ }], drShineAnimationInterval: [{
61
+ type: Input
62
+ }] }); })();
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItc2hpbmUtYW5pbWF0aW9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RpcmVjdGl2ZXMvZHItc2hpbmUtYW5pbWF0aW9uL2RyLXNoaW5lLWFuaW1hdGlvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBdUMsTUFBTSxlQUFlLENBQUM7O0FBRTdHLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLDJCQUEyQixDQUFDO0FBS3BFLE1BQU0sT0FBTyx5QkFBeUI7SUFNbEMsWUFDWSxFQUFjLEVBQ2QsUUFBbUI7UUFEbkIsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQVc7UUFQSixtQkFBYyxHQUFZLElBQUksQ0FBQztRQUNqRCw2QkFBd0IsR0FBVyxJQUFJLENBQUMsQ0FBQyxtQ0FBbUM7SUFPbEYsQ0FBQztJQUVKLFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixJQUFJLE9BQU8sQ0FBQyxjQUFjLEVBQUU7WUFDeEIsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO2dCQUNyQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7YUFDckI7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2FBQ3BCO1NBQ0o7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRU8sVUFBVTtRQUNkLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLCtCQUErQjtRQUVqRCxzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXRCLDBDQUEwQztRQUMxQyxJQUFJLENBQUMsVUFBVSxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFDL0IsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzFCLENBQUMsRUFBRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU8sU0FBUztRQUNiLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNqQixhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1NBQzFCO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRU8sY0FBYztRQUNsQixzQkFBc0I7UUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztRQUV4RSxpREFBaUQ7UUFDakQsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLHdCQUF3QixDQUFDLENBQUM7UUFDL0UsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsaURBQWlEO0lBQy9ELENBQUM7NkdBckRRLHlCQUF5QjttR0FBekIseUJBQXlCOzt1RkFBekIseUJBQXlCO2NBSnJDLFNBQVM7ZUFBQztnQkFDUCxRQUFRLEVBQUUsb0JBQW9CO2dCQUM5QixVQUFVLEVBQUUsSUFBSTthQUNuQjtxRkFFOEIsY0FBYztrQkFBeEMsS0FBSzttQkFBQyxrQkFBa0I7WUFDaEIsd0JBQXdCO2tCQUFoQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBSZW5kZXJlcjIsIElucHV0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgRFJfU0hJTkVfQU5JTUFUSU9OX0NMQVNTID0gJ2RyLXNoaW5lLWVmZmVjdC1hbmltYXRpb24nO1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZHJTaGluZUFuaW1hdGlvbl0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIERyU2hpbmVBbmltYXRpb25EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCdkclNoaW5lQW5pbWF0aW9uJykgaXNTaGluZUVuYWJsZWQ6IGJvb2xlYW4gPSB0cnVlO1xuICAgIEBJbnB1dCgpIGRyU2hpbmVBbmltYXRpb25JbnRlcnZhbDogbnVtYmVyID0gNTAwMDsgLy8gRGVmYXVsdCBpbnRlcnZhbCBpbiBtaWxsaXNlY29uZHNcblxuICAgIHByaXZhdGUgaW50ZXJ2YWxJZDogYW55O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICApIHt9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzLmlzU2hpbmVFbmFibGVkKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc1NoaW5lRW5hYmxlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRTaGluZSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3BTaGluZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RvcFNoaW5lKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGFydFNoaW5lKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0b3BTaGluZSgpOyAvLyBDbGVhciBhbnkgZXhpc3RpbmcgaW50ZXJ2YWxzXG5cbiAgICAgICAgLy8gUnVuIHRoZSBzaGluZSBhbmltYXRpb24gaW1tZWRpYXRlbHlcbiAgICAgICAgdGhpcy5hZGRTaGluZUVmZmVjdCgpO1xuXG4gICAgICAgIC8vIFNldCBpbnRlcnZhbCB0byByZXBlYXQgdGhlIHNoaW5lIGVmZmVjdFxuICAgICAgICB0aGlzLmludGVydmFsSWQgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmFkZFNoaW5lRWZmZWN0KCk7XG4gICAgICAgIH0sIHRoaXMuZHJTaGluZUFuaW1hdGlvbkludGVydmFsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0b3BTaGluZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaW50ZXJ2YWxJZCkge1xuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsSWQpO1xuICAgICAgICAgICAgdGhpcy5pbnRlcnZhbElkID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgRFJfU0hJTkVfQU5JTUFUSU9OX0NMQVNTKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFkZFNoaW5lRWZmZWN0KCk6IHZvaWQge1xuICAgICAgICAvLyBBZGQgdGhlIHNoaW5lIGNsYXNzXG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCBEUl9TSElORV9BTklNQVRJT05fQ0xBU1MpO1xuXG4gICAgICAgIC8vIFJlbW92ZSB0aGUgY2xhc3MgYWZ0ZXIgdGhlIGFuaW1hdGlvbiBjb21wbGV0ZXNcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgRFJfU0hJTkVfQU5JTUFUSU9OX0NMQVNTKTtcbiAgICAgICAgfSwgMjAwMCk7IC8vIE1hdGNoIHRoZSBhbmltYXRpb24gZHVyYXRpb24gKDJzIGluIHRoaXMgY2FzZSlcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,35 @@
1
+ import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class LetContext {
4
+ constructor(dir) {
5
+ this.dir = dir;
6
+ }
7
+ get ngLet() {
8
+ return this.dir.ngLet;
9
+ }
10
+ }
11
+ /**
12
+ * Works like *ngIf but does not have a condition
13
+ * Use it to declare the result of pipes calculation
14
+ * (i.e. async pipe)
15
+ */
16
+ export class LetDirective {
17
+ constructor(viewContainer, templateRef) {
18
+ viewContainer.createEmbeddedView(templateRef, new LetContext(this));
19
+ }
20
+ static ngTemplateContextGuard(dir, ctx) {
21
+ return true;
22
+ }
23
+ /** @nocollapse */ static { this.ɵfac = function LetDirective_Factory(t) { return new (t || LetDirective)(i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.TemplateRef)); }; }
24
+ /** @nocollapse */ static { this.ɵdir = /** @pureOrBreakMyCode */ i0.ɵɵdefineDirective({ type: LetDirective, selectors: [["", "ngLet", ""]], inputs: { ngLet: "ngLet" }, standalone: true }); }
25
+ }
26
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LetDirective, [{
27
+ type: Directive,
28
+ args: [{
29
+ selector: '[ngLet]',
30
+ standalone: true,
31
+ }]
32
+ }], function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }]; }, { ngLet: [{
33
+ type: Input
34
+ }] }); })();
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGV0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RpcmVjdGl2ZXMvbGV0L2xldC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUVoRixNQUFNLE9BQU8sVUFBVTtJQUNuQixZQUE2QixHQUFvQjtRQUFwQixRQUFHLEdBQUgsR0FBRyxDQUFpQjtJQUFHLENBQUM7SUFFckQsSUFBSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztJQUMxQixDQUFDO0NBQ0o7QUFFRDs7OztHQUlHO0FBS0gsTUFBTSxPQUFPLFlBQVk7SUFHckIsWUFBWSxhQUErQixFQUFFLFdBQXVDO1FBQ2hGLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsSUFBSSxVQUFVLENBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQsTUFBTSxDQUFDLHNCQUFzQixDQUFJLEdBQW9CLEVBQUUsR0FBUTtRQUMzRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO2dHQVRRLFlBQVk7bUdBQVosWUFBWTs7dUZBQVosWUFBWTtjQUp4QixTQUFTO2VBQUM7Z0JBQ1AsUUFBUSxFQUFFLFNBQVM7Z0JBQ25CLFVBQVUsRUFBRSxJQUFJO2FBQ25COzZGQUVZLEtBQUs7a0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBMZXRDb250ZXh0PFQ+IHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGRpcjogTGV0RGlyZWN0aXZlPFQ+KSB7fVxuXG4gICAgZ2V0IG5nTGV0KCk6IFQge1xuICAgICAgICByZXR1cm4gdGhpcy5kaXIubmdMZXQ7XG4gICAgfVxufVxuXG4vKipcbiAqIFdvcmtzIGxpa2UgKm5nSWYgYnV0IGRvZXMgbm90IGhhdmUgYSBjb25kaXRpb25cbiAqIFVzZSBpdCB0byBkZWNsYXJlIHRoZSByZXN1bHQgb2YgcGlwZXMgY2FsY3VsYXRpb25cbiAqIChpLmUuIGFzeW5jIHBpcGUpXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW25nTGV0XScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgTGV0RGlyZWN0aXZlPFQ+IHtcbiAgICBASW5wdXQoKSBuZ0xldDogVDtcblxuICAgIGNvbnN0cnVjdG9yKHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxMZXRDb250ZXh0PFQ+Pikge1xuICAgICAgICB2aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0ZW1wbGF0ZVJlZiwgbmV3IExldENvbnRleHQ8VD4odGhpcykpO1xuICAgIH1cblxuICAgIHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkPFQ+KGRpcjogTGV0RGlyZWN0aXZlPFQ+LCBjdHg6IGFueSk6IGN0eCBpcyBMZXRDb250ZXh0PFQ+IHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuIl19