bromcom-ui 2.7.38-rc.13 → 2.7.38-rc.14

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 (296) hide show
  1. package/dist/bromcom-ui/bromcom-ui.css +1 -1
  2. package/dist/bromcom-ui/bromcom-ui.esm.js +1 -1
  3. package/dist/bromcom-ui/{p-14d4b66f.entry.js → p-047c35b1.entry.js} +1 -1
  4. package/dist/bromcom-ui/p-0fb362d7.entry.js +5 -0
  5. package/dist/bromcom-ui/p-16b50160.js +1 -1
  6. package/dist/bromcom-ui/p-1ff8838d.entry.js +5 -0
  7. package/dist/bromcom-ui/p-27429bb5.entry.js +5 -0
  8. package/dist/bromcom-ui/{p-134c6c32.entry.js → p-29866cdb.entry.js} +1 -1
  9. package/dist/bromcom-ui/p-2a1f44d8.entry.js +5 -0
  10. package/dist/bromcom-ui/p-2a5b5ecc.entry.js +5 -0
  11. package/dist/bromcom-ui/p-335dd2b5.entry.js +5 -0
  12. package/dist/bromcom-ui/p-3cbeb4dc.entry.js +5 -0
  13. package/dist/bromcom-ui/{p-a39daf28.entry.js → p-3ed25f2b.entry.js} +2 -2
  14. package/dist/bromcom-ui/p-4487e8c2.js +1 -1
  15. package/dist/bromcom-ui/{p-18b8a460.js → p-44f3ca76.js} +1 -1
  16. package/dist/bromcom-ui/p-468af02f.entry.js +5 -0
  17. package/dist/bromcom-ui/p-480024c3.js +5 -0
  18. package/dist/bromcom-ui/p-4b2852a8.entry.js +5 -0
  19. package/dist/bromcom-ui/p-4c91002a.js +5 -0
  20. package/dist/bromcom-ui/p-4debe197.entry.js +5 -0
  21. package/dist/bromcom-ui/p-4f5acd80.entry.js +5 -0
  22. package/dist/bromcom-ui/p-503a376b.entry.js +5 -0
  23. package/dist/bromcom-ui/p-56898932.js +1 -1
  24. package/dist/bromcom-ui/p-58c108a5.entry.js +5 -0
  25. package/dist/bromcom-ui/p-5b664dec.js +5 -0
  26. package/dist/bromcom-ui/p-5bf68f57.entry.js +5 -0
  27. package/dist/bromcom-ui/p-5d70f446.entry.js +5 -0
  28. package/dist/bromcom-ui/{p-a183a09f.entry.js → p-5de651cc.entry.js} +1 -1
  29. package/dist/bromcom-ui/p-5ebfa466.entry.js +5 -0
  30. package/dist/bromcom-ui/p-60947a22.entry.js +5 -0
  31. package/dist/bromcom-ui/p-67e6f5fe.entry.js +5 -0
  32. package/dist/bromcom-ui/p-687f8d9c.entry.js +5 -0
  33. package/dist/bromcom-ui/p-6d7be2d1.entry.js +5 -0
  34. package/dist/bromcom-ui/p-6e9e2e3b.entry.js +5 -0
  35. package/dist/bromcom-ui/{p-9a9151f4.js → p-74bac994.js} +1 -1
  36. package/dist/bromcom-ui/p-882f8cb1.entry.js +5 -0
  37. package/dist/bromcom-ui/p-8b9d2bb3.entry.js +5 -0
  38. package/dist/bromcom-ui/p-9799c72f.entry.js +5 -0
  39. package/dist/bromcom-ui/p-98af14a9.entry.js +5 -0
  40. package/dist/bromcom-ui/p-a1c843ae.entry.js +5 -0
  41. package/dist/bromcom-ui/p-a373d8b6.entry.js +5 -0
  42. package/dist/bromcom-ui/{p-39175c90.js → p-a3b9fc0c.js} +1 -1
  43. package/dist/bromcom-ui/p-a429e85b.js +1 -1
  44. package/dist/bromcom-ui/p-ab6d3082.entry.js +5 -0
  45. package/dist/bromcom-ui/p-ac1f9851.entry.js +5 -0
  46. package/dist/bromcom-ui/p-aff12492.entry.js +5 -0
  47. package/dist/bromcom-ui/p-b963626d.js +5 -0
  48. package/dist/bromcom-ui/p-ba73ad6b.entry.js +5 -0
  49. package/dist/bromcom-ui/{p-731eb879.js → p-bd031390.js} +1 -1
  50. package/dist/bromcom-ui/p-bdb0dfda.entry.js +5 -0
  51. package/dist/bromcom-ui/p-bef9e2fe.entry.js +5 -0
  52. package/dist/bromcom-ui/p-c0f70afa.entry.js +5 -0
  53. package/dist/bromcom-ui/p-ce1f522e.entry.js +5 -0
  54. package/dist/bromcom-ui/p-cebefc96.entry.js +5 -0
  55. package/dist/bromcom-ui/p-d01e8312.entry.js +5 -0
  56. package/dist/bromcom-ui/{p-9a5e145b.js → p-d651e723.js} +1 -1
  57. package/dist/bromcom-ui/p-d73e3d1d.entry.js +5 -0
  58. package/dist/bromcom-ui/p-d8fd3bbb.entry.js +5 -0
  59. package/dist/bromcom-ui/p-d9baf5e7.entry.js +5 -0
  60. package/dist/bromcom-ui/p-dda54e92.entry.js +5 -0
  61. package/dist/bromcom-ui/p-e34ad7a7.entry.js +5 -0
  62. package/dist/bromcom-ui/p-e38087d9.entry.js +5 -0
  63. package/dist/bromcom-ui/p-e3bfaffd.entry.js +5 -0
  64. package/dist/bromcom-ui/p-e74b4689.entry.js +5 -0
  65. package/dist/bromcom-ui/p-ea21c68d.entry.js +5 -0
  66. package/dist/bromcom-ui/p-ef787294.entry.js +5 -0
  67. package/dist/cjs/{bcm-ab921827.js → bcm-634604e3.js} +4 -4
  68. package/dist/cjs/bcm-accordion.cjs.entry.js +3 -1
  69. package/dist/cjs/bcm-alert.cjs.entry.js +4 -3
  70. package/dist/cjs/bcm-attendance.cjs.entry.js +3 -1
  71. package/dist/cjs/bcm-avatar_2.cjs.entry.js +12 -11
  72. package/dist/cjs/bcm-breadcrumb.cjs.entry.js +2 -1
  73. package/dist/cjs/bcm-button-group.cjs.entry.js +7 -6
  74. package/dist/cjs/bcm-button.cjs.entry.js +13 -12
  75. package/dist/cjs/bcm-card.cjs.entry.js +6 -5
  76. package/dist/cjs/bcm-checkbox-group.cjs.entry.js +25 -24
  77. package/dist/cjs/bcm-checkbox-lite_9.cjs.entry.js +6 -5
  78. package/dist/cjs/bcm-checkbox_2.cjs.entry.js +11 -10
  79. package/dist/cjs/bcm-chip.cjs.entry.js +3 -2
  80. package/dist/cjs/bcm-collapse.cjs.entry.js +2 -1
  81. package/dist/cjs/bcm-color-input.cjs.entry.js +7 -6
  82. package/dist/cjs/bcm-colorful_2.cjs.entry.js +10 -9
  83. package/dist/cjs/bcm-date-picker.cjs.entry.js +4 -3
  84. package/dist/cjs/bcm-datetime-picker.cjs.entry.js +9 -8
  85. package/dist/cjs/bcm-default.cjs.entry.js +3 -1
  86. package/dist/cjs/bcm-drawer.cjs.entry.js +9 -8
  87. package/dist/cjs/bcm-dropdown.cjs.entry.js +7 -6
  88. package/dist/cjs/bcm-expansion-panel.cjs.entry.js +5 -4
  89. package/dist/cjs/bcm-form-2.cjs.entry.js +5 -4
  90. package/dist/cjs/bcm-form.cjs.entry.js +2 -2
  91. package/dist/cjs/{bcm-list.cjs.entry.js → bcm-icon_3.cjs.entry.js} +383 -113
  92. package/dist/cjs/bcm-input-custom.cjs.entry.js +73 -0
  93. package/dist/cjs/bcm-input.cjs.entry.js +12 -11
  94. package/dist/cjs/bcm-item.cjs.entry.js +5 -4
  95. package/dist/cjs/bcm-items.cjs.entry.js +4 -3
  96. package/dist/cjs/bcm-label_2.cjs.entry.js +39 -15
  97. package/dist/cjs/bcm-link.cjs.entry.js +3 -3
  98. package/dist/cjs/bcm-menu.cjs.entry.js +9 -8
  99. package/dist/cjs/bcm-modal.cjs.entry.js +7 -6
  100. package/dist/cjs/bcm-popconfirm-box.cjs.entry.js +6 -5
  101. package/dist/cjs/bcm-popconfirm.cjs.entry.js +5 -4
  102. package/dist/cjs/bcm-popover.cjs.entry.js +88 -38
  103. package/dist/cjs/bcm-progress.cjs.entry.js +5 -4
  104. package/dist/cjs/bcm-radio-group.cjs.entry.js +77 -211
  105. package/dist/cjs/bcm-radio.cjs.entry.js +35 -76
  106. package/dist/cjs/bcm-range.cjs.entry.js +6 -5
  107. package/dist/cjs/bcm-select.cjs.entry.js +2 -2
  108. package/dist/cjs/bcm-skeleton.cjs.entry.js +3 -1
  109. package/dist/cjs/bcm-step.cjs.entry.js +3 -2
  110. package/dist/cjs/bcm-stepper.cjs.entry.js +10 -9
  111. package/dist/cjs/bcm-switch.cjs.entry.js +9 -8
  112. package/dist/cjs/bcm-tab-group.cjs.entry.js +160 -0
  113. package/dist/cjs/bcm-tab-item-header.cjs.entry.js +87 -0
  114. package/dist/cjs/bcm-tab-item.cjs.entry.js +104 -0
  115. package/dist/cjs/bcm-tag.cjs.entry.js +15 -14
  116. package/dist/cjs/bcm-text.cjs.entry.js +63 -0
  117. package/dist/cjs/bcm-textarea.cjs.entry.js +7 -6
  118. package/dist/cjs/bcm-time-picker.cjs.entry.js +4 -3
  119. package/dist/cjs/bromcom-ui.cjs.js +1 -1
  120. package/dist/cjs/color-helper-0e3e8ce5.js +86 -0
  121. package/dist/cjs/{color-helper-c9882bd8.js → colors-25c96ed6.js} +4 -81
  122. package/dist/cjs/{floating-ui-0ca84e74.js → floating-ui-c23acc6c.js} +2 -2
  123. package/dist/cjs/{generate-1c6288f3.js → generate-9739666b.js} +38 -1
  124. package/dist/cjs/{input-template-a6387296.js → input-template-8307182a.js} +6 -6
  125. package/dist/cjs/{json-parse-decarator-fb0443a2.js → json-parse-decarator-7a7415e0.js} +1 -1
  126. package/dist/cjs/{label-template-e83fc65c.js → label-template-098a30a4.js} +3 -3
  127. package/dist/cjs/loader.cjs.js +1 -1
  128. package/dist/cjs/{number-helper-9cb681ed.js → number-helper-063f8c7b.js} +1 -1
  129. package/dist/cjs/old-bcm-popover-box.cjs.entry.js +7 -6
  130. package/dist/cjs/old-bcm-popover.cjs.entry.js +5 -4
  131. package/dist/cjs/{popover-placement-5db8811b.js → popover-placement-69d37a5f.js} +1 -1
  132. package/dist/cjs/{slot-template-175c51fb.js → slot-template-7a07f865.js} +1 -1
  133. package/dist/cjs/{stepper-states-5ba5cabd.js → stepper-states-7dd1eab4.js} +1 -1
  134. package/dist/cjs/{string-helper-087a8134.js → string-helper-71b10c53.js} +2 -2
  135. package/dist/cjs/{tooltip-helper-348e4222.js → tooltip-helper-01c69059.js} +43 -13
  136. package/dist/cjs/{validators-d8faa4be.js → validators-861b4246.js} +1 -1
  137. package/dist/collection/collection-manifest.json +2 -1
  138. package/dist/collection/components/external-source/bcm-toast-helper.js +20 -0
  139. package/dist/collection/components/external-source/test.js/bcm-toast-helper.js +20 -0
  140. package/dist/collection/components/molecules/popover/popover.js +106 -1
  141. package/dist/collection/components/molecules/radio/{group.js → radio-group.js} +163 -246
  142. package/dist/collection/components/molecules/radio/radio.js +42 -132
  143. package/dist/collection/components/molecules/tooltip/tooltip.js +108 -1
  144. package/dist/collection/components/organism/states/bcm-list2.states.js +1 -1
  145. package/dist/collection/components/other/input-custom/input-custom.js +249 -0
  146. package/dist/collection/helper/generate.js +36 -0
  147. package/dist/collection/helper/popover-helper.js +57 -29
  148. package/dist/collection/helper/tooltip-helper.js +33 -4
  149. package/dist/components/bcm-input-custom.d.ts +11 -0
  150. package/dist/components/bcm-input-custom.js +114 -0
  151. package/dist/components/bcm-list.js +1 -1
  152. package/dist/components/bcm-popover.js +82 -29
  153. package/dist/components/bcm-radio-group.js +88 -230
  154. package/dist/components/color-helper.js +1 -405
  155. package/dist/{esm/color-helper-b5e9aa56.js → components/colors2.js} +2 -79
  156. package/dist/components/generate.js +37 -1
  157. package/dist/components/index.d.ts +2 -1
  158. package/dist/components/index.js +1 -0
  159. package/dist/components/radio.js +38 -82
  160. package/dist/components/tooltip-helper.js +33 -3
  161. package/dist/components/tooltip.js +28 -2
  162. package/dist/esm/bcm-9f50af9c.js +1 -1
  163. package/dist/esm/bcm-accordion.entry.js +3 -1
  164. package/dist/esm/bcm-alert.entry.js +2 -1
  165. package/dist/esm/bcm-attendance.entry.js +3 -1
  166. package/dist/esm/bcm-avatar_2.entry.js +6 -5
  167. package/dist/esm/bcm-breadcrumb.entry.js +2 -1
  168. package/dist/esm/bcm-button-group.entry.js +3 -2
  169. package/dist/esm/bcm-button.entry.js +4 -3
  170. package/dist/esm/bcm-card.entry.js +3 -2
  171. package/dist/esm/bcm-checkbox-group.entry.js +9 -8
  172. package/dist/esm/bcm-checkbox-lite_9.entry.js +3 -2
  173. package/dist/esm/bcm-checkbox_2.entry.js +4 -3
  174. package/dist/esm/bcm-chip.entry.js +3 -2
  175. package/dist/esm/bcm-collapse.entry.js +2 -1
  176. package/dist/esm/bcm-color-input.entry.js +5 -4
  177. package/dist/esm/bcm-colorful_2.entry.js +6 -5
  178. package/dist/esm/bcm-date-picker.entry.js +3 -2
  179. package/dist/esm/bcm-datetime-picker.entry.js +3 -2
  180. package/dist/esm/bcm-default.entry.js +3 -1
  181. package/dist/esm/bcm-drawer.entry.js +6 -5
  182. package/dist/esm/bcm-dropdown.entry.js +4 -3
  183. package/dist/esm/bcm-expansion-panel.entry.js +3 -2
  184. package/dist/esm/bcm-form-2.entry.js +3 -2
  185. package/dist/esm/{bcm-list.entry.js → bcm-icon_3.entry.js} +314 -46
  186. package/dist/esm/bcm-input-custom.entry.js +69 -0
  187. package/dist/esm/bcm-input.entry.js +6 -5
  188. package/dist/esm/bcm-item.entry.js +4 -3
  189. package/dist/esm/bcm-items.entry.js +3 -2
  190. package/dist/esm/bcm-label_2.entry.js +32 -8
  191. package/dist/esm/bcm-link.entry.js +1 -1
  192. package/dist/esm/bcm-menu.entry.js +6 -5
  193. package/dist/esm/bcm-modal.entry.js +3 -2
  194. package/dist/esm/bcm-popconfirm-box.entry.js +3 -2
  195. package/dist/esm/bcm-popconfirm.entry.js +3 -2
  196. package/dist/esm/bcm-popover.entry.js +85 -35
  197. package/dist/esm/bcm-progress.entry.js +4 -3
  198. package/dist/esm/bcm-radio-group.entry.js +72 -206
  199. package/dist/esm/bcm-radio.entry.js +35 -76
  200. package/dist/esm/bcm-range.entry.js +3 -2
  201. package/dist/esm/bcm-skeleton.entry.js +3 -1
  202. package/dist/esm/bcm-step.entry.js +3 -2
  203. package/dist/esm/bcm-stepper.entry.js +7 -6
  204. package/dist/esm/bcm-switch.entry.js +3 -2
  205. package/dist/esm/bcm-tab-group.entry.js +156 -0
  206. package/dist/esm/bcm-tab-item-header.entry.js +83 -0
  207. package/dist/esm/bcm-tab-item.entry.js +100 -0
  208. package/dist/esm/bcm-tag.entry.js +4 -3
  209. package/dist/esm/bcm-text.entry.js +59 -0
  210. package/dist/esm/bcm-textarea.entry.js +4 -3
  211. package/dist/esm/bcm-time-picker.entry.js +3 -2
  212. package/dist/esm/bromcom-ui.js +1 -1
  213. package/dist/esm/color-helper-0277e11a.js +84 -0
  214. package/dist/esm/colors-fabca483.js +411 -0
  215. package/dist/esm/floating-ui-4a49ea46.js +1 -1
  216. package/dist/esm/{generate-6d61a8d4.js → generate-0dc9b243.js} +38 -1
  217. package/dist/esm/{input-template-5377ad24.js → input-template-de00be57.js} +2 -2
  218. package/dist/esm/{json-parse-decarator-24e9b234.js → json-parse-decarator-5b16dfec.js} +1 -1
  219. package/dist/esm/label-template-eed2dd69.js +1 -1
  220. package/dist/esm/loader.js +1 -1
  221. package/dist/esm/{number-helper-056c158e.js → number-helper-282f0beb.js} +1 -1
  222. package/dist/esm/old-bcm-popover-box.entry.js +3 -2
  223. package/dist/esm/old-bcm-popover.entry.js +3 -2
  224. package/dist/esm/{stepper-states-450629eb.js → stepper-states-fdf47afe.js} +1 -1
  225. package/dist/esm/string-helper-0fb7ff20.js +1 -1
  226. package/dist/esm/{tooltip-helper-05959548.js → tooltip-helper-4e2db0c0.js} +38 -8
  227. package/dist/esm/{validators-649cde78.js → validators-089d15b9.js} +1 -1
  228. package/dist/types/components/external-source/bcm-toast-helper.d.ts +12 -0
  229. package/dist/types/components/external-source/test.js/bcm-toast-helper.d.ts +12 -0
  230. package/dist/types/components/molecules/popover/popover.d.ts +10 -1
  231. package/dist/types/components/molecules/radio/{group.d.ts → radio-group.d.ts} +19 -27
  232. package/dist/types/components/molecules/radio/radio.d.ts +5 -11
  233. package/dist/types/components/molecules/tooltip/tooltip.d.ts +10 -1
  234. package/dist/types/components/other/input-custom/input-custom.d.ts +20 -0
  235. package/dist/types/components.d.ts +76 -33
  236. package/dist/types/helper/generate.d.ts +2 -0
  237. package/dist/types/helper/popover-helper.d.ts +13 -3
  238. package/dist/types/helper/tooltip-helper.d.ts +13 -3
  239. package/package.json +1 -1
  240. package/dist/bromcom-ui/p-0b10d948.entry.js +0 -5
  241. package/dist/bromcom-ui/p-125b65f6.entry.js +0 -5
  242. package/dist/bromcom-ui/p-1945b686.entry.js +0 -5
  243. package/dist/bromcom-ui/p-29dc2191.js +0 -5
  244. package/dist/bromcom-ui/p-2a391ece.entry.js +0 -5
  245. package/dist/bromcom-ui/p-2ec946a1.entry.js +0 -5
  246. package/dist/bromcom-ui/p-33f4e17f.entry.js +0 -5
  247. package/dist/bromcom-ui/p-36224b1d.entry.js +0 -5
  248. package/dist/bromcom-ui/p-366e47ab.entry.js +0 -5
  249. package/dist/bromcom-ui/p-41c296b0.entry.js +0 -5
  250. package/dist/bromcom-ui/p-41dc9559.entry.js +0 -5
  251. package/dist/bromcom-ui/p-45367974.entry.js +0 -5
  252. package/dist/bromcom-ui/p-50db7a26.entry.js +0 -5
  253. package/dist/bromcom-ui/p-579e8412.entry.js +0 -5
  254. package/dist/bromcom-ui/p-5a899703.entry.js +0 -5
  255. package/dist/bromcom-ui/p-5e55f59b.entry.js +0 -5
  256. package/dist/bromcom-ui/p-5efd7090.entry.js +0 -5
  257. package/dist/bromcom-ui/p-688f1e5e.entry.js +0 -5
  258. package/dist/bromcom-ui/p-6a768487.entry.js +0 -5
  259. package/dist/bromcom-ui/p-6b321329.entry.js +0 -5
  260. package/dist/bromcom-ui/p-6c9920df.entry.js +0 -5
  261. package/dist/bromcom-ui/p-73d6483e.entry.js +0 -5
  262. package/dist/bromcom-ui/p-7aad993b.entry.js +0 -5
  263. package/dist/bromcom-ui/p-7e0b3687.entry.js +0 -5
  264. package/dist/bromcom-ui/p-82318c6a.entry.js +0 -5
  265. package/dist/bromcom-ui/p-880b9e3d.entry.js +0 -5
  266. package/dist/bromcom-ui/p-92382af0.entry.js +0 -5
  267. package/dist/bromcom-ui/p-96f555da.entry.js +0 -5
  268. package/dist/bromcom-ui/p-9c910424.entry.js +0 -5
  269. package/dist/bromcom-ui/p-a25d69f2.js +0 -5
  270. package/dist/bromcom-ui/p-a87c6718.entry.js +0 -5
  271. package/dist/bromcom-ui/p-a8d1397d.js +0 -5
  272. package/dist/bromcom-ui/p-a990ad01.entry.js +0 -5
  273. package/dist/bromcom-ui/p-aaac6552.entry.js +0 -5
  274. package/dist/bromcom-ui/p-abff65bf.entry.js +0 -5
  275. package/dist/bromcom-ui/p-bf7d791d.entry.js +0 -5
  276. package/dist/bromcom-ui/p-c2dfd997.entry.js +0 -5
  277. package/dist/bromcom-ui/p-c7d37238.entry.js +0 -5
  278. package/dist/bromcom-ui/p-cbb00d90.entry.js +0 -5
  279. package/dist/bromcom-ui/p-cf82f22a.entry.js +0 -5
  280. package/dist/bromcom-ui/p-d75546da.entry.js +0 -5
  281. package/dist/bromcom-ui/p-d8f62742.entry.js +0 -5
  282. package/dist/bromcom-ui/p-ddc53b28.entry.js +0 -5
  283. package/dist/bromcom-ui/p-e5dc36af.entry.js +0 -5
  284. package/dist/bromcom-ui/p-e85f520f.entry.js +0 -5
  285. package/dist/bromcom-ui/p-e94dcd9a.entry.js +0 -5
  286. package/dist/bromcom-ui/p-ec23e7f7.entry.js +0 -5
  287. package/dist/cjs/bcm-icon_5.cjs.entry.js +0 -378
  288. package/dist/cjs/bcm-search.cjs.entry.js +0 -258
  289. package/dist/collection/components/molecules/radio/group.css +0 -802
  290. package/dist/collection/components/molecules/radio/radio.css +0 -1287
  291. package/dist/collection/components/molecules/radio/types.js +0 -30
  292. package/dist/collection/components/molecules/states/radio-group.states.js +0 -107
  293. package/dist/esm/bcm-icon_5.entry.js +0 -370
  294. package/dist/esm/bcm-search.entry.js +0 -254
  295. package/dist/types/components/molecules/radio/types.d.ts +0 -29
  296. package/dist/types/components/molecules/states/radio-group.states.d.ts +0 -48
@@ -7,6 +7,7 @@ import { StatusProps } from "../components/molecules/alert/types";
7
7
  import { version } from "../../package.json";
8
8
  import { Build } from "@stencil/core";
9
9
  import snq from "snq";
10
+ import colors from 'tailwindcss/colors';
10
11
  const allowedDomains = ["localhost", "beta-regression.bromcomcloud.com", "beta-scrum.bromcomcloud.com", "beta-kanban.bromcomcloud.com"];
11
12
  const isAllowedDomain = () => {
12
13
  const hostname = window.location.hostname;
@@ -15,7 +16,42 @@ const isAllowedDomain = () => {
15
16
  if (isAllowedDomain()) {
16
17
  console.log(`%cbromcom ui%c version: ${version}-${Build.isDev ? "d" : "p"} `, `color: white; background:#1890FF; font-weight: 300; font-size:10px; padding:2px 6px; border-radius: 5px`, `font-size:10px;`);
17
18
  }
19
+ (function checkTheme() {
20
+ const body = document.querySelector("body");
21
+ let theme = localStorage.getItem("bcm-theme");
22
+ if (!body.classList.contains("bcm-theme-*") && theme) {
23
+ body.classList.add(`bcm-theme-${theme}`);
24
+ }
25
+ })();
18
26
  export class Generate {
27
+ static observeElementRemoval(element, callback) {
28
+ const observer = new MutationObserver((mutationsList, observer) => {
29
+ for (const mutation of mutationsList) {
30
+ if (mutation.type === "childList") {
31
+ const removedNodes = Array.from(mutation.removedNodes);
32
+ for (const removedNode of removedNodes) {
33
+ if (removedNode === element) {
34
+ callback();
35
+ observer.disconnect();
36
+ return;
37
+ }
38
+ }
39
+ }
40
+ }
41
+ });
42
+ observer.observe(document.documentElement, { childList: true, subtree: true });
43
+ }
44
+ static getTwColor(color, variable = "--bcm-color-default") {
45
+ if (!color || !colors[color]) {
46
+ return false;
47
+ }
48
+ const colorObj = colors[color];
49
+ const result = {};
50
+ for (const [key, value] of Object.entries(colorObj)) {
51
+ result[`${variable}-${key}`] = value;
52
+ }
53
+ return result;
54
+ }
19
55
  }
20
56
  Generate.UID = (prefix = "bcm") => `${prefix}${Math.random().toString(36).substr(2, 9)}`;
21
57
  Generate.getIconAttrWithStatusType = (status, loading = false) => {
@@ -2,31 +2,38 @@
2
2
  * Built with Stencil
3
3
  * Copyright (c) Bromcom.
4
4
  */
5
- import { FloatingUI } from '@bcm/utils';
6
- import { ColorHelper, Generate, StringHelper } from '@bcm/helpers';
5
+ import { delay, FloatingUI } from "@bcm/utils";
6
+ import { ColorHelper, Generate, StringHelper } from "@bcm/helpers";
7
7
  export class Popover {
8
- constructor({ content, message, targetId, placement = 'top', color = 'slate-700', trigger = 'none' }) {
8
+ constructor({ content, message, targetId, placement = "top", color = "slate-700", trigger = "none", openDelay = 0, closeDelay = 0, emitShow = () => { }, emitHide = () => { } }) {
9
+ this.destroy = () => {
10
+ this.el = document.getElementById(this.id);
11
+ if (this.el) {
12
+ this.el.remove();
13
+ this.emitHide();
14
+ }
15
+ this.removeListener();
16
+ };
9
17
  this.bgColor = () => ColorHelper.twColor(this.color, 700);
10
18
  this.exepcitonColors = {
11
- white: 'slate-300',
12
- black: 'slate-700',
19
+ white: "slate-300",
20
+ black: "slate-700",
13
21
  };
14
22
  this.target = () => document.getElementById(this.targetId);
15
23
  this.init = () => {
16
- console.log(this.content, this.message);
17
24
  const inner = `<div class="tw-z-[1] tw-rounded tw-py-2 tw-bg-${this.bgColor()}">
18
- ${this.message ? `<div class="tw-font-medium tw-w-full tw-pb-1 tw-px-4">${StringHelper.trim(this.message)}</div>` : ''}
19
- ${this.content ? `<div class="tw-font-normal tw-px-4">${StringHelper.trim(this.content)}</div>` : ''}
25
+ ${this.message ? `<div class="tw-font-medium tw-w-full tw-pb-1 tw-px-4">${StringHelper.trim(this.message)}</div>` : ""}
26
+ ${this.content ? `<div class="tw-font-normal tw-px-4">${StringHelper.trim(this.content)}</div>` : ""}
20
27
  </div>`;
21
- this.el = Generate.createElement('div', {
22
- 'id': `${this.targetId}-popover-box`,
23
- 'class': `
28
+ this.el = Generate.createElement("div", {
29
+ "id": `${this.targetId}-popover-box`,
30
+ "class": `
24
31
  tw-whitespace-normal tw-break-words tw-block tw-font-sans tw-pointer-events-none tw-max-w-[256px] tw-rounded tw-bg-${this.bgColor()} tw-text-white tw-text-3 tw-absolute tw-top-0 tw-left-0 tw-z-tooltip tw-opacity-0 tw-transition-opacity tw-duration-300
25
32
  tw-shadow`,
26
- 'role': 'popover',
27
- 'aria-hidden': 'true',
28
- 'style': `color: ${ColorHelper.twColorReverse(this.bgColor())}`,
29
- 'innerHTML': inner,
33
+ "role": "popover",
34
+ "aria-hidden": "true",
35
+ "style": `color: ${ColorHelper.twColorReverse(this.bgColor())}`,
36
+ "innerHTML": inner,
30
37
  });
31
38
  };
32
39
  this.update = () => {
@@ -37,21 +44,21 @@ export class Popover {
37
44
  }
38
45
  };
39
46
  this.listener = () => {
40
- window.addEventListener('resize', this.calculatePosition.bind(this));
41
- window.addEventListener('scroll', this.calculatePosition.bind(this), true);
42
- window.addEventListener('wheel', this.calculatePosition.bind(this));
47
+ window.addEventListener("resize", this.calculatePosition.bind(this));
48
+ window.addEventListener("scroll", this.calculatePosition.bind(this), true);
49
+ window.addEventListener("wheel", this.calculatePosition.bind(this));
43
50
  if (this.trigger && this.target()) {
44
51
  switch (this.trigger) {
45
- case 'click':
46
- this.target().addEventListener('click', this.toggle.bind(this));
52
+ case "click":
53
+ this.target().addEventListener("click", this.toggle.bind(this));
47
54
  break;
48
- case 'hover':
49
- this.target().addEventListener('mouseenter', this.show.bind(this));
50
- this.target().addEventListener('mouseleave', this.hide.bind(this));
55
+ case "hover":
56
+ this.target().addEventListener("mouseenter", this.show.bind(this));
57
+ this.target().addEventListener("mouseleave", this.hide.bind(this));
51
58
  break;
52
- case 'focus':
53
- this.target().addEventListener('focus', this.show.bind(this), true);
54
- this.target().addEventListener('blur', this.hide.bind(this), true);
59
+ case "focus":
60
+ this.target().addEventListener("focus", this.show.bind(this), true);
61
+ this.target().addEventListener("blur", this.hide.bind(this), true);
55
62
  break;
56
63
  default:
57
64
  break;
@@ -59,6 +66,18 @@ export class Popover {
59
66
  }
60
67
  this.calculatePosition();
61
68
  };
69
+ this.removeListener = () => {
70
+ window.removeEventListener("resize", this.calculatePosition.bind(this));
71
+ window.removeEventListener("scroll", this.calculatePosition.bind(this), true);
72
+ window.removeEventListener("wheel", this.calculatePosition.bind(this));
73
+ if (this.target()) {
74
+ this.target().removeEventListener("click", this.toggle.bind(this));
75
+ this.target().removeEventListener("mouseenter", this.show.bind(this));
76
+ this.target().removeEventListener("mouseleave", this.hide.bind(this));
77
+ this.target().removeEventListener("focus", this.show.bind(this), true);
78
+ this.target().removeEventListener("blur", this.hide.bind(this), true);
79
+ }
80
+ };
62
81
  this.calculatePosition = () => {
63
82
  this.el = document.getElementById(this.id);
64
83
  if (this.el) {
@@ -72,19 +91,23 @@ export class Popover {
72
91
  });
73
92
  }
74
93
  };
75
- this.show = () => {
94
+ this.show = async () => {
76
95
  if (this.message) {
77
96
  this.init();
97
+ await delay(this.openDelay);
78
98
  this.calculatePosition();
99
+ this.emitShow();
79
100
  }
80
101
  else {
81
102
  this.hide();
82
103
  }
83
104
  };
84
- this.hide = () => {
105
+ this.hide = async () => {
85
106
  this.el = document.getElementById(this.id);
86
107
  if (this.el) {
108
+ await delay(this.closeDelay);
87
109
  this.el.remove();
110
+ this.emitHide();
88
111
  }
89
112
  };
90
113
  this.toggle = () => {
@@ -102,6 +125,11 @@ export class Popover {
102
125
  this.placement = placement;
103
126
  this.color = color;
104
127
  this.trigger = trigger;
105
- this.id = targetId + '-popover-box';
128
+ this.id = targetId + "-popover-box";
129
+ this.openDelay = openDelay;
130
+ this.closeDelay = closeDelay;
131
+ this.emitShow = emitShow;
132
+ this.emitHide = emitHide;
133
+ Generate.observeElementRemoval(document.getElementById(this.targetId), this.destroy.bind(this));
106
134
  }
107
135
  }
@@ -2,11 +2,19 @@
2
2
  * Built with Stencil
3
3
  * Copyright (c) Bromcom.
4
4
  */
5
- import { FloatingUI } from "@bcm/utils";
5
+ import { delay, FloatingUI } from "@bcm/utils";
6
6
  import { ColorHelper, Generate, StringHelper } from "@bcm/helpers";
7
7
  import { Bcm } from "@bcm/model";
8
8
  export class Tooltip {
9
- constructor({ message, targetId, placement = "top", color = "slate-700", trigger = "none", size = "medium" }) {
9
+ constructor({ message, targetId, placement = "top", color = "slate-700", trigger = "none", size = "medium", openDelay = 0, closeDelay = 0, emitShow = () => { }, emitHide = () => { }, }) {
10
+ this.destroy = () => {
11
+ this.el = document.getElementById(this.id);
12
+ if (this.el) {
13
+ this.el.remove();
14
+ this.emitHide();
15
+ }
16
+ this.removeListener();
17
+ };
10
18
  this.bgColor = () => ColorHelper.twColor(this.color, 700);
11
19
  this.target = () => document.getElementById(this.targetId);
12
20
  this.sizeClass = () => {
@@ -62,6 +70,18 @@ export class Tooltip {
62
70
  }
63
71
  this.calculatePosition();
64
72
  };
73
+ this.removeListener = () => {
74
+ window.removeEventListener("resize", this.calculatePosition.bind(this));
75
+ window.removeEventListener("scroll", this.calculatePosition.bind(this), true);
76
+ window.removeEventListener("wheel", this.calculatePosition.bind(this));
77
+ if (this.target()) {
78
+ this.target().removeEventListener("click", this.toggle.bind(this));
79
+ this.target().removeEventListener("mouseenter", this.show.bind(this));
80
+ this.target().removeEventListener("mouseleave", this.hide.bind(this));
81
+ this.target().removeEventListener("focus", this.show.bind(this), true);
82
+ this.target().removeEventListener("blur", this.hide.bind(this), true);
83
+ }
84
+ };
65
85
  this.calculatePosition = () => {
66
86
  this.el = document.getElementById(this.id);
67
87
  if (this.el) {
@@ -75,19 +95,23 @@ export class Tooltip {
75
95
  });
76
96
  }
77
97
  };
78
- this.show = () => {
98
+ this.show = async () => {
79
99
  if (this.message) {
80
100
  this.init();
101
+ await delay(this.openDelay);
81
102
  this.calculatePosition();
103
+ this.emitShow();
82
104
  }
83
105
  else {
84
106
  this.hide();
85
107
  }
86
108
  };
87
- this.hide = () => {
109
+ this.hide = async () => {
88
110
  this.el = document.getElementById(this.id);
89
111
  if (this.el) {
112
+ await delay(this.closeDelay);
90
113
  this.el.remove();
114
+ this.emitHide();
91
115
  }
92
116
  };
93
117
  this.toggle = () => {
@@ -106,5 +130,10 @@ export class Tooltip {
106
130
  this.id = targetId + "-tooltip-box";
107
131
  this.trigger = trigger;
108
132
  this.size = size;
133
+ this.openDelay = openDelay;
134
+ this.closeDelay = closeDelay;
135
+ this.emitShow = emitShow;
136
+ this.emitHide = emitHide;
137
+ Generate.observeElementRemoval(document.getElementById(this.targetId), this.destroy.bind(this));
109
138
  }
110
139
  }
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface BcmInputCustom extends Components.BcmInputCustom, HTMLElement {}
4
+ export const BcmInputCustom: {
5
+ prototype: BcmInputCustom;
6
+ new (): BcmInputCustom;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,114 @@
1
+ /*!
2
+ * Built with Stencil
3
+ * Copyright (c) Bromcom.
4
+ */
5
+ import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
6
+ import { I as IsLoad } from './is-load-decorator.js';
7
+ import { G as Generate } from './generate.js';
8
+ import { c as classnames } from './index2.js';
9
+ import { d as defineCustomElement$4 } from './icon.js';
10
+ import { d as defineCustomElement$3 } from './label.js';
11
+ import { d as defineCustomElement$2 } from './tooltip.js';
12
+
13
+ var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
14
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
15
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
16
+ r = Reflect.decorate(decorators, target, key, desc);
17
+ else
18
+ for (var i = decorators.length - 1; i >= 0; i--)
19
+ if (d = decorators[i])
20
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
21
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
22
+ };
23
+ const BcmInputCustom$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
24
+ constructor() {
25
+ super();
26
+ this.__registerHost();
27
+ this.handleFocus = () => {
28
+ this.hasFocus = true;
29
+ };
30
+ this.handleBlur = () => {
31
+ this.hasFocus = false;
32
+ };
33
+ this.handleChange = (e) => {
34
+ this.value = e.target.value;
35
+ console.log(e);
36
+ };
37
+ this.handleInput = (e) => {
38
+ // this.value = (e.target as HTMLInputElement).value;
39
+ console.log(e);
40
+ };
41
+ this._id = Generate.UID();
42
+ this.name = undefined;
43
+ this.value = undefined;
44
+ this.type = "text";
45
+ this.label = undefined;
46
+ this.required = false;
47
+ this.disabled = false;
48
+ this.readonly = false;
49
+ this.placeholder = undefined;
50
+ this.fullwidth = false;
51
+ this.hasFocus = false;
52
+ }
53
+ render() {
54
+ const { _id, type, name, value, label, required, fullwidth, placeholder, disabled, readonly } = this;
55
+ return (h(Host, { class: classnames("tw-inline-flex tw-w-full tw-max-w-[256px] tw-flex-col", {
56
+ "tw-max-w-full": fullwidth,
57
+ }) }, label && h("bcm-label", { value: label, required: required, htmlFor: _id }), h("div", { class: classnames("tw-relative tw-flex tw-w-full tw-flex-row tw-items-stretch tw-rounded tw-border tw-p-0 hover:tw-border-primary-600", {
58
+ "tw-cursor-not-allowed tw-bg-secondary-50": this.disabled,
59
+ "tw-cursor-text": !this.disabled,
60
+ "tw-cursor-default tw-bg-secondary-50": this.readonly,
61
+ "tw-border-primary-500 tw-bg-secondary-50": this.hasFocus,
62
+ "tw-border-secondary-300 tw-bg-white": !this.hasFocus,
63
+ }) }, h("input", { id: _id, name: name, type: type, value: value, "data-value": value, placeholder: placeholder, required: required, disabled: disabled, readonly: readonly, class: classnames("tw-text-overflow-ellipsis", "tw-rounded-none", "tw-flex-1", "tw-cursor-inherit", "tw-w-full", "tw-appearance-none", "tw-overflow-hidden", "tw-whitespace-nowrap", "tw-border-none", "tw-bg-transparent", "tw-p-2", "tw-text-secondary-600", "tw-placeholder-secondary-300", "tw-outline-none"), onFocus: this.handleFocus, onBlur: this.handleBlur, onChange: e => this.handleChange(e), onInput: this.handleInput }))));
64
+ }
65
+ get el() { return this; }
66
+ }, [0, "bcm-input-custom", {
67
+ "_id": [1537, "id"],
68
+ "name": [1],
69
+ "value": [1025],
70
+ "type": [1],
71
+ "label": [1],
72
+ "required": [4],
73
+ "disabled": [4],
74
+ "readonly": [4],
75
+ "placeholder": [1],
76
+ "fullwidth": [4],
77
+ "hasFocus": [32]
78
+ }]);
79
+ __decorate([
80
+ IsLoad()
81
+ ], BcmInputCustom$1.prototype, "el", void 0);
82
+ function defineCustomElement$1() {
83
+ if (typeof customElements === "undefined") {
84
+ return;
85
+ }
86
+ const components = ["bcm-input-custom", "bcm-icon", "bcm-label", "bcm-tooltip"];
87
+ components.forEach(tagName => { switch (tagName) {
88
+ case "bcm-input-custom":
89
+ if (!customElements.get(tagName)) {
90
+ customElements.define(tagName, BcmInputCustom$1);
91
+ }
92
+ break;
93
+ case "bcm-icon":
94
+ if (!customElements.get(tagName)) {
95
+ defineCustomElement$4();
96
+ }
97
+ break;
98
+ case "bcm-label":
99
+ if (!customElements.get(tagName)) {
100
+ defineCustomElement$3();
101
+ }
102
+ break;
103
+ case "bcm-tooltip":
104
+ if (!customElements.get(tagName)) {
105
+ defineCustomElement$2();
106
+ }
107
+ break;
108
+ } });
109
+ }
110
+
111
+ const BcmInputCustom = BcmInputCustom$1;
112
+ const defineCustomElement = defineCustomElement$1;
113
+
114
+ export { BcmInputCustom, defineCustomElement };
@@ -325,7 +325,7 @@ const findItem = (id, itemId, items) => {
325
325
  if (dataSource) {
326
326
  dataSource.forEach(item => {
327
327
  if (itemId.includes(item.id)) {
328
- checkedProcess(id, item, true);
328
+ checkedProcess(id, item);
329
329
  if (item.parentId) {
330
330
  indeterminateStatus(id, item.parentId);
331
331
  }
@@ -2,7 +2,7 @@
2
2
  * Built with Stencil
3
3
  * Copyright (c) Bromcom.
4
4
  */
5
- import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
5
+ import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
6
6
  import { I as IsLoad } from './is-load-decorator.js';
7
7
  import { C as ColorHelper } from './color-helper.js';
8
8
  import './validators.js';
@@ -11,31 +11,39 @@ import './number-helper.js';
11
11
  import { S as StringHelper } from './string-helper.js';
12
12
  import './element-dragger.js';
13
13
  import { a as Bcm } from './bcm.js';
14
+ import { d as delay } from './utils.js';
14
15
  import { F as FloatingUI } from './floating-ui.js';
15
16
 
16
17
  class Popover {
17
- constructor({ content, message, targetId, placement = 'top', color = 'slate-700', trigger = 'none' }) {
18
+ constructor({ content, message, targetId, placement = "top", color = "slate-700", trigger = "none", openDelay = 0, closeDelay = 0, emitShow = () => { }, emitHide = () => { } }) {
19
+ this.destroy = () => {
20
+ this.el = document.getElementById(this.id);
21
+ if (this.el) {
22
+ this.el.remove();
23
+ this.emitHide();
24
+ }
25
+ this.removeListener();
26
+ };
18
27
  this.bgColor = () => ColorHelper.twColor(this.color, 700);
19
28
  this.exepcitonColors = {
20
- white: 'slate-300',
21
- black: 'slate-700',
29
+ white: "slate-300",
30
+ black: "slate-700",
22
31
  };
23
32
  this.target = () => document.getElementById(this.targetId);
24
33
  this.init = () => {
25
- console.log(this.content, this.message);
26
34
  const inner = `<div class="tw-z-[1] tw-rounded tw-py-2 tw-bg-${this.bgColor()}">
27
- ${this.message ? `<div class="tw-font-medium tw-w-full tw-pb-1 tw-px-4">${StringHelper.trim(this.message)}</div>` : ''}
28
- ${this.content ? `<div class="tw-font-normal tw-px-4">${StringHelper.trim(this.content)}</div>` : ''}
35
+ ${this.message ? `<div class="tw-font-medium tw-w-full tw-pb-1 tw-px-4">${StringHelper.trim(this.message)}</div>` : ""}
36
+ ${this.content ? `<div class="tw-font-normal tw-px-4">${StringHelper.trim(this.content)}</div>` : ""}
29
37
  </div>`;
30
- this.el = Generate.createElement('div', {
31
- 'id': `${this.targetId}-popover-box`,
32
- 'class': `
38
+ this.el = Generate.createElement("div", {
39
+ "id": `${this.targetId}-popover-box`,
40
+ "class": `
33
41
  tw-whitespace-normal tw-break-words tw-block tw-font-sans tw-pointer-events-none tw-max-w-[256px] tw-rounded tw-bg-${this.bgColor()} tw-text-white tw-text-3 tw-absolute tw-top-0 tw-left-0 tw-z-tooltip tw-opacity-0 tw-transition-opacity tw-duration-300
34
42
  tw-shadow`,
35
- 'role': 'popover',
36
- 'aria-hidden': 'true',
37
- 'style': `color: ${ColorHelper.twColorReverse(this.bgColor())}`,
38
- 'innerHTML': inner,
43
+ "role": "popover",
44
+ "aria-hidden": "true",
45
+ "style": `color: ${ColorHelper.twColorReverse(this.bgColor())}`,
46
+ "innerHTML": inner,
39
47
  });
40
48
  };
41
49
  this.update = () => {
@@ -46,26 +54,38 @@ class Popover {
46
54
  }
47
55
  };
48
56
  this.listener = () => {
49
- window.addEventListener('resize', this.calculatePosition.bind(this));
50
- window.addEventListener('scroll', this.calculatePosition.bind(this), true);
51
- window.addEventListener('wheel', this.calculatePosition.bind(this));
57
+ window.addEventListener("resize", this.calculatePosition.bind(this));
58
+ window.addEventListener("scroll", this.calculatePosition.bind(this), true);
59
+ window.addEventListener("wheel", this.calculatePosition.bind(this));
52
60
  if (this.trigger && this.target()) {
53
61
  switch (this.trigger) {
54
- case 'click':
55
- this.target().addEventListener('click', this.toggle.bind(this));
62
+ case "click":
63
+ this.target().addEventListener("click", this.toggle.bind(this));
56
64
  break;
57
- case 'hover':
58
- this.target().addEventListener('mouseenter', this.show.bind(this));
59
- this.target().addEventListener('mouseleave', this.hide.bind(this));
65
+ case "hover":
66
+ this.target().addEventListener("mouseenter", this.show.bind(this));
67
+ this.target().addEventListener("mouseleave", this.hide.bind(this));
60
68
  break;
61
- case 'focus':
62
- this.target().addEventListener('focus', this.show.bind(this), true);
63
- this.target().addEventListener('blur', this.hide.bind(this), true);
69
+ case "focus":
70
+ this.target().addEventListener("focus", this.show.bind(this), true);
71
+ this.target().addEventListener("blur", this.hide.bind(this), true);
64
72
  break;
65
73
  }
66
74
  }
67
75
  this.calculatePosition();
68
76
  };
77
+ this.removeListener = () => {
78
+ window.removeEventListener("resize", this.calculatePosition.bind(this));
79
+ window.removeEventListener("scroll", this.calculatePosition.bind(this), true);
80
+ window.removeEventListener("wheel", this.calculatePosition.bind(this));
81
+ if (this.target()) {
82
+ this.target().removeEventListener("click", this.toggle.bind(this));
83
+ this.target().removeEventListener("mouseenter", this.show.bind(this));
84
+ this.target().removeEventListener("mouseleave", this.hide.bind(this));
85
+ this.target().removeEventListener("focus", this.show.bind(this), true);
86
+ this.target().removeEventListener("blur", this.hide.bind(this), true);
87
+ }
88
+ };
69
89
  this.calculatePosition = () => {
70
90
  this.el = document.getElementById(this.id);
71
91
  if (this.el) {
@@ -79,19 +99,23 @@ class Popover {
79
99
  });
80
100
  }
81
101
  };
82
- this.show = () => {
102
+ this.show = async () => {
83
103
  if (this.message) {
84
104
  this.init();
105
+ await delay(this.openDelay);
85
106
  this.calculatePosition();
107
+ this.emitShow();
86
108
  }
87
109
  else {
88
110
  this.hide();
89
111
  }
90
112
  };
91
- this.hide = () => {
113
+ this.hide = async () => {
92
114
  this.el = document.getElementById(this.id);
93
115
  if (this.el) {
116
+ await delay(this.closeDelay);
94
117
  this.el.remove();
118
+ this.emitHide();
95
119
  }
96
120
  };
97
121
  this.toggle = () => {
@@ -109,7 +133,12 @@ class Popover {
109
133
  this.placement = placement;
110
134
  this.color = color;
111
135
  this.trigger = trigger;
112
- this.id = targetId + '-popover-box';
136
+ this.id = targetId + "-popover-box";
137
+ this.openDelay = openDelay;
138
+ this.closeDelay = closeDelay;
139
+ this.emitShow = emitShow;
140
+ this.emitHide = emitHide;
141
+ Generate.observeElementRemoval(document.getElementById(this.targetId), this.destroy.bind(this));
113
142
  }
114
143
  }
115
144
 
@@ -127,6 +156,8 @@ const BcmPopover$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
127
156
  constructor() {
128
157
  super();
129
158
  this.__registerHost();
159
+ this.bcmPopoverShow = createEvent(this, "bcmPopoverShow", 7);
160
+ this.bcmPopoverHide = createEvent(this, "bcmPopoverHide", 7);
130
161
  this._id = Generate.UID();
131
162
  this.message = "";
132
163
  this.content = "";
@@ -134,13 +165,29 @@ const BcmPopover$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
134
165
  this.trigger = Bcm.TriggerType.click;
135
166
  this.open = false;
136
167
  this.color = "white";
168
+ this.targetId = undefined;
169
+ this.openDelay = 0;
170
+ this.closeDelay = 0;
171
+ this.popover = undefined;
172
+ }
173
+ emitShow() {
174
+ this.bcmPopoverShow.emit();
175
+ }
176
+ emitHide() {
177
+ this.bcmPopoverHide.emit();
178
+ }
179
+ componentWillLoad() {
137
180
  this.popover = new Popover({
138
- targetId: this._id,
181
+ targetId: this.targetId || this._id,
139
182
  content: this.content,
140
183
  message: this.message,
141
184
  placement: this.placement,
142
185
  color: this.color,
143
186
  trigger: this.trigger,
187
+ openDelay: this.openDelay,
188
+ closeDelay: this.closeDelay,
189
+ emitShow: () => this.emitShow(),
190
+ emitHide: () => this.emitHide(),
144
191
  });
145
192
  }
146
193
  componentDidLoad() {
@@ -155,6 +202,9 @@ const BcmPopover$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
155
202
  this.popover.trigger = trigger;
156
203
  this.popover.update();
157
204
  }
205
+ disconnectedCallback() {
206
+ this.popover.destroy();
207
+ }
158
208
  async show() {
159
209
  this.popover.show();
160
210
  }
@@ -176,6 +226,9 @@ const BcmPopover$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
176
226
  "trigger": [1],
177
227
  "open": [1028],
178
228
  "color": [1],
229
+ "targetId": [1, "target-id"],
230
+ "openDelay": [2, "open-delay"],
231
+ "closeDelay": [2, "close-delay"],
179
232
  "popover": [32],
180
233
  "show": [64],
181
234
  "hide": [64],