@bravura/ui 3.8.1 → 5.0.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 (276) hide show
  1. package/CHANGELOG.md +585 -565
  2. package/LICENSE +6 -6
  3. package/README.md +3 -1
  4. package/alert/alert-container.component.d.ts +1 -1
  5. package/alert/alert-message.component.d.ts +1 -1
  6. package/behavior/await.directive.d.ts +1 -1
  7. package/behavior/observe-content-class.directive.d.ts +1 -1
  8. package/behavior/sizing.directive.d.ts +1 -1
  9. package/clip-note/clip-note.directive.d.ts +1 -1
  10. package/currency-input/currency-input.directive.d.ts +1 -1
  11. package/decimal-input/decimal-input.directive.d.ts +1 -1
  12. package/discrete-input/discrete-input.component.d.ts +1 -1
  13. package/esm2022/alert/alert-container.component.mjs +207 -0
  14. package/esm2022/alert/alert-message.component.mjs +101 -0
  15. package/esm2022/alert/alert.module.mjs +22 -0
  16. package/{esm2020 → esm2022}/alert/public-api.mjs +1 -1
  17. package/esm2022/alert/testing/test-api.mjs +44 -0
  18. package/esm2022/behavior/await.directive.mjs +133 -0
  19. package/esm2022/behavior/behavior.module.mjs +37 -0
  20. package/esm2022/behavior/observe-content-class.directive.mjs +63 -0
  21. package/{esm2020 → esm2022}/behavior/public-api.mjs +1 -1
  22. package/esm2022/behavior/sizing-monitor.directive.mjs +31 -0
  23. package/esm2022/behavior/sizing.directive.mjs +256 -0
  24. package/esm2022/clip-note/clip-note.component.mjs +216 -0
  25. package/esm2022/clip-note/clip-note.directive.mjs +141 -0
  26. package/esm2022/clip-note/clip-note.module.mjs +32 -0
  27. package/{esm2020 → esm2022}/clip-note/public-api.mjs +1 -1
  28. package/{esm2020 → esm2022}/common/common-utils.mjs +1 -1
  29. package/esm2022/common/common.module.mjs +53 -0
  30. package/{esm2020 → esm2022}/common/public-api.mjs +1 -1
  31. package/esm2022/currency-input/currency-input.directive.mjs +276 -0
  32. package/esm2022/currency-input/currency-input.module.mjs +19 -0
  33. package/{esm2020 → esm2022}/currency-input/public-api.mjs +1 -1
  34. package/esm2022/decimal-input/decimal-input.directive.mjs +122 -0
  35. package/{esm2020 → esm2022}/decimal-input/decimal-input.module.mjs +5 -5
  36. package/esm2022/discrete-input/discrete-input.component.mjs +337 -0
  37. package/esm2022/discrete-input/discrete-input.module.mjs +21 -0
  38. package/{esm2020 → esm2022}/discrete-input/public-api.mjs +1 -1
  39. package/esm2022/file-upload/file-upload.component.mjs +400 -0
  40. package/esm2022/file-upload/file-upload.module.mjs +44 -0
  41. package/esm2022/file-upload/file-upload.service.mjs +29 -0
  42. package/{esm2020 → esm2022}/file-upload/public-api.mjs +1 -1
  43. package/esm2022/form-field/form-field.component.mjs +82 -0
  44. package/esm2022/form-field/form-field.module.mjs +33 -0
  45. package/{esm2020 → esm2022}/form-field/public-api.mjs +1 -1
  46. package/esm2022/icon-font/icon-font.module.mjs +22 -0
  47. package/esm2022/icon-font/icon.directive.mjs +102 -0
  48. package/{esm2020 → esm2022}/icon-font/public-api.mjs +1 -1
  49. package/esm2022/icon-font/utilities.mjs +51 -0
  50. package/esm2022/panel/panel-section.component.mjs +41 -0
  51. package/esm2022/panel/panel.component.mjs +87 -0
  52. package/esm2022/panel/panel.module.mjs +23 -0
  53. package/{esm2020 → esm2022}/panel/public-api.mjs +1 -1
  54. package/esm2022/panel/tinted.directive.mjs +60 -0
  55. package/esm2022/phone-number/phone-number.directive.mjs +188 -0
  56. package/{esm2020 → esm2022}/phone-number/phone-number.module.mjs +5 -5
  57. package/esm2022/phone-number/phone-number.pipe.mjs +47 -0
  58. package/esm2022/phone-number/phone-number.validator.mjs +64 -0
  59. package/{esm2020 → esm2022}/phone-number/public-api.mjs +1 -1
  60. package/{esm2020 → esm2022}/public-api.mjs +1 -1
  61. package/esm2022/radio-panel/radio-panel-item.component.mjs +93 -0
  62. package/esm2022/radio-panel/radio-panel.component.mjs +81 -0
  63. package/{esm2020 → esm2022}/radio-panel/radio-panel.module.mjs +5 -5
  64. package/esm2022/radio-panel/testing/test-api.mjs +46 -0
  65. package/{esm2020 → esm2022}/selection-panel/public-api.mjs +1 -1
  66. package/esm2022/selection-panel/selection-panel-item.component.mjs +166 -0
  67. package/esm2022/selection-panel/selection-panel.directive.mjs +119 -0
  68. package/esm2022/selection-panel/selection-panel.module.mjs +23 -0
  69. package/{esm2020 → esm2022}/skeletons/public-api.mjs +1 -1
  70. package/esm2022/skeletons/skeleton-loader-presets.directive.mjs +83 -0
  71. package/esm2022/skeletons/skeleton-loader.component.mjs +76 -0
  72. package/esm2022/skeletons/skeletons.module.mjs +35 -0
  73. package/{esm2020 → esm2022}/stepper/public-api.mjs +1 -1
  74. package/{esm2020 → esm2022}/stepper/stepper-animation.mjs +1 -1
  75. package/esm2022/stepper/stepper.component.mjs +176 -0
  76. package/esm2022/stepper/stepper.module.mjs +52 -0
  77. package/{esm2020 → esm2022}/tooltip/public-api.mjs +1 -1
  78. package/esm2022/tooltip/tooltip.component.mjs +63 -0
  79. package/esm2022/tooltip/tooltip.directive.mjs +148 -0
  80. package/esm2022/tooltip/tooltip.module.mjs +25 -0
  81. package/{fesm2020 → fesm2022}/bravura-ui-alert-testing.mjs +2 -2
  82. package/fesm2022/bravura-ui-alert-testing.mjs.map +1 -0
  83. package/fesm2022/bravura-ui-alert.mjs +327 -0
  84. package/fesm2022/bravura-ui-alert.mjs.map +1 -0
  85. package/{fesm2020 → fesm2022}/bravura-ui-behavior.mjs +45 -45
  86. package/fesm2022/bravura-ui-behavior.mjs.map +1 -0
  87. package/{fesm2020 → fesm2022}/bravura-ui-clip-note.mjs +70 -70
  88. package/fesm2022/bravura-ui-clip-note.mjs.map +1 -0
  89. package/{fesm2020 → fesm2022}/bravura-ui-common.mjs +6 -6
  90. package/fesm2022/bravura-ui-common.mjs.map +1 -0
  91. package/{fesm2020 → fesm2022}/bravura-ui-currency-input.mjs +11 -11
  92. package/fesm2022/bravura-ui-currency-input.mjs.map +1 -0
  93. package/{fesm2020 → fesm2022}/bravura-ui-decimal-input.mjs +12 -12
  94. package/fesm2022/bravura-ui-decimal-input.mjs.map +1 -0
  95. package/{fesm2020 → fesm2022}/bravura-ui-discrete-input.mjs +48 -48
  96. package/fesm2022/bravura-ui-discrete-input.mjs.map +1 -0
  97. package/fesm2022/bravura-ui-file-upload.mjs +474 -0
  98. package/fesm2022/bravura-ui-file-upload.mjs.map +1 -0
  99. package/{fesm2020 → fesm2022}/bravura-ui-form-field.mjs +19 -19
  100. package/fesm2022/bravura-ui-form-field.mjs.map +1 -0
  101. package/{fesm2020 → fesm2022}/bravura-ui-icon-font.mjs +8 -8
  102. package/fesm2022/bravura-ui-icon-font.mjs.map +1 -0
  103. package/fesm2022/bravura-ui-panel.mjs +206 -0
  104. package/fesm2022/bravura-ui-panel.mjs.map +1 -0
  105. package/{fesm2020 → fesm2022}/bravura-ui-phone-number.mjs +30 -30
  106. package/fesm2022/bravura-ui-phone-number.mjs.map +1 -0
  107. package/{fesm2020 → fesm2022}/bravura-ui-radio-panel-testing.mjs +5 -6
  108. package/fesm2022/bravura-ui-radio-panel-testing.mjs.map +1 -0
  109. package/{fesm2020 → fesm2022}/bravura-ui-radio-panel.mjs +32 -32
  110. package/fesm2022/bravura-ui-radio-panel.mjs.map +1 -0
  111. package/fesm2022/bravura-ui-selection-panel.mjs +306 -0
  112. package/fesm2022/bravura-ui-selection-panel.mjs.map +1 -0
  113. package/{fesm2020 → fesm2022}/bravura-ui-skeletons.mjs +43 -43
  114. package/fesm2022/bravura-ui-skeletons.mjs.map +1 -0
  115. package/fesm2022/bravura-ui-stepper.mjs +251 -0
  116. package/fesm2022/bravura-ui-stepper.mjs.map +1 -0
  117. package/{fesm2020 → fesm2022}/bravura-ui-tooltip.mjs +32 -24
  118. package/fesm2022/bravura-ui-tooltip.mjs.map +1 -0
  119. package/fesm2022/bravura-ui.mjs.map +1 -0
  120. package/file-upload/file-upload.component.d.ts +1 -1
  121. package/form-field/form-field.component.d.ts +1 -1
  122. package/icon-font/icon.directive.d.ts +1 -1
  123. package/package.json +88 -132
  124. package/panel/panel.component.d.ts +1 -1
  125. package/panel/tinted.directive.d.ts +1 -1
  126. package/phone-number/phone-number.directive.d.ts +1 -1
  127. package/phone-number/phone-number.validator.d.ts +2 -2
  128. package/radio-panel/radio-panel-item.component.d.ts +1 -1
  129. package/radio-panel/radio-panel.component.d.ts +1 -1
  130. package/radio-panel/testing/test-api.d.ts +2 -3
  131. package/selection-panel/selection-panel-item.component.d.ts +1 -1
  132. package/selection-panel/selection-panel.directive.d.ts +1 -1
  133. package/skeletons/skeleton-loader-presets.directive.d.ts +3 -3
  134. package/stepper/stepper.component.d.ts +1 -1
  135. package/theme/_bui-card.scss +56 -56
  136. package/theme/_ui-theme.scss +3 -3
  137. package/theme/global-style-by-bootstrap.scss +3 -3
  138. package/theme/global-style-by-tailwind.scss +3 -3
  139. package/theme/scrollbar.scss +40 -40
  140. package/tooltip/tooltip.component.d.ts +2 -0
  141. package/tooltip/tooltip.directive.d.ts +3 -5
  142. package/esm2020/alert/alert-container.component.mjs +0 -207
  143. package/esm2020/alert/alert-message.component.mjs +0 -102
  144. package/esm2020/alert/alert.module.mjs +0 -22
  145. package/esm2020/alert/testing/test-api.mjs +0 -44
  146. package/esm2020/behavior/await.directive.mjs +0 -133
  147. package/esm2020/behavior/behavior.module.mjs +0 -37
  148. package/esm2020/behavior/observe-content-class.directive.mjs +0 -63
  149. package/esm2020/behavior/sizing-monitor.directive.mjs +0 -31
  150. package/esm2020/behavior/sizing.directive.mjs +0 -256
  151. package/esm2020/clip-note/clip-note.component.mjs +0 -216
  152. package/esm2020/clip-note/clip-note.directive.mjs +0 -141
  153. package/esm2020/clip-note/clip-note.module.mjs +0 -32
  154. package/esm2020/common/common.module.mjs +0 -53
  155. package/esm2020/currency-input/currency-input.directive.mjs +0 -276
  156. package/esm2020/currency-input/currency-input.module.mjs +0 -19
  157. package/esm2020/decimal-input/decimal-input.directive.mjs +0 -122
  158. package/esm2020/discrete-input/discrete-input.component.mjs +0 -337
  159. package/esm2020/discrete-input/discrete-input.module.mjs +0 -21
  160. package/esm2020/file-upload/file-upload.component.mjs +0 -400
  161. package/esm2020/file-upload/file-upload.module.mjs +0 -44
  162. package/esm2020/file-upload/file-upload.service.mjs +0 -29
  163. package/esm2020/form-field/form-field.component.mjs +0 -82
  164. package/esm2020/form-field/form-field.module.mjs +0 -33
  165. package/esm2020/icon-font/icon-font.module.mjs +0 -22
  166. package/esm2020/icon-font/icon.directive.mjs +0 -102
  167. package/esm2020/icon-font/utilities.mjs +0 -51
  168. package/esm2020/panel/panel-section.component.mjs +0 -41
  169. package/esm2020/panel/panel.component.mjs +0 -87
  170. package/esm2020/panel/panel.module.mjs +0 -23
  171. package/esm2020/panel/tinted.directive.mjs +0 -60
  172. package/esm2020/phone-number/phone-number.directive.mjs +0 -188
  173. package/esm2020/phone-number/phone-number.pipe.mjs +0 -47
  174. package/esm2020/phone-number/phone-number.validator.mjs +0 -64
  175. package/esm2020/radio-panel/radio-panel-item.component.mjs +0 -93
  176. package/esm2020/radio-panel/radio-panel.component.mjs +0 -81
  177. package/esm2020/radio-panel/testing/test-api.mjs +0 -47
  178. package/esm2020/selection-panel/selection-panel-item.component.mjs +0 -166
  179. package/esm2020/selection-panel/selection-panel.directive.mjs +0 -119
  180. package/esm2020/selection-panel/selection-panel.module.mjs +0 -23
  181. package/esm2020/skeletons/skeleton-loader-presets.directive.mjs +0 -83
  182. package/esm2020/skeletons/skeleton-loader.component.mjs +0 -76
  183. package/esm2020/skeletons/skeletons.module.mjs +0 -35
  184. package/esm2020/stepper/stepper.component.mjs +0 -176
  185. package/esm2020/stepper/stepper.module.mjs +0 -52
  186. package/esm2020/tooltip/tooltip.component.mjs +0 -54
  187. package/esm2020/tooltip/tooltip.directive.mjs +0 -149
  188. package/esm2020/tooltip/tooltip.module.mjs +0 -25
  189. package/fesm2015/bravura-ui-alert-testing.mjs +0 -64
  190. package/fesm2015/bravura-ui-alert-testing.mjs.map +0 -1
  191. package/fesm2015/bravura-ui-alert.mjs +0 -340
  192. package/fesm2015/bravura-ui-alert.mjs.map +0 -1
  193. package/fesm2015/bravura-ui-behavior.mjs +0 -515
  194. package/fesm2015/bravura-ui-behavior.mjs.map +0 -1
  195. package/fesm2015/bravura-ui-clip-note.mjs +0 -393
  196. package/fesm2015/bravura-ui-clip-note.mjs.map +0 -1
  197. package/fesm2015/bravura-ui-common.mjs +0 -96
  198. package/fesm2015/bravura-ui-common.mjs.map +0 -1
  199. package/fesm2015/bravura-ui-currency-input.mjs +0 -300
  200. package/fesm2015/bravura-ui-currency-input.mjs.map +0 -1
  201. package/fesm2015/bravura-ui-decimal-input.mjs +0 -145
  202. package/fesm2015/bravura-ui-decimal-input.mjs.map +0 -1
  203. package/fesm2015/bravura-ui-discrete-input.mjs +0 -365
  204. package/fesm2015/bravura-ui-discrete-input.mjs.map +0 -1
  205. package/fesm2015/bravura-ui-file-upload.mjs +0 -478
  206. package/fesm2015/bravura-ui-file-upload.mjs.map +0 -1
  207. package/fesm2015/bravura-ui-form-field.mjs +0 -120
  208. package/fesm2015/bravura-ui-form-field.mjs.map +0 -1
  209. package/fesm2015/bravura-ui-icon-font.mjs +0 -178
  210. package/fesm2015/bravura-ui-icon-font.mjs.map +0 -1
  211. package/fesm2015/bravura-ui-panel.mjs +0 -210
  212. package/fesm2015/bravura-ui-panel.mjs.map +0 -1
  213. package/fesm2015/bravura-ui-phone-number.mjs +0 -327
  214. package/fesm2015/bravura-ui-phone-number.mjs.map +0 -1
  215. package/fesm2015/bravura-ui-radio-panel-testing.mjs +0 -63
  216. package/fesm2015/bravura-ui-radio-panel-testing.mjs.map +0 -1
  217. package/fesm2015/bravura-ui-radio-panel.mjs +0 -200
  218. package/fesm2015/bravura-ui-radio-panel.mjs.map +0 -1
  219. package/fesm2015/bravura-ui-selection-panel.mjs +0 -311
  220. package/fesm2015/bravura-ui-selection-panel.mjs.map +0 -1
  221. package/fesm2015/bravura-ui-skeletons.mjs +0 -195
  222. package/fesm2015/bravura-ui-skeletons.mjs.map +0 -1
  223. package/fesm2015/bravura-ui-stepper.mjs +0 -253
  224. package/fesm2015/bravura-ui-stepper.mjs.map +0 -1
  225. package/fesm2015/bravura-ui-tooltip.mjs +0 -229
  226. package/fesm2015/bravura-ui-tooltip.mjs.map +0 -1
  227. package/fesm2015/bravura-ui.mjs.map +0 -1
  228. package/fesm2020/bravura-ui-alert-testing.mjs.map +0 -1
  229. package/fesm2020/bravura-ui-alert.mjs +0 -328
  230. package/fesm2020/bravura-ui-alert.mjs.map +0 -1
  231. package/fesm2020/bravura-ui-behavior.mjs.map +0 -1
  232. package/fesm2020/bravura-ui-clip-note.mjs.map +0 -1
  233. package/fesm2020/bravura-ui-common.mjs.map +0 -1
  234. package/fesm2020/bravura-ui-currency-input.mjs.map +0 -1
  235. package/fesm2020/bravura-ui-decimal-input.mjs.map +0 -1
  236. package/fesm2020/bravura-ui-discrete-input.mjs.map +0 -1
  237. package/fesm2020/bravura-ui-file-upload.mjs +0 -474
  238. package/fesm2020/bravura-ui-file-upload.mjs.map +0 -1
  239. package/fesm2020/bravura-ui-form-field.mjs.map +0 -1
  240. package/fesm2020/bravura-ui-icon-font.mjs.map +0 -1
  241. package/fesm2020/bravura-ui-panel.mjs +0 -206
  242. package/fesm2020/bravura-ui-panel.mjs.map +0 -1
  243. package/fesm2020/bravura-ui-phone-number.mjs.map +0 -1
  244. package/fesm2020/bravura-ui-radio-panel-testing.mjs.map +0 -1
  245. package/fesm2020/bravura-ui-radio-panel.mjs.map +0 -1
  246. package/fesm2020/bravura-ui-selection-panel.mjs +0 -306
  247. package/fesm2020/bravura-ui-selection-panel.mjs.map +0 -1
  248. package/fesm2020/bravura-ui-skeletons.mjs.map +0 -1
  249. package/fesm2020/bravura-ui-stepper.mjs +0 -251
  250. package/fesm2020/bravura-ui-stepper.mjs.map +0 -1
  251. package/fesm2020/bravura-ui-tooltip.mjs.map +0 -1
  252. package/fesm2020/bravura-ui.mjs +0 -8
  253. package/fesm2020/bravura-ui.mjs.map +0 -1
  254. /package/{esm2020 → esm2022}/alert/bravura-ui-alert.mjs +0 -0
  255. /package/{esm2020 → esm2022}/alert/testing/bravura-ui-alert-testing.mjs +0 -0
  256. /package/{esm2020 → esm2022}/behavior/bravura-ui-behavior.mjs +0 -0
  257. /package/{esm2020 → esm2022}/bravura-ui.mjs +0 -0
  258. /package/{esm2020 → esm2022}/clip-note/bravura-ui-clip-note.mjs +0 -0
  259. /package/{esm2020 → esm2022}/common/bravura-ui-common.mjs +0 -0
  260. /package/{esm2020 → esm2022}/currency-input/bravura-ui-currency-input.mjs +0 -0
  261. /package/{esm2020 → esm2022}/decimal-input/bravura-ui-decimal-input.mjs +0 -0
  262. /package/{esm2020 → esm2022}/decimal-input/public-api.mjs +0 -0
  263. /package/{esm2020 → esm2022}/discrete-input/bravura-ui-discrete-input.mjs +0 -0
  264. /package/{esm2020 → esm2022}/file-upload/bravura-ui-file-upload.mjs +0 -0
  265. /package/{esm2020 → esm2022}/form-field/bravura-ui-form-field.mjs +0 -0
  266. /package/{esm2020 → esm2022}/icon-font/bravura-ui-icon-font.mjs +0 -0
  267. /package/{esm2020 → esm2022}/panel/bravura-ui-panel.mjs +0 -0
  268. /package/{esm2020 → esm2022}/phone-number/bravura-ui-phone-number.mjs +0 -0
  269. /package/{esm2020 → esm2022}/radio-panel/bravura-ui-radio-panel.mjs +0 -0
  270. /package/{esm2020 → esm2022}/radio-panel/public-api.mjs +0 -0
  271. /package/{esm2020 → esm2022}/radio-panel/testing/bravura-ui-radio-panel-testing.mjs +0 -0
  272. /package/{esm2020 → esm2022}/selection-panel/bravura-ui-selection-panel.mjs +0 -0
  273. /package/{esm2020 → esm2022}/skeletons/bravura-ui-skeletons.mjs +0 -0
  274. /package/{esm2020 → esm2022}/stepper/bravura-ui-stepper.mjs +0 -0
  275. /package/{esm2020 → esm2022}/tooltip/bravura-ui-tooltip.mjs +0 -0
  276. /package/{fesm2015 → fesm2022}/bravura-ui.mjs +0 -0
@@ -0,0 +1,216 @@
1
+ import { animate, animateChild, group, query, state, style, transition, trigger } from '@angular/animations';
2
+ import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Host, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';
3
+ import { Subject, takeUntil } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/cdk/bidi";
6
+ import * as i2 from "@angular/material/button";
7
+ import * as i3 from "@angular/material/icon";
8
+ import * as i4 from "@angular/cdk/observers";
9
+ import * as i5 from "@bravura/ui/icon-font";
10
+ export class ClipNoteComponent {
11
+ get buttonState() {
12
+ if (this._hovering || this.panelState === 'open') {
13
+ return 'active';
14
+ }
15
+ return 'inactive';
16
+ }
17
+ get buttonIconState() {
18
+ if (this.panelState === 'open') {
19
+ return `open-${this.direction}`;
20
+ }
21
+ if (this.buttonState === 'active') {
22
+ return `active-${this.direction}`;
23
+ }
24
+ return 'inactive';
25
+ }
26
+ constructor(_cd, _dir, _elemRef) {
27
+ this._cd = _cd;
28
+ this._dir = _dir;
29
+ this._elemRef = _elemRef;
30
+ this.buttonText = '';
31
+ this.panelState = 'closed-ltr';
32
+ this.direction = 'ltr';
33
+ this._buttonAnimating = false;
34
+ this._hasContent = false;
35
+ this.opened = new EventEmitter();
36
+ this.closed = new EventEmitter();
37
+ this._hovering = false;
38
+ this._destroyed$ = new Subject();
39
+ this._toggleQueue = [];
40
+ }
41
+ ngOnInit() {
42
+ const changeDir = () => {
43
+ this.direction = this._dir.value;
44
+ this.panelState = `closed-${this.direction}`;
45
+ this._cd.markForCheck();
46
+ };
47
+ this._dir.change.pipe(takeUntil(this._destroyed$)).subscribe(changeDir);
48
+ changeDir();
49
+ }
50
+ ngOnDestroy() {
51
+ this._destroyed$.next();
52
+ this._destroyed$.complete();
53
+ }
54
+ _mouseOverButton(hovering) {
55
+ if (this._hovering !== hovering) {
56
+ this._hovering = hovering;
57
+ this._cd.markForCheck();
58
+ }
59
+ }
60
+ toggle() {
61
+ this.panelState = this.panelState === `closed-${this.direction}` ? 'open' : `closed-${this.direction}`;
62
+ this._cd.markForCheck();
63
+ }
64
+ _scheduleToggle() {
65
+ if (this._buttonAnimating) {
66
+ this._toggleQueue.push(true);
67
+ }
68
+ else {
69
+ this.toggle();
70
+ }
71
+ }
72
+ _checkToggle() {
73
+ if (this._toggleQueue.pop()) {
74
+ this.toggle();
75
+ }
76
+ }
77
+ open() {
78
+ this.panelState = 'open';
79
+ this._cd.markForCheck();
80
+ this._emit();
81
+ }
82
+ close() {
83
+ this.panelState = `closed-${this.direction}`;
84
+ this._cd.markForCheck();
85
+ this._emit();
86
+ }
87
+ _emit() {
88
+ if (this.panelState === 'open') {
89
+ this.opened.emit();
90
+ }
91
+ else {
92
+ this.closed.emit();
93
+ }
94
+ }
95
+ _contentChanged(content) {
96
+ let template;
97
+ if (content instanceof TemplateRef) {
98
+ template = content;
99
+ }
100
+ else {
101
+ template = this._fallbackTemplate;
102
+ this._content = content;
103
+ }
104
+ this._noteViewRef.clear();
105
+ const context = {};
106
+ this._contentView = this._noteViewRef.createEmbeddedView(template, context);
107
+ this._checkContent(true);
108
+ }
109
+ _checkContent(initial) {
110
+ this._contentView?.detectChanges();
111
+ this._hasContent = !!this._viewDiv.nativeElement.textContent?.trim();
112
+ const classList = this._elemRef.nativeElement.classList;
113
+ const cls = 'bui-clip-note-hidden';
114
+ const cls1 = 'bui-clip-note-reveal';
115
+ if (this._hasContent) {
116
+ classList.remove(cls);
117
+ if (!initial && this.panelState !== 'open') {
118
+ classList.add(cls1);
119
+ }
120
+ this._elemRef.nativeElement.scrollIntoView({ block: 'nearest', behavior: 'smooth' });
121
+ }
122
+ else {
123
+ classList.add(cls);
124
+ classList.remove(cls1);
125
+ this.close();
126
+ }
127
+ }
128
+ _assignColor(color) {
129
+ this._color = color;
130
+ this._cd.markForCheck();
131
+ }
132
+ _assignButtonText(text) {
133
+ this.buttonText = text;
134
+ this._cd.markForCheck();
135
+ }
136
+ _assignButtonIcon(icon) {
137
+ this._icon = icon;
138
+ this._cd.markForCheck();
139
+ }
140
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ClipNoteComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.Directionality }, { token: i0.ElementRef, host: true }], target: i0.ɵɵFactoryTarget.Component }); }
141
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: ClipNoteComponent, selector: "bui-clip-note", host: { classAttribute: "bui-clip-note bui-host" }, viewQueries: [{ propertyName: "_viewDiv", first: true, predicate: ["viewDiv"], descendants: true, read: ElementRef, static: true }, { propertyName: "_noteViewRef", first: true, predicate: ["noteViewRef"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "_fallbackTemplate", first: true, predicate: ["fallbackTemplate"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"bui-clip-note-wrapper\">\r\n\t<div\r\n\t\tclass=\"bui-clip-note-content bui-border-{{ _color }} mat-elevation-z3\"\r\n\t\t[@panelAnimation]=\"panelState\"\r\n\t\t#viewDiv\r\n\t\t(cdkObserveContent)=\"_checkContent()\"\r\n\t>\r\n\t\t<ng-container #noteViewRef></ng-container>\r\n\t</div>\r\n\r\n\t<button\r\n\t\tmat-raised-button\r\n\t\tclass=\"bui-clip-note-trigger bui-clip-note-trigger-{{ buttonIconState }}\"\r\n\t\t[color]=\"_color\"\r\n\t\t[@buttonAnimation]=\"buttonState\"\r\n\t\t(mouseenter)=\"_mouseOverButton(true)\"\r\n\t\t(mouseleave)=\"_mouseOverButton(false)\"\r\n\t\t(click)=\"_scheduleToggle()\"\r\n\t>\r\n\t\t<mat-icon\r\n\t\t\t[@buttonIconAnimation]=\"_icon ? 'disabled' : buttonIconState\"\r\n\t\t\t(@buttonIconAnimation.start)=\"_buttonAnimating = true\"\r\n\t\t\t(@buttonIconAnimation.done)=\"_buttonAnimating = false; _checkToggle()\"\r\n\t\t\t[buiIcon]=\"_icon || (direction === 'rtl' ? 'chevron_right' : 'chevron_left')\"\r\n\t\t\tstyle=\"margin: 0\"\r\n\t\t>\r\n\t\t</mat-icon>\r\n\t\t<span [@buttonTextAnimation]=\"buttonState\" class=\"bui-clip-note-button-text\">&nbsp; {{ buttonText }}</span>\r\n\t</button>\r\n</div>\r\n\r\n<ng-template #fallbackTemplate>\r\n\t<div [innerHTML]=\"_content\"></div>\r\n</ng-template>\r\n", styles: [":host{position:absolute;top:2rem;box-sizing:border-box;z-index:var(--bui-clip-note-z-index, 100)}:host(.bui-clip-note-hidden){display:none}:host-context(:not([dir=rtl])){right:0}:host-context(:not([dir=rtl])) .bui-clip-note-trigger{right:-18px}:host-context([dir=rtl]){left:0;right:unset}:host-context([dir=rtl]) .bui-clip-note-trigger{left:-18px;right:unset}.bui-clip-note-trigger{border-radius:18px;overflow:hidden;position:absolute;top:-1rem}.bui-clip-note-button-text{display:inline-block;overflow:hidden;white-space:nowrap;vertical-align:middle}.bui-clip-note-wrapper{position:relative}.bui-clip-note-content{max-width:320px;min-width:150px;background-color:var(--bui-bg-body);border-radius:6px;border-width:1px;border-style:solid;padding:1rem;overflow-y:hidden}@keyframes rubber-band{0%{transform:scaleZ(1)}30%{transform:scale3d(1.25,.75,1)}40%{transform:scale3d(.75,1.25,1)}50%{transform:scale3d(1.15,.85,1)}65%{transform:scale3d(.95,1.05,1)}75%{transform:scale3d(1.05,.95,1)}to{transform:scaleZ(1)}}:host(.bui-clip-note-reveal) .bui-clip-note-trigger{animation:rubber-band .8s ease}\n"], dependencies: [{ kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }, { kind: "directive", type: i5.IconDirective, selector: "[buiIcon]", inputs: ["buiIcon", "size", "variant"] }], animations: [
142
+ trigger('buttonAnimation', [
143
+ state('*', style({ width: '36px', minWidth: 0, padding: 0 })),
144
+ state('active', style({})),
145
+ transition('inactive <=> active', [
146
+ group([animate('250ms cubic-bezier(.56,.14,.18,.91)'), query('@buttonTextAnimation', animateChild())]),
147
+ query('@buttonIconAnimation', animateChild())
148
+ ])
149
+ ]),
150
+ trigger('buttonTextAnimation', [
151
+ state('inactive', style({ opacity: 0, width: 0 })),
152
+ state('active', style({ opacity: 1 })),
153
+ transition('inactive => active', animate('250ms cubic-bezier(.88,.15,.63,.61)')),
154
+ transition('active => inactive', animate('250ms cubic-bezier(.05,.72,.44,.92)'))
155
+ ]),
156
+ trigger('buttonIconAnimation', [
157
+ state('active-ltr', style({ transform: 'rotate(-90deg)' })),
158
+ state('active-rtl', style({ transform: 'rotate(90deg)' })),
159
+ state('open-ltr', style({ transform: 'rotate(90deg)' })),
160
+ state('open-rtl', style({ transform: 'rotate(270deg)' })),
161
+ state('inactive', style({})),
162
+ transition('inactive <=> *, * <=> open-ltr, * <=> open-rtl', animate('250ms cubic-bezier(0.25, 0.8, 0.25, 1)'))
163
+ ]),
164
+ trigger('panelAnimation', [
165
+ state('open', style({})),
166
+ state('closed-rtl', style({ transform: 'scale(0) translate(-80%, -70%)', padding: 0, opacity: 0 })),
167
+ state('closed-ltr', style({ transform: 'scale(0) translate(80%, -70%)', padding: 0, opacity: 0 })),
168
+ transition('open <=> *', animate('300ms cubic-bezier(.69,.12,.6,.62)'))
169
+ ])
170
+ ], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
171
+ }
172
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ClipNoteComponent, decorators: [{
173
+ type: Component,
174
+ args: [{ selector: 'bui-clip-note', host: { class: 'bui-clip-note bui-host' }, animations: [
175
+ trigger('buttonAnimation', [
176
+ state('*', style({ width: '36px', minWidth: 0, padding: 0 })),
177
+ state('active', style({})),
178
+ transition('inactive <=> active', [
179
+ group([animate('250ms cubic-bezier(.56,.14,.18,.91)'), query('@buttonTextAnimation', animateChild())]),
180
+ query('@buttonIconAnimation', animateChild())
181
+ ])
182
+ ]),
183
+ trigger('buttonTextAnimation', [
184
+ state('inactive', style({ opacity: 0, width: 0 })),
185
+ state('active', style({ opacity: 1 })),
186
+ transition('inactive => active', animate('250ms cubic-bezier(.88,.15,.63,.61)')),
187
+ transition('active => inactive', animate('250ms cubic-bezier(.05,.72,.44,.92)'))
188
+ ]),
189
+ trigger('buttonIconAnimation', [
190
+ state('active-ltr', style({ transform: 'rotate(-90deg)' })),
191
+ state('active-rtl', style({ transform: 'rotate(90deg)' })),
192
+ state('open-ltr', style({ transform: 'rotate(90deg)' })),
193
+ state('open-rtl', style({ transform: 'rotate(270deg)' })),
194
+ state('inactive', style({})),
195
+ transition('inactive <=> *, * <=> open-ltr, * <=> open-rtl', animate('250ms cubic-bezier(0.25, 0.8, 0.25, 1)'))
196
+ ]),
197
+ trigger('panelAnimation', [
198
+ state('open', style({})),
199
+ state('closed-rtl', style({ transform: 'scale(0) translate(-80%, -70%)', padding: 0, opacity: 0 })),
200
+ state('closed-ltr', style({ transform: 'scale(0) translate(80%, -70%)', padding: 0, opacity: 0 })),
201
+ transition('open <=> *', animate('300ms cubic-bezier(.69,.12,.6,.62)'))
202
+ ])
203
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"bui-clip-note-wrapper\">\r\n\t<div\r\n\t\tclass=\"bui-clip-note-content bui-border-{{ _color }} mat-elevation-z3\"\r\n\t\t[@panelAnimation]=\"panelState\"\r\n\t\t#viewDiv\r\n\t\t(cdkObserveContent)=\"_checkContent()\"\r\n\t>\r\n\t\t<ng-container #noteViewRef></ng-container>\r\n\t</div>\r\n\r\n\t<button\r\n\t\tmat-raised-button\r\n\t\tclass=\"bui-clip-note-trigger bui-clip-note-trigger-{{ buttonIconState }}\"\r\n\t\t[color]=\"_color\"\r\n\t\t[@buttonAnimation]=\"buttonState\"\r\n\t\t(mouseenter)=\"_mouseOverButton(true)\"\r\n\t\t(mouseleave)=\"_mouseOverButton(false)\"\r\n\t\t(click)=\"_scheduleToggle()\"\r\n\t>\r\n\t\t<mat-icon\r\n\t\t\t[@buttonIconAnimation]=\"_icon ? 'disabled' : buttonIconState\"\r\n\t\t\t(@buttonIconAnimation.start)=\"_buttonAnimating = true\"\r\n\t\t\t(@buttonIconAnimation.done)=\"_buttonAnimating = false; _checkToggle()\"\r\n\t\t\t[buiIcon]=\"_icon || (direction === 'rtl' ? 'chevron_right' : 'chevron_left')\"\r\n\t\t\tstyle=\"margin: 0\"\r\n\t\t>\r\n\t\t</mat-icon>\r\n\t\t<span [@buttonTextAnimation]=\"buttonState\" class=\"bui-clip-note-button-text\">&nbsp; {{ buttonText }}</span>\r\n\t</button>\r\n</div>\r\n\r\n<ng-template #fallbackTemplate>\r\n\t<div [innerHTML]=\"_content\"></div>\r\n</ng-template>\r\n", styles: [":host{position:absolute;top:2rem;box-sizing:border-box;z-index:var(--bui-clip-note-z-index, 100)}:host(.bui-clip-note-hidden){display:none}:host-context(:not([dir=rtl])){right:0}:host-context(:not([dir=rtl])) .bui-clip-note-trigger{right:-18px}:host-context([dir=rtl]){left:0;right:unset}:host-context([dir=rtl]) .bui-clip-note-trigger{left:-18px;right:unset}.bui-clip-note-trigger{border-radius:18px;overflow:hidden;position:absolute;top:-1rem}.bui-clip-note-button-text{display:inline-block;overflow:hidden;white-space:nowrap;vertical-align:middle}.bui-clip-note-wrapper{position:relative}.bui-clip-note-content{max-width:320px;min-width:150px;background-color:var(--bui-bg-body);border-radius:6px;border-width:1px;border-style:solid;padding:1rem;overflow-y:hidden}@keyframes rubber-band{0%{transform:scaleZ(1)}30%{transform:scale3d(1.25,.75,1)}40%{transform:scale3d(.75,1.25,1)}50%{transform:scale3d(1.15,.85,1)}65%{transform:scale3d(.95,1.05,1)}75%{transform:scale3d(1.05,.95,1)}to{transform:scaleZ(1)}}:host(.bui-clip-note-reveal) .bui-clip-note-trigger{animation:rubber-band .8s ease}\n"] }]
204
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.Directionality }, { type: i0.ElementRef, decorators: [{
205
+ type: Host
206
+ }] }], propDecorators: { _viewDiv: [{
207
+ type: ViewChild,
208
+ args: ['viewDiv', { static: true, read: ElementRef }]
209
+ }], _noteViewRef: [{
210
+ type: ViewChild,
211
+ args: ['noteViewRef', { static: true, read: ViewContainerRef }]
212
+ }], _fallbackTemplate: [{
213
+ type: ViewChild,
214
+ args: ['fallbackTemplate', { static: true }]
215
+ }] } });
216
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpcC1ub3RlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL2NsaXAtbm90ZS9jbGlwLW5vdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvY2xpcC1ub3RlL2NsaXAtbm90ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTdHLE9BQU8sRUFDTix1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFVBQVUsRUFFVixZQUFZLEVBQ1osSUFBSSxFQUdKLFdBQVcsRUFDWCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBdUMxQyxNQUFNLE9BQU8saUJBQWlCO0lBRzdCLElBQUksV0FBVztRQUNkLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ2xELE9BQU8sUUFBUSxDQUFDO1FBQ2pCLENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUNuQixDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2xCLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUNoQyxPQUFPLFFBQVEsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pDLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDbkMsT0FBTyxVQUFVLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNuQyxDQUFDO1FBQ0QsT0FBTyxVQUFVLENBQUM7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Q0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDOzRCQUN4QixLQUFLLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxnQ0FBZ0MsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDOzRCQUNuRyxLQUFLLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSwrQkFBK0IsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDOzRCQUNsRyxVQUFVLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO3lCQUN2RSxDQUFDO3FCQUNGLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNOzswQkFtRDdDLElBQUk7eUNBWEUsUUFBUTtzQkFEZixTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFJaEQsWUFBWTtzQkFEbkIsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtnQkFJMUQsaUJBQWlCO3NCQUR4QixTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIGFuaW1hdGVDaGlsZCwgZ3JvdXAsIHF1ZXJ5LCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgRGlyZWN0aW9uYWxpdHkgfSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XHJcbmltcG9ydCB7XHJcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcblx0Q2hhbmdlRGV0ZWN0b3JSZWYsXHJcblx0Q29tcG9uZW50LFxyXG5cdEVsZW1lbnRSZWYsXHJcblx0RW1iZWRkZWRWaWV3UmVmLFxyXG5cdEV2ZW50RW1pdHRlcixcclxuXHRIb3N0LFxyXG5cdE9uRGVzdHJveSxcclxuXHRPbkluaXQsXHJcblx0VGVtcGxhdGVSZWYsXHJcblx0Vmlld0NoaWxkLFxyXG5cdFZpZXdDb250YWluZXJSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVGhlbWVQYWxldHRlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdidWktY2xpcC1ub3RlJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vY2xpcC1ub3RlLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi9jbGlwLW5vdGUuY29tcG9uZW50LnNjc3MnXSxcclxuXHRob3N0OiB7IGNsYXNzOiAnYnVpLWNsaXAtbm90ZSBidWktaG9zdCcgfSxcclxuXHRhbmltYXRpb25zOiBbXHJcblx0XHR0cmlnZ2VyKCdidXR0b25BbmltYXRpb24nLCBbXHJcblx0XHRcdHN0YXRlKCcqJywgc3R5bGUoeyB3aWR0aDogJzM2cHgnLCBtaW5XaWR0aDogMCwgcGFkZGluZzogMCB9KSksXHJcblx0XHRcdHN0YXRlKCdhY3RpdmUnLCBzdHlsZSh7fSkpLFxyXG5cdFx0XHR0cmFuc2l0aW9uKCdpbmFjdGl2ZSA8PT4gYWN0aXZlJywgW1xyXG5cdFx0XHRcdGdyb3VwKFthbmltYXRlKCcyNTBtcyBjdWJpYy1iZXppZXIoLjU2LC4xNCwuMTgsLjkxKScpLCBxdWVyeSgnQGJ1dHRvblRleHRBbmltYXRpb24nLCBhbmltYXRlQ2hpbGQoKSldKSxcclxuXHRcdFx0XHRxdWVyeSgnQGJ1dHRvbkljb25BbmltYXRpb24nLCBhbmltYXRlQ2hpbGQoKSlcclxuXHRcdFx0XSlcclxuXHRcdF0pLFxyXG5cdFx0dHJpZ2dlcignYnV0dG9uVGV4dEFuaW1hdGlvbicsIFtcclxuXHRcdFx0c3RhdGUoJ2luYWN0aXZlJywgc3R5bGUoeyBvcGFjaXR5OiAwLCB3aWR0aDogMCB9KSksXHJcblx0XHRcdHN0YXRlKCdhY3RpdmUnLCBzdHlsZSh7IG9wYWNpdHk6IDEgfSkpLFxyXG5cdFx0XHR0cmFuc2l0aW9uKCdpbmFjdGl2ZSA9PiBhY3RpdmUnLCBhbmltYXRlKCcyNTBtcyBjdWJpYy1iZXppZXIoLjg4LC4xNSwuNjMsLjYxKScpKSxcclxuXHRcdFx0dHJhbnNpdGlvbignYWN0aXZlID0+IGluYWN0aXZlJywgYW5pbWF0ZSgnMjUwbXMgY3ViaWMtYmV6aWVyKC4wNSwuNzIsLjQ0LC45MiknKSlcclxuXHRcdF0pLFxyXG5cdFx0dHJpZ2dlcignYnV0dG9uSWNvbkFuaW1hdGlvbicsIFtcclxuXHRcdFx0c3RhdGUoJ2FjdGl2ZS1sdHInLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3JvdGF0ZSgtOTBkZWcpJyB9KSksXHJcblx0XHRcdHN0YXRlKCdhY3RpdmUtcnRsJywgc3R5bGUoeyB0cmFuc2Zvcm06ICdyb3RhdGUoOTBkZWcpJyB9KSksXHJcblx0XHRcdHN0YXRlKCdvcGVuLWx0cicsIHN0eWxlKHsgdHJhbnNmb3JtOiAncm90YXRlKDkwZGVnKScgfSkpLFxyXG5cdFx0XHRzdGF0ZSgnb3Blbi1ydGwnLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3JvdGF0ZSgyNzBkZWcpJyB9KSksXHJcblx0XHRcdHN0YXRlKCdpbmFjdGl2ZScsIHN0eWxlKHt9KSksXHJcblx0XHRcdHRyYW5zaXRpb24oJ2luYWN0aXZlIDw9PiAqLCAqIDw9PiBvcGVuLWx0ciwgKiA8PT4gb3Blbi1ydGwnLCBhbmltYXRlKCcyNTBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKScpKVxyXG5cdFx0XSksXHJcblx0XHR0cmlnZ2VyKCdwYW5lbEFuaW1hdGlvbicsIFtcclxuXHRcdFx0c3RhdGUoJ29wZW4nLCBzdHlsZSh7fSkpLFxyXG5cdFx0XHRzdGF0ZSgnY2xvc2VkLXJ0bCcsIHN0eWxlKHsgdHJhbnNmb3JtOiAnc2NhbGUoMCkgdHJhbnNsYXRlKC04MCUsIC03MCUpJywgcGFkZGluZzogMCwgb3BhY2l0eTogMCB9KSksXHJcblx0XHRcdHN0YXRlKCdjbG9zZWQtbHRyJywgc3R5bGUoeyB0cmFuc2Zvcm06ICdzY2FsZSgwKSB0cmFuc2xhdGUoODAlLCAtNzAlKScsIHBhZGRpbmc6IDAsIG9wYWNpdHk6IDAgfSkpLFxyXG5cdFx0XHR0cmFuc2l0aW9uKCdvcGVuIDw9PiAqJywgYW5pbWF0ZSgnMzAwbXMgY3ViaWMtYmV6aWVyKC42OSwuMTIsLjYsLjYyKScpKVxyXG5cdFx0XSlcclxuXHRdLFxyXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbGlwTm90ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHRidXR0b25UZXh0ID0gJyc7XHJcblxyXG5cdGdldCBidXR0b25TdGF0ZSgpOiBzdHJpbmcge1xyXG5cdFx0aWYgKHRoaXMuX2hvdmVyaW5nIHx8IHRoaXMucGFuZWxTdGF0ZSA9PT0gJ29wZW4nKSB7XHJcblx0XHRcdHJldHVybiAnYWN0aXZlJztcclxuXHRcdH1cclxuXHRcdHJldHVybiAnaW5hY3RpdmUnO1xyXG5cdH1cclxuXHJcblx0Z2V0IGJ1dHRvbkljb25TdGF0ZSgpOiBzdHJpbmcge1xyXG5cdFx0aWYgKHRoaXMucGFuZWxTdGF0ZSA9PT0gJ29wZW4nKSB7XHJcblx0XHRcdHJldHVybiBgb3Blbi0ke3RoaXMuZGlyZWN0aW9ufWA7XHJcblx0XHR9XHJcblx0XHRpZiAodGhpcy5idXR0b25TdGF0ZSA9PT0gJ2FjdGl2ZScpIHtcclxuXHRcdFx0cmV0dXJuIGBhY3RpdmUtJHt0aGlzLmRpcmVjdGlvbn1gO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuICdpbmFjdGl2ZSc7XHJcblx0fVxyXG5cclxuXHRwYW5lbFN0YXRlOiAnb3BlbicgfCAnY2xvc2VkLWx0cicgfCAnY2xvc2VkLXJ0bCcgPSAnY2xvc2VkLWx0cic7XHJcblxyXG5cdGRpcmVjdGlvbiA9ICdsdHInO1xyXG5cdF9jb250ZW50Vmlldz86IEVtYmVkZGVkVmlld1JlZjxhbnk+O1xyXG5cdF9jb250ZW50Pzogc3RyaW5nO1xyXG5cdF9jb2xvcjogVGhlbWVQYWxldHRlO1xyXG5cdF9idXR0b25BbmltYXRpbmcgPSBmYWxzZTtcclxuXHRfaWNvbj86IHN0cmluZztcclxuXHRfaGFzQ29udGVudCA9IGZhbHNlO1xyXG5cclxuXHRyZWFkb25seSBvcGVuZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblx0cmVhZG9ubHkgY2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuXHRwcml2YXRlIF9ob3ZlcmluZyA9IGZhbHNlO1xyXG5cdHByaXZhdGUgX2Rlc3Ryb3llZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cdHByaXZhdGUgX3RvZ2dsZVF1ZXVlOiBib29sZWFuW10gPSBbXTtcclxuXHJcblx0QFZpZXdDaGlsZCgndmlld0RpdicsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBFbGVtZW50UmVmIH0pXHJcblx0cHJpdmF0ZSBfdmlld0RpdiE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xyXG5cclxuXHRAVmlld0NoaWxkKCdub3RlVmlld1JlZicsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pXHJcblx0cHJpdmF0ZSBfbm90ZVZpZXdSZWYhOiBWaWV3Q29udGFpbmVyUmVmO1xyXG5cclxuXHRAVmlld0NoaWxkKCdmYWxsYmFja1RlbXBsYXRlJywgeyBzdGF0aWM6IHRydWUgfSlcclxuXHRwcml2YXRlIF9mYWxsYmFja1RlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcblx0XHRwcml2YXRlIF9kaXI6IERpcmVjdGlvbmFsaXR5LFxyXG5cdFx0QEhvc3QoKSBwcml2YXRlIF9lbGVtUmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PlxyXG5cdCkge31cclxuXHJcblx0bmdPbkluaXQoKTogdm9pZCB7XHJcblx0XHRjb25zdCBjaGFuZ2VEaXIgPSAoKSA9PiB7XHJcblx0XHRcdHRoaXMuZGlyZWN0aW9uID0gdGhpcy5fZGlyLnZhbHVlO1xyXG5cdFx0XHR0aGlzLnBhbmVsU3RhdGUgPSBgY2xvc2VkLSR7dGhpcy5kaXJlY3Rpb259YCBhcyBhbnk7XHJcblx0XHRcdHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xyXG5cdFx0fTtcclxuXHRcdHRoaXMuX2Rpci5jaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkJCkpLnN1YnNjcmliZShjaGFuZ2VEaXIpO1xyXG5cdFx0Y2hhbmdlRGlyKCk7XHJcblx0fVxyXG5cclxuXHRuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuXHRcdHRoaXMuX2Rlc3Ryb3llZCQubmV4dCgpO1xyXG5cdFx0dGhpcy5fZGVzdHJveWVkJC5jb21wbGV0ZSgpO1xyXG5cdH1cclxuXHJcblx0X21vdXNlT3ZlckJ1dHRvbihob3ZlcmluZzogYm9vbGVhbikge1xyXG5cdFx0aWYgKHRoaXMuX2hvdmVyaW5nICE9PSBob3ZlcmluZykge1xyXG5cdFx0XHR0aGlzLl9ob3ZlcmluZyA9IGhvdmVyaW5nO1xyXG5cdFx0XHR0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHRvZ2dsZSgpIHtcclxuXHRcdHRoaXMucGFuZWxTdGF0ZSA9IHRoaXMucGFuZWxTdGF0ZSA9PT0gYGNsb3NlZC0ke3RoaXMuZGlyZWN0aW9ufWAgPyAnb3BlbicgOiAoYGNsb3NlZC0ke3RoaXMuZGlyZWN0aW9ufWAgYXMgYW55KTtcclxuXHRcdHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xyXG5cdH1cclxuXHJcblx0X3NjaGVkdWxlVG9nZ2xlKCkge1xyXG5cdFx0aWYgKHRoaXMuX2J1dHRvbkFuaW1hdGluZykge1xyXG5cdFx0XHR0aGlzLl90b2dnbGVRdWV1ZS5wdXNoKHRydWUpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy50b2dnbGUoKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdF9jaGVja1RvZ2dsZSgpIHtcclxuXHRcdGlmICh0aGlzLl90b2dnbGVRdWV1ZS5wb3AoKSkge1xyXG5cdFx0XHR0aGlzLnRvZ2dsZSgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0b3BlbigpIHtcclxuXHRcdHRoaXMucGFuZWxTdGF0ZSA9ICdvcGVuJztcclxuXHRcdHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xyXG5cdFx0dGhpcy5fZW1pdCgpO1xyXG5cdH1cclxuXHJcblx0Y2xvc2UoKSB7XHJcblx0XHR0aGlzLnBhbmVsU3RhdGUgPSBgY2xvc2VkLSR7dGhpcy5kaXJlY3Rpb259YCBhcyBhbnk7XHJcblx0XHR0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcclxuXHRcdHRoaXMuX2VtaXQoKTtcclxuXHR9XHJcblxyXG5cdF9lbWl0KCkge1xyXG5cdFx0aWYgKHRoaXMucGFuZWxTdGF0ZSA9PT0gJ29wZW4nKSB7XHJcblx0XHRcdHRoaXMub3BlbmVkLmVtaXQoKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMuY2xvc2VkLmVtaXQoKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdF9jb250ZW50Q2hhbmdlZChjb250ZW50Pzogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55Pikge1xyXG5cdFx0bGV0IHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuXHRcdGlmIChjb250ZW50IGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpIHtcclxuXHRcdFx0dGVtcGxhdGUgPSBjb250ZW50O1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGVtcGxhdGUgPSB0aGlzLl9mYWxsYmFja1RlbXBsYXRlO1xyXG5cdFx0XHR0aGlzLl9jb250ZW50ID0gY29udGVudDtcclxuXHRcdH1cclxuXHRcdHRoaXMuX25vdGVWaWV3UmVmLmNsZWFyKCk7XHJcblx0XHRjb25zdCBjb250ZXh0ID0ge307XHJcblx0XHR0aGlzLl9jb250ZW50VmlldyA9IHRoaXMuX25vdGVWaWV3UmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh0ZW1wbGF0ZSwgY29udGV4dCk7XHJcblx0XHR0aGlzLl9jaGVja0NvbnRlbnQodHJ1ZSk7XHJcblx0fVxyXG5cclxuXHRfY2hlY2tDb250ZW50KGluaXRpYWw/OiBib29sZWFuKSB7XHJcblx0XHR0aGlzLl9jb250ZW50Vmlldz8uZGV0ZWN0Q2hhbmdlcygpO1xyXG5cdFx0dGhpcy5faGFzQ29udGVudCA9ICEhdGhpcy5fdmlld0Rpdi5uYXRpdmVFbGVtZW50LnRleHRDb250ZW50Py50cmltKCk7XHJcblx0XHRjb25zdCBjbGFzc0xpc3QgPSB0aGlzLl9lbGVtUmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0O1xyXG5cdFx0Y29uc3QgY2xzID0gJ2J1aS1jbGlwLW5vdGUtaGlkZGVuJztcclxuXHRcdGNvbnN0IGNsczEgPSAnYnVpLWNsaXAtbm90ZS1yZXZlYWwnO1xyXG5cdFx0aWYgKHRoaXMuX2hhc0NvbnRlbnQpIHtcclxuXHRcdFx0Y2xhc3NMaXN0LnJlbW92ZShjbHMpO1xyXG5cdFx0XHRpZiAoIWluaXRpYWwgJiYgdGhpcy5wYW5lbFN0YXRlICE9PSAnb3BlbicpIHtcclxuXHRcdFx0XHRjbGFzc0xpc3QuYWRkKGNsczEpO1xyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMuX2VsZW1SZWYubmF0aXZlRWxlbWVudC5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnbmVhcmVzdCcsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGNsYXNzTGlzdC5hZGQoY2xzKTtcclxuXHRcdFx0Y2xhc3NMaXN0LnJlbW92ZShjbHMxKTtcclxuXHRcdFx0dGhpcy5jbG9zZSgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0X2Fzc2lnbkNvbG9yKGNvbG9yOiBUaGVtZVBhbGV0dGUpIHtcclxuXHRcdHRoaXMuX2NvbG9yID0gY29sb3I7XHJcblx0XHR0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcclxuXHR9XHJcblxyXG5cdF9hc3NpZ25CdXR0b25UZXh0KHRleHQ6IHN0cmluZykge1xyXG5cdFx0dGhpcy5idXR0b25UZXh0ID0gdGV4dDtcclxuXHRcdHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xyXG5cdH1cclxuXHJcblx0X2Fzc2lnbkJ1dHRvbkljb24oaWNvbj86IHN0cmluZykge1xyXG5cdFx0dGhpcy5faWNvbiA9IGljb247XHJcblx0XHR0aGlzLl9jZC5tYXJrRm9yQ2hlY2soKTtcclxuXHR9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImJ1aS1jbGlwLW5vdGUtd3JhcHBlclwiPlxyXG5cdDxkaXZcclxuXHRcdGNsYXNzPVwiYnVpLWNsaXAtbm90ZS1jb250ZW50IGJ1aS1ib3JkZXIte3sgX2NvbG9yIH19IG1hdC1lbGV2YXRpb24tejNcIlxyXG5cdFx0W0BwYW5lbEFuaW1hdGlvbl09XCJwYW5lbFN0YXRlXCJcclxuXHRcdCN2aWV3RGl2XHJcblx0XHQoY2RrT2JzZXJ2ZUNvbnRlbnQpPVwiX2NoZWNrQ29udGVudCgpXCJcclxuXHQ+XHJcblx0XHQ8bmctY29udGFpbmVyICNub3RlVmlld1JlZj48L25nLWNvbnRhaW5lcj5cclxuXHQ8L2Rpdj5cclxuXHJcblx0PGJ1dHRvblxyXG5cdFx0bWF0LXJhaXNlZC1idXR0b25cclxuXHRcdGNsYXNzPVwiYnVpLWNsaXAtbm90ZS10cmlnZ2VyIGJ1aS1jbGlwLW5vdGUtdHJpZ2dlci17eyBidXR0b25JY29uU3RhdGUgfX1cIlxyXG5cdFx0W2NvbG9yXT1cIl9jb2xvclwiXHJcblx0XHRbQGJ1dHRvbkFuaW1hdGlvbl09XCJidXR0b25TdGF0ZVwiXHJcblx0XHQobW91c2VlbnRlcik9XCJfbW91c2VPdmVyQnV0dG9uKHRydWUpXCJcclxuXHRcdChtb3VzZWxlYXZlKT1cIl9tb3VzZU92ZXJCdXR0b24oZmFsc2UpXCJcclxuXHRcdChjbGljayk9XCJfc2NoZWR1bGVUb2dnbGUoKVwiXHJcblx0PlxyXG5cdFx0PG1hdC1pY29uXHJcblx0XHRcdFtAYnV0dG9uSWNvbkFuaW1hdGlvbl09XCJfaWNvbiA/ICdkaXNhYmxlZCcgOiBidXR0b25JY29uU3RhdGVcIlxyXG5cdFx0XHQoQGJ1dHRvbkljb25BbmltYXRpb24uc3RhcnQpPVwiX2J1dHRvbkFuaW1hdGluZyA9IHRydWVcIlxyXG5cdFx0XHQoQGJ1dHRvbkljb25BbmltYXRpb24uZG9uZSk9XCJfYnV0dG9uQW5pbWF0aW5nID0gZmFsc2U7IF9jaGVja1RvZ2dsZSgpXCJcclxuXHRcdFx0W2J1aUljb25dPVwiX2ljb24gfHwgKGRpcmVjdGlvbiA9PT0gJ3J0bCcgPyAnY2hldnJvbl9yaWdodCcgOiAnY2hldnJvbl9sZWZ0JylcIlxyXG5cdFx0XHRzdHlsZT1cIm1hcmdpbjogMFwiXHJcblx0XHQ+XHJcblx0XHQ8L21hdC1pY29uPlxyXG5cdFx0PHNwYW4gW0BidXR0b25UZXh0QW5pbWF0aW9uXT1cImJ1dHRvblN0YXRlXCIgY2xhc3M9XCJidWktY2xpcC1ub3RlLWJ1dHRvbi10ZXh0XCI+Jm5ic3A7IHt7IGJ1dHRvblRleHQgfX08L3NwYW4+XHJcblx0PC9idXR0b24+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNmYWxsYmFja1RlbXBsYXRlPlxyXG5cdDxkaXYgW2lubmVySFRNTF09XCJfY29udGVudFwiPjwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
@@ -0,0 +1,141 @@
1
+ import { Directive, EventEmitter, Host, Inject, InjectionToken, Input, Output } from '@angular/core';
2
+ import { ClipNoteComponent } from './clip-note.component';
3
+ import * as i0 from "@angular/core";
4
+ /** Used to provide default config for clip notes. */
5
+ export const CLIP_NOTE_DEFAULT_CONFIG = new InjectionToken('bui-clip-note.default-config', {
6
+ factory: () => ({ color: 'primary', caption: 'More info' })
7
+ });
8
+ /**
9
+ * A clip note consists of a toggle button and a floating 'notepad' element, attached to the top end of the host element's
10
+ * viewable area. The 'notepad' normally collapses away and only reveals itself when the toggle button is active.
11
+ *
12
+ * The toggle button clips on the edge of the host element and expands to display the full caption when hovered. It hides itself
13
+ * automatically when there is no content provided via the `buiClipNote` property of the directive.
14
+ *
15
+ * The clip note component is suitable for large page container elements with visible boundaries. It can present contextual
16
+ * information regarding and in addition to the content displayed in the main view area.
17
+ *
18
+ * The properties `buiClipNoteColor` and `buiClipNoteCaption` customise the appearance of the clip note, the default values of which
19
+ * can optionally be provided by the `ClipNoteModule.forConfig()` method.
20
+ *
21
+ */
22
+ export class ClipNoteDirective {
23
+ /**
24
+ * Provide content to the clip note's floating notepad element.
25
+ * It accepts a `string` of HTML content or a `TemplateRef` object.
26
+ */
27
+ get buiClipNote() {
28
+ return this._content;
29
+ }
30
+ set buiClipNote(note) {
31
+ this._content = note;
32
+ if (this._compRef) {
33
+ this._processContent();
34
+ }
35
+ }
36
+ /**
37
+ * Customise the theme color alias.
38
+ * @default 'primary'
39
+ */
40
+ get buiClipNoteColor() {
41
+ return this._color;
42
+ }
43
+ set buiClipNoteColor(color) {
44
+ this._color = color;
45
+ if (this._compRef) {
46
+ this._compRef.instance._assignColor(this._color);
47
+ }
48
+ }
49
+ /**
50
+ * Customise the icon on the toggle button. With this property specified, the animation on the icon
51
+ * will not be active.
52
+ */
53
+ get buiClipNoteIcon() {
54
+ return this._icon;
55
+ }
56
+ set buiClipNoteIcon(icon) {
57
+ this._icon = icon;
58
+ if (this._compRef) {
59
+ this._compRef.instance._assignButtonIcon(this._icon);
60
+ }
61
+ }
62
+ /**
63
+ * The caption of the toggle button when expanded.
64
+ */
65
+ get buiClipNoteCaption() {
66
+ return this._caption;
67
+ }
68
+ set buiClipNoteCaption(text) {
69
+ this._caption = text;
70
+ if (this._compRef) {
71
+ this._compRef.instance._assignButtonText(this._caption);
72
+ }
73
+ }
74
+ constructor(_elementRef, _vc, _config) {
75
+ this._elementRef = _elementRef;
76
+ this._vc = _vc;
77
+ /** Emits when the panel opens */
78
+ this.buiClipNoteOpened = new EventEmitter();
79
+ /** Emits when the panel closes */
80
+ this.buiClipNoteClosed = new EventEmitter();
81
+ this._color = 'primary';
82
+ this._caption = _config.caption;
83
+ this._color = _config.color;
84
+ }
85
+ ngAfterViewInit() {
86
+ setTimeout(() => {
87
+ this._compRef = this._vc.createComponent(ClipNoteComponent);
88
+ const childElement = this._compRef.location.nativeElement;
89
+ const element = this._elementRef.nativeElement;
90
+ element.style.position = 'relative';
91
+ element.appendChild(childElement);
92
+ this._compRef.instance._assignColor(this._color);
93
+ this._compRef.instance._assignButtonText(this._caption);
94
+ this._compRef.instance._assignButtonIcon(this._icon);
95
+ this._compRef.instance.opened.subscribe(this.buiClipNoteOpened.next.bind(this.buiClipNoteOpened));
96
+ this._compRef.instance.closed.subscribe(this.buiClipNoteClosed.next.bind(this.buiClipNoteClosed));
97
+ this._processContent();
98
+ });
99
+ }
100
+ ngOnDestroy() {
101
+ this._compRef.destroy();
102
+ }
103
+ /** Open the note panel */
104
+ open() {
105
+ this._compRef.instance.open();
106
+ }
107
+ /** Close the note panel */
108
+ close() {
109
+ this._compRef.instance.close();
110
+ }
111
+ _processContent() {
112
+ this._compRef.instance._contentChanged(this._content);
113
+ }
114
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ClipNoteDirective, deps: [{ token: i0.ElementRef, host: true }, { token: i0.ViewContainerRef }, { token: CLIP_NOTE_DEFAULT_CONFIG }], target: i0.ɵɵFactoryTarget.Directive }); }
115
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.2", type: ClipNoteDirective, selector: "[buiClipNote]", inputs: { buiClipNote: "buiClipNote", buiClipNoteColor: "buiClipNoteColor", buiClipNoteIcon: "buiClipNoteIcon", buiClipNoteCaption: "buiClipNoteCaption" }, outputs: { buiClipNoteOpened: "buiClipNoteOpened", buiClipNoteClosed: "buiClipNoteClosed" }, exportAs: ["buiClipNote"], ngImport: i0 }); }
116
+ }
117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ClipNoteDirective, decorators: [{
118
+ type: Directive,
119
+ args: [{
120
+ selector: '[buiClipNote]',
121
+ exportAs: 'buiClipNote'
122
+ }]
123
+ }], ctorParameters: () => [{ type: i0.ElementRef, decorators: [{
124
+ type: Host
125
+ }] }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{
126
+ type: Inject,
127
+ args: [CLIP_NOTE_DEFAULT_CONFIG]
128
+ }] }], propDecorators: { buiClipNote: [{
129
+ type: Input
130
+ }], buiClipNoteColor: [{
131
+ type: Input
132
+ }], buiClipNoteIcon: [{
133
+ type: Input
134
+ }], buiClipNoteCaption: [{
135
+ type: Input
136
+ }], buiClipNoteOpened: [{
137
+ type: Output
138
+ }], buiClipNoteClosed: [{
139
+ type: Output
140
+ }] } });
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpcC1ub3RlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL2NsaXAtbm90ZS9jbGlwLW5vdGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTixTQUFTLEVBRVQsWUFBWSxFQUNaLElBQUksRUFDSixNQUFNLEVBQ04sY0FBYyxFQUNkLEtBQUssRUFDTCxNQUFNLEVBR04sTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBTzFELHFEQUFxRDtBQUNyRCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLGNBQWMsQ0FBd0IsOEJBQThCLEVBQUU7SUFDakgsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsQ0FBQztDQUMzRCxDQUFDLENBQUM7QUFFSDs7Ozs7Ozs7Ozs7OztHQWFHO0FBS0gsTUFBTSxPQUFPLGlCQUFpQjtJQUM3Qjs7O09BR0c7SUFDSCxJQUNJLFdBQVc7UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdEIsQ0FBQztJQUNELElBQUksV0FBVyxDQUFDLElBQTJDO1FBQzFELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixDQUFDO0lBQ0YsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQ0ksZ0JBQWdCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNwQixDQUFDO0lBQ0QsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFtQjtRQUN2QyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLElBQUksQ0FBQyxRQUFR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QztJQUVELFdBQVc7UUFDVixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCwwQkFBMEI7SUFDMUIsSUFBSTtRQUNILElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCwyQkFBMkI7SUFDM0IsS0FBSztRQUNKLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTyxlQUFlO1FBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkQsQ0FBQzs4R0FuSFcsaUJBQWlCLHdGQTZFcEIsd0JBQXdCO2tHQTdFckIsaUJBQWlCOzsyRkFBakIsaUJBQWlCO2tCQUo3QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxlQUFlO29CQUN6QixRQUFRLEVBQUUsYUFBYTtpQkFDdkI7OzBCQTRFRSxJQUFJOzswQkFFSixNQUFNOzJCQUFDLHdCQUF3Qjt5Q0F2RTdCLFdBQVc7c0JBRGQsS0FBSztnQkFnQkYsZ0JBQWdCO3NCQURuQixLQUFLO2dCQWdCRixlQUFlO3NCQURsQixLQUFLO2dCQWVGLGtCQUFrQjtzQkFEckIsS0FBSztnQkFhRyxpQkFBaUI7c0JBRHpCLE1BQU07Z0JBS0UsaUJBQWlCO3NCQUR6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuXHRBZnRlclZpZXdJbml0LFxyXG5cdENvbXBvbmVudFJlZixcclxuXHREaXJlY3RpdmUsXHJcblx0RWxlbWVudFJlZixcclxuXHRFdmVudEVtaXR0ZXIsXHJcblx0SG9zdCxcclxuXHRJbmplY3QsXHJcblx0SW5qZWN0aW9uVG9rZW4sXHJcblx0SW5wdXQsXHJcblx0T3V0cHV0LFxyXG5cdFRlbXBsYXRlUmVmLFxyXG5cdFZpZXdDb250YWluZXJSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVGhlbWVQYWxldHRlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IENsaXBOb3RlQ29tcG9uZW50IH0gZnJvbSAnLi9jbGlwLW5vdGUuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2xpcE5vdGVEZWZhdWx0Q29uZmlnIHtcclxuXHRjb2xvcjogVGhlbWVQYWxldHRlO1xyXG5cdGNhcHRpb246IHN0cmluZztcclxufVxyXG5cclxuLyoqIFVzZWQgdG8gcHJvdmlkZSBkZWZhdWx0IGNvbmZpZyBmb3IgY2xpcCBub3Rlcy4gKi9cclxuZXhwb3J0IGNvbnN0IENMSVBfTk9URV9ERUZBVUxUX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxDbGlwTm90ZURlZmF1bHRDb25maWc+KCdidWktY2xpcC1ub3RlLmRlZmF1bHQtY29uZmlnJywge1xyXG5cdGZhY3Rvcnk6ICgpID0+ICh7IGNvbG9yOiAncHJpbWFyeScsIGNhcHRpb246ICdNb3JlIGluZm8nIH0pXHJcbn0pO1xyXG5cclxuLyoqXHJcbiAqIEEgY2xpcCBub3RlIGNvbnNpc3RzIG9mIGEgdG9nZ2xlIGJ1dHRvbiBhbmQgYSBmbG9hdGluZyAnbm90ZXBhZCcgZWxlbWVudCwgYXR0YWNoZWQgdG8gdGhlIHRvcCBlbmQgb2YgdGhlIGhvc3QgZWxlbWVudCdzXHJcbiAqIHZpZXdhYmxlIGFyZWEuIFRoZSAnbm90ZXBhZCcgbm9ybWFsbHkgY29sbGFwc2VzIGF3YXkgYW5kIG9ubHkgcmV2ZWFscyBpdHNlbGYgd2hlbiB0aGUgdG9nZ2xlIGJ1dHRvbiBpcyBhY3RpdmUuXHJcbiAqXHJcbiAqIFRoZSB0b2dnbGUgYnV0dG9uIGNsaXBzIG9uIHRoZSBlZGdlIG9mIHRoZSBob3N0IGVsZW1lbnQgYW5kIGV4cGFuZHMgdG8gZGlzcGxheSB0aGUgZnVsbCBjYXB0aW9uIHdoZW4gaG92ZXJlZC4gSXQgaGlkZXMgaXRzZWxmXHJcbiAqIGF1dG9tYXRpY2FsbHkgd2hlbiB0aGVyZSBpcyBubyBjb250ZW50IHByb3ZpZGVkIHZpYSB0aGUgYGJ1aUNsaXBOb3RlYCBwcm9wZXJ0eSBvZiB0aGUgZGlyZWN0aXZlLlxyXG4gKlxyXG4gKiBUaGUgY2xpcCBub3RlIGNvbXBvbmVudCBpcyBzdWl0YWJsZSBmb3IgbGFyZ2UgcGFnZSBjb250YWluZXIgZWxlbWVudHMgd2l0aCB2aXNpYmxlIGJvdW5kYXJpZXMuIEl0IGNhbiBwcmVzZW50IGNvbnRleHR1YWxcclxuICogaW5mb3JtYXRpb24gcmVnYXJkaW5nIGFuZCBpbiBhZGRpdGlvbiB0byB0aGUgY29udGVudCBkaXNwbGF5ZWQgaW4gdGhlIG1haW4gdmlldyBhcmVhLlxyXG4gKlxyXG4gKiBUaGUgcHJvcGVydGllcyBgYnVpQ2xpcE5vdGVDb2xvcmAgYW5kIGBidWlDbGlwTm90ZUNhcHRpb25gIGN1c3RvbWlzZSB0aGUgYXBwZWFyYW5jZSBvZiB0aGUgY2xpcCBub3RlLCB0aGUgZGVmYXVsdCB2YWx1ZXMgb2Ygd2hpY2hcclxuICogY2FuIG9wdGlvbmFsbHkgYmUgcHJvdmlkZWQgYnkgdGhlIGBDbGlwTm90ZU1vZHVsZS5mb3JDb25maWcoKWAgbWV0aG9kLlxyXG4gKlxyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcblx0c2VsZWN0b3I6ICdbYnVpQ2xpcE5vdGVdJyxcclxuXHRleHBvcnRBczogJ2J1aUNsaXBOb3RlJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2xpcE5vdGVEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuXHQvKipcclxuXHQgKiBQcm92aWRlIGNvbnRlbnQgdG8gdGhlIGNsaXAgbm90ZSdzIGZsb2F0aW5nIG5vdGVwYWQgZWxlbWVudC5cclxuXHQgKiBJdCBhY2NlcHRzIGEgYHN0cmluZ2Agb2YgSFRNTCBjb250ZW50IG9yIGEgYFRlbXBsYXRlUmVmYCBvYmplY3QuXHJcblx0ICovXHJcblx0QElucHV0KClcclxuXHRnZXQgYnVpQ2xpcE5vdGUoKTogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB7XHJcblx0XHRyZXR1cm4gdGhpcy5fY29udGVudDtcclxuXHR9XHJcblx0c2V0IGJ1aUNsaXBOb3RlKG5vdGU6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQpIHtcclxuXHRcdHRoaXMuX2NvbnRlbnQgPSBub3RlO1xyXG5cdFx0aWYgKHRoaXMuX2NvbXBSZWYpIHtcclxuXHRcdFx0dGhpcy5fcHJvY2Vzc0NvbnRlbnQoKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEN1c3RvbWlzZSB0aGUgdGhlbWUgY29sb3IgYWxpYXMuXHJcblx0ICogQGRlZmF1bHQgJ3ByaW1hcnknXHJcblx0ICovXHJcblx0QElucHV0KClcclxuXHRnZXQgYnVpQ2xpcE5vdGVDb2xvcigpOiBUaGVtZVBhbGV0dGUge1xyXG5cdFx0cmV0dXJuIHRoaXMuX2NvbG9yO1xyXG5cdH1cclxuXHRzZXQgYnVpQ2xpcE5vdGVDb2xvcihjb2xvcjogVGhlbWVQYWxldHRlKSB7XHJcblx0XHR0aGlzLl9jb2xvciA9IGNvbG9yO1xyXG5cdFx0aWYgKHRoaXMuX2NvbXBSZWYpIHtcclxuXHRcdFx0dGhpcy5fY29tcFJlZi5pbnN0YW5jZS5fYXNzaWduQ29sb3IodGhpcy5fY29sb3IpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQ3VzdG9taXNlIHRoZSBpY29uIG9uIHRoZSB0b2dnbGUgYnV0dG9uLiBXaXRoIHRoaXMgcHJvcGVydHkgc3BlY2lmaWVkLCB0aGUgYW5pbWF0aW9uIG9uIHRoZSBpY29uXHJcblx0ICogd2lsbCBub3QgYmUgYWN0aXZlLlxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0Z2V0IGJ1aUNsaXBOb3RlSWNvbigpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG5cdFx0cmV0dXJuIHRoaXMuX2ljb247XHJcblx0fVxyXG5cdHNldCBidWlDbGlwTm90ZUljb24oaWNvbjogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XHJcblx0XHR0aGlzLl9pY29uID0gaWNvbjtcclxuXHRcdGlmICh0aGlzLl9jb21wUmVmKSB7XHJcblx0XHRcdHRoaXMuX2NvbXBSZWYuaW5zdGFuY2UuX2Fzc2lnbkJ1dHRvbkljb24odGhpcy5faWNvbik7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBUaGUgY2FwdGlvbiBvZiB0aGUgdG9nZ2xlIGJ1dHRvbiB3aGVuIGV4cGFuZGVkLlxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0Z2V0IGJ1aUNsaXBOb3RlQ2FwdGlvbigpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIHRoaXMuX2NhcHRpb247XHJcblx0fVxyXG5cdHNldCBidWlDbGlwTm90ZUNhcHRpb24odGV4dDogc3RyaW5nKSB7XHJcblx0XHR0aGlzLl9jYXB0aW9uID0gdGV4dDtcclxuXHRcdGlmICh0aGlzLl9jb21wUmVmKSB7XHJcblx0XHRcdHRoaXMuX2NvbXBSZWYuaW5zdGFuY2UuX2Fzc2lnbkJ1dHRvblRleHQodGhpcy5fY2FwdGlvbik7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKiogRW1pdHMgd2hlbiB0aGUgcGFuZWwgb3BlbnMgKi9cclxuXHRAT3V0cHV0KClcclxuXHRyZWFkb25seSBidWlDbGlwTm90ZU9wZW5lZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcblx0LyoqIEVtaXRzIHdoZW4gdGhlIHBhbmVsIGNsb3NlcyAqL1xyXG5cdEBPdXRwdXQoKVxyXG5cdHJlYWRvbmx5IGJ1aUNsaXBOb3RlQ2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuXHRwcml2YXRlIF9jb250ZW50Pzogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PjtcclxuXHRwcml2YXRlIF9jb2xvcjogVGhlbWVQYWxldHRlID0gJ3ByaW1hcnknO1xyXG5cdHByaXZhdGUgX2NvbXBSZWYhOiBDb21wb25lbnRSZWY8Q2xpcE5vdGVDb21wb25lbnQ+O1xyXG5cdHByaXZhdGUgX2NhcHRpb246IHN0cmluZztcclxuXHRwcml2YXRlIF9pY29uPzogc3RyaW5nO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdEBIb3N0KCkgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXHJcblx0XHRwcml2YXRlIF92YzogVmlld0NvbnRhaW5lclJlZixcclxuXHRcdEBJbmplY3QoQ0xJUF9OT1RFX0RFRkFVTFRfQ09ORklHKSBfY29uZmlnOiBDbGlwTm90ZURlZmF1bHRDb25maWdcclxuXHQpIHtcclxuXHRcdHRoaXMuX2NhcHRpb24gPSBfY29uZmlnLmNhcHRpb247XHJcblx0XHR0aGlzLl9jb2xvciA9IF9jb25maWcuY29sb3I7XHJcblx0fVxyXG5cclxuXHRuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0dGhpcy5fY29tcFJlZiA9IHRoaXMuX3ZjLmNyZWF0ZUNvbXBvbmVudChDbGlwTm90ZUNvbXBvbmVudCk7XHJcblx0XHRcdGNvbnN0IGNoaWxkRWxlbWVudDogSFRNTEVsZW1lbnQgPSB0aGlzLl9jb21wUmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQ7XHJcblx0XHRcdGNvbnN0IGVsZW1lbnQgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XHJcblx0XHRcdGVsZW1lbnQuc3R5bGUucG9zaXRpb24gPSAncmVsYXRpdmUnO1xyXG5cdFx0XHRlbGVtZW50LmFwcGVuZENoaWxkKGNoaWxkRWxlbWVudCk7XHJcblx0XHRcdHRoaXMuX2NvbXBSZWYuaW5zdGFuY2UuX2Fzc2lnbkNvbG9yKHRoaXMuX2NvbG9yKTtcclxuXHRcdFx0dGhpcy5fY29tcFJlZi5pbnN0YW5jZS5fYXNzaWduQnV0dG9uVGV4dCh0aGlzLl9jYXB0aW9uKTtcclxuXHRcdFx0dGhpcy5fY29tcFJlZi5pbnN0YW5jZS5fYXNzaWduQnV0dG9uSWNvbih0aGlzLl9pY29uKTtcclxuXHRcdFx0dGhpcy5fY29tcFJlZi5pbnN0YW5jZS5vcGVuZWQuc3Vic2NyaWJlKHRoaXMuYnVpQ2xpcE5vdGVPcGVuZWQubmV4dC5iaW5kKHRoaXMuYnVpQ2xpcE5vdGVPcGVuZWQpKTtcclxuXHRcdFx0dGhpcy5fY29tcFJlZi5pbnN0YW5jZS5jbG9zZWQuc3Vic2NyaWJlKHRoaXMuYnVpQ2xpcE5vdGVDbG9zZWQubmV4dC5iaW5kKHRoaXMuYnVpQ2xpcE5vdGVDbG9zZWQpKTtcclxuXHRcdFx0dGhpcy5fcHJvY2Vzc0NvbnRlbnQoKTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0bmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcblx0XHR0aGlzLl9jb21wUmVmLmRlc3Ryb3koKTtcclxuXHR9XHJcblxyXG5cdC8qKiBPcGVuIHRoZSBub3RlIHBhbmVsICovXHJcblx0b3BlbigpIHtcclxuXHRcdHRoaXMuX2NvbXBSZWYuaW5zdGFuY2Uub3BlbigpO1xyXG5cdH1cclxuXHJcblx0LyoqIENsb3NlIHRoZSBub3RlIHBhbmVsICovXHJcblx0Y2xvc2UoKSB7XHJcblx0XHR0aGlzLl9jb21wUmVmLmluc3RhbmNlLmNsb3NlKCk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIF9wcm9jZXNzQ29udGVudCgpIHtcclxuXHRcdHRoaXMuX2NvbXBSZWYuaW5zdGFuY2UuX2NvbnRlbnRDaGFuZ2VkKHRoaXMuX2NvbnRlbnQpO1xyXG5cdH1cclxufVxyXG4iXX0=
@@ -0,0 +1,32 @@
1
+ import { BidiModule } from '@angular/cdk/bidi';
2
+ import { ObserversModule } from '@angular/cdk/observers';
3
+ import { CommonModule } from '@angular/common';
4
+ import { NgModule } from '@angular/core';
5
+ import { MatButtonModule } from '@angular/material/button';
6
+ import { MatIconModule } from '@angular/material/icon';
7
+ import { BuiCommonModule } from '@bravura/ui/common';
8
+ import { IconFontModule } from '@bravura/ui/icon-font';
9
+ import { ClipNoteComponent } from './clip-note.component';
10
+ import { ClipNoteDirective, CLIP_NOTE_DEFAULT_CONFIG } from './clip-note.directive';
11
+ import * as i0 from "@angular/core";
12
+ export class ClipNoteModule {
13
+ static forConfig(config) {
14
+ return {
15
+ ngModule: ClipNoteModule,
16
+ providers: [{ provide: CLIP_NOTE_DEFAULT_CONFIG, useValue: config }]
17
+ };
18
+ }
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ClipNoteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
20
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: ClipNoteModule, declarations: [ClipNoteComponent, ClipNoteDirective], imports: [CommonModule, MatButtonModule, MatIconModule, BidiModule, BuiCommonModule, ObserversModule, IconFontModule], exports: [ClipNoteDirective] }); }
21
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ClipNoteModule, imports: [CommonModule, MatButtonModule, MatIconModule, BidiModule, BuiCommonModule, ObserversModule, IconFontModule] }); }
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ClipNoteModule, decorators: [{
24
+ type: NgModule,
25
+ args: [{
26
+ declarations: [ClipNoteComponent, ClipNoteDirective],
27
+ imports: [CommonModule, MatButtonModule, MatIconModule, BidiModule, BuiCommonModule, ObserversModule, IconFontModule],
28
+ exports: [ClipNoteDirective]
29
+ }]
30
+ }] });
31
+ export { ClipNoteDirective };
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpcC1ub3RlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL2NsaXAtbm90ZS9jbGlwLW5vdGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQXlCLGlCQUFpQixFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBTzNHLE1BQU0sT0FBTyxjQUFjO0lBQzFCLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBNkI7UUFDN0MsT0FBTztZQUNOLFFBQVEsRUFBRSxjQUFjO1lBQ3hCLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQztTQUNwRSxDQUFDO0lBQ0gsQ0FBQzs4R0FOVyxjQUFjOytHQUFkLGNBQWMsaUJBSlgsaUJBQWlCLEVBQUUsaUJBQWlCLGFBQ3pDLFlBQVksRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLGNBQWMsYUFDMUcsaUJBQWlCOytHQUVmLGNBQWMsWUFIaEIsWUFBWSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsY0FBYzs7MkZBR3hHLGNBQWM7a0JBTDFCLFFBQVE7bUJBQUM7b0JBQ1QsWUFBWSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUM7b0JBQ3BELE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLGNBQWMsQ0FBQztvQkFDckgsT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQUM7aUJBQzVCOztBQVVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmlkaU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcclxuaW1wb3J0IHsgT2JzZXJ2ZXJzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL29ic2VydmVycyc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgQnVpQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGJyYXZ1cmEvdWkvY29tbW9uJztcclxuaW1wb3J0IHsgSWNvbkZvbnRNb2R1bGUgfSBmcm9tICdAYnJhdnVyYS91aS9pY29uLWZvbnQnO1xyXG5pbXBvcnQgeyBDbGlwTm90ZUNvbXBvbmVudCB9IGZyb20gJy4vY2xpcC1ub3RlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENsaXBOb3RlRGVmYXVsdENvbmZpZywgQ2xpcE5vdGVEaXJlY3RpdmUsIENMSVBfTk9URV9ERUZBVUxUX0NPTkZJRyB9IGZyb20gJy4vY2xpcC1ub3RlLmRpcmVjdGl2ZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG5cdGRlY2xhcmF0aW9uczogW0NsaXBOb3RlQ29tcG9uZW50LCBDbGlwTm90ZURpcmVjdGl2ZV0sXHJcblx0aW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlLCBNYXRJY29uTW9kdWxlLCBCaWRpTW9kdWxlLCBCdWlDb21tb25Nb2R1bGUsIE9ic2VydmVyc01vZHVsZSwgSWNvbkZvbnRNb2R1bGVdLFxyXG5cdGV4cG9ydHM6IFtDbGlwTm90ZURpcmVjdGl2ZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIENsaXBOb3RlTW9kdWxlIHtcclxuXHRzdGF0aWMgZm9yQ29uZmlnKGNvbmZpZzogQ2xpcE5vdGVEZWZhdWx0Q29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxDbGlwTm90ZU1vZHVsZT4ge1xyXG5cdFx0cmV0dXJuIHtcclxuXHRcdFx0bmdNb2R1bGU6IENsaXBOb3RlTW9kdWxlLFxyXG5cdFx0XHRwcm92aWRlcnM6IFt7IHByb3ZpZGU6IENMSVBfTk9URV9ERUZBVUxUX0NPTkZJRywgdXNlVmFsdWU6IGNvbmZpZyB9XVxyXG5cdFx0fTtcclxuXHR9XHJcbn1cclxuXHJcbmV4cG9ydCB7IENsaXBOb3RlRGlyZWN0aXZlIH07XHJcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export * from './clip-note.module';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL2NsaXAtbm90ZS9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NsaXAtbm90ZS5tb2R1bGUnO1xuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL2NsaXAtbm90ZS9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NsaXAtbm90ZS5tb2R1bGUnO1xyXG4iXX0=
@@ -31,4 +31,4 @@ export function getTextWidth(text, el = document.body) {
31
31
  const metrics = context.measureText(text);
32
32
  return Math.round(metrics.width);
33
33
  }
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvY29tbW9uL2NvbW1vbi11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsVUFBVTtJQUN6QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2pFLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsRUFBZTtJQUNsRCxNQUFNLElBQUksR0FBRyxFQUFFLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUV4QyxPQUFPLENBQ04sSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ2IsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDO1FBQ2QsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLElBQUksUUFBUSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUM7UUFDNUUsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLElBQUksUUFBUSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FDekUsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxJQUFZLEVBQUUsS0FBa0IsUUFBUSxDQUFDLElBQUk7SUFDekUsU0FBUyxXQUFXLENBQUMsT0FBb0IsRUFBRSxJQUFZO1FBQ3RELE9BQU8sTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLEVBQUUsRUFBRSxhQUFhLENBQUMsSUFBSSxRQUFRLENBQUM7SUFDOUQsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLEVBQUUsRUFBRSxXQUFXLENBQUMsSUFBSSxNQUFNLENBQUM7SUFDeEQsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLEVBQUUsRUFBRSxhQUFhLENBQUMsSUFBSSxPQUFPLENBQUM7SUFFN0QsTUFBTSxJQUFJLEdBQUcsR0FBRyxVQUFVLElBQUksUUFBUSxJQUFJLFVBQVUsRUFBRSxDQUFDO0lBRXZELDhDQUE4QztJQUM5QyxNQUFNLE1BQU0sR0FBSSxZQUFvQixDQUFDLE1BQU0sSUFBSSxDQUFFLFlBQW9CLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNqSCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNsQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlSUQoKSB7XG5cdHJldHVybiBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiBNYXRoLnBvdygyLCA1MCkpLnRvU3RyaW5nKDM2KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRWxlbWVudEluVmlld3BvcnQoZWw6IEhUTUxFbGVtZW50KSB7XG5cdGNvbnN0IHJlY3QgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuXHRyZXR1cm4gKFxuXHRcdHJlY3QudG9wID49IDAgJiZcblx0XHRyZWN0LmxlZnQgPj0gMCAmJlxuXHRcdHJlY3QuYm90dG9tIDw9ICh3aW5kb3cuaW5uZXJIZWlnaHQgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCkgJiZcblx0XHRyZWN0LnJpZ2h0IDw9ICh3aW5kb3cuaW5uZXJXaWR0aCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgpXG5cdCk7XG59XG5cbi8qKlxuICogVXNlcyBjYW52YXMubWVhc3VyZVRleHQgdG8gY29tcHV0ZSBhbmQgcmV0dXJuIHRoZSB3aWR0aCBvZiB0aGUgZ2l2ZW4gdGV4dCBvZiBnaXZlbiBmb250IGluIHBpeGVscy5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdGV4dCBUaGUgdGV4dCB0byBiZSByZW5kZXJlZC5cbiAqIEBwYXJhbSBlbCB0aGUgZWxlbWVudCB1c2VkIHRvIGNvbXB1dGUgdGhlIGZvbnQgc3R5bGVzXG4gKlxuICogQHNlZSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xMTgyNDEvY2FsY3VsYXRlLXRleHQtd2lkdGgtd2l0aC1qYXZhc2NyaXB0LzIxMDE1MzkzIzIxMDE1MzkzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRUZXh0V2lkdGgodGV4dDogc3RyaW5nLCBlbDogSFRNTEVsZW1lbnQgPSBkb2N1bWVudC5ib2R5KTogbnVtYmVyIHtcblx0ZnVuY3Rpb24gZ2V0Q3NzU3R5bGUoZWxlbWVudDogSFRNTEVsZW1lbnQsIHByb3A6IHN0cmluZykge1xuXHRcdHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKHByb3ApO1xuXHR9XG5cblx0Y29uc3QgZm9udFdlaWdodCA9IGdldENzc1N0eWxlKGVsLCAnZm9udC13ZWlnaHQnKSB8fCAnbm9ybWFsJztcblx0Y29uc3QgZm9udFNpemUgPSBnZXRDc3NTdHlsZShlbCwgJ2ZvbnQtc2l6ZScpIHx8ICcxNnB4Jztcblx0Y29uc3QgZm9udEZhbWlseSA9IGdldENzc1N0eWxlKGVsLCAnZm9udC1mYW1pbHknKSB8fCAnQXJpYWwnO1xuXG5cdGNvbnN0IGZvbnQgPSBgJHtmb250V2VpZ2h0fSAke2ZvbnRTaXplfSAke2ZvbnRGYW1pbHl9YDtcblxuXHQvLyByZS11c2UgY2FudmFzIG9iamVjdCBmb3IgYmV0dGVyIHBlcmZvcm1hbmNlXG5cdGNvbnN0IGNhbnZhcyA9IChnZXRUZXh0V2lkdGggYXMgYW55KS5jYW52YXMgfHwgKChnZXRUZXh0V2lkdGggYXMgYW55KS5jYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKSk7XG5cdGNvbnN0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcblx0Y29udGV4dC5mb250ID0gZm9udDtcblx0Y29uc3QgbWV0cmljcyA9IGNvbnRleHQubWVhc3VyZVRleHQodGV4dCk7XG5cdHJldHVybiBNYXRoLnJvdW5kKG1ldHJpY3Mud2lkdGgpO1xufVxuIl19
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvY29tbW9uL2NvbW1vbi11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsVUFBVTtJQUN6QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2pFLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsRUFBZTtJQUNsRCxNQUFNLElBQUksR0FBRyxFQUFFLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUV4QyxPQUFPLENBQ04sSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ2IsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDO1FBQ2QsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLElBQUksUUFBUSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUM7UUFDNUUsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLElBQUksUUFBUSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FDekUsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxJQUFZLEVBQUUsS0FBa0IsUUFBUSxDQUFDLElBQUk7SUFDekUsU0FBUyxXQUFXLENBQUMsT0FBb0IsRUFBRSxJQUFZO1FBQ3RELE9BQU8sTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLEVBQUUsRUFBRSxhQUFhLENBQUMsSUFBSSxRQUFRLENBQUM7SUFDOUQsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLEVBQUUsRUFBRSxXQUFXLENBQUMsSUFBSSxNQUFNLENBQUM7SUFDeEQsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLEVBQUUsRUFBRSxhQUFhLENBQUMsSUFBSSxPQUFPLENBQUM7SUFFN0QsTUFBTSxJQUFJLEdBQUcsR0FBRyxVQUFVLElBQUksUUFBUSxJQUFJLFVBQVUsRUFBRSxDQUFDO0lBRXZELDhDQUE4QztJQUM5QyxNQUFNLE1BQU0sR0FBSSxZQUFvQixDQUFDLE1BQU0sSUFBSSxDQUFFLFlBQW9CLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNqSCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNsQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlSUQoKSB7XHJcblx0cmV0dXJuIE1hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIE1hdGgucG93KDIsIDUwKSkudG9TdHJpbmcoMzYpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNFbGVtZW50SW5WaWV3cG9ydChlbDogSFRNTEVsZW1lbnQpIHtcclxuXHRjb25zdCByZWN0ID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcblxyXG5cdHJldHVybiAoXHJcblx0XHRyZWN0LnRvcCA+PSAwICYmXHJcblx0XHRyZWN0LmxlZnQgPj0gMCAmJlxyXG5cdFx0cmVjdC5ib3R0b20gPD0gKHdpbmRvdy5pbm5lckhlaWdodCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KSAmJlxyXG5cdFx0cmVjdC5yaWdodCA8PSAod2luZG93LmlubmVyV2lkdGggfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKVxyXG5cdCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBVc2VzIGNhbnZhcy5tZWFzdXJlVGV4dCB0byBjb21wdXRlIGFuZCByZXR1cm4gdGhlIHdpZHRoIG9mIHRoZSBnaXZlbiB0ZXh0IG9mIGdpdmVuIGZvbnQgaW4gcGl4ZWxzLlxyXG4gKlxyXG4gKiBAcGFyYW0ge1N0cmluZ30gdGV4dCBUaGUgdGV4dCB0byBiZSByZW5kZXJlZC5cclxuICogQHBhcmFtIGVsIHRoZSBlbGVtZW50IHVzZWQgdG8gY29tcHV0ZSB0aGUgZm9udCBzdHlsZXNcclxuICpcclxuICogQHNlZSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xMTgyNDEvY2FsY3VsYXRlLXRleHQtd2lkdGgtd2l0aC1qYXZhc2NyaXB0LzIxMDE1MzkzIzIxMDE1MzkzXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGV4dFdpZHRoKHRleHQ6IHN0cmluZywgZWw6IEhUTUxFbGVtZW50ID0gZG9jdW1lbnQuYm9keSk6IG51bWJlciB7XHJcblx0ZnVuY3Rpb24gZ2V0Q3NzU3R5bGUoZWxlbWVudDogSFRNTEVsZW1lbnQsIHByb3A6IHN0cmluZykge1xyXG5cdFx0cmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsIG51bGwpLmdldFByb3BlcnR5VmFsdWUocHJvcCk7XHJcblx0fVxyXG5cclxuXHRjb25zdCBmb250V2VpZ2h0ID0gZ2V0Q3NzU3R5bGUoZWwsICdmb250LXdlaWdodCcpIHx8ICdub3JtYWwnO1xyXG5cdGNvbnN0IGZvbnRTaXplID0gZ2V0Q3NzU3R5bGUoZWwsICdmb250LXNpemUnKSB8fCAnMTZweCc7XHJcblx0Y29uc3QgZm9udEZhbWlseSA9IGdldENzc1N0eWxlKGVsLCAnZm9udC1mYW1pbHknKSB8fCAnQXJpYWwnO1xyXG5cclxuXHRjb25zdCBmb250ID0gYCR7Zm9udFdlaWdodH0gJHtmb250U2l6ZX0gJHtmb250RmFtaWx5fWA7XHJcblxyXG5cdC8vIHJlLXVzZSBjYW52YXMgb2JqZWN0IGZvciBiZXR0ZXIgcGVyZm9ybWFuY2VcclxuXHRjb25zdCBjYW52YXMgPSAoZ2V0VGV4dFdpZHRoIGFzIGFueSkuY2FudmFzIHx8ICgoZ2V0VGV4dFdpZHRoIGFzIGFueSkuY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJykpO1xyXG5cdGNvbnN0IGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcclxuXHRjb250ZXh0LmZvbnQgPSBmb250O1xyXG5cdGNvbnN0IG1ldHJpY3MgPSBjb250ZXh0Lm1lYXN1cmVUZXh0KHRleHQpO1xyXG5cdHJldHVybiBNYXRoLnJvdW5kKG1ldHJpY3Mud2lkdGgpO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,53 @@
1
+ import { BidiModule } from '@angular/cdk/bidi';
2
+ import { DOCUMENT } from '@angular/common';
3
+ import { Inject, NgModule, Optional, SkipSelf } from '@angular/core';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/cdk/bidi";
6
+ /** Regex that matches locales with an RTL script. Taken from `goog.i18n.bidi.isRtlLanguage`. */
7
+ const RTL_LOCALE_PATTERN = /^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;
8
+ /** Resolves a string value to a specific direction. */
9
+ export function _resolveDirectionality(rawValue) {
10
+ const value = rawValue?.toLowerCase() || '';
11
+ if (value === 'auto' && typeof navigator !== 'undefined' && navigator?.language) {
12
+ return RTL_LOCALE_PATTERN.test(navigator.language) ? 'rtl' : 'ltr';
13
+ }
14
+ return value === 'rtl' ? 'rtl' : 'ltr';
15
+ }
16
+ export class BuiCommonModule {
17
+ constructor(dir, thisModule, document) {
18
+ if (!thisModule) {
19
+ const observer = new MutationObserver(() => {
20
+ const attr = document.documentElement.getAttribute('dir') || document.body.getAttribute('dir');
21
+ if (attr && dir.value !== attr) {
22
+ const d = _resolveDirectionality(attr);
23
+ dir.change.emit(d);
24
+ if (Object.getOwnPropertyNames(dir).includes('value')) {
25
+ dir.value = d;
26
+ }
27
+ setTimeout(() => dir.change.emit(d));
28
+ }
29
+ });
30
+ observer.observe(document.documentElement, { attributes: true });
31
+ observer.observe(document.body, { attributes: true });
32
+ }
33
+ }
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: BuiCommonModule, deps: [{ token: i1.Directionality }, { token: BuiCommonModule, optional: true, skipSelf: true }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.NgModule }); }
35
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: BuiCommonModule, imports: [BidiModule], exports: [BidiModule] }); }
36
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: BuiCommonModule, imports: [BidiModule, BidiModule] }); }
37
+ }
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: BuiCommonModule, decorators: [{
39
+ type: NgModule,
40
+ args: [{
41
+ declarations: [],
42
+ imports: [BidiModule],
43
+ exports: [BidiModule]
44
+ }]
45
+ }], ctorParameters: () => [{ type: i1.Directionality }, { type: BuiCommonModule, decorators: [{
46
+ type: Optional
47
+ }, {
48
+ type: SkipSelf
49
+ }] }, { type: Document, decorators: [{
50
+ type: Inject,
51
+ args: [DOCUMENT]
52
+ }] }] });
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL2NvbW1vbi9jb21tb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQTZCLE1BQU0sbUJBQW1CLENBQUM7QUFDMUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUVyRSxnR0FBZ0c7QUFDaEcsTUFBTSxrQkFBa0IsR0FDdkIsb0hBQW9ILENBQUM7QUFFdEgsdURBQXVEO0FBQ3ZELE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxRQUFnQjtJQUN0RCxNQUFNLEtBQUssR0FBRyxRQUFRLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDO0lBRTVDLElBQUksS0FBSyxLQUFLLE1BQU0sSUFBSSxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxFQUFFLFFBQVEsRUFBRSxDQUFDO1FBQ2pGLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDcEUsQ0FBQztJQUVELE9BQU8sS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDeEMsQ0FBQztBQU9ELE1BQU0sT0FBTyxlQUFlO0lBQzNCLFlBQ0MsR0FBbUIsRUFHbkIsVUFBMkIsRUFDVCxRQUFrQjtRQUVwQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDakIsTUFBTSxRQUFRLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUU7Z0JBQzFDLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMvRixJQUFJLElBQUksSUFBSSxHQUFHLENBQUMsS0FBSyxLQUFLLElBQUksRUFBRSxDQUFDO29CQUNoQyxNQUFNLENBQUMsR0FBRyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDdkMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ25CLElBQUksTUFBTSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO3dCQUN0RCxHQUFXLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztvQkFDeEIsQ0FBQztvQkFDRCxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdEMsQ0FBQztZQUNGLENBQUMsQ0FBQyxDQUFDO1lBRUgsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDakUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDdkQsQ0FBQztJQUNGLENBQUM7OEdBeEJXLGVBQWUsNEdBTWxCLFFBQVE7K0dBTkwsZUFBZSxZQUhqQixVQUFVLGFBQ1YsVUFBVTsrR0FFUixlQUFlLFlBSGpCLFVBQVUsRUFDVixVQUFVOzsyRkFFUixlQUFlO2tCQUwzQixRQUFRO21CQUFDO29CQUNULFlBQVksRUFBRSxFQUFFO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQUM7b0JBQ3JCLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQztpQkFDckI7OzBCQUlFLFFBQVE7OzBCQUNSLFFBQVE7OzBCQUVSLE1BQU07MkJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJpZGlNb2R1bGUsIERpcmVjdGlvbiwgRGlyZWN0aW9uYWxpdHkgfSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XHJcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSW5qZWN0LCBOZ01vZHVsZSwgT3B0aW9uYWwsIFNraXBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKiogUmVnZXggdGhhdCBtYXRjaGVzIGxvY2FsZXMgd2l0aCBhbiBSVEwgc2NyaXB0LiBUYWtlbiBmcm9tIGBnb29nLmkxOG4uYmlkaS5pc1J0bExhbmd1YWdlYC4gKi9cclxuY29uc3QgUlRMX0xPQ0FMRV9QQVRURVJOID1cclxuXHQvXihhcnxja2J8ZHZ8aGV8aXd8ZmF8bnFvfHBzfHNkfHVnfHVyfHlpfC4qWy1fXShBZGxtfEFyYWJ8SGVicnxOa29vfFJvaGd8VGhhYSkpKD8hLipbLV9dKExhdG58Q3lybCkoJHwtfF8pKSgkfC18XykvaTtcclxuXHJcbi8qKiBSZXNvbHZlcyBhIHN0cmluZyB2YWx1ZSB0byBhIHNwZWNpZmljIGRpcmVjdGlvbi4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIF9yZXNvbHZlRGlyZWN0aW9uYWxpdHkocmF3VmFsdWU6IHN0cmluZyk6IERpcmVjdGlvbiB7XHJcblx0Y29uc3QgdmFsdWUgPSByYXdWYWx1ZT8udG9Mb3dlckNhc2UoKSB8fCAnJztcclxuXHJcblx0aWYgKHZhbHVlID09PSAnYXV0bycgJiYgdHlwZW9mIG5hdmlnYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiYgbmF2aWdhdG9yPy5sYW5ndWFnZSkge1xyXG5cdFx0cmV0dXJuIFJUTF9MT0NBTEVfUEFUVEVSTi50ZXN0KG5hdmlnYXRvci5sYW5ndWFnZSkgPyAncnRsJyA6ICdsdHInO1xyXG5cdH1cclxuXHJcblx0cmV0dXJuIHZhbHVlID09PSAncnRsJyA/ICdydGwnIDogJ2x0cic7XHJcbn1cclxuXHJcbkBOZ01vZHVsZSh7XHJcblx0ZGVjbGFyYXRpb25zOiBbXSxcclxuXHRpbXBvcnRzOiBbQmlkaU1vZHVsZV0sXHJcblx0ZXhwb3J0czogW0JpZGlNb2R1bGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCdWlDb21tb25Nb2R1bGUge1xyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0ZGlyOiBEaXJlY3Rpb25hbGl0eSxcclxuXHRcdEBPcHRpb25hbCgpXHJcblx0XHRAU2tpcFNlbGYoKVxyXG5cdFx0dGhpc01vZHVsZTogQnVpQ29tbW9uTW9kdWxlLFxyXG5cdFx0QEluamVjdChET0NVTUVOVCkgZG9jdW1lbnQ6IERvY3VtZW50XHJcblx0KSB7XHJcblx0XHRpZiAoIXRoaXNNb2R1bGUpIHtcclxuXHRcdFx0Y29uc3Qgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcigoKSA9PiB7XHJcblx0XHRcdFx0Y29uc3QgYXR0ciA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2RpcicpIHx8IGRvY3VtZW50LmJvZHkuZ2V0QXR0cmlidXRlKCdkaXInKTtcclxuXHRcdFx0XHRpZiAoYXR0ciAmJiBkaXIudmFsdWUgIT09IGF0dHIpIHtcclxuXHRcdFx0XHRcdGNvbnN0IGQgPSBfcmVzb2x2ZURpcmVjdGlvbmFsaXR5KGF0dHIpO1xyXG5cdFx0XHRcdFx0ZGlyLmNoYW5nZS5lbWl0KGQpO1xyXG5cdFx0XHRcdFx0aWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGRpcikuaW5jbHVkZXMoJ3ZhbHVlJykpIHtcclxuXHRcdFx0XHRcdFx0KGRpciBhcyBhbnkpLnZhbHVlID0gZDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdHNldFRpbWVvdXQoKCkgPT4gZGlyLmNoYW5nZS5lbWl0KGQpKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cclxuXHRcdFx0b2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIHsgYXR0cmlidXRlczogdHJ1ZSB9KTtcclxuXHRcdFx0b2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5ib2R5LCB7IGF0dHJpYnV0ZXM6IHRydWUgfSk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiJdfQ==
@@ -1,3 +1,3 @@
1
1
  export * from './common-utils';
2
2
  export * from './common.module';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL2NvbW1vbi9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29tbW9uLXV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vY29tbW9uLm1vZHVsZSc7XG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL2NvbW1vbi9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29tbW9uLXV0aWxzJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb21tb24ubW9kdWxlJztcclxuIl19