adata-ui 2.1.40-beta.16 → 2.1.40-beta.18

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 (491) hide show
  1. package/-error.vue +170 -170
  2. package/.editorconfig +12 -12
  3. package/.gitlab-ci.yml +16 -16
  4. package/.nuxtrc +1 -1
  5. package/.nvmrc +1 -1
  6. package/.playground/app.config.ts +5 -5
  7. package/.playground/nuxt.config.ts +3 -3
  8. package/README.md +75 -75
  9. package/app.config.ts +28 -28
  10. package/app.vue +8 -8
  11. package/assets/styles/index.scss +104 -166
  12. package/assets/styles/modules/_base.scss +5 -5
  13. package/assets/styles/modules/_typography.scss +152 -152
  14. package/components/elements/README.md +1 -1
  15. package/components/elements/a-select-row/index.vue +140 -138
  16. package/components/elements/accordion/AAccordion.vue +197 -199
  17. package/components/elements/accordion/AAccordionGroup/AAccordionGroup.vue +145 -145
  18. package/components/elements/accordion/AAccordionGroup/types.ts +20 -20
  19. package/components/elements/accordion/AAccordionGroup/ui.config.ts +22 -22
  20. package/components/elements/accordion/types.ts +14 -14
  21. package/components/elements/accordion/ui.config.ts +22 -22
  22. package/components/elements/alert/AAlert.vue +65 -52
  23. package/components/elements/banner/ABanner.vue +49 -49
  24. package/components/elements/bg-block/ABgBlock.vue +11 -11
  25. package/components/elements/button/AButton.vue +188 -188
  26. package/components/elements/button/types.ts +24 -24
  27. package/components/elements/button-login/index.vue +22 -18
  28. package/components/elements/calendar/ACalendar.vue +83 -83
  29. package/components/elements/carousel/ACarousel.vue +159 -159
  30. package/components/elements/carousel/config.ui.ts +15 -15
  31. package/components/elements/carousel/types.ts +18 -18
  32. package/components/elements/chip-wrapper/AChipWrapper.vue +80 -80
  33. package/components/elements/chip-wrapper/types.ts +12 -12
  34. package/components/elements/chips/AChips.vue +32 -32
  35. package/components/elements/companies/AOurClients.vue +45 -45
  36. package/components/elements/curve-block/ACurveBlock.vue +292 -292
  37. package/components/elements/digit-badge/ADigitBadge.vue +83 -85
  38. package/components/elements/error-template/index.vue +48 -48
  39. package/components/elements/error-template/types.ts +23 -23
  40. package/components/elements/feature-description/AFeatureDescription.vue +112 -112
  41. package/components/elements/illustrations/noAccess.vue +71 -71
  42. package/components/elements/infinite-carousel/AInfiniteCarousel.vue +57 -57
  43. package/components/elements/infinite-scroll/AInfiniteScroll.vue +33 -33
  44. package/components/elements/leave-note/ALeaveNote.vue +78 -99
  45. package/components/elements/pagination/APagination.vue +110 -110
  46. package/components/elements/photos-animation/APhotosAnimation.vue +85 -85
  47. package/components/elements/select/ASelect.vue +447 -447
  48. package/components/elements/select/ASelectMobile.vue +186 -186
  49. package/components/elements/select/ui/select-button.vue +112 -112
  50. package/components/elements/select/ui/select-list.vue +99 -99
  51. package/components/elements/show-more/AShowMore.vue +35 -35
  52. package/components/elements/skeleton/ASkeleton.vue +44 -44
  53. package/components/elements/star-rating/AStarRating.vue +181 -189
  54. package/components/elements/star-rating/types.ts +7 -7
  55. package/components/elements/star-rating/ui/Star.vue +74 -74
  56. package/components/elements/status-badge/AStatusBadge.vue +74 -105
  57. package/components/elements/table/ATable.vue +93 -93
  58. package/components/elements/table/table.config.ts +32 -32
  59. package/components/elements/tree-select/ATreeSelect.vue +173 -157
  60. package/components/elements/tree-select/TreeService.ts +249 -184
  61. package/components/elements/tree-select/components/tree-select-nodes.vue +91 -0
  62. package/components/elements/tree-select/types.ts +34 -63
  63. package/components/elements/tree-select-mobile/ATreeSelectMobile.vue +79 -79
  64. package/components/elements/tree-select-mobile/components/ATreeSelectNodesMobile.vue +175 -175
  65. package/components/features/color-mode/AColorMode.client.vue +54 -96
  66. package/components/features/dropdown/ADropdown.vue +127 -127
  67. package/components/features/go-top/GoTop.vue +63 -63
  68. package/components/features/lang-switcher/lang-switcher.vue +73 -158
  69. package/components/features/payment/banner/BasicPlusLimitBanner.vue +104 -104
  70. package/components/features/payment/banner/PaymentBanner.vue +108 -108
  71. package/components/features/payment/banner/UpSellBanner.vue +125 -125
  72. package/components/features/payment/process/PaymentKaspiQrSidePanel.vue +161 -179
  73. package/components/features/payment/process/PaymentKaspiRedirectSidePanel.vue +112 -123
  74. package/components/features/payment/process/PaymentMethodSidePanel.vue +121 -138
  75. package/components/features/payment/process/PaymentProcess.vue +158 -158
  76. package/components/features/payment/process/PaymentTopUpSidePanel.vue +133 -119
  77. package/components/features/pk-mobile-services/APkMobileServices.vue +158 -136
  78. package/components/features//321/201hange-version/AChangeVersion.vue +20 -20
  79. package/components/forms/README.md +1 -1
  80. package/components/forms/checkbox/ACheckbox.vue +149 -149
  81. package/components/forms/feedback-form/FeedbackForm.vue +177 -177
  82. package/components/forms/input/button/AInputButton.vue +53 -53
  83. package/components/forms/input/date/AInputDate.vue +213 -213
  84. package/components/forms/input/password/AInputPassword.vue +53 -59
  85. package/components/forms/input/standard/AInputStandard.vue +415 -415
  86. package/components/forms/input/textarea/ATextarea.vue +203 -203
  87. package/components/forms/radio-button/ARadioButton.vue +95 -95
  88. package/components/forms/request-demo/ARequestDemo.vue +108 -108
  89. package/components/forms/toggle/AToggle.vue +157 -156
  90. package/components/forms/toggle/types.ts +16 -16
  91. package/components/modals/AConfirmationEmail.vue +40 -40
  92. package/components/modals/AboutTariffModal.vue +114 -114
  93. package/components/modals/AnotherDeviceModal.vue +60 -64
  94. package/components/modals/ApplicationAcceptedModal.vue +47 -44
  95. package/components/modals/ConnectingTariffModal.vue +67 -60
  96. package/components/modals/ContactsMobileModel.vue +182 -182
  97. package/components/modals/ContentNavigationModal.vue +355 -99
  98. package/components/modals/Insufficient-funds-modal.vue +77 -62
  99. package/components/modals/LimitReachedModal.vue +30 -31
  100. package/components/modals/NoAccessModal.vue +37 -35
  101. package/components/modals/PaymentMethodModal.vue +101 -101
  102. package/components/modals/RedirectsBanksModal.vue +69 -69
  103. package/components/modals/ReplenishModal.vue +132 -132
  104. package/components/modals/ReportBugConfirmModal.vue +30 -32
  105. package/components/modals/ReportBugModal.vue +164 -172
  106. package/components/modals/Resend.vue +82 -81
  107. package/components/modals/SubmitApplicationModal.vue +123 -126
  108. package/components/modals/id/AuthModal.vue +92 -92
  109. package/components/modals/id/IdAutoLogoutModal.vue +45 -45
  110. package/components/modals/id/IdBanner.vue +61 -61
  111. package/components/modals/id/IdConfirmAccountOtpModal.vue +186 -181
  112. package/components/modals/id/IdConfirmSuccessfulModal.vue +41 -41
  113. package/components/modals/id/IdLoginModal.vue +341 -336
  114. package/components/modals/id/IdModals.vue +114 -127
  115. package/components/modals/id/IdNewPasswordModal.vue +129 -129
  116. package/components/modals/id/IdOtpInput.vue +156 -156
  117. package/components/modals/id/IdPasswordSuccessfulModal.vue +25 -25
  118. package/components/modals/id/IdRecoveryModal.vue +117 -117
  119. package/components/modals/id/IdRegistrationModal.vue +215 -215
  120. package/components/modals/id/IdResetPasswordOtpModal.vue +158 -158
  121. package/components/modals/id/IdTwoFactorModal.vue +130 -125
  122. package/components/navigation/README.md +1 -1
  123. package/components/navigation/bottom-navigation/ABottomNavigation.vue +106 -106
  124. package/components/navigation/breadcrumbs/ABreadcrumbs.vue +67 -128
  125. package/components/navigation/breadcrumbs/types.ts +5 -8
  126. package/components/navigation/footer/AFooter.vue +284 -283
  127. package/components/navigation/footer/ui/a-footer-accordion.vue +118 -118
  128. package/components/navigation/header/AHeader.vue +220 -237
  129. package/components/navigation/header/AlmatyContacts.vue +145 -145
  130. package/components/navigation/header/AstanaContacts.vue +67 -67
  131. package/components/navigation/header/CardGallery.vue +249 -251
  132. package/components/navigation/header/ContactMenu.vue +114 -48
  133. package/components/navigation/header/HeaderLink.vue +286 -254
  134. package/components/navigation/header/ListItem.vue +31 -31
  135. package/components/navigation/header/NavCard.vue +41 -41
  136. package/components/navigation/header/NavList.vue +131 -72
  137. package/components/navigation/header/NotificationsMenu.vue +51 -50
  138. package/components/navigation/header/ProductMenu.vue +146 -100
  139. package/components/navigation/header/ProfileMenu.vue +196 -167
  140. package/components/navigation/header/TopHeader.vue +196 -0
  141. package/components/navigation/header/types.ts +28 -28
  142. package/components/navigation/line-tabs/ALineTabs.vue +111 -111
  143. package/components/navigation/line-tabs/types.ts +21 -21
  144. package/components/navigation/mobile-navigation/AMobileNavigation.vue +104 -112
  145. package/components/navigation/pill-tabs/APillTabs.vue +177 -177
  146. package/components/navigation/pill-tabs/types.ts +24 -24
  147. package/components/navigation/side-navigation/ASideNavigation.vue +406 -406
  148. package/components/overlays/README.md +1 -1
  149. package/components/overlays/modal/AModal.vue +335 -335
  150. package/components/overlays/side-panel/ASidePanel.vue +439 -442
  151. package/components/overlays/sideover/ASlideover.vue +351 -351
  152. package/components/overlays/tooltip/ATooltip.vue +237 -237
  153. package/components/transitions/ATransitionHeight.vue +67 -67
  154. package/components/utils/index.ts +19 -19
  155. package/components/utils/removeTrailingSlash.ts +7 -7
  156. package/composables/highlight.ts +18 -18
  157. package/composables/modalsState.ts +8 -8
  158. package/composables/projectState.ts +2 -2
  159. package/composables/useAdaptive.ts +46 -46
  160. package/composables/useBuyTariffs.ts +91 -91
  161. package/composables/useCarouselScroll.ts +49 -49
  162. package/composables/useHeaderNavigationLinks.ts +477 -519
  163. package/composables/useIdModals.ts +36 -36
  164. package/composables/usePayment.ts +78 -78
  165. package/composables/useUIValidation.ts +16 -16
  166. package/composables/useUrls.ts +23 -23
  167. package/eslint.config.mjs +45 -45
  168. package/i18n/i18n.config.ts +21 -21
  169. package/i18n.config.ts +21 -21
  170. package/icons/adata-logo.vue +17 -17
  171. package/icons/ai-assistant.vue +13 -13
  172. package/icons/akimat.vue +20 -20
  173. package/icons/arrow/arrow-bottom-left-on-square.vue +5 -5
  174. package/icons/arrow/arrow-circle-down.vue +16 -16
  175. package/icons/arrow/arrow-circle-reset.vue +16 -16
  176. package/icons/arrow/arrow-corner.vue +9 -9
  177. package/icons/arrow/arrow-graph-down.vue +13 -13
  178. package/icons/arrow/arrow-graph-up.vue +14 -14
  179. package/icons/arrow/arrow-square-down.vue +15 -15
  180. package/icons/arrow/arrow-top-right-on-square.vue +6 -6
  181. package/icons/arrow-currency-gray.vue +5 -5
  182. package/icons/arrow-currency-green.vue +5 -5
  183. package/icons/arrow-currency-red.vue +5 -5
  184. package/icons/arrow-side-up.vue +6 -6
  185. package/icons/avatar.vue +12 -12
  186. package/icons/bank.vue +5 -5
  187. package/icons/block.vue +16 -16
  188. package/icons/bookmark/bookmark-filled.vue +18 -18
  189. package/icons/bookmark/bookmark.vue +5 -5
  190. package/icons/browsers/browser-duck.vue +65 -65
  191. package/icons/browsers/browser-google.vue +30 -30
  192. package/icons/browsers/browser-yandex.vue +13 -13
  193. package/icons/building-vector.vue +7 -7
  194. package/icons/calculator.vue +7 -7
  195. package/icons/calendar.vue +24 -24
  196. package/icons/car.vue +7 -7
  197. package/icons/chart-bar.vue +5 -5
  198. package/icons/chart-pie.vue +16 -16
  199. package/icons/check/check-circle.vue +6 -6
  200. package/icons/check/check-shield.vue +14 -14
  201. package/icons/check/check.vue +17 -17
  202. package/icons/check/checkmark-circle.vue +6 -6
  203. package/icons/check-sb.vue +7 -7
  204. package/icons/checkbox/checkbox-active.vue +17 -17
  205. package/icons/checkbox/checkbox-empty.vue +10 -10
  206. package/icons/checkbox/checkbox-intermediate.vue +7 -7
  207. package/icons/chevron/chevron-down.vue +5 -5
  208. package/icons/chevron/chevron-left.vue +5 -5
  209. package/icons/chevron/chevron-right.vue +5 -5
  210. package/icons/chevron/chevron-up.vue +5 -5
  211. package/icons/chevron/double-chevron-right.vue +12 -12
  212. package/icons/clipboard-text.vue +7 -7
  213. package/icons/clock.vue +25 -25
  214. package/icons/close.vue +16 -16
  215. package/icons/company/company-bazis.vue +21 -21
  216. package/icons/company/company-bereke.vue +25 -25
  217. package/icons/company/company-bigroup.vue +16 -16
  218. package/icons/company/company-erg.vue +17 -17
  219. package/icons/company/company-forte.vue +21 -21
  220. package/icons/company/company-halyk.vue +15 -15
  221. package/icons/company/company-jusan.vue +31 -31
  222. package/icons/company/company-kaspi.vue +14 -14
  223. package/icons/company/company-kazzinc.vue +22 -22
  224. package/icons/company/company-mycar.vue +13 -13
  225. package/icons/company/company-samruk.vue +21 -21
  226. package/icons/company-egov-small.vue +15 -15
  227. package/icons/company.vue +8 -8
  228. package/icons/copy.vue +7 -7
  229. package/icons/currency/currency-dollar.vue +16 -16
  230. package/icons/currency/currency-down.vue +22 -22
  231. package/icons/currency/currency-eur.vue +57 -57
  232. package/icons/currency/currency-rub.vue +7 -7
  233. package/icons/currency/currency-tenge.vue +9 -9
  234. package/icons/currency/currency-usd.vue +221 -221
  235. package/icons/currency/currency-yuan.vue +25 -25
  236. package/icons/default-avatar.vue +20 -20
  237. package/icons/delete.vue +7 -7
  238. package/icons/document.vue +5 -5
  239. package/icons/download.vue +11 -11
  240. package/icons/edit.vue +7 -7
  241. package/icons/education.vue +16 -16
  242. package/icons/egov-small.vue +7 -7
  243. package/icons/excel-icon.vue +14 -14
  244. package/icons/expand-window.vue +7 -7
  245. package/icons/eye-closed.vue +26 -26
  246. package/icons/eye-open.vue +7 -7
  247. package/icons/eye-opened.vue +23 -23
  248. package/icons/file/file.vue +16 -16
  249. package/icons/file/files.vue +16 -16
  250. package/icons/filter.vue +5 -5
  251. package/icons/flag.vue +7 -7
  252. package/icons/gift.vue +8 -8
  253. package/icons/globe.vue +16 -16
  254. package/icons/google.vue +41 -41
  255. package/icons/gradiend-icons/files-gradient.vue +22 -22
  256. package/icons/gradiend-icons/hammer-gradient.vue +62 -62
  257. package/icons/graph-pie.vue +14 -14
  258. package/icons/hand/hand-thumb-up-filled.vue +5 -5
  259. package/icons/hand/hand-thumb-up.vue +5 -5
  260. package/icons/hand-with-phone/hand-with-phone-dark.vue +52 -52
  261. package/icons/hand-with-phone/hand-with-phone-light.vue +52 -52
  262. package/icons/handshake.vue +5 -5
  263. package/icons/hcheck.vue +14 -14
  264. package/icons/hdocument.vue +7 -7
  265. package/icons/history.vue +5 -5
  266. package/icons/horizontal-more.vue +13 -13
  267. package/icons/hot-line.vue +6 -6
  268. package/icons/hummer.vue +16 -16
  269. package/icons/id.vue +7 -7
  270. package/icons/info/info-circle.vue +29 -29
  271. package/icons/invoice.vue +7 -7
  272. package/icons/judge.vue +14 -14
  273. package/icons/kaspi-qr.vue +13 -13
  274. package/icons/link-chain.vue +28 -28
  275. package/icons/link.vue +7 -7
  276. package/icons/linkedin.vue +24 -24
  277. package/icons/loader-circle.vue +27 -27
  278. package/icons/location.vue +8 -8
  279. package/icons/lock.vue +5 -5
  280. package/icons/logo.vue +15 -15
  281. package/icons/logout.vue +16 -16
  282. package/icons/magnify/magnifying-glass-minus.vue +8 -8
  283. package/icons/magnify/magnifying-glass-plus.vue +9 -9
  284. package/icons/magnify/magnifying-glass.vue +9 -9
  285. package/icons/mail.vue +7 -7
  286. package/icons/mailru.vue +34 -34
  287. package/icons/main-filter.vue +5 -5
  288. package/icons/map/map-pin-filled.vue +7 -7
  289. package/icons/map/map-pin-rect.vue +15 -15
  290. package/icons/map/map-pin.vue +7 -7
  291. package/icons/map-marker-start.vue +7 -7
  292. package/icons/map-paper.vue +5 -5
  293. package/icons/medal.vue +7 -7
  294. package/icons/menu-filled.vue +20 -20
  295. package/icons/menu.vue +8 -8
  296. package/icons/message/message.vue +12 -12
  297. package/icons/minus/minus-circle.vue +10 -10
  298. package/icons/money.vue +5 -5
  299. package/icons/monitoring.vue +10 -10
  300. package/icons/moon.vue +8 -8
  301. package/icons/more.vue +29 -29
  302. package/icons/note-pencil.vue +14 -14
  303. package/icons/note.vue +14 -14
  304. package/icons/notification.vue +16 -16
  305. package/icons/paperclip.vue +7 -7
  306. package/icons/payment/payment-card.vue +6 -6
  307. package/icons/payment/payment-kaspi.vue +11 -11
  308. package/icons/person-vector.vue +7 -7
  309. package/icons/person-with-briefcase.vue +10 -10
  310. package/icons/phone-filled.vue +5 -5
  311. package/icons/phone.vue +7 -7
  312. package/icons/plus/plus-circle.vue +8 -8
  313. package/icons/plus/plus.vue +13 -13
  314. package/icons/profile.vue +5 -5
  315. package/icons/radio/radio-check.vue +8 -8
  316. package/icons/radio/radio-empty.vue +10 -10
  317. package/icons/receipt.vue +8 -8
  318. package/icons/robot.vue +14 -14
  319. package/icons/sanctions.vue +8 -8
  320. package/icons/scales/scale.vue +16 -16
  321. package/icons/scales/scales.vue +5 -5
  322. package/icons/scales/standing-scales.vue +15 -15
  323. package/icons/search.vue +27 -27
  324. package/icons/share/share-alt.vue +5 -5
  325. package/icons/share/share.vue +14 -14
  326. package/icons/ship.vue +8 -8
  327. package/icons/socials/face-book.vue +15 -15
  328. package/icons/socials/instagram.vue +19 -19
  329. package/icons/socials/telegram.vue +15 -15
  330. package/icons/socials/tik-tok.vue +15 -15
  331. package/icons/socials/youtube.vue +16 -16
  332. package/icons/sort/sort-asc.vue +15 -15
  333. package/icons/sort/sort-desc.vue +15 -15
  334. package/icons/splitting-arrows.vue +8 -8
  335. package/icons/star/star-filled.vue +40 -40
  336. package/icons/star/star-half-filled.vue +20 -20
  337. package/icons/star/star.vue +25 -25
  338. package/icons/sun.vue +14 -24
  339. package/icons/sviazi.vue +5 -5
  340. package/icons/tag.vue +30 -30
  341. package/icons/tasks.vue +10 -10
  342. package/icons/tender-search.vue +11 -11
  343. package/icons/toasts/check-circle-toast.vue +6 -6
  344. package/icons/toasts/warning-triangle-toast.vue +7 -7
  345. package/icons/trash.vue +13 -13
  346. package/icons/triangle.vue +10 -10
  347. package/icons/truck.vue +7 -7
  348. package/icons/user-square.vue +14 -14
  349. package/icons/user.vue +22 -22
  350. package/icons/users-focus.vue +8 -8
  351. package/icons/users-three.vue +7 -7
  352. package/icons/users.vue +8 -8
  353. package/icons/warning/warning-circle.vue +29 -29
  354. package/icons/warning/warning-triangle-filled.vue +12 -12
  355. package/icons/warning/warning-triangle.vue +28 -28
  356. package/icons/whatsapp.vue +8 -8
  357. package/icons/work-bag.vue +11 -11
  358. package/icons/work-case.vue +9 -9
  359. package/icons/work-search.vue +10 -10
  360. package/icons/work.vue +5 -5
  361. package/icons/x-mark.vue +15 -15
  362. package/icons/yandex.vue +28 -28
  363. package/illustrations/address-location.vue +38 -38
  364. package/illustrations/ball-with-chain.vue +120 -120
  365. package/illustrations/bill.vue +133 -133
  366. package/illustrations/buildings.vue +82 -82
  367. package/illustrations/calendar.vue +156 -156
  368. package/illustrations/chains.vue +152 -152
  369. package/illustrations/coin-percent.vue +126 -126
  370. package/illustrations/coins-stack.vue +202 -202
  371. package/illustrations/delete-dark.vue +31 -31
  372. package/illustrations/delete.vue +32 -32
  373. package/illustrations/doc-with-stamp.vue +126 -126
  374. package/illustrations/document.vue +64 -64
  375. package/illustrations/door.vue +74 -74
  376. package/illustrations/empty-box.vue +77 -77
  377. package/illustrations/empty-wallet.vue +161 -161
  378. package/illustrations/graph-in-coin.vue +119 -119
  379. package/illustrations/hammer.vue +156 -156
  380. package/illustrations/hand-cash.vue +108 -108
  381. package/illustrations/info.vue +39 -39
  382. package/illustrations/mail.vue +68 -68
  383. package/illustrations/ok.vue +62 -62
  384. package/illustrations/people-group.vue +237 -237
  385. package/illustrations/person-with-phone.vue +187 -187
  386. package/illustrations/person.vue +159 -159
  387. package/illustrations/phone-check.vue +90 -90
  388. package/illustrations/phone-payment-method.vue +223 -223
  389. package/illustrations/search.vue +14 -14
  390. package/illustrations/stop-hand.vue +77 -77
  391. package/illustrations/stop-sign.vue +34 -34
  392. package/illustrations/suit.vue +111 -111
  393. package/illustrations/suitcase.vue +105 -105
  394. package/illustrations/terminal-dark.vue +48 -48
  395. package/illustrations/terminal.vue +234 -234
  396. package/illustrations/trash-can.vue +108 -108
  397. package/illustrations/turn-on-tariff.vue +38 -38
  398. package/illustrations/two-persons.vue +169 -169
  399. package/lang/en.ts +837 -878
  400. package/lang/kk.ts +839 -880
  401. package/lang/ru.ts +840 -881
  402. package/layouts/default.vue +13 -13
  403. package/nuxt.config.ts +88 -88
  404. package/package.json +69 -69
  405. package/plugins/maska.ts +4 -4
  406. package/plugins/toast.client.ts +58 -41
  407. package/public/kaspi/logo.svg +4 -4
  408. package/shared/constans/pages.ts +90 -96
  409. package/tailwind.config.ts +163 -194
  410. package/tests/AButton.test.ts +81 -81
  411. package/tsconfig.json +6 -6
  412. package/utils/getMaxZindex.ts +25 -25
  413. package/utils/localizedNavigation.ts +36 -36
  414. package/vitest.config.ts +14 -14
  415. package/.claude/settings.local.json +0 -19
  416. package/.playground/app.vue +0 -102
  417. package/components/elements/a-select-row/ASelectRowV2.vue +0 -214
  418. package/components/elements/button/AButtonV2.vue +0 -114
  419. package/components/elements/segmented/ASegmentedV2.vue +0 -151
  420. package/components/elements/select/ASelectV2.vue +0 -588
  421. package/components/elements/show-more/AShowMoreV2.vue +0 -26
  422. package/components/elements/tree-select/components/ATreeSelectNode.vue +0 -104
  423. package/components/elements/tree-select/utils.ts +0 -30
  424. package/components/elements/tree-select-modal/ATreeSelectModal.vue +0 -217
  425. package/components/features/dropdown/ADropdownV2.vue +0 -140
  426. package/components/forms/checkbox/ACheckboxV2.vue +0 -229
  427. package/components/forms/input/AInputV2.vue +0 -542
  428. package/components/forms/input/textarea/ATextareaV2.vue +0 -248
  429. package/components/forms/toggle/AToggleV2.vue +0 -71
  430. package/components/navigation/header/HeaderUsage.vue +0 -139
  431. package/components/navigation/header/SystemNotification.vue +0 -108
  432. package/components/navigation/pill-tabs/APillTabsV2.vue +0 -154
  433. package/components/overlays/drawer/ADrawerV2.vue +0 -335
  434. package/components/overlays/modal/AModalV2.vue +0 -397
  435. package/components/overlays/tooltip/ATooltipV2.vue +0 -223
  436. package/components/overlays/tooltip/types.ts +0 -26
  437. package/components/overlays/tooltip/useTooltipTrigger.ts +0 -101
  438. package/composables/useAccessTokenCookie.ts +0 -25
  439. package/composables/useActiveNavigation.ts +0 -84
  440. package/composables/useChipOverflow.ts +0 -92
  441. package/icons/archive.vue +0 -16
  442. package/icons/arrow/arrow-right.vue +0 -14
  443. package/icons/arrow/arrows-in.vue +0 -11
  444. package/icons/arrow/arrows-out.vue +0 -11
  445. package/icons/arrow/arrows-resize-in.vue +0 -38
  446. package/icons/arrow/arrows-resize-out.vue +0 -17
  447. package/icons/bot.vue +0 -52
  448. package/icons/briefcase.vue +0 -14
  449. package/icons/car-side.vue +0 -16
  450. package/icons/cart.vue +0 -15
  451. package/icons/clock-time.vue +0 -24
  452. package/icons/compare-outlined.vue +0 -8
  453. package/icons/dots-horizontal.vue +0 -31
  454. package/icons/download-line.vue +0 -13
  455. package/icons/download-rounded.vue +0 -15
  456. package/icons/egov.vue +0 -41
  457. package/icons/elicense.vue +0 -38
  458. package/icons/favourite-bookmark-outline.vue +0 -17
  459. package/icons/file-pen.vue +0 -31
  460. package/icons/file-stack.vue +0 -31
  461. package/icons/file-types/excel.vue +0 -131
  462. package/icons/file-types/html.vue +0 -13
  463. package/icons/file-types/jpeg.vue +0 -16
  464. package/icons/file-types/pdf.vue +0 -11
  465. package/icons/file-types/png.vue +0 -11
  466. package/icons/file-types/rar.vue +0 -11
  467. package/icons/file-types/word.vue +0 -50
  468. package/icons/file-types/zip.vue +0 -11
  469. package/icons/gauge.vue +0 -17
  470. package/icons/git-compare.vue +0 -38
  471. package/icons/graduation-cap.vue +0 -31
  472. package/icons/graph-loading.vue +0 -34
  473. package/icons/help-question-circle.vue +0 -26
  474. package/icons/in-row-type.vue +0 -46
  475. package/icons/in-table-type.vue +0 -29
  476. package/icons/message-dotted.vue +0 -30
  477. package/icons/notification-error.vue +0 -17
  478. package/icons/person.vue +0 -22
  479. package/icons/settings.vue +0 -26
  480. package/icons/shield-alert.vue +0 -31
  481. package/icons/shield-verified.vue +0 -14
  482. package/icons/socials/facebook-color.vue +0 -16
  483. package/icons/socials/globe-color.vue +0 -16
  484. package/icons/socials/instagram-color.vue +0 -46
  485. package/icons/socials/linkedin-color.vue +0 -14
  486. package/icons/socials/telegram-color.vue +0 -16
  487. package/icons/socials/tiktok-color.vue +0 -14
  488. package/icons/socials/vk-color.vue +0 -16
  489. package/icons/socials/youtube-color.vue +0 -16
  490. package/icons/view-eye-open.vue +0 -13
  491. package/utils/twMerge.ts +0 -34
@@ -1,184 +1,249 @@
1
- import type {
2
- TreeData,
3
- TreeNodeState,
4
- TreeServiceOptions,
5
- TreeViewNode,
6
- } from '#adata-ui/components/elements/tree-select/types'
7
- import highlight from '#adata-ui/composables/highlight'
8
-
9
- export const useTreeService = (options: TreeServiceOptions = {}) => {
10
- const {
11
- withoutId = false,
12
- idKey = 'id',
13
- nameKey = 'name',
14
- childrenKey = 'children',
15
- hasChildrenKey,
16
- lazy = false,
17
- loadChildren,
18
- } = options
19
-
20
- const nodes = ref<TreeViewNode[]>([])
21
- const nodeMap = new Map<string | number, TreeViewNode>()
22
-
23
- const readId = (item: TreeData) => item[idKey] as string | number
24
- const readName = (item: TreeData) => String(item[nameKey] ?? '')
25
- const readChildren = (item: TreeData) => (item[childrenKey] as TreeData[] | undefined) ?? []
26
-
27
- const createNode = (
28
- item: TreeData,
29
- level: number,
30
- parent: TreeViewNode | null,
31
- ): TreeViewNode => {
32
- const id = readId(item)
33
- const name = readName(item)
34
- const rawChildren = readChildren(item)
35
- const baseText = withoutId ? name : `${id} - ${name}`
36
- const hasLazyChildren = lazy && !!hasChildrenKey && !!item[hasChildrenKey]
37
-
38
- const node: TreeViewNode = reactive({
39
- id,
40
- name,
41
- baseText,
42
- text: baseText,
43
- level,
44
- state: 'unchecked' as TreeNodeState,
45
- expandable: rawChildren.length > 0 || hasLazyChildren,
46
- expanded: false,
47
- hidden: false,
48
- loaded: !(hasLazyChildren && rawChildren.length === 0),
49
- loading: false,
50
- parent,
51
- children: [],
52
- raw: markRaw(item),
53
- }) as TreeViewNode
54
-
55
- nodeMap.set(id, node)
56
- node.children = rawChildren.map(child => createNode(child, level + 1, node))
57
- return node
58
- }
59
-
60
- const build = (data: TreeData[]): void => {
61
- nodeMap.clear()
62
- nodes.value = (data ?? []).map(item => createNode(item, 0, null))
63
- }
64
-
65
- const getNode = (id: string | number): TreeViewNode | undefined => nodeMap.get(id)
66
-
67
- const setSubtreeState = (node: TreeViewNode, state: TreeNodeState): void => {
68
- node.children.forEach((child) => {
69
- child.state = state
70
- setSubtreeState(child, state)
71
- })
72
- }
73
-
74
- const recomputeAncestors = (node: TreeViewNode): void => {
75
- let parent = node.parent
76
- while (parent) {
77
- const kids = parent.children
78
- const checked = kids.filter(k => k.state === 'checked').length
79
- const indeterminate = kids.filter(k => k.state === 'indeterminate').length
80
-
81
- if (kids.length > 0 && checked === kids.length) parent.state = 'checked'
82
- else if (checked > 0 || indeterminate > 0) parent.state = 'indeterminate'
83
- else parent.state = 'unchecked'
84
-
85
- parent = parent.parent
86
- }
87
- }
88
-
89
- const setState = (id: string | number, state: TreeNodeState): void => {
90
- const node = getNode(id)
91
- if (!node) return
92
- node.state = state
93
- setSubtreeState(node, state)
94
- recomputeAncestors(node)
95
- }
96
-
97
- const applyModel = (ids: (string | number)[] = []): void => {
98
- ids.forEach(id => setState(id, 'checked'))
99
- }
100
-
101
- const collectSelectedIds = (): (string | number)[] => {
102
- const ids: (string | number)[] = []
103
- nodeMap.forEach((node) => {
104
- if (node.state === 'checked' && node.parent?.state !== 'checked') {
105
- ids.push(node.id)
106
- }
107
- })
108
- return ids
109
- }
110
-
111
- const reset = (): void => {
112
- nodeMap.forEach((node) => {
113
- node.state = 'unchecked'
114
- })
115
- }
116
-
117
- const toggleExpand = async (node: TreeViewNode): Promise<void> => {
118
- if (!node.expandable) return
119
- const willExpand = !node.expanded
120
- node.expanded = willExpand
121
-
122
- if (willExpand && lazy && !node.loaded && !node.loading && loadChildren) {
123
- node.loading = true
124
- try {
125
- const data = await loadChildren(node)
126
- const kids = (data ?? []).map(child => createNode(child, node.level + 1, node))
127
- node.children = kids
128
- node.loaded = true
129
- if (node.state === 'checked') {
130
- kids.forEach((k) => {
131
- k.state = 'checked'
132
- setSubtreeState(k, 'checked')
133
- })
134
- }
135
- }
136
- finally {
137
- node.loading = false
138
- }
139
- }
140
- }
141
-
142
- const applySearch = (matched: TreeData[], searchText: string): void => {
143
- nodeMap.forEach((node) => {
144
- node.hidden = true
145
- node.text = node.baseText
146
- })
147
-
148
- const reveal = (items: TreeData[]): void => {
149
- items.forEach((item) => {
150
- const node = getNode(readId(item))
151
- if (node) {
152
- node.hidden = false
153
- node.expanded = true
154
- node.text = highlight(node.baseText, searchText)
155
- }
156
- const kids = readChildren(item)
157
- if (kids.length) reveal(kids)
158
- })
159
- }
160
-
161
- reveal(matched ?? [])
162
- }
163
-
164
- const clearSearch = (): void => {
165
- nodeMap.forEach((node) => {
166
- node.hidden = false
167
- node.expanded = false
168
- node.text = node.baseText
169
- })
170
- }
171
-
172
- return {
173
- nodes,
174
- build,
175
- getNode,
176
- setState,
177
- applyModel,
178
- collectSelectedIds,
179
- reset,
180
- toggleExpand,
181
- applySearch,
182
- clearSearch,
183
- }
184
- }
1
+ import type {
2
+ TreeData,
3
+ TreeNestedNode,
4
+ TreeNode,
5
+ TreeNodeStateEditable
6
+ } from '#adata-ui/components/elements/tree-select/types'
7
+ import highlight from '#adata-ui/composables/highlight'
8
+
9
+ export const useTreeService = ( withoutId?: boolean ) => {
10
+ const tree = ref<Map<string | number, TreeNode> | null>(null)
11
+ const nestedTree = ref<TreeNestedNode[]>([])
12
+ const createdTreeBool = ref(false)
13
+
14
+ const initTree = (data: TreeData[]): void => {
15
+ if (!createdTreeBool.value) {
16
+ tree.value = generateTree(data, 0)
17
+ createdTreeBool.value = true
18
+ updateNestedTree()
19
+ }
20
+ }
21
+
22
+ const generateTree = (
23
+ data: TreeData[],
24
+ level: number,
25
+ parent: string | number | null = null
26
+ ): Map<string | number, TreeNode> => {
27
+ const treeMap = new Map<string | number, TreeNode>()
28
+ data.forEach((item) => {
29
+ const id = item.id
30
+ const child: (string | number)[] = item.children ? item.children.map((child) => child.id) : []
31
+ treeMap.set(id, {
32
+ id,
33
+ name: item.name,
34
+ level,
35
+ expandable: child.length > 0,
36
+ expandableClosed: true,
37
+ child,
38
+ parent,
39
+ state: 'unchecked',
40
+ hidden: false
41
+ })
42
+ if (item.children && item.children.length > 0) {
43
+ const childTreeMap = generateTree(item.children, level + 1, id)
44
+ childTreeMap.forEach((value, key) => treeMap.set(key, value))
45
+ }
46
+ })
47
+ return treeMap
48
+ }
49
+
50
+ const updateNestedTree = (searchText: string = '') => {
51
+ if (!tree.value) return
52
+ const nodesFromLevel0: TreeNode[] = getNodesByLevel(0)
53
+ nestedTree.value = nodesFromLevel0.map((flatNode) => createNestedNode(flatNode))
54
+ highlightTree(nestedTree.value, searchText)
55
+
56
+ }
57
+ function highlightTree(nodes, searchText) {
58
+ nodes.forEach((node) => {
59
+ node.text = highlight(node.text, searchText);
60
+ if (node.child.length) {
61
+ highlightTree(node.child, searchText);
62
+ }
63
+ });
64
+ }
65
+ const createNestedNode = (node: TreeNode): TreeNestedNode => {
66
+ return {
67
+ id: node.id,
68
+ name: node.name,
69
+ text: withoutId ? `${node.name}` : `${node.id} - ${node.name}`,
70
+ state: node.state,
71
+ level: node.level,
72
+ expandable: node.expandable,
73
+ expandableClosed: node.expandableClosed,
74
+ hidden: node?.hidden ?? false,
75
+ child: node.child
76
+ .map((id) => {
77
+ const childNode = getNodeById(id)
78
+ return childNode ? createNestedNode(childNode) : null
79
+ })
80
+ .filter((n) => n) as TreeNestedNode[]
81
+ }
82
+ }
83
+
84
+ const getNodeById = (idNode: string | number): TreeNode | null => {
85
+ if (!tree.value) return null
86
+ return tree.value.get(idNode) || null
87
+ }
88
+
89
+ const getChildNodesFromNode = (idNode: string | number): TreeNode[] => {
90
+ if (!tree.value) return []
91
+ const node = getNodeById(idNode)
92
+ if (!node) return []
93
+ return node.child.map((id) => getNodeById(id)).filter((n) => n) as TreeNode[]
94
+ }
95
+
96
+ const getParentNode = (idNode: string | number): TreeNode | null => {
97
+ if (!tree.value) return null
98
+ const node = getNodeById(idNode)
99
+ if (!node || !node.parent) return null
100
+ return getNodeById(node.parent)
101
+ }
102
+
103
+ const getNodesByLevel = (level: number): TreeNode[] => {
104
+ if (!tree.value) return []
105
+ const nodes: TreeNode[] = []
106
+ tree.value.forEach((node) => {
107
+ if (node.level === level) {
108
+ nodes.push(node)
109
+ }
110
+ })
111
+ return nodes
112
+ }
113
+
114
+ const setState = (idNode: string | number, state: TreeNodeStateEditable): void => {
115
+ if (!tree.value) return
116
+ const node = getNodeById(idNode)
117
+ if (!node) return
118
+ node.state = state
119
+ tree.value.set(idNode, node)
120
+ setStateChildNodes(node, state)
121
+ setStateParentNodes(node)
122
+ updateNestedTree()
123
+ }
124
+
125
+ const setStateChildNodes = (node: TreeNode, state: TreeNodeStateEditable): void => {
126
+ if (!tree.value) return
127
+ node.child.forEach((id) => {
128
+ const childNode = getNodeById(id)
129
+ if (childNode) {
130
+ childNode.state = state
131
+ tree.value.set(id, childNode)
132
+ setStateChildNodes(childNode, state)
133
+ }
134
+ })
135
+ }
136
+
137
+ const setStateParentNodes = (node: TreeNode): void => {
138
+ if (!tree.value) return
139
+ const parentNode = getParentNode(node.id)
140
+ if (!parentNode) return
141
+ const childNodes = getChildNodesFromNode(parentNode.id)
142
+ const checkedCount = childNodes.filter((n) => n.state === 'checked').length
143
+ const indeterminateCount = childNodes.filter((n) => n.state === 'indeterminate').length
144
+
145
+ if (checkedCount === childNodes.length) {
146
+ parentNode.state = 'checked'
147
+ } else if (checkedCount > 0 || indeterminateCount > 0) {
148
+ parentNode.state = 'indeterminate'
149
+ } else {
150
+ parentNode.state = 'unchecked'
151
+ }
152
+ tree.value.set(parentNode.id, parentNode)
153
+ setStateParentNodes(parentNode)
154
+ }
155
+
156
+ const setExpandableClosed = (idNode: string | number, expandableClosed: boolean): void => {
157
+ if (!tree.value) return
158
+ const node = getNodeById(idNode)
159
+ if (!node) return
160
+
161
+ if (!expandableClosed && node.expandable && node.child.length === 0) {
162
+ // Здесь можно добавить логику для ленивой загрузки дочерних узлов, если они не были загружены ранее.
163
+ }
164
+
165
+ node.expandableClosed = expandableClosed
166
+ tree.value.set(node.id, node)
167
+ updateNestedTree()
168
+ }
169
+
170
+ const reset = (): void => {
171
+ if (!tree.value) return
172
+ tree.value.forEach((node) => {
173
+ node.state = 'unchecked'
174
+ })
175
+ updateNestedTree()
176
+ }
177
+
178
+ const collectSelectedIds = (tree: Map<string | number, TreeNode>): (string | number)[] => {
179
+ const selectedIds: Set<string | number> = new Set()
180
+
181
+ // Функция для проверки, выбраны ли все дочерние узлы
182
+ const areAllChildrenChecked = (node: TreeNode): boolean => {
183
+ const childNodes = getChildNodesFromNode(node.id)
184
+ return childNodes.length > 0 && childNodes.every((child) => child.state === 'checked')
185
+ }
186
+
187
+ tree.forEach((node) => {
188
+ if (node.state === 'checked') {
189
+ if (node.parent && getNodeById(node.parent)?.state === 'checked') {
190
+ // Пропустить дочерний узел, если родительский узел уже выбран
191
+ return
192
+ } else if (areAllChildrenChecked(node)) {
193
+ // Если все дочерние узлы выбраны, то включить только родительский узел
194
+ selectedIds.add(node.id)
195
+ } else {
196
+ selectedIds.add(node.id)
197
+ }
198
+ }
199
+ })
200
+
201
+ return Array.from(selectedIds)
202
+ }
203
+
204
+ function hideSearchedData(data: TreeData[], searchText: string) {
205
+ data.forEach((node) => {
206
+ const existingNode = tree.value.get(node.id)
207
+ if (existingNode) {
208
+ tree.value.set(node.id, { ...existingNode, hidden: false, expandableClosed: false })
209
+ }
210
+ if (node.children?.length) {
211
+ hideSearchedData(node.children)
212
+ }
213
+ })
214
+ }
215
+
216
+ function searchedData(data: TreeData[], searchText: string) {
217
+ if (!tree.value) return
218
+ toggleHiddenNodes(true)
219
+ hideSearchedData(data, searchText)
220
+ updateNestedTree(searchText)
221
+ }
222
+
223
+ const toggleHiddenNodes = (hidden: boolean) => {
224
+ if (!tree.value) return
225
+ tree.value.forEach((node, key) => {
226
+ tree.value.set(key, { ...node, hidden })
227
+ })
228
+ }
229
+ const toggleExpandableNodes = (expandableClosed: boolean) => {
230
+ if (!tree.value) return
231
+ tree.value.forEach((node, key) => {
232
+ tree.value.set(key, { ...node, expandableClosed })
233
+ })
234
+ }
235
+
236
+ return {
237
+ tree,
238
+ nestedTree,
239
+ initTree,
240
+ setState,
241
+ reset,
242
+ setExpandableClosed,
243
+ collectSelectedIds,
244
+ updateNestedTree,
245
+ searchedData,
246
+ toggleHiddenNodes,
247
+ toggleExpandableNodes,
248
+ }
249
+ }
@@ -0,0 +1,91 @@
1
+ <template>
2
+ <li
3
+ :style="{ 'padding-left': `${node.level * 20}px` }"
4
+ :class="[
5
+ { 'bg-[#2C3E500D] dark:bg-[#E3E5E80D]': node.state === 'checked' && type === 'select' }
6
+ ]"
7
+ >
8
+ <div class="flex items-center gap-1 p-2" v-if="!node?.hidden"
9
+ :class="{ 'bg-deepblue-50 dark:bg-gray-200/5': disabled && node.state === 'unchecked' }"
10
+ >
11
+ <div class="min-w-4">
12
+ <a-icon-chevron-down
13
+ v-if="node.expandable"
14
+ width="16"
15
+ height="16"
16
+ :class="['cursor-pointer transition-all', { '-rotate-90': node.expandableClosed }]"
17
+ @click="toggleExpand(node)"
18
+ />
19
+ </div>
20
+ <div v-if="type === 'select'" class="w-full">
21
+ <input
22
+ :id="node.id.toString()"
23
+ type="checkbox"
24
+ :disabled="disabled && node.state === 'unchecked'"
25
+ class="hidden"
26
+ :checked="node.state === 'checked'"
27
+ @change="handleCheckboxChange"
28
+ />
29
+ <label
30
+ :for="node.id.toString()"
31
+ class="flex grow cursor-pointer items-center justify-between gap-4"
32
+ >
33
+ <span :class="{ 'font-semibold': node.level === 0 }" v-html="node.text" />
34
+ <a-icon-check v-if="node.state === 'checked'" class="min-w-4 text-blue-700" />
35
+ </label>
36
+ </div>
37
+ <a-checkbox
38
+ v-if="type === 'checkbox'"
39
+ size="lg"
40
+ :model-value="node.state === 'checked'"
41
+ :name="`${node.id}`"
42
+ :intermediate="node.state === 'indeterminate'"
43
+ side="right"
44
+ :disabled="disabled && node.state === 'unchecked'"
45
+ always-intermediate
46
+ @change="handleCheckboxChange"
47
+ >
48
+ <span class="heading-05" v-html="node.text" />
49
+ </a-checkbox>
50
+ </div>
51
+
52
+ <a-transition-height>
53
+ <ul v-if="node.expandable && !node.expandableClosed">
54
+ <template v-for="childNode in node.child" :key="childNode.id">
55
+ <tree-select-nodes
56
+ :node="childNode"
57
+ :toggle-expand="toggleExpand"
58
+ :toggle-checkbox="toggleCheckbox"
59
+ :type="type"
60
+ :disabled="disabled"
61
+ />
62
+ </template>
63
+ </ul>
64
+ </a-transition-height>
65
+ </li>
66
+ </template>
67
+
68
+ <script lang="ts" setup>
69
+ import type { TreeNestedNode } from '#adata-ui/components/elements/tree-select/types'
70
+
71
+ interface Props {
72
+ node: TreeNestedNode
73
+ toggleExpand: Function
74
+ toggleCheckbox: Function
75
+ disabled: boolean
76
+ type: 'checkbox' | 'select'
77
+ }
78
+
79
+ const props = defineProps<Props>()
80
+
81
+ const handleCheckboxChange = (event) => {
82
+ props.toggleCheckbox(props.node.id, event.target.checked)
83
+ }
84
+ const toggleExpand = (node) => {
85
+ props.toggleExpand(node)
86
+ }
87
+ </script>
88
+
89
+ <style scoped>
90
+ /* Стили для узлов дерева и флажков выбора можно настроить по вашему усмотрению */
91
+ </style>
@@ -1,63 +1,34 @@
1
- export type TreeNodeState = 'checked' | 'unchecked' | 'indeterminate'
2
- export type TreeNodeStateEditable = 'checked' | 'unchecked'
3
-
4
- export type TreeData = {
5
- id?: number | string
6
- name?: string
7
- children?: TreeData[]
8
- [key: string]: unknown
9
- }
10
-
11
- export interface TreeViewNode {
12
- id: string | number
13
- name: string
14
- text: string
15
- baseText: string
16
- level: number
17
- state: TreeNodeState
18
- expandable: boolean
19
- expanded: boolean
20
- hidden: boolean
21
- loaded: boolean
22
- loading: boolean
23
- parent: TreeViewNode | null
24
- children: TreeViewNode[]
25
- raw: TreeData
26
- }
27
-
28
- export interface TreeKeyConfig {
29
- idKey?: string
30
- nameKey?: string
31
- childrenKey?: string
32
- hasChildrenKey?: string
33
- }
34
-
35
- export interface TreeServiceOptions extends TreeKeyConfig {
36
- withoutId?: boolean
37
- lazy?: boolean
38
- loadChildren?: (node: TreeViewNode) => Promise<TreeData[]> | TreeData[]
39
- }
40
-
41
- export interface TreeNode {
42
- id: string | number
43
- name: string
44
- state: TreeNodeState
45
- level: number
46
- expandable: boolean
47
- expandableClosed: boolean
48
- parent: string | number | null
49
- hidden?: boolean
50
- child: (string | number)[]
51
- }
52
-
53
- export interface TreeNestedNode {
54
- id: string | number
55
- name: string
56
- state: TreeNodeState
57
- level: number
58
- expandable: boolean
59
- expandableClosed: boolean
60
- text: string
61
- hidden: boolean
62
- child: TreeNestedNode[]
63
- }
1
+ export interface TreeNode {
2
+ id: string | number
3
+ name: string
4
+ state: TreeNodeState
5
+ level: number
6
+ expandable: boolean
7
+ expandableClosed: boolean
8
+ parent: string | number | null
9
+ hidden?: boolean
10
+ child: (string | number)[]
11
+ }
12
+
13
+ export interface TreeNestedNode {
14
+ id: string | number
15
+ name: string
16
+ state: TreeNodeState
17
+ level: number
18
+ expandable: boolean
19
+ expandableClosed: boolean
20
+ text: string
21
+ hidden: boolean
22
+ // parent: TreeNestedNode | null;
23
+ child: TreeNestedNode[]
24
+ }
25
+
26
+ export type TreeData = {
27
+ // [key: string]: null | string[] | TreeData;
28
+ id: number | string
29
+ name: string
30
+ children?: TreeData[]
31
+ }
32
+
33
+ export type TreeNodeState = 'checked' | 'unchecked' | 'indeterminate'
34
+ export type TreeNodeStateEditable = 'checked' | 'unchecked'