bromcom-ui 2.10.1-rc.0 → 2.10.1-rc.10

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 (423) 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-000670b6.js +5 -0
  4. package/dist/bromcom-ui/{p-401a6ab5.entry.js → p-073d177e.entry.js} +1 -1
  5. package/dist/bromcom-ui/{p-fa08ba52.entry.js → p-07e9b5e7.entry.js} +1 -1
  6. package/dist/bromcom-ui/p-0fc73cca.entry.js +5 -0
  7. package/dist/bromcom-ui/{p-fcc6f71e.js → p-125d6ed0.js} +1 -1
  8. package/dist/bromcom-ui/{p-4438d629.entry.js → p-14cafd64.entry.js} +1 -1
  9. package/dist/bromcom-ui/{p-6b5ed4d8.js → p-157359d6.js} +1 -1
  10. package/dist/bromcom-ui/{p-05bd4980.entry.js → p-16450a8b.entry.js} +1 -1
  11. package/dist/bromcom-ui/{p-e037ee2b.js → p-170cf07d.js} +1 -1
  12. package/dist/bromcom-ui/{p-3bae35e5.entry.js → p-175eb1c7.entry.js} +1 -1
  13. package/dist/bromcom-ui/{p-7c94a7b0.entry.js → p-17c0a72a.entry.js} +1 -1
  14. package/dist/bromcom-ui/{p-51ba92e5.entry.js → p-17eb0140.entry.js} +1 -1
  15. package/dist/bromcom-ui/{p-5a97d31c.entry.js → p-18d28737.entry.js} +1 -1
  16. package/dist/bromcom-ui/{p-08159d00.entry.js → p-19f27bd8.entry.js} +1 -1
  17. package/dist/bromcom-ui/{p-95a2c489.entry.js → p-1c801d0c.entry.js} +1 -1
  18. package/dist/bromcom-ui/{p-e32ab4da.entry.js → p-1c9314bd.entry.js} +1 -1
  19. package/dist/bromcom-ui/p-1f5ca41b.entry.js +5 -0
  20. package/dist/bromcom-ui/p-21cb3cfe.entry.js +5 -0
  21. package/dist/bromcom-ui/p-228c74e9.entry.js +5 -0
  22. package/dist/bromcom-ui/{p-1d04942a.entry.js → p-23eb79ac.entry.js} +1 -1
  23. package/dist/bromcom-ui/{p-18bc4e04.entry.js → p-26290ed5.entry.js} +1 -1
  24. package/dist/bromcom-ui/{p-188b9079.entry.js → p-2aaeb247.entry.js} +1 -1
  25. package/dist/bromcom-ui/{p-552dfb63.entry.js → p-2d965b60.entry.js} +1 -1
  26. package/dist/bromcom-ui/p-32d93221.entry.js +21 -0
  27. package/dist/bromcom-ui/p-33513345.entry.js +5 -0
  28. package/dist/bromcom-ui/{p-61ad661f.entry.js → p-3b5c36e8.entry.js} +1 -1
  29. package/dist/bromcom-ui/{p-dca22282.entry.js → p-3f127ea5.entry.js} +1 -1
  30. package/dist/bromcom-ui/p-40b85b9b.entry.js +5 -0
  31. package/dist/bromcom-ui/{p-2ce15cc8.entry.js → p-424b7562.entry.js} +1 -1
  32. package/dist/bromcom-ui/{p-0efc9196.entry.js → p-430c0a24.entry.js} +1 -1
  33. package/dist/bromcom-ui/{p-da20e681.entry.js → p-43a1f84c.entry.js} +1 -1
  34. package/dist/bromcom-ui/{p-c851688d.entry.js → p-4e436468.entry.js} +1 -1
  35. package/dist/bromcom-ui/{p-6e5f5f36.js → p-518b9b80.js} +1 -1
  36. package/dist/bromcom-ui/{p-be6595a2.entry.js → p-51b6a14a.entry.js} +1 -1
  37. package/dist/bromcom-ui/{p-32fd9854.js → p-52b7fc24.js} +1 -1
  38. package/dist/bromcom-ui/p-56187d14.entry.js +5 -0
  39. package/dist/bromcom-ui/{p-468157a0.entry.js → p-5699f67d.entry.js} +1 -1
  40. package/dist/bromcom-ui/{p-d4755f0d.entry.js → p-58d5775f.entry.js} +1 -1
  41. package/dist/bromcom-ui/{p-dd1a0284.entry.js → p-594953e7.entry.js} +1 -1
  42. package/dist/bromcom-ui/p-5b96272e.entry.js +5 -0
  43. package/dist/bromcom-ui/{p-21fed956.entry.js → p-5bf620b2.entry.js} +1 -1
  44. package/dist/bromcom-ui/{p-4d8067b9.entry.js → p-5c671967.entry.js} +1 -1
  45. package/dist/bromcom-ui/{p-599889d7.entry.js → p-5fc49f6f.entry.js} +1 -1
  46. package/dist/bromcom-ui/{p-00e1c9bb.entry.js → p-60a12878.entry.js} +1 -1
  47. package/dist/bromcom-ui/p-61314a43.js +5 -0
  48. package/dist/bromcom-ui/{p-5dd45752.entry.js → p-6153f889.entry.js} +1 -1
  49. package/dist/bromcom-ui/{p-4798d827.js → p-61db1f1f.js} +1 -1
  50. package/dist/bromcom-ui/{p-7a89243a.entry.js → p-626b805d.entry.js} +1 -1
  51. package/dist/bromcom-ui/{p-a313fba6.js → p-6369b73b.js} +1 -1
  52. package/dist/bromcom-ui/{p-6660ba14.entry.js → p-643a09b4.entry.js} +1 -1
  53. package/dist/bromcom-ui/p-64999c43.entry.js +5 -0
  54. package/dist/bromcom-ui/p-64fad38b.js +11 -0
  55. package/dist/bromcom-ui/{p-3b079331.entry.js → p-67343ad8.entry.js} +1 -1
  56. package/dist/bromcom-ui/{p-48f5a3c9.entry.js → p-69260d36.entry.js} +1 -1
  57. package/dist/bromcom-ui/{p-034bbcdd.js → p-6edf985f.js} +1 -1
  58. package/dist/bromcom-ui/{p-197aba37.js → p-74e6d2b6.js} +1 -1
  59. package/dist/bromcom-ui/{p-47df8e77.entry.js → p-79712823.entry.js} +1 -1
  60. package/dist/bromcom-ui/{p-03337609.entry.js → p-7c5763cc.entry.js} +1 -1
  61. package/dist/bromcom-ui/{p-181f2f4a.entry.js → p-7d18ce0e.entry.js} +1 -1
  62. package/dist/bromcom-ui/{p-ddb6f31a.entry.js → p-7e2da99e.entry.js} +1 -1
  63. package/dist/bromcom-ui/{p-5ae0a59b.js → p-7e44e6b5.js} +1 -1
  64. package/dist/bromcom-ui/{p-0db33506.entry.js → p-841f2b60.entry.js} +1 -1
  65. package/dist/bromcom-ui/{p-e45c1546.js → p-85eedabc.js} +1 -1
  66. package/dist/bromcom-ui/{p-3c7a0345.js → p-8c018ae0.js} +1 -1
  67. package/dist/bromcom-ui/{p-ab3cd547.entry.js → p-8c3a6509.entry.js} +1 -1
  68. package/dist/bromcom-ui/p-8c610886.js +5 -0
  69. package/dist/bromcom-ui/{p-5efc5c02.entry.js → p-8e772077.entry.js} +1 -1
  70. package/dist/bromcom-ui/{p-61334720.entry.js → p-8fbdb72f.entry.js} +1 -1
  71. package/dist/bromcom-ui/{p-91623d42.entry.js → p-910c935f.entry.js} +1 -1
  72. package/dist/bromcom-ui/{p-8e5e362a.js → p-9850cbce.js} +1 -1
  73. package/dist/bromcom-ui/{p-f9119bec.entry.js → p-99824717.entry.js} +1 -1
  74. package/dist/bromcom-ui/p-9ac757e9.entry.js +5 -0
  75. package/dist/bromcom-ui/{p-d345d37b.entry.js → p-9da1d897.entry.js} +1 -1
  76. package/dist/bromcom-ui/{p-d3bd9ee0.entry.js → p-9f1e6daa.entry.js} +1 -1
  77. package/dist/bromcom-ui/{p-cd724916.js → p-a1477028.js} +1 -1
  78. package/dist/bromcom-ui/p-a25c8a55.js +5 -0
  79. package/dist/bromcom-ui/{p-0207059a.js → p-a58b2664.js} +1 -1
  80. package/dist/bromcom-ui/{p-1a33d7a3.entry.js → p-a664cc20.entry.js} +1 -1
  81. package/dist/bromcom-ui/{p-8fa5700a.entry.js → p-a835bff0.entry.js} +1 -1
  82. package/dist/bromcom-ui/p-a889681e.entry.js +5 -0
  83. package/dist/bromcom-ui/{p-1ba21e9c.entry.js → p-aab72ea1.entry.js} +1 -1
  84. package/dist/bromcom-ui/p-abc44b58.entry.js +5 -0
  85. package/dist/bromcom-ui/p-ae57f046.entry.js +5 -0
  86. package/dist/bromcom-ui/{p-035c6dbc.entry.js → p-afde516e.entry.js} +1 -1
  87. package/dist/bromcom-ui/{p-6e7bb16f.entry.js → p-ba9eff2a.entry.js} +1 -1
  88. package/dist/bromcom-ui/{p-107f11df.entry.js → p-c1a992e7.entry.js} +1 -1
  89. package/dist/bromcom-ui/{p-0c8abcd8.entry.js → p-c977ed98.entry.js} +1 -1
  90. package/dist/bromcom-ui/p-cfd52d5f.entry.js +5 -0
  91. package/dist/bromcom-ui/{p-63138ee5.entry.js → p-d551a51d.entry.js} +1 -1
  92. package/dist/bromcom-ui/{p-f9988c3c.entry.js → p-da5fdda2.entry.js} +1 -1
  93. package/dist/bromcom-ui/p-e19a8e73.entry.js +5 -0
  94. package/dist/bromcom-ui/{p-4542066c.js → p-e2aaaece.js} +1 -1
  95. package/dist/bromcom-ui/{p-a42879c1.entry.js → p-e6faa2bb.entry.js} +1 -1
  96. package/dist/bromcom-ui/{p-751baf81.entry.js → p-ec36f5a0.entry.js} +1 -1
  97. package/dist/bromcom-ui/p-ec992ac3.entry.js +5 -0
  98. package/dist/bromcom-ui/{p-f4576a4f.entry.js → p-ecd8d70f.entry.js} +1 -1
  99. package/dist/bromcom-ui/{p-4d7ea23c.entry.js → p-ece578ef.entry.js} +1 -1
  100. package/dist/bromcom-ui/p-edbdd7dd.js +5 -0
  101. package/dist/bromcom-ui/{p-daa45693.entry.js → p-f077a1d7.entry.js} +1 -1
  102. package/dist/bromcom-ui/{p-704352eb.entry.js → p-f2776268.entry.js} +1 -1
  103. package/dist/bromcom-ui/p-f800e665.js +5 -0
  104. package/dist/bromcom-ui/{p-2d59be96.js → p-f83b3048.js} +1 -1
  105. package/dist/bromcom-ui/{p-c39f002b.js → p-fed84581.js} +1 -1
  106. package/dist/bromcom-ui/{p-1e8559ac.entry.js → p-fff1a0f9.entry.js} +1 -1
  107. package/dist/cjs/{bcm-489c9b1a.js → bcm-3c58a6d5.js} +28 -28
  108. package/dist/cjs/bcm-accordion.cjs.entry.js +2 -2
  109. package/dist/cjs/bcm-alert.cjs.entry.js +4 -4
  110. package/dist/cjs/bcm-attendance.cjs.entry.js +2 -2
  111. package/dist/cjs/bcm-avatar_2.cjs.entry.js +6 -6
  112. package/dist/cjs/bcm-breadcrumb.cjs.entry.js +2 -2
  113. package/dist/cjs/bcm-button-group.cjs.entry.js +4 -4
  114. package/dist/cjs/bcm-button_15.cjs.entry.js +37832 -0
  115. package/dist/cjs/bcm-caption.cjs.entry.js +47 -0
  116. package/dist/cjs/bcm-card.cjs.entry.js +5 -5
  117. package/dist/cjs/bcm-checkbox-group.cjs.entry.js +20 -22
  118. package/dist/cjs/bcm-checkbox-lite_9.cjs.entry.js +3 -3
  119. package/dist/cjs/bcm-chip-group.cjs.entry.js +8 -9
  120. package/dist/cjs/bcm-chip.cjs.entry.js +2 -2
  121. package/dist/cjs/bcm-collapse.cjs.entry.js +2 -2
  122. package/dist/cjs/bcm-color-input.cjs.entry.js +6 -6
  123. package/dist/cjs/bcm-date-picker.cjs.entry.js +3 -3
  124. package/dist/cjs/bcm-datetime-picker.cjs.entry.js +7 -8
  125. package/dist/cjs/bcm-default.cjs.entry.js +2 -2
  126. package/dist/cjs/bcm-drawer.cjs.entry.js +6 -6
  127. package/dist/cjs/bcm-dropdown.cjs.entry.js +4 -4
  128. package/dist/cjs/bcm-expansion-panel.cjs.entry.js +4 -4
  129. package/dist/cjs/bcm-form-2.cjs.entry.js +4 -4
  130. package/dist/cjs/bcm-input-custom.cjs.entry.js +2 -2
  131. package/dist/cjs/bcm-input-dropdown.cjs.entry.js +10 -10
  132. package/dist/cjs/bcm-item.cjs.entry.js +3 -3
  133. package/dist/cjs/bcm-items.cjs.entry.js +4 -4
  134. package/dist/cjs/bcm-link.cjs.entry.js +1 -1
  135. package/dist/cjs/bcm-menu.cjs.entry.js +8 -8
  136. package/dist/cjs/bcm-modal-2-footer.cjs.entry.js +6 -6
  137. package/dist/cjs/bcm-modal-2-header.cjs.entry.js +6 -6
  138. package/dist/cjs/bcm-modal-2.cjs.entry.js +6 -6
  139. package/dist/cjs/bcm-modal.cjs.entry.js +5 -5
  140. package/dist/cjs/bcm-number-input.cjs.entry.js +109 -0
  141. package/dist/cjs/bcm-old-input.cjs.entry.js +2 -2
  142. package/dist/cjs/bcm-popconfirm-box.cjs.entry.js +5 -5
  143. package/dist/cjs/bcm-popconfirm.cjs.entry.js +3 -3
  144. package/dist/cjs/bcm-popover.cjs.entry.js +7 -7
  145. package/dist/cjs/bcm-progress.cjs.entry.js +3 -3
  146. package/dist/cjs/bcm-radio-group.cjs.entry.js +7 -7
  147. package/dist/cjs/bcm-radio.cjs.entry.js +6 -6
  148. package/dist/cjs/bcm-range.cjs.entry.js +3 -3
  149. package/dist/cjs/bcm-select.cjs.entry.js +2 -2
  150. package/dist/cjs/bcm-shortcut.cjs.entry.js +6 -6
  151. package/dist/cjs/bcm-skeleton.cjs.entry.js +6 -6
  152. package/dist/cjs/bcm-step.cjs.entry.js +3 -3
  153. package/dist/cjs/bcm-stepper.cjs.entry.js +7 -7
  154. package/dist/cjs/bcm-tab-group.cjs.entry.js +6 -6
  155. package/dist/cjs/bcm-tab-item-header.cjs.entry.js +6 -6
  156. package/dist/cjs/bcm-tab-item.cjs.entry.js +6 -6
  157. package/dist/cjs/bcm-table.cjs.entry.js +6 -6
  158. package/dist/cjs/bcm-tag.cjs.entry.js +4 -4
  159. package/dist/cjs/bcm-text.cjs.entry.js +3 -3
  160. package/dist/cjs/bcm-textarea.cjs.entry.js +6 -6
  161. package/dist/cjs/bcm-time-picker.cjs.entry.js +3 -3
  162. package/dist/cjs/bcm-toast.cjs.entry.js +4 -4
  163. package/dist/cjs/bcm-typography.cjs.entry.js +21 -0
  164. package/dist/cjs/bromcom-ui.cjs.js +3 -3
  165. package/dist/cjs/caption-template-6f535b93.js +32 -0
  166. package/dist/cjs/{floating-ui-21890d11.js → floating-ui-555cd3d4.js} +1 -1
  167. package/dist/cjs/{generate-e214b3de.js → generate-c3a6c8c7.js} +15 -1
  168. package/dist/cjs/{global-532b40dc.js → global-9e8b5009.js} +1 -1
  169. package/dist/cjs/{input-template-2b8e0195.js → input-template-8eeb94e7.js} +2 -2
  170. package/dist/cjs/{json-parse-decarator-668b7724.js → json-parse-decarator-0932bec0.js} +1 -1
  171. package/dist/cjs/label-template-a6f51ef2.js +27 -0
  172. package/dist/cjs/loader.cjs.js +3 -3
  173. package/dist/cjs/{number-helper-3a911c0f.js → number-helper-4e902d31.js} +1 -1
  174. package/dist/cjs/old-bcm-popover-box.cjs.entry.js +7 -7
  175. package/dist/cjs/old-bcm-popover.cjs.entry.js +3 -3
  176. package/dist/cjs/{package-f9f70acc.js → package-b23f7b7f.js} +1 -1
  177. package/dist/cjs/{popover-placement-e7d6eabd.js → popover-placement-9b4b4153.js} +1 -1
  178. package/dist/cjs/{slot-template-c8e2816c.js → slot-template-80b019d5.js} +1 -1
  179. package/dist/cjs/{stepper-states-7d2f2235.js → stepper-states-cb2339c3.js} +1 -1
  180. package/dist/cjs/{string-helper-f9184277.js → string-helper-3212f4ea.js} +1 -1
  181. package/dist/cjs/{tooltip-helper-410ac258.js → tooltip-helper-4ddec3b4.js} +6 -6
  182. package/dist/cjs/{validators-910556c5.js → validators-e2155072.js} +1 -1
  183. package/dist/collection/collection-manifest.json +2 -0
  184. package/dist/collection/components/atoms/caption/caption.js +195 -0
  185. package/dist/collection/components/atoms/label/label.js +48 -29
  186. package/dist/collection/components/molecules/checkbox/checkbox.css +0 -89
  187. package/dist/collection/components/molecules/input/input.css +0 -89
  188. package/dist/collection/components/molecules/input-dropdown/input-dropdown.css +0 -89
  189. package/dist/collection/components/molecules/input-dropdown/input-dropdown.js +1 -1
  190. package/dist/collection/components/molecules/input-dropdown/input-dropdown.style.js +1 -1
  191. package/dist/collection/components/{atoms/label/label.css → molecules/number-input/number-input.css} +12 -33
  192. package/dist/collection/components/molecules/number-input/number-input.js +425 -0
  193. package/dist/collection/components/molecules/number-input/number-input.style.js +45 -0
  194. package/dist/collection/components/molecules/search/search.css +0 -89
  195. package/dist/collection/components/molecules/switch/switch.css +1 -89
  196. package/dist/collection/components/molecules/textarea/textarea.css +0 -89
  197. package/dist/collection/components/organism/datetime-picker/datetime-picker.css +0 -89
  198. package/dist/collection/components/organism/list/list.css +2 -89
  199. package/dist/collection/components/organism/list/list.js +83 -15
  200. package/dist/collection/components/other_deprecated/old-input/old-input.css +0 -89
  201. package/dist/collection/components/third-parts/colorful/colorful.css +0 -89
  202. package/dist/collection/components/third-parts/rc-picker/date.js +7 -5
  203. package/dist/collection/components/third-parts/rc-picker/rc-picker.css +1 -376
  204. package/dist/collection/components/third-parts/rc-picker/rc-picker.js +3 -16
  205. package/dist/collection/helper/generate.js +14 -0
  206. package/dist/collection/models/bcm.js +28 -28
  207. package/dist/collection/stories/ui-library/components/date/argTypes_common.js +203 -0
  208. package/dist/collection/stories/ui-library/components/date/argTypes_date.js +47 -0
  209. package/dist/collection/stories/ui-library/components/date/argTypes_datetime.js +109 -0
  210. package/dist/collection/stories/ui-library/components/date/argTypes_time.js +91 -0
  211. package/dist/collection/templates/caption-template.js +15 -11
  212. package/dist/collection/templates/label-template.js +9 -7
  213. package/dist/collection/templates/list-item-template.js +3 -2
  214. package/dist/collection/templates/list-template.js +2 -2
  215. package/dist/components/bcm-caption.d.ts +11 -0
  216. package/dist/components/bcm-caption.js +64 -0
  217. package/dist/components/bcm-checkbox-group.js +7 -8
  218. package/dist/components/bcm-chip-group.js +1 -2
  219. package/dist/components/bcm-date.js +26 -7
  220. package/dist/components/bcm-input-dropdown.js +3 -3
  221. package/dist/components/bcm-number-input.d.ts +11 -0
  222. package/dist/components/bcm-number-input.js +157 -0
  223. package/dist/components/bcm-switch.js +1 -1
  224. package/dist/components/bcm.js +28 -28
  225. package/dist/components/caption-template.js +15 -17
  226. package/dist/components/checkbox.js +1 -1
  227. package/dist/components/colorful.js +1 -1
  228. package/dist/components/datetime-picker.js +2 -3
  229. package/dist/components/generate.js +15 -1
  230. package/dist/components/index.d.ts +2 -0
  231. package/dist/components/index.js +2 -0
  232. package/dist/components/input.js +1 -1
  233. package/dist/components/label.js +46 -20
  234. package/dist/components/list.js +49 -18
  235. package/dist/components/old-input.js +1 -1
  236. package/dist/components/rc-picker.js +4 -17
  237. package/dist/components/search.js +1 -1
  238. package/dist/components/textarea.js +1 -1
  239. package/dist/esm/{_commonjsHelpers-be0d4ec8.js → _commonjsHelpers-7002e5de.js} +1 -1
  240. package/dist/esm/{bcm-a50d55ba.js → bcm-0f9cc27c.js} +28 -28
  241. package/dist/esm/bcm-accordion.entry.js +5 -5
  242. package/dist/esm/bcm-alert.entry.js +9 -9
  243. package/dist/esm/bcm-attendance.entry.js +5 -5
  244. package/dist/esm/bcm-autocomplete.entry.js +3 -3
  245. package/dist/esm/bcm-avatar_2.entry.js +12 -12
  246. package/dist/esm/bcm-box.entry.js +1 -1
  247. package/dist/esm/bcm-breadcrumb.entry.js +6 -6
  248. package/dist/esm/bcm-button-group.entry.js +8 -8
  249. package/dist/esm/bcm-button_15.entry.js +37814 -0
  250. package/dist/esm/bcm-caption.entry.js +43 -0
  251. package/dist/esm/bcm-card.entry.js +11 -11
  252. package/dist/esm/bcm-checkbox-group.entry.js +17 -19
  253. package/dist/esm/bcm-checkbox-lite_9.entry.js +8 -8
  254. package/dist/esm/bcm-chip-group.entry.js +15 -16
  255. package/dist/esm/bcm-chip.entry.js +8 -8
  256. package/dist/esm/bcm-collapse-group.entry.js +2 -2
  257. package/dist/esm/bcm-collapse.entry.js +6 -6
  258. package/dist/esm/bcm-color-input.entry.js +12 -12
  259. package/dist/esm/bcm-colorpicker.entry.js +5 -5
  260. package/dist/esm/bcm-content.entry.js +1 -1
  261. package/dist/esm/bcm-date-picker.entry.js +9 -9
  262. package/dist/esm/bcm-datetime-picker.entry.js +14 -15
  263. package/dist/esm/bcm-default.entry.js +5 -5
  264. package/dist/esm/bcm-drawer.entry.js +13 -13
  265. package/dist/esm/bcm-dropdown.entry.js +9 -9
  266. package/dist/esm/bcm-error-layout.entry.js +3 -3
  267. package/dist/esm/bcm-expansion-panel.entry.js +10 -10
  268. package/dist/esm/bcm-form-2.entry.js +8 -8
  269. package/dist/esm/bcm-form-group.entry.js +1 -1
  270. package/dist/esm/bcm-input-custom.entry.js +6 -6
  271. package/dist/esm/bcm-input-dropdown.entry.js +17 -17
  272. package/dist/esm/bcm-item.entry.js +9 -9
  273. package/dist/esm/bcm-items.entry.js +7 -7
  274. package/dist/esm/bcm-link.entry.js +4 -4
  275. package/dist/esm/bcm-menu.entry.js +16 -16
  276. package/dist/esm/bcm-message.entry.js +3 -3
  277. package/dist/esm/bcm-modal-2-footer.entry.js +13 -13
  278. package/dist/esm/bcm-modal-2-header.entry.js +12 -12
  279. package/dist/esm/bcm-modal-2.entry.js +13 -13
  280. package/dist/esm/bcm-modal.entry.js +9 -9
  281. package/dist/esm/bcm-notification.entry.js +3 -3
  282. package/dist/esm/bcm-number-input.entry.js +105 -0
  283. package/dist/esm/bcm-old-input.entry.js +6 -6
  284. package/dist/esm/bcm-old-tag_2.entry.js +4 -4
  285. package/dist/esm/bcm-overlay_2.entry.js +4 -4
  286. package/dist/esm/bcm-popconfirm-box.entry.js +11 -11
  287. package/dist/esm/bcm-popconfirm.entry.js +7 -7
  288. package/dist/esm/bcm-popover.entry.js +13 -13
  289. package/dist/esm/bcm-progress.entry.js +9 -9
  290. package/dist/esm/bcm-radio-group.entry.js +15 -15
  291. package/dist/esm/bcm-radio.entry.js +13 -13
  292. package/dist/esm/bcm-range.entry.js +8 -8
  293. package/dist/esm/bcm-result.entry.js +3 -3
  294. package/dist/esm/bcm-select-group.entry.js +3 -3
  295. package/dist/esm/bcm-select-option.entry.js +3 -3
  296. package/dist/esm/bcm-select.entry.js +6 -6
  297. package/dist/esm/bcm-shortcut.entry.js +13 -13
  298. package/dist/esm/bcm-skeleton.entry.js +12 -12
  299. package/dist/esm/bcm-step.entry.js +8 -8
  300. package/dist/esm/bcm-stepper.entry.js +15 -15
  301. package/dist/esm/bcm-tab-group.entry.js +12 -12
  302. package/dist/esm/bcm-tab-item-header.entry.js +13 -13
  303. package/dist/esm/bcm-tab-item.entry.js +12 -12
  304. package/dist/esm/bcm-tab-pane.entry.js +3 -3
  305. package/dist/esm/bcm-tab.entry.js +3 -3
  306. package/dist/esm/bcm-table.entry.js +13 -13
  307. package/dist/esm/bcm-tabs-content.entry.js +4 -4
  308. package/dist/esm/bcm-tabs.entry.js +4 -4
  309. package/dist/esm/bcm-tag.entry.js +9 -9
  310. package/dist/esm/bcm-text.entry.js +9 -9
  311. package/dist/esm/bcm-textarea.entry.js +12 -12
  312. package/dist/esm/bcm-time-picker.entry.js +9 -9
  313. package/dist/esm/bcm-timeline-item.entry.js +3 -3
  314. package/dist/esm/bcm-timeline.entry.js +3 -3
  315. package/dist/esm/bcm-toast.entry.js +9 -9
  316. package/dist/esm/bcm-treeview-group.entry.js +1 -1
  317. package/dist/esm/bcm-typography.entry.js +17 -0
  318. package/dist/esm/bromcom-ui.js +5 -5
  319. package/dist/esm/caption-template-0c32ce16.js +30 -0
  320. package/dist/esm/{color-helper-c4fa9ebc.js → color-helper-845ba523.js} +2 -2
  321. package/dist/esm/{colors-e1c31f79.js → colors-ebea297f.js} +1 -1
  322. package/dist/esm/{element-dragger-7ea06c76.js → element-dragger-89bb52fd.js} +1 -1
  323. package/dist/esm/{floating-ui-3f4394da.js → floating-ui-a4e67246.js} +1 -1
  324. package/dist/esm/{generate-7d1e216b.js → generate-80f589b2.js} +16 -2
  325. package/dist/esm/{global-34d95eec.js → global-9afe304c.js} +2 -2
  326. package/dist/esm/{index-b84bc8c9.js → index-00c8a8f7.js} +1 -1
  327. package/dist/esm/{index-4614b7f0.js → index-0615c2b8.js} +1 -1
  328. package/dist/esm/{index-f38e3364.js → index-7e71bbc8.js} +1 -1
  329. package/dist/esm/{input-template-1df1e8d3.js → input-template-a5d07ba6.js} +4 -4
  330. package/dist/esm/{is-load-decorator-b8ca22f2.js → is-load-decorator-8277e3b8.js} +1 -1
  331. package/dist/esm/{json-parse-decarator-19a0db7a.js → json-parse-decarator-5195f510.js} +2 -2
  332. package/dist/esm/label-template-ad2e8119.js +25 -0
  333. package/dist/esm/loader.js +5 -5
  334. package/dist/esm/{number-helper-a5eab393.js → number-helper-aeb5881f.js} +1 -1
  335. package/dist/esm/old-bcm-popover-box.entry.js +13 -13
  336. package/dist/esm/old-bcm-popover.entry.js +7 -7
  337. package/dist/esm/{package-e0577fef.js → package-5e39e390.js} +1 -1
  338. package/dist/esm/{popover-placement-2f5939ea.js → popover-placement-279ce860.js} +1 -1
  339. package/dist/esm/{slot-template-08ed1fe4.js → slot-template-9234df88.js} +2 -2
  340. package/dist/esm/{stepper-states-10d7b726.js → stepper-states-97a648ff.js} +3 -3
  341. package/dist/esm/{string-helper-85990695.js → string-helper-8f5da9ec.js} +2 -2
  342. package/dist/esm/{tooltip-helper-59b661f8.js → tooltip-helper-d339c58a.js} +9 -9
  343. package/dist/esm/{utils-b3338faf.js → utils-57652744.js} +1 -1
  344. package/dist/esm/{validators-7979c137.js → validators-b5e106d5.js} +1 -1
  345. package/dist/types/components/atoms/caption/caption.d.ts +14 -0
  346. package/dist/types/components/atoms/label/label.d.ts +3 -3
  347. package/dist/types/components/molecules/number-input/number-input.d.ts +29 -0
  348. package/dist/types/components/molecules/number-input/number-input.style.d.ts +200 -0
  349. package/dist/types/components/organism/list/list.d.ts +5 -1
  350. package/dist/types/components.d.ts +90 -7
  351. package/dist/types/helper/generate.d.ts +3 -0
  352. package/dist/types/models/bcm.d.ts +3 -0
  353. package/dist/types/templates/caption-template.d.ts +1 -1
  354. package/dist/types/templates/label-template.d.ts +2 -1
  355. package/dist/types/templates/list-template.d.ts +1 -0
  356. package/package.json +2 -2
  357. package/dist/bromcom-ui/p-036877be.entry.js +0 -5
  358. package/dist/bromcom-ui/p-0d2b8bc4.entry.js +0 -5
  359. package/dist/bromcom-ui/p-1daf0fe1.entry.js +0 -5
  360. package/dist/bromcom-ui/p-2a5d176d.js +0 -5
  361. package/dist/bromcom-ui/p-2cbda5aa.entry.js +0 -5
  362. package/dist/bromcom-ui/p-3182df7e.js +0 -10
  363. package/dist/bromcom-ui/p-32df2233.js +0 -5
  364. package/dist/bromcom-ui/p-3ccb15ef.entry.js +0 -5
  365. package/dist/bromcom-ui/p-4213ba24.js +0 -5
  366. package/dist/bromcom-ui/p-43598b88.entry.js +0 -5
  367. package/dist/bromcom-ui/p-4a7c2381.entry.js +0 -5
  368. package/dist/bromcom-ui/p-5ea9881d.entry.js +0 -5
  369. package/dist/bromcom-ui/p-64ddda1d.entry.js +0 -5
  370. package/dist/bromcom-ui/p-6d0a02d7.entry.js +0 -5
  371. package/dist/bromcom-ui/p-6f11eb8e.entry.js +0 -5
  372. package/dist/bromcom-ui/p-76edf59f.js +0 -7
  373. package/dist/bromcom-ui/p-77035c08.entry.js +0 -5
  374. package/dist/bromcom-ui/p-7a4cc259.js +0 -5
  375. package/dist/bromcom-ui/p-7e3209a0.js +0 -14
  376. package/dist/bromcom-ui/p-8291e20e.js +0 -5
  377. package/dist/bromcom-ui/p-82a5033e.js +0 -5
  378. package/dist/bromcom-ui/p-85d8092e.entry.js +0 -5
  379. package/dist/bromcom-ui/p-8fbc35e7.entry.js +0 -5
  380. package/dist/bromcom-ui/p-903cbe6a.entry.js +0 -5
  381. package/dist/bromcom-ui/p-9339510a.entry.js +0 -5
  382. package/dist/bromcom-ui/p-94a8408e.entry.js +0 -5
  383. package/dist/bromcom-ui/p-a0909a04.entry.js +0 -5
  384. package/dist/bromcom-ui/p-b1a70ec2.entry.js +0 -5
  385. package/dist/bromcom-ui/p-ba315064.entry.js +0 -5
  386. package/dist/bromcom-ui/p-bb739bf8.entry.js +0 -5
  387. package/dist/bromcom-ui/p-bed627ab.js +0 -11
  388. package/dist/bromcom-ui/p-ec90b2c7.entry.js +0 -5
  389. package/dist/bromcom-ui/p-fce1d13c.entry.js +0 -5
  390. package/dist/bromcom-ui/p-ff5acf88.entry.js +0 -5
  391. package/dist/cjs/bcm-button.cjs.entry.js +0 -372
  392. package/dist/cjs/bcm-checkbox_2.cjs.entry.js +0 -194
  393. package/dist/cjs/bcm-colorful_2.cjs.entry.js +0 -17624
  394. package/dist/cjs/bcm-date.cjs.entry.js +0 -182
  395. package/dist/cjs/bcm-form.cjs.entry.js +0 -489
  396. package/dist/cjs/bcm-icon.cjs.entry.js +0 -39
  397. package/dist/cjs/bcm-label_2.cjs.entry.js +0 -126
  398. package/dist/cjs/bcm-linked.cjs.entry.js +0 -219
  399. package/dist/cjs/bcm-list_3.cjs.entry.js +0 -2516
  400. package/dist/cjs/bcm-rc-picker.cjs.entry.js +0 -9404
  401. package/dist/cjs/bcm-switch.cjs.entry.js +0 -151
  402. package/dist/cjs/caption-template-81dbc490.js +0 -34
  403. package/dist/cjs/index-3d67f613.js +0 -1610
  404. package/dist/cjs/index-e05a7c6f.js +0 -545
  405. package/dist/cjs/label-template-d9bee58a.js +0 -23
  406. package/dist/cjs/moment-d06b012f.js +0 -4601
  407. package/dist/components/label-template.js +0 -21
  408. package/dist/esm/bcm-button.entry.js +0 -368
  409. package/dist/esm/bcm-checkbox_2.entry.js +0 -189
  410. package/dist/esm/bcm-colorful_2.entry.js +0 -17619
  411. package/dist/esm/bcm-date.entry.js +0 -178
  412. package/dist/esm/bcm-form.entry.js +0 -485
  413. package/dist/esm/bcm-icon.entry.js +0 -35
  414. package/dist/esm/bcm-label_2.entry.js +0 -121
  415. package/dist/esm/bcm-linked.entry.js +0 -215
  416. package/dist/esm/bcm-list_3.entry.js +0 -2510
  417. package/dist/esm/bcm-rc-picker.entry.js +0 -9400
  418. package/dist/esm/bcm-switch.entry.js +0 -147
  419. package/dist/esm/caption-template-a1a968fd.js +0 -32
  420. package/dist/esm/index-a6d9d0af.js +0 -541
  421. package/dist/esm/index-c4568336.js +0 -1594
  422. package/dist/esm/label-template-639fcd41.js +0 -21
  423. package/dist/esm/moment-15cd9198.js +0 -4598
@@ -1,2510 +0,0 @@
1
- /*!
2
- * Built with Stencil
3
- * Copyright (c) Bromcom.
4
- */
5
- import { h, r as registerInstance, c as createEvent, H as Host, g as getElement } from './index-4614b7f0.js';
6
- import { I as IsLoad } from './is-load-decorator-b8ca22f2.js';
7
- import { J as JsonParse } from './json-parse-decarator-19a0db7a.js';
8
- import './color-helper-c4fa9ebc.js';
9
- import './datetime-helper-df25808a.js';
10
- import { s as snq, G as Generate } from './generate-7d1e216b.js';
11
- import { N as NumberHelper } from './number-helper-a5eab393.js';
12
- import { S as StringHelper } from './string-helper-85990695.js';
13
- import { V as Validators } from './validators-7979c137.js';
14
- import './element-dragger-7ea06c76.js';
15
- import { g as getPlacement, s as setPosition } from './popover-placement-2f5939ea.js';
16
- import { p as pluralize, d as delay } from './utils-b3338faf.js';
17
- import { B as Bcm, a as Bcm$1 } from './bcm-a50d55ba.js';
18
- import { C as CaptionTemplate } from './caption-template-a1a968fd.js';
19
- import { c as classnames } from './index-b84bc8c9.js';
20
- import './types-6f06fa1a.js';
21
- import './types-9493a7ed.js';
22
- import { c as createStore } from './index-f38e3364.js';
23
- import { r as react, a as reactDom } from './index-a6d9d0af.js';
24
- import { R as RefResizeObserver, c as wrapperRaf, u as useEvent, d as useLayoutEffect } from './index-c4568336.js';
25
- import { I as InputTemplate } from './input-template-1df1e8d3.js';
26
- import './colors-1d7854ea.js';
27
- import './colors-e1c31f79.js';
28
- import './_commonjsHelpers-be0d4ec8.js';
29
- import './package-e0577fef.js';
30
-
31
- const CheckboxTemplate = ({ disabled, checked, readonly, required, indeterminate, hidden, captionType, _id }) => {
32
- // if ( indeterminate ) {
33
- // checked = indeterminate == 'determinate' ? true : false
34
- // }
35
- const hostClasses = classnames('bcm-checkbox', 'bcm-checkbox__type-default', `bcm-checkbox-size-medium`, {
36
- // 'size-2': size === Bcm.Size.small || size === Bcm.Size.medium,
37
- // 'size-3': optionType === 'button' && size === Bcm.Size.large,
38
- 'error': captionType == Bcm.Status.error,
39
- hidden,
40
- checked,
41
- disabled,
42
- required,
43
- readonly,
44
- });
45
- const bcmCheckboxIconClass = classnames('bcm-checkbox__label-icon', 'bcm-checkbox__label-icon-lite', 'bcm-checkbox__label-icon-' + indeterminate, {
46
- 'bcm-checkbox__label-icon-checked': checked,
47
- });
48
- const bcmCheckboxLabelClass = classnames('bcm-checkbox__label');
49
- return (h("div", { class: hostClasses },
50
- h("input", { tabindex: "-1", id: _id, type: "checkbox", checked: checked, disabled: disabled, required: required, readonly: readonly }),
51
- h("label", { class: bcmCheckboxLabelClass, htmlFor: _id },
52
- h("span", { class: bcmCheckboxIconClass },
53
- h("bcm-icon", { icon: "far fa-check" })))));
54
- };
55
-
56
- const InfoFooterTemplate = ({ selected, total, found, multiple, variableText }) => {
57
- total = total || 0;
58
- variableText = variableText ? pluralize(variableText, total) : 'items';
59
- return (h("footer", { class: "bcm-info-footer" },
60
- h("bcm-text", { scale: "size-1", color: "grey-8" },
61
- (multiple && selected > 0) && ` ( ${selected} selected ) `,
62
- ` Total ${total} `,
63
- found != null && ` / ${found} `,
64
- ` ${variableText} found. `)));
65
- };
66
-
67
- const ListItemTemplate = ({ item, treeview, highlight, checkboxes, size, selectedItem, openGroup, checkedItem, focusItem, searchIsOnlyChilds }) => {
68
- const isHaveChildren = item.items && item.items.length > 0;
69
- var text = StringHelper.htmlEntities(item.text);
70
- let intersection = [];
71
- if (highlight && StringHelper.slugify(text).includes(StringHelper.slugify(highlight))) {
72
- if (!searchIsOnlyChilds || (searchIsOnlyChilds && (!isHaveChildren || (!treeview && item.type != "group")))) {
73
- text = StringHelper.highlight(text, highlight);
74
- }
75
- }
76
- if (item.type != 'group' && item.template) {
77
- const match = item.template
78
- .replace(/\s/g, '')
79
- .match(/\{{[^}}]+\}/g)
80
- .map(x => x.replace(/[{}]/g, ''));
81
- const keys = Object.keys(item.itemObject);
82
- intersection = match.filter(x => keys.includes(x));
83
- }
84
- text = item.isHtmlContent ? item.isHtmlContent : item.template && intersection.length > 0 ? StringHelper.templateParser(item.template, Object.assign(Object.assign({}, item.itemObject), { text })) : text;
85
- const unClickable = !treeview && item.type == "group" && !item.clickable;
86
- const disabled = item.disabled;
87
- const readonly = item.readonly;
88
- const itemClick = (event) => {
89
- let path = event.path || event.composedPath();
90
- if (path.filter(x => x.attributes && x.attributes.getNamedItem("unlinked"))[0]) {
91
- return;
92
- }
93
- if (readonly) {
94
- collapseClick();
95
- }
96
- !unClickable && !disabled && !readonly && (checkboxes ? checkedItem(item.id) : selectedItem(item.id));
97
- };
98
- const collapseClick = () => {
99
- item.open = item.isSearching;
100
- openGroup(item.id);
101
- };
102
- return (h("div", { id: item.id, hidden: item.hidden, "on-focus": e => !unClickable && !disabled && focusItem(e), class: classnames('bcm-list__item',
103
- // size === 'large' ? 'size-3' : 'size-2',
104
- 'bcm-list__item-' + size, {
105
- 'bcm-list__item--group': !treeview && item.type == 'group',
106
- 'bcm-list__item--readonly': readonly,
107
- }) },
108
- h("div", { class: classnames('bcm-list__item-content', !checkboxes && item.selected && 'selected', { disabled: disabled }) },
109
- treeview && (h("div", { class: "bcm-list__item-content-collapse-icon", onClick: () => collapseClick() }, isHaveChildren && h("bcm-icon", { icon: classnames('fas fa-caret-' + (item.isSearching || item.open ? 'down' : 'right')) }))),
110
- h("div", { class: classnames('bcm-list__item-content-text', { treeview }), onClick: (e) => itemClick(e) },
111
- checkboxes && (treeview || (!treeview && item.type != 'group')) && (h("div", { class: "bcm-list__item-content-text-checkbox" },
112
- h(CheckboxTemplate, { indeterminate: item.indeterminate, checked: item.checked, disabled: item.disabled }))),
113
- h("span", Object.assign({ class: "bcm-list__item-content-text-inner" }, (item.title && { "title": item.title }), { innerHTML: text })))),
114
- (treeview || !treeview && item.type == "group") && isHaveChildren && (h("div", { class: "bcm-list__item-childs" }, (item.isSearching || item.open || (!treeview && item.type == "group")) &&
115
- item.items.map((item) => (h(ListItemTemplate, { highlight: highlight, item: item, searchIsOnlyChilds: searchIsOnlyChilds, treeview: treeview, checkboxes: checkboxes, size: size, selectedItem: selectedItem, checkedItem: checkedItem, openGroup: parentId => openGroup(parentId), focusItem: itemId => focusItem(itemId) })))))));
116
- };
117
-
118
- const ListTemplate = ({ highlight, selectAllItem, bcmListContainer, treeview, checkboxes, checkAll, infoFooter, value, totalData, searchFound, variableText, _id, data, width, height, size, searchPlaceholder, minSearchLength, selectedItem, openGroup, checkedItem, onScrollEvent, focusItem, items, searchable, searchIsOnlyChilds, emptyText, emptyIcon, handleTransitionEnd, }) => {
119
- const showSelectAll = !(treeview && searchFound > 0) && !(searchFound > 0);
120
- const setScrollHeight = () => {
121
- const itemHeight = size === 'small' ? 28 : size === 'medium' ? 36 : 48;
122
- const itemCount = searchFound == null ? (treeview ? items.length : totalData) : searchFound;
123
- const scrollHeight = itemCount * itemHeight || 0;
124
- return {
125
- 'min-height': `${scrollHeight}px`,
126
- 'overscroll-behavior': 'none',
127
- 'height': '100%',
128
- 'display': 'flex',
129
- 'flex-direction': 'column',
130
- };
131
- };
132
- return (h("div", { id: `bcm-list-${_id}`, class: bcmListContainer, style: { '--height': height, '--width': width }, onTransitionEnd: e => handleTransitionEnd(e) },
133
- data && searchable && (h("section", { class: "bcm-list__container-search" },
134
- h("bcm-search", { size: size, id: `bcm-list-${_id}-search`, data: data, clearable: true, placeholder: searchPlaceholder, "min-search-length": minSearchLength, searchIsOnlyChilds: searchIsOnlyChilds }))),
135
- h("main", { onScroll: e => onScrollEvent(e), class: "scrolling", style: { 'overscroll-behavior': 'none' } },
136
- h("div", { style: setScrollHeight() },
137
- checkAll && searchFound != 0 && items && items.length > 0 && checkboxes && showSelectAll && (h("section", { class: "bcm-list__container-select-all" },
138
- h(ListItemTemplate, { size: size, item: selectAllItem, treeview: false, checkboxes: true, selectedItem: itemId => selectedItem(itemId), checkedItem: itemId => checkedItem(itemId), openGroup: parentId => openGroup(parentId), focusItem: itemId => focusItem(itemId) }))),
139
- items.map((item) => (h(ListItemTemplate, { highlight: highlight, size: size, item: item, searchIsOnlyChilds: searchIsOnlyChilds, treeview: treeview, checkboxes: checkboxes, selectedItem: itemId => selectedItem(itemId), checkedItem: itemId => checkedItem(itemId), openGroup: parentId => openGroup(parentId), focusItem: itemId => focusItem(itemId) }))),
140
- (!items || items.length === 0) && searchFound != 0 && (h("section", { class: "bcm-list__container-no-data" },
141
- h("bcm-empty", { style: { height: 'auto' }, icon: emptyIcon },
142
- h("span", { innerHTML: emptyText || 'No data' })))),
143
- searchFound == 0 && (h("section", { class: "bcm-list__container-no-data" },
144
- h("bcm-empty", { style: { height: 'auto' }, icon: emptyIcon },
145
- h("span", { innerHTML: emptyText || 'No Data Found' })))))),
146
- infoFooter && data && data.length > 0 && (h(InfoFooterTemplate, { selected: value === null || value === void 0 ? void 0 : value.length, total: totalData, found: searchFound, multiple: checkboxes, variableText: variableText }))));
147
- };
148
-
149
- const { state: state$1 } = createStore({
150
- value: new Map(),
151
- });
152
- const setValue$1 = val => {
153
- const { id, dataSource, options } = val;
154
- const { type, treeview, checkboxes, searchable, value, name, label, size, disabled, readonly, highlight, required, hidden, fullWidth, height, maxHeight, minHeight, width, infoFooter, variableText, template, allOpen, keyControl, checkAll, linkedComponent, placeholder, searchPlaceholder, searchIsOnlyChilds, clearable, caption, noCaption, captionType, captionError, placement, } = options;
155
- const itemOptions = { size, checkboxes, template, allOpen, highlight, treeview };
156
- const data = {
157
- id: snq(() => id, Generate.UID),
158
- dataSource: dataSource && dataSource.length > 0 && recursive$1(dataSource, itemOptions),
159
- options: {
160
- type,
161
- treeview,
162
- checkboxes,
163
- searchable,
164
- value,
165
- name,
166
- label,
167
- size,
168
- disabled,
169
- readonly,
170
- highlight,
171
- required,
172
- hidden,
173
- fullWidth,
174
- height,
175
- maxHeight,
176
- minHeight,
177
- width,
178
- infoFooter,
179
- variableText,
180
- template,
181
- allOpen,
182
- keyControl,
183
- checkAll,
184
- linkedComponent,
185
- placeholder,
186
- searchPlaceholder,
187
- searchIsOnlyChilds,
188
- clearable,
189
- caption,
190
- noCaption,
191
- captionType,
192
- captionError,
193
- placement,
194
- },
195
- totalItems: (dataSource === null || dataSource === void 0 ? void 0 : dataSource.length) > 0 && calculateTotalItems(dataSource, options.treeview),
196
- totalRoots: dataSource === null || dataSource === void 0 ? void 0 : dataSource.length,
197
- };
198
- state$1.value.set(data.id, data);
199
- };
200
- const recursive$1 = (data, options, parentId, parentIndex = "0.") => {
201
- let recData = [];
202
- if (data && data.length > 0) {
203
- recData = data.map((item, index) => (Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ itemObject: item }, item), options), { parentId: snq(() => parentId, null), open: options.allOpen || item.open || false }), ((options.treeview || (!options.treeview && item.type == 'group')) && item.items && item.items.length > 0
204
- ? { items: snq(() => recursive$1(item.items, options, item.id, `${parentIndex}${index}`), []) }
205
- : { items: [] })), { ct: `${parentIndex}${index}` })));
206
- }
207
- return recData;
208
- };
209
- const removeValue$1 = _id => {
210
- state$1.value.delete(_id);
211
- };
212
- const getValue$1 = id => snq(() => state$1.value.get(id), {});
213
- const calculateTotalItems = (dataSource, treeview) => {
214
- let total = 0;
215
- dataSource.forEach(item => {
216
- if (treeview || (!treeview && item.type != "group")) {
217
- total += 1;
218
- }
219
- if ((treeview || (!treeview && item.type == "group")) && item.items) {
220
- total += calculateTotalItems(item.items, treeview);
221
- }
222
- });
223
- return total;
224
- };
225
- const getData = id => {
226
- let data = [];
227
- const value = getValue$1(id);
228
- if (value) {
229
- const { dataSource } = value;
230
- data = dataSource;
231
- }
232
- return data;
233
- };
234
- const getDataPagination$1 = (id, limit = 3, ids) => {
235
- let data = [];
236
- const value = getValue$1(id);
237
- if (value) {
238
- const { dataSource } = value;
239
- data = !ids ? dataSource.slice(0, limit) : dataSource.filter(item => ids.indexOf(item.id) > -1).slice(0, limit);
240
- }
241
- return data;
242
- };
243
- const openGroup = (id, groupId, items, status) => {
244
- let dataSource;
245
- if (items) {
246
- dataSource = items;
247
- }
248
- else {
249
- const value = getValue$1(id);
250
- dataSource = value.dataSource;
251
- }
252
- if (dataSource) {
253
- dataSource.forEach(item => {
254
- if (status != undefined) {
255
- item.open = status;
256
- }
257
- else if (item.id == groupId) {
258
- item.open = !item.open;
259
- item.isSearching = item.open;
260
- if (!item.open && item.items) {
261
- openGroup(id, groupId, item.items, false);
262
- }
263
- }
264
- else if (item.items) {
265
- openGroup(id, groupId, item.items);
266
- }
267
- });
268
- }
269
- };
270
- const removeOtherTags = (id, ids, items) => {
271
- ids = Array.isArray(ids) ? ids : [ids];
272
- let dataSource;
273
- if (items) {
274
- dataSource = items;
275
- }
276
- else {
277
- const value = getValue$1(id);
278
- dataSource = value.dataSource;
279
- }
280
- if (dataSource) {
281
- ids.forEach(otherTagIds => {
282
- dataSource.forEach(child => {
283
- if (child.id == otherTagIds) {
284
- child.checked = false;
285
- child.itemObject.checked = false;
286
- }
287
- else if (child.items) {
288
- onRemoveItems(id, otherTagIds, child.items);
289
- }
290
- });
291
- });
292
- }
293
- };
294
- const onRemoveItems = (id, itemId, items) => {
295
- if (items) {
296
- items.forEach(item => {
297
- if (item.id == itemId) {
298
- item.checked = false;
299
- item.itemObject.checked = false;
300
- indeterminateStatus(id, item.parentId);
301
- }
302
- else if (item.items) {
303
- onRemoveItems(id, itemId, item.items);
304
- }
305
- });
306
- }
307
- };
308
- const addChecked = (id, ids) => {
309
- const value = getValue$1(id);
310
- if (value) {
311
- ids.forEach(item => {
312
- checkedItem(id, item);
313
- });
314
- }
315
- };
316
- const checkedItem = (id, itemId) => {
317
- findItem(id, itemId);
318
- };
319
- const findItem = (id, itemId, items) => {
320
- itemId = Array.isArray(itemId) ? itemId : [itemId];
321
- let dataSource;
322
- if (items) {
323
- dataSource = items;
324
- }
325
- else {
326
- const value = getValue$1(id);
327
- dataSource = value.dataSource;
328
- }
329
- if (dataSource) {
330
- dataSource.forEach(item => {
331
- if (itemId.includes(item.id)) {
332
- checkedProcess(id, item);
333
- if (item.parentId) {
334
- indeterminateStatus(id, item.parentId);
335
- }
336
- }
337
- else if (item.items) {
338
- findItem(id, itemId, item.items);
339
- }
340
- });
341
- }
342
- };
343
- const checkedProcess = (id, item, status) => {
344
- const value = getValue$1(id);
345
- if (value) {
346
- const treeview = value.options.treeview;
347
- if (item) {
348
- // && !item.hidden => select all bastığımızda hidden olanları seçmemesi içindi
349
- if (treeview || (!treeview && item.type != "group")) {
350
- if (!item.disabled) {
351
- if (status != undefined) {
352
- item.checked = status;
353
- }
354
- else {
355
- item.checked = !item.checked;
356
- }
357
- item.itemObject.checked = item.checked;
358
- item.indeterminate = item.checked ? "determinate" : "uncheck";
359
- }
360
- }
361
- if (item.items) {
362
- item.items.forEach(child => {
363
- checkedProcess(id, child, status == undefined ? item.checked : status);
364
- });
365
- }
366
- }
367
- }
368
- };
369
- const indeterminateStatus = (id, itemId, items) => {
370
- let dataSource;
371
- if (items) {
372
- dataSource = items;
373
- }
374
- else {
375
- const value = getValue$1(id);
376
- dataSource = value.dataSource;
377
- }
378
- if (dataSource) {
379
- dataSource.forEach(item => {
380
- if (item.id == itemId) {
381
- let allChecked = true;
382
- let allUnchecked = true;
383
- if (item.items) {
384
- item.items.map(child => {
385
- (child.checked || child.indeterminate === "indeterminate") && (allUnchecked = false);
386
- !child.checked && (allChecked = false);
387
- });
388
- }
389
- const indeterminateState = !allChecked && !allUnchecked ? "indeterminate" : allChecked ? "determinate" : "uncheck";
390
- item.indeterminate = indeterminateState;
391
- item.checked = indeterminateState == "determinate" ? true : false;
392
- item.itemObject.checked = item.checked;
393
- if (item.parentId) {
394
- indeterminateStatus(id, item.parentId);
395
- }
396
- }
397
- else if (item.items) {
398
- indeterminateStatus(id, itemId, item.items);
399
- }
400
- });
401
- }
402
- };
403
- const filterData = (id, ids, items, searchOtherTag) => {
404
- let checkeds = [];
405
- let visibled = [];
406
- getValue$1(id).isSearchOtherTag = searchOtherTag;
407
- let dataSource;
408
- if (items) {
409
- dataSource = items;
410
- }
411
- else {
412
- const value = getValue$1(id);
413
- dataSource = value.dataSource;
414
- }
415
- if (dataSource) {
416
- dataSource.forEach(item => {
417
- if (ids) {
418
- item.hidden = true;
419
- // const filter = ids.find((find) => find.id === item.id)
420
- var filter;
421
- for (let index = 0; index < ids.length; index++) {
422
- if (ids[index].id === item.id) {
423
- filter = ids[index];
424
- break;
425
- }
426
- }
427
- if (filter) {
428
- item.hidden = false;
429
- if (!getValue$1(id).isSearchOtherTag) {
430
- item.isSearching = true;
431
- }
432
- visibled.push(item);
433
- if (item.checked) {
434
- checkeds.push(item);
435
- }
436
- if (filter.items) {
437
- const { checkedItems, visibledItems } = filterData(id, filter.items, item.items, searchOtherTag);
438
- if (checkedItems) {
439
- checkeds = [...new Set([...checkeds, ...checkedItems])];
440
- }
441
- if (visibledItems) {
442
- visibled = [...new Set([...visibled, ...visibledItems])];
443
- }
444
- }
445
- }
446
- }
447
- else {
448
- item.hidden = false;
449
- if (item.items) {
450
- filterData(id, null, item.items);
451
- }
452
- visibled.push(item);
453
- item.isSearching = false;
454
- }
455
- });
456
- }
457
- return { checkedItems: checkeds !== null && checkeds !== void 0 ? checkeds : [], visibledItems: visibled !== null && visibled !== void 0 ? visibled : [] };
458
- };
459
- const getSelected = (id, items) => {
460
- let dataSource;
461
- let selected = null;
462
- if (items) {
463
- dataSource = items;
464
- }
465
- else {
466
- const value = getValue$1(id);
467
- dataSource = value.dataSource;
468
- }
469
- if (dataSource) {
470
- dataSource.forEach(item => {
471
- if (item.selected) {
472
- selected = item.itemObject;
473
- }
474
- else if (item.items) {
475
- const found = getSelected(id, item.items);
476
- if (found) {
477
- selected = found;
478
- }
479
- }
480
- });
481
- }
482
- return selected;
483
- };
484
- const getCheckedList = (id, items) => {
485
- let dataSource;
486
- let checkedList = [];
487
- let nestedResult = [];
488
- if (items) {
489
- dataSource = items;
490
- }
491
- else {
492
- const value = getValue$1(id);
493
- dataSource = value.dataSource;
494
- }
495
- if (dataSource) {
496
- dataSource.forEach(item => {
497
- var _a;
498
- const newItem = Object.assign(Object.assign({}, item.itemObject), { ct: item.ct });
499
- let foundChild = [];
500
- let foundItem = [];
501
- if (item.checked) {
502
- checkedList.push(newItem);
503
- foundItem.push(Object.assign(Object.assign({}, newItem), { items: [] }));
504
- }
505
- if (item.items) {
506
- const found = getCheckedList(id, item.items);
507
- if (((_a = found === null || found === void 0 ? void 0 : found.checkedList) === null || _a === void 0 ? void 0 : _a.length) > 0) {
508
- checkedList = [...checkedList, ...found.checkedList];
509
- }
510
- if (found.nestedResult.length > 0) {
511
- foundChild = found.nestedResult;
512
- }
513
- }
514
- if (foundChild.length > 0) {
515
- if (foundItem.length == 0) {
516
- foundItem.push(Object.assign(Object.assign({}, newItem), { items: [] }));
517
- }
518
- foundItem[0].items = foundChild;
519
- nestedResult.push(foundItem[0]);
520
- }
521
- else {
522
- if (foundItem.length > 0) {
523
- foundItem[0].items = foundChild;
524
- nestedResult.push(foundItem[0]);
525
- }
526
- }
527
- });
528
- }
529
- return { checkedList: (checkedList === null || checkedList === void 0 ? void 0 : checkedList.length) > 0 ? checkedList : null, nestedResult: nestedResult };
530
- };
531
- const selectedItem = (id, itemId, items) => {
532
- let dataSource;
533
- let selected = [];
534
- if (items) {
535
- dataSource = items;
536
- }
537
- else {
538
- const value = getValue$1(id);
539
- dataSource = value.dataSource;
540
- }
541
- if (dataSource) {
542
- dataSource.forEach(item => {
543
- if (itemId) {
544
- if (item.id == itemId) {
545
- // if (!item.selected){
546
- item.selected = true;
547
- item.itemObject.selected = item.selected;
548
- // }
549
- }
550
- else {
551
- if (item.selected) {
552
- item.selected = false;
553
- item.itemObject.selected = item.selected;
554
- }
555
- }
556
- }
557
- if (item.items) {
558
- const found = selectedItem(id, itemId, item.items);
559
- if ((found === null || found === void 0 ? void 0 : found.length) > 0) {
560
- selected = [...selected, ...found];
561
- }
562
- }
563
- if (item.selected) {
564
- selected.push(item.itemObject);
565
- }
566
- });
567
- }
568
- return selected && selected.length > 0 ? selected : null;
569
- };
570
- const setClear = (id, items) => {
571
- let dataSource;
572
- if (items) {
573
- dataSource = items;
574
- }
575
- else {
576
- const value = getValue$1(id);
577
- dataSource = value.dataSource;
578
- }
579
- if (dataSource) {
580
- dataSource.forEach(item => {
581
- var _a, _b, _c;
582
- item.checked && (item.checked = false);
583
- item.selected && (item.selected = false);
584
- item.indeterminate && (item.indeterminate = "uncheck");
585
- ((_a = item.itemObject) === null || _a === void 0 ? void 0 : _a.checked) && (item.itemObject.checked = false);
586
- ((_b = item.itemObject) === null || _b === void 0 ? void 0 : _b.selected) && (item.itemObject.selected = false);
587
- ((_c = item.itemObject) === null || _c === void 0 ? void 0 : _c.indeterminate) && (item.itemObject.indeterminate = "uncheck");
588
- if (item.items) {
589
- setClear(id, item.items);
590
- }
591
- });
592
- }
593
- };
594
- const selectAll = (id, status) => {
595
- const dataSource = getValue$1(id).dataSource;
596
- if (dataSource) {
597
- dataSource.forEach(item => {
598
- checkedProcess(id, item, status);
599
- });
600
- }
601
- };
602
- const updateOptions = (id, options) => {
603
- Object.keys(getValue$1(id).options).forEach(key => {
604
- getValue$1(id).options[key] = options[key];
605
- });
606
- };
607
- const removeState = id => {
608
- return Promise.resolve(state$1.value.delete(id));
609
- };
610
- const listState = {
611
- setValue: setValue$1,
612
- removeValue: removeValue$1,
613
- getValue: getValue$1,
614
- getData,
615
- getDataPagination: getDataPagination$1,
616
- openGroup,
617
- checkedItem,
618
- filterData,
619
- getSelected,
620
- getCheckedList,
621
- selectedItem,
622
- addChecked,
623
- setClear,
624
- selectAll,
625
- removeOtherTags,
626
- onRemoveItems,
627
- updateOptions,
628
- removeState,
629
- };
630
-
631
- class KeyControl {
632
- constructor(keyCode, element, elementName, childElementName) {
633
- this.elementName = '';
634
- this.childElementName = '';
635
- this.keyCode = keyCode;
636
- this.element = element;
637
- this.elementName = elementName;
638
- this.childElementName = childElementName;
639
- }
640
- getKeyCode() {
641
- return this.keyCode;
642
- }
643
- getElementName() {
644
- return this.elementName;
645
- }
646
- getChildElementName() {
647
- return this.childElementName;
648
- }
649
- getFocusedElementName() {
650
- return this.getElementName() + '.focused';
651
- }
652
- getFocusedElement() {
653
- return this.element.querySelectorAll(this.getFocusedElementName())[0] || null;
654
- }
655
- getFirstElement() {
656
- return this.element.querySelectorAll(this.getElementName())[0] || null;
657
- }
658
- getNextElement() {
659
- var _a;
660
- return ((_a = this.getFocusedElement()) === null || _a === void 0 ? void 0 : _a.nextElementSibling) || this.getFirstElement();
661
- }
662
- getPreviousElement() {
663
- var _a;
664
- return ((_a = this.getFocusedElement()) === null || _a === void 0 ? void 0 : _a.previousElementSibling) || this.getFirstElement();
665
- }
666
- getChildElement() {
667
- var _a;
668
- return ((_a = this.getFocusedElement()) === null || _a === void 0 ? void 0 : _a.querySelectorAll(this.getChildElementName())[0]) || null;
669
- }
670
- getParentElement(element) {
671
- if (element && element) {
672
- const isRootElement = element && element.attributes['data-isroot'];
673
- if (isRootElement) {
674
- return element;
675
- }
676
- return this.getParentElement(element.parentNode);
677
- }
678
- }
679
- focusElementIsOpen() {
680
- var _a;
681
- return ((_a = this.getFocusedElement()) === null || _a === void 0 ? void 0 : _a.classList.contains('bcm-list__item--open')) || false;
682
- }
683
- isRootElement() {
684
- var _a;
685
- return ((_a = this.getFocusedElement()) === null || _a === void 0 ? void 0 : _a.querySelectorAll(this.getChildElementName()).length) > 0;
686
- }
687
- isRootElementIsOpen() {
688
- return this.getFocusedElement().classList.contains('bcm-list__item--open');
689
- }
690
- getFocusedChildElement() {
691
- var _a;
692
- return ((_a = this.getChildElement()) === null || _a === void 0 ? void 0 : _a.querySelectorAll('.focused')[0]) || null;
693
- }
694
- isLastElement() {
695
- var _a;
696
- return ((_a = this.getFocusedElement()) === null || _a === void 0 ? void 0 : _a.nextElementSibling) === null;
697
- }
698
- focusParentElementFirstChild() {
699
- var _a, _b;
700
- return this.setFocus((_b = (_a = this.getFocusedElement()) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.firstChild);
701
- }
702
- isFirstElement() {
703
- var _a;
704
- return ((_a = this.getFocusedElement()) === null || _a === void 0 ? void 0 : _a.previousElementSibling) === null;
705
- }
706
- focusRootElement() {
707
- var _a, _b, _c;
708
- return this.setFocus((_c = (_b = (_a = this.getFocusedElement()) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.parentElement) === null || _c === void 0 ? void 0 : _c.firstChild);
709
- }
710
- nextRootElement() {
711
- var _a, _b, _c;
712
- return this.setFocus((_c = (_b = (_a = this.getFocusedElement()) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.parentElement) === null || _c === void 0 ? void 0 : _c.nextElementSibling);
713
- }
714
- findFocusElementParent() {
715
- return this.getFocusedElement().parentNode.querySelectorAll('.bcm-list__item--open');
716
- }
717
- getLastElement() {
718
- return this.element.querySelectorAll(this.getElementName())[this.element.querySelectorAll(this.getElementName()).length - 1] || null;
719
- }
720
- setFocus(element) {
721
- element.focus();
722
- }
723
- }
724
-
725
- class ListKeyControl extends KeyControl {
726
- constructor(keyCode, element, treeview, checkBoxes) {
727
- super(keyCode, element, '.bcm-list__item', '.bcm-list__item-childs');
728
- this.isTreeview = false;
729
- this.isCheckBoxes = false;
730
- this.isTreeview = treeview;
731
- this.isCheckBoxes = checkBoxes;
732
- }
733
- keyUpControl() {
734
- if (this.isTreeview) {
735
- this.keyUpTreeview();
736
- }
737
- else {
738
- if (this.isFirstElement()) {
739
- this.setFocus(this.getLastElement());
740
- }
741
- else {
742
- this.setFocus(this.getPreviousElement());
743
- }
744
- }
745
- }
746
- keyDownTreeView() {
747
- var _a;
748
- if (this.isTreeview) {
749
- if (this.isRootElement() && this.isRootElementIsOpen()) {
750
- const childs = this.getChildElement();
751
- if (childs) {
752
- this.setFocus(childs.firstChild);
753
- }
754
- }
755
- else {
756
- if (this.isLastElement() && this.getParentElement(this.getFocusedElement())) {
757
- this.setFocus((_a = this.getParentElement(this.getFocusedElement())) === null || _a === void 0 ? void 0 : _a.nextElementSibling);
758
- }
759
- else {
760
- this.setFocus(this.getNextElement());
761
- }
762
- }
763
- }
764
- }
765
- keyUpTreeview() {
766
- if (this.isFirstElement()) {
767
- const parent = this.getParentElement(this.getFocusedElement());
768
- this.setFocus(parent);
769
- }
770
- else {
771
- const previousElement = this.getPreviousElement();
772
- if (previousElement) {
773
- if (previousElement.classList.contains('bcm-list__item--open')) {
774
- const getChildElement = previousElement.querySelectorAll(this.getChildElementName())[0];
775
- console.log({ getChildElement });
776
- this.setFocus(getChildElement.lastChild);
777
- }
778
- else {
779
- this.setFocus(previousElement);
780
- }
781
- }
782
- }
783
- }
784
- keyDownControl() {
785
- if (this.isTreeview) {
786
- this.keyDownTreeView();
787
- }
788
- else {
789
- if (this.isLastElement()) {
790
- this.setFocus(this.getFirstElement());
791
- }
792
- else {
793
- this.setFocus(this.getNextElement());
794
- }
795
- }
796
- }
797
- keyRightControl() {
798
- if (this.isTreeview) {
799
- if (!this.isRootElementIsOpen() && this.isRootElement()) {
800
- const { id } = this.getFocusedElement();
801
- this.openGroup(id);
802
- }
803
- }
804
- }
805
- keyLeftControl() {
806
- if (this.isTreeview) {
807
- if (this.isRootElementIsOpen() && this.isRootElement()) {
808
- const { id } = this.getFocusedElement();
809
- this.openGroup(id);
810
- }
811
- }
812
- }
813
- keyEnterControl() { }
814
- keySpaceControl() {
815
- if (this.isCheckBoxes) {
816
- const { id } = this.getFocusedElement();
817
- this.checkedItem(id);
818
- }
819
- }
820
- keyDown() {
821
- switch (this.getKeyCode()) {
822
- case Bcm.KeyCode.up:
823
- this.keyUpControl();
824
- break;
825
- case Bcm.KeyCode.down:
826
- this.keyDownControl();
827
- break;
828
- case Bcm.KeyCode.left:
829
- this.keyLeftControl();
830
- break;
831
- case Bcm.KeyCode.right:
832
- this.keyRightControl();
833
- break;
834
- case Bcm.KeyCode.enter:
835
- this.keyEnterControl();
836
- break;
837
- case Bcm.KeyCode.space:
838
- this.keySpaceControl();
839
- break;
840
- }
841
- }
842
- keyUp() { }
843
- }
844
-
845
- const listCss = "@import url(\"https://fonts.googleapis.com/css?family=Roboto:400,500\");@import url(\"https://fonts.googleapis.com/css2?family=Inter:wght@200;400;500;600&display=swap\"); @import url(\"https://fonts.googleapis.com/css2?family=Inter:wght@200;400;500;600&display=swap\"); @import url(\"https://fonts.googleapis.com/css2?family=Inter:wght@200;400;500;600&display=swap\"); @import url(\"https://fonts.googleapis.com/css2?family=Inter:wght@200;400;500;600&display=swap\"); .size-1{font-size:12px;line-height:20px}.size-2{font-size:14px;line-height:22px}.size-3{font-size:16px;line-height:24px}.size-4{font-size:20px;line-height:28px}.size-5{font-size:24px;line-height:32px}.size-6{font-size:30px;line-height:38px}.size-7{font-size:38px;line-height:46px}.size-8{font-size:46px;line-height:54px}.size-9{font-size:56px;line-height:64px}.weight-regular{font-weight:400}.weight-semibold{font-weight:500}.input-size-large{height:40px}.input-size-medium{height:32px}.input-size-small{height:24px}.resize-none textarea{resize:none}.resize-vertical textarea{resize:vertical}.resize-auto textarea{height:auto;resize:none}.textarea-size-large{padding:4px 0 0 4px;min-height:40px}.textarea-size-large .bcm-input-element{min-height:calc((40px - 8px) + 2px)}.textarea-size-large .input-clear-button{height:calc( 40px - 16px );top:8px;padding:0;margin-right:8px}.textarea-size-medium{padding:4px 0 0 4px;min-height:32px}.textarea-size-medium .bcm-input-element{min-height:calc((32px - 8px) + 2px)}.textarea-size-medium .input-clear-button{height:calc( 32px - 16px );top:8px;padding:0;margin-right:8px}.textarea-size-small{padding:0px 0 0 4px;min-height:24px}.textarea-size-small .bcm-input-element{min-height:calc((24px - 8px) + 2px)}.textarea-size-small .input-clear-button{height:calc( 24px - 16px );top:8px;padding:0;margin-right:8px}*{box-sizing:border-box}.bcm-caption-area{font-family:\"Inter\", sans-serif;font-size:14px;line-height:calc(14px + 8px);font-weight:400;font-size:12px;line-height:calc(12px + 8px);color:var(--bcm-new-ds-color-slate-400);display:flex;flex-direction:row;align-items:flex-start;justify-content:space-between;flex-wrap:nowrap;margin-top:2px}.bcm-caption-area__text{color:var(--bcm-new-ds-color-slate-400)}.bcm-caption-area__text.default{color:var(--bcm-new-ds-color-slate-400)}.bcm-caption-area__text.info{color:var(--bcm-new-ds-color-blue-500)}.bcm-caption-area__text.success{color:var(--bcm-new-ds-color-emerald-500)}.bcm-caption-area__text.warning{color:var(--bcm-new-ds-color-amber-500)}.bcm-caption-area__text.error{color:var(--bcm-new-ds-color-red-500)}.bcm-caption-area__size-small{font-size:10px;line-height:calc(10px + 8px);min-height:calc(10px + 8px)}.bcm-caption-area__size-medium{font-size:12px;line-height:calc(12px + 8px);min-height:calc(12px + 8px)}.bcm-caption-area__size-large{font-size:14px;line-height:calc(14px + 8px);min-height:calc(14px + 8px)}*{box-sizing:border-box}.bcm-label{display:inline-flex;align-items:flex-start;grid-gap:2px}.bcm-label__text{margin-bottom:2px;font-family:\"Inter\", sans-serif;font-size:14px;line-height:calc(14px + 8px);font-weight:400;display:inline-block;color:var(--bcm-new-ds-color-slate-600)}.bcm-label__size-small{font-size:10px;line-height:calc(10px + 8px);min-height:calc(10px + 8px)}.bcm-label__size-medium{font-size:12px;line-height:calc(12px + 8px);min-height:calc(12px + 8px)}.bcm-label__size-large{font-size:14px;line-height:calc(14px + 8px);min-height:calc(14px + 8px)}.bcm-input[no-margin]{margin:0}.bcm-textarea[no-margin]{margin:0}.bcm-switch[no-margin]{margin:0}.bcm-checkbox[no-margin]{margin:0}.bcm-radio-group[no-margin]{margin:0}.bcm-checkbox-group[no-margin]{margin:0}.bcm-range[no-margin]{margin:0}.bcm-form[no-margin]{margin:0}.bcm-form-group[no-margin]{margin:0}.bcm-list[no-margin]{margin:0}.bcm-colorpicker[no-margin]{margin:0}.bcm-date-picker[no-margin]{margin:0}.bcm-time-picker[no-margin]{margin:0}.bcm-datetime-picker[no-margin]{margin:0}.bcm-select[no-margin]{margin:0}.bcm-listbox[no-margin]{margin:0}*{box-sizing:border-box}*{box-sizing:border-box}.bcm-checkbox{outline:none;border:none;--bcm-checkbox-primary-color-default:var(--bcm-new-ds-color-blue-500);--bcm-checkbox-secondary-color-default:var(--bcm-new-ds-color-white);--bcm-checkbox-primary-color-hover:var(--bcm-new-ds-color-blue-600);--bcm-checkbox-secondary-color-hover:var(--bcm-new-ds-color-slate-50);--bcm-checkbox-primary-color-focus-visible:var(--bcm-new-ds-color-blue-800);--bcm-checkbox-secondary-color-focus-visible:var(--bcm-new-ds-color-slate-50);--bcm-checkbox-primary-color-active:var(--bcm-new-ds-color-blue-700);--bcm-checkbox-secondary-color-active:var(--bcm-new-ds-color-slate-50);--bcm-checkbox-primary-color-disabled:var(--bcm-new-ds-color-slate-300);--bcm-checkbox-secondary-color-disabled:var(--bcm-new-ds-color-slate-200);display:inline-flex;width:fit-content;flex-direction:column;margin-bottom:8px}.bcm-checkbox:focus,.bcm-checkbox:hover,.bcm-checkbox:active{outline:none;border:none}.bcm-checkbox *{box-sizing:border-box}.bcm-checkbox input[type=radio],.bcm-checkbox input[type=checkbox]{-webkit-appearance:none;appearance:none;background-color:#fff;margin:0;display:none}.bcm-checkbox__input{display:flex;flex-direction:row;align-items:flex-start;justify-content:flex-start;flex-wrap:nowrap;padding-top:4px}.bcm-checkbox.hidden{display:none}.bcm-checkbox :hover{cursor:pointer}.bcm-checkbox[disabled] :hover,.bcm-checkbox.disabled :hover{cursor:not-allowed}.bcm-checkbox .slot{font-family:\"Inter\", sans-serif;font-size:14px;line-height:calc(14px + 8px);font-weight:400;font-weight:500;color:var(--bcm-new-ds-color-slate-600)}.bcm-checkbox .slot:not(:empty){margin-left:8px;margin-right:8px}.bcm-checkbox-size-small .slot{font-size:12px;line-height:calc(12px + 8px);margin-top:-2.5px}.bcm-checkbox-size-small .bcm-checkbox__input{min-height:calc(24px - 4px)}.bcm-checkbox-size-small .bcm-checkbox__label-icon{width:14px;height:14px;min-width:14px;font-size:calc(10px - 2px)}.bcm-checkbox-size-medium .slot{font-size:calc(12px + 1px);line-height:calc(12px + 8px);margin-top:-1.5px}.bcm-checkbox-size-medium .bcm-checkbox__input{min-height:calc(32px - 4px)}.bcm-checkbox-size-medium .bcm-checkbox__label-icon{width:16px;height:16px;min-width:16px;font-size:10px}.bcm-checkbox-size-large .slot{font-size:16px;line-height:calc(16px + 8px);margin-top:-1.5px}.bcm-checkbox-size-large .bcm-checkbox__input{min-height:calc(32px - 4px)}.bcm-checkbox-size-large .bcm-checkbox__label-icon{width:18px;height:18px;min-width:18px;font-size:12px}.bcm-checkbox__label{display:flex;flex-direction:row;align-items:flex-start;justify-content:flex-start;flex-wrap:nowrap}.bcm-checkbox__label-icon{display:flex;flex-direction:column;align-items:center;justify-content:center;flex-wrap:nowrap;border-width:1px;border-style:solid;border-radius:2px}.bcm-checkbox__label-icon-indeterminate{position:relative}.bcm-checkbox__label-icon-indeterminate:after{content:\"\";display:block;position:absolute;width:70%;height:1.5px;background:var(--bcm-new-ds-color-white)}.bcm-checkbox__label-icon.bcm-radio__icon{width:16px;height:16px;box-sizing:border-box;border-radius:100px}.bcm-checkbox__label-icon.bcm-radio__icon .bcm-radio__icon-inner{width:10px;height:10px;border-radius:100px;background-color:var(--bcm-new-ds-color-white)}.bcm-checkbox .bcm-checkbox__label-icon{background:var(--bcm-checkbox-secondary-color-default);color:var(--bcm-checkbox-secondary-color-default);border-color:var(--bcm-new-ds-color-slate-300)}.bcm-checkbox .bcm-checkbox__label-icon-checked,.bcm-checkbox .bcm-checkbox__label-icon-indeterminate{color:var(--bcm-new-ds-color-white);background-color:var(--bcm-checkbox-primary-color-default);border-color:var(--bcm-checkbox-primary-color-default)}.bcm-checkbox .bcm-checkbox__label-icon-checked.bcm-radio__icon,.bcm-checkbox .bcm-checkbox__label-icon-indeterminate.bcm-radio__icon{border-color:var(--bcm-checkbox-primary-color-default);background-color:var(--bcm-checkbox-secondary-color-default)}.bcm-checkbox .bcm-checkbox__label-icon-checked.bcm-radio__icon .bcm-radio__icon-inner,.bcm-checkbox .bcm-checkbox__label-icon-indeterminate.bcm-radio__icon .bcm-radio__icon-inner{background-color:var(--bcm-checkbox-primary-color-default)}.bcm-checkbox .bcm-checkbox__label-icon-indeterminate{color:var(--bcm-checkbox-primary-color-default)}.bcm-checkbox:hover .bcm-checkbox__label-icon{background:var(--bcm-checkbox-secondary-color-hover);color:var(--bcm-checkbox-secondary-color-hover);border-color:var(--bcm-checkbox-primary-color-hover)}.bcm-checkbox:hover .bcm-checkbox__label-icon-checked,.bcm-checkbox:hover .bcm-checkbox__label-icon-indeterminate{color:var(--bcm-new-ds-color-white);background-color:var(--bcm-checkbox-primary-color-hover);border-color:var(--bcm-checkbox-primary-color-hover)}.bcm-checkbox:hover .bcm-checkbox__label-icon-checked.bcm-radio__icon,.bcm-checkbox:hover .bcm-checkbox__label-icon-indeterminate.bcm-radio__icon{border-color:var(--bcm-checkbox-primary-color-hover);background-color:var(--bcm-checkbox-secondary-color-hover)}.bcm-checkbox:hover .bcm-checkbox__label-icon-checked.bcm-radio__icon .bcm-radio__icon-inner,.bcm-checkbox:hover .bcm-checkbox__label-icon-indeterminate.bcm-radio__icon .bcm-radio__icon-inner{background-color:var(--bcm-checkbox-primary-color-hover)}.bcm-checkbox:hover .bcm-checkbox__label-icon-indeterminate{color:var(--bcm-checkbox-primary-color-hover)}.bcm-checkbox:focus-visible .bcm-checkbox__label-icon{background:var(--bcm-checkbox-secondary-color-focus-visible);color:var(--bcm-checkbox-secondary-color-focus-visible);border-color:var(--bcm-checkbox-primary-color-focus-visible)}.bcm-checkbox:focus-visible .bcm-checkbox__label-icon-checked,.bcm-checkbox:focus-visible .bcm-checkbox__label-icon-indeterminate{color:var(--bcm-new-ds-color-white);background-color:var(--bcm-checkbox-primary-color-focus-visible);border-color:var(--bcm-checkbox-primary-color-focus-visible)}.bcm-checkbox:focus-visible .bcm-checkbox__label-icon-checked.bcm-radio__icon,.bcm-checkbox:focus-visible .bcm-checkbox__label-icon-indeterminate.bcm-radio__icon{border-color:var(--bcm-checkbox-primary-color-focus-visible);background-color:var(--bcm-checkbox-secondary-color-focus-visible)}.bcm-checkbox:focus-visible .bcm-checkbox__label-icon-checked.bcm-radio__icon .bcm-radio__icon-inner,.bcm-checkbox:focus-visible .bcm-checkbox__label-icon-indeterminate.bcm-radio__icon .bcm-radio__icon-inner{background-color:var(--bcm-checkbox-primary-color-focus-visible)}.bcm-checkbox:focus-visible .bcm-checkbox__label-icon-indeterminate{color:var(--bcm-checkbox-primary-color-focus-visible)}.bcm-checkbox:active .bcm-checkbox__label-icon{background:var(--bcm-checkbox-secondary-color-active);color:var(--bcm-checkbox-secondary-color-active);border-color:var(--bcm-checkbox-primary-color-active)}.bcm-checkbox:active .bcm-checkbox__label-icon-checked,.bcm-checkbox:active .bcm-checkbox__label-icon-indeterminate{color:var(--bcm-new-ds-color-white);background-color:var(--bcm-checkbox-primary-color-active);border-color:var(--bcm-checkbox-primary-color-active)}.bcm-checkbox:active .bcm-checkbox__label-icon-checked.bcm-radio__icon,.bcm-checkbox:active .bcm-checkbox__label-icon-indeterminate.bcm-radio__icon{border-color:var(--bcm-checkbox-primary-color-active);background-color:var(--bcm-checkbox-secondary-color-active)}.bcm-checkbox:active .bcm-checkbox__label-icon-checked.bcm-radio__icon .bcm-radio__icon-inner,.bcm-checkbox:active .bcm-checkbox__label-icon-indeterminate.bcm-radio__icon .bcm-radio__icon-inner{background-color:var(--bcm-checkbox-primary-color-active)}.bcm-checkbox:active .bcm-checkbox__label-icon-indeterminate{color:var(--bcm-checkbox-primary-color-active)}.bcm-checkbox[disabled] .bcm-checkbox__label-icon,.bcm-checkbox.disabled .bcm-checkbox__label-icon{background:var(--bcm-checkbox-secondary-color-disabled);color:var(--bcm-checkbox-secondary-color-disabled);border-color:var(--bcm-checkbox-primary-color-disabled)}.bcm-checkbox[disabled] .bcm-checkbox__label-icon-checked,.bcm-checkbox[disabled] .bcm-checkbox__label-icon-indeterminate,.bcm-checkbox.disabled .bcm-checkbox__label-icon-checked,.bcm-checkbox.disabled .bcm-checkbox__label-icon-indeterminate{color:var(--bcm-new-ds-color-white);background-color:var(--bcm-checkbox-primary-color-disabled);border-color:var(--bcm-checkbox-primary-color-disabled)}.bcm-checkbox[disabled] .bcm-checkbox__label-icon-checked.bcm-radio__icon,.bcm-checkbox[disabled] .bcm-checkbox__label-icon-indeterminate.bcm-radio__icon,.bcm-checkbox.disabled .bcm-checkbox__label-icon-checked.bcm-radio__icon,.bcm-checkbox.disabled .bcm-checkbox__label-icon-indeterminate.bcm-radio__icon{border-color:var(--bcm-checkbox-primary-color-disabled);background-color:var(--bcm-checkbox-secondary-color-disabled)}.bcm-checkbox[disabled] .bcm-checkbox__label-icon-checked.bcm-radio__icon .bcm-radio__icon-inner,.bcm-checkbox[disabled] .bcm-checkbox__label-icon-indeterminate.bcm-radio__icon .bcm-radio__icon-inner,.bcm-checkbox.disabled .bcm-checkbox__label-icon-checked.bcm-radio__icon .bcm-radio__icon-inner,.bcm-checkbox.disabled .bcm-checkbox__label-icon-indeterminate.bcm-radio__icon .bcm-radio__icon-inner{background-color:var(--bcm-checkbox-primary-color-disabled)}.bcm-checkbox[disabled] .bcm-checkbox__label-icon-indeterminate,.bcm-checkbox.disabled .bcm-checkbox__label-icon-indeterminate{color:var(--bcm-checkbox-primary-color-disabled)}.bcm-checkbox[no-margin] .bcm-checkbox__input{margin:0;min-height:0;padding:0}.bcm-list{font-family:\"Inter\", sans-serif;font-size:14px;line-height:calc(14px + 8px);font-weight:400;--width:256px;--height:256px;--max-height:inherit;--min-height:inherit;min-width:90px;display:flex;flex-direction:column;margin:0 0 8px 0}.bcm-list__listbox .bcm-list__container{height:var(--height);max-height:var(--max-height);min-height:var(--min-height)}.bcm-list.full-width{width:100%}.bcm-list__size-small .bcm-list__input{height:24px;font-size:12px;line-height:calc(12px + 8px)}.bcm-list__size-small .bcm-list__input .bcm-tag__content.dismissable{font-size:10px;line-height:calc(10px + 8px)}.bcm-list__size-medium .bcm-list__input{height:32px;font-size:14px;line-height:calc(14px + 8px)}.bcm-list__size-medium .bcm-list__input .bcm-tag__content.dismissable{font-size:12px;line-height:calc(12px + 8px)}.bcm-list__size-large .bcm-list__input{height:40px;font-size:16px;line-height:calc(16px + 8px)}.bcm-list__size-large .bcm-list__input .bcm-tag__content.dismissable{font-size:14px;line-height:calc(14px + 8px)}.bcm-list:hover{outline:none}.bcm-list:hover .bcm-list__input{border-color:var(--bcm-new-ds-color-blue-500);background-color:var(--bcm-new-ds-color-slate-50)}.bcm-list:focus-visible{outline:none}.bcm-list:focus-visible .bcm-list__input{border-color:var(--bcm-new-ds-color-blue-600);background-color:var(--bcm-new-ds-color-white)}.bcm-list:active{outline:none}.bcm-list:active .bcm-list__input{border-color:var(--bcm-new-ds-color-blue-600);box-shadow:0 1px 3px 0 rgba(17, 24, 38, 0.1)}.bcm-list__container{--width:256px;--height:256px;width:var(--width);height:var(--height);background-color:var(--bcm-new-ds-color-white);border:1px solid var(--bcm-new-ds-color-slate-300);border-radius:4px;box-sizing:border-box;padding-top:8px;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;flex-wrap:nowrap;gap:4px}.bcm-list__container main{scroll-behavior:smooth;padding:0 8px;flex:1;overflow:auto;display:flex;flex-direction:column}.bcm-list__container-search{margin:0 8px}.bcm-list__container-search:after{margin:4px 0}.bcm-list__container-no-data{flex:1;display:flex;justify-content:stretch;align-items:stretch;padding-bottom:4px}.bcm-list__container.error{border-color:var(--bcm-color-red-6)}.bcm-list__container.full-width{width:100%}.bcm-list__container.bcm-list__type-linked-component,.bcm-list__container.bcm-list__type-select,.bcm-list__container.bcm-list__type-autocomplete{opacity:0;visibility:hidden;position:absolute;top:0;left:0;height:0;width:0;transform:translateY(10%);z-index:10800;transition:visibility 0s linear 400ms, opacity 100ms, transform 200ms}.bcm-list__container.bcm-list__type-linked-component.bcm-list--top,.bcm-list__container.bcm-list__type-select.bcm-list--top,.bcm-list__container.bcm-list__type-autocomplete.bcm-list--top{transform:translateY(-10%)}.bcm-list__container.bcm-list__type-linked-component.is-open,.bcm-list__container.bcm-list__type-select.is-open,.bcm-list__container.bcm-list__type-autocomplete.is-open{opacity:1;transform:translateY(0);visibility:visible;transition:visibility 0s linear 0s, opacity 100ms, transform 100ms}.bcm-list__container.bcm-list__type-linked-component{margin-top:2px}.bcm-list__label{line-height:1}.bcm-list__input{display:flex;align-items:center;justify-content:space-between;box-sizing:border-box;border:1px solid var(--bcm-new-ds-color-slate-300);border-radius:4px;color:var(--bcm-new-ds-color-slate-600);background-color:var(--bcm-new-ds-color-white);user-select:none;cursor:pointer;padding:0 8px;height:32px;overflow:hidden;position:relative;transition:background-color 100ms, border-color 100ms}.bcm-list__input-spinner{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;background-color:var(--bcm-color-grey-1);opacity:0;visibility:hidden;transition:opacity 0.2s ease-in-out;z-index:-1}.bcm-list__input-spinner.is-open{opacity:1;visibility:visible;z-index:1}.bcm-list__input-container{flex:1;display:block;overflow:hidden}.bcm-list__input-container.value-empty{color:var(--bcm-color-grey-6)}.bcm-list__input-container.type-single,.bcm-list__input-container.value-empty{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bcm-list__input-placeholder{color:var(--bcm-color-grey-6)}.bcm-list__input-tag-container{height:100%;width:100%;display:flex;align-items:center;justify-content:flex-start;flex-wrap:nowrap;grid-gap:2px;line-height:1}.bcm-list__input-buttons{display:flex;align-items:center;justify-content:flex-end;grid-gap:4px}.bcm-list__input-buttons-button{display:flex;align-items:center;justify-content:center;box-sizing:border-box;padding:0 4px 0 4px;font-size:16px;color:var(--bcm-new-ds-color-slate-500)}.bcm-list__input-buttons-button.caret-is{transform:rotate(360deg);transition:transform 0.2s ease-in-out}.bcm-list__input-buttons-button.caret-is-open{transform:rotate(180deg)}.bcm-list__input-buttons:not(.disabled) .bcm-list__input-buttons-button:hover{cursor:pointer;color:var(--bcm-new-ds-color-slate-600)}.bcm-list__input-autocomplete{position:relative;padding-right:0}.bcm-list__input-autocomplete .bcm-list-input-selected-text{background-color:#ffffff;display:flex;align-items:center;justify-content:flex-start;width:calc(100% - 24px);height:100%;padding:0 calc(8px + 4px);position:absolute;top:0;left:0}.bcm-list__input-autocomplete .bcm-list__input-container{height:100%;display:flex;flex-direction:row}.bcm-list__input-autocomplete .bcm-list__input-container .bcm-list__input-tag-container{width:auto}.bcm-list__input-autocomplete .bcm-input,.bcm-list__input-autocomplete .bcm-list__autocomplete{height:100%;min-width:70px;width:100%}.bcm-list__input-autocomplete .bcm-input__container,.bcm-list__input-autocomplete .bcm-list__autocomplete__container{height:100%;border:none;padding:0;width:100%}.bcm-list__input-autocomplete .bcm-input__container:not(.disabled).focused,.bcm-list__input-autocomplete .bcm-input__container:not(.disabled):hover,.bcm-list__input-autocomplete .bcm-list__autocomplete__container:not(.disabled).focused,.bcm-list__input-autocomplete .bcm-list__autocomplete__container:not(.disabled):hover{border:none;box-shadow:none}.bcm-list__autocomplete{width:100%;position:relative}.bcm-list.full-width .bcm-list__container,.bcm-list.full-width .bcm-list__input{width:100%}.bcm-list.error .bcm-list__input{border-color:var(--bcm-color-red-6)}.bcm-list.disabled .bcm-list__container,.bcm-list.disabled .bcm-list__input{color:var(--bcm-new-ds-color-slate-300);background-color:var(--bcm-new-ds-color-slate-50);cursor:not-allowed}.bcm-list.disabled .bcm-tag__content.dismissable .close-button{cursor:default}.bcm-list:not(.disabled) .bcm-list__input .bcm-tag__content.checked .close-button bcm-icon{color:var(--bcm-new-ds-color-slate-100)}.bcm-list:not(.disabled) .bcm-list__input .bcm-tag__content.checked .close-button:hover bcm-icon{color:var(--bcm-new-ds-color-slate-200)}.bcm-list:not(.disabled) .bcm-list__input:hover{border-color:var(--bcm-new-ds-color-blue-500)}.bcm-list:not(.disabled) .bcm-list__input:hover .bcm-tag__content.dismissable:not(.checked){background-color:var(--bcm-new-ds-color-slate-200);border-color:var(--bcm-new-ds-color-slate-200)}.bcm-list:not(.disabled) .bcm-list__input:focus-visible{border-color:var(--bcm-new-ds-color-blue-500);box-shadow:0 1px 3px 0 rgba(17, 24, 38, 0.1)}.bcm-list:not(.disabled) .bcm-list__input:active{border-color:var(--bcm-new-ds-color-blue-500)}.bcm-list__item{padding:2px 0}.bcm-list__item.disabled{user-select:none}.bcm-list__item:focus{outline:none}.bcm-list__item:focus-visible>.bcm-list__item-content{background-color:var(--bcm-new-ds-color-slate-300)}.bcm-list__item:focus-visible>.bcm-list__item-content:not(.disabled){color:var(--bcm-new-ds-color-slate-600)}.bcm-list__item-content{display:flex;flex-direction:row;align-items:stretch;justify-content:flex-start;flex-wrap:nowrap;cursor:pointer;border-radius:4px;padding:0;padding-left:4px;color:var(--bcm-new-ds-color-slate-600);background-color:var(--bcm-new-ds-color-slate-50);transition:background-color 0.2s ease}.bcm-list__item-content.disabled{color:var(--bcm-new-ds-color-slate-300);background-color:var(--bcm-new-ds-color-slate-50);user-select:none;cursor:not-allowed}.bcm-list__item-content.selected{color:var(--bcm-new-ds-color-white);background-color:var(--bcm-new-ds-color-blue-500)}.bcm-list__item-content.selected:hover:not(.disabled){color:var(--bcm-new-ds-color-white);background-color:var(--bcm-new-ds-color-blue-600)}.bcm-list__item-content:hover:not(.disabled){color:var(--bcm-new-ds-color-slate-600);background-color:var(--bcm-new-ds-color-slate-100)}.bcm-list__item-content:active:not(.disabled){color:var(--bcm-new-ds-color-slate-600);background-color:var(--bcm-new-ds-color-slate-200)}.bcm-list__item-content-collapse-icon{width:16px;padding:0 8px;display:flex;align-items:center;justify-content:center;font-size:16px}.bcm-list__item-content-collapse-icon.child{cursor:pointer}.bcm-list__item-content-text{user-select:none;padding:8px;width:100%;display:flex;flex-direction:row;align-items:center;justify-content:flex-start}.bcm-list__item-content-text.treeview{padding:8px 0}.bcm-list__item-content-text-checkbox{display:flex;flex-direction:row;align-items:center;justify-content:center;flex-wrap:nowrap;margin-right:8px}.bcm-list__item-content-text-checkbox .bcm-checkbox{margin:0}.bcm-list__item-content-text-inner{width:100%}.bcm-list__item-content-text mark{padding:0;margin:0;font-size:inherit;color:var(--bcm-color-grey-8);background-color:var(--bcm-color-yellow-4)}.bcm-list__item-childs{padding-left:16px}.bcm-list__item-small{padding:2px 0 2px 8px;font-size:10px;line-height:calc(10px + 8px)}.bcm-list__item-small .bcm-list__item-content-text{padding:3px 4px}.bcm-list__item-medium{font-size:12px;line-height:calc(12px + 8px)}.bcm-list__item-medium .bcm-list__item-content-text{padding:6px 4px}.bcm-list__item-large{font-size:14px;line-height:calc(14px + 8px)}.bcm-list__item-large .bcm-list__item-content-text{padding:9px 4px}.bcm-list__item--readonly:focus>.bcm-list__item-content:not(.disabled),.bcm-list__item--readonly.focused>.bcm-list__item-content:not(.disabled){color:var(--bcm-color-grey-7)}.bcm-list__item--readonly>.bcm-list__item-content{color:var(--bcm-color-grey-7)}.bcm-list__item--readonly>.bcm-list__item-content:hover,.bcm-list__item--readonly>.bcm-list__item-content:focus{color:var(--bcm-color-grey-7)}.bcm-list__item--group{border-radius:4px}.bcm-list__item--group:focus>.bcm-list__item-content:not(.disabled){background-color:var(--bcm-new-ds-color-slate-50);color:var(--bcm-new-ds-color-slate-600)}.bcm-list__item--group>.bcm-list__item-content{background-color:var(--bcm-new-ds-color-slate-50);color:var(--bcm-new-ds-color-slate-600);border-radius:4px 4px 0 0;cursor:default;font-size:14px;line-height:calc(14px + 8px);font-weight:500;position:sticky;top:0}.bcm-list__item--group>.bcm-list__item-content>.bcm-list__item-content-text{padding:4px 8px 4px 16px}.bcm-list__item--group>.bcm-list__item-content:hover,.bcm-list__item--group>.bcm-list__item-content:focus{color:var(--bcm-new-ds-color-slate-800);background-color:var(--bcm-new-ds-color-slate-50)}.bcm-list__item--group>.bcm-list__item-content-unclickable:hover{color:var(--bcm-new-ds-color-slate-700);background-color:var(--bcm-new-ds-color-slate-50)}.bcm-list__item--group>.bcm-list__item-childs{background-color:var(--bcm-new-ds-color-slate-50);color:var(--bcm-new-ds-color-slate-600);padding-bottom:8px;border-radius:0 0 4px 4px;padding-left:8px}.bcm-list__item--group>.bcm-list__item-childs .bcm-list__item-content{background-color:var(--bcm-new-ds-color-white);color:var(--bcm-new-ds-color-slate-600)}.bcm-list__item--group>.bcm-list__item-childs .bcm-list__item-content:hover{background-color:var(--bcm-new-ds-color-slate-100)}.bcm-list__item--group>.bcm-list__item-childs .bcm-list__item-content:active{background-color:var(--bcm-new-ds-color-slate-200)}.bcm-list__item--group>.bcm-list__item-childs .bcm-list__item-content:focus-visible{background-color:var(--bcm-new-ds-color-slate-300)}.bcm-list__item--group>.bcm-list__item-childs .bcm-list__item-content.selected{background-color:var(--bcm-new-ds-color-blue-500);color:var(--bcm-new-ds-color-white)}.bcm-list__item--group>.bcm-list__item-childs .bcm-list__item-content.selected:hover{background-color:var(--bcm-new-ds-color-blue-600)}.bcm-list__item--group>.bcm-list__item-childs .bcm-list__item-content.selected:active{background-color:var(--bcm-new-ds-color-blue-700)}.bcm-list__linked{display:none}.bcm-list .bcm-tag--other .value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bcm-info-footer{text-align:right;padding:4px 8px;background-color:var(--bcm-new-ds-color-slate-100);color:var(--bcm-new-ds-color-slate-600);border-radius:0 0 4px 4px}";
846
-
847
- var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
848
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
849
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
850
- r = Reflect.decorate(decorators, target, key, desc);
851
- else
852
- for (var i = decorators.length - 1; i >= 0; i--)
853
- if (d = decorators[i])
854
- r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
855
- return c > 3 && r && Object.defineProperty(target, key, r), r;
856
- };
857
- const BcmList = class {
858
- constructor(hostRef) {
859
- registerInstance(this, hostRef);
860
- this.bcmChecklist = createEvent(this, "bcm-checklist", 7);
861
- this.bcmSelected = createEvent(this, "bcm-selected", 7);
862
- this.change = createEvent(this, "bcm-change", 7);
863
- this.open = createEvent(this, "bcm-open", 3);
864
- this.close = createEvent(this, "bcm-close", 3);
865
- this.listClose = createEvent(this, "bcm-list-close", 7);
866
- this.listOpen = createEvent(this, "bcm-list-open", 7);
867
- this.debounce = null;
868
- this.debounceHandler = Generate.debounceInput(() => this.listenResize(), 300, false);
869
- this._id = Generate.UID();
870
- this.type = Bcm$1.ListType.listbox;
871
- this.treeview = false;
872
- this.checkboxes = false;
873
- this.searchable = false;
874
- this.value = null;
875
- this.inputText = undefined;
876
- this.name = undefined;
877
- this.label = undefined;
878
- this.size = Bcm$1.Size.medium;
879
- this.disabled = false;
880
- this.readonly = false;
881
- this.highlight = false;
882
- this.highlightText = undefined;
883
- this.required = false;
884
- this.hidden = false;
885
- this.fullWidth = false;
886
- this.height = "256px";
887
- this.maxHeight = "500px";
888
- this.minHeight = "150px";
889
- this.width = "256px";
890
- this.tooltip = undefined;
891
- this.infoFooter = false;
892
- this.variableText = "item";
893
- this.template = undefined;
894
- this.allOpen = false;
895
- this.keyControl = false;
896
- this.checkAll = true;
897
- this.stopDeepClean = false;
898
- this.openIntersecting = false;
899
- this.linkedComponent = undefined;
900
- this.isOpen = false;
901
- this.calculatedViewport = false;
902
- this.isSelectedOther = false;
903
- this.isHaveOtherTag = false;
904
- this.placeholder = "Choose an option";
905
- this.searchPlaceholder = "Search";
906
- this.searchIsOnlyChilds = false;
907
- this.minSearchLength = 2;
908
- this.clearable = false;
909
- this.caption = undefined;
910
- this.noCaption = false;
911
- this.captionType = Bcm$1.Status.default;
912
- this.captionError = undefined;
913
- this.emptyText = undefined;
914
- this.emptyIcon = "fad fa-folder-open";
915
- this.captionCache = undefined;
916
- this.captionTypeCache = undefined;
917
- this.tick = {};
918
- this.totalData = 0;
919
- this.totalRootData = 0;
920
- this.limit = 20;
921
- this.searchGetParents = undefined;
922
- this.searchResultLimit = 20;
923
- this.searchFound = null;
924
- this.returnFilterData = {};
925
- this.returnOtherData = {};
926
- this.options = {
927
- rootMargin: "30px",
928
- };
929
- this.tagContainerWidth = 0;
930
- this.selectAllItem = {
931
- id: "select-all",
932
- text: "Select All",
933
- value: "select-all",
934
- checked: false,
935
- disabled: false,
936
- icon: "",
937
- status: Bcm$1.Status.default,
938
- indeterminate: "uncheck",
939
- };
940
- this.placement = Bcm$1.Placement["bottom-start"];
941
- this.disableChangeEvent = false;
942
- this.data = [];
943
- window.addEventListener("scroll", this.handleWheel.bind(this), true);
944
- window.addEventListener("wheel", this.handleWheel.bind(this), true);
945
- window.addEventListener("resize", this.handleResize.bind(this), true);
946
- }
947
- connectedCallback() {
948
- if (this.height != "256px") {
949
- if (this.height.indexOf("px") > -1) {
950
- this.limit = Math.floor(+this.height.replace("px", "") / 10);
951
- }
952
- else {
953
- this.limit = Math.floor(+(window.innerHeight / 10));
954
- }
955
- this.searchResultLimit = this.limit;
956
- this.markForCheck();
957
- }
958
- const checkElementWithDom = document.querySelectorAll(`#bcm-list-${this._id}`);
959
- (checkElementWithDom === null || checkElementWithDom === void 0 ? void 0 : checkElementWithDom.length) > 1 && checkElementWithDom.forEach((item, index) => index > 0 && item.remove());
960
- }
961
- componentWillRender() {
962
- this.calculateLocation();
963
- }
964
- componentShouldUpdate(newVal, oldVal, propName) {
965
- if (Object.keys(this.getOptions()).indexOf(propName) > -1 && newVal !== oldVal) {
966
- this.updateOptions();
967
- }
968
- }
969
- get containerWidth() {
970
- var _a, _b;
971
- return (_b = (_a = this.el) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect()) === null || _b === void 0 ? void 0 : _b.width;
972
- }
973
- get tagCount() {
974
- return this.containerWidth > 0 ? Math.floor(+(this.containerWidth - 100) / 85) : 0;
975
- }
976
- get tagData() {
977
- return snq(() => {
978
- var _a;
979
- return (_a = this.value) === null || _a === void 0 ? void 0 : _a.map(item => ({
980
- value: item.id,
981
- label: StringHelper.textLimitter(item.text, 7),
982
- text: item.tooltipMessage || item.tagTitle || item.text,
983
- }));
984
- }, []);
985
- }
986
- async componentDidLoad() {
987
- await this.initState();
988
- if (this.type == "select" || this.type == "autocomplete" || this.linkedComponent) {
989
- const list = this.el.querySelector(`#bcm-list-${this._id}`);
990
- if (list) {
991
- document.body.appendChild(list);
992
- }
993
- }
994
- }
995
- disconnectedCallback() {
996
- this.isOpen = false;
997
- if (this.stopDeepClean)
998
- return;
999
- listState.removeState(this._id);
1000
- this.el.innerHTML = "";
1001
- if (this.type == "select" || this.type == "autocomplete" || this.linkedComponent) {
1002
- const list = document.querySelectorAll(`#bcm-list-${this._id}`);
1003
- if (list === null || list === void 0 ? void 0 : list.length) {
1004
- list.forEach(item => item.remove());
1005
- this.el.remove();
1006
- }
1007
- }
1008
- }
1009
- watchId(_, oldVal) {
1010
- // console.info('Changed component id:', oldVal + ' -> ' + newVal);
1011
- listState.removeState(oldVal);
1012
- this.initState();
1013
- }
1014
- handleValueChange(newVal, oldVal) {
1015
- var _a;
1016
- if (Generate.objectIsEmpty(this.returnFilterData)) {
1017
- this.handleIndeterminate(((_a = this.value) === null || _a === void 0 ? void 0 : _a.length) || 0, this.totalData);
1018
- }
1019
- if (this.checkboxes) {
1020
- if (!Validators.compareTwoArrayIsSame(newVal, oldVal)) {
1021
- this.bcmChecklist.emit(this.value);
1022
- !this.disableChangeEvent && this.change.emit(this.value);
1023
- }
1024
- }
1025
- else {
1026
- if ((newVal === null || newVal === void 0 ? void 0 : newVal.id) != (oldVal === null || oldVal === void 0 ? void 0 : oldVal.id)) {
1027
- !this.disableChangeEvent && this.change.emit(this.value);
1028
- }
1029
- }
1030
- }
1031
- watchReturnFilterData(newVal) {
1032
- var _a;
1033
- const { checkedItems, visibledItems } = newVal;
1034
- if (checkedItems && visibledItems) {
1035
- this.handleIndeterminate(checkedItems.length, visibledItems.length);
1036
- }
1037
- else {
1038
- this.handleIndeterminate(((_a = this.value) === null || _a === void 0 ? void 0 : _a.length) || 0, this.totalData);
1039
- }
1040
- }
1041
- async handleOpen() {
1042
- if (this.isOpen) {
1043
- this.open.emit();
1044
- this.calculateLocation();
1045
- this.onSelectSearch();
1046
- }
1047
- else {
1048
- this.listScrollToTop();
1049
- this.close.emit();
1050
- this.listClose.emit();
1051
- await delay(100);
1052
- this.unSelectOther();
1053
- }
1054
- }
1055
- listScrollToTop() {
1056
- const list = document.querySelector(`#bcm-list-${this._id}`);
1057
- if (list) {
1058
- list.querySelector(".scrolling").scrollTop = 0;
1059
- }
1060
- }
1061
- async dataChanged(newValue, oldValue) {
1062
- if (!Validators.compareTwoArrayIsSame(newValue, oldValue)) {
1063
- await this.initState();
1064
- }
1065
- }
1066
- isIntersecting(e) {
1067
- const target = e === null || e === void 0 ? void 0 : e.target;
1068
- if (target && target.id === this._id) {
1069
- this.listenResize();
1070
- }
1071
- }
1072
- handleSlotItems(e) {
1073
- var _a;
1074
- if (((_a = e === null || e === void 0 ? void 0 : e.detail) === null || _a === void 0 ? void 0 : _a.length) > 0) {
1075
- this.data = e.detail;
1076
- }
1077
- }
1078
- handleChange(e) {
1079
- if (e.target.id == `bcm-list-input-tag-container-${this._id}-autocomplete-input`) {
1080
- e.stopImmediatePropagation();
1081
- }
1082
- }
1083
- handleResize() {
1084
- this.calculateLocation();
1085
- this.debounceHandler();
1086
- }
1087
- handleWheel(event) {
1088
- if (this.isOpen) {
1089
- const list = document.querySelector(`#bcm-list-${this._id}`);
1090
- const isClickInside = list && Generate.findEventPath(event, list);
1091
- if (isClickInside) {
1092
- if (this.type == "select" || this.type == "autocomplete" || this.linkedComponent) {
1093
- this.calculateLocation();
1094
- }
1095
- }
1096
- else {
1097
- this.hide();
1098
- }
1099
- }
1100
- }
1101
- clearAutocomplete() {
1102
- if (this.type == "autocomplete") {
1103
- const autocompleteInput = this.getAutoCompleteInput();
1104
- if (autocompleteInput) {
1105
- autocompleteInput.handleClear(false);
1106
- }
1107
- }
1108
- }
1109
- async handleSelectOtherTag(e) {
1110
- if (this.disabled)
1111
- return;
1112
- const { id, checked } = e.detail;
1113
- this.isSelectedOther = checked;
1114
- if (id) {
1115
- checked ? this.filterOtherList(id) : this.unSelectOther();
1116
- this.isOpen = true;
1117
- }
1118
- }
1119
- async handleDeleteTag(e) {
1120
- var _a;
1121
- if (this.disabled)
1122
- return;
1123
- const { id } = e.detail;
1124
- this.isSelectedOther && this.unSelectOther();
1125
- Array.isArray(id) ? listState.removeOtherTags(this._id, id) : listState.checkedItem(this._id, id);
1126
- this.value = (await this.getCheckedList()).checkedList;
1127
- this.handleIndeterminate(((_a = this.value) === null || _a === void 0 ? void 0 : _a.length) || 0, this.totalData);
1128
- }
1129
- async handleSelectTag(_) {
1130
- if (this.disabled)
1131
- return;
1132
- this.clearAutocomplete();
1133
- this.onSelectSearch();
1134
- this.unSelectOther();
1135
- }
1136
- handleClick(event) {
1137
- var _a;
1138
- if (this.disabled)
1139
- return;
1140
- const list = document.querySelector(`#bcm-list-${this._id}`);
1141
- const isClickInside = Generate.findEventPath(event, this.el) || (list && Generate.findEventPath(event, list));
1142
- if (isClickInside) {
1143
- if (this.debounce !== null) {
1144
- event.preventDefault();
1145
- event.stopPropagation();
1146
- clearTimeout(this.debounce);
1147
- this.debounce = null;
1148
- }
1149
- this.debounce = setTimeout(() => {
1150
- this.debounce = null;
1151
- }, 300);
1152
- }
1153
- if (!isClickInside) {
1154
- if (this.type == "autocomplete") {
1155
- const autocompleteInput = this.getAutoCompleteInput();
1156
- if (autocompleteInput) {
1157
- if (this.checkboxes) {
1158
- autocompleteInput.setValue("");
1159
- }
1160
- else {
1161
- autocompleteInput.setValue(((_a = this.value) === null || _a === void 0 ? void 0 : _a.text) || "");
1162
- }
1163
- }
1164
- }
1165
- }
1166
- const clickToTag = Generate.findEventPathWithKey(event, "className", ["bcm-tag"]);
1167
- const clickToOtherTag = Generate.findEventPathWithKey(event, "className", ["bcm-tag bcm-tag--other"]);
1168
- const clickToSelect = Generate.findEventPathWithKey(event, "id", [`bcm-list-input-${this._id}`, `bcm-list-label-${this._id}`]);
1169
- const clickToTagDismiss = Generate.findEventPathWithKey(event, "className", ["right close-button"]);
1170
- if (clickToSelect && !clickToTagDismiss && this.type != "autocomplete") {
1171
- this.isOpen = clickToTag || clickToOtherTag ? true : !this.isOpen;
1172
- }
1173
- if (list) {
1174
- if (this.isOpen) {
1175
- if (!list.contains(event.target) && !this.el.contains(event.target)) {
1176
- this.isOpen = false;
1177
- // this.unSelectOther()
1178
- }
1179
- }
1180
- }
1181
- }
1182
- bcmOnSearchClear(event) {
1183
- var _a, _b;
1184
- if (this.type == "autocomplete") {
1185
- if (((_a = event === null || event === void 0 ? void 0 : event.target) === null || _a === void 0 ? void 0 : _a.id) === `bcm-list-${this._id}-search` || ((_b = event === null || event === void 0 ? void 0 : event.target) === null || _b === void 0 ? void 0 : _b.id) === `bcm-list-input-tag-container-${this._id}-autocomplete-input`) {
1186
- if (event.detail) {
1187
- this.setClear();
1188
- }
1189
- }
1190
- }
1191
- }
1192
- bcmOnSearch(event) {
1193
- var _a, _b, _c, _d, _e, _f;
1194
- if (((_a = event === null || event === void 0 ? void 0 : event.target) === null || _a === void 0 ? void 0 : _a.id) === `bcm-list-${this._id}-search` || ((_b = event === null || event === void 0 ? void 0 : event.target) === null || _b === void 0 ? void 0 : _b.id) === `bcm-list-input-tag-container-${this._id}-autocomplete-input`) {
1195
- this.searchGetParents = snq(() => { var _a; return (_a = event.detail) === null || _a === void 0 ? void 0 : _a.parentIndex; }, null);
1196
- this.searchResultLimit = 10;
1197
- this.searchFound = ((_c = event.detail) === null || _c === void 0 ? void 0 : _c.matching) != null ? (_d = event.detail) === null || _d === void 0 ? void 0 : _d.matching.length : null;
1198
- this.returnFilterData = listState.filterData(this._id, (_e = event.detail) === null || _e === void 0 ? void 0 : _e.nestedResult);
1199
- if (this.searchFound > 0 && this.highlight) {
1200
- this.highlightText = (_f = event.detail) === null || _f === void 0 ? void 0 : _f.value;
1201
- }
1202
- if (this.type == "autocomplete") {
1203
- this.isOpen = true;
1204
- }
1205
- if (!event.detail.result) {
1206
- if (this.type == "autocomplete") {
1207
- this.isOpen = false;
1208
- }
1209
- else {
1210
- this.returnFilterData = {};
1211
- listState.filterData(this._id, null);
1212
- }
1213
- // this.isSelectedOther = false
1214
- this.searchResultLimit = null;
1215
- this.highlightText = null;
1216
- }
1217
- this.markForCheck();
1218
- }
1219
- }
1220
- //keyboard navigation
1221
- handleKeyDown(ev) {
1222
- const keycode = ev.keyCode || ev.which;
1223
- if (keycode === Bcm$1.KeyCode.escape) {
1224
- if (this.isOpen) {
1225
- this.isOpen = false;
1226
- ev.preventDefault();
1227
- ev.stopPropagation();
1228
- ev.stopImmediatePropagation();
1229
- }
1230
- }
1231
- if (this.keyControl) {
1232
- const keyboard = new ListKeyControl(keycode, this.el, this.treeview, this.checkboxes);
1233
- keyboard.openGroup = openGroupId => {
1234
- this.openGroup(openGroupId);
1235
- };
1236
- keyboard.checkedItem = checkedItemId => {
1237
- this.checkedItem(checkedItemId);
1238
- };
1239
- keyboard.keyDown();
1240
- }
1241
- }
1242
- handleKeyUp(ev) {
1243
- if (this.keyControl) {
1244
- const focusedList = Generate.findEventPath(ev, this.el);
1245
- if (focusedList) {
1246
- const list = document.getElementById(`bcm-list-${this._id}`);
1247
- if (list) {
1248
- const items = list.querySelectorAll(".bcm-list__item.focused");
1249
- if (items.length > 0) {
1250
- const main = list.querySelector("main");
1251
- const itemHeight = items[0].offsetHeight;
1252
- const listHeight = main.offsetHeight;
1253
- const itemTop = items[0].offsetTop;
1254
- if (itemTop > listHeight) {
1255
- main.scrollTop = itemTop - listHeight / 2 + itemHeight / 2;
1256
- }
1257
- if (itemTop < listHeight) {
1258
- main.scrollTop = itemTop - listHeight / 2 - itemHeight / 2;
1259
- }
1260
- }
1261
- }
1262
- }
1263
- }
1264
- }
1265
- async set(data) {
1266
- if (data) {
1267
- if (Array.isArray(data)) {
1268
- this.addChecked(data);
1269
- }
1270
- if (typeof data === "string" || typeof data === "number") {
1271
- this.selectedItem(data);
1272
- }
1273
- }
1274
- else {
1275
- this.setClear();
1276
- }
1277
- }
1278
- async get() {
1279
- var _a, _b;
1280
- return this.value ? (this.checkboxes ? (_b = (_a = ((await this.getCheckedList()))) === null || _a === void 0 ? void 0 : _a.checkedList) === null || _b === void 0 ? void 0 : _b.map(item => item.id) : this.value.id) : null;
1281
- }
1282
- async getCheckedList() {
1283
- return Promise.resolve(listState.getCheckedList(this._id));
1284
- }
1285
- async getSelected() {
1286
- return Promise.resolve(listState.getSelected(this._id));
1287
- }
1288
- async getValue() {
1289
- return Promise.resolve(this.value);
1290
- }
1291
- async addChecked(ids = [], save = false, emit = true) {
1292
- if (ids && ids.length > 0) {
1293
- if (!save) {
1294
- listState.setClear(this._id);
1295
- await delay(10);
1296
- }
1297
- await listState.addChecked(this._id, ids);
1298
- await delay(10);
1299
- emit && (this.value = (await this.getCheckedList()).checkedList);
1300
- this.markForCheck();
1301
- }
1302
- return Promise.resolve(this.value);
1303
- }
1304
- async selected(id) {
1305
- if (id) {
1306
- return Promise.resolve(await this.selectedItem(id));
1307
- }
1308
- return false;
1309
- }
1310
- async setClear(e) {
1311
- listState.setClear(this._id);
1312
- this.value = null;
1313
- this.inputText = "";
1314
- this.isOpen = false;
1315
- this.selectAllItem.indeterminate = "uncheck";
1316
- this.markForCheck();
1317
- if (e) {
1318
- e.stopPropagation();
1319
- e.preventDefault();
1320
- }
1321
- await delay(10);
1322
- return Promise.resolve();
1323
- }
1324
- async resetCaption() {
1325
- await delay(10);
1326
- this.caption = this.captionCache;
1327
- this.captionType = this.captionTypeCache;
1328
- this.captionError = null;
1329
- await delay(10);
1330
- return Promise.resolve();
1331
- }
1332
- async show() {
1333
- this.isOpen = true;
1334
- return Promise.resolve();
1335
- }
1336
- async hide() {
1337
- this.isOpen = false;
1338
- return Promise.resolve();
1339
- }
1340
- updateOptions() {
1341
- listState.updateOptions(this._id, this);
1342
- }
1343
- handleIndeterminate(checkeds, total) {
1344
- this.selectAllItem = Object.assign(Object.assign({}, this.selectAllItem), { indeterminate: this.checkboxes && checkeds > 0 ? (checkeds === total ? "check" : "indeterminate") : "uncheck", checked: this.checkboxes && checkeds > 0 ? (checkeds === total ? true : false) : false });
1345
- }
1346
- listenResize() {
1347
- this.calculateLocation();
1348
- this.markForCheck();
1349
- }
1350
- async unSelectOther() {
1351
- await this.onClearSearch();
1352
- this.isSelectedOther = false;
1353
- this.searchFound = null;
1354
- this.returnFilterData = {};
1355
- listState.filterData(this._id, null);
1356
- await delay(10);
1357
- return Promise.resolve();
1358
- }
1359
- async onClearSearch() {
1360
- const searchInput = document.getElementById(`bcm-list-${this._id}-search`);
1361
- if (searchInput) {
1362
- await searchInput.handleClear();
1363
- }
1364
- return Promise.resolve();
1365
- }
1366
- async onSelectSearch() {
1367
- const searchInput = document.getElementById(`bcm-list-${this._id}-search`);
1368
- if (searchInput) {
1369
- await delay(100);
1370
- searchInput.onBcmFocus();
1371
- searchInput.onBcmSelect();
1372
- }
1373
- }
1374
- async filterOtherList(ids) {
1375
- const checklist = (await this.getCheckedList()).nestedResult;
1376
- const filter = Generate.convertIdsToNestedData(ids, checklist);
1377
- this.returnFilterData = await listState.filterData(this._id, filter, null, true);
1378
- this.searchFound = (ids === null || ids === void 0 ? void 0 : ids.length) || 0;
1379
- this.limit = 500;
1380
- this.searchGetParents = null;
1381
- await delay(1000);
1382
- this.markForCheck();
1383
- }
1384
- async initState() {
1385
- var _a, _b, _c;
1386
- this.onClearSearch();
1387
- await listState.setValue({
1388
- id: this._id,
1389
- dataSource: this.data && snq(() => (typeof this.data == "string" ? JSON.parse(this.data) : this.data), []),
1390
- options: this,
1391
- });
1392
- const { totalRoots, totalItems } = listState.getValue(this._id);
1393
- this.totalData = totalItems;
1394
- this.totalRootData = totalRoots;
1395
- this.value = this.checkboxes ? (await this.getCheckedList()).checkedList : listState.selectedItem(this._id) ? listState.selectedItem(this._id)[0] : null;
1396
- if (!this.checkboxes) {
1397
- this.inputText = ((_a = this.value) === null || _a === void 0 ? void 0 : _a.text) || null;
1398
- }
1399
- // checkli olan subparentların indeterminate kontrolü için
1400
- if (this.checkboxes && ((_b = this.value) === null || _b === void 0 ? void 0 : _b.length) > 0) {
1401
- const checkedIDs = [];
1402
- this.value.forEach(item => {
1403
- if (!item.items || item.items.length === 0) {
1404
- checkedIDs.push(item.id);
1405
- }
1406
- });
1407
- await this.addChecked(checkedIDs, false, false);
1408
- }
1409
- await this.handleIndeterminate((_c = this.value) === null || _c === void 0 ? void 0 : _c.length, this.totalData);
1410
- await this.markForCheck();
1411
- }
1412
- async markForCheck() {
1413
- await delay(10);
1414
- this.tick = Generate.UID();
1415
- }
1416
- getOptions() {
1417
- return snq(() => listState.getValue(this._id).options, {});
1418
- }
1419
- getItems() {
1420
- if (this.isSelectedOther) {
1421
- return this.returnFilterData["checkedItems"];
1422
- }
1423
- return snq(() => listState.getData(this._id), []);
1424
- }
1425
- getLimitedItems(ids) {
1426
- return snq(() => listState.getDataPagination(this._id, this.searchResultLimit || this.limit, ids), []);
1427
- }
1428
- openGroup(parentId) {
1429
- listState.openGroup(this._id, parentId);
1430
- this.markForCheck();
1431
- }
1432
- focusItem(e) {
1433
- if (e.target.classList.contains("bcm-list__item")) {
1434
- const item = e.target;
1435
- const list = document.getElementById(`bcm-list-${this._id}`);
1436
- if (list) {
1437
- const items = list.querySelectorAll(".bcm-list__item");
1438
- if (items.length > 0) {
1439
- const selectedItem = list.querySelector(".bcm-list__item.focused");
1440
- if (selectedItem) {
1441
- selectedItem.classList.remove("focused");
1442
- }
1443
- item.classList.add("focused");
1444
- }
1445
- }
1446
- }
1447
- }
1448
- async selectedItem(itemId) {
1449
- var _a;
1450
- if (!this.checkboxes) {
1451
- this.value = listState.selectedItem(this._id, itemId) ? listState.selectedItem(this._id, itemId)[0] : null;
1452
- this.inputText = ((_a = this.value) === null || _a === void 0 ? void 0 : _a.text) || null;
1453
- this.isOpen = false;
1454
- this.markForCheck();
1455
- if (this.type == "autocomplete" && this.value) {
1456
- // await delay(100)
1457
- // this.resetCaption()
1458
- const autocompleteInput = this.getAutoCompleteInput();
1459
- if (autocompleteInput) {
1460
- setTimeout(() => {
1461
- var _a;
1462
- autocompleteInput.setValue(((_a = this.value) === null || _a === void 0 ? void 0 : _a.text) || "");
1463
- this.isOpen = false;
1464
- }, 100);
1465
- }
1466
- }
1467
- }
1468
- return Promise.resolve(this.value);
1469
- }
1470
- async checkedItem(itemId) {
1471
- const isCheckSelectAll = itemId === "select-all";
1472
- if (!isCheckSelectAll) {
1473
- listState.checkedItem(this._id, itemId);
1474
- }
1475
- else {
1476
- listState.selectAll(this._id, !this.selectAllItem.checked);
1477
- }
1478
- this.value = (await this.getCheckedList()).checkedList;
1479
- this.changeVisibleCheckeds();
1480
- this.markForCheck();
1481
- }
1482
- changeVisibleCheckeds() {
1483
- const { visibledItems } = this.returnFilterData;
1484
- this.returnFilterData = {
1485
- visibledItems,
1486
- checkedItems: (visibledItems && visibledItems.filter(item => item.checked)) || [],
1487
- };
1488
- }
1489
- getAutoCompleteInput() {
1490
- return document.getElementById(`bcm-list-input-tag-container-${this._id}-autocomplete-input`);
1491
- }
1492
- dataScrollEvent(event) {
1493
- let count = 0;
1494
- let io = new IntersectionObserver((data) => {
1495
- if (count === 0) {
1496
- count++;
1497
- if (data[0].isIntersecting) {
1498
- this.limit += 15;
1499
- this.searchResultLimit += 15;
1500
- io.disconnect();
1501
- io = null;
1502
- }
1503
- }
1504
- }, this.options);
1505
- io.observe(event.target.lastElementChild);
1506
- }
1507
- async calculateLocation() {
1508
- var _a, _b;
1509
- if (this.type == "select" || this.type == "autocomplete" || this.linkedComponent) {
1510
- const list = document.getElementById(`bcm-list-${this._id}`);
1511
- // list && (list.style.height = '256px') //sebebi neydi ki!
1512
- var placement = this.placement;
1513
- const targetElementId = this.linkedComponent ? this.linkedComponent : `bcm-list-input-${this._id}`;
1514
- const targetElement = document.getElementById(targetElementId);
1515
- if (list && targetElement) {
1516
- getPlacement(list, targetElement, placement, (place) => (placement = place));
1517
- await delay(10);
1518
- let pos = setPosition(placement, targetElement);
1519
- let captionAreaHeight = 0;
1520
- let labelAreaHeight = 0;
1521
- if (this.linkedComponent) {
1522
- const linked = document.getElementById(this.linkedComponent);
1523
- if (linked) {
1524
- if (!linked["noCaption"]) {
1525
- const captionArea = ((_a = linked.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(".bcm-caption-area")) || linked.querySelector(".bcm-caption-area");
1526
- if (captionArea) {
1527
- captionAreaHeight = captionArea.offsetHeight || captionArea.clientHeight;
1528
- }
1529
- }
1530
- const labelArea = ((_b = linked.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector(".bcm-label")) || linked.querySelector(".bcm-label");
1531
- if (labelArea) {
1532
- labelAreaHeight = labelArea.offsetHeight || labelArea.clientHeight;
1533
- }
1534
- }
1535
- }
1536
- if (this.fullWidth) {
1537
- list.style.width = targetElement.offsetWidth + "px";
1538
- }
1539
- else {
1540
- list.style.width = this.width || "auto";
1541
- }
1542
- if (this.height.indexOf("%") > -1) {
1543
- list.style.height = NumberHelper.toNumber(this.height) * 0.01 * window.innerHeight - pos[0] - 50 + "px";
1544
- }
1545
- else {
1546
- list.style.height = this.height;
1547
- }
1548
- list.style.minHeight = this.minHeight;
1549
- // const calculatedMaxHeight = window.innerHeight - pos[0] - 50;
1550
- const calculatedMaxHeight = placement.split("-")[0] == "top" ? window.innerHeight - (window.innerHeight - pos[0]) - 50 : window.innerHeight - pos[0] - 50;
1551
- if (this.maxHeight.indexOf("%") > -1) {
1552
- list.style.maxHeight = NumberHelper.toNumber(this.maxHeight) * 0.01 * calculatedMaxHeight + "px";
1553
- }
1554
- else {
1555
- list.style.maxHeight = NumberHelper.toNumber(this.maxHeight) < calculatedMaxHeight ? this.maxHeight : calculatedMaxHeight + "px";
1556
- }
1557
- getPlacement(list, targetElement, placement, (place) => (placement = place));
1558
- await delay(10);
1559
- pos = setPosition(placement, targetElement);
1560
- list.style.top = (placement.split("-")[0] == "top" ? pos[0] - list.offsetHeight + labelAreaHeight : pos[0] - captionAreaHeight) + "px";
1561
- // list.style.left = pos[1] + 'px';
1562
- list.style.left = placement.split("-")[1] == "end" ? pos[1] - list.offsetWidth + "px" : pos[1] + "px";
1563
- list.classList.toggle("bcm-list--top", placement.split("-")[0] == "top");
1564
- this.calculatedViewport = true;
1565
- }
1566
- }
1567
- }
1568
- handleTransitionEnd(e) {
1569
- const { isOpen, type } = this;
1570
- const propertName = e === null || e === void 0 ? void 0 : e.propertyName;
1571
- if (isOpen && type == "select" && propertName == "transform") {
1572
- this.listOpen.emit();
1573
- }
1574
- }
1575
- render() {
1576
- const { checkboxes, treeview, label, size, disabled, readonly, required, hidden, fullWidth, searchable } = this.getOptions();
1577
- const hostClasses = classnames("bcm-list", `bcm-list__size-${size}`, `bcm-list__${this.type}`, size === "large" ? "size-3" : "size-2", {
1578
- "error": this.captionType == Bcm$1.Status.error,
1579
- "full-width": fullWidth,
1580
- "bcm-list__linked": this.linkedComponent,
1581
- hidden,
1582
- readonly,
1583
- disabled,
1584
- });
1585
- const bcmListContainer = classnames("bcm-list__container", this.linkedComponent ? "bcm-list__type-linked-component" : `bcm-list__type-${this.type}`, {
1586
- "is-open": this.isOpen && this.calculatedViewport,
1587
- "error": this.captionType == Bcm$1.Status.error,
1588
- "full-width": fullWidth,
1589
- hidden,
1590
- readonly,
1591
- disabled,
1592
- });
1593
- const bcmListInput = classnames("bcm-list__input");
1594
- const openedType = this.type == "select" || this.type == "autocomplete" || this.linkedComponent;
1595
- return (h(Host, { class: hostClasses, tabindex: "0", style: {
1596
- "--width": fullWidth ? "100%" : this.width,
1597
- "--height": openedType ? "100%" : this.height,
1598
- "--max-height": openedType ? "inherit" : this.maxHeight,
1599
- "--min-height": openedType ? "inherit" : this.minHeight,
1600
- } }, h("div", { id: `bcm-list-label-${this._id}`, class: "bcm-list__label" }, label && (h("div", null, h("bcm-label", { tooltip: this.tooltip, size: this.size, type: this.captionType, value: label, required: required, htmlFor: this._id })))), this.type == "select" && (h("div", { id: `bcm-list-input-${this._id}`, class: bcmListInput }, h("span", { class: classnames("bcm-list__input-container", { "type-single": !checkboxes, "value-empty": !this.value }) }, this.checkboxes ? (this.value && this.value.length > 0 ? (h("bcm-rc-overflow", { data: this.tagData, maxCount: this.tagCount })) : (h("span", { class: "bcm-list__input-placeholder" }, this.placeholder))) : this.value ? (this.inputText) : (h("span", { class: "bcm-list__input-placeholder" }, this.placeholder))), h("span", { class: classnames("bcm-list__input-buttons", {
1601
- disabled: disabled,
1602
- }) }, this.clearable && this.value && (h("div", { class: "bcm-list__input-buttons-button" }, h("bcm-icon", { icon: "fal fa-times", onClick: e => !disabled && this.setClear(e) }))), h("div", { class: `bcm-list__input-buttons-button caret-is ${this.isOpen && this.calculatedViewport && "caret-is-open"}` }, h("bcm-icon", { icon: `far fa-angle-down` }))))), this.type === "autocomplete" && (h("div", { id: `bcm-list-input-${this._id}`, class: classnames(bcmListInput, { "bcm-list__input-autocomplete": this.type == "autocomplete" }) }, h("span", { class: "bcm-list__input-container", id: `bcm-list-input-tag-container-${this._id}` }, this.checkboxes && h("span", { class: "bcm-list__input-tag-container", id: `bcm-list-input-tag-container-${this._id}-autocomplete` }), h("bcm-search", { id: `bcm-list-input-tag-container-${this._id}-autocomplete-input`, class: "bcm-list__autocomplete", data: this.data, clearable: true, "full-width": true, "no-caption": true, placeholder: this.placeholder })))), h(ListTemplate, { highlight: this.highlightText, searchable: this.type == "autocomplete" ? false : searchable, bcmListContainer: bcmListContainer, checkboxes: checkboxes, treeview: treeview, infoFooter: this.infoFooter, value: this.value, totalData: this.totalData, searchFound: this.searchFound, variableText: this.variableText, searchPlaceholder: this.searchPlaceholder, minSearchLength: this.minSearchLength, searchIsOnlyChilds: this.searchIsOnlyChilds, _id: this._id, checkAll: this.checkAll, data: this.getItems(), width: this.width, height: this.height, size: this.size, selectAllItem: this.selectAllItem, onScrollEvent: e => this.dataScrollEvent(e), items: this.getLimitedItems(this.searchGetParents), selectedItem: itemId => this.selectedItem(itemId), checkedItem: itemId => this.checkedItem(itemId), openGroup: parentId => this.openGroup(parentId), focusItem: itemId => this.focusItem(itemId), emptyText: this.emptyText, emptyIcon: this.emptyIcon, handleTransitionEnd: e => this.handleTransitionEnd(e) }), h(CaptionTemplate, { noCaption: this.noCaption, captionType: this.captionType, captionError: this.captionError, caption: this.caption })));
1603
- }
1604
- get el() { return getElement(this); }
1605
- static get watchers() { return {
1606
- "_id": ["watchId"],
1607
- "value": ["handleValueChange"],
1608
- "returnFilterData": ["watchReturnFilterData"],
1609
- "isOpen": ["handleOpen"],
1610
- "data": ["dataChanged"]
1611
- }; }
1612
- };
1613
- __decorate([
1614
- IsLoad()
1615
- ], BcmList.prototype, "el", void 0);
1616
- __decorate([
1617
- JsonParse("data", true)
1618
- ], BcmList.prototype, "dataChanged", null);
1619
- BcmList.style = listCss;
1620
-
1621
- function _extends() {
1622
- _extends = Object.assign ? Object.assign.bind() : function (target) {
1623
- for (var i = 1; i < arguments.length; i++) {
1624
- var source = arguments[i];
1625
- for (var key in source) {
1626
- if (Object.prototype.hasOwnProperty.call(source, key)) {
1627
- target[key] = source[key];
1628
- }
1629
- }
1630
- }
1631
- return target;
1632
- };
1633
- return _extends.apply(this, arguments);
1634
- }
1635
-
1636
- function _typeof(obj) {
1637
- "@babel/helpers - typeof";
1638
-
1639
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
1640
- return typeof obj;
1641
- } : function (obj) {
1642
- return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
1643
- }, _typeof(obj);
1644
- }
1645
-
1646
- function _toPrimitive(input, hint) {
1647
- if (_typeof(input) !== "object" || input === null) return input;
1648
- var prim = input[Symbol.toPrimitive];
1649
- if (prim !== undefined) {
1650
- var res = prim.call(input, hint || "default");
1651
- if (_typeof(res) !== "object") return res;
1652
- throw new TypeError("@@toPrimitive must return a primitive value.");
1653
- }
1654
- return (hint === "string" ? String : Number)(input);
1655
- }
1656
-
1657
- function _toPropertyKey(arg) {
1658
- var key = _toPrimitive(arg, "string");
1659
- return _typeof(key) === "symbol" ? key : String(key);
1660
- }
1661
-
1662
- function _defineProperty(obj, key, value) {
1663
- key = _toPropertyKey(key);
1664
- if (key in obj) {
1665
- Object.defineProperty(obj, key, {
1666
- value: value,
1667
- enumerable: true,
1668
- configurable: true,
1669
- writable: true
1670
- });
1671
- } else {
1672
- obj[key] = value;
1673
- }
1674
- return obj;
1675
- }
1676
-
1677
- function ownKeys(object, enumerableOnly) {
1678
- var keys = Object.keys(object);
1679
- if (Object.getOwnPropertySymbols) {
1680
- var symbols = Object.getOwnPropertySymbols(object);
1681
- enumerableOnly && (symbols = symbols.filter(function (sym) {
1682
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
1683
- })), keys.push.apply(keys, symbols);
1684
- }
1685
- return keys;
1686
- }
1687
- function _objectSpread2(target) {
1688
- for (var i = 1; i < arguments.length; i++) {
1689
- var source = null != arguments[i] ? arguments[i] : {};
1690
- i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
1691
- _defineProperty(target, key, source[key]);
1692
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
1693
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
1694
- });
1695
- }
1696
- return target;
1697
- }
1698
-
1699
- function _arrayWithHoles(arr) {
1700
- if (Array.isArray(arr)) return arr;
1701
- }
1702
-
1703
- function _iterableToArrayLimit(arr, i) {
1704
- var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"];
1705
- if (null != _i) {
1706
- var _s,
1707
- _e,
1708
- _x,
1709
- _r,
1710
- _arr = [],
1711
- _n = !0,
1712
- _d = !1;
1713
- try {
1714
- if (_x = (_i = _i.call(arr)).next, 0 === i) {
1715
- if (Object(_i) !== _i) return;
1716
- _n = !1;
1717
- } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);
1718
- } catch (err) {
1719
- _d = !0, _e = err;
1720
- } finally {
1721
- try {
1722
- if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return;
1723
- } finally {
1724
- if (_d) throw _e;
1725
- }
1726
- }
1727
- return _arr;
1728
- }
1729
- }
1730
-
1731
- function _arrayLikeToArray(arr, len) {
1732
- if (len == null || len > arr.length) len = arr.length;
1733
- for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
1734
- return arr2;
1735
- }
1736
-
1737
- function _unsupportedIterableToArray(o, minLen) {
1738
- if (!o) return;
1739
- if (typeof o === "string") return _arrayLikeToArray(o, minLen);
1740
- var n = Object.prototype.toString.call(o).slice(8, -1);
1741
- if (n === "Object" && o.constructor) n = o.constructor.name;
1742
- if (n === "Map" || n === "Set") return Array.from(o);
1743
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
1744
- }
1745
-
1746
- function _nonIterableRest() {
1747
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
1748
- }
1749
-
1750
- function _slicedToArray(arr, i) {
1751
- return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
1752
- }
1753
-
1754
- function _objectWithoutPropertiesLoose(source, excluded) {
1755
- if (source == null) return {};
1756
- var target = {};
1757
- var sourceKeys = Object.keys(source);
1758
- var key, i;
1759
- for (i = 0; i < sourceKeys.length; i++) {
1760
- key = sourceKeys[i];
1761
- if (excluded.indexOf(key) >= 0) continue;
1762
- target[key] = source[key];
1763
- }
1764
- return target;
1765
- }
1766
-
1767
- function _objectWithoutProperties(source, excluded) {
1768
- if (source == null) return {};
1769
- var target = _objectWithoutPropertiesLoose(source, excluded);
1770
- var key, i;
1771
- if (Object.getOwnPropertySymbols) {
1772
- var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
1773
- for (i = 0; i < sourceSymbolKeys.length; i++) {
1774
- key = sourceSymbolKeys[i];
1775
- if (excluded.indexOf(key) >= 0) continue;
1776
- if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
1777
- target[key] = source[key];
1778
- }
1779
- }
1780
- return target;
1781
- }
1782
-
1783
- var _excluded$2 = ["prefixCls", "invalidate", "item", "renderItem", "responsive", "responsiveDisabled", "registerSize", "itemKey", "className", "style", "children", "display", "order", "component"];
1784
- // Use shared variable to save bundle size
1785
- var UNDEFINED = undefined;
1786
- function InternalItem(props, ref) {
1787
- var prefixCls = props.prefixCls,
1788
- invalidate = props.invalidate,
1789
- item = props.item,
1790
- renderItem = props.renderItem,
1791
- responsive = props.responsive,
1792
- responsiveDisabled = props.responsiveDisabled,
1793
- registerSize = props.registerSize,
1794
- itemKey = props.itemKey,
1795
- className = props.className,
1796
- style = props.style,
1797
- children = props.children,
1798
- display = props.display,
1799
- order = props.order,
1800
- _props$component = props.component,
1801
- Component = _props$component === void 0 ? 'div' : _props$component,
1802
- restProps = _objectWithoutProperties(props, _excluded$2);
1803
- var mergedHidden = responsive && !display;
1804
- // ================================ Effect ================================
1805
- function internalRegisterSize(width) {
1806
- registerSize(itemKey, width);
1807
- }
1808
- react.useEffect(function () {
1809
- return function () {
1810
- internalRegisterSize(null);
1811
- };
1812
- }, []);
1813
- // ================================ Render ================================
1814
- var childNode = renderItem && item !== UNDEFINED ? renderItem(item) : children;
1815
- var overflowStyle;
1816
- if (!invalidate) {
1817
- overflowStyle = {
1818
- opacity: mergedHidden ? 0 : 1,
1819
- height: mergedHidden ? 0 : UNDEFINED,
1820
- overflowY: mergedHidden ? 'hidden' : UNDEFINED,
1821
- order: responsive ? order : UNDEFINED,
1822
- pointerEvents: mergedHidden ? 'none' : UNDEFINED,
1823
- position: mergedHidden ? 'absolute' : UNDEFINED
1824
- };
1825
- }
1826
- var overflowProps = {};
1827
- if (mergedHidden) {
1828
- overflowProps['aria-hidden'] = true;
1829
- }
1830
- var itemNode = /*#__PURE__*/react.createElement(Component, _extends({
1831
- className: classnames(!invalidate && prefixCls, className),
1832
- style: _objectSpread2(_objectSpread2({}, overflowStyle), style)
1833
- }, overflowProps, restProps, {
1834
- ref: ref
1835
- }), childNode);
1836
- if (responsive) {
1837
- itemNode = /*#__PURE__*/react.createElement(RefResizeObserver, {
1838
- onResize: function onResize(_ref) {
1839
- var offsetWidth = _ref.offsetWidth;
1840
- internalRegisterSize(offsetWidth);
1841
- },
1842
- disabled: responsiveDisabled
1843
- }, itemNode);
1844
- }
1845
- return itemNode;
1846
- }
1847
- var Item = /*#__PURE__*/react.forwardRef(InternalItem);
1848
- Item.displayName = 'Item';
1849
-
1850
- function channelUpdate(callback) {
1851
- if (typeof MessageChannel === 'undefined') {
1852
- wrapperRaf(callback);
1853
- } else {
1854
- var channel = new MessageChannel();
1855
- channel.port1.onmessage = function () {
1856
- return callback();
1857
- };
1858
- channel.port2.postMessage(undefined);
1859
- }
1860
- }
1861
-
1862
- /**
1863
- * Batcher for record any `useEffectState` need update.
1864
- */
1865
- function useBatcher() {
1866
- // Updater Trigger
1867
- var updateFuncRef = react.useRef(null);
1868
- // Notify update
1869
- var notifyEffectUpdate = function notifyEffectUpdate(callback) {
1870
- if (!updateFuncRef.current) {
1871
- updateFuncRef.current = [];
1872
- channelUpdate(function () {
1873
- reactDom.unstable_batchedUpdates(function () {
1874
- updateFuncRef.current.forEach(function (fn) {
1875
- fn();
1876
- });
1877
- updateFuncRef.current = null;
1878
- });
1879
- });
1880
- }
1881
- updateFuncRef.current.push(callback);
1882
- };
1883
- return notifyEffectUpdate;
1884
- }
1885
- /**
1886
- * Trigger state update by `useLayoutEffect` to save perf.
1887
- */
1888
- function useEffectState(notifyEffectUpdate, defaultValue) {
1889
- // Value
1890
- var _React$useState = react.useState(defaultValue),
1891
- _React$useState2 = _slicedToArray(_React$useState, 2),
1892
- stateValue = _React$useState2[0],
1893
- setStateValue = _React$useState2[1];
1894
- // Set State
1895
- var setEffectVal = useEvent(function (nextValue) {
1896
- notifyEffectUpdate(function () {
1897
- setStateValue(nextValue);
1898
- });
1899
- });
1900
- return [stateValue, setEffectVal];
1901
- }
1902
-
1903
- var OverflowContext = /*#__PURE__*/react.createContext(null);
1904
-
1905
- var _excluded$1 = ["component"],
1906
- _excluded2 = ["className"],
1907
- _excluded3 = ["className"];
1908
- var InternalRawItem = function InternalRawItem(props, ref) {
1909
- var context = react.useContext(OverflowContext);
1910
- // Render directly when context not provided
1911
- if (!context) {
1912
- var _props$component = props.component,
1913
- Component = _props$component === void 0 ? 'div' : _props$component,
1914
- _restProps = _objectWithoutProperties(props, _excluded$1);
1915
- return /*#__PURE__*/react.createElement(Component, _extends({}, _restProps, {
1916
- ref: ref
1917
- }));
1918
- }
1919
- var contextClassName = context.className,
1920
- restContext = _objectWithoutProperties(context, _excluded2);
1921
- var className = props.className,
1922
- restProps = _objectWithoutProperties(props, _excluded3);
1923
- // Do not pass context to sub item to avoid multiple measure
1924
- return /*#__PURE__*/react.createElement(OverflowContext.Provider, {
1925
- value: null
1926
- }, /*#__PURE__*/react.createElement(Item, _extends({
1927
- ref: ref,
1928
- className: classnames(contextClassName, className)
1929
- }, restContext, restProps)));
1930
- };
1931
- var RawItem = /*#__PURE__*/react.forwardRef(InternalRawItem);
1932
- RawItem.displayName = 'RawItem';
1933
-
1934
- var _excluded = ["prefixCls", "data", "renderItem", "renderRawItem", "itemKey", "itemWidth", "ssr", "style", "className", "maxCount", "renderRest", "renderRawRest", "suffix", "component", "itemComponent", "onVisibleChange"];
1935
- var RESPONSIVE = 'responsive';
1936
- var INVALIDATE = 'invalidate';
1937
- function defaultRenderRest(omittedItems) {
1938
- return "+ ".concat(omittedItems.length, " ...");
1939
- }
1940
- function Overflow(props, ref) {
1941
- var _props$prefixCls = props.prefixCls,
1942
- prefixCls = _props$prefixCls === void 0 ? 'rc-overflow' : _props$prefixCls,
1943
- _props$data = props.data,
1944
- data = _props$data === void 0 ? [] : _props$data,
1945
- renderItem = props.renderItem,
1946
- renderRawItem = props.renderRawItem,
1947
- itemKey = props.itemKey,
1948
- _props$itemWidth = props.itemWidth,
1949
- itemWidth = _props$itemWidth === void 0 ? 10 : _props$itemWidth,
1950
- ssr = props.ssr,
1951
- style = props.style,
1952
- className = props.className,
1953
- maxCount = props.maxCount,
1954
- renderRest = props.renderRest,
1955
- renderRawRest = props.renderRawRest,
1956
- suffix = props.suffix,
1957
- _props$component = props.component,
1958
- Component = _props$component === void 0 ? 'div' : _props$component,
1959
- itemComponent = props.itemComponent,
1960
- onVisibleChange = props.onVisibleChange,
1961
- restProps = _objectWithoutProperties(props, _excluded);
1962
- var fullySSR = ssr === 'full';
1963
- var notifyEffectUpdate = useBatcher();
1964
- var _useEffectState = useEffectState(notifyEffectUpdate, null),
1965
- _useEffectState2 = _slicedToArray(_useEffectState, 2),
1966
- containerWidth = _useEffectState2[0],
1967
- setContainerWidth = _useEffectState2[1];
1968
- var mergedContainerWidth = containerWidth || 0;
1969
- var _useEffectState3 = useEffectState(notifyEffectUpdate, new Map()),
1970
- _useEffectState4 = _slicedToArray(_useEffectState3, 2),
1971
- itemWidths = _useEffectState4[0],
1972
- setItemWidths = _useEffectState4[1];
1973
- var _useEffectState5 = useEffectState(notifyEffectUpdate, 0),
1974
- _useEffectState6 = _slicedToArray(_useEffectState5, 2),
1975
- prevRestWidth = _useEffectState6[0],
1976
- setPrevRestWidth = _useEffectState6[1];
1977
- var _useEffectState7 = useEffectState(notifyEffectUpdate, 0),
1978
- _useEffectState8 = _slicedToArray(_useEffectState7, 2),
1979
- restWidth = _useEffectState8[0],
1980
- setRestWidth = _useEffectState8[1];
1981
- var _useEffectState9 = useEffectState(notifyEffectUpdate, 0),
1982
- _useEffectState10 = _slicedToArray(_useEffectState9, 2),
1983
- suffixWidth = _useEffectState10[0],
1984
- setSuffixWidth = _useEffectState10[1];
1985
- var _useState = react.useState(null),
1986
- _useState2 = _slicedToArray(_useState, 2),
1987
- suffixFixedStart = _useState2[0],
1988
- setSuffixFixedStart = _useState2[1];
1989
- var _useState3 = react.useState(null),
1990
- _useState4 = _slicedToArray(_useState3, 2),
1991
- displayCount = _useState4[0],
1992
- setDisplayCount = _useState4[1];
1993
- var mergedDisplayCount = react.useMemo(function () {
1994
- if (displayCount === null && fullySSR) {
1995
- return Number.MAX_SAFE_INTEGER;
1996
- }
1997
- return displayCount || 0;
1998
- }, [displayCount, containerWidth]);
1999
- var _useState5 = react.useState(false),
2000
- _useState6 = _slicedToArray(_useState5, 2),
2001
- restReady = _useState6[0],
2002
- setRestReady = _useState6[1];
2003
- var itemPrefixCls = "".concat(prefixCls, "-item");
2004
- // Always use the max width to avoid blink
2005
- var mergedRestWidth = Math.max(prevRestWidth, restWidth);
2006
- // ================================= Data =================================
2007
- var isResponsive = maxCount === RESPONSIVE;
2008
- var shouldResponsive = data.length && isResponsive;
2009
- var invalidate = maxCount === INVALIDATE;
2010
- /**
2011
- * When is `responsive`, we will always render rest node to get the real width of it for calculation
2012
- */
2013
- var showRest = shouldResponsive || typeof maxCount === 'number' && data.length > maxCount;
2014
- var mergedData = react.useMemo(function () {
2015
- var items = data;
2016
- if (shouldResponsive) {
2017
- if (containerWidth === null && fullySSR) {
2018
- items = data;
2019
- } else {
2020
- items = data.slice(0, Math.min(data.length, mergedContainerWidth / itemWidth));
2021
- }
2022
- } else if (typeof maxCount === 'number') {
2023
- items = data.slice(0, maxCount);
2024
- }
2025
- return items;
2026
- }, [data, itemWidth, containerWidth, maxCount, shouldResponsive]);
2027
- var omittedItems = react.useMemo(function () {
2028
- if (shouldResponsive) {
2029
- return data.slice(mergedDisplayCount + 1);
2030
- }
2031
- return data.slice(mergedData.length);
2032
- }, [data, mergedData, shouldResponsive, mergedDisplayCount]);
2033
- // ================================= Item =================================
2034
- var getKey = react.useCallback(function (item, index) {
2035
- var _ref;
2036
- if (typeof itemKey === 'function') {
2037
- return itemKey(item);
2038
- }
2039
- return (_ref = itemKey && (item === null || item === void 0 ? void 0 : item[itemKey])) !== null && _ref !== void 0 ? _ref : index;
2040
- }, [itemKey]);
2041
- var mergedRenderItem = react.useCallback(renderItem || function (item) {
2042
- return item;
2043
- }, [renderItem]);
2044
- function updateDisplayCount(count, suffixFixedStartVal, notReady) {
2045
- // React 18 will sync render even when the value is same in some case.
2046
- // We take `mergedData` as deps which may cause dead loop if it's dynamic generate.
2047
- // ref: https://github.com/ant-design/ant-design/issues/36559
2048
- if (displayCount === count && (suffixFixedStartVal === undefined || suffixFixedStartVal === suffixFixedStart)) {
2049
- return;
2050
- }
2051
- setDisplayCount(count);
2052
- if (!notReady) {
2053
- setRestReady(count < data.length - 1);
2054
- onVisibleChange === null || onVisibleChange === void 0 ? void 0 : onVisibleChange(count);
2055
- }
2056
- if (suffixFixedStartVal !== undefined) {
2057
- setSuffixFixedStart(suffixFixedStartVal);
2058
- }
2059
- }
2060
- // ================================= Size =================================
2061
- function onOverflowResize(_, element) {
2062
- setContainerWidth(element.clientWidth);
2063
- }
2064
- function registerSize(key, width) {
2065
- setItemWidths(function (origin) {
2066
- var clone = new Map(origin);
2067
- if (width === null) {
2068
- clone.delete(key);
2069
- } else {
2070
- clone.set(key, width);
2071
- }
2072
- return clone;
2073
- });
2074
- }
2075
- function registerOverflowSize(_, width) {
2076
- setRestWidth(width);
2077
- setPrevRestWidth(restWidth);
2078
- }
2079
- function registerSuffixSize(_, width) {
2080
- setSuffixWidth(width);
2081
- }
2082
- // ================================ Effect ================================
2083
- function getItemWidth(index) {
2084
- return itemWidths.get(getKey(mergedData[index], index));
2085
- }
2086
- useLayoutEffect(function () {
2087
- if (mergedContainerWidth && typeof mergedRestWidth === 'number' && mergedData) {
2088
- var totalWidth = suffixWidth;
2089
- var len = mergedData.length;
2090
- var lastIndex = len - 1;
2091
- // When data count change to 0, reset this since not loop will reach
2092
- if (!len) {
2093
- updateDisplayCount(0, null);
2094
- return;
2095
- }
2096
- for (var i = 0; i < len; i += 1) {
2097
- var currentItemWidth = getItemWidth(i);
2098
- // Fully will always render
2099
- if (fullySSR) {
2100
- currentItemWidth = currentItemWidth || 0;
2101
- }
2102
- // Break since data not ready
2103
- if (currentItemWidth === undefined) {
2104
- updateDisplayCount(i - 1, undefined, true);
2105
- break;
2106
- }
2107
- // Find best match
2108
- totalWidth += currentItemWidth;
2109
- if (
2110
- // Only one means `totalWidth` is the final width
2111
- lastIndex === 0 && totalWidth <= mergedContainerWidth ||
2112
- // Last two width will be the final width
2113
- i === lastIndex - 1 && totalWidth + getItemWidth(lastIndex) <= mergedContainerWidth) {
2114
- // Additional check if match the end
2115
- updateDisplayCount(lastIndex, null);
2116
- break;
2117
- } else if (totalWidth + mergedRestWidth > mergedContainerWidth) {
2118
- // Can not hold all the content to show rest
2119
- updateDisplayCount(i - 1, totalWidth - currentItemWidth - suffixWidth + restWidth);
2120
- break;
2121
- }
2122
- }
2123
- if (suffix && getItemWidth(0) + suffixWidth > mergedContainerWidth) {
2124
- setSuffixFixedStart(null);
2125
- }
2126
- }
2127
- }, [mergedContainerWidth, itemWidths, restWidth, suffixWidth, getKey, mergedData]);
2128
- // ================================ Render ================================
2129
- var displayRest = restReady && !!omittedItems.length;
2130
- var suffixStyle = {};
2131
- if (suffixFixedStart !== null && shouldResponsive) {
2132
- suffixStyle = {
2133
- position: 'absolute',
2134
- left: suffixFixedStart,
2135
- top: 0
2136
- };
2137
- }
2138
- var itemSharedProps = {
2139
- prefixCls: itemPrefixCls,
2140
- responsive: shouldResponsive,
2141
- component: itemComponent,
2142
- invalidate: invalidate
2143
- };
2144
- // >>>>> Choice render fun by `renderRawItem`
2145
- var internalRenderItemNode = renderRawItem ? function (item, index) {
2146
- var key = getKey(item, index);
2147
- return /*#__PURE__*/react.createElement(OverflowContext.Provider, {
2148
- key: key,
2149
- value: _objectSpread2(_objectSpread2({}, itemSharedProps), {}, {
2150
- order: index,
2151
- item: item,
2152
- itemKey: key,
2153
- registerSize: registerSize,
2154
- display: index <= mergedDisplayCount
2155
- })
2156
- }, renderRawItem(item, index));
2157
- } : function (item, index) {
2158
- var key = getKey(item, index);
2159
- return /*#__PURE__*/react.createElement(Item, _extends({}, itemSharedProps, {
2160
- order: index,
2161
- key: key,
2162
- item: item,
2163
- renderItem: mergedRenderItem,
2164
- itemKey: key,
2165
- registerSize: registerSize,
2166
- display: index <= mergedDisplayCount
2167
- }));
2168
- };
2169
- // >>>>> Rest node
2170
- var restNode;
2171
- var restContextProps = {
2172
- order: displayRest ? mergedDisplayCount : Number.MAX_SAFE_INTEGER,
2173
- className: "".concat(itemPrefixCls, "-rest"),
2174
- registerSize: registerOverflowSize,
2175
- display: displayRest
2176
- };
2177
- if (!renderRawRest) {
2178
- var mergedRenderRest = renderRest || defaultRenderRest;
2179
- restNode = /*#__PURE__*/react.createElement(Item, _extends({}, itemSharedProps, restContextProps), typeof mergedRenderRest === 'function' ? mergedRenderRest(omittedItems) : mergedRenderRest);
2180
- } else if (renderRawRest) {
2181
- restNode = /*#__PURE__*/react.createElement(OverflowContext.Provider, {
2182
- value: _objectSpread2(_objectSpread2({}, itemSharedProps), restContextProps)
2183
- }, renderRawRest(omittedItems));
2184
- }
2185
- var overflowNode = /*#__PURE__*/react.createElement(Component, _extends({
2186
- className: classnames(!invalidate && prefixCls, className),
2187
- style: style,
2188
- ref: ref
2189
- }, restProps), mergedData.map(internalRenderItemNode), showRest ? restNode : null, suffix && /*#__PURE__*/react.createElement(Item, _extends({}, itemSharedProps, {
2190
- responsive: isResponsive,
2191
- responsiveDisabled: !shouldResponsive,
2192
- order: mergedDisplayCount,
2193
- className: "".concat(itemPrefixCls, "-suffix"),
2194
- registerSize: registerSuffixSize,
2195
- display: true,
2196
- style: suffixStyle
2197
- }), suffix));
2198
- if (isResponsive) {
2199
- overflowNode = /*#__PURE__*/react.createElement(RefResizeObserver, {
2200
- onResize: onOverflowResize,
2201
- disabled: !shouldResponsive
2202
- }, overflowNode);
2203
- }
2204
- return overflowNode;
2205
- }
2206
- var ForwardOverflow = /*#__PURE__*/react.forwardRef(Overflow);
2207
- ForwardOverflow.displayName = 'Overflow';
2208
- ForwardOverflow.Item = RawItem;
2209
- ForwardOverflow.RESPONSIVE = RESPONSIVE;
2210
- ForwardOverflow.INVALIDATE = INVALIDATE;
2211
-
2212
- const rcOverflowCss = "@import url(\"https://fonts.googleapis.com/css?family=Roboto:400,500\");.size-1{font-size:12px;line-height:20px}.size-2{font-size:14px;line-height:22px}.size-3{font-size:16px;line-height:24px}.size-4{font-size:20px;line-height:28px}.size-5{font-size:24px;line-height:32px}.size-6{font-size:30px;line-height:38px}.size-7{font-size:38px;line-height:46px}.size-8{font-size:46px;line-height:54px}.size-9{font-size:56px;line-height:64px}.weight-regular{font-weight:400}.weight-semibold{font-weight:500}.input-size-large{height:40px}.input-size-medium{height:32px}.input-size-small{height:24px}.resize-none textarea{resize:none}.resize-vertical textarea{resize:vertical}.resize-auto textarea{height:auto;resize:none}.textarea-size-large{padding:4px 0 0 4px;min-height:40px}.textarea-size-large .bcm-input-element{min-height:calc((40px - 8px) + 2px)}.textarea-size-large .input-clear-button{height:calc( 40px - 16px );top:8px;padding:0;margin-right:8px}.textarea-size-medium{padding:4px 0 0 4px;min-height:32px}.textarea-size-medium .bcm-input-element{min-height:calc((32px - 8px) + 2px)}.textarea-size-medium .input-clear-button{height:calc( 32px - 16px );top:8px;padding:0;margin-right:8px}.textarea-size-small{padding:0px 0 0 4px;min-height:24px}.textarea-size-small .bcm-input-element{min-height:calc((24px - 8px) + 2px)}.textarea-size-small .input-clear-button{height:calc( 24px - 16px );top:8px;padding:0;margin-right:8px}.rc-overflow{display:flex;flex-direction:row;flex-wrap:nowrap;width:100%}.rc-overflow-item{transition:all 0.3s ease;padding:0 2px;display:flex;align-items:center;justify-content:center}";
2213
-
2214
- const BcmRcOverflow = class {
2215
- constructor(hostRef) {
2216
- registerInstance(this, hostRef);
2217
- this.selectOtherTag = createEvent(this, "bcm-select-other-tag", 7);
2218
- this.selectTag = createEvent(this, "bcm-select-tag", 7);
2219
- this.deleteTag = createEvent(this, "bcm-delete-tag", 7);
2220
- this.renderItem = item => {
2221
- return react.createElement("bcm-tooltip", {
2222
- placement: "bottom",
2223
- message: item.text,
2224
- trigger: "hover",
2225
- }, react.createElement("div", {
2226
- id: item.value + "-tag",
2227
- className: "bcm-tag",
2228
- onClick: ({ target }) => this.onClickControl(target, item, false),
2229
- }, react.createElement("span", { className: "bcm-tag__content dismissable" },
2230
- // .bcm-tag__content span {
2231
- // display: block;
2232
- // max-width: 38px;
2233
- // white-space: nowrap;
2234
- // overflow: hidden;
2235
- // text-overflow: ellipsis;
2236
- react.createElement("div", { className: "value tw-block tw-max-w-[38px] tw-overflow-hidden tw-overflow-ellipsis tw-whitespace-nowrap" }, item.text), react.createElement("span", {
2237
- className: "right close-button",
2238
- }, react.createElement("bcm-icon", {
2239
- icon: "fa fa-times",
2240
- })))));
2241
- };
2242
- this.renderRest = items => {
2243
- const titles = (items === null || items === void 0 ? void 0 : items.sort((a, b) => +a.ct - +b.ct).slice(0, 15).map(item => StringHelper.textLimitter(item.text, 40, true)).toString().split(",").join("\r\n")) + (items.length > 15 ? "\r\n..." : "");
2244
- return react.createElement("bcm-tooltip", {
2245
- placement: "bottom",
2246
- message: titles,
2247
- trigger: "hover",
2248
- }, react.createElement("div", {
2249
- className: "bcm-tag bcm-tag--other",
2250
- onClick: ({ target }) => this.onClickControl(target, items, true),
2251
- }, react.createElement("span", { className: `bcm-tag__content dismissable ${this.checked ? "checkable checked" : ""}` }, react.createElement("span", { className: "value" }, `+${items === null || items === void 0 ? void 0 : items.length}`), react.createElement("span", { className: "right close-button" }, react.createElement("bcm-icon", {
2252
- icon: "fa fa-times",
2253
- })))));
2254
- };
2255
- this._id = Generate.UID();
2256
- this.maxCount = 1;
2257
- this.data = [];
2258
- this.checked = false;
2259
- }
2260
- isClickDismiss(e) {
2261
- return e["s-hn"] === "BCM-ICON";
2262
- }
2263
- onClickControl(e, item, isOtherTag = false) {
2264
- const isClickClose = this.isClickDismiss(e);
2265
- isClickClose && this.deleteTag.emit({ id: Array.isArray(item) ? item.map(i => i.value) : item.value }) && this.checked && (this.checked = false);
2266
- !isOtherTag && this.selectTag.emit({ id: item.value }) && this.checked && (this.checked = false);
2267
- if (isOtherTag && !isClickClose) {
2268
- this.checked = !this.checked;
2269
- this.selectOtherTag.emit({ id: item === null || item === void 0 ? void 0 : item.map(i => i.value), checked: this.checked });
2270
- }
2271
- }
2272
- componentWillRender() {
2273
- const { data, renderItem, renderRest, maxCount } = this;
2274
- this.overflowInstance = react.createElement(ForwardOverflow, {
2275
- data,
2276
- renderItem,
2277
- renderRest,
2278
- maxCount,
2279
- });
2280
- reactDom.render(this.overflowInstance, this.el);
2281
- }
2282
- get el() { return getElement(this); }
2283
- };
2284
- BcmRcOverflow.style = rcOverflowCss;
2285
-
2286
- const { state } = createStore({
2287
- value: new Map(),
2288
- });
2289
- const setValue = val => {
2290
- const { id, dataSource } = val;
2291
- const data = {
2292
- id: snq(() => id, Generate.UID),
2293
- dataSource: dataSource && dataSource.length > 0 && recursive(dataSource),
2294
- searchIsOnlyChilds: val.searchIsOnlyChilds,
2295
- };
2296
- state.value.set(data.id, data);
2297
- };
2298
- const recursive = (data, parentId) => {
2299
- let recData = [];
2300
- if (data) {
2301
- recData = data.map(item => (Object.assign(Object.assign(Object.assign({}, item), { parentId: snq(() => parentId, null) }), (item.items && item.items.length > 0 && { items: snq(() => recursive(item.items, item.id), []) }))));
2302
- }
2303
- return recData;
2304
- };
2305
- const removeValue = _id => {
2306
- state.value.delete(_id);
2307
- };
2308
- const getValue = id => snq(() => state.value.get(id), {});
2309
- const getDataPagination = (id, limit = 3) => {
2310
- let data = [];
2311
- const value = getValue(id);
2312
- if (value) {
2313
- const { dataSource } = value;
2314
- data = dataSource.slice(0, limit);
2315
- }
2316
- return data;
2317
- };
2318
- // //search treeview data by text
2319
- // const searchData = (id, search, items?) => {
2320
- // let dataSource
2321
- // if (items && items.length > 0) {
2322
- // dataSource = items
2323
- // } else {
2324
- // const value = getValue(id);
2325
- // dataSource = value.dataSource;
2326
- // }
2327
- // let result = []
2328
- // if (dataSource) {
2329
- // dataSource.forEach(child => {
2330
- // if (child.text.toLowerCase().includes(search.toLowerCase())) {
2331
- // result.push(child)
2332
- // }
2333
- // result = result.concat(searchData(id, search, child.items))
2334
- // })
2335
- // };
2336
- // return result
2337
- // };
2338
- //nested search
2339
- const searchData = (id, searchText, items) => {
2340
- let dataSource;
2341
- if (items && items.length > 0) {
2342
- dataSource = items;
2343
- }
2344
- else {
2345
- const value = getValue(id);
2346
- dataSource = value.dataSource;
2347
- }
2348
- let results = [];
2349
- if (dataSource) {
2350
- results.push(nestedSearch(id, dataSource, searchText));
2351
- //return with their parents
2352
- // dataSource.forEach(child => {
2353
- // if (child.text.toLowerCase().includes(searchText.toLowerCase())) {
2354
- // results.push(child)
2355
- // } else if (child.items && child.items.length > 0) {
2356
- // child.items = nestedSearch(child.items, searchText)
2357
- // if (child.items.length > 0) {
2358
- // results.push(child)
2359
- // }
2360
- // }
2361
- // })
2362
- }
2363
- return {
2364
- result: snq(() => Generate.flatArray(results[0].result), []),
2365
- matching: snq(() => results[0].matching, []),
2366
- parentIndex: snq(() => results[0].parentIndex, []),
2367
- nestedResult: snq(() => results[0].nestedResult, []),
2368
- };
2369
- };
2370
- const nestedSearch = (id, items, searchText) => {
2371
- let matching = [];
2372
- let parentIndex = [];
2373
- let result = [];
2374
- let nestedResult = [];
2375
- const { searchIsOnlyChilds } = getValue(id);
2376
- if (items && items.length > 0) {
2377
- items.forEach(child => {
2378
- let isChild = searchIsOnlyChilds && child.parentId !== null;
2379
- let isMatching = (child.text && StringHelper.slugify(child.text).includes(StringHelper.slugify(searchText))) ||
2380
- (child.keywords && StringHelper.slugify(child.keywords).includes(StringHelper.slugify(searchText)));
2381
- if (isMatching && (!searchIsOnlyChilds || (searchIsOnlyChilds && isChild))) {
2382
- result.push(child.id);
2383
- matching.push(child.id);
2384
- parentIndex.push(child.id);
2385
- nestedResult.push({ id: child.id, text: child.text, parentId: child.parentId });
2386
- if (child.items && child.items.length > 0) {
2387
- const found = nestedSearch(id, child.items, searchText);
2388
- if (found.matching.length > 0) {
2389
- found.matching.forEach(chi => {
2390
- matching.push(chi);
2391
- });
2392
- }
2393
- }
2394
- }
2395
- else if (child.items && child.items.length > 0) {
2396
- const found = nestedSearch(id, child.items, searchText);
2397
- if (found.result.length > 0) {
2398
- found.result.forEach(chi => {
2399
- result.push(chi);
2400
- });
2401
- result.push(child.id);
2402
- parentIndex.push(child.id);
2403
- nestedResult.push({ id: child.id, text: child.text, parentId: child.parentId, items: found.nestedResult });
2404
- }
2405
- if (found.matching.length > 0) {
2406
- matching.push(...found.matching);
2407
- }
2408
- }
2409
- });
2410
- }
2411
- return { result, matching, parentIndex, nestedResult };
2412
- };
2413
- const searchState = {
2414
- setValue,
2415
- removeValue,
2416
- getValue,
2417
- getDataPagination,
2418
- searchData,
2419
- };
2420
-
2421
- const searchCss = "@import url(\"https://fonts.googleapis.com/css?family=Roboto:400,500\");@import url(\"https://fonts.googleapis.com/css2?family=Inter:wght@200;400;500;600&display=swap\"); @import url(\"https://fonts.googleapis.com/css2?family=Inter:wght@200;400;500;600&display=swap\"); @import url(\"https://fonts.googleapis.com/css2?family=Inter:wght@200;400;500;600&display=swap\"); .size-1{font-size:12px;line-height:20px}.size-2{font-size:14px;line-height:22px}.size-3{font-size:16px;line-height:24px}.size-4{font-size:20px;line-height:28px}.size-5{font-size:24px;line-height:32px}.size-6{font-size:30px;line-height:38px}.size-7{font-size:38px;line-height:46px}.size-8{font-size:46px;line-height:54px}.size-9{font-size:56px;line-height:64px}.weight-regular{font-weight:400}.weight-semibold{font-weight:500}.input-size-large{height:40px}.input-size-medium{height:32px}.input-size-small{height:24px}.resize-none textarea{resize:none}.resize-vertical textarea{resize:vertical}.resize-auto textarea{height:auto;resize:none}.textarea-size-large{padding:4px 0 0 4px;min-height:40px}.textarea-size-large .bcm-input-element{min-height:calc((40px - 8px) + 2px)}.textarea-size-large .input-clear-button{height:calc( 40px - 16px );top:8px;padding:0;margin-right:8px}.textarea-size-medium{padding:4px 0 0 4px;min-height:32px}.textarea-size-medium .bcm-input-element{min-height:calc((32px - 8px) + 2px)}.textarea-size-medium .input-clear-button{height:calc( 32px - 16px );top:8px;padding:0;margin-right:8px}.textarea-size-small{padding:0px 0 0 4px;min-height:24px}.textarea-size-small .bcm-input-element{min-height:calc((24px - 8px) + 2px)}.textarea-size-small .input-clear-button{height:calc( 24px - 16px );top:8px;padding:0;margin-right:8px}*{box-sizing:border-box}.bcm-caption-area{font-family:\"Inter\", sans-serif;font-size:14px;line-height:calc(14px + 8px);font-weight:400;font-size:12px;line-height:calc(12px + 8px);color:var(--bcm-new-ds-color-slate-400);display:flex;flex-direction:row;align-items:flex-start;justify-content:space-between;flex-wrap:nowrap;margin-top:2px}.bcm-caption-area__text{color:var(--bcm-new-ds-color-slate-400)}.bcm-caption-area__text.default{color:var(--bcm-new-ds-color-slate-400)}.bcm-caption-area__text.info{color:var(--bcm-new-ds-color-blue-500)}.bcm-caption-area__text.success{color:var(--bcm-new-ds-color-emerald-500)}.bcm-caption-area__text.warning{color:var(--bcm-new-ds-color-amber-500)}.bcm-caption-area__text.error{color:var(--bcm-new-ds-color-red-500)}.bcm-caption-area__size-small{font-size:10px;line-height:calc(10px + 8px);min-height:calc(10px + 8px)}.bcm-caption-area__size-medium{font-size:12px;line-height:calc(12px + 8px);min-height:calc(12px + 8px)}.bcm-caption-area__size-large{font-size:14px;line-height:calc(14px + 8px);min-height:calc(14px + 8px)}*{box-sizing:border-box}.bcm-label{display:inline-flex;align-items:flex-start;grid-gap:2px}.bcm-label__text{margin-bottom:2px;font-family:\"Inter\", sans-serif;font-size:14px;line-height:calc(14px + 8px);font-weight:400;display:inline-block;color:var(--bcm-new-ds-color-slate-600)}.bcm-label__size-small{font-size:10px;line-height:calc(10px + 8px);min-height:calc(10px + 8px)}.bcm-label__size-medium{font-size:12px;line-height:calc(12px + 8px);min-height:calc(12px + 8px)}.bcm-label__size-large{font-size:14px;line-height:calc(14px + 8px);min-height:calc(14px + 8px)}.bcm-input[no-margin]{margin:0}.bcm-textarea[no-margin]{margin:0}.bcm-switch[no-margin]{margin:0}.bcm-checkbox[no-margin]{margin:0}.bcm-radio-group[no-margin]{margin:0}.bcm-checkbox-group[no-margin]{margin:0}.bcm-range[no-margin]{margin:0}.bcm-form[no-margin]{margin:0}.bcm-form-group[no-margin]{margin:0}.bcm-list[no-margin]{margin:0}.bcm-colorpicker[no-margin]{margin:0}.bcm-date-picker[no-margin]{margin:0}.bcm-time-picker[no-margin]{margin:0}.bcm-datetime-picker[no-margin]{margin:0}.bcm-select[no-margin]{margin:0}.bcm-listbox[no-margin]{margin:0}*{box-sizing:border-box}.bcm-input{display:inline-flex;flex-direction:column;width:100%;max-width:256px;margin-bottom:8px}.bcm-input.full-width{max-width:100%}.bcm-input.hidden{display:none}.bcm-input__container{font-family:\"Inter\", sans-serif;font-size:14px;line-height:calc(14px + 8px);font-weight:400;display:flex;align-items:stretch;flex-direction:row;background-color:var(--bcm-new-ds-color-white);border:1px solid var(--bcm-new-ds-color-slate-300);border-radius:4px;box-sizing:border-box;cursor:text;padding:0 0 0 4px;position:relative;width:100%}.bcm-input__container.disabled{background-color:var(--bcm-new-ds-color-slate-50);cursor:not-allowed}.bcm-input__container.disabled .bcm-input-element{color:var(--bcm-new-ds-color-slate-500)}.bcm-input__container.readonly{background-color:var(--bcm-new-ds-color-slate-50);cursor:default}.bcm-input__container.readonly .bcm-input-element{color:var(--bcm-new-ds-color-slate-600)}.bcm-input__container:not(.disabled):hover .caret-container,.bcm-input__container:not(.disabled).focused .caret-container{opacity:1}.bcm-input__container:not(.disabled):hover .input-clear-button,.bcm-input__container:not(.disabled).focused .input-clear-button{opacity:1}.bcm-input__container:not(.disabled).focused{background-color:var(--bcm-new-ds-color-slate-50)}.bcm-input__container:not(.disabled):hover{border-color:var(--bcm-color-prime-blue-6)}.bcm-input__container.empty .input-clear-button{display:none}.bcm-input__container.invalid,.bcm-input__container.error{border-color:var(--bcm-new-ds-color-red-500)}.bcm-input__container .bcm-input-element{width:100%;color:var(--bcm-new-ds-color-slate-600);flex:1;border:none;background:transparent;box-shadow:unset;padding:0 4px;font-family:\"Inter\", sans-serif;cursor:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;text-overflow:ellipsis}.bcm-input__container .bcm-input-element::placeholder{font-family:\"Inter\", sans-serif;color:var(--bcm-new-ds-color-slate-300);user-select:none}.bcm-input__container .bcm-input-element::-webkit-search-decoration,.bcm-input__container .bcm-input-element::-webkit-search-cancel-button,.bcm-input__container .bcm-input-element::-webkit-search-results-button,.bcm-input__container .bcm-input-element::-webkit-search-results-decoration,.bcm-input__container .bcm-input-element::-webkit-calendar-picker-indicator,.bcm-input__container .bcm-input-element::-webkit-inner-spin-button,.bcm-input__container .bcm-input-element::-webkit-outer-spin-button{-webkit-appearance:none}.bcm-input__container .caret-container{width:30px;display:flex;flex-direction:column;justify-content:center;align-items:stretch;border-left:1px solid #D9D9D9;transition:0.2s opacity;user-select:none;box-sizing:border-box}.bcm-input__container .caret-container .bcm-input-caret{display:flex;align-items:center;justify-content:center;color:var(--bcm-color-grey-7);cursor:pointer;flex:1}.bcm-input__container .caret-container .bcm-input-caret bcm-icon{line-height:1}.bcm-input__container .caret-container .bcm-input-caret:hover{color:var(--bcm-color-prime-blue-6)}.bcm-input__container .caret-container .bcm-input-caret:active{background-color:var(--bcm-color-grey-3)}.bcm-input__container .caret-container .bcm-input-caret:last-child{border-top:1px solid #D9D9D9}.bcm-input__container .caret-container.disabled{background-color:var(--bcm-color-grey-3)}.bcm-input__container .caret-container.disabled .bcm-input-caret{cursor:not-allowed}.bcm-input__container .input-suffix-content{display:flex;align-items:center;justify-content:center}.bcm-input__container .input-prefix:not(:empty){padding-left:4px}.bcm-input__container .input-suffix:not(:empty){min-width:24px;padding-right:4px}.bcm-input__container .input-prefix:not(:empty),.bcm-input__container .input-suffix:not(:empty){display:flex;align-items:center;justify-content:center;cursor:default;color:#64748a}.bcm-input__container .input-prefix:not(:empty) .unit-prefix,.bcm-input__container .input-suffix:not(:empty) .unit-prefix{color:#64748a}.bcm-input__container .input-prefix-button:not(:empty),.bcm-input__container .input-suffix-button:not(:empty){cursor:pointer}.bcm-input__container .caret-container,.bcm-input__container .input-clear-button{opacity:0}.bcm-input__container--small{font-size:12px}.bcm-input__container--medium{font-size:14px}.bcm-input__container--large{font-size:16px}.bcm-input__textarea.clearable .bcm-input-element{padding-right:24px}.bcm-input__textarea .input-clear-button{position:absolute;top:4px;right:0}";
2422
-
2423
- const BcmSearch = class {
2424
- constructor(hostRef) {
2425
- registerInstance(this, hostRef);
2426
- this.bcmOnSearch = createEvent(this, "bcm-on-search", 7);
2427
- this.bcmOnSearchClear = createEvent(this, "bcm-on-search-clear", 7);
2428
- this.debounceHandler = Generate.debounceInput((event) => this.onSearchValue(event, this), 300, false, () => {
2429
- var _a, _b;
2430
- this.isActiveClearable = ((_b = (_a = this.inputElement) === null || _a === void 0 ? void 0 : _a.value) === null || _b === void 0 ? void 0 : _b.length) > 0 && this.clearable;
2431
- });
2432
- this._id = Generate.UID();
2433
- this.placeholder = "Search";
2434
- this.disabled = false;
2435
- this.readonly = false;
2436
- this.clearable = true;
2437
- this.size = Bcm.Size.medium;
2438
- this.limit = 10;
2439
- this.searchIsOnlyChilds = false;
2440
- this.minSearchLength = 2;
2441
- this.data = [];
2442
- this.tick = {};
2443
- this.isActiveClearable = false;
2444
- }
2445
- async componentDidLoad() {
2446
- await this.initState();
2447
- }
2448
- async dataChanged(newValue, oldValue) {
2449
- // console.log('data changed', newValue, oldValue)
2450
- if (newValue !== oldValue) {
2451
- await this.initState();
2452
- }
2453
- }
2454
- async initState() {
2455
- await searchState.setValue({
2456
- id: this._id + "-input",
2457
- dataSource: this.data,
2458
- searchIsOnlyChilds: this.searchIsOnlyChilds,
2459
- });
2460
- await this.markForCheck();
2461
- }
2462
- markForCheck() {
2463
- this.tick = Generate.UID();
2464
- }
2465
- handleInput() {
2466
- // console.log("aheyya")
2467
- }
2468
- async onBcmFocus() {
2469
- this.inputElement.focus();
2470
- }
2471
- async onBcmBlur() {
2472
- this.inputElement.blur();
2473
- }
2474
- async onBcmSelect() {
2475
- this.inputElement.select();
2476
- }
2477
- async setValue(newValue) {
2478
- this.inputElement.value = newValue;
2479
- }
2480
- handleFocus() { }
2481
- handleBlur() { }
2482
- handleChange() { }
2483
- async handleClear(eventEmit = true) {
2484
- this.inputElement.value = '';
2485
- const { value, id } = this.inputElement;
2486
- searchState.searchData(id, value);
2487
- this.isActiveClearable = false;
2488
- this.bcmOnSearch.emit({ result: null, value: null, matching: null, parentIndex: null });
2489
- this.bcmOnSearchClear.emit(eventEmit);
2490
- await delay(10);
2491
- return Promise.resolve();
2492
- }
2493
- onSearchValue(event, instance) {
2494
- const { value, id } = event.target;
2495
- const searchResult = (value === null || value === void 0 ? void 0 : value.length) >= this.minSearchLength ? searchState.searchData(id, value, null) : null;
2496
- const { bcmOnSearch, inputElement } = instance;
2497
- bcmOnSearch.emit({ result: searchResult === null || searchResult === void 0 ? void 0 : searchResult.result, value: inputElement === null || inputElement === void 0 ? void 0 : inputElement.value, matching: searchResult === null || searchResult === void 0 ? void 0 : searchResult.matching, parentIndex: searchResult === null || searchResult === void 0 ? void 0 : searchResult.parentIndex, nestedResult: searchResult === null || searchResult === void 0 ? void 0 : searchResult.nestedResult });
2498
- }
2499
- render() {
2500
- const { _id, placeholder, disabled, readonly } = this;
2501
- return h(Host, { onClick: () => { this.onBcmFocus(); this.onBcmSelect(); } }, h(InputTemplate, { size: this.size, id: _id, type: "search", placeholder: placeholder, disabled: disabled, "full-width": true, readonly: readonly, clearable: this.isActiveClearable, handleFocus: () => this.handleFocus(), handleBlur: () => this.handleBlur(), handleChange: () => this.handleChange(), handleClear: () => this.handleClear(), handleInput: this.debounceHandler, ref: (el) => this.inputElement = el }));
2502
- }
2503
- get el() { return getElement(this); }
2504
- static get watchers() { return {
2505
- "data": ["dataChanged"]
2506
- }; }
2507
- };
2508
- BcmSearch.style = searchCss;
2509
-
2510
- export { BcmList as bcm_list, BcmRcOverflow as bcm_rc_overflow, BcmSearch as bcm_search };