@syncfusion/ej2-navigations 16.4.45 → 16.4.52-46585
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.
- package/.eslintrc.json +259 -0
- package/.github/PULL_REQUEST_TEMPLATE/Bug.md +63 -0
- package/.github/PULL_REQUEST_TEMPLATE/feature.md +39 -0
- package/CHANGELOG.md +1421 -0
- package/README.md +226 -112
- package/appbar.d.ts +4 -0
- package/appbar.js +4 -0
- package/breadcrumb.d.ts +4 -0
- package/breadcrumb.js +4 -0
- package/carousel.d.ts +4 -0
- package/carousel.js +4 -0
- package/dist/ej2-navigations.min.js +1 -0
- package/dist/ej2-navigations.umd.min.js +1 -10
- package/dist/ej2-navigations.umd.min.js.map +1 -1
- package/dist/es6/ej2-navigations.es2015.js +8469 -2261
- package/dist/es6/ej2-navigations.es2015.js.map +1 -1
- package/dist/es6/ej2-navigations.es5.js +8157 -1833
- package/dist/es6/ej2-navigations.es5.js.map +1 -1
- package/dist/global/ej2-navigations.min.js +1 -10
- package/dist/global/ej2-navigations.min.js.map +1 -1
- package/dist/global/index.d.ts +0 -9
- package/helpers/e2e/accordionHelper.d.ts +56 -0
- package/helpers/e2e/accordionHelper.js +71 -0
- package/helpers/e2e/contextmenuHelper.d.ts +37 -0
- package/helpers/e2e/contextmenuHelper.js +53 -0
- package/helpers/e2e/index.d.ts +7 -0
- package/helpers/e2e/index.js +14 -0
- package/helpers/e2e/menuHelper.d.ts +37 -0
- package/helpers/e2e/menuHelper.js +53 -0
- package/helpers/e2e/sidebarHelper.d.ts +94 -0
- package/helpers/e2e/sidebarHelper.js +110 -0
- package/helpers/e2e/tabHelper.d.ts +60 -0
- package/helpers/e2e/tabHelper.js +74 -0
- package/helpers/e2e/toolbarHelper.d.ts +60 -0
- package/helpers/e2e/toolbarHelper.js +74 -0
- package/helpers/e2e/treeview.d.ts +50 -0
- package/helpers/e2e/treeview.js +80 -0
- package/package.json +105 -105
- package/src/accordion/accordion-model.d.ts +122 -45
- package/src/accordion/accordion.d.ts +169 -48
- package/src/accordion/accordion.js +530 -230
- package/src/appbar/appbar-model.d.ts +76 -0
- package/src/appbar/appbar.d.ts +115 -0
- package/src/appbar/appbar.js +220 -0
- package/src/appbar/index.d.ts +3 -0
- package/src/appbar/index.js +2 -0
- package/src/breadcrumb/breadcrumb-model.d.ts +161 -0
- package/src/breadcrumb/breadcrumb.d.ts +285 -0
- package/src/breadcrumb/breadcrumb.js +789 -0
- package/src/breadcrumb/index.d.ts +5 -0
- package/src/breadcrumb/index.js +4 -0
- package/src/carousel/carousel-model.d.ts +223 -0
- package/src/carousel/carousel.d.ts +344 -0
- package/src/carousel/carousel.js +1100 -0
- package/src/carousel/index.d.ts +3 -0
- package/src/carousel/index.js +2 -0
- package/src/common/h-scroll-model.d.ts +1 -0
- package/src/common/h-scroll.d.ts +21 -10
- package/src/common/h-scroll.js +58 -36
- package/src/common/index.d.ts +2 -0
- package/src/common/index.js +2 -0
- package/src/common/menu-base-model.d.ts +77 -22
- package/src/common/menu-base.d.ts +192 -41
- package/src/common/menu-base.js +1104 -366
- package/src/common/menu-scroll.d.ts +29 -0
- package/src/common/menu-scroll.js +103 -0
- package/src/common/v-scroll-model.d.ts +1 -0
- package/src/common/v-scroll.d.ts +20 -9
- package/src/common/v-scroll.js +47 -20
- package/src/context-menu/context-menu-model.d.ts +7 -3
- package/src/context-menu/context-menu.d.ts +25 -10
- package/src/context-menu/context-menu.js +27 -15
- package/src/index.d.ts +3 -0
- package/src/index.js +3 -0
- package/src/menu/menu-model.d.ts +34 -1
- package/src/menu/menu.d.ts +60 -6
- package/src/menu/menu.js +144 -18
- package/src/sidebar/sidebar-model.d.ts +54 -25
- package/src/sidebar/sidebar.d.ts +117 -22
- package/src/sidebar/sidebar.js +250 -120
- package/src/tab/tab-model.d.ts +156 -37
- package/src/tab/tab.d.ts +286 -61
- package/src/tab/tab.js +1136 -331
- package/src/toolbar/toolbar-model.d.ts +110 -29
- package/src/toolbar/toolbar.d.ts +185 -55
- package/src/toolbar/toolbar.js +595 -234
- package/src/treeview/treeview-model.d.ts +269 -83
- package/src/treeview/treeview.d.ts +497 -74
- package/src/treeview/treeview.js +2006 -409
- package/styles/accordion/_all.scss +0 -1
- package/styles/accordion/_bootstrap-dark-definition.scss +171 -67
- package/styles/accordion/_bootstrap-definition.scss +115 -11
- package/styles/accordion/_bootstrap4-definition.scss +182 -0
- package/styles/accordion/_bootstrap5-dark-definition.scss +1 -0
- package/styles/accordion/_bootstrap5-definition.scss +180 -0
- package/styles/accordion/_fabric-dark-definition.scss +171 -69
- package/styles/accordion/_fabric-definition.scss +119 -15
- package/styles/accordion/_fluent-dark-definition.scss +1 -0
- package/styles/accordion/_fluent-definition.scss +179 -0
- package/styles/accordion/_fusionnew-definition.scss +180 -0
- package/styles/accordion/_highcontrast-definition.scss +122 -23
- package/styles/accordion/_highcontrast-light-definition.scss +192 -95
- package/styles/accordion/_layout.scss +100 -162
- package/styles/accordion/_material-dark-definition.scss +173 -70
- package/styles/accordion/_material-definition.scss +115 -11
- package/styles/accordion/_tailwind-dark-definition.scss +1 -0
- package/styles/accordion/_tailwind-definition.scss +178 -0
- package/styles/accordion/_theme.scss +219 -224
- package/styles/accordion/bootstrap-dark.css +267 -181
- package/styles/accordion/bootstrap-dark.scss +1 -0
- package/styles/accordion/bootstrap.css +258 -172
- package/styles/accordion/bootstrap.scss +1 -0
- package/styles/accordion/bootstrap4.css +525 -0
- package/styles/accordion/bootstrap4.scss +4 -0
- package/styles/accordion/bootstrap5-dark.css +527 -0
- package/styles/accordion/bootstrap5-dark.scss +4 -0
- package/styles/accordion/bootstrap5.css +527 -0
- package/styles/accordion/bootstrap5.scss +4 -0
- package/styles/accordion/fabric-dark.css +266 -164
- package/styles/accordion/fabric-dark.scss +1 -0
- package/styles/accordion/fabric.css +266 -164
- package/styles/accordion/fabric.scss +1 -0
- package/styles/accordion/fluent-dark.css +526 -0
- package/styles/accordion/fluent-dark.scss +4 -0
- package/styles/accordion/fluent.css +526 -0
- package/styles/accordion/fluent.scss +4 -0
- package/styles/accordion/highcontrast-light.css +525 -0
- package/styles/accordion/highcontrast-light.scss +4 -0
- package/styles/accordion/highcontrast.css +243 -232
- package/styles/accordion/highcontrast.scss +1 -0
- package/styles/accordion/{_icons.scss → icons/_bootstrap-dark.scss} +3 -3
- package/styles/accordion/icons/_bootstrap.scss +17 -0
- package/styles/accordion/icons/_bootstrap4.scss +17 -0
- package/styles/accordion/icons/_bootstrap5-dark.scss +1 -0
- package/styles/accordion/icons/_bootstrap5.scss +17 -0
- package/styles/accordion/icons/_fabric-dark.scss +17 -0
- package/styles/accordion/icons/_fabric.scss +17 -0
- package/styles/accordion/icons/_fluent-dark.scss +1 -0
- package/styles/accordion/icons/_fluent.scss +17 -0
- package/styles/accordion/icons/_fusionnew.scss +17 -0
- package/styles/accordion/icons/_highcontrast-light.scss +17 -0
- package/styles/accordion/icons/_highcontrast.scss +17 -0
- package/styles/accordion/icons/_material-dark.scss +17 -0
- package/styles/accordion/icons/_material.scss +17 -0
- package/styles/accordion/icons/_material3.scss +17 -0
- package/styles/accordion/icons/_tailwind-dark.scss +1 -0
- package/styles/accordion/icons/_tailwind.scss +17 -0
- package/styles/accordion/material-dark.css +268 -173
- package/styles/accordion/material-dark.scss +1 -0
- package/styles/accordion/material.css +264 -169
- package/styles/accordion/material.scss +1 -0
- package/styles/accordion/tailwind-dark.css +527 -0
- package/styles/accordion/tailwind-dark.scss +4 -0
- package/styles/accordion/tailwind.css +527 -0
- package/styles/accordion/tailwind.scss +4 -0
- package/styles/appbar/_all.scss +2 -0
- package/styles/appbar/_bootstrap-dark-definition.scss +8 -0
- package/styles/appbar/_bootstrap-definition.scss +8 -0
- package/styles/appbar/_bootstrap4-definition.scss +8 -0
- package/styles/appbar/_bootstrap5-dark-definition.scss +1 -0
- package/styles/appbar/_bootstrap5-definition.scss +8 -0
- package/styles/appbar/_fabric-dark-definition.scss +8 -0
- package/styles/appbar/_fabric-definition.scss +8 -0
- package/styles/appbar/_fluent-dark-definition.scss +1 -0
- package/styles/appbar/_fluent-definition.scss +8 -0
- package/styles/appbar/_fusionnew-definition.scss +8 -0
- package/styles/appbar/_highcontrast-definition.scss +8 -0
- package/styles/appbar/_highcontrast-light-definition.scss +8 -0
- package/styles/appbar/_layout.scss +84 -0
- package/styles/appbar/_material-dark-definition.scss +8 -0
- package/styles/appbar/_material-definition.scss +8 -0
- package/styles/appbar/_tailwind-dark-definition.scss +1 -0
- package/styles/appbar/_tailwind-definition.scss +8 -0
- package/styles/appbar/_theme.scss +208 -0
- package/styles/appbar/bootstrap-dark.css +247 -0
- package/styles/appbar/bootstrap-dark.scss +3 -0
- package/styles/appbar/bootstrap.css +247 -0
- package/styles/appbar/bootstrap.scss +3 -0
- package/styles/appbar/bootstrap4.css +247 -0
- package/styles/appbar/bootstrap4.scss +3 -0
- package/styles/appbar/bootstrap5-dark.css +247 -0
- package/styles/appbar/bootstrap5-dark.scss +3 -0
- package/styles/appbar/bootstrap5.css +247 -0
- package/styles/appbar/bootstrap5.scss +3 -0
- package/styles/appbar/fabric-dark.css +247 -0
- package/styles/appbar/fabric-dark.scss +3 -0
- package/styles/appbar/fabric.css +247 -0
- package/styles/appbar/fabric.scss +3 -0
- package/styles/appbar/fluent-dark.css +247 -0
- package/styles/appbar/fluent-dark.scss +3 -0
- package/styles/appbar/fluent.css +247 -0
- package/styles/appbar/fluent.scss +3 -0
- package/styles/appbar/highcontrast-light.css +247 -0
- package/styles/appbar/highcontrast-light.scss +3 -0
- package/styles/appbar/highcontrast.css +247 -0
- package/styles/appbar/highcontrast.scss +3 -0
- package/styles/appbar/material-dark.css +248 -0
- package/styles/appbar/material-dark.scss +3 -0
- package/styles/appbar/material.css +248 -0
- package/styles/appbar/material.scss +3 -0
- package/styles/appbar/tailwind-dark.css +248 -0
- package/styles/appbar/tailwind-dark.scss +3 -0
- package/styles/appbar/tailwind.css +248 -0
- package/styles/appbar/tailwind.scss +3 -0
- package/styles/bootstrap-dark.css +5503 -3478
- package/styles/bootstrap-dark.scss +4 -0
- package/styles/bootstrap.css +5420 -3550
- package/styles/bootstrap.scss +4 -0
- package/styles/bootstrap4.css +10166 -0
- package/styles/bootstrap4.scss +13 -0
- package/styles/bootstrap5-dark.css +10207 -0
- package/styles/bootstrap5-dark.scss +13 -0
- package/styles/bootstrap5.css +10207 -0
- package/styles/bootstrap5.scss +13 -0
- package/styles/breadcrumb/_all.scss +3 -0
- package/styles/breadcrumb/_bootstrap-dark-definition.scss +54 -0
- package/styles/breadcrumb/_bootstrap-definition.scss +54 -0
- package/styles/breadcrumb/_bootstrap4-definition.scss +54 -0
- package/styles/breadcrumb/_bootstrap5-dark-definition.scss +1 -0
- package/styles/breadcrumb/_bootstrap5-definition.scss +59 -0
- package/styles/breadcrumb/_fabric-dark-definition.scss +59 -0
- package/styles/breadcrumb/_fabric-definition.scss +59 -0
- package/styles/breadcrumb/_fluent-dark-definition.scss +1 -0
- package/styles/breadcrumb/_fluent-definition.scss +62 -0
- package/styles/breadcrumb/_fusionnew-definition.scss +59 -0
- package/styles/breadcrumb/_highcontrast-definition.scss +61 -0
- package/styles/breadcrumb/_highcontrast-light-definition.scss +61 -0
- package/styles/breadcrumb/_layout.scss +491 -0
- package/styles/breadcrumb/_material-dark-definition.scss +50 -0
- package/styles/breadcrumb/_material-definition.scss +50 -0
- package/styles/breadcrumb/_tailwind-dark-definition.scss +1 -0
- package/styles/breadcrumb/_tailwind-definition.scss +60 -0
- package/styles/breadcrumb/_theme.scss +176 -0
- package/styles/breadcrumb/bootstrap-dark.css +395 -0
- package/styles/breadcrumb/bootstrap-dark.scss +4 -0
- package/styles/breadcrumb/bootstrap.css +395 -0
- package/styles/breadcrumb/bootstrap.scss +4 -0
- package/styles/breadcrumb/bootstrap4.css +395 -0
- package/styles/breadcrumb/bootstrap4.scss +4 -0
- package/styles/breadcrumb/bootstrap5-dark.css +409 -0
- package/styles/breadcrumb/bootstrap5-dark.scss +4 -0
- package/styles/breadcrumb/bootstrap5.css +409 -0
- package/styles/breadcrumb/bootstrap5.scss +4 -0
- package/styles/breadcrumb/fabric-dark.css +395 -0
- package/styles/breadcrumb/fabric-dark.scss +4 -0
- package/styles/breadcrumb/fabric.css +395 -0
- package/styles/breadcrumb/fabric.scss +4 -0
- package/styles/breadcrumb/fluent-dark.css +371 -0
- package/styles/breadcrumb/fluent-dark.scss +4 -0
- package/styles/breadcrumb/fluent.css +371 -0
- package/styles/breadcrumb/fluent.scss +4 -0
- package/styles/breadcrumb/highcontrast-light.css +402 -0
- package/styles/breadcrumb/highcontrast-light.scss +4 -0
- package/styles/breadcrumb/highcontrast.css +402 -0
- package/styles/breadcrumb/highcontrast.scss +4 -0
- package/styles/breadcrumb/icons/_bootstrap-dark.scss +14 -0
- package/styles/breadcrumb/icons/_bootstrap.scss +14 -0
- package/styles/breadcrumb/icons/_bootstrap4.scss +14 -0
- package/styles/breadcrumb/icons/_bootstrap5-dark.scss +1 -0
- package/styles/breadcrumb/icons/_bootstrap5.scss +25 -0
- package/styles/breadcrumb/icons/_fabric-dark.scss +14 -0
- package/styles/breadcrumb/icons/_fabric.scss +14 -0
- package/styles/breadcrumb/icons/_fluent-dark.scss +1 -0
- package/styles/breadcrumb/icons/_fluent.scss +25 -0
- package/styles/breadcrumb/icons/_fusionnew.scss +25 -0
- package/styles/breadcrumb/icons/_highcontrast-light.scss +14 -0
- package/styles/breadcrumb/icons/_highcontrast.scss +14 -0
- package/styles/breadcrumb/icons/_material-dark.scss +25 -0
- package/styles/breadcrumb/icons/_material.scss +25 -0
- package/styles/breadcrumb/icons/_material3.scss +25 -0
- package/styles/breadcrumb/icons/_tailwind-dark.scss +25 -0
- package/styles/breadcrumb/icons/_tailwind.scss +25 -0
- package/styles/breadcrumb/material-dark.css +379 -0
- package/styles/breadcrumb/material-dark.scss +4 -0
- package/styles/breadcrumb/material.css +379 -0
- package/styles/breadcrumb/material.scss +4 -0
- package/styles/breadcrumb/tailwind-dark.css +402 -0
- package/styles/breadcrumb/tailwind-dark.scss +4 -0
- package/styles/breadcrumb/tailwind.css +402 -0
- package/styles/breadcrumb/tailwind.scss +4 -0
- package/styles/carousel/_all.scss +2 -0
- package/styles/carousel/_bootstrap-dark-definition.scss +22 -0
- package/styles/carousel/_bootstrap-definition.scss +22 -0
- package/styles/carousel/_bootstrap4-definition.scss +22 -0
- package/styles/carousel/_bootstrap5-dark-definition.scss +1 -0
- package/styles/carousel/_bootstrap5-definition.scss +22 -0
- package/styles/carousel/_fabric-dark-definition.scss +22 -0
- package/styles/carousel/_fabric-definition.scss +22 -0
- package/styles/carousel/_fluent-dark-definition.scss +1 -0
- package/styles/carousel/_fluent-definition.scss +22 -0
- package/styles/carousel/_fusionnew-definition.scss +22 -0
- package/styles/carousel/_highcontrast-definition.scss +22 -0
- package/styles/carousel/_highcontrast-light-definition.scss +22 -0
- package/styles/carousel/_layout.scss +225 -0
- package/styles/carousel/_material-dark-definition.scss +22 -0
- package/styles/carousel/_material-definition.scss +22 -0
- package/styles/carousel/_tailwind-dark-definition.scss +1 -0
- package/styles/carousel/_tailwind-definition.scss +22 -0
- package/styles/carousel/_theme.scss +56 -0
- package/styles/carousel/bootstrap-dark.css +264 -0
- package/styles/carousel/bootstrap-dark.scss +5 -0
- package/styles/carousel/bootstrap.css +264 -0
- package/styles/carousel/bootstrap.scss +5 -0
- package/styles/carousel/bootstrap4.css +264 -0
- package/styles/carousel/bootstrap4.scss +5 -0
- package/styles/carousel/bootstrap5-dark.css +264 -0
- package/styles/carousel/bootstrap5-dark.scss +5 -0
- package/styles/carousel/bootstrap5.css +264 -0
- package/styles/carousel/bootstrap5.scss +5 -0
- package/styles/carousel/fabric-dark.css +264 -0
- package/styles/carousel/fabric-dark.scss +5 -0
- package/styles/carousel/fabric.css +264 -0
- package/styles/carousel/fabric.scss +5 -0
- package/styles/carousel/fluent-dark.css +264 -0
- package/styles/carousel/fluent-dark.scss +5 -0
- package/styles/carousel/fluent.css +264 -0
- package/styles/carousel/fluent.scss +5 -0
- package/styles/carousel/highcontrast-light.css +264 -0
- package/styles/carousel/highcontrast-light.scss +5 -0
- package/styles/carousel/highcontrast.css +264 -0
- package/styles/carousel/highcontrast.scss +5 -0
- package/styles/carousel/icons/_bootstrap-dark.scss +30 -0
- package/styles/carousel/icons/_bootstrap.scss +30 -0
- package/styles/carousel/icons/_bootstrap4.scss +30 -0
- package/styles/carousel/icons/_bootstrap5-dark.scss +1 -0
- package/styles/carousel/icons/_bootstrap5.scss +30 -0
- package/styles/carousel/icons/_fabric-dark.scss +30 -0
- package/styles/carousel/icons/_fabric.scss +30 -0
- package/styles/carousel/icons/_fluent-dark.scss +1 -0
- package/styles/carousel/icons/_fluent.scss +30 -0
- package/styles/carousel/icons/_fusionnew.scss +30 -0
- package/styles/carousel/icons/_highcontrast-light.scss +30 -0
- package/styles/carousel/icons/_highcontrast.scss +30 -0
- package/styles/carousel/icons/_material-dark.scss +30 -0
- package/styles/carousel/icons/_material.scss +30 -0
- package/styles/carousel/icons/_material3.scss +30 -0
- package/styles/carousel/icons/_tailwind-dark.scss +1 -0
- package/styles/carousel/icons/_tailwind.scss +30 -0
- package/styles/carousel/material-dark.css +265 -0
- package/styles/carousel/material-dark.scss +5 -0
- package/styles/carousel/material.css +265 -0
- package/styles/carousel/material.scss +5 -0
- package/styles/carousel/tailwind-dark.css +265 -0
- package/styles/carousel/tailwind-dark.scss +5 -0
- package/styles/carousel/tailwind.css +265 -0
- package/styles/carousel/tailwind.scss +5 -0
- package/styles/context-menu/_bootstrap-dark-definition.scss +49 -50
- package/styles/context-menu/_bootstrap-definition.scss +1 -3
- package/styles/context-menu/_bootstrap4-definition.scss +50 -0
- package/styles/context-menu/_bootstrap5-dark-definition.scss +1 -0
- package/styles/context-menu/_bootstrap5-definition.scss +52 -0
- package/styles/context-menu/_fabric-dark-definition.scss +49 -50
- package/styles/context-menu/_fabric-definition.scss +0 -2
- package/styles/context-menu/_fluent-dark-definition.scss +1 -0
- package/styles/context-menu/_fluent-definition.scss +52 -0
- package/styles/context-menu/_fusionnew-definition.scss +52 -0
- package/styles/context-menu/_highcontrast-definition.scss +0 -2
- package/styles/context-menu/_highcontrast-light-definition.scss +2 -3
- package/styles/context-menu/_layout-mixin.scss +19 -16
- package/styles/context-menu/_layout.scss +96 -5
- package/styles/context-menu/_material-dark-definition.scss +49 -50
- package/styles/context-menu/_material-definition.scss +3 -5
- package/styles/context-menu/_tailwind-dark-definition.scss +1 -0
- package/styles/context-menu/_tailwind-definition.scss +53 -0
- package/styles/context-menu/_theme-mixin.scss +16 -12
- package/styles/context-menu/_theme.scss +15 -1
- package/styles/context-menu/bootstrap-dark.css +206 -108
- package/styles/context-menu/bootstrap-dark.scss +3 -0
- package/styles/context-menu/bootstrap.css +206 -107
- package/styles/context-menu/bootstrap.scss +3 -0
- package/styles/context-menu/bootstrap4.css +367 -0
- package/styles/context-menu/bootstrap4.scss +7 -0
- package/styles/context-menu/bootstrap5-dark.css +355 -0
- package/styles/context-menu/bootstrap5-dark.scss +7 -0
- package/styles/context-menu/bootstrap5.css +355 -0
- package/styles/context-menu/bootstrap5.scss +7 -0
- package/styles/context-menu/fabric-dark.css +207 -109
- package/styles/context-menu/fabric-dark.scss +3 -0
- package/styles/context-menu/fabric.css +205 -106
- package/styles/context-menu/fabric.scss +3 -0
- package/styles/context-menu/fluent-dark.css +363 -0
- package/styles/context-menu/fluent-dark.scss +7 -0
- package/styles/context-menu/fluent.css +363 -0
- package/styles/context-menu/fluent.scss +7 -0
- package/styles/context-menu/highcontrast-light.css +366 -0
- package/styles/context-menu/highcontrast-light.scss +7 -0
- package/styles/context-menu/highcontrast.css +205 -106
- package/styles/context-menu/highcontrast.scss +3 -0
- package/styles/context-menu/icons/_bootstrap-dark.scss +5 -2
- package/styles/context-menu/icons/_bootstrap.scss +5 -2
- package/styles/context-menu/icons/_bootstrap4.scss +33 -0
- package/styles/context-menu/icons/_bootstrap5-dark.scss +1 -0
- package/styles/context-menu/icons/_bootstrap5.scss +33 -0
- package/styles/context-menu/icons/_fabric-dark.scss +5 -2
- package/styles/context-menu/icons/_fabric.scss +5 -2
- package/styles/context-menu/icons/_fluent-dark.scss +1 -0
- package/styles/context-menu/icons/_fluent.scss +33 -0
- package/styles/context-menu/icons/_fusionnew.scss +33 -0
- package/styles/context-menu/icons/_highcontrast-light.scss +5 -2
- package/styles/context-menu/icons/_highcontrast.scss +5 -2
- package/styles/context-menu/icons/_material-dark.scss +5 -2
- package/styles/context-menu/icons/_material.scss +5 -2
- package/styles/context-menu/icons/_material3.scss +33 -0
- package/styles/context-menu/icons/_tailwind-dark.scss +33 -0
- package/styles/context-menu/icons/_tailwind.scss +33 -0
- package/styles/context-menu/material-dark.css +223 -107
- package/styles/context-menu/material-dark.scss +3 -0
- package/styles/context-menu/material.css +228 -110
- package/styles/context-menu/material.scss +3 -0
- package/styles/context-menu/tailwind-dark.css +380 -0
- package/styles/context-menu/tailwind-dark.scss +7 -0
- package/styles/context-menu/tailwind.css +380 -0
- package/styles/context-menu/tailwind.scss +7 -0
- package/styles/fabric-dark.css +5766 -3690
- package/styles/fabric-dark.scss +4 -0
- package/styles/fabric.css +5959 -4038
- package/styles/fabric.scss +4 -0
- package/styles/fluent-dark.css +10172 -0
- package/styles/fluent-dark.scss +13 -0
- package/styles/fluent.css +10172 -0
- package/styles/fluent.scss +13 -0
- package/styles/h-scroll/_all.scss +1 -1
- package/styles/h-scroll/_bootstrap-dark-definition.scss +46 -40
- package/styles/h-scroll/_bootstrap-definition.scss +14 -7
- package/styles/h-scroll/_bootstrap4-definition.scss +56 -0
- package/styles/h-scroll/_bootstrap5-dark-definition.scss +1 -0
- package/styles/h-scroll/_bootstrap5-definition.scss +83 -0
- package/styles/h-scroll/_fabric-dark-definition.scss +48 -42
- package/styles/h-scroll/_fabric-definition.scss +17 -9
- package/styles/h-scroll/_fluent-dark-definition.scss +1 -0
- package/styles/h-scroll/_fluent-definition.scss +83 -0
- package/styles/h-scroll/_fusionnew-definition.scss +83 -0
- package/styles/h-scroll/_highcontrast-definition.scss +15 -17
- package/styles/h-scroll/_highcontrast-light-definition.scss +49 -46
- package/styles/h-scroll/_layout.scss +15 -15
- package/styles/h-scroll/_material-dark-definition.scss +56 -51
- package/styles/h-scroll/_material-definition.scss +21 -15
- package/styles/h-scroll/_tailwind-dark-definition.scss +1 -0
- package/styles/h-scroll/_tailwind-definition.scss +83 -0
- package/styles/h-scroll/_theme.scss +15 -29
- package/styles/h-scroll/bootstrap-dark.css +53 -66
- package/styles/h-scroll/bootstrap-dark.scss +1 -0
- package/styles/h-scroll/bootstrap.css +32 -80
- package/styles/h-scroll/bootstrap4.css +260 -0
- package/styles/h-scroll/bootstrap4.scss +4 -0
- package/styles/h-scroll/bootstrap5-dark.css +280 -0
- package/styles/h-scroll/bootstrap5-dark.scss +4 -0
- package/styles/h-scroll/bootstrap5.css +280 -0
- package/styles/h-scroll/bootstrap5.scss +4 -0
- package/styles/h-scroll/fabric-dark.css +54 -67
- package/styles/h-scroll/fabric-dark.scss +1 -0
- package/styles/h-scroll/fabric.css +32 -80
- package/styles/h-scroll/fluent-dark.css +280 -0
- package/styles/h-scroll/fluent-dark.scss +4 -0
- package/styles/h-scroll/fluent.css +280 -0
- package/styles/h-scroll/fluent.scss +4 -0
- package/styles/h-scroll/highcontrast-light.css +259 -0
- package/styles/h-scroll/highcontrast-light.scss +4 -0
- package/styles/h-scroll/highcontrast.css +26 -89
- package/styles/h-scroll/{_icons.scss → icons/_bootstrap-dark.scss} +13 -13
- package/styles/h-scroll/icons/_bootstrap.scss +3 -4
- package/styles/h-scroll/icons/_bootstrap4.scss +49 -0
- package/styles/h-scroll/icons/_bootstrap5-dark.scss +1 -0
- package/styles/h-scroll/icons/_bootstrap5.scss +49 -0
- package/styles/h-scroll/icons/_fabric-dark.scss +49 -0
- package/styles/h-scroll/icons/_fabric.scss +5 -5
- package/styles/h-scroll/icons/_fluent-dark.scss +1 -0
- package/styles/h-scroll/icons/_fluent.scss +49 -0
- package/styles/h-scroll/icons/_fusionnew.scss +49 -0
- package/styles/h-scroll/icons/_highcontrast-light.scss +49 -0
- package/styles/h-scroll/icons/_highcontrast.scss +5 -5
- package/styles/h-scroll/icons/_material-dark.scss +49 -0
- package/styles/h-scroll/icons/_material.scss +3 -3
- package/styles/h-scroll/icons/_material3.scss +49 -0
- package/styles/h-scroll/icons/_tailwind-dark.scss +1 -0
- package/styles/h-scroll/icons/_tailwind.scss +49 -0
- package/styles/h-scroll/material-dark.css +56 -70
- package/styles/h-scroll/material-dark.scss +1 -0
- package/styles/h-scroll/material.css +33 -82
- package/styles/h-scroll/tailwind-dark.css +281 -0
- package/styles/h-scroll/tailwind-dark.scss +4 -0
- package/styles/h-scroll/tailwind.css +281 -0
- package/styles/h-scroll/tailwind.scss +4 -0
- package/styles/highcontrast-light.css +10029 -0
- package/styles/highcontrast-light.scss +13 -0
- package/styles/highcontrast.css +6039 -4460
- package/styles/highcontrast.scss +4 -0
- package/styles/material-dark.css +6282 -3945
- package/styles/material-dark.scss +4 -0
- package/styles/material.css +6210 -4026
- package/styles/material.scss +4 -0
- package/styles/menu/_bootstrap-dark-definition.scss +32 -21
- package/styles/menu/_bootstrap-definition.scss +12 -2
- package/styles/menu/_bootstrap4-definition.scss +64 -0
- package/styles/menu/_bootstrap5-dark-definition.scss +1 -0
- package/styles/menu/_bootstrap5-definition.scss +67 -0
- package/styles/menu/_fabric-dark-definition.scss +33 -22
- package/styles/menu/_fabric-definition.scss +11 -1
- package/styles/menu/_fluent-dark-definition.scss +1 -0
- package/styles/menu/_fluent-definition.scss +67 -0
- package/styles/menu/_fusionnew-definition.scss +67 -0
- package/styles/menu/_highcontrast-definition.scss +12 -2
- package/styles/menu/_highcontrast-light-definition.scss +11 -1
- package/styles/menu/_layout.scss +363 -37
- package/styles/menu/_material-dark-definition.scss +30 -19
- package/styles/menu/_material-definition.scss +10 -0
- package/styles/menu/_tailwind-dark-definition.scss +1 -0
- package/styles/menu/_tailwind-definition.scss +66 -0
- package/styles/menu/_theme.scss +201 -17
- package/styles/menu/bootstrap-dark.css +717 -319
- package/styles/menu/bootstrap.css +701 -304
- package/styles/menu/bootstrap.scss +1 -0
- package/styles/menu/bootstrap4.css +1126 -0
- package/styles/menu/bootstrap4.scss +8 -0
- package/styles/menu/bootstrap5-dark.css +1083 -0
- package/styles/menu/bootstrap5-dark.scss +8 -0
- package/styles/menu/bootstrap5.css +1083 -0
- package/styles/menu/bootstrap5.scss +8 -0
- package/styles/menu/fabric-dark.css +716 -318
- package/styles/menu/fabric.css +696 -298
- package/styles/menu/fabric.scss +1 -0
- package/styles/menu/fluent-dark.css +1106 -0
- package/styles/menu/fluent-dark.scss +8 -0
- package/styles/menu/fluent.css +1106 -0
- package/styles/menu/fluent.scss +8 -0
- package/styles/menu/highcontrast-light.css +1088 -0
- package/styles/menu/highcontrast-light.scss +8 -0
- package/styles/menu/highcontrast.css +698 -300
- package/styles/menu/highcontrast.scss +1 -0
- package/styles/menu/icons/_bootstrap-dark.scss +58 -3
- package/styles/menu/icons/_bootstrap.scss +58 -3
- package/styles/menu/icons/_bootstrap4.scss +134 -0
- package/styles/menu/icons/_bootstrap5-dark.scss +1 -0
- package/styles/menu/icons/_bootstrap5.scss +134 -0
- package/styles/menu/icons/_fabric-dark.scss +62 -7
- package/styles/menu/icons/_fabric.scss +62 -7
- package/styles/menu/icons/_fluent-dark.scss +1 -0
- package/styles/menu/icons/_fluent.scss +134 -0
- package/styles/menu/icons/_fusionnew.scss +134 -0
- package/styles/menu/icons/_highcontrast-light.scss +58 -3
- package/styles/menu/icons/_highcontrast.scss +58 -3
- package/styles/menu/icons/_material-dark.scss +58 -3
- package/styles/menu/icons/_material.scss +58 -3
- package/styles/menu/icons/_material3.scss +134 -0
- package/styles/menu/icons/_tailwind-dark.scss +134 -0
- package/styles/menu/icons/_tailwind.scss +134 -0
- package/styles/menu/material-dark.css +715 -319
- package/styles/menu/material.css +699 -303
- package/styles/menu/material.scss +1 -0
- package/styles/menu/tailwind-dark.css +1102 -0
- package/styles/menu/tailwind-dark.scss +8 -0
- package/styles/menu/tailwind.css +1102 -0
- package/styles/menu/tailwind.scss +8 -0
- package/styles/pager/_all.scss +2 -0
- package/styles/pager/_bootstrap-dark-definition.scss +131 -0
- package/styles/pager/_bootstrap-definition.scss +131 -0
- package/styles/pager/_bootstrap4-definition.scss +131 -0
- package/styles/pager/_bootstrap5-dark-definition.scss +1 -0
- package/styles/pager/_bootstrap5-definition.scss +146 -0
- package/styles/pager/_fabric-dark-definition.scss +131 -0
- package/styles/pager/_fabric-definition.scss +129 -0
- package/styles/pager/_fluent-dark-definition.scss +1 -0
- package/styles/pager/_fluent-definition.scss +133 -0
- package/styles/pager/_fusionnew-definition.scss +146 -0
- package/styles/pager/_highcontrast-definition.scss +129 -0
- package/styles/pager/_highcontrast-light-definition.scss +131 -0
- package/styles/pager/_layout.scss +896 -0
- package/styles/pager/_material-dark-definition.scss +132 -0
- package/styles/pager/_material-definition.scss +130 -0
- package/styles/pager/_tailwind-dark-definition.scss +1 -0
- package/styles/pager/_tailwind-definition.scss +132 -0
- package/styles/pager/_theme.scss +152 -0
- package/styles/pager/bootstrap-dark.css +688 -0
- package/styles/pager/bootstrap-dark.scss +4 -0
- package/styles/pager/bootstrap.css +688 -0
- package/styles/pager/bootstrap.scss +4 -0
- package/styles/pager/bootstrap4.css +688 -0
- package/styles/pager/bootstrap4.scss +4 -0
- package/styles/pager/bootstrap5-dark.css +723 -0
- package/styles/pager/bootstrap5-dark.scss +4 -0
- package/styles/pager/bootstrap5.css +723 -0
- package/styles/pager/bootstrap5.scss +4 -0
- package/styles/pager/fabric-dark.css +688 -0
- package/styles/pager/fabric-dark.scss +4 -0
- package/styles/pager/fabric.css +688 -0
- package/styles/pager/fabric.scss +4 -0
- package/styles/pager/fluent-dark.css +690 -0
- package/styles/pager/fluent-dark.scss +4 -0
- package/styles/pager/fluent.css +690 -0
- package/styles/pager/fluent.scss +4 -0
- package/styles/pager/highcontrast-light.css +688 -0
- package/styles/pager/highcontrast-light.scss +4 -0
- package/styles/pager/highcontrast.css +688 -0
- package/styles/pager/highcontrast.scss +4 -0
- package/styles/pager/icons/_bootstrap-dark.scss +50 -0
- package/styles/pager/icons/_bootstrap.scss +50 -0
- package/styles/pager/icons/_bootstrap4.scss +50 -0
- package/styles/pager/icons/_bootstrap5-dark.scss +1 -0
- package/styles/pager/icons/_bootstrap5.scss +50 -0
- package/styles/pager/icons/_fabric-dark.scss +50 -0
- package/styles/pager/icons/_fabric.scss +50 -0
- package/styles/pager/icons/_fluent-dark.scss +1 -0
- package/styles/pager/icons/_fluent.scss +50 -0
- package/styles/pager/icons/_fusionnew.scss +50 -0
- package/styles/pager/icons/_highcontrast-light.scss +50 -0
- package/styles/pager/icons/_highcontrast.scss +46 -0
- package/styles/pager/icons/_material-dark.scss +50 -0
- package/styles/pager/icons/_material.scss +46 -0
- package/styles/pager/icons/_material3.scss +50 -0
- package/styles/pager/icons/_tailwind-dark.scss +1 -0
- package/styles/pager/icons/_tailwind.scss +50 -0
- package/styles/pager/material-dark.css +689 -0
- package/styles/pager/material-dark.scss +4 -0
- package/styles/pager/material.css +689 -0
- package/styles/pager/material.scss +4 -0
- package/styles/pager/tailwind-dark.css +815 -0
- package/styles/pager/tailwind-dark.scss +4 -0
- package/styles/pager/tailwind.css +815 -0
- package/styles/pager/tailwind.scss +4 -0
- package/styles/sidebar/_bootstrap4-definition.scss +4 -0
- package/styles/sidebar/_bootstrap5-dark-definition.scss +1 -0
- package/styles/sidebar/_bootstrap5-definition.scss +6 -0
- package/styles/sidebar/_fabric-definition.scss +0 -2
- package/styles/sidebar/_fluent-dark-definition.scss +1 -0
- package/styles/sidebar/_fluent-definition.scss +6 -0
- package/styles/sidebar/_fusionnew-definition.scss +6 -0
- package/styles/sidebar/_highcontrast-definition.scss +1 -1
- package/styles/sidebar/_icons.scss +1 -1
- package/styles/sidebar/_layout.scss +1 -0
- package/styles/sidebar/_tailwind-dark-definition.scss +1 -0
- package/styles/sidebar/_tailwind-definition.scss +6 -0
- package/styles/sidebar/_theme.scss +56 -34
- package/styles/sidebar/bootstrap-dark.css +29 -25
- package/styles/sidebar/bootstrap.css +29 -25
- package/styles/sidebar/bootstrap4.css +149 -0
- package/styles/sidebar/bootstrap4.scss +3 -0
- package/styles/sidebar/bootstrap5-dark.css +147 -0
- package/styles/sidebar/bootstrap5-dark.scss +3 -0
- package/styles/sidebar/bootstrap5.css +147 -0
- package/styles/sidebar/bootstrap5.scss +3 -0
- package/styles/sidebar/fabric-dark.css +29 -25
- package/styles/sidebar/fabric.css +29 -25
- package/styles/sidebar/fluent-dark.css +147 -0
- package/styles/sidebar/fluent-dark.scss +3 -0
- package/styles/sidebar/fluent.css +147 -0
- package/styles/sidebar/fluent.scss +3 -0
- package/styles/sidebar/highcontrast-light.css +149 -0
- package/styles/sidebar/highcontrast-light.scss +3 -0
- package/styles/sidebar/highcontrast.css +30 -26
- package/styles/sidebar/material-dark.css +29 -25
- package/styles/sidebar/material.css +29 -25
- package/styles/sidebar/tailwind-dark.css +148 -0
- package/styles/sidebar/tailwind-dark.scss +3 -0
- package/styles/sidebar/tailwind.css +148 -0
- package/styles/sidebar/tailwind.scss +3 -0
- package/styles/tab/_bootstrap-dark-definition.scss +632 -374
- package/styles/tab/_bootstrap-definition.scss +279 -13
- package/styles/tab/_bootstrap4-definition.scss +666 -0
- package/styles/tab/_bootstrap5-dark-definition.scss +1 -0
- package/styles/tab/_bootstrap5-definition.scss +656 -0
- package/styles/tab/_fabric-dark-definition.scss +644 -385
- package/styles/tab/_fabric-definition.scss +281 -15
- package/styles/tab/_fluent-dark-definition.scss +1 -0
- package/styles/tab/_fluent-definition.scss +664 -0
- package/styles/tab/_fusionnew-definition.scss +656 -0
- package/styles/tab/_highcontrast-definition.scss +283 -17
- package/styles/tab/_highcontrast-light-definition.scss +667 -411
- package/styles/tab/_icons.scss +1 -0
- package/styles/tab/_layout.scss +697 -753
- package/styles/tab/_material-dark-definition.scss +627 -370
- package/styles/tab/_material-definition.scss +277 -11
- package/styles/tab/_tailwind-dark-definition.scss +1 -0
- package/styles/tab/_tailwind-definition.scss +685 -0
- package/styles/tab/_theme.scss +402 -537
- package/styles/tab/bootstrap-dark.css +1226 -1067
- package/styles/tab/bootstrap-dark.scss +1 -0
- package/styles/tab/bootstrap.css +1173 -1106
- package/styles/tab/bootstrap4.css +4031 -0
- package/styles/tab/bootstrap4.scss +5 -0
- package/styles/tab/bootstrap5-dark.css +4029 -0
- package/styles/tab/bootstrap5-dark.scss +5 -0
- package/styles/tab/bootstrap5.css +4029 -0
- package/styles/tab/bootstrap5.scss +5 -0
- package/styles/tab/fabric-dark.css +1212 -1096
- package/styles/tab/fabric-dark.scss +1 -0
- package/styles/tab/fabric.css +1173 -1148
- package/styles/tab/fluent-dark.css +4031 -0
- package/styles/tab/fluent-dark.scss +5 -0
- package/styles/tab/fluent.css +4031 -0
- package/styles/tab/fluent.scss +5 -0
- package/styles/tab/highcontrast-light.css +4022 -0
- package/styles/tab/highcontrast-light.scss +5 -0
- package/styles/tab/highcontrast.css +1086 -1215
- package/styles/tab/icons/_bootstrap-dark.scss +108 -0
- package/styles/tab/icons/_bootstrap.scss +11 -35
- package/styles/tab/icons/_bootstrap4.scss +115 -0
- package/styles/tab/icons/_bootstrap5-dark.scss +1 -0
- package/styles/tab/icons/_bootstrap5.scss +104 -0
- package/styles/tab/icons/_fabric-dark.scss +108 -0
- package/styles/tab/icons/_fabric.scss +11 -35
- package/styles/tab/icons/_fluent-dark.scss +1 -0
- package/styles/tab/icons/_fluent.scss +108 -0
- package/styles/tab/icons/_fusionnew.scss +104 -0
- package/styles/tab/icons/_highcontrast-light.scss +104 -0
- package/styles/tab/icons/_highcontrast.scss +11 -28
- package/styles/tab/icons/_material-dark.scss +104 -0
- package/styles/tab/icons/_material.scss +9 -37
- package/styles/tab/icons/_material3.scss +104 -0
- package/styles/tab/icons/_tailwind-dark.scss +1 -0
- package/styles/tab/icons/_tailwind.scss +104 -0
- package/styles/tab/material-dark.css +1334 -955
- package/styles/tab/material-dark.scss +1 -0
- package/styles/tab/material.css +1280 -992
- package/styles/tab/tailwind-dark.css +4046 -0
- package/styles/tab/tailwind-dark.scss +5 -0
- package/styles/tab/tailwind.css +4046 -0
- package/styles/tab/tailwind.scss +5 -0
- package/styles/tailwind-dark.css +10351 -0
- package/styles/tailwind-dark.scss +13 -0
- package/styles/tailwind.css +10351 -0
- package/styles/tailwind.scss +13 -0
- package/styles/toolbar/_all.scss +1 -1
- package/styles/toolbar/_bootstrap-dark-definition.scss +193 -121
- package/styles/toolbar/_bootstrap-definition.scss +107 -34
- package/styles/toolbar/_bootstrap4-definition.scss +211 -0
- package/styles/toolbar/_bootstrap5-dark-definition.scss +1 -0
- package/styles/toolbar/_bootstrap5-definition.scss +220 -0
- package/styles/toolbar/_fabric-dark-definition.scss +208 -140
- package/styles/toolbar/_fabric-definition.scss +97 -28
- package/styles/toolbar/_fluent-dark-definition.scss +1 -0
- package/styles/toolbar/_fluent-definition.scss +210 -0
- package/styles/toolbar/_fusionnew-definition.scss +220 -0
- package/styles/toolbar/_highcontrast-definition.scss +99 -30
- package/styles/toolbar/_highcontrast-light-definition.scss +219 -149
- package/styles/toolbar/_layout.scss +690 -1087
- package/styles/toolbar/_material-dark-definition.scss +216 -148
- package/styles/toolbar/_material-definition.scss +117 -46
- package/styles/toolbar/_tailwind-dark-definition.scss +1 -0
- package/styles/toolbar/_tailwind-definition.scss +210 -0
- package/styles/toolbar/_theme.scss +246 -263
- package/styles/toolbar/bootstrap-dark.css +768 -1105
- package/styles/toolbar/bootstrap-dark.scss +1 -0
- package/styles/toolbar/bootstrap.css +761 -1111
- package/styles/toolbar/bootstrap.scss +1 -0
- package/styles/toolbar/bootstrap4.css +1071 -0
- package/styles/toolbar/bootstrap4.scss +8 -0
- package/styles/toolbar/bootstrap5-dark.css +1082 -0
- package/styles/toolbar/bootstrap5-dark.scss +8 -0
- package/styles/toolbar/bootstrap5.css +1082 -0
- package/styles/toolbar/bootstrap5.scss +8 -0
- package/styles/toolbar/fabric-dark.css +779 -1042
- package/styles/toolbar/fabric-dark.scss +1 -0
- package/styles/toolbar/fabric.css +767 -1041
- package/styles/toolbar/fabric.scss +1 -0
- package/styles/toolbar/fluent-dark.css +1081 -0
- package/styles/toolbar/fluent-dark.scss +8 -0
- package/styles/toolbar/fluent.css +1081 -0
- package/styles/toolbar/fluent.scss +8 -0
- package/styles/toolbar/highcontrast-light.css +1070 -0
- package/styles/toolbar/highcontrast-light.scss +8 -0
- package/styles/toolbar/highcontrast.css +744 -1089
- package/styles/toolbar/highcontrast.scss +1 -0
- package/styles/toolbar/icons/_bootstrap-dark.scss +16 -0
- package/styles/toolbar/icons/_bootstrap.scss +1 -1
- package/styles/toolbar/icons/_bootstrap4.scss +16 -0
- package/styles/toolbar/icons/_bootstrap5-dark.scss +1 -0
- package/styles/toolbar/icons/_bootstrap5.scss +16 -0
- package/styles/toolbar/icons/_fabric-dark.scss +16 -0
- package/styles/toolbar/icons/_fabric.scss +1 -1
- package/styles/toolbar/icons/_fluent-dark.scss +1 -0
- package/styles/toolbar/icons/_fluent.scss +16 -0
- package/styles/toolbar/icons/_fusionnew.scss +16 -0
- package/styles/toolbar/icons/_highcontrast-light.scss +16 -0
- package/styles/toolbar/icons/_highcontrast.scss +1 -1
- package/styles/toolbar/icons/_material-dark.scss +16 -0
- package/styles/toolbar/icons/_material.scss +1 -1
- package/styles/toolbar/icons/_material3.scss +16 -0
- package/styles/toolbar/icons/_tailwind-dark.scss +1 -0
- package/styles/toolbar/icons/_tailwind.scss +16 -0
- package/styles/toolbar/material-dark.css +747 -1010
- package/styles/toolbar/material-dark.scss +1 -0
- package/styles/toolbar/material.css +753 -1027
- package/styles/toolbar/material.scss +1 -0
- package/styles/toolbar/tailwind-dark.css +1082 -0
- package/styles/toolbar/tailwind-dark.scss +8 -0
- package/styles/toolbar/tailwind.css +1082 -0
- package/styles/toolbar/tailwind.scss +8 -0
- package/styles/treeview/_all.scss +1 -1
- package/styles/treeview/_bootstrap-dark-definition.scss +104 -117
- package/styles/treeview/_bootstrap-definition.scss +24 -38
- package/styles/treeview/_bootstrap4-definition.scss +141 -0
- package/styles/treeview/_bootstrap5-dark-definition.scss +1 -0
- package/styles/treeview/_bootstrap5-definition.scss +120 -0
- package/styles/treeview/_fabric-dark-definition.scss +102 -116
- package/styles/treeview/_fabric-definition.scss +24 -38
- package/styles/treeview/_fluent-dark-definition.scss +1 -0
- package/styles/treeview/_fluent-definition.scss +120 -0
- package/styles/treeview/_fusionnew-definition.scss +120 -0
- package/styles/treeview/_highcontrast-definition.scss +24 -38
- package/styles/treeview/_highcontrast-light-definition.scss +112 -126
- package/styles/treeview/_layout.scss +619 -28
- package/styles/treeview/_material-dark-definition.scss +104 -116
- package/styles/treeview/_material-definition.scss +25 -39
- package/styles/treeview/_tailwind-dark-definition.scss +1 -0
- package/styles/treeview/_tailwind-definition.scss +124 -0
- package/styles/treeview/_theme.scss +128 -27
- package/styles/treeview/bootstrap-dark.css +230 -172
- package/styles/treeview/bootstrap.css +230 -168
- package/styles/treeview/bootstrap4.css +829 -0
- package/styles/treeview/bootstrap4.scss +6 -0
- package/styles/treeview/bootstrap5-dark.css +847 -0
- package/styles/treeview/bootstrap5-dark.scss +6 -0
- package/styles/treeview/bootstrap5.css +847 -0
- package/styles/treeview/bootstrap5.scss +6 -0
- package/styles/treeview/fabric-dark.css +230 -168
- package/styles/treeview/fabric.css +230 -168
- package/styles/treeview/fluent-dark.css +852 -0
- package/styles/treeview/fluent-dark.scss +6 -0
- package/styles/treeview/fluent.css +852 -0
- package/styles/treeview/fluent.scss +6 -0
- package/styles/treeview/highcontrast-light.css +736 -0
- package/styles/treeview/highcontrast-light.scss +6 -0
- package/styles/treeview/highcontrast.css +230 -171
- package/styles/treeview/icons/_bootstrap-dark.scss +2 -2
- package/styles/treeview/icons/_bootstrap.scss +2 -2
- package/styles/treeview/icons/_bootstrap4.scss +39 -0
- package/styles/treeview/icons/_bootstrap5-dark.scss +1 -0
- package/styles/treeview/icons/_bootstrap5.scss +43 -0
- package/styles/treeview/icons/_fabric-dark.scss +2 -2
- package/styles/treeview/icons/_fabric.scss +2 -2
- package/styles/treeview/icons/_fluent-dark.scss +1 -0
- package/styles/treeview/icons/_fluent.scss +43 -0
- package/styles/treeview/icons/_fusionnew.scss +43 -0
- package/styles/treeview/icons/_highcontrast-light.scss +2 -2
- package/styles/treeview/icons/_highcontrast.scss +2 -2
- package/styles/treeview/icons/_material-dark.scss +2 -2
- package/styles/treeview/icons/_material.scss +2 -2
- package/styles/treeview/icons/_material3.scss +43 -0
- package/styles/treeview/icons/_tailwind-dark.scss +43 -0
- package/styles/treeview/icons/_tailwind.scss +43 -0
- package/styles/treeview/material-dark.css +242 -172
- package/styles/treeview/material.css +238 -167
- package/styles/treeview/tailwind-dark.css +840 -0
- package/styles/treeview/tailwind-dark.scss +6 -0
- package/styles/treeview/tailwind.css +840 -0
- package/styles/treeview/tailwind.scss +6 -0
- package/styles/v-scroll/_all.scss +1 -1
- package/styles/v-scroll/_bootstrap-dark-definition.scss +39 -38
- package/styles/v-scroll/_bootstrap-definition.scss +8 -8
- package/styles/v-scroll/_bootstrap4-definition.scss +49 -0
- package/styles/v-scroll/_bootstrap5-dark-definition.scss +1 -0
- package/styles/v-scroll/_bootstrap5-definition.scss +49 -0
- package/styles/v-scroll/_fabric-dark-definition.scss +41 -40
- package/styles/v-scroll/_fabric-definition.scss +10 -10
- package/styles/v-scroll/_fluent-dark-definition.scss +1 -0
- package/styles/v-scroll/_fluent-definition.scss +49 -0
- package/styles/v-scroll/_fusionnew-definition.scss +49 -0
- package/styles/v-scroll/_highcontrast-definition.scss +10 -11
- package/styles/v-scroll/_highcontrast-light-definition.scss +41 -41
- package/styles/v-scroll/_layout.scss +4 -4
- package/styles/v-scroll/_material-dark-definition.scss +46 -45
- package/styles/v-scroll/_material-definition.scss +10 -10
- package/styles/v-scroll/_tailwind-dark-definition.scss +1 -0
- package/styles/v-scroll/_tailwind-definition.scss +49 -0
- package/styles/v-scroll/_theme.scss +2 -27
- package/styles/v-scroll/bootstrap-dark.css +25 -51
- package/styles/v-scroll/bootstrap-dark.scss +1 -0
- package/styles/v-scroll/bootstrap.css +13 -58
- package/styles/v-scroll/bootstrap4.css +202 -0
- package/styles/v-scroll/bootstrap4.scss +4 -0
- package/styles/v-scroll/bootstrap5-dark.css +202 -0
- package/styles/v-scroll/bootstrap5-dark.scss +4 -0
- package/styles/v-scroll/bootstrap5.css +202 -0
- package/styles/v-scroll/bootstrap5.scss +4 -0
- package/styles/v-scroll/fabric-dark.css +26 -52
- package/styles/v-scroll/fabric-dark.scss +1 -0
- package/styles/v-scroll/fabric.css +14 -59
- package/styles/v-scroll/fluent-dark.css +202 -0
- package/styles/v-scroll/fluent-dark.scss +4 -0
- package/styles/v-scroll/fluent.css +202 -0
- package/styles/v-scroll/fluent.scss +4 -0
- package/styles/v-scroll/highcontrast-light.css +201 -0
- package/styles/v-scroll/highcontrast-light.scss +4 -0
- package/styles/v-scroll/highcontrast.css +14 -74
- package/styles/v-scroll/icons/_bootstrap-dark.scss +27 -0
- package/styles/v-scroll/icons/_bootstrap.scss +1 -1
- package/styles/v-scroll/icons/_bootstrap4.scss +27 -0
- package/styles/v-scroll/icons/_bootstrap5-dark.scss +1 -0
- package/styles/v-scroll/icons/_bootstrap5.scss +27 -0
- package/styles/v-scroll/icons/_fabric-dark.scss +27 -0
- package/styles/v-scroll/icons/_fabric.scss +3 -2
- package/styles/v-scroll/icons/_fluent-dark.scss +1 -0
- package/styles/v-scroll/icons/_fluent.scss +27 -0
- package/styles/v-scroll/icons/_fusionnew.scss +27 -0
- package/styles/v-scroll/icons/_highcontrast-light.scss +27 -0
- package/styles/v-scroll/icons/_highcontrast.scss +3 -2
- package/styles/v-scroll/{_icons.scss → icons/_material-dark.scss} +4 -3
- package/styles/v-scroll/icons/_material.scss +1 -0
- package/styles/v-scroll/icons/_material3.scss +27 -0
- package/styles/v-scroll/icons/_tailwind-dark.scss +1 -0
- package/styles/v-scroll/icons/_tailwind.scss +27 -0
- package/styles/v-scroll/material-dark.css +23 -50
- package/styles/v-scroll/material-dark.scss +1 -0
- package/styles/v-scroll/material.css +12 -58
- package/styles/v-scroll/tailwind-dark.css +203 -0
- package/styles/v-scroll/tailwind-dark.scss +4 -0
- package/styles/v-scroll/tailwind.css +203 -0
- package/styles/v-scroll/tailwind.scss +4 -0
- package/tslint.json +111 -0
- package/styles/toolbar/_icons.scss +0 -35
package/src/treeview/treeview.js
CHANGED
|
@@ -4,7 +4,7 @@ var __extends = (this && this.__extends) || (function () {
|
|
|
4
4
|
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
5
5
|
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
|
6
6
|
return extendStatics(d, b);
|
|
7
|
-
}
|
|
7
|
+
};
|
|
8
8
|
return function (d, b) {
|
|
9
9
|
extendStatics(d, b);
|
|
10
10
|
function __() { this.constructor = d; }
|
|
@@ -17,14 +17,15 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
17
17
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
18
18
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
19
19
|
};
|
|
20
|
-
import { Component, isUndefined, Browser, compile } from '@syncfusion/ej2-base';
|
|
20
|
+
import { Component, isUndefined, Browser, compile, isNullOrUndefined } from '@syncfusion/ej2-base';
|
|
21
21
|
import { Property, NotifyPropertyChanges, ChildProperty, Complex } from '@syncfusion/ej2-base';
|
|
22
22
|
import { Event, EventHandler, KeyboardEvents } from '@syncfusion/ej2-base';
|
|
23
|
-
import { rippleEffect, Animation } from '@syncfusion/ej2-base';
|
|
23
|
+
import { rippleEffect, Animation, remove } from '@syncfusion/ej2-base';
|
|
24
24
|
import { Draggable, Droppable } from '@syncfusion/ej2-base';
|
|
25
|
+
import { getElement } from '@syncfusion/ej2-base';
|
|
25
26
|
import { addClass, removeClass, closest, matches, detach, select, selectAll, isVisible, append } from '@syncfusion/ej2-base';
|
|
26
27
|
import { DataManager, Query } from '@syncfusion/ej2-data';
|
|
27
|
-
import { isNullOrUndefined as isNOU, Touch, getValue, setValue } from '@syncfusion/ej2-base';
|
|
28
|
+
import { isNullOrUndefined as isNOU, Touch, getValue, setValue, extend, merge, attributes } from '@syncfusion/ej2-base';
|
|
28
29
|
import { ListBase } from '@syncfusion/ej2-lists';
|
|
29
30
|
import { createCheckBox, rippleMouseHandler } from '@syncfusion/ej2-buttons';
|
|
30
31
|
import { Input } from '@syncfusion/ej2-inputs';
|
|
@@ -35,6 +36,8 @@ var COLLAPSIBLE = 'e-icon-collapsible';
|
|
|
35
36
|
var EXPANDABLE = 'e-icon-expandable';
|
|
36
37
|
var LISTITEM = 'e-list-item';
|
|
37
38
|
var LISTTEXT = 'e-list-text';
|
|
39
|
+
var LISTWRAP = 'e-text-wrap';
|
|
40
|
+
var IELISTWRAP = 'e-ie-wrap';
|
|
38
41
|
var PARENTITEM = 'e-list-parent';
|
|
39
42
|
var HOVER = 'e-hover';
|
|
40
43
|
var ACTIVE = 'e-active';
|
|
@@ -47,6 +50,7 @@ var INPUTGROUP = 'e-input-group';
|
|
|
47
50
|
var TREEINPUT = 'e-tree-input';
|
|
48
51
|
var EDITING = 'e-editing';
|
|
49
52
|
var RTL = 'e-rtl';
|
|
53
|
+
var INTERACTION = 'e-interaction';
|
|
50
54
|
var DRAGITEM = 'e-drag-item';
|
|
51
55
|
var DROPPABLE = 'e-droppable';
|
|
52
56
|
var DRAGGING = 'e-dragging';
|
|
@@ -61,24 +65,28 @@ var SELECTED = 'e-selected';
|
|
|
61
65
|
var EXPANDED = 'e-expanded';
|
|
62
66
|
var NODECOLLAPSED = 'e-node-collapsed';
|
|
63
67
|
var DISABLE = 'e-disable';
|
|
64
|
-
var CONTENT = 'e-content';
|
|
65
|
-
var DOWNTAIL = 'e-downtail';
|
|
66
68
|
var DROPCOUNT = 'e-drop-count';
|
|
67
69
|
var CHECK = 'e-check';
|
|
68
70
|
var INDETERMINATE = 'e-stop';
|
|
69
71
|
var CHECKBOXWRAP = 'e-checkbox-wrapper';
|
|
70
72
|
var CHECKBOXFRAME = 'e-frame';
|
|
71
73
|
var CHECKBOXRIPPLE = 'e-ripple-container';
|
|
74
|
+
var RIPPLE = 'e-ripple';
|
|
75
|
+
var RIPPLEELMENT = 'e-ripple-element';
|
|
72
76
|
var FOCUS = 'e-node-focus';
|
|
73
77
|
var IMAGE = 'e-list-img';
|
|
74
78
|
var BIGGER = 'e-bigger';
|
|
75
79
|
var SMALL = 'e-small';
|
|
80
|
+
var CHILD = 'e-has-child';
|
|
81
|
+
var ITEM_ANIMATION_ACTIVE = 'e-animation-active';
|
|
82
|
+
var DISABLED = 'e-disabled';
|
|
83
|
+
var PREVENTSELECT = 'e-prevent';
|
|
76
84
|
var treeAriaAttr = {
|
|
77
|
-
treeRole: '
|
|
85
|
+
treeRole: 'group',
|
|
78
86
|
itemRole: 'treeitem',
|
|
79
87
|
listRole: 'group',
|
|
80
88
|
itemText: '',
|
|
81
|
-
wrapperRole: ''
|
|
89
|
+
wrapperRole: ''
|
|
82
90
|
};
|
|
83
91
|
/**
|
|
84
92
|
* Configures the fields to bind to the properties of node in the TreeView component.
|
|
@@ -121,6 +129,9 @@ var FieldsSettings = /** @class */ (function (_super) {
|
|
|
121
129
|
__decorate([
|
|
122
130
|
Property(null)
|
|
123
131
|
], FieldsSettings.prototype, "query", void 0);
|
|
132
|
+
__decorate([
|
|
133
|
+
Property('selectable')
|
|
134
|
+
], FieldsSettings.prototype, "selectable", void 0);
|
|
124
135
|
__decorate([
|
|
125
136
|
Property('selected')
|
|
126
137
|
], FieldsSettings.prototype, "selected", void 0);
|
|
@@ -180,27 +191,41 @@ export { NodeAnimationSettings };
|
|
|
180
191
|
* The TreeView component is used to represent hierarchical data in a tree like structure with advanced
|
|
181
192
|
* functions to perform edit, drag and drop, selection with check-box, and more.
|
|
182
193
|
* ```html
|
|
183
|
-
*
|
|
194
|
+
* <div id="tree"></div>
|
|
184
195
|
* ```
|
|
185
196
|
* ```typescript
|
|
186
|
-
*
|
|
187
|
-
*
|
|
197
|
+
* let treeObj: TreeView = new TreeView();
|
|
198
|
+
* treeObj.appendTo('#tree');
|
|
188
199
|
* ```
|
|
189
200
|
*/
|
|
190
201
|
var TreeView = /** @class */ (function (_super) {
|
|
191
202
|
__extends(TreeView, _super);
|
|
192
203
|
function TreeView(options, element) {
|
|
193
204
|
var _this = _super.call(this, options, element) || this;
|
|
205
|
+
_this.isRefreshed = false;
|
|
194
206
|
_this.preventExpand = false;
|
|
195
207
|
_this.checkedElement = [];
|
|
196
208
|
_this.disableNode = [];
|
|
209
|
+
// eslint-disable-next-line
|
|
210
|
+
_this.validArr = [];
|
|
211
|
+
_this.validNodes = [];
|
|
212
|
+
_this.expandChildren = [];
|
|
213
|
+
_this.isFieldChange = false;
|
|
214
|
+
_this.changeDataSource = false;
|
|
215
|
+
_this.hasTemplate = false;
|
|
216
|
+
_this.isFirstRender = false;
|
|
217
|
+
// Specifies whether the node is dropped or not
|
|
218
|
+
_this.isNodeDropped = false;
|
|
219
|
+
_this.isInteracted = false;
|
|
220
|
+
_this.isRightClick = false;
|
|
197
221
|
_this.mouseDownStatus = false;
|
|
198
222
|
return _this;
|
|
199
223
|
}
|
|
200
224
|
TreeView_1 = TreeView;
|
|
201
225
|
/**
|
|
202
226
|
* Get component name.
|
|
203
|
-
*
|
|
227
|
+
*
|
|
228
|
+
* @returns {string} - returns module name.
|
|
204
229
|
* @private
|
|
205
230
|
*/
|
|
206
231
|
TreeView.prototype.getModuleName = function () {
|
|
@@ -208,10 +233,13 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
208
233
|
};
|
|
209
234
|
/**
|
|
210
235
|
* Initialize the event handler
|
|
236
|
+
*
|
|
237
|
+
* @returns {void}
|
|
211
238
|
*/
|
|
212
239
|
TreeView.prototype.preRender = function () {
|
|
213
240
|
var _this = this;
|
|
214
241
|
this.checkActionNodes = [];
|
|
242
|
+
this.parentNodeCheck = [];
|
|
215
243
|
this.dragStartAction = false;
|
|
216
244
|
this.isAnimate = false;
|
|
217
245
|
this.keyConfigs = {
|
|
@@ -241,6 +269,8 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
241
269
|
csHome: 'ctrl+shift+home',
|
|
242
270
|
csEnd: 'ctrl+shift+end',
|
|
243
271
|
space: 'space',
|
|
272
|
+
shiftSpace: 'shift+space',
|
|
273
|
+
ctrlSpace: 'ctrl+space'
|
|
244
274
|
};
|
|
245
275
|
this.listBaseOption = {
|
|
246
276
|
expandCollapse: true,
|
|
@@ -251,12 +281,15 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
251
281
|
itemCreated: function (e) {
|
|
252
282
|
_this.beforeNodeCreate(e);
|
|
253
283
|
},
|
|
284
|
+
enableHtmlSanitizer: this.enableHtmlSanitizer,
|
|
285
|
+
itemNavigable: this.fullRowNavigable
|
|
254
286
|
};
|
|
255
287
|
this.updateListProp(this.fields);
|
|
256
288
|
this.aniObj = new Animation({});
|
|
257
289
|
this.treeList = [];
|
|
258
290
|
this.isLoaded = false;
|
|
259
291
|
this.isInitalExpand = false;
|
|
292
|
+
this.expandChildren = [];
|
|
260
293
|
this.index = 0;
|
|
261
294
|
this.setTouchClass();
|
|
262
295
|
if (isNOU(this.selectedNodes)) {
|
|
@@ -274,7 +307,8 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
274
307
|
};
|
|
275
308
|
/**
|
|
276
309
|
* Get the properties to be maintained in the persisted state.
|
|
277
|
-
*
|
|
310
|
+
*
|
|
311
|
+
* @returns {string} - returns the persisted data
|
|
278
312
|
* @hidden
|
|
279
313
|
*/
|
|
280
314
|
TreeView.prototype.getPersistData = function () {
|
|
@@ -283,30 +317,46 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
283
317
|
};
|
|
284
318
|
/**
|
|
285
319
|
* To Initialize the control rendering
|
|
320
|
+
*
|
|
286
321
|
* @private
|
|
322
|
+
* @returns {void}
|
|
287
323
|
*/
|
|
288
324
|
TreeView.prototype.render = function () {
|
|
289
325
|
this.initialRender = true;
|
|
290
326
|
this.initialize();
|
|
291
|
-
this.setDataBinding();
|
|
327
|
+
this.setDataBinding(false);
|
|
328
|
+
this.setDisabledMode();
|
|
292
329
|
this.setExpandOnType();
|
|
293
|
-
this.
|
|
330
|
+
if (!this.disabled) {
|
|
331
|
+
this.setRipple();
|
|
332
|
+
}
|
|
294
333
|
this.wireEditingEvents(this.allowEditing);
|
|
295
334
|
this.setDragAndDrop(this.allowDragAndDrop);
|
|
296
|
-
this.
|
|
335
|
+
if (!this.disabled) {
|
|
336
|
+
this.wireEvents();
|
|
337
|
+
}
|
|
297
338
|
this.initialRender = false;
|
|
339
|
+
this.renderComplete();
|
|
298
340
|
};
|
|
299
341
|
TreeView.prototype.initialize = function () {
|
|
300
342
|
this.element.setAttribute('role', 'tree');
|
|
301
|
-
this.element.setAttribute('tabindex', '0');
|
|
302
343
|
this.element.setAttribute('aria-activedescendant', this.element.id + '_active');
|
|
303
344
|
this.setCssClass(null, this.cssClass);
|
|
304
345
|
this.setEnableRtl();
|
|
305
346
|
this.setFullRow(this.fullRowSelect);
|
|
347
|
+
this.setTextWrap();
|
|
306
348
|
this.nodeTemplateFn = this.templateComplier(this.nodeTemplate);
|
|
307
349
|
};
|
|
350
|
+
TreeView.prototype.setDisabledMode = function () {
|
|
351
|
+
if (this.disabled) {
|
|
352
|
+
this.element.classList.add(DISABLED);
|
|
353
|
+
}
|
|
354
|
+
else {
|
|
355
|
+
this.element.classList.remove(DISABLED);
|
|
356
|
+
}
|
|
357
|
+
};
|
|
308
358
|
TreeView.prototype.setEnableRtl = function () {
|
|
309
|
-
this.enableRtl ? addClass
|
|
359
|
+
(this.enableRtl ? addClass : removeClass)([this.element], RTL);
|
|
310
360
|
};
|
|
311
361
|
TreeView.prototype.setRipple = function () {
|
|
312
362
|
var tempStr = '.' + FULLROW + ',.' + TEXTWRAP;
|
|
@@ -317,12 +367,12 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
317
367
|
this.rippleFn = rippleEffect(this.element, rippleModel);
|
|
318
368
|
var iconModel = {
|
|
319
369
|
selector: '.' + TEXTWRAP + ' > .' + ICON,
|
|
320
|
-
isCenterRipple: true
|
|
370
|
+
isCenterRipple: true
|
|
321
371
|
};
|
|
322
372
|
this.rippleIconFn = rippleEffect(this.element, iconModel);
|
|
323
373
|
};
|
|
324
374
|
TreeView.prototype.setFullRow = function (isEnabled) {
|
|
325
|
-
isEnabled ? addClass
|
|
375
|
+
(isEnabled ? addClass : removeClass)([this.element], FULLROWWRAP);
|
|
326
376
|
};
|
|
327
377
|
TreeView.prototype.setMultiSelect = function (isEnabled) {
|
|
328
378
|
var firstUl = select('.' + PARENTITEM, this.element);
|
|
@@ -333,27 +383,39 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
333
383
|
firstUl.removeAttribute('aria-multiselectable');
|
|
334
384
|
}
|
|
335
385
|
};
|
|
386
|
+
// eslint-disable-next-line
|
|
336
387
|
TreeView.prototype.templateComplier = function (template) {
|
|
337
388
|
if (template) {
|
|
389
|
+
this.hasTemplate = true;
|
|
390
|
+
// eslint-disable-next-line
|
|
338
391
|
var e = void 0;
|
|
392
|
+
this.element.classList.add(INTERACTION);
|
|
339
393
|
try {
|
|
340
394
|
if (document.querySelectorAll(template).length) {
|
|
341
395
|
return compile(document.querySelector(template).innerHTML.trim());
|
|
342
396
|
}
|
|
397
|
+
else {
|
|
398
|
+
return compile(template);
|
|
399
|
+
}
|
|
343
400
|
}
|
|
344
401
|
catch (e) {
|
|
345
402
|
return compile(template);
|
|
346
403
|
}
|
|
347
404
|
}
|
|
405
|
+
this.element.classList.remove(INTERACTION);
|
|
348
406
|
return undefined;
|
|
349
407
|
};
|
|
350
|
-
TreeView.prototype.setDataBinding = function () {
|
|
408
|
+
TreeView.prototype.setDataBinding = function (changeDataSource) {
|
|
351
409
|
var _this = this;
|
|
352
410
|
this.treeList.push('false');
|
|
353
411
|
if (this.fields.dataSource instanceof DataManager) {
|
|
412
|
+
/* eslint-disable */
|
|
413
|
+
this.isOffline = this.fields.dataSource.dataSource.offline;
|
|
354
414
|
if (this.fields.dataSource.ready) {
|
|
355
415
|
this.fields.dataSource.ready.then(function (e) {
|
|
356
|
-
|
|
416
|
+
/* eslint-disable */
|
|
417
|
+
_this.isOffline = _this.fields.dataSource.dataSource.offline;
|
|
418
|
+
if (_this.fields.dataSource instanceof DataManager && _this.isOffline) {
|
|
357
419
|
_this.treeList.pop();
|
|
358
420
|
_this.treeData = e.result;
|
|
359
421
|
_this.isNumberTypeId = _this.getType();
|
|
@@ -363,6 +425,8 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
363
425
|
_this.finalize();
|
|
364
426
|
}
|
|
365
427
|
}
|
|
428
|
+
}).catch(function (e) {
|
|
429
|
+
_this.trigger('actionFailure', { error: e });
|
|
366
430
|
});
|
|
367
431
|
}
|
|
368
432
|
else {
|
|
@@ -371,10 +435,16 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
371
435
|
_this.treeData = e.result;
|
|
372
436
|
_this.isNumberTypeId = _this.getType();
|
|
373
437
|
_this.setRootData();
|
|
438
|
+
if (changeDataSource) {
|
|
439
|
+
_this.changeDataSource = true;
|
|
440
|
+
}
|
|
374
441
|
_this.renderItems(true);
|
|
442
|
+
_this.changeDataSource = false;
|
|
375
443
|
if (_this.treeList.length === 0 && !_this.isLoaded) {
|
|
376
444
|
_this.finalize();
|
|
377
445
|
}
|
|
446
|
+
}).catch(function (e) {
|
|
447
|
+
_this.trigger('actionFailure', { error: e });
|
|
378
448
|
});
|
|
379
449
|
}
|
|
380
450
|
}
|
|
@@ -404,7 +474,7 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
404
474
|
for (var _i = 0, _a = Object.keys(prop); _i < _a.length; _i++) {
|
|
405
475
|
var col = _a[_i];
|
|
406
476
|
if (col !== 'dataSource' && col !== 'tableName' && col !== 'child' && !!mapper[col]
|
|
407
|
-
&& columns.indexOf(mapper[col]) === -1) {
|
|
477
|
+
&& col !== 'url' && columns.indexOf(mapper[col]) === -1) {
|
|
408
478
|
columns.push(mapper[col]);
|
|
409
479
|
}
|
|
410
480
|
}
|
|
@@ -442,24 +512,244 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
442
512
|
}
|
|
443
513
|
};
|
|
444
514
|
TreeView.prototype.renderItems = function (isSorted) {
|
|
515
|
+
/* eslint-disable */
|
|
445
516
|
this.listBaseOption.ariaAttributes.level = 1;
|
|
446
|
-
|
|
517
|
+
var sortedData = this.getSortedData(this.rootData);
|
|
518
|
+
this.ulElement = ListBase.createList(this.createElement, isSorted ? this.rootData : sortedData, this.listBaseOption);
|
|
447
519
|
this.element.appendChild(this.ulElement);
|
|
520
|
+
var rootNodes = this.ulElement.querySelectorAll('.e-list-item');
|
|
448
521
|
if (this.loadOnDemand === false) {
|
|
449
|
-
var rootNodes = this.ulElement.querySelectorAll('.e-list-item');
|
|
450
522
|
var i = 0;
|
|
451
523
|
while (i < rootNodes.length) {
|
|
452
524
|
this.renderChildNodes(rootNodes[i], true, null, true);
|
|
453
525
|
i++;
|
|
454
526
|
}
|
|
455
527
|
}
|
|
456
|
-
|
|
528
|
+
var parentEle = selectAll('.' + PARENTITEM, this.element);
|
|
529
|
+
if ((parentEle.length === 1 && (rootNodes && rootNodes.length !== 0)) || this.loadOnDemand) {
|
|
457
530
|
this.finalizeNode(this.element);
|
|
458
531
|
}
|
|
532
|
+
this.parentNodeCheck = [];
|
|
533
|
+
this.parentCheckData = [];
|
|
534
|
+
this.updateCheckedStateFromDS();
|
|
535
|
+
if (this.autoCheck && this.showCheckBox && !this.isLoaded) {
|
|
536
|
+
this.updateParentCheckState();
|
|
537
|
+
}
|
|
538
|
+
};
|
|
539
|
+
/**
|
|
540
|
+
* Update the checkedNodes from datasource at initial rendering
|
|
541
|
+
*/
|
|
542
|
+
TreeView.prototype.updateCheckedStateFromDS = function (id) {
|
|
543
|
+
this.validNodes = [];
|
|
544
|
+
if (this.treeData && this.showCheckBox) {
|
|
545
|
+
if (this.dataType === 1) {
|
|
546
|
+
var mapper = this.fields;
|
|
547
|
+
var resultData = new DataManager(this.treeData).executeLocal(new Query().where(mapper.isChecked, 'equal', true, false));
|
|
548
|
+
for (var i = 0; i < resultData.length; i++) {
|
|
549
|
+
var resultId = resultData[i][this.fields.id] ? resultData[i][this.fields.id].toString() : null;
|
|
550
|
+
var resultPId = resultData[i][this.fields.parentID] ? resultData[i][this.fields.parentID].toString() : null;
|
|
551
|
+
if (this.checkedNodes.indexOf(resultId) === -1 && !(this.isLoaded)) {
|
|
552
|
+
this.checkedNodes.push(resultId);
|
|
553
|
+
}
|
|
554
|
+
if (resultData[i][this.fields.hasChildren]) {
|
|
555
|
+
var id_1 = resultData[i][this.fields.id];
|
|
556
|
+
var childData = new DataManager(this.treeData).
|
|
557
|
+
executeLocal(new Query().where(mapper.parentID, 'equal', id_1, false));
|
|
558
|
+
for (var child = 0; child < childData.length; child++) {
|
|
559
|
+
var childId = childData[child][this.fields.id] ? childData[child][this.fields.id].toString() : null;
|
|
560
|
+
if (this.checkedNodes.indexOf(childId) === -1 && this.autoCheck) {
|
|
561
|
+
this.checkedNodes.push(childId);
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
for (var i = 0; i < this.checkedNodes.length; i++) {
|
|
567
|
+
var mapper_1 = this.fields;
|
|
568
|
+
var checkState = new DataManager(this.treeData).
|
|
569
|
+
executeLocal(new Query().where(mapper_1.id, 'equal', this.checkedNodes[i], true));
|
|
570
|
+
if (checkState[0] && this.autoCheck) {
|
|
571
|
+
this.getCheckedNodeDetails(mapper_1, checkState);
|
|
572
|
+
this.checkIndeterminateState(checkState[0]);
|
|
573
|
+
}
|
|
574
|
+
if (checkState.length > 0) {
|
|
575
|
+
var checkedId = checkState[0][this.fields.id] ? checkState[0][this.fields.id].toString() : null;
|
|
576
|
+
if (this.checkedNodes.indexOf(checkedId) > -1 && this.validNodes.indexOf(checkedId) === -1) {
|
|
577
|
+
this.validNodes.push(checkedId);
|
|
578
|
+
}
|
|
579
|
+
}
|
|
580
|
+
var checkedData = new DataManager(this.treeData).
|
|
581
|
+
executeLocal(new Query().where(mapper_1.parentID, 'equal', this.checkedNodes[i], true));
|
|
582
|
+
for (var index = 0; index < checkedData.length; index++) {
|
|
583
|
+
var checkedId = checkedData[index][this.fields.id] ? checkedData[index][this.fields.id].toString() : null;
|
|
584
|
+
if (this.checkedNodes.indexOf(checkedId) === -1 && this.autoCheck) {
|
|
585
|
+
this.checkedNodes.push(checkedId);
|
|
586
|
+
}
|
|
587
|
+
if (this.checkedNodes.indexOf(checkedId) > -1 && this.validNodes.indexOf(checkedId) === -1) {
|
|
588
|
+
this.validNodes.push(checkedId);
|
|
589
|
+
}
|
|
590
|
+
}
|
|
591
|
+
}
|
|
592
|
+
}
|
|
593
|
+
else if (this.dataType === 2 || (this.fields.dataSource instanceof DataManager &&
|
|
594
|
+
this.isOffline)) {
|
|
595
|
+
for (var index = 0; index < this.treeData.length; index++) {
|
|
596
|
+
var fieldId = this.treeData[index][this.fields.id] ? this.treeData[index][this.fields.id].toString() : '';
|
|
597
|
+
if (this.treeData[index][this.fields.isChecked] && !(this.isLoaded) && this.checkedNodes.indexOf(fieldId) === -1) {
|
|
598
|
+
this.checkedNodes.push(fieldId);
|
|
599
|
+
}
|
|
600
|
+
if (this.checkedNodes.indexOf(fieldId) > -1 && this.validNodes.indexOf(fieldId) === -1) {
|
|
601
|
+
this.validNodes.push(fieldId);
|
|
602
|
+
}
|
|
603
|
+
var childItems = getValue(this.fields.child.toString(), this.treeData[index]);
|
|
604
|
+
if (childItems) {
|
|
605
|
+
this.updateChildCheckState(childItems, this.treeData[index]);
|
|
606
|
+
}
|
|
607
|
+
}
|
|
608
|
+
this.validNodes = (this.enablePersistence) ? this.checkedNodes : this.validNodes;
|
|
609
|
+
}
|
|
610
|
+
this.setProperties({ checkedNodes: this.validNodes }, true);
|
|
611
|
+
}
|
|
612
|
+
};
|
|
613
|
+
/**
|
|
614
|
+
* To check whether the list data has sub child and to change the parent check state accordingly
|
|
615
|
+
*/
|
|
616
|
+
TreeView.prototype.getCheckedNodeDetails = function (mapper, checkNodes) {
|
|
617
|
+
var id = checkNodes[0][this.fields.parentID] ? checkNodes[0][this.fields.parentID].toString() : null;
|
|
618
|
+
var count = 0;
|
|
619
|
+
var element = this.element.querySelector('[data-uid="' + checkNodes[0][this.fields.id] + '"]');
|
|
620
|
+
var parentEle = this.element.querySelector('[data-uid="' + checkNodes[0][this.fields.parentID] + '"]');
|
|
621
|
+
if (!element && !parentEle) {
|
|
622
|
+
var len = this.parentNodeCheck.length;
|
|
623
|
+
if (this.parentNodeCheck.indexOf(id) === -1) {
|
|
624
|
+
this.parentNodeCheck.push(id);
|
|
625
|
+
}
|
|
626
|
+
var childNodes = this.getChildNodes(this.treeData, id);
|
|
627
|
+
for (var i = 0; i < childNodes.length; i++) {
|
|
628
|
+
var childId = childNodes[i][this.fields.id] ? childNodes[i][this.fields.id].toString() : null;
|
|
629
|
+
if (this.checkedNodes.indexOf(childId) !== -1) {
|
|
630
|
+
count++;
|
|
631
|
+
}
|
|
632
|
+
if (count === childNodes.length && this.checkedNodes.indexOf(id) === -1) {
|
|
633
|
+
this.checkedNodes.push(id);
|
|
634
|
+
}
|
|
635
|
+
}
|
|
636
|
+
var preElement = new DataManager(this.treeData).
|
|
637
|
+
executeLocal(new Query().where(mapper.id, 'equal', id, true));
|
|
638
|
+
this.getCheckedNodeDetails(mapper, preElement);
|
|
639
|
+
}
|
|
640
|
+
else if (parentEle) {
|
|
641
|
+
var check = select('.' + CHECK, parentEle);
|
|
642
|
+
if (!check) {
|
|
643
|
+
this.changeState(parentEle, 'indeterminate', null, true, true);
|
|
644
|
+
}
|
|
645
|
+
}
|
|
646
|
+
};
|
|
647
|
+
/**
|
|
648
|
+
* Update the checkedNodes and parent state when all the child Nodes are in checkedstate at initial rendering
|
|
649
|
+
*/
|
|
650
|
+
TreeView.prototype.updateParentCheckState = function () {
|
|
651
|
+
var indeterminate = selectAll('.' + INDETERMINATE, this.element);
|
|
652
|
+
var childCheckedElement;
|
|
653
|
+
for (var i = 0; i < indeterminate.length; i++) {
|
|
654
|
+
var node = closest(indeterminate[i], '.' + LISTITEM);
|
|
655
|
+
var nodeId = node.getAttribute('data-uid').toString();
|
|
656
|
+
if (this.dataType === 1) {
|
|
657
|
+
childCheckedElement = new DataManager(this.treeData).
|
|
658
|
+
executeLocal(new Query().where(this.fields.parentID, 'equal', nodeId, true));
|
|
659
|
+
}
|
|
660
|
+
else {
|
|
661
|
+
childCheckedElement = this.getChildNodes(this.treeData, nodeId);
|
|
662
|
+
}
|
|
663
|
+
var count = 0;
|
|
664
|
+
if (childCheckedElement) {
|
|
665
|
+
for (var j = 0; j < childCheckedElement.length; j++) {
|
|
666
|
+
var childId = childCheckedElement[j][this.fields.id].toString();
|
|
667
|
+
if (this.checkedNodes.indexOf(childId) !== -1) {
|
|
668
|
+
count++;
|
|
669
|
+
}
|
|
670
|
+
}
|
|
671
|
+
if (count === childCheckedElement.length) {
|
|
672
|
+
var nodeCheck = node.getAttribute('data-uid');
|
|
673
|
+
if (this.checkedNodes.indexOf(nodeCheck) === -1) {
|
|
674
|
+
this.checkedNodes.push(nodeCheck);
|
|
675
|
+
}
|
|
676
|
+
this.changeState(node, 'check', null, true, true);
|
|
677
|
+
}
|
|
678
|
+
else if (count === 0 && this.checkedNodes.length === 0) {
|
|
679
|
+
this.changeState(node, 'uncheck', null, true, true);
|
|
680
|
+
}
|
|
681
|
+
}
|
|
682
|
+
}
|
|
683
|
+
};
|
|
684
|
+
/**
|
|
685
|
+
* Change the parent to indeterminate state whenever the child is in checked state which is not rendered in DOM
|
|
686
|
+
*/
|
|
687
|
+
TreeView.prototype.checkIndeterminateState = function (data) {
|
|
688
|
+
var element;
|
|
689
|
+
if (this.dataType === 1) {
|
|
690
|
+
element = this.element.querySelector('[data-uid="' + data[this.fields.parentID] + '"]');
|
|
691
|
+
}
|
|
692
|
+
else {
|
|
693
|
+
element = this.element.querySelector('[data-uid="' + data[this.fields.id] + '"]');
|
|
694
|
+
}
|
|
695
|
+
if (element) {
|
|
696
|
+
var ariaChecked = element.querySelector('.' + CHECKBOXWRAP).getAttribute('aria-checked');
|
|
697
|
+
if (ariaChecked !== 'true') {
|
|
698
|
+
this.changeState(element, 'indeterminate', null, true, true);
|
|
699
|
+
}
|
|
700
|
+
}
|
|
701
|
+
else if (this.dataType === 2) {
|
|
702
|
+
var len = this.parentNodeCheck.length;
|
|
703
|
+
if (this.parentNodeCheck.indexOf(data[this.fields.id].toString()) === -1) {
|
|
704
|
+
this.parentNodeCheck.push(data[this.fields.id].toString());
|
|
705
|
+
}
|
|
706
|
+
}
|
|
707
|
+
};
|
|
708
|
+
/**
|
|
709
|
+
* Update the checkedNodes for child and subchild from datasource (hierarchical datasource) at initial rendering
|
|
710
|
+
*/
|
|
711
|
+
TreeView.prototype.updateChildCheckState = function (childItems, treeData) {
|
|
712
|
+
var count = 0;
|
|
713
|
+
var checkedParent = treeData[this.fields.id] ? treeData[this.fields.id].toString() : '';
|
|
714
|
+
for (var index = 0; index < childItems.length; index++) {
|
|
715
|
+
var checkedChild = childItems[index][this.fields.id] ? childItems[index][this.fields.id].toString() : '';
|
|
716
|
+
if (childItems[index][this.fields.isChecked] && !(this.isLoaded) && this.checkedNodes.indexOf(checkedChild) === -1) {
|
|
717
|
+
this.checkedNodes.push(checkedChild);
|
|
718
|
+
}
|
|
719
|
+
if (this.checkedNodes.indexOf(checkedParent) !== -1 && this.checkedNodes.indexOf(checkedChild) === -1 && this.autoCheck) {
|
|
720
|
+
this.checkedNodes.push(checkedChild);
|
|
721
|
+
}
|
|
722
|
+
if (this.checkedNodes.indexOf(checkedChild) !== -1 && this.autoCheck) {
|
|
723
|
+
count++;
|
|
724
|
+
}
|
|
725
|
+
if (this.checkedNodes.indexOf(checkedChild) > -1 && this.validNodes.indexOf(checkedChild) === -1) {
|
|
726
|
+
this.validNodes.push(checkedChild);
|
|
727
|
+
}
|
|
728
|
+
var subChildItems = getValue(this.fields.child.toString(), childItems[index]);
|
|
729
|
+
if (subChildItems && subChildItems.length) {
|
|
730
|
+
if (this.parentCheckData.indexOf(treeData) === -1)
|
|
731
|
+
this.parentCheckData.push(treeData);
|
|
732
|
+
this.updateChildCheckState(subChildItems, childItems[index]);
|
|
733
|
+
}
|
|
734
|
+
if (count === childItems.length && this.autoCheck && this.checkedNodes.indexOf(checkedParent) === -1) {
|
|
735
|
+
this.checkedNodes.push(checkedParent);
|
|
736
|
+
}
|
|
737
|
+
}
|
|
738
|
+
if (count !== 0 && this.autoCheck) {
|
|
739
|
+
this.checkIndeterminateState(treeData);
|
|
740
|
+
for (var len = 0; len < this.parentCheckData.length; len++) {
|
|
741
|
+
if ((treeData !== this.parentCheckData[len]) && (this.parentCheckData[len])) {
|
|
742
|
+
this.checkIndeterminateState(this.parentCheckData[len]);
|
|
743
|
+
}
|
|
744
|
+
}
|
|
745
|
+
}
|
|
746
|
+
this.parentCheckData = [];
|
|
459
747
|
};
|
|
460
748
|
TreeView.prototype.beforeNodeCreate = function (e) {
|
|
461
749
|
if (this.showCheckBox) {
|
|
462
750
|
var checkboxEle = createCheckBox(this.createElement, true, { cssClass: this.touchClass });
|
|
751
|
+
checkboxEle.setAttribute('role', 'checkbox');
|
|
752
|
+
checkboxEle.setAttribute('aria-label', 'checkbox');
|
|
463
753
|
var icon = select('div.' + ICON, e.item);
|
|
464
754
|
var id = e.item.getAttribute('data-uid');
|
|
465
755
|
e.item.childNodes[0].insertBefore(checkboxEle, e.item.childNodes[0].childNodes[isNOU(icon) ? 0 : 1]);
|
|
@@ -490,17 +780,26 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
490
780
|
var fields = e.fields;
|
|
491
781
|
this.addActionClass(e, fields.selected, SELECTED);
|
|
492
782
|
this.addActionClass(e, fields.expanded, EXPANDED);
|
|
783
|
+
e.item.setAttribute("tabindex", "-1");
|
|
784
|
+
EventHandler.add(e.item, 'focus', this.focusIn, this);
|
|
493
785
|
if (!isNOU(this.nodeTemplateFn)) {
|
|
494
786
|
var textEle = e.item.querySelector('.' + LISTTEXT);
|
|
787
|
+
var dataId = e.item.getAttribute('data-uid');
|
|
495
788
|
textEle.innerHTML = '';
|
|
496
|
-
|
|
789
|
+
this.renderNodeTemplate(e.curData, textEle, dataId);
|
|
497
790
|
}
|
|
498
791
|
var eventArgs = {
|
|
499
792
|
node: e.item,
|
|
500
793
|
nodeData: e.curData,
|
|
501
794
|
text: e.text,
|
|
502
795
|
};
|
|
503
|
-
this.
|
|
796
|
+
if (!this.isRefreshed) {
|
|
797
|
+
this.trigger('drawNode', eventArgs);
|
|
798
|
+
if (e.curData[this.fields.selectable] === false && !this.showCheckBox) {
|
|
799
|
+
e.item.classList.add(PREVENTSELECT);
|
|
800
|
+
e.item.firstElementChild.setAttribute('style', 'cursor: not-allowed');
|
|
801
|
+
}
|
|
802
|
+
}
|
|
504
803
|
};
|
|
505
804
|
TreeView.prototype.frameMouseHandler = function (e) {
|
|
506
805
|
var rippleSpan = select('.' + CHECKBOXRIPPLE, e.target.parentElement);
|
|
@@ -516,7 +815,12 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
516
815
|
TreeView.prototype.getDataType = function (ds, mapper) {
|
|
517
816
|
if (this.fields.dataSource instanceof DataManager) {
|
|
518
817
|
for (var i = 0; i < ds.length; i++) {
|
|
519
|
-
if (
|
|
818
|
+
if (this.isOffline) {
|
|
819
|
+
if ((typeof mapper.child === 'string') && isNOU(getValue(mapper.child, ds[i])) && !isNOU(getValue(mapper.parentID, ds[i]))) {
|
|
820
|
+
return 1;
|
|
821
|
+
}
|
|
822
|
+
}
|
|
823
|
+
else if ((typeof mapper.child === 'string') && isNOU(getValue(mapper.child, ds[i]))) {
|
|
520
824
|
return 1;
|
|
521
825
|
}
|
|
522
826
|
}
|
|
@@ -581,16 +885,9 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
581
885
|
}
|
|
582
886
|
};
|
|
583
887
|
TreeView.prototype.updateCheckedProp = function () {
|
|
584
|
-
var _this = this;
|
|
585
888
|
if (this.showCheckBox) {
|
|
586
|
-
var
|
|
587
|
-
this.
|
|
588
|
-
var checkBox = _this.element.querySelector('[data-uid="' + value + '"]');
|
|
589
|
-
if (isNOU(checkBox)) {
|
|
590
|
-
nodes_1 = nodes_1.filter(function (e) { return e !== value; });
|
|
591
|
-
}
|
|
592
|
-
});
|
|
593
|
-
this.setProperties({ checkedNodes: nodes_1 }, true);
|
|
889
|
+
var nodes = [].concat([], this.checkedNodes);
|
|
890
|
+
this.setProperties({ checkedNodes: nodes }, true);
|
|
594
891
|
}
|
|
595
892
|
};
|
|
596
893
|
TreeView.prototype.ensureIndeterminate = function () {
|
|
@@ -626,12 +923,13 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
626
923
|
ulElement = select('.' + PARENTITEM, element);
|
|
627
924
|
}
|
|
628
925
|
var checkedNodes = selectAll('.' + CHECK, ulElement);
|
|
926
|
+
var indeterminateNodes = selectAll('.' + INDETERMINATE, ulElement);
|
|
629
927
|
var nodes = selectAll('.' + LISTITEM, ulElement);
|
|
630
928
|
var checkBoxEle = element.getElementsByClassName(CHECKBOXWRAP)[0];
|
|
631
929
|
if (nodes.length === checkedNodes.length) {
|
|
632
930
|
this.changeState(checkBoxEle, 'check', null, true, true);
|
|
633
931
|
}
|
|
634
|
-
else if (checkedNodes.length > 0) {
|
|
932
|
+
else if (checkedNodes.length > 0 || indeterminateNodes.length > 0) {
|
|
635
933
|
this.changeState(checkBoxEle, 'indeterminate', null, true, true);
|
|
636
934
|
}
|
|
637
935
|
else if (checkedNodes.length === 0) {
|
|
@@ -651,28 +949,97 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
651
949
|
if (!isNOU(childElement)) {
|
|
652
950
|
checkBoxes = selectAll('.' + CHECKBOXWRAP, childElement);
|
|
653
951
|
var isChecked = element.getElementsByClassName(CHECKBOXFRAME)[0].classList.contains(CHECK);
|
|
952
|
+
var parentCheck = element.getElementsByClassName(CHECKBOXFRAME)[0].classList.contains(INDETERMINATE);
|
|
953
|
+
var childCheck = childElement.querySelectorAll('li');
|
|
954
|
+
var expandState = childElement.parentElement.getAttribute('aria-expanded');
|
|
654
955
|
var checkedState = void 0;
|
|
655
956
|
for (var index = 0; index < checkBoxes.length; index++) {
|
|
957
|
+
var childId = childCheck[index].getAttribute('data-uid');
|
|
656
958
|
if (!isNOU(this.currentLoadData) && !isNOU(getValue(this.fields.isChecked, this.currentLoadData[index]))) {
|
|
657
959
|
checkedState = getValue(this.fields.isChecked, this.currentLoadData[index]) ? 'check' : 'uncheck';
|
|
658
960
|
if (this.ele !== -1) {
|
|
659
961
|
checkedState = isChecked ? 'check' : 'uncheck';
|
|
660
962
|
}
|
|
963
|
+
if ((checkedState === 'uncheck') && (!isUndefined(this.parentNodeCheck) && this.autoCheck
|
|
964
|
+
&& this.parentNodeCheck.indexOf(childId) !== -1)) {
|
|
965
|
+
this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(childId), 1);
|
|
966
|
+
checkedState = 'indeterminate';
|
|
967
|
+
}
|
|
661
968
|
}
|
|
662
969
|
else {
|
|
663
970
|
var isNodeChecked = checkBoxes[index].getElementsByClassName(CHECKBOXFRAME)[0].classList.contains(CHECK);
|
|
664
|
-
|
|
971
|
+
if (isChecked) {
|
|
972
|
+
checkedState = 'check';
|
|
973
|
+
}
|
|
974
|
+
else if (isNodeChecked && !this.isLoaded) {
|
|
975
|
+
checkedState = 'check';
|
|
976
|
+
}
|
|
977
|
+
else if (this.checkedNodes.indexOf(childId) !== -1 && this.isLoaded && (parentCheck || isChecked)) {
|
|
978
|
+
checkedState = 'check';
|
|
979
|
+
}
|
|
980
|
+
else if (childCheck[index].classList.contains(CHILD) && (!isUndefined(this.parentNodeCheck) && this.autoCheck
|
|
981
|
+
&& (isChecked || parentCheck) && this.parentNodeCheck.indexOf(childId) !== -1)) {
|
|
982
|
+
checkedState = 'indeterminate';
|
|
983
|
+
this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(childId), 1);
|
|
984
|
+
}
|
|
985
|
+
else if (this.dataType === 1 && (!isUndefined(this.parentNodeCheck) && this.autoCheck &&
|
|
986
|
+
(isChecked || parentCheck) && this.parentNodeCheck.indexOf(childId) !== -1)) {
|
|
987
|
+
checkedState = 'indeterminate';
|
|
988
|
+
this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(childId), 1);
|
|
989
|
+
}
|
|
990
|
+
else {
|
|
991
|
+
checkedState = 'uncheck';
|
|
992
|
+
}
|
|
665
993
|
}
|
|
666
994
|
this.changeState(checkBoxes[index], checkedState, e, true, true);
|
|
667
995
|
}
|
|
668
996
|
}
|
|
997
|
+
if (this.autoCheck && this.isLoaded) {
|
|
998
|
+
this.updateParentCheckState();
|
|
999
|
+
}
|
|
669
1000
|
}
|
|
670
1001
|
};
|
|
671
1002
|
TreeView.prototype.doCheckBoxAction = function (nodes, doCheck) {
|
|
1003
|
+
var li = selectAll('.' + LISTITEM, this.element);
|
|
672
1004
|
if (!isNOU(nodes)) {
|
|
673
|
-
for (var
|
|
674
|
-
var liEle =
|
|
1005
|
+
for (var len = nodes.length; len >= 0; len--) {
|
|
1006
|
+
var liEle = void 0;
|
|
1007
|
+
if (nodes.length === 1) {
|
|
1008
|
+
liEle = this.getElement(nodes[len - 1]);
|
|
1009
|
+
}
|
|
1010
|
+
else {
|
|
1011
|
+
liEle = this.getElement(nodes[len]);
|
|
1012
|
+
}
|
|
675
1013
|
if (isNOU(liEle)) {
|
|
1014
|
+
var node = void 0;
|
|
1015
|
+
node = nodes[len - nodes.length] ? nodes[len - nodes.length].toString() : nodes[len] ? nodes[len].toString() : null;
|
|
1016
|
+
if (node !== '' && doCheck && node) {
|
|
1017
|
+
this.setValidCheckedNode(node);
|
|
1018
|
+
this.dynamicCheckState(node, doCheck);
|
|
1019
|
+
}
|
|
1020
|
+
else if (this.checkedNodes.indexOf(node) !== -1 && node !== '' && !doCheck) {
|
|
1021
|
+
this.checkedNodes.splice(this.checkedNodes.indexOf(node), 1);
|
|
1022
|
+
var childItems = this.getChildNodes(this.treeData, node);
|
|
1023
|
+
if (childItems) {
|
|
1024
|
+
for (var i = 0; i < childItems.length; i++) {
|
|
1025
|
+
var id = childItems[i][this.fields.id] ? childItems[i][this.fields.id].toString() : null;
|
|
1026
|
+
if (this.checkedNodes.indexOf(id) !== -1) {
|
|
1027
|
+
this.checkedNodes.splice(this.checkedNodes.indexOf(id), 1);
|
|
1028
|
+
var ele = this.element.querySelector('[data-uid="' + id + '"]');
|
|
1029
|
+
if (ele) {
|
|
1030
|
+
this.changeState(ele, 'uncheck', null);
|
|
1031
|
+
}
|
|
1032
|
+
}
|
|
1033
|
+
}
|
|
1034
|
+
if (this.parentNodeCheck.indexOf(node) !== -1) {
|
|
1035
|
+
this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(node), 1);
|
|
1036
|
+
}
|
|
1037
|
+
}
|
|
1038
|
+
if (node) {
|
|
1039
|
+
this.dynamicCheckState(node, doCheck);
|
|
1040
|
+
}
|
|
1041
|
+
this.updateField(this.treeData, this.fields, node, 'isChecked', null);
|
|
1042
|
+
}
|
|
676
1043
|
continue;
|
|
677
1044
|
}
|
|
678
1045
|
var checkBox = select('.' + PARENTITEM + ' .' + CHECKBOXWRAP, liEle);
|
|
@@ -681,23 +1048,236 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
681
1048
|
}
|
|
682
1049
|
else {
|
|
683
1050
|
var checkBoxes = selectAll('.' + CHECKBOXWRAP, this.element);
|
|
684
|
-
|
|
685
|
-
|
|
1051
|
+
if (this.loadOnDemand) {
|
|
1052
|
+
for (var index = 0; index < checkBoxes.length; index++) {
|
|
1053
|
+
this.updateFieldChecked(checkBoxes[index], doCheck);
|
|
1054
|
+
this.changeState(checkBoxes[index], doCheck ? 'check' : 'uncheck', null, null, null, doCheck);
|
|
1055
|
+
}
|
|
1056
|
+
}
|
|
1057
|
+
else {
|
|
1058
|
+
for (var index = 0; index < checkBoxes.length; index++) {
|
|
1059
|
+
this.updateFieldChecked(checkBoxes[index], doCheck);
|
|
1060
|
+
this.changeState(checkBoxes[index], doCheck ? 'check' : 'uncheck');
|
|
1061
|
+
}
|
|
686
1062
|
}
|
|
687
1063
|
}
|
|
1064
|
+
if (nodes) {
|
|
1065
|
+
for (var j = 0; j < nodes.length; j++) {
|
|
1066
|
+
var node = nodes[j] ? nodes[j].toString() : '';
|
|
1067
|
+
if (!doCheck) {
|
|
1068
|
+
this.updateField(this.treeData, this.fields, node, 'isChecked', null);
|
|
1069
|
+
}
|
|
1070
|
+
}
|
|
1071
|
+
}
|
|
1072
|
+
if (this.autoCheck) {
|
|
1073
|
+
this.updateParentCheckState();
|
|
1074
|
+
}
|
|
688
1075
|
};
|
|
689
|
-
TreeView.prototype.
|
|
690
|
-
var
|
|
1076
|
+
TreeView.prototype.updateFieldChecked = function (checkbox, doCheck) {
|
|
1077
|
+
var currLi = closest(checkbox, '.' + LISTITEM);
|
|
1078
|
+
var id = currLi.getAttribute('data-uid');
|
|
1079
|
+
var nodeDetails = this.getNodeData(currLi);
|
|
1080
|
+
if (nodeDetails.isChecked === 'true' && !doCheck) {
|
|
1081
|
+
this.updateField(this.treeData, this.fields, id, 'isChecked', null);
|
|
1082
|
+
}
|
|
1083
|
+
};
|
|
1084
|
+
/**
|
|
1085
|
+
* Changes the parent and child check state while changing the checkedNodes via setmodel
|
|
1086
|
+
*/
|
|
1087
|
+
TreeView.prototype.dynamicCheckState = function (node, doCheck) {
|
|
1088
|
+
if (this.dataType === 1) {
|
|
1089
|
+
var count = 0;
|
|
1090
|
+
var resultId = new DataManager(this.treeData).executeLocal(new Query().where(this.fields.id, 'equal', node, true));
|
|
1091
|
+
if (resultId[0]) {
|
|
1092
|
+
var id = resultId[0][this.fields.id] ? resultId[0][this.fields.id].toString() : null;
|
|
1093
|
+
var parent_1 = resultId[0][this.fields.parentID] ? resultId[0][this.fields.parentID].toString() : null;
|
|
1094
|
+
var parentElement = this.element.querySelector('[data-uid="' + parent_1 + '"]');
|
|
1095
|
+
var indeterminate = parentElement ? select('.' + INDETERMINATE, parentElement) : null;
|
|
1096
|
+
var check = parentElement ? select('.' + CHECK, parentElement) : null;
|
|
1097
|
+
var element = this.element.querySelector('[data-uid="' + id + '"]');
|
|
1098
|
+
var childNodes = this.getChildNodes(this.treeData, parent_1);
|
|
1099
|
+
if (childNodes) {
|
|
1100
|
+
for (var i = 0; i < childNodes.length; i++) {
|
|
1101
|
+
var childId = childNodes[i][this.fields.id] ? childNodes[i][this.fields.id].toString() : null;
|
|
1102
|
+
if (this.checkedNodes.indexOf(childId) !== -1) {
|
|
1103
|
+
count++;
|
|
1104
|
+
}
|
|
1105
|
+
}
|
|
1106
|
+
}
|
|
1107
|
+
if (this.checkedNodes.indexOf(node) !== -1 && parentElement && (id === node) && this.autoCheck) {
|
|
1108
|
+
this.changeState(parentElement, 'indeterminate', null);
|
|
1109
|
+
}
|
|
1110
|
+
else if (this.checkedNodes.indexOf(node) === -1 && element && (id === node) && !doCheck) {
|
|
1111
|
+
this.changeState(element, 'uncheck', null);
|
|
1112
|
+
}
|
|
1113
|
+
else if (this.checkedNodes.indexOf(node) !== -1 && element && (id === node) && doCheck) {
|
|
1114
|
+
this.changeState(element, 'check', null);
|
|
1115
|
+
}
|
|
1116
|
+
else if (this.checkedNodes.indexOf(node) === -1 && !element && parentElement && (id === node) && this.autoCheck
|
|
1117
|
+
&& count !== 0) {
|
|
1118
|
+
this.changeState(parentElement, 'indeterminate', null);
|
|
1119
|
+
}
|
|
1120
|
+
else if (this.checkedNodes.indexOf(node) === -1 && !element && parentElement && (id === node) && this.autoCheck
|
|
1121
|
+
&& count === 0) {
|
|
1122
|
+
this.changeState(parentElement, 'uncheck', null);
|
|
1123
|
+
}
|
|
1124
|
+
else if (!element && !parentElement && (id === node) && this.autoCheck) {
|
|
1125
|
+
this.updateIndeterminate(node, doCheck);
|
|
1126
|
+
}
|
|
1127
|
+
}
|
|
1128
|
+
}
|
|
1129
|
+
else if (this.dataType === 2 || (this.fields.dataSource instanceof DataManager &&
|
|
1130
|
+
this.isOffline)) {
|
|
1131
|
+
var id = void 0;
|
|
1132
|
+
var parentElement = void 0;
|
|
1133
|
+
var check = void 0;
|
|
1134
|
+
for (var i = 0; i < this.treeData.length; i++) {
|
|
1135
|
+
id = this.treeData[i][this.fields.id] ? this.treeData[i][this.fields.id].toString() : '';
|
|
1136
|
+
parentElement = this.element.querySelector('[data-uid="' + id + '"]');
|
|
1137
|
+
check = parentElement ? select('.' + CHECK, parentElement) : null;
|
|
1138
|
+
if (this.checkedNodes.indexOf(id) === -1 && parentElement && check && !doCheck) {
|
|
1139
|
+
this.changeState(parentElement, 'uncheck', null);
|
|
1140
|
+
}
|
|
1141
|
+
var subChild = getValue(this.fields.child.toString(), this.treeData[i]);
|
|
1142
|
+
if (subChild) {
|
|
1143
|
+
this.updateChildIndeterminate(subChild, id, node, doCheck, id);
|
|
1144
|
+
}
|
|
1145
|
+
}
|
|
1146
|
+
}
|
|
1147
|
+
};
|
|
1148
|
+
/**
|
|
1149
|
+
* updates the parent and child check state while changing the checkedNodes via setmodel for listData
|
|
1150
|
+
*/
|
|
1151
|
+
TreeView.prototype.updateIndeterminate = function (node, doCheck) {
|
|
1152
|
+
var indeterminateData = this.getTreeData(node);
|
|
1153
|
+
var count = 0;
|
|
1154
|
+
var parent;
|
|
1155
|
+
if (this.dataType === 1) {
|
|
1156
|
+
parent = indeterminateData[0][this.fields.parentID] ? indeterminateData[0][this.fields.parentID].toString() : null;
|
|
1157
|
+
}
|
|
1158
|
+
var childNodes = this.getChildNodes(this.treeData, parent);
|
|
1159
|
+
if (childNodes) {
|
|
1160
|
+
for (var i = 0; i < childNodes.length; i++) {
|
|
1161
|
+
var childId = childNodes[i][this.fields.id] ? childNodes[i][this.fields.id].toString() : null;
|
|
1162
|
+
if (this.checkedNodes.indexOf(childId) !== -1) {
|
|
1163
|
+
count++;
|
|
1164
|
+
}
|
|
1165
|
+
}
|
|
1166
|
+
}
|
|
1167
|
+
var parentElement = this.element.querySelector('[data-uid="' + parent + '"]');
|
|
1168
|
+
if (parentElement && doCheck) {
|
|
1169
|
+
this.changeState(parentElement, 'indeterminate', null);
|
|
1170
|
+
}
|
|
1171
|
+
else if (!doCheck && parentElement && this.parentNodeCheck.indexOf(parent) === -1 && count !== 0) {
|
|
1172
|
+
this.changeState(parentElement, 'indeterminate', null);
|
|
1173
|
+
}
|
|
1174
|
+
else if (!doCheck && parentElement && this.parentNodeCheck.indexOf(parent) === -1 && count === 0) {
|
|
1175
|
+
this.changeState(parentElement, 'uncheck', null);
|
|
1176
|
+
}
|
|
1177
|
+
else if (!parentElement) {
|
|
1178
|
+
if (!doCheck && this.checkedNodes.indexOf(parent) === -1 && this.parentNodeCheck.indexOf(parent) !== -1) {
|
|
1179
|
+
this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(parent), 1);
|
|
1180
|
+
}
|
|
1181
|
+
else if (doCheck && this.checkedNodes.indexOf(parent) === -1 && this.parentNodeCheck.indexOf(parent) === -1) {
|
|
1182
|
+
this.parentNodeCheck.push(parent);
|
|
1183
|
+
}
|
|
1184
|
+
else if (!doCheck && this.checkedNodes.indexOf(parent) !== -1 && this.parentNodeCheck.indexOf(parent) === -1
|
|
1185
|
+
&& count !== 0) {
|
|
1186
|
+
this.parentNodeCheck.push(parent);
|
|
1187
|
+
}
|
|
1188
|
+
this.updateIndeterminate(parent, doCheck);
|
|
1189
|
+
if (this.checkedNodes.indexOf(parent) !== -1 && !doCheck) {
|
|
1190
|
+
this.checkedNodes.splice(this.checkedNodes.indexOf(parent), 1);
|
|
1191
|
+
}
|
|
1192
|
+
}
|
|
1193
|
+
};
|
|
1194
|
+
/**
|
|
1195
|
+
* updates the parent and child check state while changing the checkedNodes via setmodel for hierarchical data
|
|
1196
|
+
*/
|
|
1197
|
+
TreeView.prototype.updateChildIndeterminate = function (subChild, parent, node, doCheck, child) {
|
|
1198
|
+
var count = 0;
|
|
1199
|
+
for (var j = 0; j < subChild.length; j++) {
|
|
1200
|
+
var subId = subChild[j][this.fields.id] ? subChild[j][this.fields.id].toString() : '';
|
|
1201
|
+
if (this.checkedNodes.indexOf(subId) !== -1) {
|
|
1202
|
+
count++;
|
|
1203
|
+
}
|
|
1204
|
+
var parentElement = this.element.querySelector('[data-uid="' + parent + '"]');
|
|
1205
|
+
var indeterminate = parentElement ? select('.' + INDETERMINATE, parentElement) : null;
|
|
1206
|
+
var check = parentElement ? select('.' + CHECK, parentElement) : null;
|
|
1207
|
+
var element = this.element.querySelector('[data-uid="' + subId + '"]');
|
|
1208
|
+
var childElementCheck = element ? select('.' + CHECK, element) : null;
|
|
1209
|
+
if (this.checkedNodes.indexOf(node) !== -1 && parentElement && (subId === node) && this.autoCheck) {
|
|
1210
|
+
this.changeState(parentElement, 'indeterminate', null);
|
|
1211
|
+
}
|
|
1212
|
+
else if (this.checkedNodes.indexOf(node) === -1 && parentElement && !element && (subId === node) && !doCheck) {
|
|
1213
|
+
if (this.autoCheck) {
|
|
1214
|
+
this.changeState(parentElement, 'uncheck', null);
|
|
1215
|
+
}
|
|
1216
|
+
else {
|
|
1217
|
+
if (count !== 0) {
|
|
1218
|
+
this.changeState(parentElement, 'indeterminate', null);
|
|
1219
|
+
}
|
|
1220
|
+
else {
|
|
1221
|
+
this.changeState(parentElement, 'uncheck', null);
|
|
1222
|
+
}
|
|
1223
|
+
}
|
|
1224
|
+
}
|
|
1225
|
+
else if (this.checkedNodes.indexOf(node) === -1 && element && (subId === node) && !doCheck) {
|
|
1226
|
+
this.changeState(element, 'uncheck', null);
|
|
1227
|
+
}
|
|
1228
|
+
else if (this.checkedNodes.indexOf(node) === -1 && indeterminate && (subId === node) && this.autoCheck && count === 0
|
|
1229
|
+
&& !doCheck) {
|
|
1230
|
+
indeterminate.classList.remove(INDETERMINATE);
|
|
1231
|
+
}
|
|
1232
|
+
else if (this.checkedNodes.indexOf(node) === -1 && !element && check && (subId === node) && count === 0) {
|
|
1233
|
+
this.changeState(parentElement, 'uncheck', null);
|
|
1234
|
+
}
|
|
1235
|
+
else if (this.checkedNodes.indexOf(subId) === -1 && element && childElementCheck && count === 0) {
|
|
1236
|
+
this.changeState(element, 'uncheck', null);
|
|
1237
|
+
}
|
|
1238
|
+
else if (!element && !parentElement && (subId === node) || (this.parentNodeCheck.indexOf(parent) !== -1) && this.autoCheck) {
|
|
1239
|
+
var childElement = this.element.querySelector('[data-uid="' + child + '"]');
|
|
1240
|
+
if (doCheck && count !== 0) {
|
|
1241
|
+
this.changeState(childElement, 'indeterminate', null);
|
|
1242
|
+
}
|
|
1243
|
+
else if (doCheck && count === subChild.length && this.checkedNodes.indexOf(parent) === -1) {
|
|
1244
|
+
this.checkedNodes.push(parent);
|
|
1245
|
+
}
|
|
1246
|
+
else if (!doCheck && count === 0 && this.parentNodeCheck.indexOf(parent) !== -1) {
|
|
1247
|
+
this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(parent));
|
|
1248
|
+
}
|
|
1249
|
+
if (this.parentNodeCheck.indexOf(parent) === -1) {
|
|
1250
|
+
this.parentNodeCheck.push(parent);
|
|
1251
|
+
}
|
|
1252
|
+
}
|
|
1253
|
+
var innerChild = getValue(this.fields.child.toString(), subChild[j]);
|
|
1254
|
+
if (innerChild) {
|
|
1255
|
+
this.updateChildIndeterminate(innerChild, subId, node, doCheck, child);
|
|
1256
|
+
}
|
|
1257
|
+
}
|
|
1258
|
+
};
|
|
1259
|
+
TreeView.prototype.changeState = function (wrapper, state, e, isPrevent, isAdd, doCheck) {
|
|
1260
|
+
var _this = this;
|
|
691
1261
|
var eventArgs;
|
|
692
1262
|
var currLi = closest(wrapper, '.' + LISTITEM);
|
|
1263
|
+
if (wrapper === currLi) {
|
|
1264
|
+
wrapper = select('.' + CHECKBOXWRAP, currLi);
|
|
1265
|
+
}
|
|
693
1266
|
if (!isPrevent) {
|
|
694
1267
|
this.checkActionNodes = [];
|
|
695
1268
|
eventArgs = this.getCheckEvent(currLi, state, e);
|
|
696
|
-
this.trigger('nodeChecking', eventArgs)
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
1269
|
+
this.trigger('nodeChecking', eventArgs, function (observedArgs) {
|
|
1270
|
+
if (!observedArgs.cancel) {
|
|
1271
|
+
_this.nodeCheckAction(wrapper, state, currLi, observedArgs, e, isPrevent, isAdd, doCheck);
|
|
1272
|
+
}
|
|
1273
|
+
});
|
|
1274
|
+
}
|
|
1275
|
+
else {
|
|
1276
|
+
this.nodeCheckAction(wrapper, state, currLi, eventArgs, e, isPrevent, isAdd, doCheck);
|
|
700
1277
|
}
|
|
1278
|
+
};
|
|
1279
|
+
TreeView.prototype.nodeCheckAction = function (wrapper, state, currLi, eventArgs, e, isPrevent, isAdd, doCheck) {
|
|
1280
|
+
var ariaState;
|
|
701
1281
|
var frameSpan = wrapper.getElementsByClassName(CHECKBOXFRAME)[0];
|
|
702
1282
|
if (state === 'check' && !frameSpan.classList.contains(CHECK)) {
|
|
703
1283
|
frameSpan.classList.remove(INDETERMINATE);
|
|
@@ -710,7 +1290,7 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
710
1290
|
this.removeCheck(currLi);
|
|
711
1291
|
ariaState = 'false';
|
|
712
1292
|
}
|
|
713
|
-
else if (state === 'indeterminate' &&
|
|
1293
|
+
else if (state === 'indeterminate' && this.autoCheck) {
|
|
714
1294
|
frameSpan.classList.remove(CHECK);
|
|
715
1295
|
frameSpan.classList.add(INDETERMINATE);
|
|
716
1296
|
this.removeCheck(currLi);
|
|
@@ -727,6 +1307,9 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
727
1307
|
eventArgs.data = data;
|
|
728
1308
|
}
|
|
729
1309
|
}
|
|
1310
|
+
if (doCheck !== undefined) {
|
|
1311
|
+
this.ensureStateChange(currLi, doCheck);
|
|
1312
|
+
}
|
|
730
1313
|
if (!isPrevent) {
|
|
731
1314
|
if (!isNOU(ariaState)) {
|
|
732
1315
|
wrapper.setAttribute('aria-checked', ariaState);
|
|
@@ -755,20 +1338,49 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
755
1338
|
};
|
|
756
1339
|
TreeView.prototype.finalize = function () {
|
|
757
1340
|
var firstUl = select('.' + PARENTITEM, this.element);
|
|
758
|
-
firstUl
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
1341
|
+
if (!isNullOrUndefined(firstUl)) {
|
|
1342
|
+
firstUl.setAttribute('role', treeAriaAttr.treeRole);
|
|
1343
|
+
this.setMultiSelect(this.allowMultiSelection);
|
|
1344
|
+
var firstNode = select('.' + LISTITEM, this.element);
|
|
1345
|
+
if (firstNode) {
|
|
1346
|
+
firstNode.setAttribute('tabindex', '0');
|
|
1347
|
+
this.updateIdAttr(null, firstNode);
|
|
1348
|
+
}
|
|
1349
|
+
if (this.allowTextWrap) {
|
|
1350
|
+
this.updateWrap();
|
|
1351
|
+
}
|
|
1352
|
+
this.renderReactTemplates();
|
|
1353
|
+
this.hasPid = this.rootData[0] ? this.rootData[0].hasOwnProperty(this.fields.parentID) : false;
|
|
1354
|
+
this.doExpandAction();
|
|
1355
|
+
}
|
|
1356
|
+
};
|
|
1357
|
+
TreeView.prototype.setTextWrap = function () {
|
|
1358
|
+
(this.allowTextWrap ? addClass : removeClass)([this.element], LISTWRAP);
|
|
1359
|
+
if (Browser.isIE) {
|
|
1360
|
+
(this.allowTextWrap ? addClass : removeClass)([this.element], IELISTWRAP);
|
|
1361
|
+
}
|
|
1362
|
+
};
|
|
1363
|
+
TreeView.prototype.updateWrap = function (ulEle) {
|
|
1364
|
+
if (!this.fullRowSelect) {
|
|
1365
|
+
return;
|
|
1366
|
+
}
|
|
1367
|
+
var liEle = ulEle ? selectAll('.' + LISTITEM, ulEle) : this.liList;
|
|
1368
|
+
var length = liEle.length;
|
|
1369
|
+
for (var i = 0; i < length; i++) {
|
|
1370
|
+
this.calculateWrap(liEle[i]);
|
|
1371
|
+
}
|
|
1372
|
+
};
|
|
1373
|
+
TreeView.prototype.calculateWrap = function (liEle) {
|
|
1374
|
+
var element = select('.' + FULLROW, liEle);
|
|
1375
|
+
if (element && element.nextElementSibling) {
|
|
1376
|
+
element.style.height = this.allowTextWrap ? element.nextElementSibling.offsetHeight + 'px' : '';
|
|
764
1377
|
}
|
|
765
|
-
this.hasPid = this.rootData[0] ? this.rootData[0].hasOwnProperty(this.fields.parentID) : false;
|
|
766
|
-
this.doExpandAction();
|
|
767
1378
|
};
|
|
768
1379
|
TreeView.prototype.doExpandAction = function () {
|
|
769
1380
|
var eUids = this.expandedNodes;
|
|
770
1381
|
if (this.isInitalExpand && eUids.length > 0) {
|
|
771
1382
|
this.setProperties({ expandedNodes: [] }, true);
|
|
1383
|
+
/* eslint-disable */
|
|
772
1384
|
if (this.fields.dataSource instanceof DataManager) {
|
|
773
1385
|
this.expandGivenNodes(eUids);
|
|
774
1386
|
}
|
|
@@ -781,6 +1393,12 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
781
1393
|
this.expandAction(eNode, icon, null);
|
|
782
1394
|
}
|
|
783
1395
|
}
|
|
1396
|
+
else {
|
|
1397
|
+
if (eUids[i] && this.expandChildren.indexOf(eUids[i]) === -1) {
|
|
1398
|
+
this.expandChildren.push(eUids[i].toString());
|
|
1399
|
+
}
|
|
1400
|
+
continue;
|
|
1401
|
+
}
|
|
784
1402
|
}
|
|
785
1403
|
this.afterFinalized();
|
|
786
1404
|
}
|
|
@@ -819,11 +1437,14 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
819
1437
|
TreeView.prototype.afterFinalized = function () {
|
|
820
1438
|
this.doSelectionAction();
|
|
821
1439
|
this.updateCheckedProp();
|
|
822
|
-
this.isLoaded = true;
|
|
823
1440
|
this.isAnimate = true;
|
|
824
1441
|
this.isInitalExpand = false;
|
|
825
|
-
|
|
826
|
-
|
|
1442
|
+
if ((!this.isLoaded || this.isFieldChange) && !this.isNodeDropped) {
|
|
1443
|
+
var eventArgs = { data: this.treeData };
|
|
1444
|
+
this.trigger('dataBound', eventArgs);
|
|
1445
|
+
}
|
|
1446
|
+
this.isLoaded = true;
|
|
1447
|
+
this.isNodeDropped = false;
|
|
827
1448
|
};
|
|
828
1449
|
TreeView.prototype.doSelectionAction = function () {
|
|
829
1450
|
var sNodes = selectAll('.' + SELECTED, this.element);
|
|
@@ -832,7 +1453,12 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
832
1453
|
this.setProperties({ selectedNodes: [] }, true);
|
|
833
1454
|
for (var i = 0; i < sUids.length; i++) {
|
|
834
1455
|
var sNode = select('[data-uid="' + sUids[i] + '"]', this.element);
|
|
835
|
-
|
|
1456
|
+
if (sNode && !(sNode.classList.contains('e-active'))) {
|
|
1457
|
+
this.selectNode(sNode, null, true);
|
|
1458
|
+
}
|
|
1459
|
+
else {
|
|
1460
|
+
this.selectedNodes.push(sUids[i]);
|
|
1461
|
+
}
|
|
836
1462
|
if (!this.allowMultiSelection) {
|
|
837
1463
|
break;
|
|
838
1464
|
}
|
|
@@ -854,7 +1480,7 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
854
1480
|
}
|
|
855
1481
|
};
|
|
856
1482
|
TreeView.prototype.clickHandler = function (event) {
|
|
857
|
-
var target = event.originalEvent.target;
|
|
1483
|
+
var target = Browser.isDevice && !Browser.isIos ? document.elementFromPoint(event.originalEvent.changedTouches[0].clientX, event.originalEvent.changedTouches[0].clientY) : event.originalEvent.target;
|
|
858
1484
|
EventHandler.remove(this.element, 'contextmenu', this.preventContextMenu);
|
|
859
1485
|
if (!target || this.dragStartAction) {
|
|
860
1486
|
return;
|
|
@@ -862,10 +1488,12 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
862
1488
|
else {
|
|
863
1489
|
var classList = target.classList;
|
|
864
1490
|
var li = closest(target, '.' + LISTITEM);
|
|
865
|
-
if (!li) {
|
|
1491
|
+
if (!li || (li.classList.contains(PREVENTSELECT) && !(classList.contains(EXPANDABLE) || classList.contains(COLLAPSIBLE)))) {
|
|
866
1492
|
return;
|
|
867
1493
|
}
|
|
868
|
-
else {
|
|
1494
|
+
else if (event.originalEvent.which !== 3) {
|
|
1495
|
+
var rippleElement = select('.' + RIPPLEELMENT, li);
|
|
1496
|
+
var rippleIcons = select('.' + ICON, li);
|
|
869
1497
|
this.removeHover();
|
|
870
1498
|
this.setFocusElement(li);
|
|
871
1499
|
if (this.showCheckBox && !li.classList.contains('e-disable')) {
|
|
@@ -883,26 +1511,29 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
883
1511
|
else if (classList.contains(COLLAPSIBLE)) {
|
|
884
1512
|
this.collapseNode(li, target, event);
|
|
885
1513
|
}
|
|
1514
|
+
else if (rippleElement && rippleIcons) {
|
|
1515
|
+
if (rippleIcons.classList.contains(RIPPLE) && rippleIcons.classList.contains(EXPANDABLE)) {
|
|
1516
|
+
this.expandAction(li, rippleIcons, event);
|
|
1517
|
+
}
|
|
1518
|
+
else if (rippleIcons.classList.contains(RIPPLE) && rippleIcons.classList.contains(COLLAPSIBLE)) {
|
|
1519
|
+
this.collapseNode(li, rippleIcons, event);
|
|
1520
|
+
}
|
|
1521
|
+
else if (!classList.contains(PARENTITEM) && !classList.contains(LISTITEM)) {
|
|
1522
|
+
this.toggleSelect(li, event.originalEvent, false);
|
|
1523
|
+
}
|
|
1524
|
+
}
|
|
886
1525
|
else {
|
|
887
1526
|
if (!classList.contains(PARENTITEM) && !classList.contains(LISTITEM)) {
|
|
888
1527
|
this.toggleSelect(li, event.originalEvent, false);
|
|
889
1528
|
}
|
|
890
1529
|
}
|
|
891
|
-
this.triggerClickEvent(event.originalEvent, li);
|
|
892
1530
|
}
|
|
1531
|
+
if (event.originalEvent.which === 3) {
|
|
1532
|
+
this.isRightClick = true;
|
|
1533
|
+
}
|
|
1534
|
+
this.triggerClickEvent(event.originalEvent, li);
|
|
893
1535
|
}
|
|
894
1536
|
};
|
|
895
|
-
TreeView.prototype.nodeCheckingEvent = function (wrapper, isCheck, e) {
|
|
896
|
-
var currLi = closest(wrapper, '.' + LISTITEM);
|
|
897
|
-
this.checkActionNodes = [];
|
|
898
|
-
var ariaState = !isCheck ? 'true' : 'false';
|
|
899
|
-
if (!isNOU(ariaState)) {
|
|
900
|
-
wrapper.setAttribute('aria-checked', ariaState);
|
|
901
|
-
}
|
|
902
|
-
var eventArgs = this.getCheckEvent(currLi, isCheck ? 'uncheck' : 'check', e);
|
|
903
|
-
this.trigger('nodeChecking', eventArgs);
|
|
904
|
-
return eventArgs;
|
|
905
|
-
};
|
|
906
1537
|
TreeView.prototype.nodeCheckedEvent = function (wrapper, isCheck, e) {
|
|
907
1538
|
var currLi = closest(wrapper, '.' + LISTITEM);
|
|
908
1539
|
var eventArgs = this.getCheckEvent(wrapper, isCheck ? 'uncheck' : 'check', e);
|
|
@@ -918,6 +1549,7 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
918
1549
|
};
|
|
919
1550
|
TreeView.prototype.expandNode = function (currLi, icon, loaded) {
|
|
920
1551
|
var _this = this;
|
|
1552
|
+
this.renderReactTemplates();
|
|
921
1553
|
if (icon.classList.contains(LOAD)) {
|
|
922
1554
|
this.hideSpinner(icon);
|
|
923
1555
|
}
|
|
@@ -934,13 +1566,17 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
934
1566
|
var ul_1 = select('.' + PARENTITEM, currLi);
|
|
935
1567
|
var liEle_1 = currLi;
|
|
936
1568
|
this.setHeight(liEle_1, ul_1);
|
|
937
|
-
|
|
1569
|
+
var activeElement_1 = select('.' + LISTITEM + '.' + ACTIVE, currLi);
|
|
1570
|
+
if (this.isAnimate && !this.isRefreshed) {
|
|
938
1571
|
this.aniObj.animate(ul_1, {
|
|
939
1572
|
name: this.animation.expand.effect,
|
|
940
1573
|
duration: this.animation.expand.duration,
|
|
941
1574
|
timingFunction: this.animation.expand.easing,
|
|
942
1575
|
begin: function (args) {
|
|
943
1576
|
liEle_1.style.overflow = 'hidden';
|
|
1577
|
+
if (!isNullOrUndefined(activeElement_1) && activeElement_1 instanceof HTMLElement) {
|
|
1578
|
+
activeElement_1.classList.add(ITEM_ANIMATION_ACTIVE);
|
|
1579
|
+
}
|
|
944
1580
|
start_1 = liEle_1.offsetHeight;
|
|
945
1581
|
end_1 = select('.' + TEXTWRAP, currLi).offsetHeight;
|
|
946
1582
|
},
|
|
@@ -950,6 +1586,9 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
950
1586
|
},
|
|
951
1587
|
end: function (args) {
|
|
952
1588
|
args.element.style.display = 'block';
|
|
1589
|
+
if (!isNullOrUndefined(activeElement_1) && activeElement_1 instanceof HTMLElement) {
|
|
1590
|
+
activeElement_1.classList.remove(ITEM_ANIMATION_ACTIVE);
|
|
1591
|
+
}
|
|
953
1592
|
_this.expandedNode(liEle_1, ul_1, icon);
|
|
954
1593
|
}
|
|
955
1594
|
});
|
|
@@ -977,8 +1616,13 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
977
1616
|
currLi.style.height = '';
|
|
978
1617
|
removeClass([icon], PROCESS);
|
|
979
1618
|
this.addExpand(currLi);
|
|
980
|
-
if (this.isLoaded && this.
|
|
1619
|
+
if (this.allowTextWrap && this.isLoaded && this.isFirstRender) {
|
|
1620
|
+
this.updateWrap(currLi);
|
|
1621
|
+
this.isFirstRender = false;
|
|
1622
|
+
}
|
|
1623
|
+
if (this.isLoaded && this.expandArgs && !this.isRefreshed) {
|
|
981
1624
|
this.expandArgs = this.getExpandEvent(currLi, null);
|
|
1625
|
+
this.expandArgs.isInteracted = this.isInteracted;
|
|
982
1626
|
this.trigger('nodeExpanded', this.expandArgs);
|
|
983
1627
|
}
|
|
984
1628
|
};
|
|
@@ -1001,12 +1645,22 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
1001
1645
|
var colArgs;
|
|
1002
1646
|
if (this.isLoaded) {
|
|
1003
1647
|
colArgs = this.getExpandEvent(currLi, e);
|
|
1004
|
-
this.
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1648
|
+
this.isInteracted = colArgs.isInteracted;
|
|
1649
|
+
this.trigger('nodeCollapsing', colArgs, function (observedArgs) {
|
|
1650
|
+
if (observedArgs.cancel) {
|
|
1651
|
+
removeClass([icon], PROCESS);
|
|
1652
|
+
}
|
|
1653
|
+
else {
|
|
1654
|
+
_this.nodeCollapseAction(currLi, icon, observedArgs);
|
|
1655
|
+
}
|
|
1656
|
+
});
|
|
1657
|
+
}
|
|
1658
|
+
else {
|
|
1659
|
+
this.nodeCollapseAction(currLi, icon, colArgs);
|
|
1009
1660
|
}
|
|
1661
|
+
};
|
|
1662
|
+
TreeView.prototype.nodeCollapseAction = function (currLi, icon, colArgs) {
|
|
1663
|
+
var _this = this;
|
|
1010
1664
|
removeClass([icon], COLLAPSIBLE);
|
|
1011
1665
|
addClass([icon], EXPANDABLE);
|
|
1012
1666
|
var start = 0;
|
|
@@ -1014,6 +1668,7 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
1014
1668
|
var proxy = this;
|
|
1015
1669
|
var ul = select('.' + PARENTITEM, currLi);
|
|
1016
1670
|
var liEle = currLi;
|
|
1671
|
+
var activeElement = select('.' + LISTITEM + '.' + ACTIVE, currLi);
|
|
1017
1672
|
if (this.isAnimate) {
|
|
1018
1673
|
this.aniObj.animate(ul, {
|
|
1019
1674
|
name: this.animation.collapse.effect,
|
|
@@ -1021,6 +1676,9 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
1021
1676
|
timingFunction: this.animation.collapse.easing,
|
|
1022
1677
|
begin: function (args) {
|
|
1023
1678
|
liEle.style.overflow = 'hidden';
|
|
1679
|
+
if (!isNullOrUndefined(activeElement) && activeElement instanceof HTMLElement) {
|
|
1680
|
+
activeElement.classList.add(ITEM_ANIMATION_ACTIVE);
|
|
1681
|
+
}
|
|
1024
1682
|
start = select('.' + TEXTWRAP, currLi).offsetHeight;
|
|
1025
1683
|
end = liEle.offsetHeight;
|
|
1026
1684
|
},
|
|
@@ -1029,6 +1687,9 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
1029
1687
|
},
|
|
1030
1688
|
end: function (args) {
|
|
1031
1689
|
args.element.style.display = 'none';
|
|
1690
|
+
if (!isNullOrUndefined(activeElement) && activeElement instanceof HTMLElement) {
|
|
1691
|
+
activeElement.classList.remove(ITEM_ANIMATION_ACTIVE);
|
|
1692
|
+
}
|
|
1032
1693
|
_this.collapsedNode(liEle, ul, icon, colArgs);
|
|
1033
1694
|
}
|
|
1034
1695
|
});
|
|
@@ -1044,6 +1705,8 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
1044
1705
|
removeClass([icon], PROCESS);
|
|
1045
1706
|
this.removeExpand(liEle);
|
|
1046
1707
|
if (this.isLoaded) {
|
|
1708
|
+
colArgs = this.getExpandEvent(liEle, null);
|
|
1709
|
+
colArgs.isInteracted = this.isInteracted;
|
|
1047
1710
|
this.trigger('nodeCollapsed', colArgs);
|
|
1048
1711
|
}
|
|
1049
1712
|
};
|
|
@@ -1083,31 +1746,37 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
1083
1746
|
}
|
|
1084
1747
|
this.showSpinner(eicon);
|
|
1085
1748
|
var childItems;
|
|
1749
|
+
/* eslint-disable */
|
|
1086
1750
|
if (this.fields.dataSource instanceof DataManager) {
|
|
1087
1751
|
var level = this.parents(parentLi, '.' + PARENTITEM).length;
|
|
1088
|
-
var
|
|
1089
|
-
if (isNOU(
|
|
1752
|
+
var mapper_2 = this.getChildFields(this.fields, level, 1);
|
|
1753
|
+
if (isNOU(mapper_2) || isNOU(mapper_2.dataSource)) {
|
|
1090
1754
|
detach(eicon);
|
|
1091
1755
|
this.removeExpand(parentLi, true);
|
|
1092
1756
|
return;
|
|
1093
1757
|
}
|
|
1094
1758
|
this.treeList.push('false');
|
|
1095
|
-
if (this.fields.dataSource instanceof DataManager &&
|
|
1759
|
+
if (this.fields.dataSource instanceof DataManager && this.isOffline) {
|
|
1096
1760
|
this.treeList.pop();
|
|
1097
1761
|
childItems = this.getChildNodes(this.treeData, parentLi.getAttribute('data-uid'));
|
|
1098
|
-
this.loadChild(childItems,
|
|
1762
|
+
this.loadChild(childItems, mapper_2, eicon, parentLi, expandChild, callback, loaded);
|
|
1099
1763
|
}
|
|
1100
1764
|
else {
|
|
1101
|
-
|
|
1765
|
+
mapper_2.dataSource.executeQuery(this.getQuery(mapper_2, parentLi.getAttribute('data-uid'))).then(function (e) {
|
|
1102
1766
|
_this.treeList.pop();
|
|
1103
1767
|
childItems = e.result;
|
|
1104
|
-
_this.
|
|
1768
|
+
if (_this.dataType === 1) {
|
|
1769
|
+
_this.dataType = 2;
|
|
1770
|
+
}
|
|
1771
|
+
_this.loadChild(childItems, mapper_2, eicon, parentLi, expandChild, callback, loaded);
|
|
1772
|
+
}).catch(function (e) {
|
|
1773
|
+
_this.trigger('actionFailure', { error: e });
|
|
1105
1774
|
});
|
|
1106
1775
|
}
|
|
1107
1776
|
}
|
|
1108
1777
|
else {
|
|
1109
1778
|
childItems = this.getChildNodes(this.treeData, parentLi.getAttribute('data-uid'));
|
|
1110
|
-
this.currentLoadData = childItems;
|
|
1779
|
+
this.currentLoadData = this.getSortedData(childItems);
|
|
1111
1780
|
if (isNOU(childItems) || childItems.length === 0) {
|
|
1112
1781
|
detach(eicon);
|
|
1113
1782
|
this.removeExpand(parentLi, true);
|
|
@@ -1115,8 +1784,9 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
1115
1784
|
}
|
|
1116
1785
|
else {
|
|
1117
1786
|
this.listBaseOption.ariaAttributes.level = parseFloat(parentLi.getAttribute('aria-level')) + 1;
|
|
1118
|
-
parentLi.appendChild(ListBase.createList(this.createElement, this.
|
|
1787
|
+
parentLi.appendChild(ListBase.createList(this.createElement, this.currentLoadData, this.listBaseOption));
|
|
1119
1788
|
this.expandNode(parentLi, eicon, loaded);
|
|
1789
|
+
this.setSelectionForChildNodes(childItems);
|
|
1120
1790
|
this.ensureCheckNode(parentLi);
|
|
1121
1791
|
this.finalizeNode(parentLi);
|
|
1122
1792
|
this.disableTreeNodes(childItems);
|
|
@@ -1132,7 +1802,7 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
1132
1802
|
}
|
|
1133
1803
|
else {
|
|
1134
1804
|
this.updateListProp(mapper);
|
|
1135
|
-
if (this.fields.dataSource instanceof DataManager && !this.
|
|
1805
|
+
if (this.fields.dataSource instanceof DataManager && !this.isOffline) {
|
|
1136
1806
|
var id = parentLi.getAttribute('data-uid');
|
|
1137
1807
|
var nodeData = this.getNodeObject(id);
|
|
1138
1808
|
setValue('child', childItems, nodeData);
|
|
@@ -1140,6 +1810,7 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
1140
1810
|
this.listBaseOption.ariaAttributes.level = parseFloat(parentLi.getAttribute('aria-level')) + 1;
|
|
1141
1811
|
parentLi.appendChild(ListBase.createList(this.createElement, childItems, this.listBaseOption));
|
|
1142
1812
|
this.expandNode(parentLi, eicon, loaded);
|
|
1813
|
+
this.setSelectionForChildNodes(childItems);
|
|
1143
1814
|
this.ensureCheckNode(parentLi);
|
|
1144
1815
|
this.finalizeNode(parentLi);
|
|
1145
1816
|
this.disableTreeNodes(childItems);
|
|
@@ -1155,13 +1826,25 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
1155
1826
|
TreeView.prototype.disableTreeNodes = function (childItems) {
|
|
1156
1827
|
var i = 0;
|
|
1157
1828
|
while (i < childItems.length) {
|
|
1158
|
-
var id = childItems[i][this.fields.id].toString();
|
|
1829
|
+
var id = childItems[i][this.fields.id] ? childItems[i][this.fields.id].toString() : null;
|
|
1159
1830
|
if (this.disableNode !== undefined && this.disableNode.indexOf(id) !== -1) {
|
|
1160
1831
|
this.doDisableAction([id]);
|
|
1161
1832
|
}
|
|
1162
1833
|
i++;
|
|
1163
1834
|
}
|
|
1164
1835
|
};
|
|
1836
|
+
/**
|
|
1837
|
+
* Sets the child Item in selectedState while rendering the child node
|
|
1838
|
+
*/
|
|
1839
|
+
TreeView.prototype.setSelectionForChildNodes = function (nodes) {
|
|
1840
|
+
var i;
|
|
1841
|
+
for (i = 0; i < nodes.length; i++) {
|
|
1842
|
+
var id = nodes[i][this.fields.id] ? nodes[i][this.fields.id].toString() : null;
|
|
1843
|
+
if (this.selectedNodes !== undefined && this.selectedNodes.indexOf(id) !== -1) {
|
|
1844
|
+
this.doSelectionAction();
|
|
1845
|
+
}
|
|
1846
|
+
}
|
|
1847
|
+
};
|
|
1165
1848
|
TreeView.prototype.ensureCheckNode = function (element) {
|
|
1166
1849
|
if (this.showCheckBox) {
|
|
1167
1850
|
this.ele = (this.checkedElement) ? this.checkedElement.indexOf(element.getAttribute('data-uid')) : null;
|
|
@@ -1193,6 +1876,7 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
1193
1876
|
return (typeof mapper.child === 'string' || isNOU(mapper.child)) ? mapper : mapper.child;
|
|
1194
1877
|
};
|
|
1195
1878
|
TreeView.prototype.getChildNodes = function (obj, parentId, isRoot) {
|
|
1879
|
+
var _this = this;
|
|
1196
1880
|
if (isRoot === void 0) { isRoot = false; }
|
|
1197
1881
|
var childNodes;
|
|
1198
1882
|
if (isNOU(obj)) {
|
|
@@ -1203,15 +1887,22 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
1203
1887
|
}
|
|
1204
1888
|
else {
|
|
1205
1889
|
if (typeof this.fields.child === 'string') {
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1890
|
+
var index = obj.findIndex(function (data) { return data[_this.fields.id] && data[_this.fields.id].toString() === parentId; });
|
|
1891
|
+
if (index !== -1) {
|
|
1892
|
+
return getValue(this.fields.child, obj[index]);
|
|
1893
|
+
}
|
|
1894
|
+
if (index === -1) {
|
|
1895
|
+
for (var i = 0, objlen = obj.length; i < objlen; i++) {
|
|
1896
|
+
var tempArray = getValue(this.fields.child, obj[i]);
|
|
1897
|
+
var childIndex = !isNOU(tempArray) ? tempArray.findIndex(function (data) { return data[_this.fields.id] && data[_this.fields.id].toString() === parentId; }) : -1;
|
|
1898
|
+
if (childIndex !== -1) {
|
|
1899
|
+
return getValue(this.fields.child, tempArray[childIndex]);
|
|
1900
|
+
}
|
|
1901
|
+
else if (!isNOU(tempArray)) {
|
|
1902
|
+
childNodes = this.getChildNodes(tempArray, parentId);
|
|
1903
|
+
if (childNodes !== undefined) {
|
|
1904
|
+
break;
|
|
1905
|
+
}
|
|
1215
1906
|
}
|
|
1216
1907
|
}
|
|
1217
1908
|
}
|
|
@@ -1269,6 +1960,7 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
1269
1960
|
return li.classList.contains(ACTIVE) ? true : false;
|
|
1270
1961
|
};
|
|
1271
1962
|
TreeView.prototype.selectNode = function (li, e, multiSelect) {
|
|
1963
|
+
var _this = this;
|
|
1272
1964
|
if (isNOU(li) || (!this.allowMultiSelection && this.isActive(li) && !isNOU(e))) {
|
|
1273
1965
|
this.setFocusElement(li);
|
|
1274
1966
|
return;
|
|
@@ -1276,11 +1968,17 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
1276
1968
|
var eventArgs;
|
|
1277
1969
|
if (this.isLoaded) {
|
|
1278
1970
|
eventArgs = this.getSelectEvent(li, 'select', e);
|
|
1279
|
-
this.trigger('nodeSelecting', eventArgs)
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1971
|
+
this.trigger('nodeSelecting', eventArgs, function (observedArgs) {
|
|
1972
|
+
if ((!observedArgs.cancel) && !observedArgs.node.classList.contains(PREVENTSELECT)) {
|
|
1973
|
+
_this.nodeSelectAction(li, e, observedArgs, multiSelect);
|
|
1974
|
+
}
|
|
1975
|
+
});
|
|
1976
|
+
}
|
|
1977
|
+
else {
|
|
1978
|
+
this.nodeSelectAction(li, e, eventArgs, multiSelect);
|
|
1283
1979
|
}
|
|
1980
|
+
};
|
|
1981
|
+
TreeView.prototype.nodeSelectAction = function (li, e, eventArgs, multiSelect) {
|
|
1284
1982
|
if (!this.allowMultiSelection || (!multiSelect && (!e || (e && !e.ctrlKey)))) {
|
|
1285
1983
|
this.removeSelectAll();
|
|
1286
1984
|
}
|
|
@@ -1306,21 +2004,29 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
1306
2004
|
this.startNode = li;
|
|
1307
2005
|
this.addSelect(li);
|
|
1308
2006
|
}
|
|
1309
|
-
this.setFocusElement(li);
|
|
1310
2007
|
if (this.isLoaded) {
|
|
1311
2008
|
eventArgs.nodeData = this.getNodeData(li);
|
|
1312
2009
|
this.trigger('nodeSelected', eventArgs);
|
|
2010
|
+
this.isRightClick = false;
|
|
1313
2011
|
}
|
|
2012
|
+
this.isRightClick = false;
|
|
1314
2013
|
};
|
|
1315
2014
|
TreeView.prototype.unselectNode = function (li, e) {
|
|
2015
|
+
var _this = this;
|
|
1316
2016
|
var eventArgs;
|
|
1317
2017
|
if (this.isLoaded) {
|
|
1318
2018
|
eventArgs = this.getSelectEvent(li, 'un-select', e);
|
|
1319
|
-
this.trigger('nodeSelecting', eventArgs)
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
2019
|
+
this.trigger('nodeSelecting', eventArgs, function (observedArgs) {
|
|
2020
|
+
if (!observedArgs.cancel) {
|
|
2021
|
+
_this.nodeUnselectAction(li, observedArgs);
|
|
2022
|
+
}
|
|
2023
|
+
});
|
|
2024
|
+
}
|
|
2025
|
+
else {
|
|
2026
|
+
this.nodeUnselectAction(li, eventArgs);
|
|
1323
2027
|
}
|
|
2028
|
+
};
|
|
2029
|
+
TreeView.prototype.nodeUnselectAction = function (li, eventArgs) {
|
|
1324
2030
|
this.removeSelect(li);
|
|
1325
2031
|
this.setFocusElement(li);
|
|
1326
2032
|
if (this.isLoaded) {
|
|
@@ -1333,8 +2039,11 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
1333
2039
|
var focusedNode = this.getFocusedNode();
|
|
1334
2040
|
if (focusedNode) {
|
|
1335
2041
|
removeClass([focusedNode], FOCUS);
|
|
2042
|
+
focusedNode.setAttribute("tabindex", "-1");
|
|
1336
2043
|
}
|
|
1337
2044
|
addClass([li], FOCUS);
|
|
2045
|
+
li.setAttribute('tabindex', '0');
|
|
2046
|
+
EventHandler.add(li, 'blur', this.focusOut, this);
|
|
1338
2047
|
this.updateIdAttr(focusedNode, li);
|
|
1339
2048
|
}
|
|
1340
2049
|
};
|
|
@@ -1401,49 +2110,68 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
1401
2110
|
if (classList.contains(EXPANDABLE)) {
|
|
1402
2111
|
this.expandAction(currLi, icon, e);
|
|
1403
2112
|
}
|
|
1404
|
-
else {
|
|
2113
|
+
else if (classList.contains(COLLAPSIBLE)) {
|
|
1405
2114
|
this.collapseNode(currLi, icon, e);
|
|
1406
2115
|
}
|
|
1407
2116
|
}
|
|
1408
2117
|
};
|
|
1409
2118
|
TreeView.prototype.expandAction = function (currLi, icon, e, expandChild, callback) {
|
|
2119
|
+
var _this = this;
|
|
1410
2120
|
if (icon.classList.contains(PROCESS)) {
|
|
1411
2121
|
return;
|
|
1412
2122
|
}
|
|
1413
2123
|
else {
|
|
1414
2124
|
addClass([icon], PROCESS);
|
|
1415
2125
|
}
|
|
1416
|
-
if (this.isLoaded) {
|
|
2126
|
+
if (this.isLoaded && !this.isRefreshed) {
|
|
1417
2127
|
this.expandArgs = this.getExpandEvent(currLi, e);
|
|
1418
|
-
this.
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
2128
|
+
this.isInteracted = this.expandArgs.isInteracted;
|
|
2129
|
+
this.trigger('nodeExpanding', this.expandArgs, function (observedArgs) {
|
|
2130
|
+
if (observedArgs.cancel) {
|
|
2131
|
+
removeClass([icon], PROCESS);
|
|
2132
|
+
}
|
|
2133
|
+
else {
|
|
2134
|
+
_this.nodeExpandAction(currLi, icon, expandChild, callback);
|
|
2135
|
+
}
|
|
2136
|
+
});
|
|
2137
|
+
}
|
|
2138
|
+
else {
|
|
2139
|
+
this.nodeExpandAction(currLi, icon, expandChild, callback);
|
|
1423
2140
|
}
|
|
2141
|
+
};
|
|
2142
|
+
TreeView.prototype.nodeExpandAction = function (currLi, icon, expandChild, callback) {
|
|
1424
2143
|
var ul = select('.' + PARENTITEM, currLi);
|
|
1425
2144
|
if (ul && ul.nodeName === 'UL') {
|
|
1426
2145
|
this.expandNode(currLi, icon);
|
|
1427
2146
|
}
|
|
1428
2147
|
else {
|
|
2148
|
+
this.isFirstRender = true;
|
|
1429
2149
|
this.renderChildNodes(currLi, expandChild, callback);
|
|
2150
|
+
var liEles = selectAll('.' + LISTITEM, currLi);
|
|
2151
|
+
for (var i = 0; i < liEles.length; i++) {
|
|
2152
|
+
var id = this.getId(liEles[i]);
|
|
2153
|
+
if (this.expandChildren.indexOf(id) !== -1 && this.expandChildren !== undefined) {
|
|
2154
|
+
var icon_1 = select('.' + EXPANDABLE, select('.' + TEXTWRAP, liEles[i]));
|
|
2155
|
+
if (!isNOU(icon_1)) {
|
|
2156
|
+
this.expandAction(liEles[i], icon_1, null);
|
|
2157
|
+
}
|
|
2158
|
+
this.expandChildren.splice(this.expandChildren.indexOf(id), 1);
|
|
2159
|
+
}
|
|
2160
|
+
}
|
|
1430
2161
|
}
|
|
1431
2162
|
};
|
|
1432
2163
|
TreeView.prototype.keyActionHandler = function (e) {
|
|
2164
|
+
var _this = this;
|
|
1433
2165
|
var target = e.target;
|
|
1434
2166
|
var focusedNode = this.getFocusedNode();
|
|
1435
2167
|
if (target && target.classList.contains(INPUT)) {
|
|
1436
2168
|
var inpEle = target;
|
|
1437
2169
|
if (e.action === 'enter') {
|
|
1438
2170
|
inpEle.blur();
|
|
1439
|
-
this.element.focus();
|
|
1440
|
-
addClass([focusedNode], HOVER);
|
|
1441
2171
|
}
|
|
1442
2172
|
else if (e.action === 'escape') {
|
|
1443
2173
|
inpEle.value = this.oldText;
|
|
1444
2174
|
inpEle.blur();
|
|
1445
|
-
this.element.focus();
|
|
1446
|
-
addClass([focusedNode], HOVER);
|
|
1447
2175
|
}
|
|
1448
2176
|
return;
|
|
1449
2177
|
}
|
|
@@ -1453,68 +2181,73 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
1453
2181
|
event: e,
|
|
1454
2182
|
node: focusedNode,
|
|
1455
2183
|
};
|
|
1456
|
-
this.trigger('keyPress', eventArgs)
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
|
|
1506
|
-
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
|
|
1513
|
-
|
|
1514
|
-
|
|
2184
|
+
this.trigger('keyPress', eventArgs, function (observedArgs) {
|
|
2185
|
+
if (!observedArgs.cancel) {
|
|
2186
|
+
switch (e.action) {
|
|
2187
|
+
case 'space':
|
|
2188
|
+
if (_this.showCheckBox) {
|
|
2189
|
+
_this.checkNode(e);
|
|
2190
|
+
}
|
|
2191
|
+
else {
|
|
2192
|
+
_this.toggleSelect(focusedNode, e);
|
|
2193
|
+
}
|
|
2194
|
+
break;
|
|
2195
|
+
case 'moveRight':
|
|
2196
|
+
_this.openNode(_this.enableRtl ? false : true, e);
|
|
2197
|
+
break;
|
|
2198
|
+
case 'moveLeft':
|
|
2199
|
+
_this.openNode(_this.enableRtl ? true : false, e);
|
|
2200
|
+
break;
|
|
2201
|
+
case 'shiftDown':
|
|
2202
|
+
_this.shiftKeySelect(true, e);
|
|
2203
|
+
break;
|
|
2204
|
+
case 'moveDown':
|
|
2205
|
+
case 'ctrlDown':
|
|
2206
|
+
case 'csDown':
|
|
2207
|
+
_this.navigateNode(true);
|
|
2208
|
+
break;
|
|
2209
|
+
case 'shiftUp':
|
|
2210
|
+
_this.shiftKeySelect(false, e);
|
|
2211
|
+
break;
|
|
2212
|
+
case 'moveUp':
|
|
2213
|
+
case 'ctrlUp':
|
|
2214
|
+
case 'csUp':
|
|
2215
|
+
_this.navigateNode(false);
|
|
2216
|
+
break;
|
|
2217
|
+
case 'home':
|
|
2218
|
+
case 'shiftHome':
|
|
2219
|
+
case 'ctrlHome':
|
|
2220
|
+
case 'csHome':
|
|
2221
|
+
_this.navigateRootNode(true);
|
|
2222
|
+
break;
|
|
2223
|
+
case 'end':
|
|
2224
|
+
case 'shiftEnd':
|
|
2225
|
+
case 'ctrlEnd':
|
|
2226
|
+
case 'csEnd':
|
|
2227
|
+
_this.navigateRootNode(false);
|
|
2228
|
+
break;
|
|
2229
|
+
case 'enter':
|
|
2230
|
+
case 'ctrlEnter':
|
|
2231
|
+
case 'shiftEnter':
|
|
2232
|
+
case 'csEnter':
|
|
2233
|
+
case 'shiftSpace':
|
|
2234
|
+
case 'ctrlSpace':
|
|
2235
|
+
_this.toggleSelect(focusedNode, e);
|
|
2236
|
+
break;
|
|
2237
|
+
case 'f2':
|
|
2238
|
+
if (_this.allowEditing && !focusedNode.classList.contains('e-disable')) {
|
|
2239
|
+
_this.createTextbox(focusedNode, e);
|
|
2240
|
+
}
|
|
2241
|
+
break;
|
|
2242
|
+
case 'ctrlA':
|
|
2243
|
+
if (_this.allowMultiSelection) {
|
|
2244
|
+
var sNodes = selectAll('.' + LISTITEM + ':not(.' + ACTIVE + ')', _this.element);
|
|
2245
|
+
_this.selectGivenNodes(sNodes);
|
|
2246
|
+
}
|
|
2247
|
+
break;
|
|
1515
2248
|
}
|
|
1516
|
-
|
|
1517
|
-
}
|
|
2249
|
+
}
|
|
2250
|
+
});
|
|
1518
2251
|
};
|
|
1519
2252
|
TreeView.prototype.navigateToFocus = function (isUp) {
|
|
1520
2253
|
var focusNode = this.getFocusedNode().querySelector('.' + TEXTWRAP);
|
|
@@ -1563,26 +2296,179 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
1563
2296
|
var checkWrap = select('.' + CHECKBOXWRAP, focusedNode);
|
|
1564
2297
|
var isChecked = select(' .' + CHECKBOXFRAME, checkWrap).classList.contains(CHECK);
|
|
1565
2298
|
if (!focusedNode.classList.contains('e-disable')) {
|
|
1566
|
-
|
|
2299
|
+
if (focusedNode.getElementsByClassName("e-checkbox-disabled").length == 0) {
|
|
2300
|
+
this.validateCheckNode(checkWrap, isChecked, focusedNode, e);
|
|
2301
|
+
}
|
|
1567
2302
|
}
|
|
1568
2303
|
};
|
|
1569
2304
|
TreeView.prototype.validateCheckNode = function (checkWrap, isCheck, li, e) {
|
|
1570
|
-
var
|
|
1571
|
-
|
|
1572
|
-
|
|
2305
|
+
var _this = this;
|
|
2306
|
+
var currLi = closest(checkWrap, '.' + LISTITEM);
|
|
2307
|
+
this.checkActionNodes = [];
|
|
2308
|
+
var ariaState = !isCheck ? 'true' : 'false';
|
|
2309
|
+
if (!isNOU(ariaState)) {
|
|
2310
|
+
checkWrap.setAttribute('aria-checked', ariaState);
|
|
1573
2311
|
}
|
|
2312
|
+
var eventArgs = this.getCheckEvent(currLi, isCheck ? 'uncheck' : 'check', e);
|
|
2313
|
+
this.trigger('nodeChecking', eventArgs, function (observedArgs) {
|
|
2314
|
+
if (!observedArgs.cancel) {
|
|
2315
|
+
_this.nodeCheckingAction(checkWrap, isCheck, li, observedArgs, e);
|
|
2316
|
+
}
|
|
2317
|
+
});
|
|
2318
|
+
};
|
|
2319
|
+
TreeView.prototype.nodeCheckingAction = function (checkWrap, isCheck, li, eventArgs, e) {
|
|
1574
2320
|
if (this.checkedElement.indexOf(li.getAttribute('data-uid')) === -1) {
|
|
1575
2321
|
this.checkedElement.push(li.getAttribute('data-uid'));
|
|
1576
|
-
|
|
1577
|
-
|
|
2322
|
+
if (this.autoCheck) {
|
|
2323
|
+
var child = this.getChildNodes(this.treeData, li.getAttribute('data-uid'));
|
|
2324
|
+
(child !== null) ? this.allCheckNode(child, this.checkedElement, null, null, false) : child = null;
|
|
2325
|
+
}
|
|
1578
2326
|
}
|
|
1579
2327
|
this.changeState(checkWrap, isCheck ? 'uncheck' : 'check', e, true);
|
|
1580
2328
|
if (this.autoCheck) {
|
|
1581
2329
|
this.ensureChildCheckState(li);
|
|
1582
2330
|
this.ensureParentCheckState(closest(closest(li, '.' + PARENTITEM), '.' + LISTITEM));
|
|
2331
|
+
var doCheck = void 0;
|
|
2332
|
+
if (eventArgs.action === 'check') {
|
|
2333
|
+
doCheck = true;
|
|
2334
|
+
}
|
|
2335
|
+
else if (eventArgs.action === 'uncheck') {
|
|
2336
|
+
doCheck = false;
|
|
2337
|
+
}
|
|
2338
|
+
this.ensureStateChange(li, doCheck);
|
|
1583
2339
|
}
|
|
1584
2340
|
this.nodeCheckedEvent(checkWrap, isCheck, e);
|
|
1585
2341
|
};
|
|
2342
|
+
/**
|
|
2343
|
+
* Update checkedNodes when UI interaction happens before the child node renders in DOM
|
|
2344
|
+
*/
|
|
2345
|
+
TreeView.prototype.ensureStateChange = function (li, doCheck) {
|
|
2346
|
+
var childElement = select('.' + PARENTITEM, li);
|
|
2347
|
+
var parentIndex = li.getAttribute('data-uid');
|
|
2348
|
+
var mapper = this.fields;
|
|
2349
|
+
if (this.dataType === 1 && this.autoCheck) {
|
|
2350
|
+
var resultData = new DataManager(this.treeData).executeLocal(new Query().where(mapper.parentID, 'equal', parentIndex, true));
|
|
2351
|
+
for (var i = 0; i < resultData.length; i++) {
|
|
2352
|
+
var resultId = resultData[i][this.fields.id] ? resultData[i][this.fields.id].toString() : null;
|
|
2353
|
+
var isCheck = resultData[i][this.fields.isChecked] ? resultData[i][this.fields.isChecked].toString() : null;
|
|
2354
|
+
if (this.checkedNodes.indexOf(parentIndex) !== -1 && this.checkedNodes.indexOf(resultId) === -1) {
|
|
2355
|
+
this.checkedNodes.push(resultId);
|
|
2356
|
+
var childItems = this.getChildNodes(this.treeData, resultId);
|
|
2357
|
+
this.getChildItems(childItems, doCheck);
|
|
2358
|
+
if (this.parentNodeCheck.indexOf(resultId) !== -1) {
|
|
2359
|
+
this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(resultId), 1);
|
|
2360
|
+
}
|
|
2361
|
+
}
|
|
2362
|
+
else if (this.checkedNodes.indexOf(parentIndex) === -1 && childElement === null &&
|
|
2363
|
+
this.checkedNodes.indexOf(resultId) !== -1) {
|
|
2364
|
+
this.checkedNodes.splice(this.checkedNodes.indexOf(resultId), 1);
|
|
2365
|
+
if (isCheck === 'true') {
|
|
2366
|
+
this.updateField(this.treeData, this.fields, resultId, 'isChecked', null);
|
|
2367
|
+
}
|
|
2368
|
+
if (this.checkedNodes.indexOf(parentIndex) === -1 && childElement === null ||
|
|
2369
|
+
this.parentNodeCheck.indexOf(resultId) !== -1) {
|
|
2370
|
+
var childNodes = this.getChildNodes(this.treeData, resultId);
|
|
2371
|
+
this.getChildItems(childNodes, doCheck);
|
|
2372
|
+
if (this.parentNodeCheck.indexOf(resultId) !== -1) {
|
|
2373
|
+
this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(resultId), 1);
|
|
2374
|
+
}
|
|
2375
|
+
}
|
|
2376
|
+
}
|
|
2377
|
+
else {
|
|
2378
|
+
var childItems = this.getChildNodes(this.treeData, resultId);
|
|
2379
|
+
this.getChildItems(childItems, doCheck);
|
|
2380
|
+
}
|
|
2381
|
+
}
|
|
2382
|
+
}
|
|
2383
|
+
else if (this.dataType === 1 && !this.autoCheck) {
|
|
2384
|
+
if (!doCheck) {
|
|
2385
|
+
var checkedData = new DataManager(this.treeData).executeLocal(new Query().where(mapper.isChecked, 'equal', true, false));
|
|
2386
|
+
for (var i = 0; i < checkedData.length; i++) {
|
|
2387
|
+
var id = checkedData[i][this.fields.id] ? checkedData[i][this.fields.id].toString() : null;
|
|
2388
|
+
if (this.checkedNodes.indexOf(id) !== -1) {
|
|
2389
|
+
this.checkedNodes.splice(this.checkedNodes.indexOf(id), 1);
|
|
2390
|
+
}
|
|
2391
|
+
this.updateField(this.treeData, this.fields, id, 'isChecked', null);
|
|
2392
|
+
}
|
|
2393
|
+
this.checkedNodes = [];
|
|
2394
|
+
}
|
|
2395
|
+
else {
|
|
2396
|
+
for (var i = 0; i < this.treeData.length; i++) {
|
|
2397
|
+
var checkedId = this.treeData[i][this.fields.id] ? this.treeData[i][this.fields.id].toString() : null;
|
|
2398
|
+
if (this.checkedNodes.indexOf(checkedId) === -1) {
|
|
2399
|
+
this.checkedNodes.push(checkedId);
|
|
2400
|
+
}
|
|
2401
|
+
}
|
|
2402
|
+
}
|
|
2403
|
+
}
|
|
2404
|
+
else {
|
|
2405
|
+
var childItems = this.getChildNodes(this.treeData, parentIndex);
|
|
2406
|
+
if (childItems) {
|
|
2407
|
+
this.childStateChange(childItems, parentIndex, childElement, doCheck);
|
|
2408
|
+
}
|
|
2409
|
+
}
|
|
2410
|
+
};
|
|
2411
|
+
TreeView.prototype.getChildItems = function (childItems, doCheck) {
|
|
2412
|
+
for (var i = 0; i < childItems.length; i++) {
|
|
2413
|
+
var childId = childItems[i][this.fields.id] ? childItems[i][this.fields.id].toString() : null;
|
|
2414
|
+
var childIsCheck = childItems[i][this.fields.isChecked] ? childItems[i][this.fields.isChecked].toString() :
|
|
2415
|
+
null;
|
|
2416
|
+
if (this.checkedNodes.indexOf(childId) !== -1 && !doCheck) {
|
|
2417
|
+
this.checkedNodes.splice(this.checkedNodes.indexOf(childId), 1);
|
|
2418
|
+
}
|
|
2419
|
+
if (this.checkedNodes.indexOf(childId) === -1 && doCheck) {
|
|
2420
|
+
this.checkedNodes.push(childId);
|
|
2421
|
+
}
|
|
2422
|
+
if (childIsCheck === 'true' && !doCheck) {
|
|
2423
|
+
this.updateField(this.treeData, this.fields, childId, 'isChecked', null);
|
|
2424
|
+
}
|
|
2425
|
+
var subChildItems = this.getChildNodes(this.treeData, childId);
|
|
2426
|
+
if (subChildItems.length > 0) {
|
|
2427
|
+
this.getChildItems(subChildItems, doCheck);
|
|
2428
|
+
}
|
|
2429
|
+
}
|
|
2430
|
+
};
|
|
2431
|
+
/**
|
|
2432
|
+
* Update checkedNodes when UI interaction happens before the child node renders in DOM for hierarchical DS
|
|
2433
|
+
*/
|
|
2434
|
+
TreeView.prototype.childStateChange = function (childItems, parent, childElement, doCheck) {
|
|
2435
|
+
for (var i = 0; i < childItems.length; i++) {
|
|
2436
|
+
var checkedChild = childItems[i][this.fields.id] ? childItems[i][this.fields.id].toString() : '';
|
|
2437
|
+
var isCheck = childItems[i][this.fields.isChecked] ? childItems[i][this.fields.isChecked].toString() : null;
|
|
2438
|
+
if (this.autoCheck) {
|
|
2439
|
+
if (this.checkedNodes.indexOf(parent) !== -1 && this.checkedNodes.indexOf(checkedChild) === -1) {
|
|
2440
|
+
this.checkedNodes.push(checkedChild);
|
|
2441
|
+
if (this.parentNodeCheck.indexOf(checkedChild) !== -1) {
|
|
2442
|
+
this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(checkedChild), 1);
|
|
2443
|
+
}
|
|
2444
|
+
}
|
|
2445
|
+
else if (this.checkedNodes.indexOf(parent) === -1 && this.checkedNodes.indexOf(checkedChild) !== -1 && !doCheck) {
|
|
2446
|
+
this.checkedNodes.splice(this.checkedNodes.indexOf(checkedChild), 1);
|
|
2447
|
+
if (isCheck === 'true') {
|
|
2448
|
+
this.updateField(this.treeData, this.fields, checkedChild, 'isChecked', null);
|
|
2449
|
+
}
|
|
2450
|
+
}
|
|
2451
|
+
}
|
|
2452
|
+
else if (!this.autoCheck) {
|
|
2453
|
+
if (!doCheck) {
|
|
2454
|
+
if (this.checkedNodes.indexOf(checkedChild) !== -1) {
|
|
2455
|
+
this.checkedNodes.splice(this.checkedNodes.indexOf(checkedChild), 1);
|
|
2456
|
+
}
|
|
2457
|
+
this.updateField(this.treeData, this.fields, checkedChild, 'isChecked', null);
|
|
2458
|
+
this.checkedNodes = [];
|
|
2459
|
+
}
|
|
2460
|
+
else {
|
|
2461
|
+
if (this.checkedNodes.indexOf(checkedChild) === -1) {
|
|
2462
|
+
this.checkedNodes.push(checkedChild);
|
|
2463
|
+
}
|
|
2464
|
+
}
|
|
2465
|
+
}
|
|
2466
|
+
var subChild = this.getChildNodes([childItems[i]], checkedChild);
|
|
2467
|
+
if (subChild) {
|
|
2468
|
+
this.childStateChange(subChild, parent, childElement, doCheck);
|
|
2469
|
+
}
|
|
2470
|
+
}
|
|
2471
|
+
};
|
|
1586
2472
|
//This method can be used to get all child nodes of a parent by passing the children of a parent along with 'validateCheck' set to false
|
|
1587
2473
|
TreeView.prototype.allCheckNode = function (child, newCheck, checked, childCheck, validateCheck) {
|
|
1588
2474
|
if (child) {
|
|
@@ -1602,11 +2488,17 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
1602
2488
|
if (newCheck.indexOf(childId.toString()) === -1 && isNOU(checked)) {
|
|
1603
2489
|
newCheck.push(childId.toString());
|
|
1604
2490
|
}
|
|
2491
|
+
var hierChildId = getValue(this.fields.child.toString(), child[length_1]);
|
|
1605
2492
|
//Gets if any next level children are available for child nodes
|
|
1606
|
-
if (getValue(this.fields.hasChildren, child[length_1]) === true ||
|
|
1607
|
-
getValue(this.fields.child.toString(), child[length_1])) {
|
|
2493
|
+
if (getValue(this.fields.hasChildren, child[length_1]) === true || hierChildId) {
|
|
1608
2494
|
var id = getValue(this.fields.id, child[length_1]);
|
|
1609
|
-
var childId_1 =
|
|
2495
|
+
var childId_1 = void 0;
|
|
2496
|
+
if (this.dataType === 1) {
|
|
2497
|
+
childId_1 = this.getChildNodes(this.treeData, id.toString());
|
|
2498
|
+
}
|
|
2499
|
+
else {
|
|
2500
|
+
childId_1 = hierChildId;
|
|
2501
|
+
}
|
|
1610
2502
|
if (childId_1) {
|
|
1611
2503
|
(isNOU(validateCheck)) ? this.allCheckNode(childId_1, newCheck, checked, childCheck) :
|
|
1612
2504
|
this.allCheckNode(childId_1, newCheck, checked, childCheck, validateCheck);
|
|
@@ -1663,7 +2555,7 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
1663
2555
|
};
|
|
1664
2556
|
TreeView.prototype.getFocusedNode = function () {
|
|
1665
2557
|
var selectedItem;
|
|
1666
|
-
var fNode = select('.' + LISTITEM + '
|
|
2558
|
+
var fNode = select('.' + LISTITEM + '[tabindex="0"]', this.element);
|
|
1667
2559
|
if (isNOU(fNode)) {
|
|
1668
2560
|
selectedItem = select('.' + LISTITEM, this.element);
|
|
1669
2561
|
}
|
|
@@ -1681,7 +2573,7 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
1681
2573
|
else if (nextNode.nextSibling == null && nextNode.classList.contains('e-node-collapsed')) {
|
|
1682
2574
|
this.focusNextNode(nextNode, false);
|
|
1683
2575
|
}
|
|
1684
|
-
else if (nextNode.nextSibling == null && lastChild.classList.contains(
|
|
2576
|
+
else if (nextNode.nextSibling == null && lastChild.classList.contains(TEXTWRAP)) {
|
|
1685
2577
|
this.focusNextNode(nextNode, false);
|
|
1686
2578
|
}
|
|
1687
2579
|
else {
|
|
@@ -1733,8 +2625,12 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
1733
2625
|
};
|
|
1734
2626
|
TreeView.prototype.setFocus = function (preNode, nextNode) {
|
|
1735
2627
|
removeClass([preNode], [HOVER, FOCUS]);
|
|
1736
|
-
|
|
2628
|
+
preNode.setAttribute("tabindex", "-1");
|
|
2629
|
+
if (!nextNode.classList.contains('e-disable') && !nextNode.classList.contains(PREVENTSELECT)) {
|
|
1737
2630
|
addClass([nextNode], [HOVER, FOCUS]);
|
|
2631
|
+
nextNode.setAttribute('tabindex', '0');
|
|
2632
|
+
nextNode.focus();
|
|
2633
|
+
EventHandler.add(nextNode, 'blur', this.focusOut, this);
|
|
1738
2634
|
this.updateIdAttr(preNode, nextNode);
|
|
1739
2635
|
}
|
|
1740
2636
|
};
|
|
@@ -1748,12 +2644,19 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
1748
2644
|
};
|
|
1749
2645
|
TreeView.prototype.focusIn = function () {
|
|
1750
2646
|
if (!this.mouseDownStatus) {
|
|
1751
|
-
|
|
2647
|
+
var focusedElement = this.getFocusedNode();
|
|
2648
|
+
focusedElement.setAttribute("tabindex", "0");
|
|
2649
|
+
addClass([focusedElement], [HOVER, FOCUS]);
|
|
2650
|
+
EventHandler.add(focusedElement, 'blur', this.focusOut, this);
|
|
1752
2651
|
}
|
|
1753
2652
|
this.mouseDownStatus = false;
|
|
1754
2653
|
};
|
|
1755
|
-
TreeView.prototype.focusOut = function () {
|
|
1756
|
-
|
|
2654
|
+
TreeView.prototype.focusOut = function (event) {
|
|
2655
|
+
var focusedElement = this.getFocusedNode();
|
|
2656
|
+
if (event.target == focusedElement) {
|
|
2657
|
+
removeClass([focusedElement], [HOVER, FOCUS]);
|
|
2658
|
+
EventHandler.remove(focusedElement, 'blur', this.focusOut);
|
|
2659
|
+
}
|
|
1757
2660
|
};
|
|
1758
2661
|
TreeView.prototype.onMouseOver = function (e) {
|
|
1759
2662
|
var target = e.target;
|
|
@@ -1770,7 +2673,7 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
1770
2673
|
}
|
|
1771
2674
|
};
|
|
1772
2675
|
TreeView.prototype.setHover = function (li) {
|
|
1773
|
-
if (!li.classList.contains(HOVER)) {
|
|
2676
|
+
if (!li.classList.contains(HOVER) && !li.classList.contains(PREVENTSELECT)) {
|
|
1774
2677
|
this.removeHover();
|
|
1775
2678
|
addClass([li], HOVER);
|
|
1776
2679
|
}
|
|
@@ -1794,14 +2697,20 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
1794
2697
|
var pNode = closest(currLi.parentNode, '.' + LISTITEM);
|
|
1795
2698
|
var pid = pNode ? pNode.getAttribute('data-uid') : null;
|
|
1796
2699
|
var selected = currLi.classList.contains(ACTIVE);
|
|
2700
|
+
var selectable = currLi.classList.contains(PREVENTSELECT) ? false : true;
|
|
1797
2701
|
var expanded = (currLi.getAttribute('aria-expanded') === 'true') ? true : false;
|
|
2702
|
+
var hasChildren = currLi.getAttribute('aria-expanded') !== null ? true : (select('.' + EXPANDABLE, currLi) || select('.' + COLLAPSIBLE, currLi)) != null ? true : false;
|
|
1798
2703
|
var checked = null;
|
|
1799
|
-
|
|
1800
|
-
|
|
2704
|
+
var checkboxElement = select('.' + CHECKBOXWRAP, currLi);
|
|
2705
|
+
if (this.showCheckBox && checkboxElement) {
|
|
2706
|
+
checked = checkboxElement.getAttribute('aria-checked');
|
|
1801
2707
|
}
|
|
1802
|
-
return {
|
|
2708
|
+
return {
|
|
2709
|
+
id: id, text: text, parentID: pid, selected: selected, selectable: selectable, expanded: expanded,
|
|
2710
|
+
isChecked: checked, hasChildren: hasChildren
|
|
2711
|
+
};
|
|
1803
2712
|
}
|
|
1804
|
-
return { id: '', text: '', parentID: '', selected:
|
|
2713
|
+
return { id: '', text: '', parentID: '', selected: false, expanded: false, isChecked: '', hasChildren: false };
|
|
1805
2714
|
};
|
|
1806
2715
|
TreeView.prototype.getText = function (currLi, fromDS) {
|
|
1807
2716
|
if (fromDS) {
|
|
@@ -1816,12 +2725,33 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
1816
2725
|
var nodeData = this.getNodeData(currLi);
|
|
1817
2726
|
return { cancel: false, isInteracted: isNOU(e) ? false : true, node: currLi, nodeData: nodeData, event: e };
|
|
1818
2727
|
};
|
|
2728
|
+
TreeView.prototype.renderNodeTemplate = function (data, textEle, dataId) {
|
|
2729
|
+
var tempArr = this.nodeTemplateFn(data, this, 'nodeTemplate' + dataId, this.element.id + 'nodeTemplate', this.isStringTemplate, undefined, textEle, this.root);
|
|
2730
|
+
if (tempArr) {
|
|
2731
|
+
tempArr = Array.prototype.slice.call(tempArr);
|
|
2732
|
+
append(tempArr, textEle);
|
|
2733
|
+
}
|
|
2734
|
+
};
|
|
2735
|
+
TreeView.prototype.destroyTemplate = function (liEle) {
|
|
2736
|
+
this.clearTemplate(['nodeTemplate' + liEle.getAttribute('data-uid')]);
|
|
2737
|
+
};
|
|
1819
2738
|
TreeView.prototype.reRenderNodes = function () {
|
|
1820
|
-
this.
|
|
2739
|
+
this.updateListProp(this.fields);
|
|
2740
|
+
if (Browser.isIE) {
|
|
2741
|
+
this.ulElement = this.element.querySelector('.e-list-parent.e-ul');
|
|
2742
|
+
this.ulElement.parentElement.removeChild(this.ulElement);
|
|
2743
|
+
}
|
|
2744
|
+
else {
|
|
2745
|
+
this.element.innerHTML = '';
|
|
2746
|
+
}
|
|
2747
|
+
if (!isNOU(this.nodeTemplateFn)) {
|
|
2748
|
+
this.clearTemplate();
|
|
2749
|
+
}
|
|
1821
2750
|
this.setTouchClass();
|
|
1822
2751
|
this.setProperties({ selectedNodes: [], checkedNodes: [], expandedNodes: [] }, true);
|
|
2752
|
+
this.checkedElement = [];
|
|
1823
2753
|
this.isLoaded = false;
|
|
1824
|
-
this.setDataBinding();
|
|
2754
|
+
this.setDataBinding(true);
|
|
1825
2755
|
};
|
|
1826
2756
|
TreeView.prototype.setCssClass = function (oldClass, newClass) {
|
|
1827
2757
|
if (!isNOU(oldClass) && oldClass !== '') {
|
|
@@ -1844,6 +2774,7 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
1844
2774
|
}
|
|
1845
2775
|
};
|
|
1846
2776
|
TreeView.prototype.createTextbox = function (liEle, e) {
|
|
2777
|
+
var _this = this;
|
|
1847
2778
|
var oldInpEle = select('.' + TREEINPUT, this.element);
|
|
1848
2779
|
if (oldInpEle) {
|
|
1849
2780
|
oldInpEle.blur();
|
|
@@ -1852,13 +2783,26 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
1852
2783
|
this.updateOldText(liEle);
|
|
1853
2784
|
var innerEle = this.createElement('input', { className: TREEINPUT, attrs: { value: this.oldText } });
|
|
1854
2785
|
var eventArgs = this.getEditEvent(liEle, null, innerEle.outerHTML);
|
|
1855
|
-
this.trigger('nodeEditing', eventArgs)
|
|
1856
|
-
|
|
1857
|
-
|
|
1858
|
-
|
|
1859
|
-
|
|
1860
|
-
|
|
1861
|
-
|
|
2786
|
+
this.trigger('nodeEditing', eventArgs, function (observedArgs) {
|
|
2787
|
+
if (!observedArgs.cancel) {
|
|
2788
|
+
var inpWidth = textEle.offsetWidth + 5;
|
|
2789
|
+
var style_1 = 'width:' + inpWidth + 'px';
|
|
2790
|
+
addClass([liEle], EDITING);
|
|
2791
|
+
if (!isNOU(_this.nodeTemplateFn)) {
|
|
2792
|
+
_this.destroyTemplate(liEle);
|
|
2793
|
+
}
|
|
2794
|
+
if (_this.isReact) {
|
|
2795
|
+
setTimeout(function () {
|
|
2796
|
+
_this.renderTextBox(eventArgs, textEle, style_1);
|
|
2797
|
+
}, 5);
|
|
2798
|
+
}
|
|
2799
|
+
else {
|
|
2800
|
+
_this.renderTextBox(eventArgs, textEle, style_1);
|
|
2801
|
+
}
|
|
2802
|
+
}
|
|
2803
|
+
});
|
|
2804
|
+
};
|
|
2805
|
+
TreeView.prototype.renderTextBox = function (eventArgs, textEle, style) {
|
|
1862
2806
|
textEle.innerHTML = eventArgs.innerHtml;
|
|
1863
2807
|
var inpEle = select('.' + TREEINPUT, textEle);
|
|
1864
2808
|
this.inputObj = Input.createInput({
|
|
@@ -1889,26 +2833,43 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
1889
2833
|
var txtEle = closest(target, '.' + LISTTEXT);
|
|
1890
2834
|
var liEle = closest(target, '.' + LISTITEM);
|
|
1891
2835
|
detach(this.inputObj.container);
|
|
1892
|
-
this.
|
|
2836
|
+
if (this.fields.dataSource instanceof DataManager && !this.isOffline) {
|
|
2837
|
+
this.crudOperation('update', null, liEle, newText, null, null, true);
|
|
2838
|
+
}
|
|
2839
|
+
else {
|
|
2840
|
+
this.appendNewText(liEle, txtEle, newText, true);
|
|
2841
|
+
}
|
|
1893
2842
|
};
|
|
1894
2843
|
TreeView.prototype.appendNewText = function (liEle, txtEle, newText, isInput) {
|
|
2844
|
+
var _this = this;
|
|
1895
2845
|
var eventArgs = this.getEditEvent(liEle, newText, null);
|
|
1896
|
-
this.trigger('nodeEdited', eventArgs)
|
|
1897
|
-
|
|
2846
|
+
this.trigger('nodeEdited', eventArgs, function (observedArgs) {
|
|
2847
|
+
newText = observedArgs.cancel ? observedArgs.oldText : observedArgs.newText;
|
|
2848
|
+
_this.updateText(liEle, txtEle, newText, isInput);
|
|
2849
|
+
if (observedArgs.oldText !== newText) {
|
|
2850
|
+
_this.triggerEvent('nodeEdited', [_this.getNode(liEle)]);
|
|
2851
|
+
}
|
|
2852
|
+
});
|
|
2853
|
+
};
|
|
2854
|
+
TreeView.prototype.updateText = function (liEle, txtEle, newText, isInput) {
|
|
1898
2855
|
var newData = setValue(this.editFields.text, newText, this.editData);
|
|
1899
2856
|
if (!isNOU(this.nodeTemplateFn)) {
|
|
1900
|
-
txtEle.
|
|
1901
|
-
|
|
2857
|
+
txtEle.innerText = '';
|
|
2858
|
+
var dataId = liEle.getAttribute('data-uid');
|
|
2859
|
+
this.renderNodeTemplate(newData, txtEle, dataId);
|
|
2860
|
+
this.renderReactTemplates();
|
|
1902
2861
|
}
|
|
1903
2862
|
else {
|
|
1904
|
-
txtEle.innerHTML = newText;
|
|
2863
|
+
this.enableHtmlSanitizer ? txtEle.innerText = newText : txtEle.innerHTML = newText;
|
|
1905
2864
|
}
|
|
1906
2865
|
if (isInput) {
|
|
1907
2866
|
removeClass([liEle], EDITING);
|
|
1908
|
-
|
|
2867
|
+
liEle.focus();
|
|
2868
|
+
EventHandler.add(liEle, 'blur', this.focusOut, this);
|
|
2869
|
+
addClass([liEle], HOVER);
|
|
1909
2870
|
}
|
|
1910
|
-
if (
|
|
1911
|
-
this.
|
|
2871
|
+
if (this.allowTextWrap) {
|
|
2872
|
+
this.calculateWrap(liEle);
|
|
1912
2873
|
}
|
|
1913
2874
|
};
|
|
1914
2875
|
TreeView.prototype.getElement = function (ele) {
|
|
@@ -1919,7 +2880,7 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
1919
2880
|
return this.element.querySelector('[data-uid="' + ele + '"]');
|
|
1920
2881
|
}
|
|
1921
2882
|
else if (typeof ele === 'object') {
|
|
1922
|
-
return ele;
|
|
2883
|
+
return getElement(ele);
|
|
1923
2884
|
}
|
|
1924
2885
|
else {
|
|
1925
2886
|
return null;
|
|
@@ -1933,7 +2894,7 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
1933
2894
|
return ele;
|
|
1934
2895
|
}
|
|
1935
2896
|
else if (typeof ele === 'object') {
|
|
1936
|
-
return ele.getAttribute('data-uid');
|
|
2897
|
+
return (getElement(ele)).getAttribute('data-uid');
|
|
1937
2898
|
}
|
|
1938
2899
|
else {
|
|
1939
2900
|
return null;
|
|
@@ -1989,7 +2950,7 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
1989
2950
|
return newList;
|
|
1990
2951
|
};
|
|
1991
2952
|
TreeView.prototype.setDragAndDrop = function (toBind) {
|
|
1992
|
-
if (toBind) {
|
|
2953
|
+
if (toBind && !this.disabled) {
|
|
1993
2954
|
this.initializeDrag();
|
|
1994
2955
|
}
|
|
1995
2956
|
else {
|
|
@@ -2001,8 +2962,8 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
2001
2962
|
var virtualEle;
|
|
2002
2963
|
var proxy = this;
|
|
2003
2964
|
this.dragObj = new Draggable(this.element, {
|
|
2004
|
-
enableTailMode: true,
|
|
2005
|
-
|
|
2965
|
+
enableTailMode: true, enableAutoScroll: true,
|
|
2966
|
+
dragArea: this.dragArea,
|
|
2006
2967
|
dragTarget: '.' + TEXTWRAP,
|
|
2007
2968
|
helper: function (e) {
|
|
2008
2969
|
_this.dragTarget = e.sender.target;
|
|
@@ -2044,18 +3005,19 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
2044
3005
|
}
|
|
2045
3006
|
var eventArgs = _this.getDragEvent(e.event, _this, null, e.target, null, virtualEle, level);
|
|
2046
3007
|
if (eventArgs.draggedNode.classList.contains(EDITING)) {
|
|
2047
|
-
|
|
3008
|
+
_this.dragObj.intDestroy(e.event);
|
|
3009
|
+
_this.dragCancelAction(virtualEle);
|
|
2048
3010
|
}
|
|
2049
3011
|
else {
|
|
2050
|
-
_this.trigger('nodeDragStart', eventArgs)
|
|
2051
|
-
|
|
2052
|
-
|
|
2053
|
-
|
|
2054
|
-
|
|
2055
|
-
|
|
2056
|
-
|
|
2057
|
-
|
|
2058
|
-
|
|
3012
|
+
_this.trigger('nodeDragStart', eventArgs, function (observedArgs) {
|
|
3013
|
+
if (observedArgs.cancel) {
|
|
3014
|
+
_this.dragObj.intDestroy(e.event);
|
|
3015
|
+
_this.dragCancelAction(virtualEle);
|
|
3016
|
+
}
|
|
3017
|
+
else {
|
|
3018
|
+
_this.dragStartAction = true;
|
|
3019
|
+
}
|
|
3020
|
+
});
|
|
2059
3021
|
}
|
|
2060
3022
|
},
|
|
2061
3023
|
drag: function (e) {
|
|
@@ -2068,9 +3030,11 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
2068
3030
|
var dropTarget = e.target;
|
|
2069
3031
|
var preventTargetExpand = false;
|
|
2070
3032
|
var dropRoot = (closest(dropTarget, '.' + DROPPABLE));
|
|
3033
|
+
var isHelperElement = true;
|
|
2071
3034
|
if (!dropTarget || !dropRoot) {
|
|
2072
3035
|
detach(e.helper);
|
|
2073
3036
|
document.body.style.cursor = '';
|
|
3037
|
+
isHelperElement = false;
|
|
2074
3038
|
}
|
|
2075
3039
|
var listItem = closest(dropTarget, '.e-list-item');
|
|
2076
3040
|
var level;
|
|
@@ -2079,21 +3043,23 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
2079
3043
|
}
|
|
2080
3044
|
var eventArgs = _this.getDragEvent(e.event, _this, dropTarget, dropTarget, null, e.helper, level);
|
|
2081
3045
|
eventArgs.preventTargetExpand = preventTargetExpand;
|
|
2082
|
-
_this.trigger('nodeDragStop', eventArgs)
|
|
2083
|
-
|
|
2084
|
-
|
|
2085
|
-
|
|
2086
|
-
|
|
2087
|
-
|
|
3046
|
+
_this.trigger('nodeDragStop', eventArgs, function (observedArgs) {
|
|
3047
|
+
_this.dragParent = observedArgs.draggedParentNode;
|
|
3048
|
+
_this.preventExpand = observedArgs.preventTargetExpand;
|
|
3049
|
+
if (observedArgs.cancel) {
|
|
3050
|
+
if (e.helper.parentNode) {
|
|
3051
|
+
detach(e.helper);
|
|
3052
|
+
}
|
|
3053
|
+
document.body.style.cursor = '';
|
|
3054
|
+
isHelperElement = false;
|
|
2088
3055
|
}
|
|
2089
|
-
|
|
2090
|
-
}
|
|
2091
|
-
_this.dragStartAction = false;
|
|
3056
|
+
_this.dragStartAction = false;
|
|
3057
|
+
});
|
|
2092
3058
|
}
|
|
2093
3059
|
});
|
|
2094
3060
|
this.dropObj = new Droppable(this.element, {
|
|
2095
3061
|
out: function (e) {
|
|
2096
|
-
if (!isNOU(e) && !e.target.classList.contains(SIBLING)) {
|
|
3062
|
+
if (!isNOU(e) && !e.target.classList.contains(SIBLING) && (_this.dropObj.dragData.default && _this.dropObj.dragData.default.helper.classList.contains(ROOT))) {
|
|
2097
3063
|
document.body.style.cursor = 'not-allowed';
|
|
2098
3064
|
}
|
|
2099
3065
|
},
|
|
@@ -2105,6 +3071,11 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
2105
3071
|
}
|
|
2106
3072
|
});
|
|
2107
3073
|
};
|
|
3074
|
+
TreeView.prototype.dragCancelAction = function (virtualEle) {
|
|
3075
|
+
detach(virtualEle);
|
|
3076
|
+
removeClass([this.element], DRAGGING);
|
|
3077
|
+
this.dragStartAction = false;
|
|
3078
|
+
};
|
|
2108
3079
|
TreeView.prototype.dragAction = function (e, virtualEle) {
|
|
2109
3080
|
var dropRoot = closest(e.target, '.' + DROPPABLE);
|
|
2110
3081
|
var dropWrap = closest(e.target, '.' + TEXTWRAP);
|
|
@@ -2118,22 +3089,37 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
2118
3089
|
}
|
|
2119
3090
|
if (dropRoot) {
|
|
2120
3091
|
var dropLi = closest(e.target, '.' + LISTITEM);
|
|
3092
|
+
var checkWrapper = closest(e.target, '.' + CHECKBOXWRAP);
|
|
3093
|
+
var collapse = closest(e.target, '.' + COLLAPSIBLE);
|
|
3094
|
+
var expand = closest(e.target, '.' + EXPANDABLE);
|
|
2121
3095
|
if (!dropRoot.classList.contains(ROOT) || (dropWrap &&
|
|
2122
3096
|
(!dropLi.isSameNode(this.dragLi) && !this.isDescendant(this.dragLi, dropLi)))) {
|
|
2123
|
-
if (
|
|
2124
|
-
|
|
2125
|
-
|
|
2126
|
-
|
|
2127
|
-
|
|
2128
|
-
|
|
2129
|
-
|
|
2130
|
-
|
|
2131
|
-
|
|
2132
|
-
|
|
2133
|
-
|
|
3097
|
+
if (this.hasTemplate && dropLi) {
|
|
3098
|
+
var templateTarget = select(this.fullRowSelect ? '.' + FULLROW : '.' + TEXTWRAP, dropLi);
|
|
3099
|
+
if ((e && (!expand && !collapse) && e.event.offsetY < 7 && !checkWrapper) || (((expand && e.event.offsetY < 5) || (collapse && e.event.offsetX < 3)))) {
|
|
3100
|
+
var index = this.fullRowSelect ? (1) : (0);
|
|
3101
|
+
this.appendIndicator(dropLi, icon, index);
|
|
3102
|
+
}
|
|
3103
|
+
else if ((e && (!expand && !collapse) && !checkWrapper && templateTarget && e.event.offsetY > templateTarget.offsetHeight - 10) || ((expand && e.event.offsetY > 19) || (collapse && e.event.offsetX > 19))) {
|
|
3104
|
+
var index = this.fullRowSelect ? (2) : (1);
|
|
3105
|
+
this.appendIndicator(dropLi, icon, index);
|
|
3106
|
+
}
|
|
3107
|
+
else {
|
|
3108
|
+
addClass([icon], DROPIN);
|
|
3109
|
+
}
|
|
2134
3110
|
}
|
|
2135
3111
|
else {
|
|
2136
|
-
|
|
3112
|
+
if ((dropLi && e && (!expand && !collapse) && (e.event.offsetY < 7) && !checkWrapper) || (((expand && e.event.offsetY < 5) || (collapse && e.event.offsetX < 3)))) {
|
|
3113
|
+
var index = this.fullRowSelect ? (1) : (0);
|
|
3114
|
+
this.appendIndicator(dropLi, icon, index);
|
|
3115
|
+
}
|
|
3116
|
+
else if ((dropLi && e && (!expand && !collapse) && (e.target.offsetHeight > 0 && e.event.offsetY > (e.target.offsetHeight - 10)) && !checkWrapper) || (((expand && e.event.offsetY > 19) || (collapse && e.event.offsetX > 19)))) {
|
|
3117
|
+
var index = this.fullRowSelect ? (2) : (1);
|
|
3118
|
+
this.appendIndicator(dropLi, icon, index);
|
|
3119
|
+
}
|
|
3120
|
+
else {
|
|
3121
|
+
addClass([icon], DROPIN);
|
|
3122
|
+
}
|
|
2137
3123
|
}
|
|
2138
3124
|
}
|
|
2139
3125
|
else if (e.target.nodeName === 'LI' && (!dropLi.isSameNode(this.dragLi) && !this.isDescendant(this.dragLi, dropLi))) {
|
|
@@ -2165,16 +3151,25 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
2165
3151
|
addClass([icon], eventArgs.dropIndicator);
|
|
2166
3152
|
}
|
|
2167
3153
|
};
|
|
3154
|
+
TreeView.prototype.appendIndicator = function (dropLi, icon, index) {
|
|
3155
|
+
addClass([icon], DROPNEXT);
|
|
3156
|
+
var virEle = this.createElement('div', { className: SIBLING });
|
|
3157
|
+
dropLi.insertBefore(virEle, dropLi.children[index]);
|
|
3158
|
+
};
|
|
3159
|
+
/* eslint-disable */
|
|
2168
3160
|
TreeView.prototype.dropAction = function (e) {
|
|
2169
3161
|
var offsetY = e.event.offsetY;
|
|
2170
3162
|
var dropTarget = e.target;
|
|
2171
3163
|
var dragObj;
|
|
2172
3164
|
var level;
|
|
2173
3165
|
var drop = false;
|
|
2174
|
-
var dragInstance
|
|
2175
|
-
|
|
2176
|
-
|
|
2177
|
-
|
|
3166
|
+
var dragInstance;
|
|
3167
|
+
var nodeData = [];
|
|
3168
|
+
var liArray = [];
|
|
3169
|
+
dragInstance = e.dragData.draggable;
|
|
3170
|
+
for (var i_1 = 0; i_1 < dragInstance.ej2_instances.length; i_1++) {
|
|
3171
|
+
if (dragInstance.ej2_instances[i_1] instanceof TreeView_1) {
|
|
3172
|
+
dragObj = dragInstance.ej2_instances[i_1];
|
|
2178
3173
|
break;
|
|
2179
3174
|
}
|
|
2180
3175
|
}
|
|
@@ -2182,6 +3177,7 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
2182
3177
|
var dragTarget = dragObj.dragTarget;
|
|
2183
3178
|
var dragLi = (closest(dragTarget, '.' + LISTITEM));
|
|
2184
3179
|
var dropLi = (closest(dropTarget, '.' + LISTITEM));
|
|
3180
|
+
liArray.push(dragLi);
|
|
2185
3181
|
if (dropLi == null && dropTarget.classList.contains(ROOT)) {
|
|
2186
3182
|
dropLi = dropTarget.firstElementChild;
|
|
2187
3183
|
}
|
|
@@ -2195,11 +3191,22 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
2195
3191
|
}
|
|
2196
3192
|
if (dragObj.allowMultiSelection && dragLi.classList.contains(ACTIVE)) {
|
|
2197
3193
|
var sNodes = selectAll('.' + ACTIVE, dragObj.element);
|
|
2198
|
-
|
|
2199
|
-
|
|
2200
|
-
|
|
3194
|
+
liArray = sNodes;
|
|
3195
|
+
if (e.target.offsetHeight <= 33 && offsetY > e.target.offsetHeight - 10 && offsetY > 6) {
|
|
3196
|
+
for (var i_2 = sNodes.length - 1; i_2 >= 0; i_2--) {
|
|
3197
|
+
if (dropLi.isSameNode(sNodes[i_2]) || this.isDescendant(sNodes[i_2], dropLi)) {
|
|
3198
|
+
continue;
|
|
3199
|
+
}
|
|
3200
|
+
this.appendNode(dropTarget, sNodes[i_2], dropLi, e, dragObj, offsetY);
|
|
3201
|
+
}
|
|
3202
|
+
}
|
|
3203
|
+
else {
|
|
3204
|
+
for (var i_3 = 0; i_3 < sNodes.length; i_3++) {
|
|
3205
|
+
if (dropLi.isSameNode(sNodes[i_3]) || this.isDescendant(sNodes[i_3], dropLi)) {
|
|
3206
|
+
continue;
|
|
3207
|
+
}
|
|
3208
|
+
this.appendNode(dropTarget, sNodes[i_3], dropLi, e, dragObj, offsetY);
|
|
2201
3209
|
}
|
|
2202
|
-
this.appendNode(dropTarget, sNodes[i], dropLi, e, dragObj, offsetY);
|
|
2203
3210
|
}
|
|
2204
3211
|
}
|
|
2205
3212
|
else {
|
|
@@ -2211,11 +3218,22 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
2211
3218
|
if (this.fields.dataSource instanceof DataManager === false) {
|
|
2212
3219
|
this.preventExpand = false;
|
|
2213
3220
|
}
|
|
3221
|
+
for (var i = 0; i < liArray.length; i++) {
|
|
3222
|
+
nodeData.push(this.getNode(liArray[i]));
|
|
3223
|
+
}
|
|
2214
3224
|
this.trigger('nodeDropped', this.getDragEvent(e.event, dragObj, dropTarget, e.target, e.dragData.draggedElement, null, level, drop));
|
|
2215
|
-
this.
|
|
3225
|
+
if (dragObj.element.id !== this.element.id) {
|
|
3226
|
+
dragObj.triggerEvent('nodeDropped', nodeData);
|
|
3227
|
+
this.isNodeDropped = true;
|
|
3228
|
+
this.fields.dataSource = this.treeData;
|
|
3229
|
+
}
|
|
3230
|
+
this.triggerEvent('nodeDropped', nodeData);
|
|
2216
3231
|
};
|
|
2217
3232
|
TreeView.prototype.appendNode = function (dropTarget, dragLi, dropLi, e, dragObj, offsetY) {
|
|
2218
|
-
|
|
3233
|
+
var checkWrapper = closest(dropTarget, '.' + CHECKBOXWRAP);
|
|
3234
|
+
var collapse = closest(e.target, '.' + COLLAPSIBLE);
|
|
3235
|
+
var expand = closest(e.target, '.' + EXPANDABLE);
|
|
3236
|
+
if (!dragLi.classList.contains('e-disable') && !checkWrapper && ((expand && e.event.offsetY < 5) || (collapse && e.event.offsetX < 3) || (expand && e.event.offsetY > 19) || (collapse && e.event.offsetX > 19) || (!expand && !collapse))) {
|
|
2219
3237
|
if (dropTarget.nodeName === 'LI') {
|
|
2220
3238
|
this.dropAsSiblingNode(dragLi, dropLi, e, dragObj);
|
|
2221
3239
|
}
|
|
@@ -2224,10 +3242,16 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
2224
3242
|
this.dropAsSiblingNode(dragLi, dropLi, e, dragObj);
|
|
2225
3243
|
}
|
|
2226
3244
|
}
|
|
3245
|
+
else if ((dropTarget.classList.contains('e-icon-collapsible')) || (dropTarget.classList.contains('e-icon-expandable'))) {
|
|
3246
|
+
this.dropAsSiblingNode(dragLi, dropLi, e, dragObj);
|
|
3247
|
+
}
|
|
2227
3248
|
else {
|
|
2228
3249
|
this.dropAsChildNode(dragLi, dropLi, dragObj, null, e, offsetY);
|
|
2229
3250
|
}
|
|
2230
3251
|
}
|
|
3252
|
+
else {
|
|
3253
|
+
this.dropAsChildNode(dragLi, dropLi, dragObj, null, e, offsetY, true);
|
|
3254
|
+
}
|
|
2231
3255
|
};
|
|
2232
3256
|
TreeView.prototype.dropAsSiblingNode = function (dragLi, dropLi, e, dragObj) {
|
|
2233
3257
|
var dropUl = closest(dropLi, '.' + PARENTITEM);
|
|
@@ -2240,7 +3264,21 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
2240
3264
|
else if (e.event.offsetY < 2) {
|
|
2241
3265
|
pre = true;
|
|
2242
3266
|
}
|
|
2243
|
-
|
|
3267
|
+
else if (e.target.classList.contains('e-icon-expandable') || (e.target.classList.contains('e-icon-collapsible'))) {
|
|
3268
|
+
if ((e.event.offsetY < 5) || (e.event.offsetX < 3)) {
|
|
3269
|
+
pre = true;
|
|
3270
|
+
}
|
|
3271
|
+
else if ((e.event.offsetY > 15) || (e.event.offsetX > 17)) {
|
|
3272
|
+
pre = false;
|
|
3273
|
+
}
|
|
3274
|
+
}
|
|
3275
|
+
if ((e.target.classList.contains('e-icon-expandable')) || (e.target.classList.contains('e-icon-collapsible'))) {
|
|
3276
|
+
var target = e.target.closest('li');
|
|
3277
|
+
dropUl.insertBefore(dragLi, pre ? target : target.nextElementSibling);
|
|
3278
|
+
}
|
|
3279
|
+
else {
|
|
3280
|
+
dropUl.insertBefore(dragLi, pre ? e.target : e.target.nextElementSibling);
|
|
3281
|
+
}
|
|
2244
3282
|
this.moveData(dragLi, dropLi, dropUl, pre, dragObj);
|
|
2245
3283
|
this.updateElement(dragParentUl, dragParentLi);
|
|
2246
3284
|
this.updateAriaLevel(dragLi);
|
|
@@ -2252,15 +3290,23 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
2252
3290
|
this.updateInstance();
|
|
2253
3291
|
}
|
|
2254
3292
|
};
|
|
2255
|
-
TreeView.prototype.dropAsChildNode = function (dragLi, dropLi, dragObj, index, e, pos) {
|
|
3293
|
+
TreeView.prototype.dropAsChildNode = function (dragLi, dropLi, dragObj, index, e, pos, isCheck) {
|
|
2256
3294
|
var dragParentUl = closest(dragLi, '.' + PARENTITEM);
|
|
2257
3295
|
var dragParentLi = closest(dragParentUl, '.' + LISTITEM);
|
|
2258
3296
|
var dropParentUl = closest(dropLi, '.' + PARENTITEM);
|
|
2259
|
-
|
|
3297
|
+
var templateTarget;
|
|
3298
|
+
if (e && e.target) {
|
|
3299
|
+
templateTarget = select(this.fullRowSelect ? '.' + FULLROW : '.' + TEXTWRAP, dropLi);
|
|
3300
|
+
}
|
|
3301
|
+
if (e && (pos < 7) && !isCheck) {
|
|
2260
3302
|
dropParentUl.insertBefore(dragLi, dropLi);
|
|
2261
3303
|
this.moveData(dragLi, dropLi, dropParentUl, true, dragObj);
|
|
2262
3304
|
}
|
|
2263
|
-
else if (e && (e.target.offsetHeight > 0 && pos > (e.target.offsetHeight - 10))) {
|
|
3305
|
+
else if (e && (e.target.offsetHeight > 0 && pos > (e.target.offsetHeight - 10)) && !isCheck && !this.hasTemplate) {
|
|
3306
|
+
dropParentUl.insertBefore(dragLi, dropLi.nextElementSibling);
|
|
3307
|
+
this.moveData(dragLi, dropLi, dropParentUl, false, dragObj);
|
|
3308
|
+
}
|
|
3309
|
+
else if (this.hasTemplate && templateTarget && pos > templateTarget.offsetHeight - 10 && !isCheck) {
|
|
2264
3310
|
dropParentUl.insertBefore(dragLi, dropLi.nextElementSibling);
|
|
2265
3311
|
this.moveData(dragLi, dropLi, dropParentUl, false, dragObj);
|
|
2266
3312
|
}
|
|
@@ -2375,7 +3421,7 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
2375
3421
|
detach(dragParentUl);
|
|
2376
3422
|
detach(dragIcon);
|
|
2377
3423
|
var parentId = this.getId(dragParentLi);
|
|
2378
|
-
this.updateField(this.treeData, this.fields, parentId, 'hasChildren',
|
|
3424
|
+
this.updateField(this.treeData, this.fields, parentId, 'hasChildren', false);
|
|
2379
3425
|
this.removeExpand(dragParentLi, true);
|
|
2380
3426
|
}
|
|
2381
3427
|
};
|
|
@@ -2433,6 +3479,7 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
2433
3479
|
var node = (drop === true) ? draggedNode : dropLi;
|
|
2434
3480
|
var index = node ? closest(node, '.e-list-parent') : null;
|
|
2435
3481
|
var i = 0;
|
|
3482
|
+
var position = null;
|
|
2436
3483
|
dragParent = (obj.dragLi && dragParent === null) ? closest(dragLiParent, '.' + ROOT) : dragParent;
|
|
2437
3484
|
dragParent = (drop === true) ? this.dragParent : dragParent;
|
|
2438
3485
|
if (cloneEle) {
|
|
@@ -2458,6 +3505,7 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
2458
3505
|
}
|
|
2459
3506
|
}
|
|
2460
3507
|
indexValue = (dropTar !== 0) ? --indexValue : indexValue;
|
|
3508
|
+
position = (iconClass == "e-drop-in") ? "Inside" : ((event.offsetY < 7) ? "Before" : "After");
|
|
2461
3509
|
}
|
|
2462
3510
|
if (dropTarget) {
|
|
2463
3511
|
if (newParent.length === 0) {
|
|
@@ -2477,12 +3525,12 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
2477
3525
|
targetParent = dropLi;
|
|
2478
3526
|
if (drop !== true) {
|
|
2479
3527
|
level = ++level;
|
|
2480
|
-
var
|
|
2481
|
-
indexValue = (
|
|
2482
|
-
if (!(this.fields.dataSource instanceof DataManager) &&
|
|
2483
|
-
var
|
|
3528
|
+
var parent_2 = targetParent ? select('.e-list-parent', targetParent) : null;
|
|
3529
|
+
indexValue = (parent_2) ? parent_2.children.length : 0;
|
|
3530
|
+
if (!(this.fields.dataSource instanceof DataManager) && parent_2 === null && targetParent) {
|
|
3531
|
+
var parent_3 = targetParent.hasAttribute('data-uid') ?
|
|
2484
3532
|
this.getChildNodes(this.fields.dataSource, targetParent.getAttribute('data-uid').toString()) : null;
|
|
2485
|
-
indexValue = (
|
|
3533
|
+
indexValue = (parent_3) ? parent_3.length : 0;
|
|
2486
3534
|
}
|
|
2487
3535
|
}
|
|
2488
3536
|
}
|
|
@@ -2500,6 +3548,7 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
2500
3548
|
dropTarget: targetParent,
|
|
2501
3549
|
dropIndicator: iconClass,
|
|
2502
3550
|
target: target,
|
|
3551
|
+
position: position,
|
|
2503
3552
|
};
|
|
2504
3553
|
};
|
|
2505
3554
|
TreeView.prototype.addFullRow = function (toAdd) {
|
|
@@ -2593,9 +3642,11 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
2593
3642
|
TreeView.prototype.removeNode = function (node) {
|
|
2594
3643
|
var dragParentUl = closest(node, '.' + PARENTITEM);
|
|
2595
3644
|
var dragParentLi = closest(dragParentUl, '.' + LISTITEM);
|
|
3645
|
+
if (!isNOU(this.nodeTemplateFn)) {
|
|
3646
|
+
this.destroyTemplate(node);
|
|
3647
|
+
}
|
|
2596
3648
|
detach(node);
|
|
2597
3649
|
this.updateElement(dragParentUl, dragParentLi);
|
|
2598
|
-
this.updateInstance();
|
|
2599
3650
|
this.removeData(node);
|
|
2600
3651
|
};
|
|
2601
3652
|
TreeView.prototype.updateInstance = function () {
|
|
@@ -2672,6 +3723,19 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
2672
3723
|
this.updateMapper(level);
|
|
2673
3724
|
}
|
|
2674
3725
|
var li = ListBase.createListItemFromJson(this.createElement, sNodes, this.listBaseOption, level);
|
|
3726
|
+
var id = this.getId(dropLi);
|
|
3727
|
+
var refNode;
|
|
3728
|
+
var dropIcon1;
|
|
3729
|
+
if (!isNullOrUndefined(dropLi)) {
|
|
3730
|
+
dropIcon1 = select('div.' + ICON, dropLi);
|
|
3731
|
+
}
|
|
3732
|
+
if (this.dataType === 1 && dropIcon1 && dropIcon1.classList.contains(EXPANDABLE) && !isNOU(this.element.offsetParent) && !this.element.offsetParent.parentElement.classList.contains('e-filemanager')) {
|
|
3733
|
+
this.preventExpand = true;
|
|
3734
|
+
}
|
|
3735
|
+
if (this.dataType !== 1) {
|
|
3736
|
+
this.addChildData(this.treeData, this.fields, id, nodes, index);
|
|
3737
|
+
this.isFirstRender = false;
|
|
3738
|
+
}
|
|
2675
3739
|
var dropUl;
|
|
2676
3740
|
if (!dropEle) {
|
|
2677
3741
|
dropUl = dropLi ? this.expandParent(dropLi) : select('.' + PARENTITEM, this.element);
|
|
@@ -2679,11 +3743,48 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
2679
3743
|
else {
|
|
2680
3744
|
dropUl = dropEle;
|
|
2681
3745
|
}
|
|
2682
|
-
|
|
2683
|
-
|
|
2684
|
-
|
|
3746
|
+
refNode = dropUl.childNodes[index];
|
|
3747
|
+
if (!this.isFirstRender || this.dataType === 1) {
|
|
3748
|
+
if (refNode || this.sortOrder === 'None') {
|
|
3749
|
+
for (var i = 0; i < li.length; i++) {
|
|
3750
|
+
dropUl.insertBefore(li[i], refNode);
|
|
3751
|
+
}
|
|
3752
|
+
if (this.dataType === 1 && !isNullOrUndefined(dropLi) && !isNOU(this.element.offsetParent) && !this.element.offsetParent.parentElement.classList.contains('e-filemanager')) {
|
|
3753
|
+
this.preventExpand = false;
|
|
3754
|
+
var dropIcon = select('div.' + ICON, dropLi);
|
|
3755
|
+
if (dropIcon && dropIcon.classList.contains(EXPANDABLE)) {
|
|
3756
|
+
this.expandAction(dropLi, dropIcon, null);
|
|
3757
|
+
}
|
|
3758
|
+
}
|
|
3759
|
+
}
|
|
3760
|
+
if (!refNode && ((this.sortOrder === 'Ascending') || (this.sortOrder === 'Descending'))) {
|
|
3761
|
+
if (dropUl.childNodes.length === 0) {
|
|
3762
|
+
for (var i = 0; i < li.length; i++) {
|
|
3763
|
+
dropUl.insertBefore(li[i], refNode);
|
|
3764
|
+
}
|
|
3765
|
+
if (this.dataType === 1 && !isNullOrUndefined(dropLi) && !isNOU(this.element.offsetParent) && !this.element.offsetParent.parentElement.classList.contains('e-filemanager')) {
|
|
3766
|
+
this.preventExpand = false;
|
|
3767
|
+
var dropIcon = select('div.' + ICON, dropLi);
|
|
3768
|
+
if (dropIcon && dropIcon.classList.contains(EXPANDABLE)) {
|
|
3769
|
+
this.expandAction(dropLi, dropIcon, null);
|
|
3770
|
+
}
|
|
3771
|
+
}
|
|
3772
|
+
}
|
|
3773
|
+
else {
|
|
3774
|
+
var cNodes = dropUl.childNodes;
|
|
3775
|
+
for (var i = 0; i < li.length; i++) {
|
|
3776
|
+
for (var j = 0; j < cNodes.length; j++) {
|
|
3777
|
+
var returnValue = (this.sortOrder === 'Ascending') ? cNodes[j].textContent.toUpperCase() > li[i].innerText.toUpperCase() : cNodes[j].textContent.toUpperCase() < li[i].innerText.toUpperCase();
|
|
3778
|
+
if (returnValue) {
|
|
3779
|
+
dropUl.insertBefore(li[i], cNodes[j]);
|
|
3780
|
+
break;
|
|
3781
|
+
}
|
|
3782
|
+
dropUl.insertBefore(li[i], cNodes[cNodes.length]);
|
|
3783
|
+
}
|
|
3784
|
+
}
|
|
3785
|
+
}
|
|
3786
|
+
}
|
|
2685
3787
|
}
|
|
2686
|
-
var id = this.getId(dropLi);
|
|
2687
3788
|
if (this.dataType === 1) {
|
|
2688
3789
|
this.updateField(this.treeData, this.fields, id, 'hasChildren', true);
|
|
2689
3790
|
var refId = this.getId(refNode);
|
|
@@ -2697,9 +3798,6 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
2697
3798
|
pos++;
|
|
2698
3799
|
}
|
|
2699
3800
|
}
|
|
2700
|
-
else {
|
|
2701
|
-
this.addChildData(this.treeData, this.fields, id, nodes, index);
|
|
2702
|
-
}
|
|
2703
3801
|
this.finalizeNode(dropUl);
|
|
2704
3802
|
};
|
|
2705
3803
|
TreeView.prototype.updateMapper = function (level) {
|
|
@@ -2748,10 +3846,13 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
2748
3846
|
for (var i = 0, objlen = obj.length; i < objlen; i++) {
|
|
2749
3847
|
var nodeId = getValue(mapper.id, obj[i]);
|
|
2750
3848
|
if (obj[i] && nodeId && nodeId.toString() === id) {
|
|
2751
|
-
if ((typeof mapper.child === 'string' && obj[i].hasOwnProperty(mapper.child)) ||
|
|
2752
|
-
(this.fields.dataSource instanceof DataManager && obj[i].hasOwnProperty('child'))) {
|
|
3849
|
+
if ((typeof mapper.child === 'string' && (obj[i].hasOwnProperty(mapper.child) && obj[i][mapper.child] !== null)) ||
|
|
3850
|
+
((this.fields.dataSource instanceof DataManager) && obj[i].hasOwnProperty('child'))) {
|
|
2753
3851
|
var key = (typeof mapper.child === 'string') ? mapper.child : 'child';
|
|
2754
3852
|
var childData = getValue(key, obj[i]);
|
|
3853
|
+
if (isNOU(childData)) {
|
|
3854
|
+
childData = [];
|
|
3855
|
+
}
|
|
2755
3856
|
index = isNOU(index) ? childData.length : index;
|
|
2756
3857
|
for (var k = 0, len = data.length; k < len; k++) {
|
|
2757
3858
|
childData.splice(index, 0, data[k]);
|
|
@@ -2771,7 +3872,7 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
2771
3872
|
break;
|
|
2772
3873
|
}
|
|
2773
3874
|
}
|
|
2774
|
-
else if (this.fields.dataSource instanceof DataManager && !isNOU(getValue('child', obj[i]))) {
|
|
3875
|
+
else if ((this.fields.dataSource instanceof DataManager) && !isNOU(getValue('child', obj[i]))) {
|
|
2775
3876
|
var childData = getValue('child', obj[i]);
|
|
2776
3877
|
updated = this.addChildData(childData, this.getChildMapper(mapper), id, data, index);
|
|
2777
3878
|
if (updated !== undefined) {
|
|
@@ -2782,32 +3883,82 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
2782
3883
|
return updated;
|
|
2783
3884
|
};
|
|
2784
3885
|
TreeView.prototype.doDisableAction = function (nodes) {
|
|
2785
|
-
|
|
2786
|
-
|
|
2787
|
-
|
|
2788
|
-
|
|
2789
|
-
|
|
2790
|
-
|
|
2791
|
-
|
|
2792
|
-
|
|
2793
|
-
|
|
3886
|
+
var validNodes = this.nodeType(nodes);
|
|
3887
|
+
var validID = this.checkValidId(validNodes);
|
|
3888
|
+
this.validArr = [];
|
|
3889
|
+
for (var i = 0, len = validID.length; i < len; i++) {
|
|
3890
|
+
var id = validID[i][this.fields.id].toString();
|
|
3891
|
+
if (id && this.disableNode.indexOf(id) === -1) {
|
|
3892
|
+
this.disableNode.push(id);
|
|
3893
|
+
}
|
|
3894
|
+
var liEle = this.getElement(id);
|
|
3895
|
+
if (liEle) {
|
|
3896
|
+
liEle.setAttribute('aria-disabled', 'true');
|
|
3897
|
+
addClass([liEle], DISABLE);
|
|
2794
3898
|
}
|
|
2795
|
-
liEle.setAttribute('aria-disabled', 'true');
|
|
2796
|
-
addClass([liEle], DISABLE);
|
|
2797
3899
|
}
|
|
2798
3900
|
};
|
|
2799
3901
|
TreeView.prototype.doEnableAction = function (nodes) {
|
|
3902
|
+
var strNodes = this.nodeType(nodes);
|
|
3903
|
+
for (var i = 0, len = strNodes.length; i < len; i++) {
|
|
3904
|
+
var liEle = this.getElement(strNodes[i]);
|
|
3905
|
+
var id = strNodes[i];
|
|
3906
|
+
if (id && this.disableNode.indexOf(id) !== -1) {
|
|
3907
|
+
this.disableNode.splice(this.disableNode.indexOf(id), 1);
|
|
3908
|
+
}
|
|
3909
|
+
if (liEle) {
|
|
3910
|
+
liEle.removeAttribute('aria-disabled');
|
|
3911
|
+
removeClass([liEle], DISABLE);
|
|
3912
|
+
}
|
|
3913
|
+
}
|
|
3914
|
+
};
|
|
3915
|
+
TreeView.prototype.nodeType = function (nodes) {
|
|
3916
|
+
var validID = [];
|
|
2800
3917
|
for (var i = 0, len = nodes.length; i < len; i++) {
|
|
2801
|
-
var
|
|
2802
|
-
if (
|
|
2803
|
-
|
|
2804
|
-
|
|
2805
|
-
|
|
3918
|
+
var id = void 0;
|
|
3919
|
+
if (typeof nodes[i] == "string") {
|
|
3920
|
+
id = (nodes[i]) ? nodes[i].toString() : null;
|
|
3921
|
+
}
|
|
3922
|
+
else if (typeof nodes[i] === "object") {
|
|
3923
|
+
id = nodes[i] ? nodes[i].getAttribute("data-uid").toString() : null;
|
|
3924
|
+
}
|
|
3925
|
+
if (validID.indexOf(id) == -1) {
|
|
3926
|
+
validID.push(id);
|
|
3927
|
+
}
|
|
3928
|
+
}
|
|
3929
|
+
return validID;
|
|
3930
|
+
};
|
|
3931
|
+
TreeView.prototype.checkValidId = function (node) {
|
|
3932
|
+
var _this = this;
|
|
3933
|
+
if (this.dataType === 1) {
|
|
3934
|
+
this.validArr = this.treeData.filter(function (data) {
|
|
3935
|
+
return node.indexOf(data[_this.fields.id] ? data[_this.fields.id].toString() : null) !== -1;
|
|
3936
|
+
});
|
|
3937
|
+
}
|
|
3938
|
+
else if (this.dataType === 2) {
|
|
3939
|
+
for (var k = 0; k < this.treeData.length; k++) {
|
|
3940
|
+
var id = this.treeData[k][this.fields.id] ? this.treeData[k][this.fields.id].toString() : null;
|
|
3941
|
+
if (node.indexOf(id) !== -1) {
|
|
3942
|
+
this.validArr.push(this.treeData[k]);
|
|
2806
3943
|
}
|
|
2807
|
-
|
|
3944
|
+
var childItems = getValue(this.fields.child.toString(), this.treeData[k]);
|
|
3945
|
+
if (childItems) {
|
|
3946
|
+
this.filterNestedChild(childItems, node);
|
|
3947
|
+
}
|
|
3948
|
+
}
|
|
3949
|
+
}
|
|
3950
|
+
return this.validArr;
|
|
3951
|
+
};
|
|
3952
|
+
TreeView.prototype.filterNestedChild = function (treeData, nodes) {
|
|
3953
|
+
for (var k = 0; k < treeData.length; k++) {
|
|
3954
|
+
var id = treeData[k][this.fields.id] ? treeData[k][this.fields.id].toString() : null;
|
|
3955
|
+
if (nodes.indexOf(id) !== -1) {
|
|
3956
|
+
this.validArr.push(treeData[k]);
|
|
3957
|
+
}
|
|
3958
|
+
var childItems = getValue(this.fields.child.toString(), treeData[k]);
|
|
3959
|
+
if (childItems) {
|
|
3960
|
+
this.filterNestedChild(childItems, nodes);
|
|
2808
3961
|
}
|
|
2809
|
-
liEle.removeAttribute('aria-disabled');
|
|
2810
|
-
removeClass([liEle], DISABLE);
|
|
2811
3962
|
}
|
|
2812
3963
|
};
|
|
2813
3964
|
TreeView.prototype.setTouchClass = function () {
|
|
@@ -2913,19 +4064,28 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
2913
4064
|
}
|
|
2914
4065
|
return removedData;
|
|
2915
4066
|
};
|
|
2916
|
-
TreeView.prototype.triggerEvent = function () {
|
|
2917
|
-
|
|
4067
|
+
TreeView.prototype.triggerEvent = function (action, node) {
|
|
4068
|
+
this.renderReactTemplates();
|
|
4069
|
+
if (action === 'addNodes') {
|
|
4070
|
+
var nodeData = [];
|
|
4071
|
+
for (var i = 0; i < node.length; i++) {
|
|
4072
|
+
nodeData.push(this.getNode(this.getElement(isNOU(node[i][this.fields.id]) ? getValue(this.fields.id, node[i]).toString() : null)));
|
|
4073
|
+
}
|
|
4074
|
+
node = nodeData;
|
|
4075
|
+
}
|
|
4076
|
+
var eventArgs = { data: this.treeData, action: action, nodeData: node };
|
|
2918
4077
|
this.trigger('dataSourceChanged', eventArgs);
|
|
2919
4078
|
};
|
|
2920
4079
|
TreeView.prototype.wireInputEvents = function (inpEle) {
|
|
2921
4080
|
EventHandler.add(inpEle, 'blur', this.inputFocusOut, this);
|
|
2922
4081
|
};
|
|
2923
4082
|
TreeView.prototype.wireEditingEvents = function (toBind) {
|
|
2924
|
-
|
|
4083
|
+
var _this = this;
|
|
4084
|
+
if (toBind && !this.disabled) {
|
|
2925
4085
|
var proxy_2 = this;
|
|
2926
4086
|
this.touchEditObj = new Touch(this.element, {
|
|
2927
4087
|
tap: function (e) {
|
|
2928
|
-
if (e.tapCount === 2) {
|
|
4088
|
+
if (_this.isDoubleTapped(e) && e.tapCount === 2) {
|
|
2929
4089
|
e.originalEvent.preventDefault();
|
|
2930
4090
|
proxy_2.editingHandler(e.originalEvent);
|
|
2931
4091
|
}
|
|
@@ -2943,7 +4103,6 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
2943
4103
|
var proxy_3 = this;
|
|
2944
4104
|
this.touchClickObj = new Touch(this.element, {
|
|
2945
4105
|
tap: function (e) {
|
|
2946
|
-
e.originalEvent.preventDefault();
|
|
2947
4106
|
proxy_3.clickHandler(e);
|
|
2948
4107
|
}
|
|
2949
4108
|
});
|
|
@@ -2960,7 +4119,8 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
2960
4119
|
var proxy_4 = this;
|
|
2961
4120
|
this.touchExpandObj = new Touch(this.element, {
|
|
2962
4121
|
tap: function (e) {
|
|
2963
|
-
if (_this.expandOnType === 'Click' || (_this.expandOnType === 'DblClick' && e.tapCount === 2))
|
|
4122
|
+
if ((_this.expandOnType === 'Click' || (_this.expandOnType === 'DblClick' && _this.isDoubleTapped(e) && e.tapCount === 2))
|
|
4123
|
+
&& e.originalEvent.which !== 3) {
|
|
2964
4124
|
proxy_4.expandHandler(e);
|
|
2965
4125
|
}
|
|
2966
4126
|
}
|
|
@@ -2991,8 +4151,6 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
2991
4151
|
if (this.expandOnType !== 'None') {
|
|
2992
4152
|
this.wireExpandOnEvent(true);
|
|
2993
4153
|
}
|
|
2994
|
-
EventHandler.add(this.element, 'focus', this.focusIn, this);
|
|
2995
|
-
EventHandler.add(this.element, 'blur', this.focusOut, this);
|
|
2996
4154
|
EventHandler.add(this.element, 'mouseover', this.onMouseOver, this);
|
|
2997
4155
|
EventHandler.add(this.element, 'mouseout', this.onMouseLeave, this);
|
|
2998
4156
|
this.keyboardModule = new KeyboardEvents(this.element, {
|
|
@@ -3005,11 +4163,11 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
3005
4163
|
EventHandler.remove(this.element, 'mousedown', this.mouseDownHandler);
|
|
3006
4164
|
this.wireClickEvent(false);
|
|
3007
4165
|
this.wireExpandOnEvent(false);
|
|
3008
|
-
EventHandler.remove(this.element, 'focus', this.focusIn);
|
|
3009
|
-
EventHandler.remove(this.element, 'blur', this.focusOut);
|
|
3010
4166
|
EventHandler.remove(this.element, 'mouseover', this.onMouseOver);
|
|
3011
4167
|
EventHandler.remove(this.element, 'mouseout', this.onMouseLeave);
|
|
3012
|
-
this.
|
|
4168
|
+
if (!this.disabled) {
|
|
4169
|
+
this.keyboardModule.destroy();
|
|
4170
|
+
}
|
|
3013
4171
|
};
|
|
3014
4172
|
TreeView.prototype.parents = function (element, selector) {
|
|
3015
4173
|
var matched = [];
|
|
@@ -3022,6 +4180,19 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
3022
4180
|
}
|
|
3023
4181
|
return matched;
|
|
3024
4182
|
};
|
|
4183
|
+
TreeView.prototype.isDoubleTapped = function (e) {
|
|
4184
|
+
var target = e.originalEvent.target;
|
|
4185
|
+
var secondTap;
|
|
4186
|
+
if (target && e.tapCount) {
|
|
4187
|
+
if (e.tapCount === 1) {
|
|
4188
|
+
this.firstTap = closest(target, '.' + LISTITEM);
|
|
4189
|
+
}
|
|
4190
|
+
else if (e.tapCount === 2) {
|
|
4191
|
+
secondTap = closest(target, '.' + LISTITEM);
|
|
4192
|
+
}
|
|
4193
|
+
}
|
|
4194
|
+
return (this.firstTap === secondTap);
|
|
4195
|
+
};
|
|
3025
4196
|
TreeView.prototype.isDescendant = function (parent, child) {
|
|
3026
4197
|
var node = child.parentNode;
|
|
3027
4198
|
while (!isNOU(node)) {
|
|
@@ -3048,10 +4219,303 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
3048
4219
|
TreeView.prototype.setCheckedNodes = function (nodes) {
|
|
3049
4220
|
nodes = JSON.parse(JSON.stringify(nodes));
|
|
3050
4221
|
this.uncheckAll(this.checkedNodes);
|
|
4222
|
+
this.setIndeterminate(nodes);
|
|
3051
4223
|
if (nodes.length > 0) {
|
|
3052
4224
|
this.checkAll(nodes);
|
|
3053
4225
|
}
|
|
3054
4226
|
};
|
|
4227
|
+
/**
|
|
4228
|
+
* Checks whether the checkedNodes entered are valid and sets the valid checkedNodes while changing via setmodel
|
|
4229
|
+
*/
|
|
4230
|
+
TreeView.prototype.setValidCheckedNode = function (node) {
|
|
4231
|
+
if (this.dataType === 1) {
|
|
4232
|
+
var mapper = this.fields;
|
|
4233
|
+
var resultData = new DataManager(this.treeData).executeLocal(new Query().where(mapper.id, 'equal', node, true));
|
|
4234
|
+
if (resultData[0]) {
|
|
4235
|
+
this.setChildCheckState(resultData, node, resultData[0]);
|
|
4236
|
+
if (this.autoCheck) {
|
|
4237
|
+
var parent_4 = resultData[0][this.fields.parentID] ? resultData[0][this.fields.parentID].toString() : null;
|
|
4238
|
+
var childNodes = this.getChildNodes(this.treeData, parent_4);
|
|
4239
|
+
var count = 0;
|
|
4240
|
+
for (var len = 0; len < childNodes.length; len++) {
|
|
4241
|
+
var childId = childNodes[len][this.fields.id].toString();
|
|
4242
|
+
if (this.checkedNodes.indexOf(childId) !== -1) {
|
|
4243
|
+
count++;
|
|
4244
|
+
}
|
|
4245
|
+
}
|
|
4246
|
+
if (count === childNodes.length && this.checkedNodes.indexOf(parent_4) === -1 && parent_4) {
|
|
4247
|
+
this.checkedNodes.push(parent_4);
|
|
4248
|
+
}
|
|
4249
|
+
}
|
|
4250
|
+
}
|
|
4251
|
+
}
|
|
4252
|
+
else if (this.dataType === 2) {
|
|
4253
|
+
for (var a = 0; a < this.treeData.length; a++) {
|
|
4254
|
+
var index = this.treeData[a][this.fields.id] ? this.treeData[a][this.fields.id].toString() : '';
|
|
4255
|
+
if (index === node && this.checkedNodes.indexOf(node) === -1) {
|
|
4256
|
+
this.checkedNodes.push(node);
|
|
4257
|
+
break;
|
|
4258
|
+
}
|
|
4259
|
+
var childItems = getValue(this.fields.child.toString(), this.treeData[a]);
|
|
4260
|
+
if (childItems) {
|
|
4261
|
+
this.setChildCheckState(childItems, node, this.treeData[a]);
|
|
4262
|
+
}
|
|
4263
|
+
}
|
|
4264
|
+
}
|
|
4265
|
+
};
|
|
4266
|
+
/**
|
|
4267
|
+
* Checks whether the checkedNodes entered are valid and sets the valid checkedNodes while changing via setmodel(for hierarchical DS)
|
|
4268
|
+
*/
|
|
4269
|
+
TreeView.prototype.setChildCheckState = function (childItems, node, treeData) {
|
|
4270
|
+
var checkedParent;
|
|
4271
|
+
var count = 0;
|
|
4272
|
+
if (this.dataType === 1) {
|
|
4273
|
+
if (treeData) {
|
|
4274
|
+
checkedParent = treeData[this.fields.id] ? treeData[this.fields.id].toString() : null;
|
|
4275
|
+
}
|
|
4276
|
+
for (var index = 0; index < childItems.length; index++) {
|
|
4277
|
+
var checkNode = childItems[index][this.fields.id] ? childItems[index][this.fields.id].toString() : null;
|
|
4278
|
+
if (treeData && checkedParent && this.autoCheck) {
|
|
4279
|
+
if (this.checkedNodes.indexOf(checkedParent) !== -1 && this.checkedNodes.indexOf(checkNode) === -1) {
|
|
4280
|
+
this.checkedNodes.push(checkNode);
|
|
4281
|
+
}
|
|
4282
|
+
}
|
|
4283
|
+
if (checkNode === node && this.checkedNodes.indexOf(node) === -1) {
|
|
4284
|
+
this.checkedNodes.push(node);
|
|
4285
|
+
}
|
|
4286
|
+
var subChildItems = this.getChildNodes(this.treeData, checkNode);
|
|
4287
|
+
if (subChildItems) {
|
|
4288
|
+
this.setChildCheckState(subChildItems, node, treeData);
|
|
4289
|
+
}
|
|
4290
|
+
}
|
|
4291
|
+
}
|
|
4292
|
+
else {
|
|
4293
|
+
if (treeData) {
|
|
4294
|
+
checkedParent = treeData[this.fields.id] ? treeData[this.fields.id].toString() : '';
|
|
4295
|
+
}
|
|
4296
|
+
for (var index = 0; index < childItems.length; index++) {
|
|
4297
|
+
var checkedChild = childItems[index][this.fields.id] ? childItems[index][this.fields.id].toString() : '';
|
|
4298
|
+
if (treeData && checkedParent && this.autoCheck) {
|
|
4299
|
+
if (this.checkedNodes.indexOf(checkedParent) !== -1 && this.checkedNodes.indexOf(checkedChild) === -1) {
|
|
4300
|
+
this.checkedNodes.push(checkedChild);
|
|
4301
|
+
}
|
|
4302
|
+
}
|
|
4303
|
+
if (checkedChild === node && this.checkedNodes.indexOf(node) === -1) {
|
|
4304
|
+
this.checkedNodes.push(node);
|
|
4305
|
+
}
|
|
4306
|
+
var subChildItems = getValue(this.fields.child.toString(), childItems[index]);
|
|
4307
|
+
if (subChildItems) {
|
|
4308
|
+
this.setChildCheckState(subChildItems, node, childItems[index]);
|
|
4309
|
+
}
|
|
4310
|
+
if (this.checkedNodes.indexOf(checkedChild) !== -1 && this.autoCheck) {
|
|
4311
|
+
count++;
|
|
4312
|
+
}
|
|
4313
|
+
if (count === childItems.length && this.checkedNodes.indexOf(checkedParent) === -1 && this.autoCheck) {
|
|
4314
|
+
this.checkedNodes.push(checkedParent);
|
|
4315
|
+
}
|
|
4316
|
+
}
|
|
4317
|
+
}
|
|
4318
|
+
};
|
|
4319
|
+
TreeView.prototype.setIndeterminate = function (nodes) {
|
|
4320
|
+
for (var i = 0; i < nodes.length; i++) {
|
|
4321
|
+
this.setValidCheckedNode(nodes[i]);
|
|
4322
|
+
}
|
|
4323
|
+
};
|
|
4324
|
+
TreeView.prototype.updatePosition = function (id, newData, isRefreshChild, childValue) {
|
|
4325
|
+
if (this.dataType === 1) {
|
|
4326
|
+
var pos = this.getDataPos(this.treeData, this.fields, id);
|
|
4327
|
+
this.treeData.splice(pos, 1, newData);
|
|
4328
|
+
if (isRefreshChild) {
|
|
4329
|
+
this.removeChildNodes(id);
|
|
4330
|
+
for (var j = 0; j < childValue.length; j++) {
|
|
4331
|
+
this.treeData.splice(pos, 0, childValue[j]);
|
|
4332
|
+
pos++;
|
|
4333
|
+
}
|
|
4334
|
+
}
|
|
4335
|
+
this.groupedData = this.getGroupedData(this.treeData, this.fields.parentID);
|
|
4336
|
+
}
|
|
4337
|
+
else {
|
|
4338
|
+
this.updateChildPosition(this.treeData, this.fields, id, [newData], undefined);
|
|
4339
|
+
}
|
|
4340
|
+
};
|
|
4341
|
+
TreeView.prototype.updateChildPosition = function (treeData, mapper, currID, newData, index) {
|
|
4342
|
+
var found;
|
|
4343
|
+
for (var i = 0, objlen = treeData.length; i < objlen; i++) {
|
|
4344
|
+
var nodeId = getValue(mapper.id, treeData[i]);
|
|
4345
|
+
if (treeData[i] && nodeId && nodeId.toString() === currID) {
|
|
4346
|
+
treeData[i] = newData[0];
|
|
4347
|
+
return true;
|
|
4348
|
+
}
|
|
4349
|
+
else if (typeof mapper.child === 'string' && !isNOU(getValue(mapper.child, treeData[i]))) {
|
|
4350
|
+
var childObj = getValue(mapper.child, treeData[i]);
|
|
4351
|
+
found = this.updateChildPosition(childObj, this.getChildMapper(mapper), currID, newData, index);
|
|
4352
|
+
if (found !== undefined) {
|
|
4353
|
+
break;
|
|
4354
|
+
}
|
|
4355
|
+
}
|
|
4356
|
+
else if (this.fields.dataSource instanceof DataManager && !isNOU(getValue('child', treeData[i]))) {
|
|
4357
|
+
var childData = getValue('child', treeData[i]);
|
|
4358
|
+
found = this.updateChildPosition(childData, this.getChildMapper(mapper), currID, newData, index);
|
|
4359
|
+
if (found !== undefined) {
|
|
4360
|
+
break;
|
|
4361
|
+
}
|
|
4362
|
+
}
|
|
4363
|
+
}
|
|
4364
|
+
return found;
|
|
4365
|
+
};
|
|
4366
|
+
TreeView.prototype.dynamicState = function () {
|
|
4367
|
+
this.setDragAndDrop(this.allowDragAndDrop);
|
|
4368
|
+
this.wireEditingEvents(this.allowEditing);
|
|
4369
|
+
if (!this.disabled) {
|
|
4370
|
+
this.wireEvents();
|
|
4371
|
+
this.setRipple();
|
|
4372
|
+
}
|
|
4373
|
+
else {
|
|
4374
|
+
this.unWireEvents();
|
|
4375
|
+
this.rippleFn();
|
|
4376
|
+
this.rippleIconFn();
|
|
4377
|
+
}
|
|
4378
|
+
};
|
|
4379
|
+
TreeView.prototype.crudOperation = function (operation, nodes, target, newText, newNode, index, prevent) {
|
|
4380
|
+
var _this = this;
|
|
4381
|
+
var data = this.fields.dataSource;
|
|
4382
|
+
var matchedArr = [];
|
|
4383
|
+
var query = this.getQuery(this.fields);
|
|
4384
|
+
var key = this.fields.id;
|
|
4385
|
+
var crud;
|
|
4386
|
+
var changes = {
|
|
4387
|
+
addedRecords: [],
|
|
4388
|
+
deletedRecords: [],
|
|
4389
|
+
changedRecords: []
|
|
4390
|
+
};
|
|
4391
|
+
var nodesID = [];
|
|
4392
|
+
if (nodes) {
|
|
4393
|
+
nodesID = this.nodeType(nodes);
|
|
4394
|
+
}
|
|
4395
|
+
else if (target) {
|
|
4396
|
+
if (typeof target == "string") {
|
|
4397
|
+
nodesID[0] = target.toString();
|
|
4398
|
+
}
|
|
4399
|
+
else if (typeof target === "object") {
|
|
4400
|
+
nodesID[0] = target.getAttribute("data-uid").toString();
|
|
4401
|
+
}
|
|
4402
|
+
}
|
|
4403
|
+
for (var i = 0, len = nodesID.length; i < len; i++) {
|
|
4404
|
+
var liEle = this.getElement(nodesID[i]);
|
|
4405
|
+
if (isNullOrUndefined(liEle)) {
|
|
4406
|
+
continue;
|
|
4407
|
+
}
|
|
4408
|
+
var removedData = this.getNodeObject(nodesID[i]);
|
|
4409
|
+
matchedArr.push(removedData);
|
|
4410
|
+
}
|
|
4411
|
+
switch (operation) {
|
|
4412
|
+
case 'delete':
|
|
4413
|
+
if (nodes.length == 1) {
|
|
4414
|
+
crud = data.remove(key, matchedArr[0], query.fromTable, query);
|
|
4415
|
+
}
|
|
4416
|
+
else {
|
|
4417
|
+
changes.deletedRecords = matchedArr;
|
|
4418
|
+
crud = data.saveChanges(changes, key, query.fromTable, query);
|
|
4419
|
+
}
|
|
4420
|
+
crud.then(function (e) { return _this.deleteSuccess(nodesID); })
|
|
4421
|
+
.catch(function (e) { return _this.dmFailure(e); });
|
|
4422
|
+
break;
|
|
4423
|
+
case 'update':
|
|
4424
|
+
matchedArr[0][this.fields.text] = newText;
|
|
4425
|
+
crud = data.update(key, matchedArr[0], query.fromTable, query);
|
|
4426
|
+
crud.then(function (e) { return _this.editSucess(target, newText, prevent); })
|
|
4427
|
+
.catch(function (e) { return _this.dmFailure(e, target, prevent); });
|
|
4428
|
+
break;
|
|
4429
|
+
case 'insert':
|
|
4430
|
+
if (newNode.length == 1) {
|
|
4431
|
+
crud = data.insert(newNode[0], query.fromTable, query);
|
|
4432
|
+
}
|
|
4433
|
+
else {
|
|
4434
|
+
var arr = [];
|
|
4435
|
+
for (var i = 0, len = newNode.length; i < len; i++) {
|
|
4436
|
+
arr.push(newNode[i]);
|
|
4437
|
+
}
|
|
4438
|
+
changes.addedRecords = arr;
|
|
4439
|
+
crud = data.saveChanges(changes, key, query.fromTable, query);
|
|
4440
|
+
}
|
|
4441
|
+
crud.then(function (e) {
|
|
4442
|
+
var dropLi = _this.getElement(target);
|
|
4443
|
+
_this.addSuccess(newNode, dropLi, index);
|
|
4444
|
+
_this.preventExpand = false;
|
|
4445
|
+
}).catch(function (e) { return _this.dmFailure(e); });
|
|
4446
|
+
break;
|
|
4447
|
+
}
|
|
4448
|
+
};
|
|
4449
|
+
TreeView.prototype.deleteSuccess = function (nodes) {
|
|
4450
|
+
var nodeData = [];
|
|
4451
|
+
for (var i = 0, len = nodes.length; i < len; i++) {
|
|
4452
|
+
var liEle = this.getElement(nodes[i]);
|
|
4453
|
+
nodeData.push(this.getNode(liEle));
|
|
4454
|
+
if (isNOU(liEle)) {
|
|
4455
|
+
continue;
|
|
4456
|
+
}
|
|
4457
|
+
this.removeNode(liEle);
|
|
4458
|
+
}
|
|
4459
|
+
this.updateInstance();
|
|
4460
|
+
if (this.dataType === 1) {
|
|
4461
|
+
this.groupedData = this.getGroupedData(this.treeData, this.fields.parentID);
|
|
4462
|
+
}
|
|
4463
|
+
this.triggerEvent('removeNode', nodeData);
|
|
4464
|
+
};
|
|
4465
|
+
TreeView.prototype.editSucess = function (target, newText, prevent) {
|
|
4466
|
+
var liEle = this.getElement(target);
|
|
4467
|
+
var txtEle = select('.' + LISTTEXT, liEle);
|
|
4468
|
+
this.appendNewText(liEle, txtEle, newText, prevent);
|
|
4469
|
+
};
|
|
4470
|
+
TreeView.prototype.addSuccess = function (nodes, dropLi, index) {
|
|
4471
|
+
var dropUl;
|
|
4472
|
+
var icon = dropLi ? dropLi.querySelector('.' + ICON) : null;
|
|
4473
|
+
var proxy = this;
|
|
4474
|
+
if (dropLi && icon && icon.classList.contains(EXPANDABLE) &&
|
|
4475
|
+
dropLi.querySelector('.' + PARENTITEM) === null) {
|
|
4476
|
+
proxy.renderChildNodes(dropLi, null, function () {
|
|
4477
|
+
dropUl = dropLi.querySelector('.' + PARENTITEM);
|
|
4478
|
+
proxy.addGivenNodes(nodes, dropLi, index, true, dropUl);
|
|
4479
|
+
proxy.triggerEvent('addNodes', nodes);
|
|
4480
|
+
});
|
|
4481
|
+
}
|
|
4482
|
+
else {
|
|
4483
|
+
this.addGivenNodes(nodes, dropLi, index, true);
|
|
4484
|
+
this.triggerEvent('addNodes', nodes);
|
|
4485
|
+
}
|
|
4486
|
+
};
|
|
4487
|
+
TreeView.prototype.dmFailure = function (e, target, prevent) {
|
|
4488
|
+
if (target) {
|
|
4489
|
+
this.updatePreviousText(target, prevent);
|
|
4490
|
+
}
|
|
4491
|
+
this.trigger('actionFailure', { error: e });
|
|
4492
|
+
};
|
|
4493
|
+
TreeView.prototype.updatePreviousText = function (target, prevent) {
|
|
4494
|
+
var liEle = this.getElement(target);
|
|
4495
|
+
var txtEle = select('.' + LISTTEXT, liEle);
|
|
4496
|
+
this.updateText(liEle, txtEle, this.oldText, prevent);
|
|
4497
|
+
};
|
|
4498
|
+
TreeView.prototype.getHierarchicalParentId = function (node, data, parentsID) {
|
|
4499
|
+
var _this = this;
|
|
4500
|
+
var index = data.findIndex(function (data) { return data[_this.fields.id] && data[_this.fields.id].toString() === node; });
|
|
4501
|
+
if (index == -1) {
|
|
4502
|
+
for (var i = 0; i < data.length; i++) {
|
|
4503
|
+
var childItems = getValue(this.fields.child.toString(), data[i]);
|
|
4504
|
+
if (!isNOU(childItems)) {
|
|
4505
|
+
index = childItems.findIndex(function (data) { return data[_this.fields.id] && data[_this.fields.id].toString() === node; });
|
|
4506
|
+
if (index == -1) {
|
|
4507
|
+
this.getHierarchicalParentId(node, childItems, parentsID);
|
|
4508
|
+
}
|
|
4509
|
+
else {
|
|
4510
|
+
parentsID.push(data[i][this.fields.id].toString());
|
|
4511
|
+
this.getHierarchicalParentId(data[i][this.fields.id].toString(), this.treeData, parentsID);
|
|
4512
|
+
break;
|
|
4513
|
+
}
|
|
4514
|
+
}
|
|
4515
|
+
}
|
|
4516
|
+
}
|
|
4517
|
+
return parentsID;
|
|
4518
|
+
};
|
|
3055
4519
|
/**
|
|
3056
4520
|
* Called internally if any of the property value changed.
|
|
3057
4521
|
* @param {TreeView} newProp
|
|
@@ -3066,6 +4530,11 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
3066
4530
|
case 'allowDragAndDrop':
|
|
3067
4531
|
this.setDragAndDrop(this.allowDragAndDrop);
|
|
3068
4532
|
break;
|
|
4533
|
+
case 'dragArea':
|
|
4534
|
+
if (this.allowDragAndDrop) {
|
|
4535
|
+
this.dragObj.dragArea = this.dragArea;
|
|
4536
|
+
}
|
|
4537
|
+
break;
|
|
3069
4538
|
case 'allowEditing':
|
|
3070
4539
|
this.wireEditingEvents(this.allowEditing);
|
|
3071
4540
|
break;
|
|
@@ -3080,6 +4549,10 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
3080
4549
|
this.setMultiSelect(this.allowMultiSelection);
|
|
3081
4550
|
this.addMultiSelect(this.allowMultiSelection);
|
|
3082
4551
|
break;
|
|
4552
|
+
case 'allowTextWrap':
|
|
4553
|
+
this.setTextWrap();
|
|
4554
|
+
this.updateWrap();
|
|
4555
|
+
break;
|
|
3083
4556
|
case 'checkedNodes':
|
|
3084
4557
|
if (this.showCheckBox) {
|
|
3085
4558
|
this.checkedNodes = oldProp.checkedNodes;
|
|
@@ -3111,34 +4584,46 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
3111
4584
|
case 'expandOn':
|
|
3112
4585
|
this.wireExpandOnEvent(false);
|
|
3113
4586
|
this.setExpandOnType();
|
|
3114
|
-
if (this.expandOnType !== 'None') {
|
|
4587
|
+
if (this.expandOnType !== 'None' && !this.disabled) {
|
|
3115
4588
|
this.wireExpandOnEvent(true);
|
|
3116
4589
|
}
|
|
3117
4590
|
break;
|
|
4591
|
+
case 'disabled':
|
|
4592
|
+
this.setDisabledMode();
|
|
4593
|
+
this.dynamicState();
|
|
4594
|
+
break;
|
|
3118
4595
|
case 'fields':
|
|
3119
4596
|
this.isAnimate = false;
|
|
4597
|
+
this.isFieldChange = true;
|
|
3120
4598
|
this.initialRender = true;
|
|
3121
|
-
this.updateListProp(this.fields);
|
|
3122
4599
|
this.reRenderNodes();
|
|
3123
4600
|
this.initialRender = false;
|
|
3124
4601
|
this.isAnimate = true;
|
|
4602
|
+
this.isFieldChange = false;
|
|
3125
4603
|
break;
|
|
3126
4604
|
case 'fullRowSelect':
|
|
3127
4605
|
this.setFullRow(this.fullRowSelect);
|
|
3128
4606
|
this.addFullRow(this.fullRowSelect);
|
|
4607
|
+
if (this.allowTextWrap) {
|
|
4608
|
+
this.setTextWrap();
|
|
4609
|
+
this.updateWrap();
|
|
4610
|
+
}
|
|
3129
4611
|
break;
|
|
3130
4612
|
case 'loadOnDemand':
|
|
3131
4613
|
if (this.loadOnDemand === false && !this.onLoaded) {
|
|
3132
4614
|
var nodes = this.element.querySelectorAll('li');
|
|
3133
4615
|
var i = 0;
|
|
3134
4616
|
while (i < nodes.length) {
|
|
3135
|
-
|
|
4617
|
+
if (nodes[i].getAttribute('aria-expanded') !== 'true') {
|
|
4618
|
+
this.renderChildNodes(nodes[i], true, null, true);
|
|
4619
|
+
}
|
|
3136
4620
|
i++;
|
|
3137
4621
|
}
|
|
3138
4622
|
this.onLoaded = true;
|
|
3139
4623
|
}
|
|
3140
4624
|
break;
|
|
3141
4625
|
case 'nodeTemplate':
|
|
4626
|
+
this.hasTemplate = false;
|
|
3142
4627
|
this.nodeTemplateFn = this.templateComplier(this.nodeTemplate);
|
|
3143
4628
|
this.reRenderNodes();
|
|
3144
4629
|
break;
|
|
@@ -3153,6 +4638,11 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
3153
4638
|
case 'sortOrder':
|
|
3154
4639
|
this.reRenderNodes();
|
|
3155
4640
|
break;
|
|
4641
|
+
case 'fullRowNavigable':
|
|
4642
|
+
this.setProperties({ fullRowNavigable: newProp.fullRowNavigable }, true);
|
|
4643
|
+
this.listBaseOption.itemNavigable = newProp.fullRowNavigable;
|
|
4644
|
+
this.reRenderNodes();
|
|
4645
|
+
break;
|
|
3156
4646
|
}
|
|
3157
4647
|
}
|
|
3158
4648
|
};
|
|
@@ -3160,16 +4650,20 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
3160
4650
|
* Removes the component from the DOM and detaches all its related event handlers. It also removes the attributes and classes.
|
|
3161
4651
|
*/
|
|
3162
4652
|
TreeView.prototype.destroy = function () {
|
|
4653
|
+
this.clearTemplate();
|
|
3163
4654
|
this.element.removeAttribute('aria-activedescendant');
|
|
3164
|
-
this.element.removeAttribute('tabindex');
|
|
3165
4655
|
this.unWireEvents();
|
|
3166
4656
|
this.wireEditingEvents(false);
|
|
3167
|
-
this.
|
|
3168
|
-
|
|
4657
|
+
if (!this.disabled) {
|
|
4658
|
+
this.rippleFn();
|
|
4659
|
+
this.rippleIconFn();
|
|
4660
|
+
}
|
|
3169
4661
|
this.setCssClass(this.cssClass, null);
|
|
3170
4662
|
this.setDragAndDrop(false);
|
|
3171
4663
|
this.setFullRow(false);
|
|
3172
|
-
this.
|
|
4664
|
+
if (this.ulElement && this.ulElement.parentElement) {
|
|
4665
|
+
this.ulElement.parentElement.removeChild(this.ulElement);
|
|
4666
|
+
}
|
|
3173
4667
|
_super.prototype.destroy.call(this);
|
|
3174
4668
|
};
|
|
3175
4669
|
/**
|
|
@@ -3188,20 +4682,11 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
3188
4682
|
var dropLi = this.getElement(target);
|
|
3189
4683
|
this.preventExpand = preventTargetExpand;
|
|
3190
4684
|
if (this.fields.dataSource instanceof DataManager) {
|
|
3191
|
-
|
|
3192
|
-
|
|
3193
|
-
var proxy_5 = this;
|
|
3194
|
-
if (dropLi && icon && icon.classList.contains(EXPANDABLE) &&
|
|
3195
|
-
dropLi.querySelector('.' + PARENTITEM) === null) {
|
|
3196
|
-
proxy_5.renderChildNodes(dropLi, null, function () {
|
|
3197
|
-
dropUl_1 = dropLi.querySelector('.' + PARENTITEM);
|
|
3198
|
-
proxy_5.addGivenNodes(nodes, dropLi, index, true, dropUl_1);
|
|
3199
|
-
proxy_5.triggerEvent();
|
|
3200
|
-
});
|
|
4685
|
+
if (!this.isOffline) {
|
|
4686
|
+
this.crudOperation('insert', null, target, null, nodes, index, this.preventExpand);
|
|
3201
4687
|
}
|
|
3202
4688
|
else {
|
|
3203
|
-
this.
|
|
3204
|
-
this.triggerEvent();
|
|
4689
|
+
this.addSuccess(nodes, dropLi, index);
|
|
3205
4690
|
}
|
|
3206
4691
|
}
|
|
3207
4692
|
else if (this.dataType === 2) {
|
|
@@ -3221,22 +4706,27 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
3221
4706
|
}
|
|
3222
4707
|
this.groupedData = this.getGroupedData(this.treeData, this.fields.parentID);
|
|
3223
4708
|
}
|
|
3224
|
-
|
|
4709
|
+
this.updateCheckedStateFromDS();
|
|
4710
|
+
if (this.showCheckBox && dropLi) {
|
|
4711
|
+
this.ensureParentCheckState(dropLi);
|
|
4712
|
+
}
|
|
4713
|
+
if ((this.fields.dataSource instanceof DataManager === false)) {
|
|
3225
4714
|
this.preventExpand = false;
|
|
3226
|
-
this.triggerEvent();
|
|
4715
|
+
this.triggerEvent('addNodes', nodes);
|
|
3227
4716
|
}
|
|
3228
4717
|
};
|
|
3229
4718
|
/**
|
|
3230
|
-
*
|
|
3231
|
-
*
|
|
4719
|
+
* Editing can also be enabled by using the `beginEdit` property, instead of clicking on the
|
|
4720
|
+
* TreeView node. On passing the node ID or element through this property, the edit textBox
|
|
3232
4721
|
* will be created for the particular node thus allowing us to edit it.
|
|
3233
4722
|
* @param {string | Element} node - Specifies ID of TreeView node/TreeView node.
|
|
3234
4723
|
*/
|
|
3235
4724
|
TreeView.prototype.beginEdit = function (node) {
|
|
3236
4725
|
var ele = this.getElement(node);
|
|
3237
|
-
if (
|
|
3238
|
-
|
|
4726
|
+
if (isNOU(ele) || this.disabled) {
|
|
4727
|
+
return;
|
|
3239
4728
|
}
|
|
4729
|
+
this.createTextbox(ele, null);
|
|
3240
4730
|
};
|
|
3241
4731
|
/**
|
|
3242
4732
|
* Checks all the unchecked nodes. You can also check specific nodes by passing array of unchecked nodes
|
|
@@ -3294,13 +4784,26 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
3294
4784
|
* @param {string | Element} node - Specifies ID of TreeView node/TreeView nodes.
|
|
3295
4785
|
*/
|
|
3296
4786
|
TreeView.prototype.ensureVisible = function (node) {
|
|
4787
|
+
var parentsId = [];
|
|
4788
|
+
if (this.dataType == 1) {
|
|
4789
|
+
var nodeData = this.getTreeData(node);
|
|
4790
|
+
while (nodeData.length != 0 && !isNOU(nodeData[0][this.fields.parentID])) {
|
|
4791
|
+
parentsId.push(nodeData[0][this.fields.parentID].toString());
|
|
4792
|
+
nodeData = this.getTreeData(nodeData[0][this.fields.parentID].toString());
|
|
4793
|
+
}
|
|
4794
|
+
}
|
|
4795
|
+
else if (this.dataType == 2) {
|
|
4796
|
+
parentsId = this.getHierarchicalParentId(node, this.treeData, parentsId).reverse();
|
|
4797
|
+
}
|
|
4798
|
+
this.expandAll(parentsId);
|
|
3297
4799
|
var liEle = this.getElement(node);
|
|
3298
|
-
if (isNOU(liEle)) {
|
|
3299
|
-
|
|
4800
|
+
if (!isNOU(liEle)) {
|
|
4801
|
+
if (typeof node == 'object') {
|
|
4802
|
+
var parents = this.parents(liEle, '.' + LISTITEM);
|
|
4803
|
+
this.expandAll(parents);
|
|
4804
|
+
}
|
|
4805
|
+
setTimeout(function () { liEle.scrollIntoView({ behavior: "smooth" }); }, 450);
|
|
3300
4806
|
}
|
|
3301
|
-
var parents = this.parents(liEle, '.' + LISTITEM);
|
|
3302
|
-
this.expandAll(parents);
|
|
3303
|
-
setTimeout(function () { liEle.scrollIntoView(true); }, 450);
|
|
3304
4807
|
};
|
|
3305
4808
|
/**
|
|
3306
4809
|
* Expands all the collapsed TreeView nodes. You can expand the specific nodes by passing the array of collapsed nodes
|
|
@@ -3328,49 +4831,17 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
3328
4831
|
*/
|
|
3329
4832
|
TreeView.prototype.getAllCheckedNodes = function () {
|
|
3330
4833
|
var checkNodes = this.checkedNodes;
|
|
3331
|
-
|
|
3332
|
-
|
|
3333
|
-
|
|
3334
|
-
|
|
3335
|
-
|
|
3336
|
-
|
|
3337
|
-
|
|
3338
|
-
|
|
3339
|
-
if (isLoaded && isLoaded.querySelector('.e-list-item') === null) {
|
|
3340
|
-
//Checks if isChecked is enabled for parent
|
|
3341
|
-
if (this.treeData[i][this.fields.isChecked] === true
|
|
3342
|
-
&& this.checkedElement.indexOf(this.treeData[i][id].toString()) === -1) {
|
|
3343
|
-
newCheck.push(this.treeData[i][id].toString());
|
|
3344
|
-
checked = 2;
|
|
3345
|
-
}
|
|
3346
|
-
//Checks for child nodes with isChecked enabled
|
|
3347
|
-
if (checked !== 2) {
|
|
3348
|
-
checked = 1;
|
|
3349
|
-
}
|
|
3350
|
-
childNode = this.getChildNodes(this.treeData, this.treeData[i][id].toString());
|
|
3351
|
-
(childNode !== null) ? this.allCheckNode(childNode, newCheck, checked) : childNode = null;
|
|
3352
|
-
}
|
|
3353
|
-
}
|
|
3354
|
-
i = 0;
|
|
3355
|
-
//Gets checked nodes based on UI interaction
|
|
3356
|
-
while (i < checkNodes.length) {
|
|
3357
|
-
if (newCheck.indexOf(checkNodes[i]) !== -1) {
|
|
3358
|
-
i++;
|
|
3359
|
-
continue;
|
|
3360
|
-
}
|
|
3361
|
-
newCheck.push(checkNodes[i]);
|
|
3362
|
-
//Gets all child which is not loaded while parent is checked
|
|
3363
|
-
var parentNode = this.element.querySelector('[data-uid="' + checkNodes[i] + '"]');
|
|
3364
|
-
if (parentNode && parentNode.querySelector('.e-list-item') === null) {
|
|
3365
|
-
var child = this.getChildNodes(this.treeData, checkNodes[i].toString());
|
|
3366
|
-
(child && this.autoCheck) ? this.allCheckNode(child, newCheck) : child = null;
|
|
3367
|
-
}
|
|
3368
|
-
i++;
|
|
3369
|
-
}
|
|
3370
|
-
return newCheck;
|
|
4834
|
+
return checkNodes;
|
|
4835
|
+
};
|
|
4836
|
+
/**
|
|
4837
|
+
* Gets all the disabled nodes including child, whether it is loaded or not.
|
|
4838
|
+
*/
|
|
4839
|
+
TreeView.prototype.getDisabledNodes = function () {
|
|
4840
|
+
var disabledNodes = this.disableNode;
|
|
4841
|
+
return disabledNodes;
|
|
3371
4842
|
};
|
|
3372
4843
|
/**
|
|
3373
|
-
*
|
|
4844
|
+
* Gets the node's data such as id, text, parentID, selected, isChecked, and expanded by passing the node element or it's ID.
|
|
3374
4845
|
* @param {string | Element} node - Specifies ID of TreeView node/TreeView node.
|
|
3375
4846
|
*/
|
|
3376
4847
|
TreeView.prototype.getNode = function (node) {
|
|
@@ -3384,6 +4855,7 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
3384
4855
|
* of the corresponding node otherwise it will return the entire updated data source of TreeView.
|
|
3385
4856
|
* * The updated data source also contains custom attributes if you specified in data source.
|
|
3386
4857
|
* @param {string | Element} node - Specifies ID of TreeView node/TreeView node.
|
|
4858
|
+
* @isGenericType true
|
|
3387
4859
|
*/
|
|
3388
4860
|
TreeView.prototype.getTreeData = function (node) {
|
|
3389
4861
|
var id = this.getId(node);
|
|
@@ -3405,11 +4877,13 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
3405
4877
|
*/
|
|
3406
4878
|
TreeView.prototype.moveNodes = function (sourceNodes, target, index, preventTargetExpand) {
|
|
3407
4879
|
var dropLi = this.getElement(target);
|
|
4880
|
+
var nodeData = [];
|
|
3408
4881
|
if (isNOU(dropLi)) {
|
|
3409
4882
|
return;
|
|
3410
4883
|
}
|
|
3411
4884
|
for (var i = 0; i < sourceNodes.length; i++) {
|
|
3412
4885
|
var dragLi = this.getElement(sourceNodes[i]);
|
|
4886
|
+
nodeData.push(this.getNode(dragLi));
|
|
3413
4887
|
if (isNOU(dragLi) || dropLi.isSameNode(dragLi) || this.isDescendant(dragLi, dropLi)) {
|
|
3414
4888
|
continue;
|
|
3415
4889
|
}
|
|
@@ -3419,7 +4893,111 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
3419
4893
|
if (this.fields.dataSource instanceof DataManager === false) {
|
|
3420
4894
|
this.preventExpand = false;
|
|
3421
4895
|
}
|
|
3422
|
-
this.triggerEvent();
|
|
4896
|
+
this.triggerEvent('moveNodes', nodeData);
|
|
4897
|
+
};
|
|
4898
|
+
/**
|
|
4899
|
+
* Refreshes a particular node of the TreeView.
|
|
4900
|
+
* @param {string | Element} target - Specifies the ID of TreeView node or TreeView node as target element.
|
|
4901
|
+
* @param {{ [key: string]: Object }[]} newData - Specifies the new data of TreeView node.
|
|
4902
|
+
*/
|
|
4903
|
+
TreeView.prototype.refreshNode = function (target, newData) {
|
|
4904
|
+
if (isNOU(target) || isNOU(newData)) {
|
|
4905
|
+
return;
|
|
4906
|
+
}
|
|
4907
|
+
var id;
|
|
4908
|
+
var isRefreshChild = false;
|
|
4909
|
+
if (this.dataType == 1 && newData.length > 1) {
|
|
4910
|
+
isRefreshChild = true;
|
|
4911
|
+
}
|
|
4912
|
+
else if (this.dataType == 2 && newData.length === 1) {
|
|
4913
|
+
var updatedChildValue = getValue(this.fields.child.toString(), newData[0]);
|
|
4914
|
+
if (!isNOU(updatedChildValue)) {
|
|
4915
|
+
isRefreshChild = true;
|
|
4916
|
+
}
|
|
4917
|
+
}
|
|
4918
|
+
var liEle = this.getElement(target);
|
|
4919
|
+
id = liEle ? liEle.getAttribute('data-uid') : ((target) ? target.toString() : null);
|
|
4920
|
+
this.refreshData = this.getNodeObject(id);
|
|
4921
|
+
newData = JSON.parse(JSON.stringify(newData));
|
|
4922
|
+
/* eslint-disable */
|
|
4923
|
+
var newNodeData;
|
|
4924
|
+
var parentData;
|
|
4925
|
+
if (this.dataType == 1 && isRefreshChild) {
|
|
4926
|
+
for (var k = 0; k < newData.length; k++) {
|
|
4927
|
+
if (isNOU(newData[k][this.fields.parentID])) {
|
|
4928
|
+
parentData = newData[k];
|
|
4929
|
+
newData.splice(k, 1);
|
|
4930
|
+
break;
|
|
4931
|
+
}
|
|
4932
|
+
}
|
|
4933
|
+
newNodeData = extend({}, this.refreshData, parentData);
|
|
4934
|
+
}
|
|
4935
|
+
else {
|
|
4936
|
+
newNodeData = extend({}, this.refreshData, newData[0]);
|
|
4937
|
+
}
|
|
4938
|
+
if (isNOU(liEle)) {
|
|
4939
|
+
this.updatePosition(id, newNodeData, isRefreshChild, newData);
|
|
4940
|
+
return;
|
|
4941
|
+
}
|
|
4942
|
+
this.isRefreshed = true;
|
|
4943
|
+
var level = parseFloat(liEle.getAttribute('aria-level'));
|
|
4944
|
+
var newliEle = ListBase.createListItemFromJson(this.createElement, [newNodeData], this.listBaseOption, level);
|
|
4945
|
+
var ul = select('.' + PARENTITEM, liEle);
|
|
4946
|
+
var childItems = getValue(this.fields.child.toString(), newNodeData);
|
|
4947
|
+
if ((isRefreshChild && ul) || (isRefreshChild && !isNOU(childItems))) {
|
|
4948
|
+
var parentEle = liEle.parentElement;
|
|
4949
|
+
var index = Array.prototype.indexOf.call(parentEle.childNodes, liEle);
|
|
4950
|
+
remove(liEle);
|
|
4951
|
+
parentEle.insertBefore(newliEle[0], parentEle.childNodes[index]);
|
|
4952
|
+
this.updatePosition(id, newNodeData, isRefreshChild, newData);
|
|
4953
|
+
if (isRefreshChild && ul) {
|
|
4954
|
+
this.expandAll([id]);
|
|
4955
|
+
}
|
|
4956
|
+
}
|
|
4957
|
+
else {
|
|
4958
|
+
var txtEle = select('.' + TEXTWRAP, liEle);
|
|
4959
|
+
var newTextEle = select('.' + TEXTWRAP, newliEle[0]);
|
|
4960
|
+
var icon = select('div.' + ICON, txtEle);
|
|
4961
|
+
var newIcon = select('div.' + ICON, newTextEle);
|
|
4962
|
+
if (icon && newIcon) {
|
|
4963
|
+
if (newIcon.classList.contains(EXPANDABLE) && icon.classList.contains(COLLAPSIBLE)) {
|
|
4964
|
+
removeClass([newIcon], EXPANDABLE);
|
|
4965
|
+
addClass([newIcon], COLLAPSIBLE);
|
|
4966
|
+
}
|
|
4967
|
+
else if (newIcon.classList.contains(COLLAPSIBLE) && icon.classList.contains(EXPANDABLE)) {
|
|
4968
|
+
removeClass([newIcon], COLLAPSIBLE);
|
|
4969
|
+
addClass([newIcon], EXPANDABLE);
|
|
4970
|
+
}
|
|
4971
|
+
else if (icon.classList.contains('interaction')) {
|
|
4972
|
+
addClass([newIcon], 'interaction');
|
|
4973
|
+
}
|
|
4974
|
+
}
|
|
4975
|
+
remove(txtEle);
|
|
4976
|
+
var fullEle = select('.' + FULLROW, liEle);
|
|
4977
|
+
fullEle.parentNode.insertBefore(newTextEle, fullEle.nextSibling);
|
|
4978
|
+
this.updatePosition(id, newNodeData, isRefreshChild, newData);
|
|
4979
|
+
}
|
|
4980
|
+
liEle = this.getElement(target);
|
|
4981
|
+
if (newNodeData[this.fields.tooltip]) {
|
|
4982
|
+
liEle.setAttribute("title", newNodeData[this.fields.tooltip]);
|
|
4983
|
+
}
|
|
4984
|
+
if (newNodeData.hasOwnProperty(this.fields.htmlAttributes) && newNodeData[this.fields.htmlAttributes]) {
|
|
4985
|
+
var attr = {};
|
|
4986
|
+
merge(attr, newNodeData[this.fields.htmlAttributes]);
|
|
4987
|
+
if (attr.class) {
|
|
4988
|
+
addClass([liEle], attr.class.split(' '));
|
|
4989
|
+
delete attr.class;
|
|
4990
|
+
}
|
|
4991
|
+
else {
|
|
4992
|
+
attributes(liEle, attr);
|
|
4993
|
+
}
|
|
4994
|
+
}
|
|
4995
|
+
if (this.selectedNodes.indexOf(id) !== -1) {
|
|
4996
|
+
liEle.setAttribute('aria-selected', 'true');
|
|
4997
|
+
addClass([liEle], ACTIVE);
|
|
4998
|
+
}
|
|
4999
|
+
this.isRefreshed = false;
|
|
5000
|
+
this.triggerEvent('refreshNode', [this.getNode(liEle)]);
|
|
3423
5001
|
};
|
|
3424
5002
|
/**
|
|
3425
5003
|
* Removes the collection of TreeView nodes by passing the array of node details as argument to this method.
|
|
@@ -3427,17 +5005,12 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
3427
5005
|
*/
|
|
3428
5006
|
TreeView.prototype.removeNodes = function (nodes) {
|
|
3429
5007
|
if (!isNOU(nodes)) {
|
|
3430
|
-
|
|
3431
|
-
|
|
3432
|
-
if (isNOU(liEle)) {
|
|
3433
|
-
continue;
|
|
3434
|
-
}
|
|
3435
|
-
this.removeNode(liEle);
|
|
5008
|
+
if (this.fields.dataSource instanceof DataManager && !this.isOffline) {
|
|
5009
|
+
this.crudOperation('delete', nodes);
|
|
3436
5010
|
}
|
|
3437
|
-
|
|
3438
|
-
this.
|
|
5011
|
+
else {
|
|
5012
|
+
this.deleteSuccess(nodes);
|
|
3439
5013
|
}
|
|
3440
|
-
this.triggerEvent();
|
|
3441
5014
|
}
|
|
3442
5015
|
};
|
|
3443
5016
|
/**
|
|
@@ -3446,6 +5019,7 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
3446
5019
|
* @param {string} newText - Specifies the new text of TreeView node.
|
|
3447
5020
|
*/
|
|
3448
5021
|
TreeView.prototype.updateNode = function (target, newText) {
|
|
5022
|
+
var _this = this;
|
|
3449
5023
|
if (isNOU(target) || isNOU(newText) || !this.allowEditing) {
|
|
3450
5024
|
return;
|
|
3451
5025
|
}
|
|
@@ -3456,11 +5030,16 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
3456
5030
|
var txtEle = select('.' + LISTTEXT, liEle);
|
|
3457
5031
|
this.updateOldText(liEle);
|
|
3458
5032
|
var eventArgs = this.getEditEvent(liEle, null, null);
|
|
3459
|
-
this.trigger('nodeEditing', eventArgs)
|
|
3460
|
-
|
|
3461
|
-
|
|
3462
|
-
|
|
3463
|
-
|
|
5033
|
+
this.trigger('nodeEditing', eventArgs, function (observedArgs) {
|
|
5034
|
+
if (!observedArgs.cancel) {
|
|
5035
|
+
if (_this.fields.dataSource instanceof DataManager && !_this.isOffline) {
|
|
5036
|
+
_this.crudOperation('update', null, target, newText, null, null, false);
|
|
5037
|
+
}
|
|
5038
|
+
else {
|
|
5039
|
+
_this.appendNewText(liEle, txtEle, newText, false);
|
|
5040
|
+
}
|
|
5041
|
+
}
|
|
5042
|
+
});
|
|
3464
5043
|
};
|
|
3465
5044
|
/**
|
|
3466
5045
|
* Unchecks all the checked nodes. You can also uncheck the specific nodes by passing array of checked nodes
|
|
@@ -3482,6 +5061,9 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
3482
5061
|
__decorate([
|
|
3483
5062
|
Property(false)
|
|
3484
5063
|
], TreeView.prototype, "allowMultiSelection", void 0);
|
|
5064
|
+
__decorate([
|
|
5065
|
+
Property(false)
|
|
5066
|
+
], TreeView.prototype, "allowTextWrap", void 0);
|
|
3485
5067
|
__decorate([
|
|
3486
5068
|
Complex({}, NodeAnimationSettings)
|
|
3487
5069
|
], TreeView.prototype, "animation", void 0);
|
|
@@ -3493,10 +5075,16 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
3493
5075
|
], TreeView.prototype, "cssClass", void 0);
|
|
3494
5076
|
__decorate([
|
|
3495
5077
|
Property(false)
|
|
3496
|
-
], TreeView.prototype, "
|
|
5078
|
+
], TreeView.prototype, "disabled", void 0);
|
|
5079
|
+
__decorate([
|
|
5080
|
+
Property(null)
|
|
5081
|
+
], TreeView.prototype, "dragArea", void 0);
|
|
5082
|
+
__decorate([
|
|
5083
|
+
Property(false)
|
|
5084
|
+
], TreeView.prototype, "enableHtmlSanitizer", void 0);
|
|
3497
5085
|
__decorate([
|
|
3498
5086
|
Property(false)
|
|
3499
|
-
], TreeView.prototype, "
|
|
5087
|
+
], TreeView.prototype, "enablePersistence", void 0);
|
|
3500
5088
|
__decorate([
|
|
3501
5089
|
Property()
|
|
3502
5090
|
], TreeView.prototype, "expandedNodes", void 0);
|
|
@@ -3512,6 +5100,9 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
3512
5100
|
__decorate([
|
|
3513
5101
|
Property(true)
|
|
3514
5102
|
], TreeView.prototype, "loadOnDemand", void 0);
|
|
5103
|
+
__decorate([
|
|
5104
|
+
Property()
|
|
5105
|
+
], TreeView.prototype, "locale", void 0);
|
|
3515
5106
|
__decorate([
|
|
3516
5107
|
Property()
|
|
3517
5108
|
], TreeView.prototype, "nodeTemplate", void 0);
|
|
@@ -3527,6 +5118,12 @@ var TreeView = /** @class */ (function (_super) {
|
|
|
3527
5118
|
__decorate([
|
|
3528
5119
|
Property(true)
|
|
3529
5120
|
], TreeView.prototype, "autoCheck", void 0);
|
|
5121
|
+
__decorate([
|
|
5122
|
+
Property(false)
|
|
5123
|
+
], TreeView.prototype, "fullRowNavigable", void 0);
|
|
5124
|
+
__decorate([
|
|
5125
|
+
Event()
|
|
5126
|
+
], TreeView.prototype, "actionFailure", void 0);
|
|
3530
5127
|
__decorate([
|
|
3531
5128
|
Event()
|
|
3532
5129
|
], TreeView.prototype, "created", void 0);
|