diginet-core-ui 1.4.39 → 1.4.40

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 (906) hide show
  1. package/.browserslistrc +6 -0
  2. package/.eslintrc.js +91 -0
  3. package/.husky/pre-commit +4 -0
  4. package/.prettierrc +32 -0
  5. package/.storybook/main.js +4 -0
  6. package/.storybook/manager.js +10 -0
  7. package/.storybook/preview-head.html +17 -0
  8. package/.storybook/preview.js +36 -0
  9. package/.storybook/themeDecorator.js +19 -0
  10. package/babel.config.json +17 -0
  11. package/bitbucket-pipelines.yml +18 -0
  12. package/jsconfig.json +8 -0
  13. package/package.json +78 -44
  14. package/package.json.tmp +44 -0
  15. package/postcss.config.js +9 -0
  16. package/readme.md +5 -0
  17. package/src/assets/images/menu/dhr/MHRP15N0002.svg +17 -0
  18. package/src/assets/images/menu/dhr/MHRP15N0003.svg +26 -0
  19. package/src/components/accordion/context.js +5 -0
  20. package/src/components/accordion/details.js +80 -0
  21. package/src/components/accordion/group.js +140 -0
  22. package/src/components/accordion/index.js +207 -0
  23. package/src/components/accordion/index.stories.js +278 -0
  24. package/src/components/accordion/summary.js +380 -0
  25. package/src/components/alert/index.js +312 -0
  26. package/src/components/alert/index.stories.js +109 -0
  27. package/src/components/alert/notify.js +179 -0
  28. package/src/components/avatar/index.js +472 -0
  29. package/src/components/avatar/index.stories.js +80 -0
  30. package/src/components/badge/index.js +307 -0
  31. package/src/components/badge/index.stories.js +187 -0
  32. package/src/components/breadcrumb/index.js +280 -0
  33. package/src/components/breadcrumb/index.stories.js +69 -0
  34. package/src/components/button/button.stories.js +34 -0
  35. package/src/components/button/buttonIcon.stories.js +36 -0
  36. package/src/components/button/buttonMore.stories.js +58 -0
  37. package/src/components/button/icon.js +468 -0
  38. package/src/components/button/index.js +582 -0
  39. package/src/components/button/more.js +249 -0
  40. package/src/components/button/ripple-effect.js +95 -0
  41. package/src/components/button/sample.stories.js +194 -0
  42. package/src/components/card/body.js +73 -0
  43. package/src/components/card/extra.js +73 -0
  44. package/src/components/card/footer.js +73 -0
  45. package/src/components/card/header.js +74 -0
  46. package/src/components/card/index.js +256 -0
  47. package/src/components/card/index.stories.js +242 -0
  48. package/src/components/chart/Pie/Circle.js +68 -0
  49. package/src/components/chart/Pie/Sector.js +134 -0
  50. package/src/components/chart/Pie/Sectors.js +96 -0
  51. package/src/components/chart/Pie/index.js +312 -0
  52. package/src/components/chart/Pie/index.stories.js +77 -0
  53. package/src/components/chart/Pie-v2/Circle.js +62 -0
  54. package/src/components/chart/Pie-v2/Sector.js +128 -0
  55. package/src/components/chart/Pie-v2/Sectors.js +353 -0
  56. package/src/components/chart/Pie-v2/index.js +499 -0
  57. package/src/components/chart/Pie-v2/index.stories.js +77 -0
  58. package/src/components/chart/bar/Axis.js +67 -0
  59. package/src/components/chart/bar/Bar.js +365 -0
  60. package/src/components/chart/bar/Grid.js +111 -0
  61. package/src/components/chart/bar/Labels.js +193 -0
  62. package/src/components/chart/bar/Points.js +112 -0
  63. package/src/components/chart/bar/index.js +170 -0
  64. package/src/components/chart/bar/index.stories.js +174 -0
  65. package/src/components/chart/bar-v2/Axis.js +67 -0
  66. package/src/components/chart/bar-v2/Bar.js +372 -0
  67. package/src/components/chart/bar-v2/Grid.js +111 -0
  68. package/src/components/chart/bar-v2/Labels.js +193 -0
  69. package/src/components/chart/bar-v2/Points.js +112 -0
  70. package/src/components/chart/bar-v2/index.js +170 -0
  71. package/src/components/chart/bar-v2/index.stories.js +174 -0
  72. package/src/components/chart/line/Axis.js +68 -0
  73. package/src/components/chart/line/Grid.js +98 -0
  74. package/src/components/chart/line/Labels.js +191 -0
  75. package/src/components/chart/line/Path.js +155 -0
  76. package/src/components/chart/line/Point.js +358 -0
  77. package/src/components/chart/line/Title.js +50 -0
  78. package/src/components/chart/line/index.js +202 -0
  79. package/src/components/chart/line/index.stories.js +148 -0
  80. package/src/components/chart/line-v2/Axis.js +66 -0
  81. package/src/components/chart/line-v2/Grid.js +111 -0
  82. package/src/components/chart/line-v2/Labels.js +190 -0
  83. package/src/components/chart/line-v2/Path.js +154 -0
  84. package/src/components/chart/line-v2/Point.js +336 -0
  85. package/src/components/chart/line-v2/Title.js +50 -0
  86. package/src/components/chart/line-v2/index.js +172 -0
  87. package/src/components/chart/line-v2/index.stories.js +148 -0
  88. package/src/components/check-text/index.js +168 -0
  89. package/src/components/check-text/index.stories.js +50 -0
  90. package/src/components/check-text/interview-confirmation.js +169 -0
  91. package/src/components/check-text/interview-status.js +142 -0
  92. package/src/components/chip/attach.js +156 -0
  93. package/src/components/chip/index.js +366 -0
  94. package/src/components/chip/index.stories.js +190 -0
  95. package/src/components/collapse/index.js +104 -0
  96. package/src/components/collapse/index.stories.js +35 -0
  97. package/src/components/dialogs/colors.js +13 -0
  98. package/src/components/divider/index.js +87 -0
  99. package/src/components/divider/index.stories.js +52 -0
  100. package/src/components/form-control/attachment/index.js +1770 -0
  101. package/src/components/form-control/attachment/index.stories.js +106 -0
  102. package/src/components/form-control/calendar/function.js +959 -0
  103. package/src/components/form-control/calendar/index.js +413 -0
  104. package/src/components/form-control/calendar/index.stories.js +40 -0
  105. package/src/components/form-control/calendar/range.js +329 -0
  106. package/src/components/form-control/checkbox/index.js +382 -0
  107. package/src/components/form-control/checkbox/index.stories.js +110 -0
  108. package/src/components/form-control/control/index.js +99 -0
  109. package/src/components/form-control/date-input/DateField.js +191 -0
  110. package/src/components/form-control/date-input/index.js +315 -0
  111. package/src/components/form-control/date-input/index.stories.js +96 -0
  112. package/src/components/form-control/date-input/useDateInputState.js +138 -0
  113. package/src/components/form-control/date-input/useIsFocused.js +25 -0
  114. package/src/components/form-control/date-input/useKeyboardInputEvent.js +45 -0
  115. package/src/components/form-control/date-input/utils.js +293 -0
  116. package/src/components/form-control/date-picker/index.js +429 -0
  117. package/src/components/form-control/date-picker/index.stories.js +141 -0
  118. package/src/components/form-control/date-range-picker/index.js +1349 -0
  119. package/src/components/form-control/date-range-picker/index.stories.js +43 -0
  120. package/src/components/form-control/dropdown/index.js +1858 -0
  121. package/src/components/form-control/dropdown/index.stories.js +222 -0
  122. package/src/components/form-control/dropdown-box/index.js +271 -0
  123. package/src/components/form-control/dropdown-box/index.stories.js +103 -0
  124. package/src/components/form-control/form/context.js +5 -0
  125. package/src/components/form-control/form/index.js +39 -0
  126. package/src/components/form-control/form-group/index.js +131 -0
  127. package/src/components/form-control/form-group/index.stories.js +57 -0
  128. package/src/components/form-control/helper-text/index.js +92 -0
  129. package/src/components/form-control/helper-text/index.stories.js +29 -0
  130. package/src/components/form-control/input-base/UncontrolledInputBase.js +499 -0
  131. package/src/components/form-control/input-base/index.js +706 -0
  132. package/src/components/form-control/input-base/index.stories.js +69 -0
  133. package/src/components/form-control/label/index.js +127 -0
  134. package/src/components/form-control/label/index.stories.js +69 -0
  135. package/src/components/form-control/money-input/index.js +622 -0
  136. package/src/components/form-control/money-input/index.stories.js +42 -0
  137. package/src/components/form-control/number-input/index.js +582 -0
  138. package/src/components/form-control/number-input/index.stories.js +53 -0
  139. package/src/components/form-control/number-input/index2.js +531 -0
  140. package/src/components/form-control/password-input/index.js +259 -0
  141. package/src/components/form-control/password-input/index.stories.js +32 -0
  142. package/src/components/form-control/phone-input/index.js +382 -0
  143. package/src/components/form-control/phone-input/index.stories.js +39 -0
  144. package/src/components/form-control/radio/index.js +241 -0
  145. package/src/components/form-control/radio/index.stories.js +51 -0
  146. package/src/components/form-control/text-input/index.js +254 -0
  147. package/src/components/form-control/text-input/index.stories.js +60 -0
  148. package/src/components/form-control/time-picker/index.js +782 -0
  149. package/src/components/form-control/time-picker/index.mdx +49 -0
  150. package/src/components/form-control/time-picker/index.stories.js +69 -0
  151. package/src/components/form-control/time-picker/swiper.js +568 -0
  152. package/src/components/form-control/time-picker/v2/index.js +785 -0
  153. package/src/components/form-control/time-picker/v2/index.stories.js +43 -0
  154. package/src/components/form-control/toggle/index.js +247 -0
  155. package/src/components/form-control/toggle/index.stories.js +51 -0
  156. package/src/components/form-view/helper-text.js +30 -0
  157. package/src/components/form-view/index.js +100 -0
  158. package/src/components/form-view/index.stories.js +25 -0
  159. package/src/components/form-view/input.js +134 -0
  160. package/src/components/form-view/label.js +39 -0
  161. package/src/components/grid/Col.js +89 -0
  162. package/src/components/grid/Container.js +99 -0
  163. package/src/components/grid/Row.js +97 -0
  164. package/src/components/grid/context.js +5 -0
  165. package/src/components/grid/index.js +323 -0
  166. package/src/components/grid/index.stories.js +523 -0
  167. package/src/components/image/index.js +191 -0
  168. package/src/components/image/index.stories.js +53 -0
  169. package/src/components/index.js +157 -0
  170. package/src/components/list/index.stories.js +261 -0
  171. package/src/components/list/list-item-action.js +94 -0
  172. package/src/components/list/list-item-icon.js +89 -0
  173. package/src/components/list/list-item-text.js +69 -0
  174. package/src/components/list/list-item.js +131 -0
  175. package/src/components/list/list.js +164 -0
  176. package/src/components/list/sub-header.js +79 -0
  177. package/src/components/modal/body.js +84 -0
  178. package/src/components/modal/context.js +5 -0
  179. package/src/components/modal/footer.js +90 -0
  180. package/src/components/modal/header.js +145 -0
  181. package/src/components/modal/index.js +59 -0
  182. package/src/components/modal/index.stories.js +95 -0
  183. package/src/components/modal/modal.js +330 -0
  184. package/src/components/others/date/index.stories.js +217 -0
  185. package/src/components/others/extra/index.js +129 -0
  186. package/src/components/others/extra/index.mdx +39 -0
  187. package/src/components/others/extra/index.stories.js +17 -0
  188. package/src/components/others/import/index.js +66 -0
  189. package/src/components/others/import/index.stories.js +70 -0
  190. package/src/components/others/locale/index.stories.js +42 -0
  191. package/src/components/others/option-wrapper/index.js +34 -0
  192. package/src/components/others/scrollbar/index.js +106 -0
  193. package/src/components/others/scrollbar/index.stories.js +68 -0
  194. package/src/components/others/validate/index.stories.js +113 -0
  195. package/src/components/paging/index.stories.js +76 -0
  196. package/src/components/paging/page-info.js +637 -0
  197. package/src/components/paging/page-selector.js +437 -0
  198. package/src/components/paper/index.js +128 -0
  199. package/src/components/paper/index.stories.js +37 -0
  200. package/src/components/popover/body.js +98 -0
  201. package/src/components/popover/footer.js +96 -0
  202. package/src/components/popover/header.js +99 -0
  203. package/src/components/popover/index.js +718 -0
  204. package/src/components/popover/index.stories.js +189 -0
  205. package/src/components/popup/danger_popup.js +196 -0
  206. package/src/components/popup/index.js +464 -0
  207. package/src/components/popup/v2/index.js +556 -0
  208. package/src/components/popup/v2/index.stories.js +113 -0
  209. package/src/components/progress/circular.js +326 -0
  210. package/src/components/progress/index.stories.js +51 -0
  211. package/src/components/progress/linear.js +361 -0
  212. package/src/components/rating/index.js +309 -0
  213. package/src/components/rating/index.stories.js +78 -0
  214. package/src/components/skeleton/index.js +79 -0
  215. package/src/components/skeleton/index.stories.js +29 -0
  216. package/src/components/slider/index.stories.js +50 -0
  217. package/src/components/slider/slider-container.js +415 -0
  218. package/src/components/slider/slider-item.js +222 -0
  219. package/src/components/status/index.js +145 -0
  220. package/src/components/status/index.stories.js +71 -0
  221. package/src/components/tab/context.js +5 -0
  222. package/src/components/tab/index.stories.js +123 -0
  223. package/src/components/tab/tab-container.js +109 -0
  224. package/src/components/tab/tab-header.js +177 -0
  225. package/src/components/tab/tab-panel.js +101 -0
  226. package/src/components/tab/tab.js +249 -0
  227. package/src/components/tooltip/index.js +580 -0
  228. package/src/components/tooltip/index.stories.js +282 -0
  229. package/src/components/tooltip/portal.js +10 -0
  230. package/src/components/transfer/index.js +555 -0
  231. package/src/components/transfer/index.stories.js +53 -0
  232. package/src/components/tree-view/index.js +1085 -0
  233. package/src/components/tree-view/index.stories.js +347 -0
  234. package/src/components/typography/index.js +331 -0
  235. package/src/components/typography/index.stories.js +166 -0
  236. package/src/docs/changelog/changelog.md +1354 -0
  237. package/src/docs/changelog/index.stories.js +20 -0
  238. package/src/global/index.js +247 -0
  239. package/src/icons/basic.js +5930 -0
  240. package/src/icons/basic.stories.js +178 -0
  241. package/src/icons/effect.js +167 -0
  242. package/src/icons/general/clock/clock.js +16 -0
  243. package/src/icons/general/color-handler/background.js +34 -0
  244. package/src/icons/general/color-handler/text.js +34 -0
  245. package/src/icons/general/emoji/emoji.js +27 -0
  246. package/src/icons/general/font-properties/bold.js +17 -0
  247. package/src/icons/general/font-properties/font-family.js +27 -0
  248. package/src/icons/general/font-properties/font-size.js +24 -0
  249. package/src/icons/general/font-properties/italic.js +17 -0
  250. package/src/icons/general/font-properties/underline.js +26 -0
  251. package/src/icons/general/hyperlink/hyperlink.js +33 -0
  252. package/src/icons/general/indent/decrease.js +54 -0
  253. package/src/icons/general/indent/increase.js +54 -0
  254. package/src/icons/general/index.js +21 -0
  255. package/src/icons/general/index.mdx +68 -0
  256. package/src/icons/general/list/bullets.js +76 -0
  257. package/src/icons/general/list/numbering.js +69 -0
  258. package/src/icons/general/picture/picture.js +17 -0
  259. package/src/icons/general/steps/redo.js +17 -0
  260. package/src/icons/general/steps/undo.js +17 -0
  261. package/src/icons/general/text-align/center.js +17 -0
  262. package/src/icons/general/text-align/justify.js +17 -0
  263. package/src/icons/general/text-align/left.js +17 -0
  264. package/src/icons/general/text-align/right.js +17 -0
  265. package/src/icons/index.js +3 -0
  266. package/src/icons/index.stories.js +22 -0
  267. package/src/icons/menu/dhr.js +2625 -0
  268. package/src/icons/menu/erp.js +513 -0
  269. package/src/icons/menu/index.js +6 -0
  270. package/src/icons/menu/index.stories.js +107 -0
  271. package/src/icons/menu/v2/index.js +77 -0
  272. package/src/icons/menu/v2/index.stories.js +426 -0
  273. package/src/locale/index.js +13 -0
  274. package/src/scss/styles.scss +10 -0
  275. package/src/styles/animation.js +930 -0
  276. package/src/styles/animations.js +13 -0
  277. package/src/styles/color-helper.js +364 -0
  278. package/src/styles/colors.js +504 -0
  279. package/src/styles/colors.stories.js +105 -0
  280. package/src/styles/font.js +26 -0
  281. package/src/styles/general.js +824 -0
  282. package/src/styles/sx/index.js +35 -0
  283. package/src/styles/typography.js +181 -0
  284. package/src/styles/utils.js +35 -0
  285. package/src/theme/createBreakpoints.js +95 -0
  286. package/src/theme/createSpacing.js +12 -0
  287. package/src/theme/createTheme.js +29 -0
  288. package/src/theme/createZIndex.js +10 -0
  289. package/src/theme/docs/breakpoints.md +242 -0
  290. package/src/theme/docs/colors.md +64 -0
  291. package/src/theme/docs/components.md +32 -0
  292. package/src/theme/docs/darkMode.md +20 -0
  293. package/src/theme/docs/spacing.md +52 -0
  294. package/src/theme/docs/theming.md +69 -0
  295. package/src/theme/docs/zIndex.md +27 -0
  296. package/src/theme/index.js +15 -0
  297. package/src/theme/make-styles.js +32 -0
  298. package/src/theme/settings.js +816 -0
  299. package/src/theme/stories/breakpoints.stories.js +20 -0
  300. package/src/theme/stories/colors.stories.js +20 -0
  301. package/src/theme/stories/components.stories.js +20 -0
  302. package/src/theme/stories/darkMode.stories.js +20 -0
  303. package/src/theme/stories/spacing.stories.js +20 -0
  304. package/src/theme/stories/theming.stories.js +20 -0
  305. package/src/theme/stories/zIndex.stories.js +20 -0
  306. package/src/theme/theme-provider.js +101 -0
  307. package/src/theme/theme.js +57 -0
  308. package/src/theme/use-classes.js +19 -0
  309. package/src/theme/utils/getThemeProps.js +11 -0
  310. package/src/theme/utils/resolveProps.js +16 -0
  311. package/src/theme/utils/useThemeProps.js +8 -0
  312. package/src/utils/array/array.js +197 -0
  313. package/src/utils/classNames/index.js +28 -0
  314. package/src/utils/classNames/index.stories.js +61 -0
  315. package/src/utils/console.js +30 -0
  316. package/src/utils/date.js +391 -0
  317. package/src/utils/error/error.js +65 -0
  318. package/src/utils/error/errors.js +250 -0
  319. package/src/utils/getFileType.js +24 -0
  320. package/src/utils/handleBreakpoints.js +27 -0
  321. package/src/utils/hexToRGBA/index.js +25 -0
  322. package/src/utils/hexToRGBA/index.stories.js +43 -0
  323. package/src/utils/index.js +40 -0
  324. package/src/utils/intersectionObserver.js +45 -0
  325. package/src/utils/isMobile/index.js +22 -0
  326. package/src/utils/isMobile/index.stories.js +49 -0
  327. package/src/utils/isUndefined.js +3 -0
  328. package/src/utils/iterator.js +45 -0
  329. package/src/utils/map-parent.js +49 -0
  330. package/src/utils/object/deepmerge.js +129 -0
  331. package/src/utils/object/extend.js +55 -0
  332. package/src/utils/object/object.js +61 -0
  333. package/src/utils/parseHTML.js +20 -0
  334. package/src/utils/promisify.js +37 -0
  335. package/src/utils/randomString.js +22 -0
  336. package/src/utils/refMethodType.js +9 -0
  337. package/src/utils/refType.js +5 -0
  338. package/src/utils/remove-unicode.js +13 -0
  339. package/src/utils/render-portal.js +87 -0
  340. package/src/utils/renderHTML.js +17 -0
  341. package/src/utils/renderIcon.js +41 -0
  342. package/src/utils/sb-template.js +115 -0
  343. package/src/utils/storybook/index.js +1 -0
  344. package/src/utils/storybook/refArgTypes.js +46 -0
  345. package/src/utils/string/capitalize.js +6 -0
  346. package/src/utils/string/capitalizeSentenceCase.js +9 -0
  347. package/src/utils/string/string.js +83 -0
  348. package/src/utils/type.js +121 -0
  349. package/src/utils/updatePosition.js +27 -0
  350. package/src/utils/useControlled/index.js +23 -0
  351. package/src/utils/useDelayUnmount.js +17 -0
  352. package/src/utils/useElementSize.js +59 -0
  353. package/src/utils/useEventListener.js +54 -0
  354. package/src/utils/useInput.js +39 -0
  355. package/src/utils/useMediaQuery/index.js +50 -0
  356. package/src/utils/useMediaQuery/index.stories.js +55 -0
  357. package/src/utils/useOnClickOutside.js +28 -0
  358. package/src/utils/usePortal.js +54 -0
  359. package/src/utils/validate.js +135 -0
  360. package/components/accordion/context.js +0 -6
  361. package/components/accordion/details.js +0 -76
  362. package/components/accordion/group.js +0 -135
  363. package/components/accordion/index.js +0 -178
  364. package/components/accordion/summary.js +0 -324
  365. package/components/alert/index.js +0 -257
  366. package/components/alert/notify.js +0 -140
  367. package/components/avatar/index.js +0 -388
  368. package/components/badge/index.js +0 -231
  369. package/components/breadcrumb/index.js +0 -220
  370. package/components/button/icon.js +0 -357
  371. package/components/button/index.js +0 -444
  372. package/components/button/more.js +0 -210
  373. package/components/button/ripple-effect.js +0 -81
  374. package/components/card/body.js +0 -76
  375. package/components/card/extra.js +0 -76
  376. package/components/card/footer.js +0 -76
  377. package/components/card/header.js +0 -80
  378. package/components/card/index.js +0 -203
  379. package/components/chart/Pie/Circle.js +0 -50
  380. package/components/chart/Pie/Sector.js +0 -124
  381. package/components/chart/Pie/Sectors.js +0 -81
  382. package/components/chart/Pie/index.js +0 -277
  383. package/components/chart/Pie-v2/Circle.js +0 -48
  384. package/components/chart/Pie-v2/Sector.js +0 -108
  385. package/components/chart/Pie-v2/Sectors.js +0 -204
  386. package/components/chart/Pie-v2/index.js +0 -488
  387. package/components/chart/bar/Axis.js +0 -67
  388. package/components/chart/bar/Bar.js +0 -344
  389. package/components/chart/bar/Grid.js +0 -97
  390. package/components/chart/bar/Labels.js +0 -162
  391. package/components/chart/bar/Points.js +0 -94
  392. package/components/chart/bar/index.js +0 -161
  393. package/components/chart/bar-v2/Axis.js +0 -67
  394. package/components/chart/bar-v2/Bar.js +0 -354
  395. package/components/chart/bar-v2/Grid.js +0 -97
  396. package/components/chart/bar-v2/Labels.js +0 -162
  397. package/components/chart/bar-v2/Points.js +0 -94
  398. package/components/chart/bar-v2/index.js +0 -161
  399. package/components/chart/line/Axis.js +0 -68
  400. package/components/chart/line/Grid.js +0 -99
  401. package/components/chart/line/Labels.js +0 -160
  402. package/components/chart/line/Path.js +0 -154
  403. package/components/chart/line/Point.js +0 -343
  404. package/components/chart/line/Title.js +0 -52
  405. package/components/chart/line/index.js +0 -199
  406. package/components/chart/line-v2/Axis.js +0 -66
  407. package/components/chart/line-v2/Grid.js +0 -97
  408. package/components/chart/line-v2/Labels.js +0 -160
  409. package/components/chart/line-v2/Path.js +0 -153
  410. package/components/chart/line-v2/Point.js +0 -326
  411. package/components/chart/line-v2/Title.js +0 -52
  412. package/components/chart/line-v2/index.js +0 -165
  413. package/components/check-text/index.js +0 -155
  414. package/components/check-text/interview-confirmation.js +0 -171
  415. package/components/check-text/interview-status.js +0 -137
  416. package/components/chip/attach.js +0 -167
  417. package/components/chip/index.js +0 -275
  418. package/components/collapse/index.js +0 -93
  419. package/components/dialogs/colors.js +0 -13
  420. package/components/divider/index.js +0 -89
  421. package/components/form-control/attachment/index.js +0 -1537
  422. package/components/form-control/calendar/function.js +0 -752
  423. package/components/form-control/calendar/index.js +0 -317
  424. package/components/form-control/calendar/range.js +0 -291
  425. package/components/form-control/checkbox/index.js +0 -329
  426. package/components/form-control/control/index.js +0 -91
  427. package/components/form-control/date-input/DateField.js +0 -187
  428. package/components/form-control/date-input/index.js +0 -292
  429. package/components/form-control/date-input/useDateInputState.js +0 -129
  430. package/components/form-control/date-input/useIsFocused.js +0 -20
  431. package/components/form-control/date-input/useKeyboardInputEvent.js +0 -45
  432. package/components/form-control/date-input/utils.js +0 -290
  433. package/components/form-control/date-picker/index.js +0 -357
  434. package/components/form-control/date-range-picker/index.js +0 -1183
  435. package/components/form-control/dropdown/index.js +0 -1624
  436. package/components/form-control/dropdown-box/index.js +0 -238
  437. package/components/form-control/form/context.js +0 -5
  438. package/components/form-control/form/index.js +0 -40
  439. package/components/form-control/form-group/index.js +0 -117
  440. package/components/form-control/helper-text/index.js +0 -88
  441. package/components/form-control/input-base/UncontrolledInputBase.js +0 -450
  442. package/components/form-control/input-base/index.js +0 -646
  443. package/components/form-control/label/index.js +0 -117
  444. package/components/form-control/money-input/index.js +0 -513
  445. package/components/form-control/number-input/index.js +0 -582
  446. package/components/form-control/number-input/index2.js +0 -481
  447. package/components/form-control/password-input/index.js +0 -242
  448. package/components/form-control/phone-input/index.js +0 -364
  449. package/components/form-control/radio/index.js +0 -224
  450. package/components/form-control/text-input/index.js +0 -239
  451. package/components/form-control/time-picker/index.js +0 -781
  452. package/components/form-control/time-picker/swiper.js +0 -540
  453. package/components/form-control/time-picker/v2/index.js +0 -809
  454. package/components/form-control/toggle/index.js +0 -222
  455. package/components/form-view/helper-text.js +0 -33
  456. package/components/form-view/index.js +0 -95
  457. package/components/form-view/input.js +0 -117
  458. package/components/form-view/label.js +0 -37
  459. package/components/grid/Col.js +0 -91
  460. package/components/grid/Container.js +0 -85
  461. package/components/grid/Row.js +0 -81
  462. package/components/grid/context.js +0 -3
  463. package/components/grid/index.js +0 -251
  464. package/components/image/index.js +0 -170
  465. package/components/index.js +0 -156
  466. package/components/list/list-item-action.js +0 -82
  467. package/components/list/list-item-icon.js +0 -71
  468. package/components/list/list-item-text.js +0 -56
  469. package/components/list/list-item.js +0 -108
  470. package/components/list/list.js +0 -149
  471. package/components/list/sub-header.js +0 -63
  472. package/components/modal/body.js +0 -74
  473. package/components/modal/context.js +0 -6
  474. package/components/modal/footer.js +0 -78
  475. package/components/modal/header.js +0 -128
  476. package/components/modal/index.js +0 -63
  477. package/components/modal/modal.js +0 -292
  478. package/components/others/extra/index.js +0 -116
  479. package/components/others/import/index.js +0 -71
  480. package/components/others/option-wrapper/index.js +0 -39
  481. package/components/others/scrollbar/index.js +0 -94
  482. package/components/paging/page-info.js +0 -582
  483. package/components/paging/page-selector.js +0 -381
  484. package/components/paper/index.js +0 -112
  485. package/components/popover/body.js +0 -86
  486. package/components/popover/footer.js +0 -84
  487. package/components/popover/header.js +0 -88
  488. package/components/popover/index.js +0 -663
  489. package/components/popup/danger_popup.js +0 -189
  490. package/components/popup/index.js +0 -414
  491. package/components/popup/v2/index.js +0 -398
  492. package/components/progress/circular.js +0 -296
  493. package/components/progress/linear.js +0 -324
  494. package/components/rating/index.js +0 -243
  495. package/components/skeleton/index.js +0 -79
  496. package/components/slider/slider-container.js +0 -340
  497. package/components/slider/slider-item.js +0 -205
  498. package/components/status/index.js +0 -111
  499. package/components/tab/context.js +0 -3
  500. package/components/tab/tab-container.js +0 -100
  501. package/components/tab/tab-header.js +0 -160
  502. package/components/tab/tab-panel.js +0 -91
  503. package/components/tab/tab.js +0 -210
  504. package/components/tooltip/index.js +0 -522
  505. package/components/tooltip/portal.js +0 -11
  506. package/components/transfer/index.js +0 -434
  507. package/components/tree-view/index.js +0 -1017
  508. package/components/typography/index.js +0 -193
  509. package/css/styles.css +0 -1
  510. package/css/styles.css.map +0 -1
  511. package/global/index.js +0 -194
  512. package/icons/basic.js +0 -7864
  513. package/icons/effect.js +0 -131
  514. package/icons/general/clock/clock.js +0 -20
  515. package/icons/general/color-handler/background.js +0 -40
  516. package/icons/general/color-handler/text.js +0 -40
  517. package/icons/general/emoji/emoji.js +0 -34
  518. package/icons/general/font-properties/bold.js +0 -20
  519. package/icons/general/font-properties/font-family.js +0 -34
  520. package/icons/general/font-properties/font-size.js +0 -26
  521. package/icons/general/font-properties/italic.js +0 -20
  522. package/icons/general/font-properties/underline.js +0 -30
  523. package/icons/general/hyperlink/hyperlink.js +0 -37
  524. package/icons/general/indent/decrease.js +0 -54
  525. package/icons/general/indent/increase.js +0 -54
  526. package/icons/general/index.js +0 -21
  527. package/icons/general/list/bullets.js +0 -76
  528. package/icons/general/list/numbering.js +0 -70
  529. package/icons/general/picture/picture.js +0 -20
  530. package/icons/general/steps/redo.js +0 -20
  531. package/icons/general/steps/undo.js +0 -20
  532. package/icons/general/text-align/center.js +0 -20
  533. package/icons/general/text-align/justify.js +0 -20
  534. package/icons/general/text-align/left.js +0 -20
  535. package/icons/general/text-align/right.js +0 -20
  536. package/icons/index.js +0 -3
  537. package/icons/menu/dhr.js +0 -2442
  538. package/icons/menu/erp.js +0 -491
  539. package/icons/menu/index.js +0 -5
  540. package/icons/menu/v2/index.js +0 -71
  541. package/locale/index.js +0 -11
  542. package/styles/animation.js +0 -848
  543. package/styles/animations.js +0 -13
  544. package/styles/color-helper.js +0 -343
  545. package/styles/colors.js +0 -476
  546. package/styles/font.js +0 -24
  547. package/styles/general.js +0 -568
  548. package/styles/sx/index.js +0 -28
  549. package/styles/typography.js +0 -156
  550. package/styles/utils.js +0 -35
  551. package/theme/createBreakpoints.js +0 -82
  552. package/theme/createSpacing.js +0 -10
  553. package/theme/createTheme.js +0 -26
  554. package/theme/createZIndex.js +0 -9
  555. package/theme/index.js +0 -14
  556. package/theme/make-styles.js +0 -30
  557. package/theme/settings.js +0 -861
  558. package/theme/theme-provider.js +0 -102
  559. package/theme/theme.js +0 -57
  560. package/theme/use-classes.js +0 -15
  561. package/theme/utils/getThemeProps.js +0 -12
  562. package/theme/utils/resolveProps.js +0 -17
  563. package/theme/utils/useThemeProps.js +0 -14
  564. package/utils/array/array.js +0 -169
  565. package/utils/classNames/index.js +0 -25
  566. package/utils/console.js +0 -27
  567. package/utils/date.js +0 -401
  568. package/utils/error/error.js +0 -53
  569. package/utils/error/errors.js +0 -200
  570. package/utils/getFileType.js +0 -23
  571. package/utils/handleBreakpoints.js +0 -25
  572. package/utils/hexToRGBA/index.js +0 -23
  573. package/utils/index.js +0 -38
  574. package/utils/intersectionObserver.js +0 -37
  575. package/utils/isMobile/index.js +0 -21
  576. package/utils/isUndefined.js +0 -2
  577. package/utils/iterator.js +0 -36
  578. package/utils/map-parent.js +0 -46
  579. package/utils/object/deepmerge.js +0 -103
  580. package/utils/object/extend.js +0 -47
  581. package/utils/object/object.js +0 -54
  582. package/utils/parseHTML.js +0 -18
  583. package/utils/promisify.js +0 -34
  584. package/utils/randomString.js +0 -26
  585. package/utils/refMethodType.js +0 -6
  586. package/utils/refType.js +0 -5
  587. package/utils/remove-unicode.js +0 -5
  588. package/utils/render-portal.js +0 -87
  589. package/utils/renderHTML.js +0 -18
  590. package/utils/renderIcon.js +0 -53
  591. package/utils/sb-template.js +0 -113
  592. package/utils/storybook/index.js +0 -1
  593. package/utils/storybook/refArgTypes.js +0 -41
  594. package/utils/string/capitalize.js +0 -3
  595. package/utils/string/capitalizeSentenceCase.js +0 -8
  596. package/utils/string/string.js +0 -60
  597. package/utils/type.js +0 -69
  598. package/utils/updatePosition.js +0 -35
  599. package/utils/useControlled/index.js +0 -14
  600. package/utils/useDelayUnmount.js +0 -15
  601. package/utils/useElementSize.js +0 -55
  602. package/utils/useEventListener.js +0 -51
  603. package/utils/useInput.js +0 -33
  604. package/utils/useMediaQuery/index.js +0 -44
  605. package/utils/useOnClickOutside.js +0 -21
  606. package/utils/usePortal.js +0 -49
  607. package/utils/validate.js +0 -135
  608. /package/{assets → src/assets}/avatar/default.svg +0 -0
  609. /package/{assets → src/assets}/fonts/SF-Pro-Display-Bold.otf +0 -0
  610. /package/{assets → src/assets}/fonts/SF-Pro-Display-Medium.otf +0 -0
  611. /package/{assets → src/assets}/fonts/SF-Pro-Display-Regular.otf +0 -0
  612. /package/{assets → src/assets}/fonts/text-security-disc-compat.eot +0 -0
  613. /package/{assets → src/assets}/fonts/text-security-disc-compat.ttf +0 -0
  614. /package/{assets → src/assets}/fonts/text-security-disc-compat.woff2 +0 -0
  615. /package/{assets → src/assets}/fonts/text-security-disc.woff2 +0 -0
  616. /package/{assets → src/assets}/image/default.png +0 -0
  617. /package/{assets → src/assets}/images/icons/wifi.svg +0 -0
  618. /package/{assets → src/assets}/images/menu/bem/WA3F0100.svg +0 -0
  619. /package/{assets → src/assets}/images/menu/bem/WA3F1025.svg +0 -0
  620. /package/{assets → src/assets}/images/menu/bem/WA3F2000.svg +0 -0
  621. /package/{assets → src/assets}/images/menu/bem/WA3F2020.svg +0 -0
  622. /package/{assets → src/assets}/images/menu/bem/WA3F2030.svg +0 -0
  623. /package/{assets → src/assets}/images/menu/bem/WA3F2040.svg +0 -0
  624. /package/{assets → src/assets}/images/menu/bem/WA3F2100.svg +0 -0
  625. /package/{assets → src/assets}/images/menu/dhr/ALL.svg +0 -0
  626. /package/{assets → src/assets}/images/menu/dhr/D00.svg +0 -0
  627. /package/{assets → src/assets}/images/menu/dhr/D09.svg +0 -0
  628. /package/{assets → src/assets}/images/menu/dhr/D13.svg +0 -0
  629. /package/{assets → src/assets}/images/menu/dhr/D15.svg +0 -0
  630. /package/{assets → src/assets}/images/menu/dhr/D21.svg +0 -0
  631. /package/{assets → src/assets}/images/menu/dhr/D25.svg +0 -0
  632. /package/{assets → src/assets}/images/menu/dhr/D29.svg +0 -0
  633. /package/{assets → src/assets}/images/menu/dhr/D38.svg +0 -0
  634. /package/{assets → src/assets}/images/menu/dhr/D39.svg +0 -0
  635. /package/{assets → src/assets}/images/menu/dhr/D51.svg +0 -0
  636. /package/{assets → src/assets}/images/menu/dhr/D52.svg +0 -0
  637. /package/{assets → src/assets}/images/menu/dhr/D77.svg +0 -0
  638. /package/{assets → src/assets}/images/menu/dhr/D84.svg +0 -0
  639. /package/{assets → src/assets}/images/menu/dhr/D89.svg +0 -0
  640. /package/{assets → src/assets}/images/menu/dhr/Default.svg +0 -0
  641. /package/{assets → src/assets}/images/menu/dhr/MAHR21N0000.svg +0 -0
  642. /package/{assets → src/assets}/images/menu/dhr/MAHR29N0001.svg +0 -0
  643. /package/{assets → src/assets}/images/menu/dhr/MAHR29N0002.svg +0 -0
  644. /package/{assets → src/assets}/images/menu/dhr/MAHR29N0003.svg +0 -0
  645. /package/{assets → src/assets}/images/menu/dhr/MAHR29N0004.svg +0 -0
  646. /package/{assets → src/assets}/images/menu/dhr/MAHR29N0011.svg +0 -0
  647. /package/{assets → src/assets}/images/menu/dhr/MAHR29N0012.svg +0 -0
  648. /package/{assets → src/assets}/images/menu/dhr/MAHR29N0013.svg +0 -0
  649. /package/{assets → src/assets}/images/menu/dhr/MAHR75N0005.svg +0 -0
  650. /package/{assets → src/assets}/images/menu/dhr/MAHR75N0006.svg +0 -0
  651. /package/{assets → src/assets}/images/menu/dhr/MAHR75N0007.svg +0 -0
  652. /package/{assets → src/assets}/images/menu/dhr/MAHR75N0008.svg +0 -0
  653. /package/{assets → src/assets}/images/menu/dhr/MAHR75N0009.svg +0 -0
  654. /package/{assets → src/assets}/images/menu/dhr/MAHR75N0010.svg +0 -0
  655. /package/{assets → src/assets}/images/menu/dhr/MAHR89N0014.svg +0 -0
  656. /package/{assets → src/assets}/images/menu/dhr/MAHR89N0015.svg +0 -0
  657. /package/{assets → src/assets}/images/menu/dhr/MHRM00N0001.svg +0 -0
  658. /package/{assets → src/assets}/images/menu/dhr/MHRM00N0002.svg +0 -0
  659. /package/{assets → src/assets}/images/menu/dhr/MHRM00N0003.svg +0 -0
  660. /package/{assets → src/assets}/images/menu/dhr/MHRM00N0004.svg +0 -0
  661. /package/{assets → src/assets}/images/menu/dhr/MHRM00N0005.svg +0 -0
  662. /package/{assets → src/assets}/images/menu/dhr/MHRM00N0006.svg +0 -0
  663. /package/{assets → src/assets}/images/menu/dhr/MHRM00N0007.svg +0 -0
  664. /package/{assets → src/assets}/images/menu/dhr/MHRM09N0001.svg +0 -0
  665. /package/{assets → src/assets}/images/menu/dhr/MHRM09N0002.svg +0 -0
  666. /package/{assets → src/assets}/images/menu/dhr/MHRM09N0003.svg +0 -0
  667. /package/{assets → src/assets}/images/menu/dhr/MHRM09N0004.svg +0 -0
  668. /package/{assets → src/assets}/images/menu/dhr/MHRM09N0005.svg +0 -0
  669. /package/{assets → src/assets}/images/menu/dhr/MHRM09N1010.svg +0 -0
  670. /package/{assets → src/assets}/images/menu/dhr/MHRM09N1015.svg +0 -0
  671. /package/{assets → src/assets}/images/menu/dhr/MHRM09N1020.svg +0 -0
  672. /package/{assets → src/assets}/images/menu/dhr/MHRM09N1025.svg +0 -0
  673. /package/{assets → src/assets}/images/menu/dhr/MHRM09N1030.svg +0 -0
  674. /package/{assets → src/assets}/images/menu/dhr/MHRM09N1035.svg +0 -0
  675. /package/{assets → src/assets}/images/menu/dhr/MHRM09N1040.svg +0 -0
  676. /package/{assets → src/assets}/images/menu/dhr/MHRM09N1400.svg +0 -0
  677. /package/{assets → src/assets}/images/menu/dhr/MHRM13N0001.svg +0 -0
  678. /package/{assets → src/assets}/images/menu/dhr/MHRM13N0002.svg +0 -0
  679. /package/{assets → src/assets}/images/menu/dhr/MHRM13N0003.svg +0 -0
  680. /package/{assets → src/assets}/images/menu/dhr/MHRM13N0004.svg +0 -0
  681. /package/{assets → src/assets}/images/menu/dhr/MHRM15N0001.svg +0 -0
  682. /package/{assets → src/assets}/images/menu/dhr/MHRM25N0001.svg +0 -0
  683. /package/{assets → src/assets}/images/menu/dhr/MHRM29N0001.svg +0 -0
  684. /package/{assets → src/assets}/images/menu/dhr/MHRM29N0002.svg +0 -0
  685. /package/{assets → src/assets}/images/menu/dhr/MHRM29N0003.svg +0 -0
  686. /package/{assets → src/assets}/images/menu/dhr/MHRM29N0004.svg +0 -0
  687. /package/{assets → src/assets}/images/menu/dhr/MHRM29N0005.svg +0 -0
  688. /package/{assets → src/assets}/images/menu/dhr/MHRM29N0015.svg +0 -0
  689. /package/{assets → src/assets}/images/menu/dhr/MHRM38N0001.svg +0 -0
  690. /package/{assets → src/assets}/images/menu/dhr/MHRM38N0002.svg +0 -0
  691. /package/{assets → src/assets}/images/menu/dhr/MHRM38N0003.svg +0 -0
  692. /package/{assets → src/assets}/images/menu/dhr/MHRM39N0012.svg +0 -0
  693. /package/{assets → src/assets}/images/menu/dhr/MHRM39N0013.svg +0 -0
  694. /package/{assets → src/assets}/images/menu/dhr/MHRM39N0014.svg +0 -0
  695. /package/{assets → src/assets}/images/menu/dhr/MHRM39N0015.svg +0 -0
  696. /package/{assets → src/assets}/images/menu/dhr/MHRM39N0016.svg +0 -0
  697. /package/{assets → src/assets}/images/menu/dhr/MHRM39N0017.svg +0 -0
  698. /package/{assets → src/assets}/images/menu/dhr/MHRM39N0018.svg +0 -0
  699. /package/{assets → src/assets}/images/menu/dhr/MHRM39N0019.svg +0 -0
  700. /package/{assets → src/assets}/images/menu/dhr/MHRM39N0020.svg +0 -0
  701. /package/{assets → src/assets}/images/menu/dhr/MHRM39N0021.svg +0 -0
  702. /package/{assets → src/assets}/images/menu/dhr/MHRM39N0022.svg +0 -0
  703. /package/{assets → src/assets}/images/menu/dhr/MHRM39N0023.svg +0 -0
  704. /package/{assets → src/assets}/images/menu/dhr/MHRM51N0005.svg +0 -0
  705. /package/{assets → src/assets}/images/menu/dhr/MHRM51N0006.svg +0 -0
  706. /package/{assets → src/assets}/images/menu/dhr/MHRM51N0007.svg +0 -0
  707. /package/{assets → src/assets}/images/menu/dhr/MHRM77N0001.svg +0 -0
  708. /package/{assets → src/assets}/images/menu/dhr/MHRM77N0003.svg +0 -0
  709. /package/{assets → src/assets}/images/menu/dhr/MHRM82N0001.svg +0 -0
  710. /package/{assets → src/assets}/images/menu/dhr/MHRM82N0002.svg +0 -0
  711. /package/{assets → src/assets}/images/menu/dhr/MHRM84N0001.svg +0 -0
  712. /package/{assets → src/assets}/images/menu/dhr/MHRM84N0002.svg +0 -0
  713. /package/{assets → src/assets}/images/menu/dhr/MHRM89N0001.svg +0 -0
  714. /package/{assets → src/assets}/images/menu/dhr/MHRM89N0002.svg +0 -0
  715. /package/{assets → src/assets}/images/menu/dhr/MHRP00N0001.svg +0 -0
  716. /package/{assets → src/assets}/images/menu/dhr/MHRP09N0001.svg +0 -0
  717. /package/{assets → src/assets}/images/menu/dhr/MHRP09N0002.svg +0 -0
  718. /package/{assets → src/assets}/images/menu/dhr/MHRP09N0003.svg +0 -0
  719. /package/{assets → src/assets}/images/menu/dhr/MHRP09N0004.svg +0 -0
  720. /package/{assets → src/assets}/images/menu/dhr/MHRP09N0005.svg +0 -0
  721. /package/{assets → src/assets}/images/menu/dhr/MHRP09N0006.svg +0 -0
  722. /package/{assets → src/assets}/images/menu/dhr/MHRP09N0007.svg +0 -0
  723. /package/{assets → src/assets}/images/menu/dhr/MHRP09N0008.svg +0 -0
  724. /package/{assets → src/assets}/images/menu/dhr/MHRP09N0009.svg +0 -0
  725. /package/{assets → src/assets}/images/menu/dhr/MHRP09N0010.svg +0 -0
  726. /package/{assets → src/assets}/images/menu/dhr/MHRP09N0011.svg +0 -0
  727. /package/{assets → src/assets}/images/menu/dhr/MHRP09N0012.svg +0 -0
  728. /package/{assets → src/assets}/images/menu/dhr/MHRP09N0013.svg +0 -0
  729. /package/{assets → src/assets}/images/menu/dhr/MHRP09N0014.svg +0 -0
  730. /package/{assets → src/assets}/images/menu/dhr/MHRP09N0015.svg +0 -0
  731. /package/{assets → src/assets}/images/menu/dhr/MHRP09N0016.svg +0 -0
  732. /package/{assets → src/assets}/images/menu/dhr/MHRP09N0017.svg +0 -0
  733. /package/{assets → src/assets}/images/menu/dhr/MHRP09N0018.svg +0 -0
  734. /package/{assets → src/assets}/images/menu/dhr/MHRP09N0019.svg +0 -0
  735. /package/{assets → src/assets}/images/menu/dhr/MHRP09N0020.svg +0 -0
  736. /package/{assets → src/assets}/images/menu/dhr/MHRP09N0021.svg +0 -0
  737. /package/{assets → src/assets}/images/menu/dhr/MHRP09N0022.svg +0 -0
  738. /package/{assets → src/assets}/images/menu/dhr/MHRP09N0023.svg +0 -0
  739. /package/{assets → src/assets}/images/menu/dhr/MHRP09N0024.svg +0 -0
  740. /package/{assets → src/assets}/images/menu/dhr/MHRP09N0025.svg +0 -0
  741. /package/{assets → src/assets}/images/menu/dhr/MHRP09N0026.svg +0 -0
  742. /package/{assets → src/assets}/images/menu/dhr/MHRP09N0027.svg +0 -0
  743. /package/{assets → src/assets}/images/menu/dhr/MHRP09N0028.svg +0 -0
  744. /package/{assets → src/assets}/images/menu/dhr/MHRP09N0029.svg +0 -0
  745. /package/{assets → src/assets}/images/menu/dhr/MHRP09N0030.svg +0 -0
  746. /package/{assets → src/assets}/images/menu/dhr/MHRP09N0031.svg +0 -0
  747. /package/{assets → src/assets}/images/menu/dhr/MHRP09N0032.svg +0 -0
  748. /package/{assets → src/assets}/images/menu/dhr/MHRP09N0033.svg +0 -0
  749. /package/{assets → src/assets}/images/menu/dhr/MHRP09N0034.svg +0 -0
  750. /package/{assets → src/assets}/images/menu/dhr/MHRP09N0035.svg +0 -0
  751. /package/{assets → src/assets}/images/menu/dhr/MHRP13N0001.svg +0 -0
  752. /package/{assets → src/assets}/images/menu/dhr/MHRP13N0005.svg +0 -0
  753. /package/{assets → src/assets}/images/menu/dhr/MHRP13N0006.svg +0 -0
  754. /package/{assets → src/assets}/images/menu/dhr/MHRP21N0001.svg +0 -0
  755. /package/{assets → src/assets}/images/menu/dhr/MHRP21N0002.svg +0 -0
  756. /package/{assets → src/assets}/images/menu/dhr/MHRP25L0101.svg +0 -0
  757. /package/{assets → src/assets}/images/menu/dhr/MHRP25L0501.svg +0 -0
  758. /package/{assets → src/assets}/images/menu/dhr/MHRP25N0001.svg +0 -0
  759. /package/{assets → src/assets}/images/menu/dhr/MHRP25N0002.svg +0 -0
  760. /package/{assets → src/assets}/images/menu/dhr/MHRP25N0003.svg +0 -0
  761. /package/{assets → src/assets}/images/menu/dhr/MHRP25N0004.svg +0 -0
  762. /package/{assets → src/assets}/images/menu/dhr/MHRP25N0005.svg +0 -0
  763. /package/{assets → src/assets}/images/menu/dhr/MHRP29N0001.svg +0 -0
  764. /package/{assets → src/assets}/images/menu/dhr/MHRP29N0002.svg +0 -0
  765. /package/{assets → src/assets}/images/menu/dhr/MHRP29N0003.svg +0 -0
  766. /package/{assets → src/assets}/images/menu/dhr/MHRP29N0004.svg +0 -0
  767. /package/{assets → src/assets}/images/menu/dhr/MHRP29N0005.svg +0 -0
  768. /package/{assets → src/assets}/images/menu/dhr/MHRP29N0006.svg +0 -0
  769. /package/{assets → src/assets}/images/menu/dhr/MHRP29N0007.svg +0 -0
  770. /package/{assets → src/assets}/images/menu/dhr/MHRP29N0008.svg +0 -0
  771. /package/{assets → src/assets}/images/menu/dhr/MHRP29N0009.svg +0 -0
  772. /package/{assets → src/assets}/images/menu/dhr/MHRP29N0010.svg +0 -0
  773. /package/{assets → src/assets}/images/menu/dhr/MHRP29N0011.svg +0 -0
  774. /package/{assets → src/assets}/images/menu/dhr/MHRP29N0012.svg +0 -0
  775. /package/{assets → src/assets}/images/menu/dhr/MHRP29N0013.svg +0 -0
  776. /package/{assets → src/assets}/images/menu/dhr/MHRP29N0014.svg +0 -0
  777. /package/{assets → src/assets}/images/menu/dhr/MHRP29N0016.svg +0 -0
  778. /package/{assets → src/assets}/images/menu/dhr/MHRP29N0017.svg +0 -0
  779. /package/{assets → src/assets}/images/menu/dhr/MHRP29N0018.svg +0 -0
  780. /package/{assets → src/assets}/images/menu/dhr/MHRP29N0019.svg +0 -0
  781. /package/{assets → src/assets}/images/menu/dhr/MHRP29N0020.svg +0 -0
  782. /package/{assets → src/assets}/images/menu/dhr/MHRP29N0021.svg +0 -0
  783. /package/{assets → src/assets}/images/menu/dhr/MHRP29N0022.svg +0 -0
  784. /package/{assets → src/assets}/images/menu/dhr/MHRP29N0023.svg +0 -0
  785. /package/{assets → src/assets}/images/menu/dhr/MHRP29N0026.svg +0 -0
  786. /package/{assets → src/assets}/images/menu/dhr/MHRP29N0027.svg +0 -0
  787. /package/{assets → src/assets}/images/menu/dhr/MHRP29N0028.svg +0 -0
  788. /package/{assets → src/assets}/images/menu/dhr/MHRP29N0029.svg +0 -0
  789. /package/{assets → src/assets}/images/menu/dhr/MHRP29N0030.svg +0 -0
  790. /package/{assets → src/assets}/images/menu/dhr/MHRP38N0001.svg +0 -0
  791. /package/{assets → src/assets}/images/menu/dhr/MHRP38N0002.svg +0 -0
  792. /package/{assets → src/assets}/images/menu/dhr/MHRP39N0001.svg +0 -0
  793. /package/{assets → src/assets}/images/menu/dhr/MHRP39N0002.svg +0 -0
  794. /package/{assets → src/assets}/images/menu/dhr/MHRP39N0003.svg +0 -0
  795. /package/{assets → src/assets}/images/menu/dhr/MHRP39N0004.svg +0 -0
  796. /package/{assets → src/assets}/images/menu/dhr/MHRP39N0005.svg +0 -0
  797. /package/{assets → src/assets}/images/menu/dhr/MHRP39N0006.svg +0 -0
  798. /package/{assets → src/assets}/images/menu/dhr/MHRP39N0007.svg +0 -0
  799. /package/{assets → src/assets}/images/menu/dhr/MHRP39N0008.svg +0 -0
  800. /package/{assets → src/assets}/images/menu/dhr/MHRP39N0009.svg +0 -0
  801. /package/{assets → src/assets}/images/menu/dhr/MHRP39N0010.svg +0 -0
  802. /package/{assets → src/assets}/images/menu/dhr/MHRP39N0011.svg +0 -0
  803. /package/{assets → src/assets}/images/menu/dhr/MHRP39N0013.svg +0 -0
  804. /package/{assets → src/assets}/images/menu/dhr/MHRP39N0014.svg +0 -0
  805. /package/{assets → src/assets}/images/menu/dhr/MHRP39N0015.svg +0 -0
  806. /package/{assets → src/assets}/images/menu/dhr/MHRP39N0017.svg +0 -0
  807. /package/{assets → src/assets}/images/menu/dhr/MHRP39N0018.svg +0 -0
  808. /package/{assets → src/assets}/images/menu/dhr/MHRP39N0019.svg +0 -0
  809. /package/{assets → src/assets}/images/menu/dhr/MHRP39N0020.svg +0 -0
  810. /package/{assets → src/assets}/images/menu/dhr/MHRP39N0021.svg +0 -0
  811. /package/{assets → src/assets}/images/menu/dhr/MHRP39N1222.svg +0 -0
  812. /package/{assets → src/assets}/images/menu/dhr/MHRP51N0001.svg +0 -0
  813. /package/{assets → src/assets}/images/menu/dhr/MHRP51N0002.svg +0 -0
  814. /package/{assets → src/assets}/images/menu/dhr/MHRP51N0003.svg +0 -0
  815. /package/{assets → src/assets}/images/menu/dhr/MHRP51N0004.svg +0 -0
  816. /package/{assets → src/assets}/images/menu/dhr/MHRP52N0001.svg +0 -0
  817. /package/{assets → src/assets}/images/menu/dhr/MHRP52N0002.svg +0 -0
  818. /package/{assets → src/assets}/images/menu/dhr/MHRP52N0003.svg +0 -0
  819. /package/{assets → src/assets}/images/menu/dhr/MHRP75N0001.svg +0 -0
  820. /package/{assets → src/assets}/images/menu/dhr/MHRP75N0002.svg +0 -0
  821. /package/{assets → src/assets}/images/menu/dhr/MHRP75N0003.svg +0 -0
  822. /package/{assets → src/assets}/images/menu/dhr/MHRP75N0006.svg +0 -0
  823. /package/{assets → src/assets}/images/menu/dhr/MHRP75N0007.svg +0 -0
  824. /package/{assets → src/assets}/images/menu/dhr/MHRP75N0008.svg +0 -0
  825. /package/{assets → src/assets}/images/menu/dhr/MHRP77N0007.svg +0 -0
  826. /package/{assets → src/assets}/images/menu/dhr/MHRP77N0008.svg +0 -0
  827. /package/{assets → src/assets}/images/menu/dhr/MHRP77N0009.svg +0 -0
  828. /package/{assets → src/assets}/images/menu/dhr/MHRP77N0010.svg +0 -0
  829. /package/{assets → src/assets}/images/menu/dhr/MHRP77N0011.svg +0 -0
  830. /package/{assets → src/assets}/images/menu/dhr/MHRP89N1000.svg +0 -0
  831. /package/{assets → src/assets}/images/menu/dhr/MHRP89N1001.svg +0 -0
  832. /package/{assets → src/assets}/images/menu/dhr/TASK.svg +0 -0
  833. /package/{assets → src/assets}/images/menu/dhr/W00F0001.svg +0 -0
  834. /package/{assets → src/assets}/images/menu/dhr/W00F0002.svg +0 -0
  835. /package/{assets → src/assets}/images/menu/dhr/W00F0003.svg +0 -0
  836. /package/{assets → src/assets}/images/menu/dhr/W00F0004.svg +0 -0
  837. /package/{assets → src/assets}/images/menu/dhr/W00F0005.svg +0 -0
  838. /package/{assets → src/assets}/images/menu/dhr/W09F2000-WEB5.svg +0 -0
  839. /package/{assets → src/assets}/images/menu/dhr/W09F2000.svg +0 -0
  840. /package/{assets → src/assets}/images/menu/dhr/W09F2002-WEB5.svg +0 -0
  841. /package/{assets → src/assets}/images/menu/dhr/W09F2005-WEB5.svg +0 -0
  842. /package/{assets → src/assets}/images/menu/dhr/W09F2020-WEB5.svg +0 -0
  843. /package/{assets → src/assets}/images/menu/dhr/W09F2022-WEB5.svg +0 -0
  844. /package/{assets → src/assets}/images/menu/dhr/W09F2150-WEB5.svg +0 -0
  845. /package/{assets → src/assets}/images/menu/dhr/W09F2152-WEB5.svg +0 -0
  846. /package/{assets → src/assets}/images/menu/dhr/W09F2160-WEB5.svg +0 -0
  847. /package/{assets → src/assets}/images/menu/dhr/W09F2162-WEB5.svg +0 -0
  848. /package/{assets → src/assets}/images/menu/dhr/W29F4006-WEB5.svg +0 -0
  849. /package/{assets → src/assets}/images/menu/dhr/W75F2260-WEB5.svg +0 -0
  850. /package/{assets → src/assets}/images/menu/dhr/W75F2261-WEB5.svg +0 -0
  851. /package/{assets → src/assets}/images/menu/dhr/W75F3005-WEB5.svg +0 -0
  852. /package/{assets → src/assets}/images/menu/dhr/W75F4070-WEB5.svg +0 -0
  853. /package/{assets → src/assets}/images/menu/dhr/W75F4071-WEB5.svg +0 -0
  854. /package/{assets → src/assets}/images/menu/dhr/W75F4100-WEB5.svg +0 -0
  855. /package/{assets → src/assets}/images/menu/dhr/W77F1011.svg +0 -0
  856. /package/{assets → src/assets}/images/menu/dhr/W77F1013.svg +0 -0
  857. /package/{assets → src/assets}/images/menu/eo/W00F0001.svg +0 -0
  858. /package/{assets → src/assets}/images/menu/eo/W00F0002.svg +0 -0
  859. /package/{assets → src/assets}/images/menu/eo/W00F0003.svg +0 -0
  860. /package/{assets → src/assets}/images/menu/eo/W00F0004.svg +0 -0
  861. /package/{assets → src/assets}/images/menu/eo/WEO76APP0001.svg +0 -0
  862. /package/{assets → src/assets}/images/menu/eo/WEO76APP0002.svg +0 -0
  863. /package/{assets → src/assets}/images/menu/eo/WEO76LIS0001.svg +0 -0
  864. /package/{assets → src/assets}/images/menu/eo/WEO76LIS0002.svg +0 -0
  865. /package/{assets → src/assets}/images/menu/eo/WEO76LIS0003.svg +0 -0
  866. /package/{assets → src/assets}/images/menu/eo/WEO76LIS0004.svg +0 -0
  867. /package/{assets → src/assets}/images/menu/eo/WEO76LIS0005.svg +0 -0
  868. /package/{assets → src/assets}/images/menu/eo/WEO76LIS0006.svg +0 -0
  869. /package/{assets → src/assets}/images/menu/eo/WEO76LIS0007.svg +0 -0
  870. /package/{assets → src/assets}/images/menu/eo/WEO76REQ0001.svg +0 -0
  871. /package/{assets → src/assets}/images/menu/eo/WEO76REQ0002.svg +0 -0
  872. /package/{assets → src/assets}/images/menu/eo/WEO76REQ0003.svg +0 -0
  873. /package/{assets → src/assets}/images/menu/eo/WEO76TRA0001.svg +0 -0
  874. /package/{assets → src/assets}/images/menu/eo/WTM76ACC0001.svg +0 -0
  875. /package/{assets → src/assets}/images/menu/eo/WTM76INF0001.svg +0 -0
  876. /package/{assets → src/assets}/images/menu/eo/WTM76PRO0001.svg +0 -0
  877. /package/{assets → src/assets}/images/menu/eo/WTM76SYS0001.svg +0 -0
  878. /package/{assets → src/assets}/images/menu/erp/D05.svg +0 -0
  879. /package/{assets → src/assets}/images/menu/erp/D06.svg +0 -0
  880. /package/{assets → src/assets}/images/menu/erp/D90R.svg +0 -0
  881. /package/{assets → src/assets}/images/menu/erp/DBC.svg +0 -0
  882. /package/{assets → src/assets}/images/menu/erp/W00F0001.svg +0 -0
  883. /package/{assets → src/assets}/images/menu/erp/W00F0002.svg +0 -0
  884. /package/{assets → src/assets}/images/menu/erp/W00F0003.svg +0 -0
  885. /package/{assets → src/assets}/images/menu/erp/W00F0004.svg +0 -0
  886. /package/{assets → src/assets}/images/menu/erp/W05F0001.svg +0 -0
  887. /package/{assets → src/assets}/images/menu/erp/W05F0001N0000.svg +0 -0
  888. /package/{assets → src/assets}/images/menu/erp/W05F0004N0000.svg +0 -0
  889. /package/{assets → src/assets}/images/menu/erp/W05F0006N0000.svg +0 -0
  890. /package/{assets → src/assets}/images/menu/erp/W05F0007N0000.svg +0 -0
  891. /package/{assets → src/assets}/images/menu/erp/W05F0008N0000.svg +0 -0
  892. /package/{assets → src/assets}/images/menu/erp/W05F0011N0000.svg +0 -0
  893. /package/{assets → src/assets}/images/menu/erp/W05F0013N0000.svg +0 -0
  894. /package/{assets → src/assets}/images/menu/erp/W05F4000N0000.svg +0 -0
  895. /package/{assets → src/assets}/images/menu/erp/W06F0001.svg +0 -0
  896. /package/{assets → src/assets}/images/menu/erp/W06F0001N0000.svg +0 -0
  897. /package/{assets → src/assets}/images/menu/erp/W06F0004N0000.svg +0 -0
  898. /package/{assets → src/assets}/images/menu/erp/W06F0005N0000.svg +0 -0
  899. /package/{assets → src/assets}/images/menu/erp/W06F0006N0000.svg +0 -0
  900. /package/{assets → src/assets}/images/menu/erp/W06F0008N0000.svg +0 -0
  901. /package/{assets → src/assets}/images/menu/erp/W94F1000N0000.svg +0 -0
  902. /package/{assets → src/assets}/images/menu/erp/W94F1000N0001.svg +0 -0
  903. /package/{assets → src/assets}/images/menu/erp/WA3F1025.svg +0 -0
  904. /package/{assets → src/assets}/images/menu/erp/WA3F2100.svg +0 -0
  905. /package/{assets → src/assets}/storybook/avatar01.svg +0 -0
  906. /package/{assets → src/assets}/storybook/cover01.svg +0 -0
@@ -0,0 +1,1085 @@
1
+ /** @jsxRuntime classic */
2
+ /** @jsx jsx */
3
+ import { css, jsx } from '@emotion/core';
4
+ import {
5
+ Accordion,
6
+ AccordionDetails,
7
+ AccordionSummary,
8
+ ButtonIcon,
9
+ Checkbox,
10
+ Divider,
11
+ InputBase,
12
+ Typography,
13
+ } from 'components';
14
+ import { getGlobal } from 'global';
15
+ import PropTypes from 'prop-types';
16
+ import { Fragment, forwardRef, memo, useEffect, useImperativeHandle, useRef, useState } from 'react';
17
+ import { render } from 'react-dom';
18
+ import {
19
+ bgColor,
20
+ borderRadius,
21
+ boxBorder,
22
+ cursorNotAllowed,
23
+ cursorPointer,
24
+ displayBlock,
25
+ displayFlex,
26
+ displayInlineBlock,
27
+ flexRow,
28
+ itemsCenter,
29
+ parseHeight,
30
+ parseMinHeight,
31
+ parseWidth,
32
+ positionRelative,
33
+ textColor,
34
+ textLeft,
35
+ } from 'styles/general';
36
+ import { useTheme } from 'theme';
37
+ import useThemeProps from 'theme/utils/useThemeProps';
38
+ import { classNames, getProp, mapParent, randomString, removeUnicode } from 'utils';
39
+
40
+ const separatorPattern = /\{\w+\}/g;
41
+ const currentValue = {},
42
+ itemsRenderAsync = {};
43
+
44
+ const TreeView = memo(
45
+ forwardRef((inProps, reference) => {
46
+ if (!reference) reference = useRef(null);
47
+
48
+ const theme = useTheme();
49
+
50
+ // props priority: `inProps` > `themeDefaultProps`
51
+ const props = useThemeProps({ props: inProps, name: 'TreeView' });
52
+ const {
53
+ action = {},
54
+ allowSearch,
55
+ autoExpandToResult,
56
+ className,
57
+ collapseIcon,
58
+ dataSource,
59
+ disabled,
60
+ disabledBoldResult,
61
+ disabledRelevantValue,
62
+ displayExpr,
63
+ expand,
64
+ expandIcon,
65
+ id,
66
+ multiple,
67
+ multipleValueMode,
68
+ onChange,
69
+ parentID,
70
+ renderAsyncFromLevel,
71
+ renderAsyncWithLength,
72
+ renderItem,
73
+ searchDelayTime: searchDelayTimeProp,
74
+ searchMode,
75
+ searchProps,
76
+ selectAll,
77
+ selectAllLabel: selectAllLabelProp,
78
+ selectBox,
79
+ showChildrenOfResult,
80
+ showSelectedItems,
81
+ value: valueProp,
82
+ valueExpr,
83
+ ...other
84
+ } = props;
85
+
86
+ let searchDelayTime = searchDelayTimeProp;
87
+ let value = valueProp;
88
+
89
+ const selectAllLabel = selectAllLabelProp || getGlobal('selectAll');
90
+
91
+ const ref = useRef(null);
92
+ const selectAllRef = useRef(null);
93
+ const inputValueRef = useRef(null);
94
+ const clearIconRef = useRef(null);
95
+ const timer = useRef(null);
96
+ const timeout = useRef(null);
97
+
98
+ const [unique] = useState(randomString(6, { allowNumber: false, allowSymbol: false }));
99
+
100
+ const _TreeViewRootCSS = TreeViewRootCSS(theme);
101
+
102
+ const determinateCheckbox = (input, determinate) => {
103
+ if (multipleValueMode === 'multiple' || disabledRelevantValue) {
104
+ input.classList[determinate ? 'add' : 'remove']('determinate');
105
+ input.classList[determinate ? 'remove' : 'add']('indeterminate');
106
+ input.nextElementSibling.firstChild.classList[determinate ? 'add' : 'remove']('determinate');
107
+ input.nextElementSibling.firstChild.classList[determinate ? 'remove' : 'add']('indeterminate');
108
+ }
109
+ };
110
+
111
+ // const triggerCheckboxRecursion = (nodes, isChecked) => {
112
+ // nodes.forEach(el => {
113
+ // if (el.classList.contains('non-child')) {
114
+ // el.querySelector('input').checked = isChecked;
115
+ // } else {
116
+ // el.firstChild.querySelector('input').checked = isChecked;
117
+ // triggerCheckboxRecursion(Array.from(el.lastChild.firstChild.childNodes), isChecked);
118
+ // }
119
+ // });
120
+ // };
121
+
122
+ const checkedParentFollowValue = nodes => {
123
+ if (nodes && nodes?.length) {
124
+ nodes.forEach(node => {
125
+ if (!node.classList.contains('non-child')) {
126
+ const input = node.firstChild.querySelector('input');
127
+ if (input.checked) {
128
+ if (!input.classList.contains('determinate')) {
129
+ determinateCheckbox(input, true);
130
+ }
131
+ Array.from(node.querySelectorAll('input')).forEach(el => {
132
+ el.checked = true;
133
+ if (!el.classList.contains('determinate')) {
134
+ determinateCheckbox(el, true);
135
+ }
136
+ });
137
+ } else {
138
+ const checkedLeastOfOne = Array.from(node.querySelectorAll('input')).some(el => el.checked);
139
+ if (checkedLeastOfOne) {
140
+ input.checked = checkedLeastOfOne;
141
+ if (input.classList.contains('determinate')) {
142
+ determinateCheckbox(input, false);
143
+ }
144
+ } else if (input.checked) {
145
+ input.checked = false;
146
+ }
147
+ const childNodes = Array.from(node?.lastChild?.firstChild?.childNodes || '');
148
+ checkedParentFollowValue(childNodes);
149
+ }
150
+ }
151
+ });
152
+ }
153
+ };
154
+
155
+ const checkParentCheckbox = node => {
156
+ while (ref.current.contains(node)) {
157
+ node = node.parentNode;
158
+ if (multipleValueMode === 'multiple' && node.classList.contains('DGN-UI-Accordion-Details-Content')) {
159
+ const childNodes = Array.from(node.childNodes);
160
+ if (childNodes) {
161
+ // Số lượng input đã check, dùng để kiểm tra là đã check tất cả, check chưa đầy đủ hoặc chưa check phần tử nào
162
+ let determinateQuantity = 0;
163
+ const checkedQuantity = childNodes.reduce((quantity, el) => {
164
+ const input = el.querySelector('input');
165
+ determinateQuantity += +input.classList.contains('determinate');
166
+ return quantity + +input.checked;
167
+ }, 0);
168
+ // Accordion root
169
+ node = node.parentNode?.parentNode;
170
+ if (node && node.firstChild) {
171
+ const input = node.firstChild.querySelector('input');
172
+ if (input) {
173
+ if (!checkedQuantity) {
174
+ input.checked = false;
175
+ currentValue[unique][input.value] = false;
176
+ } else {
177
+ input.checked = true;
178
+ if (
179
+ checkedQuantity === childNodes?.length &&
180
+ checkedQuantity === determinateQuantity
181
+ ) {
182
+ if (!input.classList.contains('determinate')) {
183
+ determinateCheckbox(input, true);
184
+ }
185
+ currentValue[unique][input.value] = true;
186
+ } else {
187
+ if (input.classList.contains('determinate')) {
188
+ determinateCheckbox(input, false);
189
+ }
190
+ // currentValue[unique][input.value] = false;
191
+ }
192
+ }
193
+ }
194
+ }
195
+ }
196
+ } else if (multipleValueMode === 'inheritance' && node.classList.contains('DGN-UI-Accordion')) {
197
+ const input = node.firstChild.firstChild.querySelector('input');
198
+ input.checked = true;
199
+ currentValue[unique][input.value] = true;
200
+ }
201
+ }
202
+ };
203
+
204
+ const checkChildrenCheckbox = (node, isChecked) => {
205
+ // node = node.nextElementSibling?.firstChild;
206
+ // if (node) {
207
+ // const childNodes = Array.from(node.childNodes);
208
+ // if (childNodes) {
209
+ // triggerCheckboxRecursion(childNodes, isChecked);
210
+ // }
211
+ // }
212
+ if (node) {
213
+ node.querySelectorAll('input').forEach(el => {
214
+ if (!el.classList.contains('determinate')) {
215
+ determinateCheckbox(el, true);
216
+ }
217
+ el.checked = isChecked;
218
+ });
219
+ }
220
+ };
221
+
222
+ const checkedSelectAllCheckbox = () => {
223
+ const allInput = Array.from(ref.current.querySelectorAll('input'));
224
+ if (allInput.some(i => i.checked)) {
225
+ const isCheckedAll = allInput.every(i => i.checked);
226
+ if (isCheckedAll) {
227
+ if (!selectAllRef.current.classList.contains('determinate')) {
228
+ determinateCheckbox(selectAllRef.current, true);
229
+ }
230
+ } else {
231
+ if (selectAllRef.current.classList.contains('determinate')) {
232
+ determinateCheckbox(selectAllRef.current, false);
233
+ }
234
+ }
235
+ selectAllRef.current.checked = true;
236
+ } else if (selectAllRef.current.checked) {
237
+ selectAllRef.current.checked = false;
238
+ }
239
+ };
240
+
241
+ const handleDisabledChildren = (node, isChecked) => {
242
+ if (node) {
243
+ node.querySelectorAll('.TreeView-Item.non-child, .DGN-UI-Accordion').forEach(el => {
244
+ el.classList[isChecked ? 'add' : 'remove']('disabled');
245
+ if (el.classList.contains('DGN-UI-Accordion')) {
246
+ el.firstChild.firstChild.lastChild.firstChild.firstChild.firstChild.classList[
247
+ isChecked ? 'add' : 'remove'
248
+ ]('disabled');
249
+ el.firstChild.firstChild.lastChild.firstChild.firstChild.firstChild.disabled = isChecked;
250
+ Array.from(el.childNodes).forEach(e => {
251
+ e.classList[isChecked ? 'add' : 'remove']('treeview-disabled');
252
+ });
253
+ } else {
254
+ el.firstChild.firstChild.firstChild.firstChild.disabled = isChecked;
255
+ el.parentNode.classList[isChecked ? 'add' : 'remove']('disabled');
256
+ el.firstChild.firstChild.firstChild.classList[isChecked ? 'add' : 'remove']('disabled');
257
+ }
258
+ });
259
+ }
260
+ };
261
+
262
+ const handleDisabledParent = (node, isChecked) => {
263
+ while (ref.current.contains(node)) {
264
+ node = node.parentNode;
265
+ if (
266
+ node.classList.contains('DGN-UI-Accordion') &&
267
+ node.firstChild.classList.contains('DGN-UI-Accordion-Summary')
268
+ ) {
269
+ const summaryEl = node.firstChild;
270
+ if (!summaryEl.classList.contains('expanding')) {
271
+ summaryEl.lastChild.firstChild.click();
272
+ }
273
+ const checkbox = node.firstChild.firstChild.lastChild.firstChild.firstChild.firstChild;
274
+ if (checkbox) {
275
+ // Trường hợp phải set về false để xét các input đã check không bao gồm node này
276
+ checkbox.firstChild.checked = isChecked;
277
+ const mustDisabled = !!node.querySelectorAll('input:checked')?.length;
278
+ // Nếu có ít nhất một input con được check thì phải checked cho input này
279
+ checkbox.firstChild.checked = mustDisabled;
280
+ determinateCheckbox(checkbox.firstChild, !mustDisabled);
281
+ node.classList[mustDisabled || isChecked ? 'add' : 'remove']('disabled');
282
+ checkbox.classList[mustDisabled || isChecked ? 'add' : 'remove']('disabled');
283
+ Array.from(node.childNodes).forEach(e => {
284
+ setTimeout(() => {
285
+ e.classList[mustDisabled || isChecked ? 'add' : 'remove']('treeview-disabled');
286
+ });
287
+ });
288
+ }
289
+ }
290
+ }
291
+ };
292
+
293
+ const setValue = (data, isChecked) => {
294
+ if (multiple && multipleValueMode !== 'single') {
295
+ currentValue[unique][typeof data === 'object' ? data[valueExpr] : data] = isChecked;
296
+ if (data.childItems && data.childItems?.length) {
297
+ data.childItems.forEach(d => {
298
+ setValue(d, isChecked);
299
+ });
300
+ }
301
+ }
302
+ };
303
+
304
+ const clearAllValue = () => {
305
+ inputValueRef.current.value = '';
306
+ clearIconRef.current.style.opacity = 0;
307
+ Object.keys(currentValue[unique]).forEach(key => {
308
+ currentValue[unique][key] = false;
309
+ });
310
+ Array.from(ref.current.querySelectorAll('input')).forEach(input => {
311
+ input.checked = false;
312
+ });
313
+ !!onChange && onChange({ value: [], data: [] }, []);
314
+ };
315
+
316
+ const setValueIntoInput = data => {
317
+ if (!data || !data?.length) {
318
+ inputValueRef.current.value = '';
319
+ if (clearIconRef.current?.element) clearIconRef.current.element.style.opacity = 0;
320
+ return;
321
+ }
322
+ if (clearIconRef.current?.element && clearIconRef.current.element.style.opacity === '0') {
323
+ clearIconRef.current.element.style.opacity = null;
324
+ }
325
+ let result = '';
326
+ const keyArr = displayExpr.match(separatorPattern);
327
+ data.forEach(d => {
328
+ result += keyArr ? renderData(d, keyArr) : d[displayExpr] + ', ';
329
+ });
330
+ inputValueRef.current.value = result.replace(/, $/, '');
331
+ };
332
+
333
+ const handleCheckbox = (isChecked = false, value = 'all') => {
334
+ if ((selectBox || multiple) && ref.current) {
335
+ if (value === 'all') {
336
+ ref.current.querySelectorAll('input').forEach(input => (input.checked = isChecked));
337
+ } else if (value) {
338
+ if (typeof value === 'string') {
339
+ value = [value];
340
+ }
341
+ value.forEach(v => {
342
+ const input = ref.current.querySelector(`input[value="${v}"]`);
343
+ if (input) {
344
+ input.checked = isChecked;
345
+ }
346
+ });
347
+ }
348
+ }
349
+ };
350
+
351
+ const onClickHandler = (e, data) => {
352
+ if (disabled) return;
353
+ const target = e.target;
354
+ const currentTarget = e.currentTarget;
355
+ let value = typeof data === 'object' ? data[valueExpr] : data;
356
+ const justSelected = value;
357
+ const result = [];
358
+ const checkBoxEl = currentTarget.querySelector('.TreeView-Item-Checkbox');
359
+ if (multiple) {
360
+ let checked;
361
+ let inputEl;
362
+ // Click on text (not checkbox)
363
+ if (!checkBoxEl.contains(target)) {
364
+ inputEl = checkBoxEl.querySelector('input');
365
+ checked = !inputEl.checked || inputEl.classList.contains('indeterminate');
366
+ inputEl.checked = checked;
367
+ } else {
368
+ inputEl = currentTarget.querySelector('input');
369
+ checked = inputEl.checked || inputEl.classList.contains('indeterminate');
370
+ inputEl.checked = checked;
371
+ }
372
+ if (multipleValueMode !== 'single') {
373
+ if (!currentTarget.classList.contains('non-child')) {
374
+ checkChildrenCheckbox(currentTarget.nextElementSibling, checked);
375
+ if (checked) {
376
+ determinateCheckbox(inputEl, true);
377
+ }
378
+ }
379
+ if (checked || multipleValueMode === 'multiple') {
380
+ checkParentCheckbox(currentTarget);
381
+ }
382
+ // Handle result when multiple
383
+ setValue(data, checked);
384
+ } else {
385
+ currentValue[unique][value] = checked;
386
+ if (disabledRelevantValue) {
387
+ // Disabled/Enabled parent and children node
388
+ if (!currentTarget.classList.contains('non-child')) {
389
+ handleDisabledChildren(currentTarget.nextElementSibling, checked);
390
+ }
391
+ handleDisabledParent(currentTarget.parentNode, checked);
392
+ }
393
+ }
394
+ result.push(
395
+ ...Object.keys(currentValue[unique])
396
+ .filter(v => currentValue[unique][v])
397
+ .filter(v => v !== '')
398
+ );
399
+ value = result;
400
+ if (value?.length) {
401
+ data = dataSource?.filter(obj => value.includes(typeof obj === 'object' ? obj[valueExpr] : obj));
402
+ } else {
403
+ data = [];
404
+ }
405
+ if (showSelectedItems) {
406
+ setValueIntoInput(data);
407
+ }
408
+ } else {
409
+ if (selectBox) {
410
+ const checkedInput = ref.current.querySelectorAll('input:checked');
411
+ let input = currentTarget.querySelector('input');
412
+ // Click on checkbox
413
+ if (checkBoxEl.contains(target)) {
414
+ if (!input.checked) {
415
+ input.checked = true;
416
+ return;
417
+ }
418
+ } else if (checkedInput[0].isSameNode(input)) {
419
+ return;
420
+ }
421
+ if (checkedInput) {
422
+ checkedInput.forEach(el => (el.checked = false));
423
+ }
424
+ input.checked = true;
425
+ }
426
+ currentValue[unique][value] = true;
427
+ result.push(value);
428
+ }
429
+ if (selectAllRef.current) {
430
+ checkedSelectAllCheckbox();
431
+ }
432
+ e.value = value;
433
+ e.justSelected = justSelected;
434
+ e.data = data;
435
+ !!onChange && onChange(e, result);
436
+ };
437
+
438
+ const onSelectAll = e => {
439
+ let result;
440
+ if (!e.target.checked && e.target.classList.contains('determinate')) {
441
+ ref.current.querySelectorAll('input:checked').forEach(input => (input.checked = false));
442
+ e.value = [];
443
+ result = [];
444
+ } else {
445
+ if (!e.target.classList.contains('determinate')) {
446
+ determinateCheckbox(e.target, true);
447
+ }
448
+ e.target.checked = true;
449
+ ref.current.querySelectorAll('input').forEach(input => {
450
+ input.checked = true;
451
+ if (!input.classList.contains('determinate')) {
452
+ determinateCheckbox(input, true);
453
+ }
454
+ });
455
+ result = Object.keys(currentValue[unique]).map(v => v);
456
+ e.value = result;
457
+ }
458
+ !!onChange && onChange(e, result);
459
+ };
460
+
461
+ const onChangeHandler = e => {
462
+ const value = e.target.value;
463
+ if (timeout.current) {
464
+ if (timer.current) clearTimeout(timer.current);
465
+ timer.current = setTimeout(
466
+ () => {
467
+ onSearchHandler(value);
468
+ },
469
+ /^\d+$/.test(timeout.current) ? timeout.current : 700
470
+ );
471
+ } else {
472
+ onSearchHandler(value);
473
+ }
474
+ };
475
+
476
+ const onSearchHandler = value => {
477
+ const entries = ref.current.querySelectorAll('.TreeView-Item.non-child, .DGN-UI-Accordion');
478
+ if (value) {
479
+ entries.forEach(entry => {
480
+ if (compareTwoString(value, entry.textContent)) {
481
+ entry.classList.remove('DGN-Hidden');
482
+ // Check exactly entry
483
+ if (entry.classList.contains('TreeView-Item')) {
484
+ if (!disabledBoldResult && !entry.classList.contains('TreeView-Item-active')) {
485
+ entry.classList.add('TreeView-Item-active');
486
+ }
487
+ } else {
488
+ const summaryEl = entry.firstChild;
489
+ const TreeViewItemEl = summaryEl.querySelector('.TreeView-Item');
490
+ if (TreeViewItemEl) {
491
+ if (compareTwoString(value, TreeViewItemEl.textContent)) {
492
+ if (
493
+ !disabledBoldResult &&
494
+ !TreeViewItemEl.classList.contains('TreeView-Item-active')
495
+ ) {
496
+ TreeViewItemEl.classList.add('TreeView-Item-active');
497
+ entry.classList.add('TreeView-Item-contain-children-active');
498
+ }
499
+ if (!compareTwoString(value, entry.lastChild.textContent)) {
500
+ summaryEl.lastChild.classList.add('DGN-Invisible');
501
+ } else {
502
+ summaryEl.lastChild.classList.remove('DGN-Invisible');
503
+ }
504
+ } else if (TreeViewItemEl.classList.contains('TreeView-Item-active')) {
505
+ TreeViewItemEl.classList.remove('TreeView-Item-active');
506
+ entry.classList.remove('TreeView-Item-contain-children-active');
507
+ }
508
+ if (autoExpandToResult && !summaryEl.classList.contains('expanding')) {
509
+ summaryEl.lastChild.firstChild.click();
510
+ }
511
+ }
512
+ }
513
+ } else {
514
+ entry.classList.add('DGN-Hidden');
515
+ if (entry.classList.contains('TreeView-Item')) {
516
+ if (entry.classList.contains('TreeView-Item-active')) {
517
+ entry.classList.remove('TreeView-Item-active');
518
+ }
519
+ entry.classList.remove('TreeView-Item-contain-children-active');
520
+ } else {
521
+ const summaryEl = entry.firstChild;
522
+ const TreeViewItemEl = summaryEl.querySelector('.TreeView-Item');
523
+ if (TreeViewItemEl) {
524
+ if (TreeViewItemEl.classList.contains('TreeView-Item-active')) {
525
+ TreeViewItemEl.classList.remove('TreeView-Item-active');
526
+ }
527
+ summaryEl.lastChild.classList.remove('DGN-Invisible');
528
+ }
529
+ }
530
+ }
531
+ });
532
+ if (showChildrenOfResult) {
533
+ entries.forEach(entry => {
534
+ if (entry.classList.contains('TreeView-Item-contain-children-active')) {
535
+ const hiddenEls = entry.querySelectorAll('.DGN-Hidden, .DGN-Invisible');
536
+ if (hiddenEls && hiddenEls?.length) {
537
+ hiddenEls.forEach(hiddenEl => hiddenEl.classList.remove('DGN-Hidden', 'DGN-Invisible'));
538
+ }
539
+ }
540
+ });
541
+ }
542
+ } else {
543
+ entries.forEach(entry => {
544
+ entry.classList.remove('DGN-Hidden');
545
+ if (
546
+ !entry.classList.contains('TreeView-Item') &&
547
+ entry.firstChild.lastChild.classList.contains('DGN-Invisible')
548
+ ) {
549
+ entry.firstChild.lastChild.classList.remove('DGN-Invisible');
550
+ }
551
+ });
552
+ const activeEls = ref.current.querySelectorAll('.TreeView-Item-active');
553
+ if (!disabledBoldResult && activeEls && activeEls?.length) {
554
+ activeEls.forEach(activeEl => {
555
+ activeEl.classList.remove('TreeView-Item-active', 'TreeView-Item-contain-children-active');
556
+ });
557
+ }
558
+ }
559
+ };
560
+
561
+ const compareTwoString = (search, content) => {
562
+ if (searchMode === 'similar') {
563
+ search = removeUnicode(search.normalize(), '.*?');
564
+ content = removeUnicode(content);
565
+ }
566
+ return new RegExp(search.normalize(), 'img').test(content.normalize());
567
+ };
568
+
569
+ const renderDataAsync = (id, array) => {
570
+ return new Promise(res => {
571
+ const node = array.map(({ data, index, level }) => {
572
+ return renderTreeView(data, index, level, false);
573
+ });
574
+ const container = document.getElementById(id);
575
+ if (container && node) {
576
+ render(node, container.firstChild, () => res(1));
577
+ }
578
+ });
579
+ };
580
+
581
+ const renderData = (data, keyArr) => {
582
+ const pattern = keyArr.join('|').replace(/([{}])/g, '\\$1');
583
+ const separatorArr = displayExpr.split(new RegExp(pattern));
584
+ let str = '';
585
+ let i = 0;
586
+ for (i; i < keyArr?.length; i++) {
587
+ str +=
588
+ separatorArr[i] +
589
+ (data[keyArr[i].replace(/\W/g, '')] !== undefined ? data[keyArr[i].replace(/\W/g, '')] : keyArr[i]);
590
+ }
591
+ return str + separatorArr[i];
592
+ };
593
+
594
+ const renderContent = (item, keyArr, index) => {
595
+ const displayText =
596
+ renderItem && typeof renderItem === 'function'
597
+ ? renderItem({ data: item, index })
598
+ : typeof item === 'object'
599
+ ? keyArr
600
+ ? renderData(item, keyArr)
601
+ : item[displayExpr]
602
+ : item;
603
+ return (
604
+ <Typography mapping={'div'} color={'inherit'} style={{ width: '100%' }}>
605
+ {displayText}
606
+ </Typography>
607
+ );
608
+ };
609
+
610
+ const renderTreeView = (data, index, level, sync = true, id) => {
611
+ if (level > renderAsyncFromLevel - 1 && sync) {
612
+ if (itemsRenderAsync[unique][id]) {
613
+ itemsRenderAsync[unique][id].push({ data, index, level });
614
+ } else {
615
+ itemsRenderAsync[unique][id] = [{ data, index, level }];
616
+ }
617
+ return null;
618
+ }
619
+ const keyArr = displayExpr.match(separatorPattern);
620
+ const isTrue = value.includes(data[valueExpr] || data);
621
+ const isParentTrue = value.includes(data[parentID]);
622
+ const focusClass = isTrue && !selectBox && !multiple ? 'focus' : '';
623
+ const childItems = data.childItems;
624
+ // is Summary
625
+ if (childItems && childItems?.length) {
626
+ const id = randomString(6, { allowSymbol: false, allowNumber: false });
627
+ return (
628
+ <Accordion
629
+ key={index}
630
+ className={focusClass}
631
+ expand={expand || data.expand}
632
+ onExpand={e => {
633
+ if (disabledRelevantValue && !isTrue && !isParentTrue) {
634
+ handleDisabledParent(e, isTrue);
635
+ }
636
+ }}
637
+ onCollapse={e => {
638
+ if (disabledRelevantValue && !isTrue && !isParentTrue) {
639
+ handleDisabledParent(e, isTrue);
640
+ }
641
+ }}
642
+ >
643
+ <AccordionSummary
644
+ expandIcon={expandIcon}
645
+ collapseIcon={collapseIcon}
646
+ expandIconAt={'start'}
647
+ expandIconProps={{ className: 'TreeView' }}
648
+ className={focusClass}
649
+ onClick={multiple || selectBox || onChange ? e => onClickHandler(e, data) : undefined}
650
+ style={{ paddingLeft: 16 * level }}
651
+ >
652
+ <div className={'TreeView-Item'}>
653
+ {selectBox || multiple ? (
654
+ <span className={'TreeView-Item-Checkbox'}>
655
+ <Checkbox
656
+ checked={isTrue}
657
+ value={typeof data === 'object' ? data[valueExpr] : data}
658
+ stopPropagation={false}
659
+ disabled={disabled}
660
+ />
661
+ </span>
662
+ ) : null}
663
+ {renderContent(data, keyArr, index)}
664
+ </div>
665
+ </AccordionSummary>
666
+ <AccordionDetails id={id}>
667
+ {childItems.map((child, i) => renderTreeView(child, index + i, level + 1, sync, id))}
668
+ </AccordionDetails>
669
+ </Accordion>
670
+ );
671
+ }
672
+ return (
673
+ <div
674
+ className={classNames('TreeView-Item', 'non-child', focusClass)}
675
+ style={{ paddingLeft: 34 + 16 * level }}
676
+ onClick={multiple || selectBox || onChange ? e => onClickHandler(e, data) : undefined}
677
+ key={index}
678
+ tabIndex="-1"
679
+ >
680
+ {selectBox || multiple ? (
681
+ <span className={'TreeView-Item-Checkbox'}>
682
+ <Checkbox
683
+ checked={isTrue}
684
+ value={typeof data === 'object' ? data[valueExpr] : data}
685
+ stopPropagation={false}
686
+ disabled={disabled}
687
+ />
688
+ </span>
689
+ ) : null}
690
+ {renderContent(data, keyArr, index)}
691
+ </div>
692
+ );
693
+ };
694
+
695
+ useEffect(() => {
696
+ currentValue[unique] = {};
697
+ return () => {
698
+ currentValue[unique] = null;
699
+ };
700
+ }, []);
701
+
702
+ useEffect(() => {
703
+ if (searchDelayTime) {
704
+ if (searchDelayTime === true) searchDelayTime = getGlobal('delayOnInput');
705
+ const units = {
706
+ m: 60000,
707
+ s: 1000,
708
+ ms: 1,
709
+ };
710
+ timeout.current =
711
+ typeof searchDelayTime === 'number'
712
+ ? searchDelayTime
713
+ : (searchDelayTime.match(/[^a-z]+/i)?.[0] || 1) *
714
+ units[searchDelayTime.match(/ms|s|m/i)?.[0] || 's'];
715
+ return () => {
716
+ timeout.current = null;
717
+ };
718
+ }
719
+ }, [searchDelayTime]);
720
+
721
+ useEffect(() => {
722
+ dataSource?.forEach(data => {
723
+ currentValue[unique][typeof data === 'object' ? data[valueExpr] : data] = false;
724
+ });
725
+ if (value && value?.length) {
726
+ value.forEach(v => {
727
+ currentValue[unique][v] = true;
728
+ });
729
+ }
730
+ return () => {
731
+ currentValue[unique] = {};
732
+ };
733
+ }, [dataSource, value]);
734
+
735
+ useEffect(() => {
736
+ if (value && multiple) {
737
+ if (multipleValueMode !== 'single') {
738
+ const childNodes = Array.from(ref.current.childNodes);
739
+ if (childNodes && childNodes?.length) {
740
+ checkedParentFollowValue(childNodes);
741
+ }
742
+ if (showSelectedItems) {
743
+ const data = dataSource?.filter(d => value.includes(d[valueExpr]));
744
+ setValueIntoInput(data);
745
+ }
746
+ return () => {
747
+ if (ref.current) {
748
+ Array.from(ref.current.querySelectorAll('input')).forEach(input => {
749
+ input.checked = value.includes(input.value);
750
+ });
751
+ }
752
+ };
753
+ } else if (disabledRelevantValue) {
754
+ Array.from(ref.current.querySelectorAll('.TreeView-Item.non-child, .DGN-UI-Accordion')).forEach(
755
+ el => {
756
+ if (el.firstChild.querySelector('input').checked) {
757
+ if (!el.classList.contains('non-child')) {
758
+ handleDisabledChildren(el, true);
759
+ }
760
+ handleDisabledParent(el.parentNode, true);
761
+ }
762
+ }
763
+ );
764
+ }
765
+ }
766
+ }, []);
767
+
768
+ useEffect(() => {
769
+ if (selectAllRef.current) {
770
+ checkedSelectAllCheckbox();
771
+ }
772
+ if (ref.current.querySelector('.DGN-UI-Accordion-Details-Content')) {
773
+ if (!ref.current.parentNode.classList.contains('expand-able')) {
774
+ ref.current.parentNode.classList.add('expand-able');
775
+ }
776
+ return () => {
777
+ if (ref.current) {
778
+ ref.current.parentNode.classList.remove('expand-able');
779
+ }
780
+ };
781
+ }
782
+ }, [dataSource, value, multiple, selectBox]);
783
+
784
+ useEffect(() => {
785
+ if (Object.keys(itemsRenderAsync[unique])?.length) {
786
+ Object.keys(itemsRenderAsync[unique]).forEach(async key => {
787
+ await renderDataAsync(key, itemsRenderAsync[unique][key]);
788
+ });
789
+ }
790
+ }, [dataSource, value, multiple, selectBox, onChange]);
791
+
792
+ useImperativeHandle(reference, () => {
793
+ const currentRef = ref.current || {};
794
+ currentRef.element = ref.current;
795
+ const _instance = {
796
+ ...action,
797
+ }; // methods
798
+ _instance.__proto__ = {}; // hidden methods
799
+ currentRef.instance = _instance;
800
+ // keep old method
801
+ currentRef.disabled = disabled;
802
+ currentRef.displayExpr = displayExpr;
803
+ currentRef.valueExpr = valueExpr;
804
+ currentRef.id = id;
805
+ currentRef.parentID = parentID;
806
+ currentRef.value = value;
807
+ currentRef.getValue = () => Object.keys(currentValue[unique]).filter(v => currentValue[unique][v]);
808
+ currentRef.setValue = setValue;
809
+ currentRef.handleCheckbox = handleCheckbox;
810
+ currentRef.get = () => ref.current;
811
+ return currentRef;
812
+ });
813
+
814
+ if (typeof value === 'string') {
815
+ value = [value];
816
+ }
817
+ if (!multiple && value?.length > 1) {
818
+ value.length = 1;
819
+ }
820
+ itemsRenderAsync[unique] = {};
821
+ const sync = dataSource?.length > renderAsyncWithLength;
822
+ return (
823
+ <div css={_TreeViewRootCSS} className={classNames('DGN-UI-TreeView', disabled && 'disabled')}>
824
+ {showSelectedItems && multiple ? (
825
+ <InputBase
826
+ inputRef={inputValueRef}
827
+ viewType={'outlined'}
828
+ readOnly
829
+ style={{ marginBottom: 1 }}
830
+ inputStyle={{ whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis' }}
831
+ endIcon={
832
+ <ButtonIcon viewType={'ghost'} ref={clearIconRef} name={'Cancel'} onClick={clearAllValue} />
833
+ }
834
+ />
835
+ ) : null}
836
+ {allowSearch ? (
837
+ <InputBase startIcon={'Search'} onChange={onChangeHandler} viewType={'outlined'} {...searchProps} />
838
+ ) : null}
839
+ {multiple && selectAll ? (
840
+ <Fragment>
841
+ <div className={'TreeView-All'}>
842
+ <Checkbox
843
+ label={selectAllLabel}
844
+ onChange={onSelectAll}
845
+ inputRef={selectAllRef}
846
+ stopPropagation={false}
847
+ disabled={disabled}
848
+ />
849
+ </div>
850
+ <Divider />
851
+ </Fragment>
852
+ ) : null}
853
+ <div ref={ref} className={classNames('TreeView-Content', disabled && 'disabled', className)} {...other}>
854
+ {mapParent(dataSource || [], id, parentID, true).map((data, index) =>
855
+ renderTreeView(data, index.toString(), 0, sync)
856
+ )}
857
+ </div>
858
+ </div>
859
+ );
860
+ })
861
+ );
862
+
863
+ const TreeViewRootCSS = ({ colors, spacing }) => css`
864
+ ${displayBlock};
865
+ ${positionRelative};
866
+ .DGN-UI-Accordion {
867
+ box-shadow: none !important;
868
+ .DGN-UI-Accordion-Summary {
869
+ ${itemsCenter};
870
+ ${parseMinHeight(40)};
871
+ padding: ${spacing([0])};
872
+ ${borderRadius(0)};
873
+ &.focus {
874
+ ${bgColor(getProp(colors, 'fill/focus'))};
875
+ }
876
+ .Accordion-Icon-Root {
877
+ ${displayFlex};
878
+ ${flexRow};
879
+ margin-right: ${spacing([1])};
880
+ }
881
+ }
882
+ .DGN-UI-Accordion-Details-Content {
883
+ padding: ${spacing([0])};
884
+ ${borderRadius(0)};
885
+ }
886
+ .Accordion-Icon-Root {
887
+ ${displayFlex};
888
+ ${flexRow};
889
+ transition: opacity 0.2s ease-out;
890
+ opacity: 1;
891
+ &.DGN-Invisible {
892
+ opacity: 0;
893
+ }
894
+ }
895
+ &.DGN-Hidden {
896
+ display: none !important;
897
+ }
898
+ }
899
+ .TreeView-All,
900
+ .TreeView-Content {
901
+ ${displayBlock};
902
+ ${positionRelative};
903
+ .DGN-UI-Accordion {
904
+ margin-bottom: 0px;
905
+ }
906
+ }
907
+ .TreeView-Item-Checkbox {
908
+ ${displayInlineBlock};
909
+ ${positionRelative};
910
+ ${parseHeight('100%')};
911
+ margin-right: ${spacing([2])};
912
+ }
913
+ .TreeView-Item {
914
+ ${flexRow};
915
+ ${positionRelative};
916
+ ${itemsCenter};
917
+ ${boxBorder};
918
+ ${parseWidth('100%')};
919
+ ${parseMinHeight(40)};
920
+ ${textLeft};
921
+ ${textColor(getProp(colors, 'text/main'))};
922
+ &.non-child {
923
+ ${cursorPointer};
924
+ transition: background-color 300ms ease;
925
+ &.disabled {
926
+ ${cursorNotAllowed};
927
+ ${textColor(getProp(colors, 'system/disabled'))};
928
+ }
929
+ &:not(.disabled) {
930
+ &:hover {
931
+ ${bgColor(getProp(colors, 'fill/hover'))};
932
+ }
933
+ &:focus {
934
+ ${bgColor(getProp(colors, 'fill/focus'))};
935
+ }
936
+ &:active {
937
+ ${bgColor(getProp(colors, 'fill/pressed'))};
938
+ }
939
+ }
940
+ &.DGN-Hidden {
941
+ display: none !important;
942
+ }
943
+ }
944
+ &.focus {
945
+ ${bgColor(getProp(colors, 'fill/focus'))};
946
+ }
947
+ &.TreeView-Item-active .DGN-UI-Typography {
948
+ font-weight: bold;
949
+ }
950
+ }
951
+ &.expand-able {
952
+ .TreeView-All {
953
+ margin-left: ${spacing([8.5])};
954
+ }
955
+ .TreeView-Item.non-child {
956
+ padding-left: ${spacing([8.5])};
957
+ }
958
+ }
959
+ `;
960
+
961
+ // TreeView.defaultProps = {
962
+ // allowSearch: false,
963
+ // autoExpandToResult: true,
964
+ // className: '',
965
+ // dataSource: [],
966
+ // disabled: false,
967
+ // disabledBoldResult: false,
968
+ // disabledRelevantValue: false,
969
+ // displayExpr: 'name',
970
+ // expand: false,
971
+ // expandIcon: 'ArrowDown',
972
+ // id: 'id',
973
+ // multiple: false,
974
+ // multipleValueMode: 'multiple',
975
+ // parentID: 'parentID',
976
+ // renderAsyncFromLevel: 2,
977
+ // renderAsyncWithLength: 200,
978
+ // searchMode: 'contains',
979
+ // searchProps: {},
980
+ // selectAll: false,
981
+ // selectAllLabel: getGlobal('selectAll'),
982
+ // selectBox: false,
983
+ // showChildrenOfResult: false,
984
+ // showSelectedItems: false,
985
+ // value: [],
986
+ // valueExpr: '',
987
+ // };
988
+
989
+ TreeView.propTypes = {
990
+ /** If `true`, display input box search. */
991
+ allowSearch: PropTypes.bool,
992
+ /** If `true`, expand TreeView to match result. */
993
+ autoExpandToResult: PropTypes.bool,
994
+ /** Class for component. */
995
+ className: PropTypes.string,
996
+ /** Icon display for collapse icon. */
997
+ collapseIcon: PropTypes.any,
998
+ /** The array of elements that appear in the tree list. */
999
+ dataSource: PropTypes.array,
1000
+ /** If `true`, the component is disabled. */
1001
+ disabled: PropTypes.bool,
1002
+ /** If `true`, prevent display content of match values with bold style. */
1003
+ disabledBoldResult: PropTypes.bool,
1004
+ /** If `true`, disabled parent and children item (only supported for multipleValueMode is single). */
1005
+ disabledRelevantValue: PropTypes.bool,
1006
+ /** Field name used for text display in dropdown list.<br/>
1007
+ * Example: 'name', '{id} - {name}', '{age} age(s)'<br/>
1008
+ * Note: don't use 'id - name', return undefined
1009
+ */
1010
+ displayExpr: PropTypes.string,
1011
+ /** If `true`, expand immediate after render (shouldn't use this). */
1012
+ expand: PropTypes.bool,
1013
+ /** Icon display for expand icon. */
1014
+ expandIcon: PropTypes.any,
1015
+ /** If `true`, value must be an array and the treeview will support multiple selections. */
1016
+ multiple: PropTypes.bool,
1017
+ /** Return value for the select multiple use case. */
1018
+ multipleValueMode: PropTypes.oneOf(['single', 'multiple', 'inheritance']),
1019
+ /**
1020
+ * Callback fired when the value changes.<br />
1021
+ * return 2 parameters (e, data)<br />
1022
+ * * e: element (insist {value, justSelected, data})<br/>
1023
+ * &nbsp;&nbsp;&nbsp;&nbsp; + value is one or an array of selected values<br />
1024
+ * &nbsp;&nbsp;&nbsp;&nbsp; + justSelected is value has just been selected (either true or false))<br />
1025
+ * &nbsp;&nbsp;&nbsp;&nbsp; + data is one or an array of selected values with full information<br />
1026
+ * * data: array of selected values (not recommend because it's the same e.value)
1027
+ */
1028
+ onChange: PropTypes.func,
1029
+ /** Used for mapping into a nested list. */
1030
+ parentID: PropTypes.string.isRequired,
1031
+ /** Will render asynchronously from level equal this number. */
1032
+ renderAsyncFromLevel: PropTypes.oneOf([2, 3, 4, 5]),
1033
+ /** Will render asynchronously if the number of elements is greater than this number. */
1034
+ renderAsyncWithLength: PropTypes.number,
1035
+ /** Function displays items by custom.<br/>
1036
+ * renderItem={(data, index) => data.name + ' - ' + data.role}<br/>
1037
+ * --> such as: displayExpr={'name - role'}
1038
+ */
1039
+ renderItem: PropTypes.func,
1040
+ /**
1041
+ * Duration wait enter search content on search.<br/>
1042
+ * Example: 700 -> 700ms, '700ms' -> 700ms, '0.7s' -> 700ms, '1m' -> 60000ms
1043
+ * If `true`, used default delayOnInput.
1044
+ */
1045
+ searchDelayTime: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
1046
+ /** Specifies a comparison operation used to search items. */
1047
+ searchMode: PropTypes.oneOf(['contains', 'similar']),
1048
+ /** The props for InputBase. */
1049
+ searchProps: PropTypes.object,
1050
+ /** If `true`, allow select/unselect all items on one click (just support for multiple). */
1051
+ selectAll: PropTypes.bool,
1052
+ /** The content display for label of checkbox select all */
1053
+ selectAllLabel: PropTypes.string,
1054
+ /** If `true`, show checkbox in each item. */
1055
+ selectBox: PropTypes.bool,
1056
+ /** If `true`, still show children of last result was found. */
1057
+ showChildrenOfResult: PropTypes.bool,
1058
+ /** If `true`, display all value in a box. */
1059
+ showSelectedItems: PropTypes.bool,
1060
+ /** Used to identify the parent key. */
1061
+ id: PropTypes.string.isRequired,
1062
+ /** The displayed value of component. */
1063
+ value: PropTypes.oneOfType([PropTypes.array, PropTypes.string]),
1064
+ /** The field name used for the returned result. */
1065
+ valueExpr: PropTypes.string,
1066
+ /**
1067
+ * get ref of TreeView component, insist:<br/>
1068
+ * {<br/>
1069
+ * &nbsp;&nbsp;&nbsp;&nbsp;disabled: true/false,<br/>
1070
+ * &nbsp;&nbsp;&nbsp;&nbsp;displayExpr: string,<br/>
1071
+ * &nbsp;&nbsp;&nbsp;&nbsp;valueExpr: string,<br/>
1072
+ * &nbsp;&nbsp;&nbsp;&nbsp;id: string,<br/>
1073
+ * &nbsp;&nbsp;&nbsp;&nbsp;parentID: string,<br/>
1074
+ * &nbsp;&nbsp;&nbsp;&nbsp;value: string/array<br/>
1075
+ * &nbsp;&nbsp;&nbsp;&nbsp;getValue: get selected values (instead of onChange function),<br/>
1076
+ * &nbsp;&nbsp;&nbsp;&nbsp;setValue: set array of value (only multiple),<br/>
1077
+ * &nbsp;&nbsp;&nbsp;&nbsp;handleCheckbox: checked/unchecked a Checkbox, includes 2 parameters (isChecked, value):<br/>
1078
+ * &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; + isChecked: checked if true (default is false) <br/>
1079
+ * &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; + value: selected values, use 'all' for all values (default is 'all') <br/>
1080
+ * &nbsp;&nbsp;&nbsp;&nbsp;get: get DOM of TreeView component<br/>
1081
+ * }
1082
+ */
1083
+ };
1084
+
1085
+ export default TreeView;