@syncfusion/ej2-navigations 24.2.4 → 25.1.35
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/CHANGELOG.md +4 -34
- package/dist/ej2-navigations.min.js +2 -2
- package/dist/ej2-navigations.umd.min.js +2 -2
- package/dist/ej2-navigations.umd.min.js.map +1 -1
- package/dist/es6/ej2-navigations.es2015.js +154 -138
- package/dist/es6/ej2-navigations.es2015.js.map +1 -1
- package/dist/es6/ej2-navigations.es5.js +154 -138
- package/dist/es6/ej2-navigations.es5.js.map +1 -1
- package/dist/global/ej2-navigations.min.js +2 -2
- package/dist/global/ej2-navigations.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/package.json +12 -12
- package/src/accordion/accordion-model.d.ts +3 -2
- package/src/accordion/accordion.d.ts +3 -2
- package/src/accordion/accordion.js +7 -7
- package/src/breadcrumb/breadcrumb.js +2 -1
- package/src/common/menu-base-model.d.ts +3 -2
- package/src/common/menu-base.d.ts +3 -2
- package/src/common/menu-base.js +101 -101
- package/src/menu/menu-model.d.ts +3 -2
- package/src/menu/menu.d.ts +3 -2
- package/src/menu/menu.js +1 -1
- package/src/stepper/stepper.js +1 -2
- package/src/tab/tab-model.d.ts +7 -21
- package/src/tab/tab.d.ts +7 -21
- package/src/tab/tab.js +5 -5
- package/src/toolbar/toolbar.js +25 -7
- package/src/treeview/treeview-model.d.ts +4 -7
- package/src/treeview/treeview.d.ts +3 -3
- package/src/treeview/treeview.js +14 -16
- package/styles/accordion/_bds-definition.scss +180 -0
- package/styles/accordion/_material-definition.scss +1 -1
- package/styles/accordion/icons/_bds.scss +17 -0
- package/styles/accordion/material.css +1 -1
- package/styles/appbar/_bds-definition.scss +27 -0
- package/styles/bootstrap-dark.css +38 -8
- package/styles/bootstrap.css +34 -4
- package/styles/bootstrap4.css +38 -8
- package/styles/bootstrap5-dark.css +34 -4
- package/styles/bootstrap5.css +34 -4
- package/styles/breadcrumb/_bds-definition.scss +60 -0
- package/styles/breadcrumb/icons/_bds.scss +25 -0
- package/styles/carousel/_bds-definition.scss +27 -0
- package/styles/carousel/_layout.scss +5 -0
- package/styles/carousel/bootstrap-dark.css +6 -0
- package/styles/carousel/bootstrap.css +6 -0
- package/styles/carousel/bootstrap4.css +6 -0
- package/styles/carousel/bootstrap5-dark.css +6 -0
- package/styles/carousel/bootstrap5.css +6 -0
- package/styles/carousel/fabric-dark.css +6 -0
- package/styles/carousel/fabric.css +6 -0
- package/styles/carousel/fluent-dark.css +6 -0
- package/styles/carousel/fluent.css +6 -0
- package/styles/carousel/highcontrast-light.css +6 -0
- package/styles/carousel/highcontrast.css +6 -0
- package/styles/carousel/icons/_bds.scss +30 -0
- package/styles/carousel/material-dark.css +6 -0
- package/styles/carousel/material.css +6 -0
- package/styles/carousel/material3-dark.css +6 -0
- package/styles/carousel/material3.css +6 -0
- package/styles/carousel/tailwind-dark.css +6 -0
- package/styles/carousel/tailwind.css +6 -0
- package/styles/context-menu/_bds-definition.scss +65 -0
- package/styles/context-menu/icons/_bds.scss +33 -0
- package/styles/fabric-dark.css +34 -4
- package/styles/fabric.css +34 -4
- package/styles/fluent-dark.css +45 -15
- package/styles/fluent.css +45 -15
- package/styles/h-scroll/_bds-definition.scss +83 -0
- package/styles/h-scroll/icons/_bds.scss +49 -0
- package/styles/highcontrast-light.css +34 -4
- package/styles/highcontrast.css +34 -4
- package/styles/material-dark.css +34 -4
- package/styles/material.css +35 -5
- package/styles/material3-dark.css +34 -4
- package/styles/material3.css +34 -4
- package/styles/menu/_bds-definition.scss +66 -0
- package/styles/menu/icons/_bds.scss +134 -0
- package/styles/pager/_bds-definition.scss +152 -0
- package/styles/pager/icons/_bds.scss +50 -0
- package/styles/sidebar/_bds-definition.scss +45 -0
- package/styles/stepper/_bds-definition.scss +79 -0
- package/styles/stepper/_layout.scss +1 -0
- package/styles/stepper/bootstrap-dark.css +3 -0
- package/styles/stepper/bootstrap.css +3 -0
- package/styles/stepper/bootstrap4.css +3 -0
- package/styles/stepper/bootstrap5-dark.css +3 -0
- package/styles/stepper/bootstrap5.css +3 -0
- package/styles/stepper/fabric-dark.css +3 -0
- package/styles/stepper/fabric.css +3 -0
- package/styles/stepper/fluent-dark.css +3 -0
- package/styles/stepper/fluent.css +3 -0
- package/styles/stepper/highcontrast-light.css +3 -0
- package/styles/stepper/highcontrast.css +3 -0
- package/styles/stepper/icons/_bds.scss +5 -0
- package/styles/stepper/material-dark.css +3 -0
- package/styles/stepper/material.css +3 -0
- package/styles/stepper/material3-dark.css +3 -0
- package/styles/stepper/material3.css +3 -0
- package/styles/stepper/tailwind-dark.css +3 -0
- package/styles/stepper/tailwind.css +3 -0
- package/styles/tab/_bds-definition.scss +701 -0
- package/styles/tab/icons/_bds.scss +92 -0
- package/styles/tailwind-dark.css +36 -6
- package/styles/tailwind.css +34 -4
- package/styles/toolbar/_bds-definition.scss +215 -0
- package/styles/toolbar/_bootstrap-dark-definition.scss +3 -3
- package/styles/toolbar/_bootstrap4-definition.scss +3 -3
- package/styles/toolbar/_fluent-definition.scss +3 -3
- package/styles/toolbar/_layout.scss +39 -5
- package/styles/toolbar/bootstrap-dark.css +29 -8
- package/styles/toolbar/bootstrap.css +25 -4
- package/styles/toolbar/bootstrap4.css +29 -8
- package/styles/toolbar/bootstrap5-dark.css +25 -4
- package/styles/toolbar/bootstrap5.css +25 -4
- package/styles/toolbar/fabric-dark.css +25 -4
- package/styles/toolbar/fabric.css +25 -4
- package/styles/toolbar/fluent-dark.css +36 -15
- package/styles/toolbar/fluent.css +36 -15
- package/styles/toolbar/highcontrast-light.css +25 -4
- package/styles/toolbar/highcontrast.css +25 -4
- package/styles/toolbar/icons/_bds.scss +16 -0
- package/styles/toolbar/material-dark.css +25 -4
- package/styles/toolbar/material.css +25 -4
- package/styles/toolbar/material3-dark.css +25 -4
- package/styles/toolbar/material3.css +25 -4
- package/styles/toolbar/tailwind-dark.css +25 -4
- package/styles/toolbar/tailwind.css +25 -4
- package/styles/treeview/_bds-definition.scss +132 -0
- package/styles/treeview/_tailwind-definition.scss +1 -1
- package/styles/treeview/_theme.scss +1 -1
- package/styles/treeview/icons/_bds.scss +43 -0
- package/styles/treeview/tailwind-dark.css +2 -2
- package/styles/v-scroll/_bds-definition.scss +49 -0
- package/styles/v-scroll/icons/_bds.scss +27 -0
- package/.github/PULL_REQUEST_TEMPLATE/Bug.md +0 -63
- package/.github/PULL_REQUEST_TEMPLATE/feature.md +0 -39
|
@@ -1288,9 +1288,9 @@ let MenuBase = class MenuBase extends Component {
|
|
|
1288
1288
|
}
|
|
1289
1289
|
this.targetElement = target;
|
|
1290
1290
|
if (!this.isMenu) {
|
|
1291
|
-
EventHandler.add(this.targetElement, '
|
|
1291
|
+
EventHandler.add(this.targetElement, 'scroll', this.scrollHandler, this);
|
|
1292
1292
|
for (const parent of getScrollableParent(this.targetElement)) {
|
|
1293
|
-
EventHandler.add(parent, '
|
|
1293
|
+
EventHandler.add(parent, 'scroll', this.scrollHandler, this);
|
|
1294
1294
|
}
|
|
1295
1295
|
}
|
|
1296
1296
|
}
|
|
@@ -2058,9 +2058,11 @@ let MenuBase = class MenuBase extends Component {
|
|
|
2058
2058
|
}
|
|
2059
2059
|
li.focus();
|
|
2060
2060
|
cul = this.getUlByNavIdx();
|
|
2061
|
-
|
|
2062
|
-
|
|
2063
|
-
|
|
2061
|
+
if (cul) {
|
|
2062
|
+
const index = this.isValidLI(cul.children[0], 0, this.action);
|
|
2063
|
+
cul.children[index].classList.add(FOCUSED);
|
|
2064
|
+
cul.children[index].focus();
|
|
2065
|
+
}
|
|
2064
2066
|
}
|
|
2065
2067
|
});
|
|
2066
2068
|
}
|
|
@@ -2375,107 +2377,103 @@ let MenuBase = class MenuBase extends Component {
|
|
|
2375
2377
|
}
|
|
2376
2378
|
}
|
|
2377
2379
|
clickHandler(e) {
|
|
2378
|
-
|
|
2379
|
-
|
|
2380
|
+
this.isTapHold = this.isTapHold ? false : this.isTapHold;
|
|
2381
|
+
const wrapper = this.getWrapper();
|
|
2382
|
+
const trgt = e.target;
|
|
2383
|
+
const cli = this.cli = this.getLI(trgt);
|
|
2384
|
+
const regex = new RegExp('-ej2menu-(.*)-popup');
|
|
2385
|
+
const cliWrapper = cli ? closest(cli, '.e-' + this.getModuleName() + '-wrapper') : null;
|
|
2386
|
+
const isInstLI = cli && cliWrapper && (this.isMenu ? this.getIndex(cli.id, true).length > 0
|
|
2387
|
+
: wrapper.firstElementChild.id === cliWrapper.firstElementChild.id);
|
|
2388
|
+
if (Browser.isDevice && this.isMenu) {
|
|
2389
|
+
this.removeLIStateByClass([FOCUSED], [wrapper].concat(this.getPopups()));
|
|
2390
|
+
this.mouseDownHandler(e);
|
|
2380
2391
|
}
|
|
2381
|
-
|
|
2382
|
-
const
|
|
2383
|
-
|
|
2384
|
-
|
|
2385
|
-
const regex = new RegExp('-ej2menu-(.*)-popup');
|
|
2386
|
-
const cliWrapper = cli ? closest(cli, '.e-' + this.getModuleName() + '-wrapper') : null;
|
|
2387
|
-
const isInstLI = cli && cliWrapper && (this.isMenu ? this.getIndex(cli.id, true).length > 0
|
|
2388
|
-
: wrapper.firstElementChild.id === cliWrapper.firstElementChild.id);
|
|
2389
|
-
if (Browser.isDevice && this.isMenu) {
|
|
2390
|
-
this.removeLIStateByClass([FOCUSED], [wrapper].concat(this.getPopups()));
|
|
2391
|
-
this.mouseDownHandler(e);
|
|
2392
|
-
}
|
|
2393
|
-
if (cli && cliWrapper && this.isMenu) {
|
|
2394
|
-
const cliWrapperId = cliWrapper.id ? regex.exec(cliWrapper.id)[1] : cliWrapper.querySelector('.e-menu-parent').id;
|
|
2395
|
-
if (this.element.id !== cliWrapperId) {
|
|
2396
|
-
return;
|
|
2397
|
-
}
|
|
2392
|
+
if (cli && cliWrapper && this.isMenu) {
|
|
2393
|
+
const cliWrapperId = cliWrapper.id ? regex.exec(cliWrapper.id)[1] : cliWrapper.querySelector('.e-menu-parent').id;
|
|
2394
|
+
if (this.element.id !== cliWrapperId) {
|
|
2395
|
+
return;
|
|
2398
2396
|
}
|
|
2399
|
-
|
|
2400
|
-
|
|
2401
|
-
|
|
2402
|
-
|
|
2403
|
-
|
|
2404
|
-
|
|
2397
|
+
}
|
|
2398
|
+
if (isInstLI && e.type === 'click' && !cli.classList.contains(HEADER)) {
|
|
2399
|
+
this.setLISelected(cli);
|
|
2400
|
+
const navIdx = this.getIndex(cli.id, true);
|
|
2401
|
+
const item = this.getItem(navIdx);
|
|
2402
|
+
const eventArgs = { element: cli, item: item, event: e };
|
|
2403
|
+
this.trigger('select', eventArgs);
|
|
2404
|
+
}
|
|
2405
|
+
if (isInstLI && (e.type === 'mouseover' || Browser.isDevice || this.showItemOnClick)) {
|
|
2406
|
+
let ul;
|
|
2407
|
+
if (cli.classList.contains(HEADER)) {
|
|
2408
|
+
ul = wrapper.children[this.navIdx.length - 1];
|
|
2409
|
+
this.toggleAnimation(ul);
|
|
2410
|
+
const sli = this.getLIByClass(ul, SELECTED);
|
|
2411
|
+
if (sli) {
|
|
2412
|
+
sli.classList.remove(SELECTED);
|
|
2413
|
+
}
|
|
2414
|
+
detach(cli.parentNode);
|
|
2415
|
+
this.navIdx.pop();
|
|
2405
2416
|
}
|
|
2406
|
-
|
|
2407
|
-
|
|
2408
|
-
|
|
2409
|
-
|
|
2410
|
-
|
|
2411
|
-
|
|
2412
|
-
if (sli) {
|
|
2413
|
-
sli.classList.remove(SELECTED);
|
|
2417
|
+
else {
|
|
2418
|
+
if (!cli.classList.contains(SEPARATOR)) {
|
|
2419
|
+
this.showSubMenu = true;
|
|
2420
|
+
const cul = cli.parentNode;
|
|
2421
|
+
if (isNullOrUndefined(cul)) {
|
|
2422
|
+
return;
|
|
2414
2423
|
}
|
|
2415
|
-
|
|
2416
|
-
this.
|
|
2417
|
-
|
|
2418
|
-
|
|
2419
|
-
|
|
2420
|
-
|
|
2421
|
-
const cul = cli.parentNode;
|
|
2422
|
-
if (isNullOrUndefined(cul)) {
|
|
2423
|
-
return;
|
|
2424
|
+
this.cliIdx = this.getIdx(cul, cli);
|
|
2425
|
+
if (this.isMenu || !Browser.isDevice) {
|
|
2426
|
+
const culIdx = this.isMenu ? Array.prototype.indexOf.call([wrapper].concat(this.getPopups()), closest(cul, '.' + 'e-' + this.getModuleName() + '-wrapper'))
|
|
2427
|
+
: this.getIdx(wrapper, cul);
|
|
2428
|
+
if (this.navIdx[culIdx] === this.cliIdx) {
|
|
2429
|
+
this.showSubMenu = false;
|
|
2424
2430
|
}
|
|
2425
|
-
this.
|
|
2426
|
-
|
|
2427
|
-
|
|
2428
|
-
|
|
2429
|
-
if (this.navIdx[culIdx] === this.cliIdx) {
|
|
2430
|
-
this.showSubMenu = false;
|
|
2431
|
+
if (culIdx !== this.navIdx.length && (e.type !== 'mouseover' || this.showSubMenu)) {
|
|
2432
|
+
const sli = this.getLIByClass(cul, SELECTED);
|
|
2433
|
+
if (sli) {
|
|
2434
|
+
sli.classList.remove(SELECTED);
|
|
2431
2435
|
}
|
|
2432
|
-
|
|
2433
|
-
|
|
2434
|
-
|
|
2435
|
-
|
|
2436
|
-
|
|
2437
|
-
|
|
2438
|
-
|
|
2439
|
-
|
|
2440
|
-
this.setLISelected(cli);
|
|
2441
|
-
}
|
|
2442
|
-
this.closeMenu(culIdx + 1, e);
|
|
2443
|
-
if (this.showItemOnClick) {
|
|
2444
|
-
this.setLISelected(cli);
|
|
2445
|
-
}
|
|
2436
|
+
this.isClosed = true;
|
|
2437
|
+
this.keyType = 'click';
|
|
2438
|
+
if (this.showItemOnClick) {
|
|
2439
|
+
this.setLISelected(cli);
|
|
2440
|
+
}
|
|
2441
|
+
this.closeMenu(culIdx + 1, e);
|
|
2442
|
+
if (this.showItemOnClick) {
|
|
2443
|
+
this.setLISelected(cli);
|
|
2446
2444
|
}
|
|
2447
2445
|
}
|
|
2448
|
-
if (!this.isClosed) {
|
|
2449
|
-
this.afterCloseMenu(e);
|
|
2450
|
-
}
|
|
2451
|
-
this.isClosed = false;
|
|
2452
2446
|
}
|
|
2447
|
+
if (!this.isClosed) {
|
|
2448
|
+
this.afterCloseMenu(e);
|
|
2449
|
+
}
|
|
2450
|
+
this.isClosed = false;
|
|
2453
2451
|
}
|
|
2454
2452
|
}
|
|
2455
|
-
|
|
2456
|
-
|
|
2457
|
-
|
|
2458
|
-
|
|
2459
|
-
|
|
2460
|
-
|
|
2461
|
-
|
|
2462
|
-
|
|
2463
|
-
|
|
2453
|
+
}
|
|
2454
|
+
else {
|
|
2455
|
+
if (this.isMenu && trgt.tagName === 'DIV' && this.navIdx.length && closest(trgt, '.e-menu-vscroll')) {
|
|
2456
|
+
const popupEle = closest(trgt, '.' + POPUP);
|
|
2457
|
+
const cIdx = Array.prototype.indexOf.call(this.getPopups(), popupEle) + 1;
|
|
2458
|
+
if (cIdx < this.navIdx.length) {
|
|
2459
|
+
this.closeMenu(cIdx + 1, e);
|
|
2460
|
+
if (popupEle) {
|
|
2461
|
+
this.removeLIStateByClass([FOCUSED, SELECTED], [popupEle]);
|
|
2464
2462
|
}
|
|
2465
2463
|
}
|
|
2466
|
-
|
|
2467
|
-
|
|
2468
|
-
|
|
2469
|
-
|
|
2470
|
-
|
|
2471
|
-
|
|
2472
|
-
|
|
2473
|
-
|
|
2474
|
-
|
|
2475
|
-
|
|
2476
|
-
|
|
2477
|
-
|
|
2478
|
-
|
|
2464
|
+
}
|
|
2465
|
+
else if (this.isMenu && this.hamburgerMode && trgt.tagName === 'SPAN'
|
|
2466
|
+
&& trgt.classList.contains('e-menu-icon')) {
|
|
2467
|
+
this.menuHeaderClickHandler(e);
|
|
2468
|
+
}
|
|
2469
|
+
else {
|
|
2470
|
+
if (trgt.tagName !== 'UL' || (this.isMenu ? trgt.parentElement.classList.contains('e-menu-wrapper') &&
|
|
2471
|
+
!this.getIndex(trgt.querySelector('.' + ITEM).id, true).length : trgt.parentElement !== wrapper)) {
|
|
2472
|
+
if (!cli) {
|
|
2473
|
+
this.removeLIStateByClass([SELECTED], [wrapper]);
|
|
2474
|
+
}
|
|
2475
|
+
if (!cli || !cli.querySelector('.' + CARET)) {
|
|
2476
|
+
this.closeMenu(null, e);
|
|
2479
2477
|
}
|
|
2480
2478
|
}
|
|
2481
2479
|
}
|
|
@@ -2533,9 +2531,11 @@ let MenuBase = class MenuBase extends Component {
|
|
|
2533
2531
|
li.classList.add(SELECTED);
|
|
2534
2532
|
}
|
|
2535
2533
|
getLIByClass(ul, classname) {
|
|
2536
|
-
|
|
2537
|
-
|
|
2538
|
-
|
|
2534
|
+
if (ul) {
|
|
2535
|
+
for (let i = 0, len = ul.children.length; i < len; i++) {
|
|
2536
|
+
if (ul.children[i].classList.contains(classname)) {
|
|
2537
|
+
return ul.children[i];
|
|
2538
|
+
}
|
|
2539
2539
|
}
|
|
2540
2540
|
}
|
|
2541
2541
|
return null;
|
|
@@ -2819,9 +2819,9 @@ let MenuBase = class MenuBase extends Component {
|
|
|
2819
2819
|
}
|
|
2820
2820
|
}
|
|
2821
2821
|
if (!this.isMenu) {
|
|
2822
|
-
EventHandler.remove(this.targetElement, '
|
|
2822
|
+
EventHandler.remove(this.targetElement, 'scroll', this.scrollHandler);
|
|
2823
2823
|
for (const parent of getScrollableParent(this.targetElement)) {
|
|
2824
|
-
EventHandler.remove(parent, '
|
|
2824
|
+
EventHandler.remove(parent, 'scroll', this.scrollHandler);
|
|
2825
2825
|
}
|
|
2826
2826
|
}
|
|
2827
2827
|
}
|
|
@@ -3289,7 +3289,7 @@ __decorate$2([
|
|
|
3289
3289
|
Property(false)
|
|
3290
3290
|
], MenuBase.prototype, "enableScrolling", void 0);
|
|
3291
3291
|
__decorate$2([
|
|
3292
|
-
Property(
|
|
3292
|
+
Property(true)
|
|
3293
3293
|
], MenuBase.prototype, "enableHtmlSanitizer", void 0);
|
|
3294
3294
|
__decorate$2([
|
|
3295
3295
|
Complex({ itemId: 'id', text: 'text', parentId: 'parentId', iconCss: 'iconCss', url: 'url', separator: 'separator', children: 'items' }, FieldSettings)
|
|
@@ -4348,7 +4348,9 @@ let Toolbar = class Toolbar extends Component {
|
|
|
4348
4348
|
popup.appendTo(ele);
|
|
4349
4349
|
EventHandler.add(document, 'scroll', this.docEvent.bind(this));
|
|
4350
4350
|
EventHandler.add(document, 'click ', this.docEvent.bind(this));
|
|
4351
|
-
|
|
4351
|
+
if (this.overflowMode !== 'Extended') {
|
|
4352
|
+
popup.element.style.maxHeight = popup.element.offsetHeight + 'px';
|
|
4353
|
+
}
|
|
4352
4354
|
if (this.isVertical) {
|
|
4353
4355
|
popup.element.style.visibility = 'hidden';
|
|
4354
4356
|
}
|
|
@@ -4363,7 +4365,7 @@ let Toolbar = class Toolbar extends Component {
|
|
|
4363
4365
|
}
|
|
4364
4366
|
this.popObj = popup;
|
|
4365
4367
|
}
|
|
4366
|
-
else {
|
|
4368
|
+
else if (this.overflowMode !== 'Extended') {
|
|
4367
4369
|
const popupEle = this.popObj.element;
|
|
4368
4370
|
setStyleAttribute(popupEle, { maxHeight: '', display: 'block' });
|
|
4369
4371
|
setStyleAttribute(popupEle, { maxHeight: popupEle.offsetHeight + 'px', display: '' });
|
|
@@ -4390,11 +4392,13 @@ let Toolbar = class Toolbar extends Component {
|
|
|
4390
4392
|
const toolEle = this.popObj.element.parentElement;
|
|
4391
4393
|
const popupNav = toolEle.querySelector('.' + CLS_TBARNAV);
|
|
4392
4394
|
popupNav.setAttribute('aria-expanded', 'true');
|
|
4393
|
-
setStyleAttribute(popObj.element, { height: 'auto', maxHeight: '' });
|
|
4394
|
-
popObj.element.style.maxHeight = popObj.element.offsetHeight + 'px';
|
|
4395
4395
|
if (this.overflowMode === 'Extended') {
|
|
4396
4396
|
popObj.element.style.minHeight = '';
|
|
4397
4397
|
}
|
|
4398
|
+
else {
|
|
4399
|
+
setStyleAttribute(popObj.element, { height: 'auto', maxHeight: '' });
|
|
4400
|
+
popObj.element.style.maxHeight = popObj.element.offsetHeight + 'px';
|
|
4401
|
+
}
|
|
4398
4402
|
const popupElePos = popupEle.offsetTop + popupEle.offsetHeight + calculatePosition(toolEle).top;
|
|
4399
4403
|
const popIcon = popupNav.firstElementChild;
|
|
4400
4404
|
popupNav.classList.add(CLS_TBARNAVACT);
|
|
@@ -4411,9 +4415,11 @@ let Toolbar = class Toolbar extends Component {
|
|
|
4411
4415
|
break;
|
|
4412
4416
|
}
|
|
4413
4417
|
}
|
|
4414
|
-
|
|
4418
|
+
if (this.overflowMode !== 'Extended') {
|
|
4419
|
+
setStyleAttribute(popObj.element, { maxHeight: overflowHeight + 'px' });
|
|
4420
|
+
}
|
|
4415
4421
|
}
|
|
4416
|
-
else if (this.isVertical) {
|
|
4422
|
+
else if (this.isVertical && this.overflowMode !== 'Extended') {
|
|
4417
4423
|
const tbEleData = this.element.getBoundingClientRect();
|
|
4418
4424
|
setStyleAttribute(popObj.element, { maxHeight: (tbEleData.top + this.element.offsetHeight) + 'px', bottom: 0, visibility: '' });
|
|
4419
4425
|
}
|
|
@@ -5285,13 +5291,25 @@ let Toolbar = class Toolbar extends Component {
|
|
|
5285
5291
|
this.activeEle.focus();
|
|
5286
5292
|
}
|
|
5287
5293
|
activeEleRemove(curEle) {
|
|
5294
|
+
let previousEle = this.element.querySelector('.' + CLS_ITEM + ':not(.' + CLS_DISABLE$2 + ' ):not(.' + CLS_SEPARATOR + ' ):not(.' + CLS_HIDDEN + ' )');
|
|
5288
5295
|
if (!isNullOrUndefined(this.activeEle)) {
|
|
5289
5296
|
this.activeEle.setAttribute('tabindex', this.getDataTabindex(this.activeEle));
|
|
5297
|
+
if (previousEle) {
|
|
5298
|
+
previousEle.removeAttribute('tabindex');
|
|
5299
|
+
}
|
|
5300
|
+
previousEle = this.activeEle;
|
|
5290
5301
|
}
|
|
5291
5302
|
this.activeEle = curEle;
|
|
5292
5303
|
if (this.getDataTabindex(this.activeEle) === '-1') {
|
|
5293
5304
|
if (isNullOrUndefined(this.trgtEle) && !curEle.parentElement.classList.contains(CLS_TEMPLATE)) {
|
|
5294
|
-
this.
|
|
5305
|
+
if (!isNullOrUndefined(this.element.querySelector('.e-hor-nav')) && this.element.querySelector('.e-hor-nav').classList.contains('e-nav-active')) {
|
|
5306
|
+
this.updateTabIndex('0');
|
|
5307
|
+
this.getDataTabindex(previousEle) === '-1' ? previousEle.setAttribute('tabindex', '0') :
|
|
5308
|
+
previousEle.setAttribute('tabindex', this.getDataTabindex(previousEle));
|
|
5309
|
+
}
|
|
5310
|
+
else {
|
|
5311
|
+
this.updateTabIndex('-1');
|
|
5312
|
+
}
|
|
5295
5313
|
curEle.removeAttribute('tabindex');
|
|
5296
5314
|
}
|
|
5297
5315
|
else {
|
|
@@ -6245,7 +6263,7 @@ let Accordion = class Accordion extends Component {
|
|
|
6245
6263
|
}
|
|
6246
6264
|
catch (e) {
|
|
6247
6265
|
if (typeof (value) === 'string') {
|
|
6248
|
-
ele.innerHTML = SanitizeHtmlHelper.sanitize(value);
|
|
6266
|
+
ele.innerHTML = this.enableHtmlSanitizer ? SanitizeHtmlHelper.sanitize(value) : value;
|
|
6249
6267
|
}
|
|
6250
6268
|
else if (value instanceof (HTMLElement)) {
|
|
6251
6269
|
ele.appendChild(value);
|
|
@@ -6283,7 +6301,7 @@ let Accordion = class Accordion extends Component {
|
|
|
6283
6301
|
});
|
|
6284
6302
|
}
|
|
6285
6303
|
else if (ele.childElementCount === 0) {
|
|
6286
|
-
ele.innerHTML = SanitizeHtmlHelper.sanitize(value);
|
|
6304
|
+
ele.innerHTML = this.enableHtmlSanitizer ? SanitizeHtmlHelper.sanitize(value) : value;
|
|
6287
6305
|
}
|
|
6288
6306
|
if (!isNullOrUndefined(temString)) {
|
|
6289
6307
|
if (this.templateEle.indexOf(value) === -1) {
|
|
@@ -6311,11 +6329,11 @@ let Accordion = class Accordion extends Component {
|
|
|
6311
6329
|
itemcnt.appendChild(ctn);
|
|
6312
6330
|
}
|
|
6313
6331
|
else {
|
|
6314
|
-
|
|
6315
|
-
|
|
6316
|
-
|
|
6332
|
+
let content = this.items[parseInt(index.toString(), 10)].content;
|
|
6333
|
+
if (this.enableHtmlSanitizer && typeof (content) === 'string') {
|
|
6334
|
+
content = SanitizeHtmlHelper.sanitize(content);
|
|
6317
6335
|
}
|
|
6318
|
-
itemcnt.appendChild(this.fetchElement(ctn,
|
|
6336
|
+
itemcnt.appendChild(this.fetchElement(ctn, content, index));
|
|
6319
6337
|
}
|
|
6320
6338
|
return itemcnt;
|
|
6321
6339
|
}
|
|
@@ -6964,7 +6982,7 @@ __decorate$4([
|
|
|
6964
6982
|
Property('Multiple')
|
|
6965
6983
|
], Accordion.prototype, "expandMode", void 0);
|
|
6966
6984
|
__decorate$4([
|
|
6967
|
-
Property(
|
|
6985
|
+
Property(true)
|
|
6968
6986
|
], Accordion.prototype, "enableHtmlSanitizer", void 0);
|
|
6969
6987
|
__decorate$4([
|
|
6970
6988
|
Complex({}, AccordionAnimationSettings)
|
|
@@ -7364,7 +7382,7 @@ __decorate$6([
|
|
|
7364
7382
|
Property('Menu')
|
|
7365
7383
|
], Menu.prototype, "title", void 0);
|
|
7366
7384
|
__decorate$6([
|
|
7367
|
-
Property(
|
|
7385
|
+
Property(true)
|
|
7368
7386
|
], Menu.prototype, "enableHtmlSanitizer", void 0);
|
|
7369
7387
|
__decorate$6([
|
|
7370
7388
|
Complex({ itemId: 'id', text: 'text', parentId: 'parentId', iconCss: 'iconCss', url: 'url', separator: 'separator', children: 'items' }, FieldSettings)
|
|
@@ -8130,10 +8148,10 @@ let Tab = class Tab extends Component {
|
|
|
8130
8148
|
if (typeof val === 'string') {
|
|
8131
8149
|
val = val.trim();
|
|
8132
8150
|
if (this.isVue) {
|
|
8133
|
-
templateFn = compile(SanitizeHtmlHelper.sanitize(val));
|
|
8151
|
+
templateFn = compile(this.enableHtmlSanitizer ? SanitizeHtmlHelper.sanitize(val) : val);
|
|
8134
8152
|
}
|
|
8135
8153
|
else {
|
|
8136
|
-
ele.innerHTML = SanitizeHtmlHelper.sanitize(val);
|
|
8154
|
+
ele.innerHTML = this.enableHtmlSanitizer ? SanitizeHtmlHelper.sanitize(val) : val;
|
|
8137
8155
|
}
|
|
8138
8156
|
}
|
|
8139
8157
|
else {
|
|
@@ -8333,7 +8351,7 @@ let Tab = class Tab extends Component {
|
|
|
8333
8351
|
ele.removeChild(ele.firstChild);
|
|
8334
8352
|
}
|
|
8335
8353
|
}
|
|
8336
|
-
if (this.isReact) {
|
|
8354
|
+
if (this.isReact || this.isAngular || this.isVue) {
|
|
8337
8355
|
this.clearTemplate(['content']);
|
|
8338
8356
|
}
|
|
8339
8357
|
this.templateEle = [];
|
|
@@ -8505,7 +8523,7 @@ let Tab = class Tab extends Component {
|
|
|
8505
8523
|
const tbPop = select('.e-popup.e-toolbar-pop', this.hdrEle);
|
|
8506
8524
|
if (tbPop && tbPop.classList.contains('e-popup-close')) {
|
|
8507
8525
|
const tbPopObj = (tbPop && tbPop.ej2_instances[0]);
|
|
8508
|
-
tbPopObj.position.X = (this.headerPlacement === 'Left') ? 'left' : 'right';
|
|
8526
|
+
tbPopObj.position.X = (this.headerPlacement === 'Left' || this.element.classList.contains(CLS_RTL$4)) ? 'left' : 'right';
|
|
8509
8527
|
tbPopObj.dataBind();
|
|
8510
8528
|
tbPopObj.show(config);
|
|
8511
8529
|
}
|
|
@@ -9699,7 +9717,7 @@ __decorate$7([
|
|
|
9699
9717
|
Property(false)
|
|
9700
9718
|
], Tab.prototype, "enablePersistence", void 0);
|
|
9701
9719
|
__decorate$7([
|
|
9702
|
-
Property(
|
|
9720
|
+
Property(true)
|
|
9703
9721
|
], Tab.prototype, "enableHtmlSanitizer", void 0);
|
|
9704
9722
|
__decorate$7([
|
|
9705
9723
|
Property(false)
|
|
@@ -9927,7 +9945,6 @@ let TreeView = TreeView_1 = class TreeView extends Component {
|
|
|
9927
9945
|
this.preventExpand = false;
|
|
9928
9946
|
this.checkedElement = [];
|
|
9929
9947
|
this.disableNode = [];
|
|
9930
|
-
// eslint-disable-next-line
|
|
9931
9948
|
this.validArr = [];
|
|
9932
9949
|
this.validNodes = [];
|
|
9933
9950
|
this.expandChildren = [];
|
|
@@ -10102,7 +10119,6 @@ let TreeView = TreeView_1 = class TreeView extends Component {
|
|
|
10102
10119
|
this.element.setAttribute('aria-multiselectable', 'false');
|
|
10103
10120
|
}
|
|
10104
10121
|
}
|
|
10105
|
-
// eslint-disable-next-line
|
|
10106
10122
|
templateComplier(template) {
|
|
10107
10123
|
if (template) {
|
|
10108
10124
|
this.hasTemplate = true;
|
|
@@ -10126,7 +10142,6 @@ let TreeView = TreeView_1 = class TreeView extends Component {
|
|
|
10126
10142
|
setDataBinding(changeDataSource) {
|
|
10127
10143
|
this.treeList.push('false');
|
|
10128
10144
|
if (this.fields.dataSource instanceof DataManager) {
|
|
10129
|
-
/* eslint-disable */
|
|
10130
10145
|
this.isOffline = this.fields.dataSource.dataSource.offline;
|
|
10131
10146
|
if (this.fields.dataSource.ready) {
|
|
10132
10147
|
this.fields.dataSource.ready.then((e) => {
|
|
@@ -10416,7 +10431,7 @@ let TreeView = TreeView_1 = class TreeView extends Component {
|
|
|
10416
10431
|
element = this.element.querySelector('[data-uid="' + data[this.fields.id] + '"]');
|
|
10417
10432
|
}
|
|
10418
10433
|
if (element) {
|
|
10419
|
-
let ariaChecked = element.
|
|
10434
|
+
let ariaChecked = element.getAttribute('aria-checked');
|
|
10420
10435
|
if (ariaChecked !== 'true') {
|
|
10421
10436
|
this.changeState(element, 'indeterminate', null, true, true);
|
|
10422
10437
|
}
|
|
@@ -10471,24 +10486,22 @@ let TreeView = TreeView_1 = class TreeView extends Component {
|
|
|
10471
10486
|
beforeNodeCreate(e) {
|
|
10472
10487
|
if (this.showCheckBox) {
|
|
10473
10488
|
let checkboxEle = createCheckBox(this.createElement, true, { cssClass: this.touchClass });
|
|
10474
|
-
checkboxEle.setAttribute('role', 'checkbox');
|
|
10475
|
-
checkboxEle.setAttribute('aria-label', e.text);
|
|
10476
10489
|
let icon = select('div.' + ICON, e.item);
|
|
10477
10490
|
let id = e.item.getAttribute('data-uid');
|
|
10478
10491
|
e.item.childNodes[0].insertBefore(checkboxEle, e.item.childNodes[0].childNodes[isNullOrUndefined(icon) ? 0 : 1]);
|
|
10479
10492
|
let checkValue = getValue(e.fields.isChecked, e.curData);
|
|
10480
10493
|
if (this.checkedNodes.indexOf(id) > -1) {
|
|
10481
10494
|
select('.' + CHECKBOXFRAME, checkboxEle).classList.add(CHECK);
|
|
10482
|
-
|
|
10495
|
+
e.item.setAttribute('aria-checked', 'true');
|
|
10483
10496
|
this.addCheck(e.item);
|
|
10484
10497
|
}
|
|
10485
10498
|
else if (!isNullOrUndefined(checkValue) && checkValue.toString() === 'true') {
|
|
10486
10499
|
select('.' + CHECKBOXFRAME, checkboxEle).classList.add(CHECK);
|
|
10487
|
-
|
|
10500
|
+
e.item.setAttribute('aria-checked', 'true');
|
|
10488
10501
|
this.addCheck(e.item);
|
|
10489
10502
|
}
|
|
10490
10503
|
else {
|
|
10491
|
-
|
|
10504
|
+
e.item.setAttribute('aria-checked', 'false');
|
|
10492
10505
|
}
|
|
10493
10506
|
let frame = select('.' + CHECKBOXFRAME, checkboxEle);
|
|
10494
10507
|
EventHandler.add(frame, 'mousedown', this.frameMouseHandler, this);
|
|
@@ -11020,7 +11033,7 @@ let TreeView = TreeView_1 = class TreeView extends Component {
|
|
|
11020
11033
|
}
|
|
11021
11034
|
ariaState = state === 'check' ? 'true' : state === 'uncheck' ? 'false' : ariaState;
|
|
11022
11035
|
if (!isNullOrUndefined(ariaState)) {
|
|
11023
|
-
|
|
11036
|
+
currLi.setAttribute('aria-checked', ariaState);
|
|
11024
11037
|
}
|
|
11025
11038
|
if (isAdd) {
|
|
11026
11039
|
let data = [].concat([], this.checkActionNodes);
|
|
@@ -11034,7 +11047,7 @@ let TreeView = TreeView_1 = class TreeView extends Component {
|
|
|
11034
11047
|
}
|
|
11035
11048
|
if (!isPrevent) {
|
|
11036
11049
|
if (!isNullOrUndefined(ariaState)) {
|
|
11037
|
-
|
|
11050
|
+
currLi.setAttribute('aria-checked', ariaState);
|
|
11038
11051
|
eventArgs.data[0].checked = ariaState;
|
|
11039
11052
|
this.trigger('nodeChecked', eventArgs);
|
|
11040
11053
|
this.checkActionNodes = [];
|
|
@@ -11732,7 +11745,7 @@ let TreeView = TreeView_1 = class TreeView extends Component {
|
|
|
11732
11745
|
}
|
|
11733
11746
|
}
|
|
11734
11747
|
nodeSelectAction(li, e, eventArgs, multiSelect) {
|
|
11735
|
-
if (!this.allowMultiSelection || (!multiSelect && (!e || (e && !e.ctrlKey)))) {
|
|
11748
|
+
if (!this.allowMultiSelection || (!multiSelect && (!e || (e && !(e.ctrlKey || e.metaKey))))) {
|
|
11736
11749
|
this.removeSelectAll();
|
|
11737
11750
|
}
|
|
11738
11751
|
if (this.allowMultiSelection && e && e.shiftKey) {
|
|
@@ -11841,7 +11854,7 @@ let TreeView = TreeView_1 = class TreeView extends Component {
|
|
|
11841
11854
|
this.expandOnType = (this.expandOn === 'Auto') ? (Browser.isDevice ? 'Click' : 'DblClick') : this.expandOn;
|
|
11842
11855
|
}
|
|
11843
11856
|
expandHandler(e) {
|
|
11844
|
-
let target = e.originalEvent.target;
|
|
11857
|
+
let target = Browser.isDevice && !Browser.isIos ? document.elementFromPoint(e.originalEvent.changedTouches[0].clientX, e.originalEvent.changedTouches[0].clientY) : e.originalEvent.target;
|
|
11845
11858
|
if (!target || target.classList.contains(INPUT) || target.classList.contains(ROOT) ||
|
|
11846
11859
|
target.classList.contains(PARENTITEM) || target.classList.contains(LISTITEM) ||
|
|
11847
11860
|
target.classList.contains(ICON) || this.showCheckBox && closest(target, '.' + CHECKBOXWRAP)) {
|
|
@@ -12055,7 +12068,7 @@ let TreeView = TreeView_1 = class TreeView extends Component {
|
|
|
12055
12068
|
this.checkActionNodes = [];
|
|
12056
12069
|
let ariaState = !isCheck ? 'true' : 'false';
|
|
12057
12070
|
if (!isNullOrUndefined(ariaState)) {
|
|
12058
|
-
|
|
12071
|
+
currLi.setAttribute('aria-checked', ariaState);
|
|
12059
12072
|
}
|
|
12060
12073
|
let eventArgs = this.getCheckEvent(currLi, isCheck ? 'uncheck' : 'check', e);
|
|
12061
12074
|
this.trigger('nodeChecking', eventArgs, (observedArgs) => {
|
|
@@ -12407,6 +12420,9 @@ let TreeView = TreeView_1 = class TreeView extends Component {
|
|
|
12407
12420
|
}
|
|
12408
12421
|
}
|
|
12409
12422
|
onMouseOver(e) {
|
|
12423
|
+
if (Browser.isDevice) {
|
|
12424
|
+
return;
|
|
12425
|
+
}
|
|
12410
12426
|
let target = e.target;
|
|
12411
12427
|
let classList$$1 = target.classList;
|
|
12412
12428
|
let currentLi = closest(target, '.' + LISTITEM);
|
|
@@ -12451,7 +12467,7 @@ let TreeView = TreeView_1 = class TreeView extends Component {
|
|
|
12451
12467
|
let checked = null;
|
|
12452
12468
|
const checkboxElement = select('.' + CHECKBOXWRAP, currLi);
|
|
12453
12469
|
if (this.showCheckBox && checkboxElement) {
|
|
12454
|
-
checked =
|
|
12470
|
+
checked = currLi.getAttribute('aria-checked');
|
|
12455
12471
|
}
|
|
12456
12472
|
return {
|
|
12457
12473
|
id: id, text: text, parentID: pid, selected: selected, selectable: selectable, expanded: expanded,
|
|
@@ -14847,7 +14863,7 @@ __decorate$8([
|
|
|
14847
14863
|
Property(null)
|
|
14848
14864
|
], TreeView.prototype, "dragArea", void 0);
|
|
14849
14865
|
__decorate$8([
|
|
14850
|
-
Property(
|
|
14866
|
+
Property(true)
|
|
14851
14867
|
], TreeView.prototype, "enableHtmlSanitizer", void 0);
|
|
14852
14868
|
__decorate$8([
|
|
14853
14869
|
Property(false)
|
|
@@ -16106,8 +16122,9 @@ let Breadcrumb = class Breadcrumb extends Component {
|
|
|
16106
16122
|
}
|
|
16107
16123
|
beforeItemRenderChanges(prevItem, currItem, elem, isRightIcon) {
|
|
16108
16124
|
const wrapElem = elem.querySelector('.e-anchor-wrap');
|
|
16109
|
-
if (wrapElem) {
|
|
16125
|
+
if (wrapElem && wrapElem.querySelector('.e-home')) {
|
|
16110
16126
|
wrapElem.parentElement.setAttribute('aria-label', 'home');
|
|
16127
|
+
wrapElem.parentElement.setAttribute('role', 'link');
|
|
16111
16128
|
}
|
|
16112
16129
|
if (currItem.text !== prevItem.text) {
|
|
16113
16130
|
wrapElem.childNodes.forEach((child) => {
|
|
@@ -18868,8 +18885,7 @@ let Stepper = class Stepper extends StepperBase {
|
|
|
18868
18885
|
const selectedEle = this.stepperItemElements[parseInt(this.activeStep.toString(), 10)].firstChild;
|
|
18869
18886
|
let value = this.activeStep === 0 ? 0 : (selectedEle.offsetLeft - progressPos.offsetLeft + (selectedEle.offsetWidth / 2)) / progressPos.offsetWidth * 100;
|
|
18870
18887
|
if (this.element.classList.contains(RTL$3)) {
|
|
18871
|
-
|
|
18872
|
-
value = ((progressPos.offsetWidth - selectedEle.offsetLeft) + Math.abs((elementPos.offsetLeft + elementPos.offsetWidth) - this.stepperItemList.offsetWidth)) / progressPos.offsetWidth * 100;
|
|
18888
|
+
value = (progressPos.getBoundingClientRect().right - selectedEle.getBoundingClientRect().right + (selectedEle.offsetWidth / 2)) / progressPos.offsetWidth * 100;
|
|
18873
18889
|
this.progressbar.style.setProperty(PROGRESSVALUE$1, (value) + '%');
|
|
18874
18890
|
}
|
|
18875
18891
|
else {
|