bromcom-ui 2.9.0-rc.2 → 2.9.0-rc.20

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