@design-factory/design-factory 15.2.0

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 (428) hide show
  1. package/LICENSE +26 -0
  2. package/README.md +47 -0
  3. package/assets/.gitkeep +0 -0
  4. package/assets/fonts/amadeus-bold/amadeus-bold.svg +5131 -0
  5. package/assets/fonts/amadeus-bold/amadeus-bold.ttf +0 -0
  6. package/assets/fonts/amadeus-bold/amadeus-bold.woff +0 -0
  7. package/assets/fonts/amadeus-bold/amadeus-bold.woff2 +0 -0
  8. package/assets/fonts/amadeus-full/amadeus-full-bold.woff +0 -0
  9. package/assets/fonts/amadeus-full/amadeus-full-bold.woff2 +0 -0
  10. package/assets/fonts/amadeus-full/amadeus-full-bolditalic.woff +0 -0
  11. package/assets/fonts/amadeus-full/amadeus-full-bolditalic.woff2 +0 -0
  12. package/assets/fonts/amadeus-full/amadeus-full-italic.woff +0 -0
  13. package/assets/fonts/amadeus-full/amadeus-full-italic.woff2 +0 -0
  14. package/assets/fonts/amadeus-full/amadeus-full-light.woff +0 -0
  15. package/assets/fonts/amadeus-full/amadeus-full-light.woff2 +0 -0
  16. package/assets/fonts/amadeus-full/amadeus-full-lightitalic.woff +0 -0
  17. package/assets/fonts/amadeus-full/amadeus-full-lightitalic.woff2 +0 -0
  18. package/assets/fonts/amadeus-full/amadeus-full-regular.woff +0 -0
  19. package/assets/fonts/amadeus-full/amadeus-full-regular.woff2 +0 -0
  20. package/assets/fonts/amadeus-full/amadeus-full-thin.woff +0 -0
  21. package/assets/fonts/amadeus-full/amadeus-full-thin.woff2 +0 -0
  22. package/assets/fonts/amadeus-full/amadeus-full-thinitalic.woff +0 -0
  23. package/assets/fonts/amadeus-full/amadeus-full-thinitalic.woff2 +0 -0
  24. package/assets/fonts/amadeus-light/amadeus-light.svg +8658 -0
  25. package/assets/fonts/amadeus-light/amadeus-light.ttf +0 -0
  26. package/assets/fonts/amadeus-light/amadeus-light.woff +0 -0
  27. package/assets/fonts/amadeus-light/amadeus-light.woff2 +0 -0
  28. package/assets/fonts/amadeus-regular/amadeus-regular.svg +5131 -0
  29. package/assets/fonts/amadeus-regular/amadeus-regular.ttf +0 -0
  30. package/assets/fonts/amadeus-regular/amadeus-regular.woff +0 -0
  31. package/assets/fonts/amadeus-regular/amadeus-regular.woff2 +0 -0
  32. package/assets/fonts/amadeus-thin/amadeus-thin.svg +5131 -0
  33. package/assets/fonts/amadeus-thin/amadeus-thin.ttf +0 -0
  34. package/assets/fonts/amadeus-thin/amadeus-thin.woff +0 -0
  35. package/assets/fonts/amadeus-thin/amadeus-thin.woff2 +0 -0
  36. package/assets/fonts/icon-font/light/df-light-300.svg +1709 -0
  37. package/assets/fonts/icon-font/light/df-light-300.ttf +0 -0
  38. package/assets/fonts/icon-font/light/df-light-300.woff +0 -0
  39. package/assets/fonts/icon-font/light/df-light-300.woff2 +0 -0
  40. package/assets/fonts/icon-font/solid/df-solid-900.svg +1709 -0
  41. package/assets/fonts/icon-font/solid/df-solid-900.ttf +0 -0
  42. package/assets/fonts/icon-font/solid/df-solid-900.woff +0 -0
  43. package/assets/fonts/icon-font/solid/df-solid-900.woff2 +0 -0
  44. package/assets/fonts/noto/notosans-bold.woff +0 -0
  45. package/assets/fonts/noto/notosans-bold.woff2 +0 -0
  46. package/assets/fonts/noto/notosans-bolditalic.woff +0 -0
  47. package/assets/fonts/noto/notosans-bolditalic.woff2 +0 -0
  48. package/assets/fonts/noto/notosans-italic.woff +0 -0
  49. package/assets/fonts/noto/notosans-italic.woff2 +0 -0
  50. package/assets/fonts/noto/notosans-light.woff +0 -0
  51. package/assets/fonts/noto/notosans-light.woff2 +0 -0
  52. package/assets/fonts/noto/notosans-lightitalic.woff +0 -0
  53. package/assets/fonts/noto/notosans-lightitalic.woff2 +0 -0
  54. package/assets/fonts/noto/notosans-regular.woff +0 -0
  55. package/assets/fonts/noto/notosans-regular.woff2 +0 -0
  56. package/assets/fonts/noto/notosans-thin.woff +0 -0
  57. package/assets/fonts/noto/notosans-thin.woff2 +0 -0
  58. package/assets/fonts/noto/notosans-thinitalic.woff +0 -0
  59. package/assets/fonts/noto/notosans-thinitalic.woff2 +0 -0
  60. package/assets/fonts/noto/notosansarabic-bold.woff +0 -0
  61. package/assets/fonts/noto/notosansarabic-bold.woff2 +0 -0
  62. package/assets/fonts/noto/notosansarabic-light.woff +0 -0
  63. package/assets/fonts/noto/notosansarabic-light.woff2 +0 -0
  64. package/assets/fonts/noto/notosansarabic-regular.woff +0 -0
  65. package/assets/fonts/noto/notosansarabic-regular.woff2 +0 -0
  66. package/assets/fonts/noto/notosansarabic-thin.woff +0 -0
  67. package/assets/fonts/noto/notosansarabic-thin.woff2 +0 -0
  68. package/assets/fonts/noto/notosansgeorgian-bold.woff +0 -0
  69. package/assets/fonts/noto/notosansgeorgian-bold.woff2 +0 -0
  70. package/assets/fonts/noto/notosansgeorgian-light.woff +0 -0
  71. package/assets/fonts/noto/notosansgeorgian-light.woff2 +0 -0
  72. package/assets/fonts/noto/notosansgeorgian-regular.woff +0 -0
  73. package/assets/fonts/noto/notosansgeorgian-regular.woff2 +0 -0
  74. package/assets/fonts/noto/notosansgeorgian-thin.woff +0 -0
  75. package/assets/fonts/noto/notosansgeorgian-thin.woff2 +0 -0
  76. package/assets/fonts/noto/notosanshebrew-bold.woff +0 -0
  77. package/assets/fonts/noto/notosanshebrew-bold.woff2 +0 -0
  78. package/assets/fonts/noto/notosanshebrew-light.woff +0 -0
  79. package/assets/fonts/noto/notosanshebrew-light.woff2 +0 -0
  80. package/assets/fonts/noto/notosanshebrew-regular.woff +0 -0
  81. package/assets/fonts/noto/notosanshebrew-regular.woff2 +0 -0
  82. package/assets/fonts/noto/notosanshebrew-thin.woff +0 -0
  83. package/assets/fonts/noto/notosanshebrew-thin.woff2 +0 -0
  84. package/assets/fonts/source-sans-pro-bold/source-sans-pro-bold.svg +19926 -0
  85. package/assets/fonts/source-sans-pro-bold/source-sans-pro-bold.ttf +0 -0
  86. package/assets/fonts/source-sans-pro-bold/source-sans-pro-bold.woff +0 -0
  87. package/assets/fonts/source-sans-pro-bold/source-sans-pro-bold.woff2 +0 -0
  88. package/assets/fonts/source-sans-pro-full/sourcesanspro-full-bold.woff +0 -0
  89. package/assets/fonts/source-sans-pro-full/sourcesanspro-full-bold.woff2 +0 -0
  90. package/assets/fonts/source-sans-pro-full/sourcesanspro-full-bolditalic.woff +0 -0
  91. package/assets/fonts/source-sans-pro-full/sourcesanspro-full-bolditalic.woff2 +0 -0
  92. package/assets/fonts/source-sans-pro-full/sourcesanspro-full-italic.woff +0 -0
  93. package/assets/fonts/source-sans-pro-full/sourcesanspro-full-italic.woff2 +0 -0
  94. package/assets/fonts/source-sans-pro-full/sourcesanspro-full-light.woff +0 -0
  95. package/assets/fonts/source-sans-pro-full/sourcesanspro-full-light.woff2 +0 -0
  96. package/assets/fonts/source-sans-pro-full/sourcesanspro-full-lightitalic.woff +0 -0
  97. package/assets/fonts/source-sans-pro-full/sourcesanspro-full-lightitalic.woff2 +0 -0
  98. package/assets/fonts/source-sans-pro-full/sourcesanspro-full-regular.woff +0 -0
  99. package/assets/fonts/source-sans-pro-full/sourcesanspro-full-regular.woff2 +0 -0
  100. package/assets/fonts/source-sans-pro-light/source-sans-pro-light.svg +19165 -0
  101. package/assets/fonts/source-sans-pro-light/source-sans-pro-light.ttf +0 -0
  102. package/assets/fonts/source-sans-pro-light/source-sans-pro-light.woff +0 -0
  103. package/assets/fonts/source-sans-pro-light/source-sans-pro-light.woff2 +0 -0
  104. package/assets/fonts/source-sans-pro-regular/source-sans-pro-regular.svg +20412 -0
  105. package/assets/fonts/source-sans-pro-regular/source-sans-pro-regular.ttf +0 -0
  106. package/assets/fonts/source-sans-pro-regular/source-sans-pro-regular.woff +0 -0
  107. package/assets/fonts/source-sans-pro-regular/source-sans-pro-regular.woff2 +0 -0
  108. package/assets/fonts/source-sans-pro-semibold/source-sans-pro-semibold.svg +20019 -0
  109. package/assets/fonts/source-sans-pro-semibold/source-sans-pro-semibold.ttf +0 -0
  110. package/assets/fonts/source-sans-pro-semibold/source-sans-pro-semibold.woff +0 -0
  111. package/assets/fonts/source-sans-pro-semibold/source-sans-pro-semibold.woff2 +0 -0
  112. package/assets/icon-amadeus.svg +1 -0
  113. package/assets/readme.png +0 -0
  114. package/design-factory-utilities.scss +5 -0
  115. package/design-factory.css +3 -0
  116. package/design-factory.scss +1 -0
  117. package/environment.d.ts +4 -0
  118. package/esm2022/design-factory.mjs +5 -0
  119. package/esm2022/environment.mjs +5 -0
  120. package/esm2022/index.mjs +5 -0
  121. package/esm2022/lib/angular/accessibility/accessibility.module.mjs +19 -0
  122. package/esm2022/lib/angular/accessibility/components/skip-links-container/skip-links-container.component.mjs +32 -0
  123. package/esm2022/lib/angular/accessibility/directives/skip-link.directive.mjs +64 -0
  124. package/esm2022/lib/angular/alert/alert.module.mjs +17 -0
  125. package/esm2022/lib/angular/animation/ngbTransition.mjs +76 -0
  126. package/esm2022/lib/angular/animation/util.mjs +30 -0
  127. package/esm2022/lib/angular/card/card-advanced.module.mjs +17 -0
  128. package/esm2022/lib/angular/card/manage-card-selection.directive.mjs +47 -0
  129. package/esm2022/lib/angular/datepicker/closedatepicker.directive.mjs +38 -0
  130. package/esm2022/lib/angular/datepicker/datepicker-keyboard-nav.service.mjs +39 -0
  131. package/esm2022/lib/angular/datepicker/datepicker-range.directive.mjs +101 -0
  132. package/esm2022/lib/angular/datepicker/datepicker-range.service.mjs +97 -0
  133. package/esm2022/lib/angular/datepicker/datepicker.module.mjs +42 -0
  134. package/esm2022/lib/angular/footer/footer.module.mjs +17 -0
  135. package/esm2022/lib/angular/icon/amadeus-icon.mjs +79 -0
  136. package/esm2022/lib/angular/icon/icon.module.mjs +17 -0
  137. package/esm2022/lib/angular/icon/insert/insert-icon.directive.mjs +47 -0
  138. package/esm2022/lib/angular/icon/insert/insert-icon.module.mjs +17 -0
  139. package/esm2022/lib/angular/inputs/click/trigger-click.directive.mjs +28 -0
  140. package/esm2022/lib/angular/inputs/icon/inputicon.directive.mjs +95 -0
  141. package/esm2022/lib/angular/inputs/input-advanced.module.mjs +19 -0
  142. package/esm2022/lib/angular/mediaqueries/ifMedia.directive.mjs +52 -0
  143. package/esm2022/lib/angular/mediaqueries/media.module.mjs +17 -0
  144. package/esm2022/lib/angular/mediaqueries/media.service.mjs +46 -0
  145. package/esm2022/lib/angular/mediaqueries/mediaUtils.service.mjs +185 -0
  146. package/esm2022/lib/angular/modal/modal.service.mjs +36 -0
  147. package/esm2022/lib/angular/popover/config/popover.config.mjs +16 -0
  148. package/esm2022/lib/angular/popover/popover.module.mjs +17 -0
  149. package/esm2022/lib/angular/progressbar/progressbar.component.mjs +158 -0
  150. package/esm2022/lib/angular/progressbar/progressbar.module.mjs +18 -0
  151. package/esm2022/lib/angular/progressindicator/default/default-spinner.component.mjs +23 -0
  152. package/esm2022/lib/angular/progressindicator/progressindicator-backdrop.component.mjs +29 -0
  153. package/esm2022/lib/angular/progressindicator/progressindicator-config.mjs +25 -0
  154. package/esm2022/lib/angular/progressindicator/progressindicator-container.component.mjs +52 -0
  155. package/esm2022/lib/angular/progressindicator/progressindicator-ref.mjs +8 -0
  156. package/esm2022/lib/angular/progressindicator/progressindicator.directive.mjs +39 -0
  157. package/esm2022/lib/angular/progressindicator/progressindicator.module.mjs +45 -0
  158. package/esm2022/lib/angular/progressindicator/progressindicator.service.mjs +170 -0
  159. package/esm2022/lib/angular/right-to-left/directionDetection.service.mjs +32 -0
  160. package/esm2022/lib/angular/selects/events/manage-badge-events.directive.mjs +65 -0
  161. package/esm2022/lib/angular/selects/nav/manage-nav-select.directive.mjs +108 -0
  162. package/esm2022/lib/angular/selects/option-highlight.directive.mjs +59 -0
  163. package/esm2022/lib/angular/selects/select.model.mjs +2 -0
  164. package/esm2022/lib/angular/selects/select.module.mjs +22 -0
  165. package/esm2022/lib/angular/sidenav/dfSideNavAnimation.mjs +73 -0
  166. package/esm2022/lib/angular/sidenav/dfSideNavCollapse.mjs +94 -0
  167. package/esm2022/lib/angular/sidenav/dfSideNavCollapse.module.mjs +18 -0
  168. package/esm2022/lib/angular/sidenav/dfSideNavCollapse.service.mjs +37 -0
  169. package/esm2022/lib/angular/sidenav/dfSideNavCollapseConfig.mjs +27 -0
  170. package/esm2022/lib/angular/sidenav/excludeTrap.directive.mjs +55 -0
  171. package/esm2022/lib/angular/sidenav/manage-sidenav.directive.mjs +26 -0
  172. package/esm2022/lib/angular/sidenav/sidenav-config.mjs +25 -0
  173. package/esm2022/lib/angular/sidenav/sidenav.component.mjs +86 -0
  174. package/esm2022/lib/angular/sidenav/sidenav.module.mjs +52 -0
  175. package/esm2022/lib/angular/sidenav/sidenav.service.mjs +315 -0
  176. package/esm2022/lib/angular/sidenav/sidenavlist.component.mjs +50 -0
  177. package/esm2022/lib/angular/slider/direction/sliderdirection.directive.mjs +33 -0
  178. package/esm2022/lib/angular/slider/lib/change-context.mjs +3 -0
  179. package/esm2022/lib/angular/slider/lib/compatibility-helper.mjs +15 -0
  180. package/esm2022/lib/angular/slider/lib/event-listener-helper.mjs +77 -0
  181. package/esm2022/lib/angular/slider/lib/event-listener.mjs +3 -0
  182. package/esm2022/lib/angular/slider/lib/math-helper.mjs +15 -0
  183. package/esm2022/lib/angular/slider/lib/options.mjs +123 -0
  184. package/esm2022/lib/angular/slider/lib/pointer-type.mjs +9 -0
  185. package/esm2022/lib/angular/slider/lib/slider-element.directive.mjs +187 -0
  186. package/esm2022/lib/angular/slider/lib/slider-handle.directive.mjs +62 -0
  187. package/esm2022/lib/angular/slider/lib/slider-label.directive.mjs +38 -0
  188. package/esm2022/lib/angular/slider/lib/slider.component.mjs +2020 -0
  189. package/esm2022/lib/angular/slider/lib/tooltip-wrapper.component.mjs +20 -0
  190. package/esm2022/lib/angular/slider/lib/value-helper.mjs +50 -0
  191. package/esm2022/lib/angular/slider/slider.module.mjs +29 -0
  192. package/esm2022/lib/angular/toast/toast.module.mjs +17 -0
  193. package/esm2022/lib/angular/tooltip/tooltip.module.mjs +18 -0
  194. package/esm2022/lib/angular/tooltip/truncate/tooltipTruncate.directive.mjs +33 -0
  195. package/esm2022/lib/angular/utils/scrollbar.service.mjs +79 -0
  196. package/esm2022/lib/index.mjs +172 -0
  197. package/fesm2022/design-factory.mjs +5664 -0
  198. package/fesm2022/design-factory.mjs.map +1 -0
  199. package/index.d.ts +4 -0
  200. package/lib/angular/accessibility/accessibility.module.d.ts +10 -0
  201. package/lib/angular/accessibility/components/skip-links-container/skip-links-container.component.d.ts +13 -0
  202. package/lib/angular/accessibility/directives/skip-link.directive.d.ts +15 -0
  203. package/lib/angular/alert/alert.module.d.ts +8 -0
  204. package/lib/angular/animation/ngbTransition.d.ts +16 -0
  205. package/lib/angular/animation/util.d.ts +14 -0
  206. package/lib/angular/card/card-advanced.module.d.ts +8 -0
  207. package/lib/angular/card/manage-card-selection.directive.d.ts +13 -0
  208. package/lib/angular/datepicker/closedatepicker.directive.d.ts +10 -0
  209. package/lib/angular/datepicker/datepicker-keyboard-nav.service.d.ts +7 -0
  210. package/lib/angular/datepicker/datepicker-range.directive.d.ts +31 -0
  211. package/lib/angular/datepicker/datepicker-range.service.d.ts +32 -0
  212. package/lib/angular/datepicker/datepicker.module.d.ts +12 -0
  213. package/lib/angular/footer/footer.module.d.ts +8 -0
  214. package/lib/angular/icon/amadeus-icon.d.ts +5 -0
  215. package/lib/angular/icon/icon.module.d.ts +8 -0
  216. package/lib/angular/icon/insert/insert-icon.directive.d.ts +12 -0
  217. package/lib/angular/icon/insert/insert-icon.module.d.ts +8 -0
  218. package/lib/angular/inputs/click/trigger-click.directive.d.ts +9 -0
  219. package/lib/angular/inputs/icon/inputicon.directive.d.ts +28 -0
  220. package/lib/angular/inputs/input-advanced.module.d.ts +10 -0
  221. package/lib/angular/mediaqueries/ifMedia.directive.d.ts +26 -0
  222. package/lib/angular/mediaqueries/media.module.d.ts +8 -0
  223. package/lib/angular/mediaqueries/media.service.d.ts +24 -0
  224. package/lib/angular/mediaqueries/mediaUtils.service.d.ts +75 -0
  225. package/lib/angular/modal/modal.service.d.ts +13 -0
  226. package/lib/angular/popover/config/popover.config.d.ts +8 -0
  227. package/lib/angular/popover/popover.module.d.ts +7 -0
  228. package/lib/angular/progressbar/progressbar.component.d.ts +71 -0
  229. package/lib/angular/progressbar/progressbar.module.d.ts +9 -0
  230. package/lib/angular/progressindicator/default/default-spinner.component.d.ts +8 -0
  231. package/lib/angular/progressindicator/progressindicator-backdrop.component.d.ts +8 -0
  232. package/lib/angular/progressindicator/progressindicator-config.d.ts +54 -0
  233. package/lib/angular/progressindicator/progressindicator-container.component.d.ts +13 -0
  234. package/lib/angular/progressindicator/progressindicator-ref.d.ts +9 -0
  235. package/lib/angular/progressindicator/progressindicator.directive.d.ts +18 -0
  236. package/lib/angular/progressindicator/progressindicator.module.d.ts +15 -0
  237. package/lib/angular/progressindicator/progressindicator.service.d.ts +33 -0
  238. package/lib/angular/right-to-left/directionDetection.service.d.ts +12 -0
  239. package/lib/angular/selects/events/manage-badge-events.directive.d.ts +16 -0
  240. package/lib/angular/selects/nav/manage-nav-select.directive.d.ts +20 -0
  241. package/lib/angular/selects/option-highlight.directive.d.ts +19 -0
  242. package/lib/angular/selects/select.model.d.ts +1 -0
  243. package/lib/angular/selects/select.module.d.ts +13 -0
  244. package/lib/angular/sidenav/dfSideNavAnimation.d.ts +7 -0
  245. package/lib/angular/sidenav/dfSideNavCollapse.d.ts +48 -0
  246. package/lib/angular/sidenav/dfSideNavCollapse.module.d.ts +9 -0
  247. package/lib/angular/sidenav/dfSideNavCollapse.service.d.ts +24 -0
  248. package/lib/angular/sidenav/dfSideNavCollapseConfig.d.ts +17 -0
  249. package/lib/angular/sidenav/excludeTrap.directive.d.ts +30 -0
  250. package/lib/angular/sidenav/manage-sidenav.directive.d.ts +10 -0
  251. package/lib/angular/sidenav/sidenav-config.d.ts +17 -0
  252. package/lib/angular/sidenav/sidenav.component.d.ts +43 -0
  253. package/lib/angular/sidenav/sidenav.module.d.ts +14 -0
  254. package/lib/angular/sidenav/sidenav.service.d.ts +178 -0
  255. package/lib/angular/sidenav/sidenavlist.component.d.ts +25 -0
  256. package/lib/angular/slider/direction/sliderdirection.directive.d.ts +12 -0
  257. package/lib/angular/slider/lib/change-context.d.ts +6 -0
  258. package/lib/angular/slider/lib/compatibility-helper.d.ts +7 -0
  259. package/lib/angular/slider/lib/event-listener-helper.d.ts +13 -0
  260. package/lib/angular/slider/lib/event-listener.d.ts +7 -0
  261. package/lib/angular/slider/lib/math-helper.d.ts +6 -0
  262. package/lib/angular/slider/lib/options.d.ts +241 -0
  263. package/lib/angular/slider/lib/pointer-type.d.ts +7 -0
  264. package/lib/angular/slider/lib/slider-element.directive.d.ts +47 -0
  265. package/lib/angular/slider/lib/slider-handle.directive.d.ts +19 -0
  266. package/lib/angular/slider/lib/slider-label.directive.d.ts +11 -0
  267. package/lib/angular/slider/lib/slider.component.d.ts +190 -0
  268. package/lib/angular/slider/lib/tooltip-wrapper.component.d.ts +10 -0
  269. package/lib/angular/slider/lib/value-helper.d.ts +13 -0
  270. package/lib/angular/slider/slider.module.d.ts +12 -0
  271. package/lib/angular/toast/toast.module.d.ts +8 -0
  272. package/lib/angular/tooltip/tooltip.module.d.ts +9 -0
  273. package/lib/angular/tooltip/truncate/tooltipTruncate.directive.d.ts +17 -0
  274. package/lib/angular/utils/scrollbar.service.d.ts +46 -0
  275. package/lib/index.d.ts +82 -0
  276. package/package.json +44 -0
  277. package/schematics/collection.json +10 -0
  278. package/schematics/migrations/15_0_0/remove-ngx-slider/index.d.ts +2 -0
  279. package/schematics/migrations/15_0_0/remove-ngx-slider/index.js +113 -0
  280. package/schematics/migrations/15_0_0/remove-ngx-slider/index.js.map +1 -0
  281. package/schematics/migrations/helpers.d.ts +13 -0
  282. package/schematics/migrations/helpers.js +33 -0
  283. package/schematics/migrations/helpers.js.map +1 -0
  284. package/schematics/migrations/migration.json +10 -0
  285. package/schematics/migrations/utils/project_tsconfig_paths.d.ts +16 -0
  286. package/schematics/migrations/utils/project_tsconfig_paths.js +91 -0
  287. package/schematics/migrations/utils/project_tsconfig_paths.js.map +1 -0
  288. package/schematics/migrations/utils/typescript/compiler_host.d.ts +44 -0
  289. package/schematics/migrations/utils/typescript/compiler_host.js +86 -0
  290. package/schematics/migrations/utils/typescript/compiler_host.js.map +1 -0
  291. package/schematics/migrations/utils/typescript/parse_tsconfig.d.ts +9 -0
  292. package/schematics/migrations/utils/typescript/parse_tsconfig.js +30 -0
  293. package/schematics/migrations/utils/typescript/parse_tsconfig.js.map +1 -0
  294. package/schematics/ng-add/index.d.ts +3 -0
  295. package/schematics/ng-add/index.js +84 -0
  296. package/schematics/ng-add/index.js.map +1 -0
  297. package/schematics/ng-add/schema.d.ts +6 -0
  298. package/schematics/ng-add/schema.js +3 -0
  299. package/schematics/ng-add/schema.js.map +1 -0
  300. package/schematics/ng-add/schema.json +15 -0
  301. package/styles/scss/_common.mixins.scss +19 -0
  302. package/styles/scss/_common.scss +57 -0
  303. package/styles/scss/_common.variables.scss +62 -0
  304. package/styles/scss/_variables.scss +56 -0
  305. package/styles/scss/bootstrap/_maps.scss +50 -0
  306. package/styles/scss/bootstrap/_mixins-override.scss +69 -0
  307. package/styles/scss/bootstrap/_rtl-styles-override.scss +125 -0
  308. package/styles/scss/bootstrap/_utilities-override.scss +19 -0
  309. package/styles/scss/bootstrap/_variables.scss +1684 -0
  310. package/styles/scss/components/.gitkeep +0 -0
  311. package/styles/scss/components/accordion/_accordion.scss +87 -0
  312. package/styles/scss/components/accordion/_accordion.variables.scss +8 -0
  313. package/styles/scss/components/alert/_alert.scss +301 -0
  314. package/styles/scss/components/alert/_alert.variables.scss +70 -0
  315. package/styles/scss/components/badge/_badge.scss +160 -0
  316. package/styles/scss/components/badge/_badge.variables.scss +10 -0
  317. package/styles/scss/components/brand-color/_brand-color.mixins.scss +11 -0
  318. package/styles/scss/components/brand-color/_brand-color.scss +18 -0
  319. package/styles/scss/components/brand-color/_brand-color.variables.scss +158 -0
  320. package/styles/scss/components/breadcrumbs/_breadcrumbs.scss +91 -0
  321. package/styles/scss/components/breadcrumbs/_breadcrumbs.variables.scss +13 -0
  322. package/styles/scss/components/button/_button.scss +249 -0
  323. package/styles/scss/components/button/_button.utils.scss +16 -0
  324. package/styles/scss/components/button/_button.variables.scss +27 -0
  325. package/styles/scss/components/button/_button_container.scss +66 -0
  326. package/styles/scss/components/card/_card.scss +73 -0
  327. package/styles/scss/components/card/_card.variables.scss +22 -0
  328. package/styles/scss/components/carousel/_carousel.scss +52 -0
  329. package/styles/scss/components/carousel/_carousel.variables.scss +11 -0
  330. package/styles/scss/components/checkbox/_checkbox.scss +37 -0
  331. package/styles/scss/components/checkbox/_checkbox.variables.scss +6 -0
  332. package/styles/scss/components/collapse/_collapse.scss +35 -0
  333. package/styles/scss/components/collapse/_collapse.variables.scss +7 -0
  334. package/styles/scss/components/datepicker/_datepicker.scss +251 -0
  335. package/styles/scss/components/datepicker/_datepicker.variables.scss +52 -0
  336. package/styles/scss/components/dropdown/_dropdown.mixins.scss +26 -0
  337. package/styles/scss/components/dropdown/_dropdown.scss +81 -0
  338. package/styles/scss/components/dropdown/_dropdown.variables.scss +18 -0
  339. package/styles/scss/components/fieldset/_fieldset.scss +6 -0
  340. package/styles/scss/components/fieldset/_fieldset.variables.scss +2 -0
  341. package/styles/scss/components/fonts/_font-faces.mixins.scss +525 -0
  342. package/styles/scss/components/fonts/_fonts-family.scss +98 -0
  343. package/styles/scss/components/fonts/_fonts.scss +83 -0
  344. package/styles/scss/components/fonts/_fonts.variables.scss +31 -0
  345. package/styles/scss/components/fonts/_icon-font.scss +5107 -0
  346. package/styles/scss/components/fonts/_icon-font.variables.scss +14 -0
  347. package/styles/scss/components/fonts/_multi-lang.mixins.scss +8 -0
  348. package/styles/scss/components/fonts/multi-lang/_arabic.mixins.scss +8 -0
  349. package/styles/scss/components/fonts/multi-lang/_chinese.mixins.scss +12 -0
  350. package/styles/scss/components/fonts/multi-lang/_cyrillic-extended.mixins.scss +11 -0
  351. package/styles/scss/components/fonts/multi-lang/_cyrillic.mixins.scss +10 -0
  352. package/styles/scss/components/fonts/multi-lang/_georgian.mixins.scss +9 -0
  353. package/styles/scss/components/fonts/multi-lang/_hebrew.mixins.scss +9 -0
  354. package/styles/scss/components/fonts/multi-lang/_japanese.mixins.scss +23 -0
  355. package/styles/scss/components/fonts/multi-lang/_korean.mixins.scss +10 -0
  356. package/styles/scss/components/footer/_footer.scss +23 -0
  357. package/styles/scss/components/footer/_footer.variables.scss +13 -0
  358. package/styles/scss/components/form/_form.scss +104 -0
  359. package/styles/scss/components/form/_form.variables.scss +23 -0
  360. package/styles/scss/components/icon/_amadeus-icon.scss +39 -0
  361. package/styles/scss/components/icon/_amadeus-icon.variables.scss +3 -0
  362. package/styles/scss/components/inputs/_inputs.mixin.scss +51 -0
  363. package/styles/scss/components/inputs/_inputs.scss +290 -0
  364. package/styles/scss/components/inputs/_inputs.variables.scss +41 -0
  365. package/styles/scss/components/link/_link.mixins.scss +190 -0
  366. package/styles/scss/components/link/_link.scss +88 -0
  367. package/styles/scss/components/link/_link.variables.scss +55 -0
  368. package/styles/scss/components/list/_list.scss +15 -0
  369. package/styles/scss/components/list/_list.variables.scss +4 -0
  370. package/styles/scss/components/list-group/_list-group.scss +61 -0
  371. package/styles/scss/components/list-group/_list-group.variables.scss +14 -0
  372. package/styles/scss/components/media/_media.scss +42 -0
  373. package/styles/scss/components/media/_media.variables.scss +7 -0
  374. package/styles/scss/components/modal/_modal.scss +147 -0
  375. package/styles/scss/components/modal/_modal.variables.scss +23 -0
  376. package/styles/scss/components/navbar/_navbar.scss +253 -0
  377. package/styles/scss/components/navbar/_navbar.variables.scss +62 -0
  378. package/styles/scss/components/pagination/_pagination.scss +195 -0
  379. package/styles/scss/components/pagination/_pagination.variables.scss +27 -0
  380. package/styles/scss/components/pagination/_pagination_container.scss +14 -0
  381. package/styles/scss/components/popover/_popover.mixin.scss +57 -0
  382. package/styles/scss/components/popover/_popover.scss +25 -0
  383. package/styles/scss/components/popover/_popover.variables.scss +18 -0
  384. package/styles/scss/components/popover/_popover_container.scss +156 -0
  385. package/styles/scss/components/progressbar/_progressbar.scss +74 -0
  386. package/styles/scss/components/progressbar/_progressbar.variables.scss +13 -0
  387. package/styles/scss/components/radio/_radio.scss +25 -0
  388. package/styles/scss/components/radio/_radio.variables.scss +3 -0
  389. package/styles/scss/components/rating/_rating.scss +81 -0
  390. package/styles/scss/components/rating/_rating.variables.scss +20 -0
  391. package/styles/scss/components/scrollspy/_scrollspy.scss +34 -0
  392. package/styles/scss/components/scrollspy/_scrollspy.variables.scss +11 -0
  393. package/styles/scss/components/select/_select.scss +734 -0
  394. package/styles/scss/components/select/_select.variables.scss +85 -0
  395. package/styles/scss/components/separator/_separator.scss +8 -0
  396. package/styles/scss/components/separator/_separator.variables.scss +1 -0
  397. package/styles/scss/components/sidenav/_sidenav.scss +259 -0
  398. package/styles/scss/components/sidenav/_sidenav.variables.scss +87 -0
  399. package/styles/scss/components/skip-links/_skip-links.scss +24 -0
  400. package/styles/scss/components/skip-links/_skip-links.variables.scss +7 -0
  401. package/styles/scss/components/slider/_slider.scss +407 -0
  402. package/styles/scss/components/slider/_slider.variables.scss +58 -0
  403. package/styles/scss/components/speechbubble/_speechbubble.scss +127 -0
  404. package/styles/scss/components/speechbubble/_speechbubble.variables.scss +19 -0
  405. package/styles/scss/components/spinner/_spinner.scss +88 -0
  406. package/styles/scss/components/spinner/_spinner.variables.scss +21 -0
  407. package/styles/scss/components/spinner/_spinner_container.scss +43 -0
  408. package/styles/scss/components/stepper/_stepper.mixins.scss +193 -0
  409. package/styles/scss/components/stepper/_stepper.scss +130 -0
  410. package/styles/scss/components/stepper/_stepper.variables.scss +63 -0
  411. package/styles/scss/components/table/_advancedtables.scss +229 -0
  412. package/styles/scss/components/table/_table.scss +7 -0
  413. package/styles/scss/components/table/_table.variables.scss +24 -0
  414. package/styles/scss/components/tabs/_tabs.scss +123 -0
  415. package/styles/scss/components/tabs/_tabs.variables.scss +32 -0
  416. package/styles/scss/components/toast/_toast.scss +189 -0
  417. package/styles/scss/components/toast/_toast.variables.scss +13 -0
  418. package/styles/scss/components/toggle/_toggle.scss +93 -0
  419. package/styles/scss/components/toggle/_toggle.variables.scss +17 -0
  420. package/styles/scss/components/tooltip/_tooltip.scss +3 -0
  421. package/styles/scss/components/tooltip/_tooltip.variables.scss +5 -0
  422. package/styles/scss/components/tooltip/_tooltip_container.scss +112 -0
  423. package/styles/scss/components/typeahead/_typeahead.scss +45 -0
  424. package/styles/scss/components/typeahead/_typeahead.variables.scss +10 -0
  425. package/styles/scss/df-styles-namespace.scss +160 -0
  426. package/styles/scss/df-styles.scss +107 -0
  427. package/styles/scss/utilities/_common.utilities.scss +70 -0
  428. package/styles/scss/utilities/_form.mixins.scss +26 -0
@@ -0,0 +1 @@
1
+ @import './styles/scss/df-styles';
@@ -0,0 +1,4 @@
1
+ export declare const environment: {
2
+ animation: boolean;
3
+ transitionTimerDelayMs: number;
4
+ };
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzaWduLWZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tZmFjdG9yeS9zcmMvZGVzaWduLWZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ export const environment = {
2
+ animation: true,
3
+ transitionTimerDelayMs: 5
4
+ };
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tZmFjdG9yeS9zcmMvZW52aXJvbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHO0lBQ3pCLFNBQVMsRUFBRSxJQUFJO0lBQ2Ysc0JBQXNCLEVBQUUsQ0FBQztDQUMxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGVudmlyb25tZW50ID0ge1xuICBhbmltYXRpb246IHRydWUsXG4gIHRyYW5zaXRpb25UaW1lckRlbGF5TXM6IDVcbn07XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Public API Surface of design-factory
3
+ */
4
+ export * from './lib/index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tZmFjdG9yeS9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGRlc2lnbi1mYWN0b3J5XG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvaW5kZXgnO1xuIl19
@@ -0,0 +1,19 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { SkipLinksContainerComponent } from './components/skip-links-container/skip-links-container.component';
3
+ import { SkipLinkDirective } from './directives/skip-link.directive';
4
+ import * as i0 from "@angular/core";
5
+ export { SkipLinksContainerComponent } from './components/skip-links-container/skip-links-container.component';
6
+ export { SkipLinkDirective } from './directives/skip-link.directive';
7
+ export class DfAccessibilityModule {
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfAccessibilityModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.4", ngImport: i0, type: DfAccessibilityModule, imports: [SkipLinkDirective, SkipLinksContainerComponent], exports: [SkipLinkDirective, SkipLinksContainerComponent] }); }
10
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfAccessibilityModule }); }
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfAccessibilityModule, decorators: [{
13
+ type: NgModule,
14
+ args: [{
15
+ imports: [SkipLinkDirective, SkipLinksContainerComponent],
16
+ exports: [SkipLinkDirective, SkipLinksContainerComponent]
17
+ }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzaWJpbGl0eS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tZmFjdG9yeS9zcmMvbGliL2FuZ3VsYXIvYWNjZXNzaWJpbGl0eS9hY2Nlc3NpYmlsaXR5Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtFQUFrRSxDQUFDO0FBQy9HLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQUVyRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUMvRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUtyRSxNQUFNLE9BQU8scUJBQXFCOzhHQUFyQixxQkFBcUI7K0dBQXJCLHFCQUFxQixZQUh0QixpQkFBaUIsRUFBRSwyQkFBMkIsYUFDOUMsaUJBQWlCLEVBQUUsMkJBQTJCOytHQUU3QyxxQkFBcUI7OzJGQUFyQixxQkFBcUI7a0JBSmpDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsMkJBQTJCLENBQUM7b0JBQ3pELE9BQU8sRUFBRSxDQUFDLGlCQUFpQixFQUFFLDJCQUEyQixDQUFDO2lCQUMxRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa2lwTGlua3NDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2tpcC1saW5rcy1jb250YWluZXIvc2tpcC1saW5rcy1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNraXBMaW5rRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3NraXAtbGluay5kaXJlY3RpdmUnO1xuXG5leHBvcnQgeyBTa2lwTGlua3NDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2tpcC1saW5rcy1jb250YWluZXIvc2tpcC1saW5rcy1jb250YWluZXIuY29tcG9uZW50JztcbmV4cG9ydCB7IFNraXBMaW5rRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3NraXAtbGluay5kaXJlY3RpdmUnO1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1NraXBMaW5rRGlyZWN0aXZlLCBTa2lwTGlua3NDb250YWluZXJDb21wb25lbnRdLFxuICBleHBvcnRzOiBbU2tpcExpbmtEaXJlY3RpdmUsIFNraXBMaW5rc0NvbnRhaW5lckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgRGZBY2Nlc3NpYmlsaXR5TW9kdWxlIHtcbn1cbiJdfQ==
@@ -0,0 +1,32 @@
1
+ import { SkipLinkDirective } from '../../directives/skip-link.directive';
2
+ import { Component, ContentChildren, ChangeDetectionStrategy } from '@angular/core';
3
+ import { merge } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ export class SkipLinksContainerComponent {
6
+ constructor(changeDetector) {
7
+ this.changeDetector = changeDetector;
8
+ this.inFocus = false;
9
+ }
10
+ ngAfterContentInit() {
11
+ if (!this.links.length) {
12
+ return;
13
+ }
14
+ this.focusSubscription = merge(...this.links.map((link) => link.inFocus)).subscribe((focus) => {
15
+ this.inFocus = focus;
16
+ this.changeDetector.detectChanges();
17
+ });
18
+ }
19
+ ngOnDestroy() {
20
+ this.focusSubscription.unsubscribe();
21
+ }
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: SkipLinksContainerComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
23
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.4", type: SkipLinksContainerComponent, isStandalone: true, selector: "df-skip-links-container", queries: [{ propertyName: "links", predicate: SkipLinkDirective }], ngImport: i0, template: "<section class=\"df-skip-links__section\">\n <div class=\"df-skip-links\">\n <div\n class=\"df-skip-links__wrap list-group\"\n [class.focus]=\"inFocus\"\n (blur)=\"inFocus=false\"\n >\n <ng-content></ng-content>\n </div>\n </div>\n</section>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
24
+ }
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: SkipLinksContainerComponent, decorators: [{
26
+ type: Component,
27
+ args: [{ selector: 'df-skip-links-container', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<section class=\"df-skip-links__section\">\n <div class=\"df-skip-links\">\n <div\n class=\"df-skip-links__wrap list-group\"\n [class.focus]=\"inFocus\"\n (blur)=\"inFocus=false\"\n >\n <ng-content></ng-content>\n </div>\n </div>\n</section>\n" }]
28
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { links: [{
29
+ type: ContentChildren,
30
+ args: [SkipLinkDirective]
31
+ }] } });
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tpcC1saW5rcy1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWZhY3Rvcnkvc3JjL2xpYi9hbmd1bGFyL2FjY2Vzc2liaWxpdHkvY29tcG9uZW50cy9za2lwLWxpbmtzLWNvbnRhaW5lci9za2lwLWxpbmtzLWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tZmFjdG9yeS9zcmMvbGliL2FuZ3VsYXIvYWNjZXNzaWJpbGl0eS9jb21wb25lbnRzL3NraXAtbGlua3MtY29udGFpbmVyL3NraXAtbGlua3MtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3pFLE9BQU8sRUFDTCxTQUFTLEVBQ1QsZUFBZSxFQUlmLHVCQUF1QixFQUV4QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFnQixNQUFNLE1BQU0sQ0FBQzs7QUFRM0MsTUFBTSxPQUFPLDJCQUEyQjtJQUt0QyxZQUFvQixjQUFpQztRQUFqQyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFKckQsWUFBTyxHQUFHLEtBQUssQ0FBQztJQUl3QyxDQUFDO0lBRXpELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDdEIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFjLEVBQUUsRUFBRTtZQUNyRyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdkMsQ0FBQzs4R0FuQlUsMkJBQTJCO2tHQUEzQiwyQkFBMkIseUdBRXJCLGlCQUFpQiw2QkNwQnBDLG9SQVdBOzsyRkRPYSwyQkFBMkI7a0JBTnZDLFNBQVM7K0JBQ0UseUJBQXlCLG1CQUVsQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUk7d0dBSTRCLEtBQUs7c0JBQWhELGVBQWU7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2tpcExpbmtEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3NraXAtbGluay5kaXJlY3RpdmUnO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIFF1ZXJ5TGlzdCxcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgT25EZXN0cm95LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBtZXJnZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RmLXNraXAtbGlua3MtY29udGFpbmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NraXAtbGlua3MtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgU2tpcExpbmtzQ29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcbiAgaW5Gb2N1cyA9IGZhbHNlO1xuICBAQ29udGVudENoaWxkcmVuKFNraXBMaW5rRGlyZWN0aXZlKSBwcml2YXRlIGxpbmtzITogUXVlcnlMaXN0PFNraXBMaW5rRGlyZWN0aXZlPjtcbiAgcHJpdmF0ZSBmb2N1c1N1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgaWYgKCF0aGlzLmxpbmtzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmZvY3VzU3Vic2NyaXB0aW9uID0gbWVyZ2UoLi4udGhpcy5saW5rcy5tYXAoKGxpbmspID0+IGxpbmsuaW5Gb2N1cykpLnN1YnNjcmliZSgoZm9jdXM6IGJvb2xlYW4pID0+IHtcbiAgICAgIHRoaXMuaW5Gb2N1cyA9IGZvY3VzO1xuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmZvY3VzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjxzZWN0aW9uIGNsYXNzPVwiZGYtc2tpcC1saW5rc19fc2VjdGlvblwiPlxuICA8ZGl2IGNsYXNzPVwiZGYtc2tpcC1saW5rc1wiPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiZGYtc2tpcC1saW5rc19fd3JhcCBsaXN0LWdyb3VwXCJcbiAgICAgIFtjbGFzcy5mb2N1c109XCJpbkZvY3VzXCJcbiAgICAgIChibHVyKT1cImluRm9jdXM9ZmFsc2VcIlxuICAgID5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3NlY3Rpb24+XG4iXX0=
@@ -0,0 +1,64 @@
1
+ import { Output, EventEmitter, Directive, HostListener, HostBinding, Inject } from '@angular/core';
2
+ import { DOCUMENT } from '@angular/common';
3
+ import * as i0 from "@angular/core";
4
+ export class SkipLinkDirective {
5
+ onFocus() {
6
+ this.inFocus.emit(true);
7
+ }
8
+ onClick() {
9
+ this.focusOnTarget();
10
+ }
11
+ onBlur() {
12
+ this.inFocus.emit(false);
13
+ }
14
+ constructor(element, document) {
15
+ this.element = element;
16
+ this.document = document;
17
+ this.class = 'list-group-item list-group-item-action';
18
+ this.inFocus = new EventEmitter();
19
+ }
20
+ focusOnTarget() {
21
+ const href = String(this.element.nativeElement.getAttribute('href'));
22
+ const parts = href.split('#');
23
+ if (parts.length < 2) {
24
+ return;
25
+ }
26
+ const id = parts.pop();
27
+ if (!id) {
28
+ return;
29
+ }
30
+ setTimeout(() => {
31
+ const target = this.document.getElementById(id);
32
+ if (target) {
33
+ target.focus();
34
+ this.onBlur();
35
+ }
36
+ });
37
+ }
38
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: SkipLinkDirective, deps: [{ token: i0.ElementRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive }); }
39
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.4", type: SkipLinkDirective, isStandalone: true, selector: "[dfSkipLink]", outputs: { inFocus: "inFocus" }, host: { listeners: { "focus": "onFocus()", "click": "onClick()", "blur": "onBlur()" }, properties: { "class": "this.class" } }, ngImport: i0 }); }
40
+ }
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: SkipLinkDirective, decorators: [{
42
+ type: Directive,
43
+ args: [{
44
+ selector: '[dfSkipLink]',
45
+ standalone: true
46
+ }]
47
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: undefined, decorators: [{
48
+ type: Inject,
49
+ args: [DOCUMENT]
50
+ }] }]; }, propDecorators: { class: [{
51
+ type: HostBinding
52
+ }], inFocus: [{
53
+ type: Output
54
+ }], onFocus: [{
55
+ type: HostListener,
56
+ args: ['focus']
57
+ }], onClick: [{
58
+ type: HostListener,
59
+ args: ['click']
60
+ }], onBlur: [{
61
+ type: HostListener,
62
+ args: ['blur']
63
+ }] } });
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tpcC1saW5rLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1mYWN0b3J5L3NyYy9saWIvYW5ndWxhci9hY2Nlc3NpYmlsaXR5L2RpcmVjdGl2ZXMvc2tpcC1saW5rLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBYyxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0csT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQU0zQyxNQUFNLE9BQU8saUJBQWlCO0lBS3JCLE9BQU87UUFDWixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRU0sT0FBTztRQUNaLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU0sTUFBTTtRQUNYLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxZQUE2QixPQUFtQixFQUFxQyxRQUFhO1FBQXJFLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFBcUMsYUFBUSxHQUFSLFFBQVEsQ0FBSztRQWhCbkYsVUFBSyxHQUFHLHdDQUF3QyxDQUFDO1FBaUI5RCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVPLGFBQWE7UUFDbkIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUIsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNwQixPQUFPO1NBQ1I7UUFDRCxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUNQLE9BQU87U0FDUjtRQUNELFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNoRCxJQUFJLE1BQU0sRUFBRTtnQkFDVixNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2YsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQ2Y7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBdENVLGlCQUFpQiw0Q0FpQjhCLFFBQVE7a0dBakJ2RCxpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBSjdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs7MEJBa0JvRCxNQUFNOzJCQUFDLFFBQVE7NENBaEJuRCxLQUFLO3NCQUFuQixXQUFXO2dCQUVGLE9BQU87c0JBQWhCLE1BQU07Z0JBRUEsT0FBTztzQkFEYixZQUFZO3VCQUFDLE9BQU87Z0JBS2QsT0FBTztzQkFEYixZQUFZO3VCQUFDLE9BQU87Z0JBS2QsTUFBTTtzQkFEWixZQUFZO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPdXRwdXQsIEV2ZW50RW1pdHRlciwgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIEhvc3RCaW5kaW5nLCBFbGVtZW50UmVmLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2RmU2tpcExpbmtdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBTa2lwTGlua0RpcmVjdGl2ZSB7XG4gIEBIb3N0QmluZGluZygpIGNsYXNzID0gJ2xpc3QtZ3JvdXAtaXRlbSBsaXN0LWdyb3VwLWl0ZW0tYWN0aW9uJztcblxuICBAT3V0cHV0KCkgaW5Gb2N1czogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xuICBASG9zdExpc3RlbmVyKCdmb2N1cycpXG4gIHB1YmxpYyBvbkZvY3VzKCkge1xuICAgIHRoaXMuaW5Gb2N1cy5lbWl0KHRydWUpO1xuICB9XG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgcHVibGljIG9uQ2xpY2soKSB7XG4gICAgdGhpcy5mb2N1c09uVGFyZ2V0KCk7XG4gIH1cbiAgQEhvc3RMaXN0ZW5lcignYmx1cicpXG4gIHB1YmxpYyBvbkJsdXIoKSB7XG4gICAgdGhpcy5pbkZvY3VzLmVtaXQoZmFsc2UpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBlbGVtZW50OiBFbGVtZW50UmVmLCBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50OiBhbnkpIHtcbiAgICB0aGlzLmluRm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIH1cblxuICBwcml2YXRlIGZvY3VzT25UYXJnZXQoKSB7XG4gICAgY29uc3QgaHJlZiA9IFN0cmluZyh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSk7XG4gICAgY29uc3QgcGFydHMgPSBocmVmLnNwbGl0KCcjJyk7XG4gICAgaWYgKHBhcnRzLmxlbmd0aCA8IDIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgaWQgPSBwYXJ0cy5wb3AoKTtcbiAgICBpZiAoIWlkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gdGhpcy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7XG4gICAgICBpZiAodGFyZ2V0KSB7XG4gICAgICAgIHRhcmdldC5mb2N1cygpO1xuICAgICAgICB0aGlzLm9uQmx1cigpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,17 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { NgbAlertModule } from '@ng-bootstrap/ng-bootstrap';
3
+ import { DfInsertIconModule } from '../icon/insert/insert-icon.module';
4
+ import * as i0 from "@angular/core";
5
+ export class DfAlertModule {
6
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfAlertModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.4", ngImport: i0, type: DfAlertModule, imports: [DfInsertIconModule], exports: [NgbAlertModule, DfInsertIconModule] }); }
8
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfAlertModule, imports: [DfInsertIconModule, NgbAlertModule, DfInsertIconModule] }); }
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfAlertModule, decorators: [{
11
+ type: NgModule,
12
+ args: [{
13
+ imports: [DfInsertIconModule],
14
+ exports: [NgbAlertModule, DfInsertIconModule]
15
+ }]
16
+ }] });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWZhY3Rvcnkvc3JjL2xpYi9hbmd1bGFyL2FsZXJ0L2FsZXJ0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFNdkUsTUFBTSxPQUFPLGFBQWE7OEdBQWIsYUFBYTsrR0FBYixhQUFhLFlBSGQsa0JBQWtCLGFBQ2xCLGNBQWMsRUFBRSxrQkFBa0I7K0dBRWpDLGFBQWEsWUFIZCxrQkFBa0IsRUFDbEIsY0FBYyxFQUFFLGtCQUFrQjs7MkZBRWpDLGFBQWE7a0JBSnpCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsa0JBQWtCLENBQUM7b0JBQzdCLE9BQU8sRUFBRSxDQUFDLGNBQWMsRUFBRSxrQkFBa0IsQ0FBQztpQkFDOUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdiQWxlcnRNb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBEZkluc2VydEljb25Nb2R1bGUgfSBmcm9tICcuLi9pY29uL2luc2VydC9pbnNlcnQtaWNvbi5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbRGZJbnNlcnRJY29uTW9kdWxlXSxcbiAgZXhwb3J0czogW05nYkFsZXJ0TW9kdWxlLCBEZkluc2VydEljb25Nb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIERmQWxlcnRNb2R1bGUge1xufVxuIl19
@@ -0,0 +1,76 @@
1
+ import { environment } from '../../../environment';
2
+ import { EMPTY, fromEvent, of, race, Subject, timer } from 'rxjs';
3
+ import { endWith, filter, takeUntil } from 'rxjs/operators';
4
+ import { getTransitionDurationMs, runInZone } from './util';
5
+ const noopFn = () => { };
6
+ const { transitionTimerDelayMs } = environment;
7
+ const runningTransitions = new Map();
8
+ export const ngbRunTransition = (zone, element, startFn, options) => {
9
+ // Getting initial context from options
10
+ let context = options.context || {};
11
+ // Checking if there are already running transitions on the given element.
12
+ const running = runningTransitions.get(element);
13
+ if (running) {
14
+ switch (options.runningTransition) {
15
+ // If there is one running and we want for it to 'continue' to run, we have to cancel the new one.
16
+ // We're not emitting any values, but simply completing the observable (EMPTY).
17
+ case 'continue':
18
+ return EMPTY;
19
+ // If there is one running and we want for it to 'stop', we have to complete the running one.
20
+ // We're simply completing the running one and not emitting any values and merging newly provided context
21
+ // with the one coming from currently running transition.
22
+ case 'stop':
23
+ zone.run(() => running.transition$.complete());
24
+ context = Object.assign(running.context, context);
25
+ runningTransitions.delete(element);
26
+ }
27
+ }
28
+ // Running the start function
29
+ const endFn = startFn(element, options.animation, context) || noopFn;
30
+ // If 'prefer-reduced-motion' is enabled, the 'transition' will be set to 'none'.
31
+ // If animations are disabled, we have to emit a value and complete the observable
32
+ // In this case we have to call the end function, but can finish immediately by emitting a value,
33
+ // completing the observable and executing end functions synchronously.
34
+ if (!options.animation || window.getComputedStyle(element).transitionProperty === 'none') {
35
+ zone.run(() => endFn());
36
+ return of(undefined).pipe(runInZone(zone));
37
+ }
38
+ // Starting a new transition
39
+ const transition$ = new Subject();
40
+ const finishTransition$ = new Subject();
41
+ const stop$ = transition$.pipe(endWith(true));
42
+ runningTransitions.set(element, {
43
+ transition$,
44
+ complete: () => {
45
+ finishTransition$.next({});
46
+ finishTransition$.complete();
47
+ },
48
+ context
49
+ });
50
+ const transitionDurationMs = getTransitionDurationMs(element);
51
+ // 1. We have to both listen for the 'transitionend' event and have a 'just-in-case' timer,
52
+ // because 'transitionend' event might not be fired in some browsers, if the transitioning
53
+ // element becomes invisible (ex. when scrolling, making browser tab inactive, etc.). The timer
54
+ // guarantees, that we'll release the DOM element and complete 'ngbRunTransition'.
55
+ // 2. We need to filter transition end events, because they might bubble from shorter transitions
56
+ // on inner DOM elements. We're only interested in the transition on the 'element' itself.
57
+ zone.runOutsideAngular(() => {
58
+ const transitionEnd$ = fromEvent(element, 'transitionend').pipe(takeUntil(stop$), filter(({ target }) => target === element));
59
+ const timer$ = timer(transitionDurationMs + transitionTimerDelayMs).pipe(takeUntil(stop$));
60
+ race(timer$, transitionEnd$, finishTransition$)
61
+ .pipe(takeUntil(stop$))
62
+ .subscribe(() => {
63
+ runningTransitions.delete(element);
64
+ zone.run(() => {
65
+ endFn();
66
+ transition$.next({});
67
+ transition$.complete();
68
+ });
69
+ });
70
+ });
71
+ return transition$.asObservable();
72
+ };
73
+ export const ngbCompleteTransition = (element) => {
74
+ runningTransitions.get(element)?.complete();
75
+ };
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdiVHJhbnNpdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1mYWN0b3J5L3NyYy9saWIvYW5ndWxhci9hbmltYXRpb24vbmdiVHJhbnNpdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQWMsRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFxQjVELE1BQU0sTUFBTSxHQUF1QixHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7QUFFNUMsTUFBTSxFQUFFLHNCQUFzQixFQUFFLEdBQUcsV0FBVyxDQUFDO0FBQy9DLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxHQUFHLEVBQXNDLENBQUM7QUFFekUsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FDOUIsSUFBWSxFQUNaLE9BQW9CLEVBQ3BCLE9BQWdDLEVBQ2hDLE9BQWdDLEVBQ1QsRUFBRTtJQUN6Qix1Q0FBdUM7SUFDdkMsSUFBSSxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sSUFBSyxFQUFRLENBQUM7SUFFM0MsMEVBQTBFO0lBQzFFLE1BQU0sT0FBTyxHQUFHLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoRCxJQUFJLE9BQU8sRUFBRTtRQUNYLFFBQVEsT0FBTyxDQUFDLGlCQUFpQixFQUFFO1lBQ2pDLGtHQUFrRztZQUNsRywrRUFBK0U7WUFDL0UsS0FBSyxVQUFVO2dCQUNiLE9BQU8sS0FBSyxDQUFD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QUFDLFlBQVksRUFBRSxDQUFDO0FBQ3BDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsT0FBb0IsRUFBRSxFQUFFO0lBQzVELGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQztBQUM5QyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGVudmlyb25tZW50IH0gZnJvbSAnLi4vLi4vLi4vZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgRU1QVFksIGZyb21FdmVudCwgT2JzZXJ2YWJsZSwgb2YsIHJhY2UsIFN1YmplY3QsIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBlbmRXaXRoLCBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGdldFRyYW5zaXRpb25EdXJhdGlvbk1zLCBydW5JblpvbmUgfSBmcm9tICcuL3V0aWwnO1xuXG5leHBvcnQgdHlwZSBOZ2JUcmFuc2l0aW9uU3RhcnRGbjxUID0gYW55PiA9IChcbiAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gIGFuaW1hdGlvbjogYm9vbGVhbixcbiAgY29udGV4dDogVFxuKSA9PiBOZ2JUcmFuc2l0aW9uRW5kRm4gfCB2b2lkO1xuZXhwb3J0IHR5cGUgTmdiVHJhbnNpdGlvbkVuZEZuID0gKCkgPT4gdm9pZDtcblxuZXhwb3J0IGludGVyZmFjZSBOZ2JUcmFuc2l0aW9uT3B0aW9uczxUPiB7XG4gIGFuaW1hdGlvbjogYm9vbGVhbjtcbiAgcnVubmluZ1RyYW5zaXRpb246ICdjb250aW51ZScgfCAnc3RvcCc7XG4gIGNvbnRleHQ/OiBUO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5nYlRyYW5zaXRpb25DdHg8VD4ge1xuICB0cmFuc2l0aW9uJDogU3ViamVjdDxhbnk+O1xuICBjb21wbGV0ZTogKCkgPT4gdm9pZDtcbiAgY29udGV4dDogVDtcbn1cblxuY29uc3Qgbm9vcEZuOiBOZ2JUcmFuc2l0aW9uRW5kRm4gPSAoKSA9PiB7fTtcblxuY29uc3QgeyB0cmFuc2l0aW9uVGltZXJEZWxheU1zIH0gPSBlbnZpcm9ubWVudDtcbmNvbnN0IHJ1bm5pbmdUcmFuc2l0aW9ucyA9IG5ldyBNYXA8SFRNTEVsZW1lbnQsIE5nYlRyYW5zaXRpb25DdHg8YW55Pj4oKTtcblxuZXhwb3J0IGNvbnN0IG5nYlJ1blRyYW5zaXRpb24gPSA8VD4oXG4gIHpvbmU6IE5nWm9uZSxcbiAgZWxlbWVudDogSFRNTEVsZW1lbnQsXG4gIHN0YXJ0Rm46IE5nYlRyYW5zaXRpb25TdGFydEZuPFQ+LFxuICBvcHRpb25zOiBOZ2JUcmFuc2l0aW9uT3B0aW9uczxUPlxuKTogT2JzZXJ2YWJsZTx1bmRlZmluZWQ+ID0+IHtcbiAgLy8gR2V0dGluZyBpbml0aWFsIGNvbnRleHQgZnJvbSBvcHRpb25zXG4gIGxldCBjb250ZXh0ID0gb3B0aW9ucy5jb250ZXh0IHx8ICh7fSBhcyBUKTtcblxuICAvLyBDaGVja2luZyBpZiB0aGVyZSBhcmUgYWxyZWFkeSBydW5uaW5nIHRyYW5zaXRpb25zIG9uIHRoZSBnaXZlbiBlbGVtZW50LlxuICBjb25zdCBydW5uaW5nID0gcnVubmluZ1RyYW5zaXRpb25zLmdldChlbGVtZW50KTtcbiAgaWYgKHJ1bm5pbmcpIHtcbiAgICBzd2l0Y2ggKG9wdGlvbnMucnVubmluZ1RyYW5zaXRpb24pIHtcbiAgICAgIC8vIElmIHRoZXJlIGlzIG9uZSBydW5uaW5nIGFuZCB3ZSB3YW50IGZvciBpdCB0byAnY29udGludWUnIHRvIHJ1biwgd2UgaGF2ZSB0byBjYW5jZWwgdGhlIG5ldyBvbmUuXG4gICAgICAvLyBXZSdyZSBub3QgZW1pdHRpbmcgYW55IHZhbHVlcywgYnV0IHNpbXBseSBjb21wbGV0aW5nIHRoZSBvYnNlcnZhYmxlIChFTVBUWSkuXG4gICAgICBjYXNlICdjb250aW51ZSc6XG4gICAgICAgIHJldHVybiBFTVBUWTtcbiAgICAgIC8vIElmIHRoZXJlIGlzIG9uZSBydW5uaW5nIGFuZCB3ZSB3YW50IGZvciBpdCB0byAnc3RvcCcsIHdlIGhhdmUgdG8gY29tcGxldGUgdGhlIHJ1bm5pbmcgb25lLlxuICAgICAgLy8gV2UncmUgc2ltcGx5IGNvbXBsZXRpbmcgdGhlIHJ1bm5pbmcgb25lIGFuZCBub3QgZW1pdHRpbmcgYW55IHZhbHVlcyBhbmQgbWVyZ2luZyBuZXdseSBwcm92aWRlZCBjb250ZXh0XG4gICAgICAvLyB3aXRoIHRoZSBvbmUgY29taW5nIGZyb20gY3VycmVudGx5IHJ1bm5pbmcgdHJhbnNpdGlvbi5cbiAgICAgIGNhc2UgJ3N0b3AnOlxuICAgICAgICB6b25lLnJ1bigoKSA9PiBydW5uaW5nLnRyYW5zaXRpb24kLmNvbXBsZXRlKCkpO1xuICAgICAgICBjb250ZXh0ID0gT2JqZWN0LmFzc2lnbihydW5uaW5nLmNvbnRleHQsIGNvbnRleHQpO1xuICAgICAgICBydW5uaW5nVHJhbnNpdGlvbnMuZGVsZXRlKGVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJ1bm5pbmcgdGhlIHN0YXJ0IGZ1bmN0aW9uXG4gIGNvbnN0IGVuZEZuID0gc3RhcnRGbihlbGVtZW50LCBvcHRpb25zLmFuaW1hdGlvbiwgY29udGV4dCkgfHwgbm9vcEZuO1xuXG4gIC8vIElmICdwcmVmZXItcmVkdWNlZC1tb3Rpb24nIGlzIGVuYWJsZWQsIHRoZSAndHJhbnNpdGlvbicgd2lsbCBiZSBzZXQgdG8gJ25vbmUnLlxuICAvLyBJZiBhbmltYXRpb25zIGFyZSBkaXNhYmxlZCwgd2UgaGF2ZSB0byBlbWl0IGEgdmFsdWUgYW5kIGNvbXBsZXRlIHRoZSBvYnNlcnZhYmxlXG4gIC8vIEluIHRoaXMgY2FzZSB3ZSBoYXZlIHRvIGNhbGwgdGhlIGVuZCBmdW5jdGlvbiwgYnV0IGNhbiBmaW5pc2ggaW1tZWRpYXRlbHkgYnkgZW1pdHRpbmcgYSB2YWx1ZSxcbiAgLy8gY29tcGxldGluZyB0aGUgb2JzZXJ2YWJsZSBhbmQgZXhlY3V0aW5nIGVuZCBmdW5jdGlvbnMgc3luY2hyb25vdXNseS5cbiAgaWYgKCFvcHRpb25zLmFuaW1hdGlvbiB8fCB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS50cmFuc2l0aW9uUHJvcGVydHkgPT09ICdub25lJykge1xuICAgIHpvbmUucnVuKCgpID0+IGVuZEZuKCkpO1xuICAgIHJldHVybiBvZih1bmRlZmluZWQpLnBpcGUocnVuSW5ab25lKHpvbmUpKTtcbiAgfVxuXG4gIC8vIFN0YXJ0aW5nIGEgbmV3IHRyYW5zaXRpb25cbiAgY29uc3QgdHJhbnNpdGlvbiQgPSBuZXcgU3ViamVjdDxhbnk+KCk7XG4gIGNvbnN0IGZpbmlzaFRyYW5zaXRpb24kID0gbmV3IFN1YmplY3Q8YW55PigpO1xuICBjb25zdCBzdG9wJCA9IHRyYW5zaXRpb24kLnBpcGUoZW5kV2l0aCh0cnVlKSk7XG4gIHJ1bm5pbmdUcmFuc2l0aW9ucy5zZXQoZWxlbWVudCwge1xuICAgIHRyYW5zaXRpb24kLFxuICAgIGNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICBmaW5pc2hUcmFuc2l0aW9uJC5uZXh0KHt9KTtcbiAgICAgIGZpbmlzaFRyYW5zaXRpb24kLmNvbXBsZXRlKCk7XG4gICAgfSxcbiAgICBjb250ZXh0XG4gIH0pO1xuXG4gIGNvbnN0IHRyYW5zaXRpb25EdXJhdGlvbk1zID0gZ2V0VHJhbnNpdGlvbkR1cmF0aW9uTXMoZWxlbWVudCk7XG5cbiAgLy8gMS4gV2UgaGF2ZSB0byBib3RoIGxpc3RlbiBmb3IgdGhlICd0cmFuc2l0aW9uZW5kJyBldmVudCBhbmQgaGF2ZSBhICdqdXN0LWluLWNhc2UnIHRpbWVyLFxuICAvLyBiZWNhdXNlICd0cmFuc2l0aW9uZW5kJyBldmVudCBtaWdodCBub3QgYmUgZmlyZWQgaW4gc29tZSBicm93c2VycywgaWYgdGhlIHRyYW5zaXRpb25pbmdcbiAgLy8gZWxlbWVudCBiZWNvbWVzIGludmlzaWJsZSAoZXguIHdoZW4gc2Nyb2xsaW5nLCBtYWtpbmcgYnJvd3NlciB0YWIgaW5hY3RpdmUsIGV0Yy4pLiBUaGUgdGltZXJcbiAgLy8gZ3VhcmFudGVlcywgdGhhdCB3ZSdsbCByZWxlYXNlIHRoZSBET00gZWxlbWVudCBhbmQgY29tcGxldGUgJ25nYlJ1blRyYW5zaXRpb24nLlxuICAvLyAyLiBXZSBuZWVkIHRvIGZpbHRlciB0cmFuc2l0aW9uIGVuZCBldmVudHMsIGJlY2F1c2UgdGhleSBtaWdodCBidWJibGUgZnJvbSBzaG9ydGVyIHRyYW5zaXRpb25zXG4gIC8vIG9uIGlubmVyIERPTSBlbGVtZW50cy4gV2UncmUgb25seSBpbnRlcmVzdGVkIGluIHRoZSB0cmFuc2l0aW9uIG9uIHRoZSAnZWxlbWVudCcgaXRzZWxmLlxuICB6b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICBjb25zdCB0cmFuc2l0aW9uRW5kJCA9IGZyb21FdmVudChlbGVtZW50LCAndHJhbnNpdGlvbmVuZCcpLnBpcGUoXG4gICAgICB0YWtlVW50aWwoc3RvcCQpLFxuICAgICAgZmlsdGVyKCh7IHRhcmdldCB9KSA9PiB0YXJnZXQgPT09IGVsZW1lbnQpXG4gICAgKTtcbiAgICBjb25zdCB0aW1lciQgPSB0aW1lcih0cmFuc2l0aW9uRHVyYXRpb25NcyArIHRyYW5zaXRpb25UaW1lckRlbGF5TXMpLnBpcGUodGFrZVVudGlsKHN0b3AkKSk7XG5cbiAgICByYWNlKHRpbWVyJCwgdHJhbnNpdGlvbkVuZCQsIGZpbmlzaFRyYW5zaXRpb24kKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHN0b3AkKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBydW5uaW5nVHJhbnNpdGlvbnMuZGVsZXRlKGVsZW1lbnQpO1xuICAgICAgICB6b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgZW5kRm4oKTtcbiAgICAgICAgICB0cmFuc2l0aW9uJC5uZXh0KHt9KTtcbiAgICAgICAgICB0cmFuc2l0aW9uJC5jb21wbGV0ZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICB9KTtcblxuICByZXR1cm4gdHJhbnNpdGlvbiQuYXNPYnNlcnZhYmxlKCk7XG59O1xuXG5leHBvcnQgY29uc3QgbmdiQ29tcGxldGVUcmFuc2l0aW9uID0gKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSA9PiB7XG4gIHJ1bm5pbmdUcmFuc2l0aW9ucy5nZXQoZWxlbWVudCk/LmNvbXBsZXRlKCk7XG59O1xuIl19
@@ -0,0 +1,30 @@
1
+ import { Observable } from 'rxjs';
2
+ /**
3
+ * Creates an observable where all callbacks are executed inside a given zone
4
+ *
5
+ * @param zone Angular Zone element
6
+ */
7
+ export function runInZone(zone) {
8
+ return source => {
9
+ return new Observable(observer => {
10
+ const onNext = (value) => zone.run(() => observer.next(value));
11
+ const onError = (e) => zone.run(() => observer.error(e));
12
+ const onComplete = () => zone.run(() => observer.complete());
13
+ return source.subscribe(onNext, onError, onComplete);
14
+ });
15
+ };
16
+ }
17
+ export function getTransitionDurationMs(element) {
18
+ const { transitionDelay, transitionDuration } = window.getComputedStyle(element);
19
+ const transitionDelaySec = parseFloat(transitionDelay);
20
+ const transitionDurationSec = parseFloat(transitionDuration);
21
+ return (transitionDelaySec + transitionDurationSec) * 1000;
22
+ }
23
+ /**
24
+ * Force a browser reflow
25
+ * @param element element where to apply the reflow
26
+ */
27
+ export function reflow(element) {
28
+ return (element || document.body).getBoundingClientRect();
29
+ }
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1mYWN0b3J5L3NyYy9saWIvYW5ndWxhci9hbmltYXRpb24vdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFvQixNQUFNLE1BQU0sQ0FBQztBQUVwRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBSSxJQUFZO0lBQ3ZDLE9BQU8sTUFBTSxDQUFDLEVBQUU7UUFDZCxPQUFPLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQy9CLE1BQU0sTUFBTSxHQUFHLENBQUMsS0FBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNsRSxNQUFNLE9BQU8sR0FBRyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUQsTUFBTSxVQUFVLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUM3RCxPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN2RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsT0FBb0I7SUFDMUQsTUFBTSxFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqRixNQUFNLGtCQUFrQixHQUFHLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN2RCxNQUFNLHFCQUFxQixHQUFHLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBRTdELE9BQU8sQ0FBQyxrQkFBa0IsR0FBRyxxQkFBcUIsQ0FBQyxHQUFHLElBQUksQ0FBQztBQUM3RCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLE1BQU0sQ0FBQyxPQUFvQjtJQUN6QyxPQUFPLENBQUMsT0FBTyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0FBQzVELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIE9wZXJhdG9yRnVuY3Rpb24gfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBDcmVhdGVzIGFuIG9ic2VydmFibGUgd2hlcmUgYWxsIGNhbGxiYWNrcyBhcmUgZXhlY3V0ZWQgaW5zaWRlIGEgZ2l2ZW4gem9uZVxuICpcbiAqIEBwYXJhbSB6b25lIEFuZ3VsYXIgWm9uZSBlbGVtZW50XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBydW5JblpvbmU8VD4oem9uZTogTmdab25lKTogT3BlcmF0b3JGdW5jdGlvbjxULCBUPiB7XG4gIHJldHVybiBzb3VyY2UgPT4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlciA9PiB7XG4gICAgICBjb25zdCBvbk5leHQgPSAodmFsdWU6IFQpID0+IHpvbmUucnVuKCgpID0+IG9ic2VydmVyLm5leHQodmFsdWUpKTtcbiAgICAgIGNvbnN0IG9uRXJyb3IgPSAoZTogYW55KSA9PiB6b25lLnJ1bigoKSA9PiBvYnNlcnZlci5lcnJvcihlKSk7XG4gICAgICBjb25zdCBvbkNvbXBsZXRlID0gKCkgPT4gem9uZS5ydW4oKCkgPT4gb2JzZXJ2ZXIuY29tcGxldGUoKSk7XG4gICAgICByZXR1cm4gc291cmNlLnN1YnNjcmliZShvbk5leHQsIG9uRXJyb3IsIG9uQ29tcGxldGUpO1xuICAgIH0pO1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHJhbnNpdGlvbkR1cmF0aW9uTXMoZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgY29uc3QgeyB0cmFuc2l0aW9uRGVsYXksIHRyYW5zaXRpb25EdXJhdGlvbiB9ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XG4gIGNvbnN0IHRyYW5zaXRpb25EZWxheVNlYyA9IHBhcnNlRmxvYXQodHJhbnNpdGlvbkRlbGF5KTtcbiAgY29uc3QgdHJhbnNpdGlvbkR1cmF0aW9uU2VjID0gcGFyc2VGbG9hdCh0cmFuc2l0aW9uRHVyYXRpb24pO1xuXG4gIHJldHVybiAodHJhbnNpdGlvbkRlbGF5U2VjICsgdHJhbnNpdGlvbkR1cmF0aW9uU2VjKSAqIDEwMDA7XG59XG5cbi8qKlxuICogRm9yY2UgYSBicm93c2VyIHJlZmxvd1xuICogQHBhcmFtIGVsZW1lbnQgZWxlbWVudCB3aGVyZSB0byBhcHBseSB0aGUgcmVmbG93XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWZsb3coZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgcmV0dXJuIChlbGVtZW50IHx8IGRvY3VtZW50LmJvZHkpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xufVxuIl19
@@ -0,0 +1,17 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { DfManageCardSelectionDirective } from './manage-card-selection.directive';
3
+ import * as i0 from "@angular/core";
4
+ export { DfManageCardSelectionDirective } from './manage-card-selection.directive';
5
+ export class DfAdvancedCardModule {
6
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfAdvancedCardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.4", ngImport: i0, type: DfAdvancedCardModule, imports: [DfManageCardSelectionDirective], exports: [DfManageCardSelectionDirective] }); }
8
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfAdvancedCardModule }); }
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfAdvancedCardModule, decorators: [{
11
+ type: NgModule,
12
+ args: [{
13
+ imports: [DfManageCardSelectionDirective],
14
+ exports: [DfManageCardSelectionDirective]
15
+ }]
16
+ }] });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1hZHZhbmNlZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tZmFjdG9yeS9zcmMvbGliL2FuZ3VsYXIvY2FyZC9jYXJkLWFkdmFuY2VkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOztBQUVuRixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQU1uRixNQUFNLE9BQU8sb0JBQW9COzhHQUFwQixvQkFBb0I7K0dBQXBCLG9CQUFvQixZQUhyQiw4QkFBOEIsYUFDOUIsOEJBQThCOytHQUU3QixvQkFBb0I7OzJGQUFwQixvQkFBb0I7a0JBSmhDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsOEJBQThCLENBQUM7b0JBQ3pDLE9BQU8sRUFBRSxDQUFDLDhCQUE4QixDQUFDO2lCQUMxQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEZk1hbmFnZUNhcmRTZWxlY3Rpb25EaXJlY3RpdmUgfSBmcm9tICcuL21hbmFnZS1jYXJkLXNlbGVjdGlvbi5kaXJlY3RpdmUnO1xuXG5leHBvcnQgeyBEZk1hbmFnZUNhcmRTZWxlY3Rpb25EaXJlY3RpdmUgfSBmcm9tICcuL21hbmFnZS1jYXJkLXNlbGVjdGlvbi5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbRGZNYW5hZ2VDYXJkU2VsZWN0aW9uRGlyZWN0aXZlXSxcbiAgZXhwb3J0czogW0RmTWFuYWdlQ2FyZFNlbGVjdGlvbkRpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgRGZBZHZhbmNlZENhcmRNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,47 @@
1
+ import { Directive, HostListener, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class DfManageCardSelectionDirective {
4
+ set dfManageCardSelected(isSelected) {
5
+ const selectedClass = 'df-card-selected';
6
+ if (isSelected === true) {
7
+ this.renderer.addClass(this.element.nativeElement, selectedClass);
8
+ }
9
+ else {
10
+ this.renderer.removeClass(this.element.nativeElement, selectedClass);
11
+ }
12
+ }
13
+ constructor(element, renderer) {
14
+ this.element = element;
15
+ this.renderer = renderer;
16
+ }
17
+ ngAfterViewInit() {
18
+ this.input = this.element.nativeElement.querySelector('.form-check-input');
19
+ this.renderer.setAttribute(this.input, 'tabIndex', '-1');
20
+ }
21
+ click(event) {
22
+ const target = event.target;
23
+ // If the input or the label is clicked then the selection is already made
24
+ // The card must have only one input
25
+ if (!(target.classList.contains('form-check-input') || target.classList.contains('form-check-label'))) {
26
+ this.input.click();
27
+ }
28
+ else {
29
+ this.element.nativeElement.focus();
30
+ }
31
+ }
32
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfManageCardSelectionDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
33
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.4", type: DfManageCardSelectionDirective, isStandalone: true, selector: "[dfManageCardSelected]", inputs: { dfManageCardSelected: "dfManageCardSelected" }, host: { listeners: { "click": "click($event)" } }, ngImport: i0 }); }
34
+ }
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfManageCardSelectionDirective, decorators: [{
36
+ type: Directive,
37
+ args: [{
38
+ selector: '[dfManageCardSelected]',
39
+ standalone: true
40
+ }]
41
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { dfManageCardSelected: [{
42
+ type: Input
43
+ }], click: [{
44
+ type: HostListener,
45
+ args: ['click', ['$event']]
46
+ }] } });
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlLWNhcmQtc2VsZWN0aW9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1mYWN0b3J5L3NyYy9saWIvYW5ndWxhci9jYXJkL21hbmFnZS1jYXJkLXNlbGVjdGlvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQTRCLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNckcsTUFBTSxPQUFPLDhCQUE4QjtJQUd6QyxJQUFhLG9CQUFvQixDQUFDLFVBQW1CO1FBQ25ELE1BQU0sYUFBYSxHQUFHLGtCQUFrQixDQUFDO1FBQ3pDLElBQUksVUFBVSxLQUFLLElBQUksRUFBRTtZQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsQ0FBQztTQUNuRTthQUFNO1lBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLENBQUM7U0FDdEU7SUFDSCxDQUFDO0lBRUQsWUFBNkIsT0FBbUIsRUFBbUIsUUFBbUI7UUFBekQsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUFtQixhQUFRLEdBQVIsUUFBUSxDQUFXO0lBQUcsQ0FBQztJQUUxRixlQUFlO1FBQ2IsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBR0QsS0FBSyxDQUFDLEtBQVU7UUFDZCxNQUFNLE1BQU0sR0FBZ0IsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUN6QywwRUFBMEU7UUFDMUUsb0NBQW9DO1FBQ3BDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxFQUFFO1lBQ3JHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDcEI7YUFBTTtZQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQzs4R0E3QlUsOEJBQThCO2tHQUE5Qiw4QkFBOEI7OzJGQUE5Qiw4QkFBOEI7a0JBSjFDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCO3lIQUljLG9CQUFvQjtzQkFBaEMsS0FBSztnQkFpQk4sS0FBSztzQkFESixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBBZnRlclZpZXdJbml0LCBSZW5kZXJlcjIsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tkZk1hbmFnZUNhcmRTZWxlY3RlZF0nLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERmTWFuYWdlQ2FyZFNlbGVjdGlvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBwcml2YXRlIGlucHV0ITogSFRNTElucHV0RWxlbWVudDtcblxuICBASW5wdXQoKSBzZXQgZGZNYW5hZ2VDYXJkU2VsZWN0ZWQoaXNTZWxlY3RlZDogYm9vbGVhbikge1xuICAgIGNvbnN0IHNlbGVjdGVkQ2xhc3MgPSAnZGYtY2FyZC1zZWxlY3RlZCc7XG4gICAgaWYgKGlzU2VsZWN0ZWQgPT09IHRydWUpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIHNlbGVjdGVkQ2xhc3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCBzZWxlY3RlZENsYXNzKTtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnQ6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXI6IFJlbmRlcmVyMikge31cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5pbnB1dCA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5mb3JtLWNoZWNrLWlucHV0Jyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5pbnB1dCwgJ3RhYkluZGV4JywgJy0xJyk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gIGNsaWNrKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCB0YXJnZXQ6IEhUTUxFbGVtZW50ID0gZXZlbnQudGFyZ2V0O1xuICAgIC8vIElmIHRoZSBpbnB1dCBvciB0aGUgbGFiZWwgaXMgY2xpY2tlZCB0aGVuIHRoZSBzZWxlY3Rpb24gaXMgYWxyZWFkeSBtYWRlXG4gICAgLy8gVGhlIGNhcmQgbXVzdCBoYXZlIG9ubHkgb25lIGlucHV0XG4gICAgaWYgKCEodGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygnZm9ybS1jaGVjay1pbnB1dCcpIHx8IHRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoJ2Zvcm0tY2hlY2stbGFiZWwnKSkpIHtcbiAgICAgIHRoaXMuaW5wdXQuY2xpY2soKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,38 @@
1
+ import { Directive, HostListener, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class CloseInputDatePickerDirective {
4
+ constructor(elementRef) {
5
+ this.elementRef = elementRef;
6
+ }
7
+ onClick(targetElement) {
8
+ const isConnected = document.body.parentElement.contains(targetElement);
9
+ // targetElement.isConnected to check if it is attached to the DOM
10
+ if (!targetElement || !isConnected || !this.inputDatePicker._cRef) {
11
+ return;
12
+ }
13
+ const clickedInside = this.inputDatePicker._cRef.location.nativeElement.contains(targetElement);
14
+ const clickedInsideInput = this.elementRef.nativeElement.contains(targetElement);
15
+ if (!(clickedInside || clickedInsideInput)) {
16
+ this.inputDatePicker.close();
17
+ }
18
+ }
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: CloseInputDatePickerDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
20
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.4", type: CloseInputDatePickerDirective, isStandalone: true, selector: "[dfCloseInputDatePicker]", inputs: { inputDatePicker: ["dfCloseInputDatePicker", "inputDatePicker"] }, host: { listeners: { "document:click": "onClick($event.target)", "document:keyup": "onClick($event.target)" } }, ngImport: i0 }); }
21
+ }
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: CloseInputDatePickerDirective, decorators: [{
23
+ type: Directive,
24
+ args: [{
25
+ selector: '[dfCloseInputDatePicker]',
26
+ standalone: true
27
+ }]
28
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { inputDatePicker: [{
29
+ type: Input,
30
+ args: ['dfCloseInputDatePicker']
31
+ }], onClick: [{
32
+ type: HostListener,
33
+ args: ['document:click', ['$event.target']]
34
+ }, {
35
+ type: HostListener,
36
+ args: ['document:keyup', ['$event.target']]
37
+ }] } });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvc2VkYXRlcGlja2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1mYWN0b3J5L3NyYy9saWIvYW5ndWxhci9kYXRlcGlja2VyL2Nsb3NlZGF0ZXBpY2tlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFjLE1BQU0sZUFBZSxDQUFDOztBQU0zRSxNQUFNLE9BQU8sNkJBQTZCO0lBSXhDLFlBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7SUFBRyxDQUFDO0lBSXZDLE9BQU8sQ0FBQyxhQUFrQjtRQUMvQixNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWMsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDekUsa0VBQWtFO1FBQ2xFLElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRTtZQUNqRSxPQUFPO1NBQ1I7UUFDRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNoRyxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNqRixJQUFJLENBQUMsQ0FBQyxhQUFhLElBQUksa0JBQWtCLENBQUMsRUFBRTtZQUMxQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQzlCO0lBQ0gsQ0FBQzs4R0FuQlUsNkJBQTZCO2tHQUE3Qiw2QkFBNkI7OzJGQUE3Qiw2QkFBNkI7a0JBSnpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCO2lHQUdRLGVBQWU7c0JBRHJCLEtBQUs7dUJBQUMsd0JBQXdCO2dCQU94QixPQUFPO3NCQUZiLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxlQUFlLENBQUM7O3NCQUNoRCxZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIElucHV0LCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tkZkNsb3NlSW5wdXREYXRlUGlja2VyXScsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQ2xvc2VJbnB1dERhdGVQaWNrZXJEaXJlY3RpdmUge1xuICBASW5wdXQoJ2RmQ2xvc2VJbnB1dERhdGVQaWNrZXInKVxuICBwdWJsaWMgaW5wdXREYXRlUGlja2VyOiBhbnk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQudGFyZ2V0J10pXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleXVwJywgWyckZXZlbnQudGFyZ2V0J10pXG4gIHB1YmxpYyBvbkNsaWNrKHRhcmdldEVsZW1lbnQ6IGFueSkge1xuICAgIGNvbnN0IGlzQ29ubmVjdGVkID0gZG9jdW1lbnQuYm9keS5wYXJlbnRFbGVtZW50IS5jb250YWlucyh0YXJnZXRFbGVtZW50KTtcbiAgICAvLyB0YXJnZXRFbGVtZW50LmlzQ29ubmVjdGVkIHRvIGNoZWNrIGlmIGl0IGlzIGF0dGFjaGVkIHRvIHRoZSBET01cbiAgICBpZiAoIXRhcmdldEVsZW1lbnQgfHwgIWlzQ29ubmVjdGVkIHx8ICF0aGlzLmlucHV0RGF0ZVBpY2tlci5fY1JlZikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjbGlja2VkSW5zaWRlID0gdGhpcy5pbnB1dERhdGVQaWNrZXIuX2NSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudC5jb250YWlucyh0YXJnZXRFbGVtZW50KTtcbiAgICBjb25zdCBjbGlja2VkSW5zaWRlSW5wdXQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyh0YXJnZXRFbGVtZW50KTtcbiAgICBpZiAoIShjbGlja2VkSW5zaWRlIHx8IGNsaWNrZWRJbnNpZGVJbnB1dCkpIHtcbiAgICAgIHRoaXMuaW5wdXREYXRlUGlja2VyLmNsb3NlKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,39 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { NgbDatepickerKeyboardService } from '@ng-bootstrap/ng-bootstrap';
3
+ import * as i0 from "@angular/core";
4
+ const Key = {
5
+ PageUp: 'PageUp',
6
+ PageDown: 'PageDown',
7
+ End: 'End',
8
+ Home: 'Home'
9
+ };
10
+ export class DfDatepickerKeyboardService extends NgbDatepickerKeyboardService {
11
+ processKey(event, dp) {
12
+ const { state, calendar } = dp;
13
+ switch (event.code) {
14
+ case Key.PageUp:
15
+ dp.focusDate(calendar.getPrev(state.focusedDate, event.altKey ? 'y' : 'm'));
16
+ break;
17
+ case Key.PageDown:
18
+ dp.focusDate(calendar.getNext(state.focusedDate, event.altKey ? 'y' : 'm'));
19
+ break;
20
+ case Key.End:
21
+ dp.focusDate(event.altKey ? state.maxDate : state.lastDate);
22
+ break;
23
+ case Key.Home:
24
+ dp.focusDate(event.altKey ? state.minDate : state.firstDate);
25
+ break;
26
+ default:
27
+ super.processKey(event, dp);
28
+ return;
29
+ }
30
+ event.preventDefault();
31
+ event.stopPropagation();
32
+ }
33
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfDatepickerKeyboardService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
34
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfDatepickerKeyboardService }); }
35
+ }
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfDatepickerKeyboardService, decorators: [{
37
+ type: Injectable
38
+ }] });
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1rZXlib2FyZC1uYXYuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1mYWN0b3J5L3NyYy9saWIvYW5ndWxhci9kYXRlcGlja2VyL2RhdGVwaWNrZXIta2V5Ym9hcmQtbmF2LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWlCLDRCQUE0QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBRXpGLE1BQU0sR0FBRyxHQUFHO0lBQ1YsTUFBTSxFQUFFLFFBQVE7SUFDaEIsUUFBUSxFQUFFLFVBQVU7SUFDcEIsR0FBRyxFQUFFLEtBQUs7SUFDVixJQUFJLEVBQUUsTUFBTTtDQUNiLENBQUM7QUFHRixNQUFNLE9BQU8sMkJBQTRCLFNBQVEsNEJBQTRCO0lBQ2xFLFVBQVUsQ0FBQyxLQUFvQixFQUFFLEVBQWlCO1FBQ3pELE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQy9CLFFBQVEsS0FBSyxDQUFDLElBQUksRUFBRTtZQUNsQixLQUFLLEdBQUcsQ0FBQyxNQUFNO2dCQUNiLEVBQUUsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDNUUsTUFBTTtZQUNSLEtBQUssR0FBRyxDQUFDLFFBQVE7Z0JBQ2YsRUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUM1RSxNQUFNO1lBQ1IsS0FBSyxHQUFHLENBQUMsR0FBRztnQkFDVixFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDNUQsTUFBTTtZQUNSLEtBQUssR0FBRyxDQUFDLElBQUk7Z0JBQ1gsRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQzdELE1BQU07WUFDUjtnQkFDRSxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDNUIsT0FBTztTQUNWO1FBQ0QsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMxQixDQUFDOzhHQXRCVSwyQkFBMkI7a0hBQTNCLDJCQUEyQjs7MkZBQTNCLDJCQUEyQjtrQkFEdkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nYkRhdGVwaWNrZXIsIE5nYkRhdGVwaWNrZXJLZXlib2FyZFNlcnZpY2UgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XG5cbmNvbnN0IEtleSA9IHtcbiAgUGFnZVVwOiAnUGFnZVVwJyxcbiAgUGFnZURvd246ICdQYWdlRG93bicsXG4gIEVuZDogJ0VuZCcsXG4gIEhvbWU6ICdIb21lJ1xufTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERmRGF0ZXBpY2tlcktleWJvYXJkU2VydmljZSBleHRlbmRzIE5nYkRhdGVwaWNrZXJLZXlib2FyZFNlcnZpY2Uge1xuICBvdmVycmlkZSBwcm9jZXNzS2V5KGV2ZW50OiBLZXlib2FyZEV2ZW50LCBkcDogTmdiRGF0ZXBpY2tlcikge1xuICAgIGNvbnN0IHsgc3RhdGUsIGNhbGVuZGFyIH0gPSBkcDtcbiAgICBzd2l0Y2ggKGV2ZW50LmNvZGUpIHtcbiAgICAgIGNhc2UgS2V5LlBhZ2VVcDpcbiAgICAgICAgZHAuZm9jdXNEYXRlKGNhbGVuZGFyLmdldFByZXYoc3RhdGUuZm9jdXNlZERhdGUsIGV2ZW50LmFsdEtleSA/ICd5JyA6ICdtJykpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgS2V5LlBhZ2VEb3duOlxuICAgICAgICBkcC5mb2N1c0RhdGUoY2FsZW5kYXIuZ2V0TmV4dChzdGF0ZS5mb2N1c2VkRGF0ZSwgZXZlbnQuYWx0S2V5ID8gJ3knIDogJ20nKSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBLZXkuRW5kOlxuICAgICAgICBkcC5mb2N1c0RhdGUoZXZlbnQuYWx0S2V5ID8gc3RhdGUubWF4RGF0ZSA6IHN0YXRlLmxhc3REYXRlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEtleS5Ib21lOlxuICAgICAgICBkcC5mb2N1c0RhdGUoZXZlbnQuYWx0S2V5ID8gc3RhdGUubWluRGF0ZSA6IHN0YXRlLmZpcnN0RGF0ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgc3VwZXIucHJvY2Vzc0tleShldmVudCwgZHApO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,101 @@
1
+ import { Directive } from '@angular/core';
2
+ import { RightToLeftDirectionEnum } from '../right-to-left/directionDetection.service';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../right-to-left/directionDetection.service";
5
+ /**
6
+ * My dfDatepickerRange directive
7
+ */
8
+ export class DfDatepickerRangeDirective {
9
+ constructor(renderer, el, dfDirectionServ) {
10
+ this.renderer = renderer;
11
+ this.el = el;
12
+ this.dfDirectionServ = dfDirectionServ;
13
+ this.isDisabled = false;
14
+ this.siblingsNode = [];
15
+ this.removeListener = [];
16
+ this.focusState = [];
17
+ }
18
+ ngOnInit() {
19
+ this.renderer.addClass(this.el.nativeElement, 'df-input-datepicker-range');
20
+ this.inputsElements = [...this.el.nativeElement.querySelectorAll('input')];
21
+ if (this.inputsElements.length === 2) {
22
+ this.inputsElements.forEach((el, index) => this.initInput(el, index));
23
+ }
24
+ }
25
+ initInput(el, index) {
26
+ this.renderer.addClass(el, 'df-input-withicon');
27
+ this.renderer.addClass(el, 'append');
28
+ this.renderer.addClass(el.parentNode, 'df-input-append');
29
+ const sibling = el.parentNode.querySelector('.input-group-append');
30
+ if (sibling) {
31
+ this.siblingsNode.push(sibling);
32
+ }
33
+ this.removeListener.push(this.renderer.listen(el, 'focus', () => {
34
+ this.focusState[index] = true;
35
+ this.renderer.addClass(this.el.nativeElement, 'df-focused');
36
+ }));
37
+ this.removeListener.push(this.renderer.listen(el, 'blur', () => {
38
+ this.focusState[index] = false;
39
+ setTimeout(() => this.removeFocus(), 10);
40
+ }));
41
+ }
42
+ removeFocus() {
43
+ if (!this.focusState.reduce((prev, curr) => prev || curr)) {
44
+ this.renderer.removeClass(this.el.nativeElement, 'df-focused');
45
+ }
46
+ }
47
+ ngAfterViewInit() {
48
+ this.updateDirection();
49
+ }
50
+ /**
51
+ * You need to manually update the direction or update the icon
52
+ * if the direction (rtl / ltr) is changing dynamically
53
+ */
54
+ updateDirection() {
55
+ const currentDirection = this.dfDirectionServ.getPageDirection(this.el);
56
+ if (this.direction !== currentDirection) {
57
+ this.direction = currentDirection;
58
+ const icon = this.el.nativeElement.querySelector('.icon-long-arrow-right') ||
59
+ this.el.nativeElement.querySelector('.icon-long-arrow-left');
60
+ if (icon) {
61
+ if (currentDirection === RightToLeftDirectionEnum.RightToLeft) {
62
+ this.renderer.removeClass(icon, 'icon-long-arrow-right');
63
+ this.renderer.addClass(icon, 'icon-long-arrow-left');
64
+ }
65
+ else {
66
+ this.renderer.removeClass(icon, 'icon-long-arrow-left');
67
+ this.renderer.addClass(icon, 'icon-long-arrow-right');
68
+ }
69
+ }
70
+ }
71
+ }
72
+ ngDoCheck() {
73
+ // Update this to support disabled
74
+ const currentStatus = this.inputsElements.reduce((prev, current) => prev || current.disabled, false);
75
+ if (this.isDisabled !== currentStatus) {
76
+ this.isDisabled = currentStatus;
77
+ this.siblingsNode.forEach(siblings => {
78
+ if (this.isDisabled) {
79
+ this.renderer.addClass(siblings, 'df-disabled');
80
+ }
81
+ else {
82
+ this.renderer.removeClass(siblings, 'df-disabled');
83
+ }
84
+ });
85
+ }
86
+ }
87
+ ngOnDestroy() {
88
+ this.removeListener.forEach(item => item());
89
+ }
90
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfDatepickerRangeDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.DfDirectionDetectionService }], target: i0.ɵɵFactoryTarget.Directive }); }
91
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.4", type: DfDatepickerRangeDirective, isStandalone: true, selector: "[dfDatepickerRange]", exportAs: ["dfDatepickerRange"], ngImport: i0 }); }
92
+ }
93
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.4", ngImport: i0, type: DfDatepickerRangeDirective, decorators: [{
94
+ type: Directive,
95
+ args: [{
96
+ exportAs: 'dfDatepickerRange',
97
+ selector: '[dfDatepickerRange]',
98
+ standalone: true
99
+ }]
100
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.DfDirectionDetectionService }]; } });
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1yYW5nZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tZmFjdG9yeS9zcmMvbGliL2FuZ3VsYXIvZGF0ZXBpY2tlci9kYXRlcGlja2VyLXJhbmdlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFvRSxNQUFNLGVBQWUsQ0FBQztBQUM1RyxPQUFPLEVBQStCLHdCQUF3QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7OztBQUVwSDs7R0FFRztBQU1ILE1BQU0sT0FBTywwQkFBMEI7SUFRckMsWUFDbUIsUUFBbUIsRUFDcEIsRUFBYyxFQUNiLGVBQTRDO1FBRjVDLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDcEIsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUNiLG9CQUFlLEdBQWYsZUFBZSxDQUE2QjtRQVR2RCxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ1YsaUJBQVksR0FBYyxFQUFFLENBQUM7UUFDN0IsbUJBQWMsR0FBbUIsRUFBRSxDQUFDO1FBQzdDLGVBQVUsR0FBYyxFQUFFLENBQUM7SUFPaEMsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSwyQkFBMkIsQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDM0UsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDcEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUs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LFFBQVEsQ0FBQyxJQUFJLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztpQkFDdkQ7YUFDRjtTQUNGO0lBQ0gsQ0FBQztJQUVELFNBQVM7UUFDUCxrQ0FBa0M7UUFDbEMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNyRyxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssYUFBYSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxVQUFVLEdBQUcsYUFBYSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUNuQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7b0JBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQztpQkFDakQ7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDO2lCQUNwRDtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5QyxDQUFDOzhHQTlGVSwwQkFBMEI7a0dBQTFCLDBCQUEwQjs7MkZBQTFCLDBCQUEwQjtrQkFMdEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixRQUFRLEVBQUUscUJBQXFCO29CQUMvQixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIFJlbmRlcmVyMiwgT25Jbml0LCBPbkRlc3Ryb3ksIERvQ2hlY2ssIEFmdGVyVmlld0luaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERmRGlyZWN0aW9uRGV0ZWN0aW9uU2VydmljZSwgUmlnaHRUb0xlZnREaXJlY3Rpb25FbnVtIH0gZnJvbSAnLi4vcmlnaHQtdG8tbGVmdC9kaXJlY3Rpb25EZXRlY3Rpb24uc2VydmljZSc7XG5cbi8qKlxuICogTXkgZGZEYXRlcGlja2VyUmFuZ2UgZGlyZWN0aXZlXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBleHBvcnRBczogJ2RmRGF0ZXBpY2tlclJhbmdlJyxcbiAgc2VsZWN0b3I6ICdbZGZEYXRlcGlja2VyUmFuZ2VdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBEZkRhdGVwaWNrZXJSYW5nZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBEb0NoZWNrLCBBZnRlclZpZXdJbml0IHtcbiAgcHJpdmF0ZSBpbnB1dHNFbGVtZW50cyE6IEhUTUxJbnB1dEVsZW1lbnRbXTtcbiAgcHJpdmF0ZSBpc0Rpc2FibGVkID0gZmFsc2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2libGluZ3NOb2RlOiBFbGVtZW50W10gPSBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSByZW1vdmVMaXN0ZW5lcjogKCgpID0+IHZvaWQpW10gPSBbXTtcbiAgcHJpdmF0ZSBmb2N1c1N0YXRlOiBib29sZWFuW10gPSBbXTtcbiAgcHJpdmF0ZSBkaXJlY3Rpb24/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHB1YmxpYyByZWFkb25seSBlbDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRmRGlyZWN0aW9uU2VydjogRGZEaXJlY3Rpb25EZXRlY3Rpb25TZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2RmLWlucHV0LWRhdGVwaWNrZXItcmFuZ2UnKTtcbiAgICB0aGlzLmlucHV0c0VsZW1lbnRzID0gWy4uLnRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dCcpXTtcbiAgICBpZiAodGhpcy5pbnB1dHNFbGVtZW50cy5sZW5ndGggPT09IDIpIHtcbiAgICAgIHRoaXMuaW5wdXRzRWxlbWVudHMuZm9yRWFjaCgoZWwsIGluZGV4KSA9PiB0aGlzLmluaXRJbnB1dChlbCwgaW5kZXgpKTtcbiAgICB9XG4gIH1cblxuICBpbml0SW5wdXQoZWw6IEhUTUxJbnB1dEVsZW1lbnQsIGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGVsLCAnZGYtaW5wdXQtd2l0aGljb24nKTtcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGVsLCAnYXBwZW5kJyk7XG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhlbC5wYXJlbnROb2RlLCAnZGYtaW5wdXQtYXBwZW5kJyk7XG4gICAgY29uc3Qgc2libGluZyA9IGVsLnBhcmVudE5vZGUhLnF1ZXJ5U2VsZWN0b3IoJy5pbnB1dC1ncm91cC1hcHBlbmQnKTtcbiAgICBpZiAoc2libGluZykge1xuICAgICAgdGhpcy5zaWJsaW5nc05vZGUucHVzaChzaWJsaW5nKTtcbiAgICB9XG4gICAgdGhpcy5yZW1vdmVMaXN0ZW5lci5wdXNoKFxuICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4oZWwsICdmb2N1cycsICgpID0+IHtcbiAgICAgICAgdGhpcy5mb2N1c1N0YXRlW2luZGV4XSA9IHRydWU7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnZGYtZm9jdXNlZCcpO1xuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIucHVzaChcbiAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKGVsLCAnYmx1cicsICgpID0+IHtcbiAgICAgICAgdGhpcy5mb2N1c1N0YXRlW2luZGV4XSA9IGZhbHNlO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucmVtb3ZlRm9jdXMoKSwgMTApO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcmVtb3ZlRm9jdXMoKSB7XG4gICAgaWYgKCF0aGlzLmZvY3VzU3RhdGUucmVkdWNlKChwcmV2LCBjdXJyKSA9PiBwcmV2IHx8IGN1cnIpKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2RmLWZvY3VzZWQnKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy51cGRhdGVEaXJlY3Rpb24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBZb3UgbmVlZCB0byBtYW51YWxseSB1cGRhdGUgdGhlIGRpcmVjdGlvbiBvciB1cGRhdGUgdGhlIGljb25cbiAgICogaWYgdGhlIGRpcmVjdGlvbiAocnRsIC8gbHRyKSBpcyBjaGFuZ2luZyBkeW5hbWljYWxseVxuICAgKi9cbiAgdXBkYXRlRGlyZWN0aW9uKCkge1xuICAgIGNvbnN0IGN1cnJlbnREaXJlY3Rpb24gPSB0aGlzLmRmRGlyZWN0aW9uU2Vydi5nZXRQYWdlRGlyZWN0aW9uKHRoaXMuZWwpO1xuICAgIGlmICh0aGlzLmRpcmVjdGlvbiAhPT0gY3VycmVudERpcmVjdGlvbikge1xuICAgICAgdGhpcy5kaXJlY3Rpb24gPSBjdXJyZW50RGlyZWN0aW9uO1xuICAgICAgY29uc3QgaWNvbiA9XG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuaWNvbi1sb25nLWFycm93LXJpZ2h0JykgfHxcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5pY29uLWxvbmctYXJyb3ctbGVmdCcpO1xuICAgICAgaWYgKGljb24pIHtcbiAgICAgICAgaWYgKGN1cnJlbnREaXJlY3Rpb24gPT09IFJpZ2h0VG9MZWZ0RGlyZWN0aW9uRW51bS5SaWdodFRvTGVmdCkge1xuICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoaWNvbiwgJ2ljb24tbG9uZy1hcnJvdy1yaWdodCcpO1xuICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoaWNvbiwgJ2ljb24tbG9uZy1hcnJvdy1sZWZ0Jyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhpY29uLCAnaWNvbi1sb25nLWFycm93LWxlZnQnKTtcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGljb24sICdpY29uLWxvbmctYXJyb3ctcmlnaHQnKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nRG9DaGVjaygpIHtcbiAgICAvLyBVcGRhdGUgdGhpcyB0byBzdXBwb3J0IGRpc2FibGVkXG4gICAgY29uc3QgY3VycmVudFN0YXR1cyA9IHRoaXMuaW5wdXRzRWxlbWVudHMucmVkdWNlKChwcmV2LCBjdXJyZW50KSA9PiBwcmV2IHx8IGN1cnJlbnQuZGlzYWJsZWQsIGZhbHNlKTtcbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkICE9PSBjdXJyZW50U3RhdHVzKSB7XG4gICAgICB0aGlzLmlzRGlzYWJsZWQgPSBjdXJyZW50U3RhdHVzO1xuICAgICAgdGhpcy5zaWJsaW5nc05vZGUuZm9yRWFjaChzaWJsaW5ncyA9PiB7XG4gICAgICAgIGlmICh0aGlzLmlzRGlzYWJsZWQpIHtcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHNpYmxpbmdzLCAnZGYtZGlzYWJsZWQnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHNpYmxpbmdzLCAnZGYtZGlzYWJsZWQnKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5yZW1vdmVMaXN0ZW5lci5mb3JFYWNoKGl0ZW0gPT4gaXRlbSgpKTtcbiAgfVxufVxuIl19