@covet-pics/covet-pics-widget 0.161.6 → 0.161.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/dist/cjs/{pagination-409ff3a4.js → a11y-3175522b.js} +328 -426
  2. package/dist/cjs/a11y-3175522b.js.map +1 -0
  3. package/dist/cjs/covet-pics-direct-buy_7.cjs.entry.js +18 -9
  4. package/dist/cjs/covet-pics-direct-buy_7.cjs.entry.js.map +1 -1
  5. package/dist/cjs/covet-pics-gallery-grid_3.cjs.entry.js +20 -20
  6. package/dist/cjs/covet-pics-gallery-grid_3.cjs.entry.js.map +1 -1
  7. package/dist/cjs/covet-pics-gallery-header_6.cjs.entry.js +12 -5
  8. package/dist/cjs/covet-pics-gallery-header_6.cjs.entry.js.map +1 -1
  9. package/dist/cjs/covet-pics-highlighted-hotspots_2.cjs.entry.js +13 -13
  10. package/dist/cjs/covet-pics-highlighted-hotspots_2.cjs.entry.js.map +1 -1
  11. package/dist/cjs/covet-pics-popup-freeflow-carousel_2.cjs.entry.js +27 -12
  12. package/dist/cjs/covet-pics-popup-freeflow-carousel_2.cjs.entry.js.map +1 -1
  13. package/dist/cjs/covet-pics-post.cjs.entry.js +1 -1
  14. package/dist/cjs/covet-pics-post.cjs.entry.js.map +1 -1
  15. package/dist/cjs/{navigation-cf706af7.js → navigation-6974866c.js} +12 -11
  16. package/dist/cjs/navigation-6974866c.js.map +1 -0
  17. package/dist/cjs/pagination-b5504057.js +484 -0
  18. package/dist/cjs/pagination-b5504057.js.map +1 -0
  19. package/dist/cjs/{popupFuncComponents-db65aa07.js → popupFuncComponents-4261816a.js} +3 -3
  20. package/dist/cjs/popupFuncComponents-4261816a.js.map +1 -0
  21. package/dist/collection/components/covet-pics-popup-freeflow/covet-pics-popup-freeflow-carousel.js +14 -4
  22. package/dist/collection/components/covet-pics-popup-freeflow/covet-pics-popup-freeflow-carousel.js.map +1 -1
  23. package/dist/collection/components/covet-pics-popup-freeflow/covet-pics-popup-freeflow-links.js +10 -4
  24. package/dist/collection/components/covet-pics-popup-freeflow/covet-pics-popup-freeflow-links.js.map +1 -1
  25. package/dist/collection/components/covet-pics-popup-freeflow/covet-pics-popup-freeflow.js +10 -3
  26. package/dist/collection/components/covet-pics-popup-freeflow/covet-pics-popup-freeflow.js.map +1 -1
  27. package/dist/collection/components/covet-pics-popup-freeflow/covet-pics-popup-slide.js +13 -3
  28. package/dist/collection/components/covet-pics-popup-freeflow/covet-pics-popup-slide.js.map +1 -1
  29. package/dist/collection/components/covet-pics-post/covet-pics-post.css +2 -1
  30. package/dist/collection/utils/funcComponents.js +2 -2
  31. package/dist/collection/utils/funcComponents.js.map +1 -1
  32. package/dist/covet-pics-widget/covet-pics-widget.esm.js +1 -1
  33. package/dist/covet-pics-widget/{p-c2b39e7f.system.entry.js → p-14bfd649.system.entry.js} +2 -2
  34. package/dist/covet-pics-widget/p-14bfd649.system.entry.js.map +1 -0
  35. package/dist/covet-pics-widget/{p-86a2182a.js → p-187bbf5e.js} +2 -2
  36. package/dist/covet-pics-widget/{p-86a2182a.js.map → p-187bbf5e.js.map} +1 -1
  37. package/dist/covet-pics-widget/{p-80bd0b83.entry.js → p-1d3674cd.entry.js} +3 -3
  38. package/dist/covet-pics-widget/{p-9ed75163.entry.js → p-1fb1cb70.entry.js} +3 -3
  39. package/dist/covet-pics-widget/{p-9ed75163.entry.js.map → p-1fb1cb70.entry.js.map} +1 -1
  40. package/dist/covet-pics-widget/p-28b0992e.system.js +5 -0
  41. package/dist/covet-pics-widget/p-28b0992e.system.js.map +1 -0
  42. package/dist/covet-pics-widget/{p-4ee29443.entry.js → p-2a29c902.entry.js} +2 -2
  43. package/dist/covet-pics-widget/p-2a29c902.entry.js.map +1 -0
  44. package/dist/covet-pics-widget/p-2d4fcd4a.system.js +1 -1
  45. package/dist/covet-pics-widget/{p-2544c6de.system.entry.js → p-30e489d5.system.entry.js} +3 -3
  46. package/dist/covet-pics-widget/p-30e489d5.system.entry.js.map +1 -0
  47. package/dist/covet-pics-widget/p-470c7853.js +5 -0
  48. package/dist/covet-pics-widget/{p-87d95159.js.map → p-470c7853.js.map} +1 -1
  49. package/dist/covet-pics-widget/{p-adbdb6cc.js → p-4fc6ca9d.js} +2 -2
  50. package/dist/covet-pics-widget/p-4fc6ca9d.js.map +1 -0
  51. package/dist/covet-pics-widget/p-50563a6e.system.js +5 -0
  52. package/dist/covet-pics-widget/p-50563a6e.system.js.map +1 -0
  53. package/dist/covet-pics-widget/{p-8fbfaad0.entry.js → p-6850e50e.entry.js} +4 -4
  54. package/dist/covet-pics-widget/p-6850e50e.entry.js.map +1 -0
  55. package/dist/covet-pics-widget/{p-d5431ea5.system.entry.js → p-8cb5dbf0.system.entry.js} +4 -4
  56. package/dist/covet-pics-widget/p-8cb5dbf0.system.entry.js.map +1 -0
  57. package/dist/covet-pics-widget/p-9a8d9790.js +5 -0
  58. package/dist/covet-pics-widget/p-9a8d9790.js.map +1 -0
  59. package/dist/covet-pics-widget/{p-42c7a0ae.entry.js → p-9b49c818.entry.js} +2 -2
  60. package/dist/covet-pics-widget/p-9b49c818.entry.js.map +1 -0
  61. package/dist/covet-pics-widget/{p-42bcbb6c.system.entry.js → p-b317fc00.system.entry.js} +2 -2
  62. package/dist/covet-pics-widget/p-b9f29825.entry.js +5 -0
  63. package/dist/covet-pics-widget/{p-a18d1c7b.entry.js.map → p-b9f29825.entry.js.map} +1 -1
  64. package/dist/covet-pics-widget/{p-27ec4527.system.entry.js → p-d29d311a.system.entry.js} +3 -3
  65. package/dist/covet-pics-widget/p-d31f5d2f.system.js +5 -0
  66. package/dist/covet-pics-widget/{p-f06b5fe1.system.js.map → p-d31f5d2f.system.js.map} +1 -1
  67. package/dist/covet-pics-widget/{p-b7c826d5.system.entry.js → p-d99afc48.system.entry.js} +2 -2
  68. package/dist/covet-pics-widget/p-d99afc48.system.entry.js.map +1 -0
  69. package/dist/covet-pics-widget/{p-c6a36218.system.js → p-e5374983.system.js} +2 -2
  70. package/dist/covet-pics-widget/{p-c6a36218.system.js.map → p-e5374983.system.js.map} +1 -1
  71. package/dist/esm/{pagination-d7b45e4b.js → a11y-dbcb22e4.js} +325 -425
  72. package/dist/esm/a11y-dbcb22e4.js.map +1 -0
  73. package/dist/esm/covet-pics-direct-buy_7.entry.js +16 -7
  74. package/dist/esm/covet-pics-direct-buy_7.entry.js.map +1 -1
  75. package/dist/esm/covet-pics-gallery-grid_3.entry.js +3 -3
  76. package/dist/esm/covet-pics-gallery-header_6.entry.js +11 -4
  77. package/dist/esm/covet-pics-gallery-header_6.entry.js.map +1 -1
  78. package/dist/esm/covet-pics-highlighted-hotspots_2.entry.js +3 -3
  79. package/dist/esm/covet-pics-popup-freeflow-carousel_2.entry.js +25 -10
  80. package/dist/esm/covet-pics-popup-freeflow-carousel_2.entry.js.map +1 -1
  81. package/dist/esm/covet-pics-post.entry.js +1 -1
  82. package/dist/esm/covet-pics-post.entry.js.map +1 -1
  83. package/dist/esm/{navigation-00a2b62b.js → navigation-268e054d.js} +3 -2
  84. package/dist/esm/navigation-268e054d.js.map +1 -0
  85. package/dist/esm/pagination-0984c8ea.js +481 -0
  86. package/dist/esm/pagination-0984c8ea.js.map +1 -0
  87. package/dist/esm/{popupFuncComponents-e763adc3.js → popupFuncComponents-199a1d27.js} +3 -3
  88. package/dist/esm/popupFuncComponents-199a1d27.js.map +1 -0
  89. package/dist/esm-es5/{pagination-d7b45e4b.js → a11y-dbcb22e4.js} +2 -2
  90. package/dist/esm-es5/a11y-dbcb22e4.js.map +1 -0
  91. package/dist/esm-es5/covet-pics-direct-buy_7.entry.js +2 -2
  92. package/dist/esm-es5/covet-pics-direct-buy_7.entry.js.map +1 -1
  93. package/dist/esm-es5/covet-pics-gallery-grid_3.entry.js +1 -1
  94. package/dist/esm-es5/covet-pics-gallery-header_6.entry.js +2 -2
  95. package/dist/esm-es5/covet-pics-gallery-header_6.entry.js.map +1 -1
  96. package/dist/esm-es5/covet-pics-highlighted-hotspots_2.entry.js +1 -1
  97. package/dist/esm-es5/covet-pics-popup-freeflow-carousel_2.entry.js +1 -1
  98. package/dist/esm-es5/covet-pics-popup-freeflow-carousel_2.entry.js.map +1 -1
  99. package/dist/esm-es5/covet-pics-post.entry.js +1 -1
  100. package/dist/esm-es5/covet-pics-post.entry.js.map +1 -1
  101. package/dist/esm-es5/navigation-268e054d.js +5 -0
  102. package/dist/esm-es5/{navigation-00a2b62b.js.map → navigation-268e054d.js.map} +1 -1
  103. package/dist/esm-es5/pagination-0984c8ea.js +5 -0
  104. package/dist/esm-es5/pagination-0984c8ea.js.map +1 -0
  105. package/dist/esm-es5/{popupFuncComponents-e763adc3.js → popupFuncComponents-199a1d27.js} +2 -2
  106. package/dist/esm-es5/{popupFuncComponents-e763adc3.js.map → popupFuncComponents-199a1d27.js.map} +1 -1
  107. package/dist/types/components/covet-pics-popup-freeflow/covet-pics-popup-freeflow-carousel.d.ts +1 -0
  108. package/dist/types/components/covet-pics-popup-freeflow/covet-pics-popup-slide.d.ts +1 -0
  109. package/package.json +1 -1
  110. package/dist/cjs/a11y-23e07e9a.js +0 -383
  111. package/dist/cjs/a11y-23e07e9a.js.map +0 -1
  112. package/dist/cjs/navigation-cf706af7.js.map +0 -1
  113. package/dist/cjs/pagination-409ff3a4.js.map +0 -1
  114. package/dist/cjs/popupFuncComponents-db65aa07.js.map +0 -1
  115. package/dist/covet-pics-widget/p-2544c6de.system.entry.js.map +0 -1
  116. package/dist/covet-pics-widget/p-38f3ac23.js +0 -5
  117. package/dist/covet-pics-widget/p-38f3ac23.js.map +0 -1
  118. package/dist/covet-pics-widget/p-42c7a0ae.entry.js.map +0 -1
  119. package/dist/covet-pics-widget/p-4ee29443.entry.js.map +0 -1
  120. package/dist/covet-pics-widget/p-5edc102a.system.js +0 -5
  121. package/dist/covet-pics-widget/p-5edc102a.system.js.map +0 -1
  122. package/dist/covet-pics-widget/p-640a0bc0.system.js +0 -5
  123. package/dist/covet-pics-widget/p-640a0bc0.system.js.map +0 -1
  124. package/dist/covet-pics-widget/p-87d95159.js +0 -5
  125. package/dist/covet-pics-widget/p-8fbfaad0.entry.js.map +0 -1
  126. package/dist/covet-pics-widget/p-a18d1c7b.entry.js +0 -5
  127. package/dist/covet-pics-widget/p-adbdb6cc.js.map +0 -1
  128. package/dist/covet-pics-widget/p-b7c826d5.system.entry.js.map +0 -1
  129. package/dist/covet-pics-widget/p-c2b39e7f.system.entry.js.map +0 -1
  130. package/dist/covet-pics-widget/p-d5431ea5.system.entry.js.map +0 -1
  131. package/dist/covet-pics-widget/p-f06b5fe1.system.js +0 -5
  132. package/dist/esm/a11y-0a45d4be.js +0 -381
  133. package/dist/esm/a11y-0a45d4be.js.map +0 -1
  134. package/dist/esm/navigation-00a2b62b.js.map +0 -1
  135. package/dist/esm/pagination-d7b45e4b.js.map +0 -1
  136. package/dist/esm/popupFuncComponents-e763adc3.js.map +0 -1
  137. package/dist/esm-es5/a11y-0a45d4be.js +0 -5
  138. package/dist/esm-es5/a11y-0a45d4be.js.map +0 -1
  139. package/dist/esm-es5/navigation-00a2b62b.js +0 -5
  140. package/dist/esm-es5/pagination-d7b45e4b.js.map +0 -1
  141. /package/dist/covet-pics-widget/{p-80bd0b83.entry.js.map → p-1d3674cd.entry.js.map} +0 -0
  142. /package/dist/covet-pics-widget/{p-42bcbb6c.system.entry.js.map → p-b317fc00.system.entry.js.map} +0 -0
  143. /package/dist/covet-pics-widget/{p-27ec4527.system.entry.js.map → p-d29d311a.system.entry.js.map} +0 -0
@@ -4359,24 +4359,6 @@ Object.keys(prototypes).forEach(prototypeGroup => {
4359
4359
  });
4360
4360
  Swiper.use([Resize, Observer]);
4361
4361
 
4362
- function createElementIfNotDefined(swiper, originalParams, params, checkProps) {
4363
- if (swiper.params.createElements) {
4364
- Object.keys(checkProps).forEach(key => {
4365
- if (!params[key] && params.auto === true) {
4366
- let element = elementChildren(swiper.el, `.${checkProps[key]}`)[0];
4367
- if (!element) {
4368
- element = createElement('div', checkProps[key]);
4369
- element.className = checkProps[key];
4370
- swiper.el.append(element);
4371
- }
4372
- params[key] = element;
4373
- originalParams[key] = element;
4374
- }
4375
- });
4376
- }
4377
- return params;
4378
- }
4379
-
4380
4362
  function classesToSelector(classes) {
4381
4363
  if (classes === void 0) {
4382
4364
  classes = '';
@@ -4385,473 +4367,393 @@ function classesToSelector(classes) {
4385
4367
  .replace(/ /g, '.')}`;
4386
4368
  }
4387
4369
 
4388
- function Pagination(_ref) {
4370
+ function A11y(_ref) {
4389
4371
  let {
4390
4372
  swiper,
4391
4373
  extendParams,
4392
- on,
4393
- emit
4374
+ on
4394
4375
  } = _ref;
4395
- const pfx = 'swiper-pagination';
4396
4376
  extendParams({
4397
- pagination: {
4398
- el: null,
4399
- bulletElement: 'span',
4400
- clickable: false,
4401
- hideOnClick: false,
4402
- renderBullet: null,
4403
- renderProgressbar: null,
4404
- renderFraction: null,
4405
- renderCustom: null,
4406
- progressbarOpposite: false,
4407
- type: 'bullets',
4408
- // 'bullets' or 'progressbar' or 'fraction' or 'custom'
4409
- dynamicBullets: false,
4410
- dynamicMainBullets: 1,
4411
- formatFractionCurrent: number => number,
4412
- formatFractionTotal: number => number,
4413
- bulletClass: `${pfx}-bullet`,
4414
- bulletActiveClass: `${pfx}-bullet-active`,
4415
- modifierClass: `${pfx}-`,
4416
- currentClass: `${pfx}-current`,
4417
- totalClass: `${pfx}-total`,
4418
- hiddenClass: `${pfx}-hidden`,
4419
- progressbarFillClass: `${pfx}-progressbar-fill`,
4420
- progressbarOppositeClass: `${pfx}-progressbar-opposite`,
4421
- clickableClass: `${pfx}-clickable`,
4422
- lockClass: `${pfx}-lock`,
4423
- horizontalClass: `${pfx}-horizontal`,
4424
- verticalClass: `${pfx}-vertical`,
4425
- paginationDisabledClass: `${pfx}-disabled`
4377
+ a11y: {
4378
+ enabled: true,
4379
+ notificationClass: 'swiper-notification',
4380
+ prevSlideMessage: 'Previous slide',
4381
+ nextSlideMessage: 'Next slide',
4382
+ firstSlideMessage: 'This is the first slide',
4383
+ lastSlideMessage: 'This is the last slide',
4384
+ paginationBulletMessage: 'Go to slide {{index}}',
4385
+ slideLabelMessage: '{{index}} / {{slidesLength}}',
4386
+ containerMessage: null,
4387
+ containerRoleDescriptionMessage: null,
4388
+ containerRole: null,
4389
+ itemRoleDescriptionMessage: null,
4390
+ slideRole: 'group',
4391
+ id: null,
4392
+ scrollOnFocus: true
4426
4393
  }
4427
4394
  });
4428
- swiper.pagination = {
4429
- el: null,
4430
- bullets: []
4395
+ swiper.a11y = {
4396
+ clicked: false
4431
4397
  };
4432
- let bulletSize;
4433
- let dynamicBulletIndex = 0;
4434
- function isPaginationDisabled() {
4435
- return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0;
4398
+ let liveRegion = null;
4399
+ let preventFocusHandler;
4400
+ let focusTargetSlideEl;
4401
+ let visibilityChangedTimestamp = new Date().getTime();
4402
+ function notify(message) {
4403
+ const notification = liveRegion;
4404
+ if (notification.length === 0) return;
4405
+ notification.innerHTML = '';
4406
+ notification.innerHTML = message;
4407
+ }
4408
+ function getRandomNumber(size) {
4409
+ if (size === void 0) {
4410
+ size = 16;
4411
+ }
4412
+ const randomChar = () => Math.round(16 * Math.random()).toString(16);
4413
+ return 'x'.repeat(size).replace(/x/g, randomChar);
4414
+ }
4415
+ function makeElFocusable(el) {
4416
+ el = makeElementsArray(el);
4417
+ el.forEach(subEl => {
4418
+ subEl.setAttribute('tabIndex', '0');
4419
+ });
4436
4420
  }
4437
- function setSideBullets(bulletEl, position) {
4438
- const {
4439
- bulletActiveClass
4440
- } = swiper.params.pagination;
4441
- if (!bulletEl) return;
4442
- bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];
4443
- if (bulletEl) {
4444
- bulletEl.classList.add(`${bulletActiveClass}-${position}`);
4445
- bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];
4446
- if (bulletEl) {
4447
- bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`);
4448
- }
4449
- }
4421
+ function makeElNotFocusable(el) {
4422
+ el = makeElementsArray(el);
4423
+ el.forEach(subEl => {
4424
+ subEl.setAttribute('tabIndex', '-1');
4425
+ });
4450
4426
  }
4451
- function getMoveDirection(prevIndex, nextIndex, length) {
4452
- prevIndex = prevIndex % length;
4453
- nextIndex = nextIndex % length;
4454
- if (nextIndex === prevIndex + 1) {
4455
- return 'next';
4456
- } else if (nextIndex === prevIndex - 1) {
4457
- return 'previous';
4458
- }
4459
- return;
4427
+ function addElRole(el, role) {
4428
+ el = makeElementsArray(el);
4429
+ el.forEach(subEl => {
4430
+ subEl.setAttribute('role', role);
4431
+ });
4460
4432
  }
4461
- function onBulletClick(e) {
4462
- const bulletEl = e.target.closest(classesToSelector(swiper.params.pagination.bulletClass));
4463
- if (!bulletEl) {
4464
- return;
4465
- }
4466
- e.preventDefault();
4467
- const index = elementIndex(bulletEl) * swiper.params.slidesPerGroup;
4468
- if (swiper.params.loop) {
4469
- if (swiper.realIndex === index) return;
4470
- const moveDirection = getMoveDirection(swiper.realIndex, index, swiper.slides.length);
4471
- if (moveDirection === 'next') {
4472
- swiper.slideNext();
4473
- } else if (moveDirection === 'previous') {
4474
- swiper.slidePrev();
4475
- } else {
4476
- swiper.slideToLoop(index);
4477
- }
4478
- } else {
4479
- swiper.slideTo(index);
4480
- }
4433
+ function addElRoleDescription(el, description) {
4434
+ el = makeElementsArray(el);
4435
+ el.forEach(subEl => {
4436
+ subEl.setAttribute('aria-roledescription', description);
4437
+ });
4481
4438
  }
4482
- function update() {
4483
- // Render || Update Pagination bullets/items
4484
- const rtl = swiper.rtl;
4485
- const params = swiper.params.pagination;
4486
- if (isPaginationDisabled()) return;
4487
- let el = swiper.pagination.el;
4439
+ function addElControls(el, controls) {
4488
4440
  el = makeElementsArray(el);
4489
- // Current/Total
4490
- let current;
4491
- let previousIndex;
4492
- const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;
4493
- const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;
4494
- if (swiper.params.loop) {
4495
- previousIndex = swiper.previousRealIndex || 0;
4496
- current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex;
4497
- } else if (typeof swiper.snapIndex !== 'undefined') {
4498
- current = swiper.snapIndex;
4499
- previousIndex = swiper.previousSnapIndex;
4500
- } else {
4501
- previousIndex = swiper.previousIndex || 0;
4502
- current = swiper.activeIndex || 0;
4503
- }
4504
- // Types
4505
- if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {
4506
- const bullets = swiper.pagination.bullets;
4507
- let firstIndex;
4508
- let lastIndex;
4509
- let midIndex;
4510
- if (params.dynamicBullets) {
4511
- bulletSize = elementOuterSize(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true);
4512
- el.forEach(subEl => {
4513
- subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`;
4514
- });
4515
- if (params.dynamicMainBullets > 1 && previousIndex !== undefined) {
4516
- dynamicBulletIndex += current - (previousIndex || 0);
4517
- if (dynamicBulletIndex > params.dynamicMainBullets - 1) {
4518
- dynamicBulletIndex = params.dynamicMainBullets - 1;
4519
- } else if (dynamicBulletIndex < 0) {
4520
- dynamicBulletIndex = 0;
4521
- }
4522
- }
4523
- firstIndex = Math.max(current - dynamicBulletIndex, 0);
4524
- lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);
4525
- midIndex = (lastIndex + firstIndex) / 2;
4526
- }
4527
- bullets.forEach(bulletEl => {
4528
- const classesToRemove = [...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`)].map(s => typeof s === 'string' && s.includes(' ') ? s.split(' ') : s).flat();
4529
- bulletEl.classList.remove(...classesToRemove);
4530
- });
4531
- if (el.length > 1) {
4532
- bullets.forEach(bullet => {
4533
- const bulletIndex = elementIndex(bullet);
4534
- if (bulletIndex === current) {
4535
- bullet.classList.add(...params.bulletActiveClass.split(' '));
4536
- } else if (swiper.isElement) {
4537
- bullet.setAttribute('part', 'bullet');
4538
- }
4539
- if (params.dynamicBullets) {
4540
- if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {
4541
- bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' '));
4542
- }
4543
- if (bulletIndex === firstIndex) {
4544
- setSideBullets(bullet, 'prev');
4545
- }
4546
- if (bulletIndex === lastIndex) {
4547
- setSideBullets(bullet, 'next');
4548
- }
4549
- }
4550
- });
4551
- } else {
4552
- const bullet = bullets[current];
4553
- if (bullet) {
4554
- bullet.classList.add(...params.bulletActiveClass.split(' '));
4555
- }
4556
- if (swiper.isElement) {
4557
- bullets.forEach((bulletEl, bulletIndex) => {
4558
- bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet');
4559
- });
4560
- }
4561
- if (params.dynamicBullets) {
4562
- const firstDisplayedBullet = bullets[firstIndex];
4563
- const lastDisplayedBullet = bullets[lastIndex];
4564
- for (let i = firstIndex; i <= lastIndex; i += 1) {
4565
- if (bullets[i]) {
4566
- bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' '));
4567
- }
4568
- }
4569
- setSideBullets(firstDisplayedBullet, 'prev');
4570
- setSideBullets(lastDisplayedBullet, 'next');
4571
- }
4572
- }
4573
- if (params.dynamicBullets) {
4574
- const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);
4575
- const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;
4576
- const offsetProp = rtl ? 'right' : 'left';
4577
- bullets.forEach(bullet => {
4578
- bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`;
4579
- });
4580
- }
4581
- }
4582
- el.forEach((subEl, subElIndex) => {
4583
- if (params.type === 'fraction') {
4584
- subEl.querySelectorAll(classesToSelector(params.currentClass)).forEach(fractionEl => {
4585
- fractionEl.textContent = params.formatFractionCurrent(current + 1);
4586
- });
4587
- subEl.querySelectorAll(classesToSelector(params.totalClass)).forEach(totalEl => {
4588
- totalEl.textContent = params.formatFractionTotal(total);
4589
- });
4590
- }
4591
- if (params.type === 'progressbar') {
4592
- let progressbarDirection;
4593
- if (params.progressbarOpposite) {
4594
- progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';
4595
- } else {
4596
- progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';
4597
- }
4598
- const scale = (current + 1) / total;
4599
- let scaleX = 1;
4600
- let scaleY = 1;
4601
- if (progressbarDirection === 'horizontal') {
4602
- scaleX = scale;
4603
- } else {
4604
- scaleY = scale;
4605
- }
4606
- subEl.querySelectorAll(classesToSelector(params.progressbarFillClass)).forEach(progressEl => {
4607
- progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`;
4608
- progressEl.style.transitionDuration = `${swiper.params.speed}ms`;
4609
- });
4610
- }
4611
- if (params.type === 'custom' && params.renderCustom) {
4612
- subEl.innerHTML = params.renderCustom(swiper, current + 1, total);
4613
- if (subElIndex === 0) emit('paginationRender', subEl);
4614
- } else {
4615
- if (subElIndex === 0) emit('paginationRender', subEl);
4616
- emit('paginationUpdate', subEl);
4617
- }
4618
- if (swiper.params.watchOverflow && swiper.enabled) {
4619
- subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);
4620
- }
4441
+ el.forEach(subEl => {
4442
+ subEl.setAttribute('aria-controls', controls);
4443
+ });
4444
+ }
4445
+ function addElLabel(el, label) {
4446
+ el = makeElementsArray(el);
4447
+ el.forEach(subEl => {
4448
+ subEl.setAttribute('aria-label', label);
4449
+ });
4450
+ }
4451
+ function addElId(el, id) {
4452
+ el = makeElementsArray(el);
4453
+ el.forEach(subEl => {
4454
+ subEl.setAttribute('id', id);
4455
+ });
4456
+ }
4457
+ function addElLive(el, live) {
4458
+ el = makeElementsArray(el);
4459
+ el.forEach(subEl => {
4460
+ subEl.setAttribute('aria-live', live);
4461
+ });
4462
+ }
4463
+ function disableEl(el) {
4464
+ el = makeElementsArray(el);
4465
+ el.forEach(subEl => {
4466
+ subEl.setAttribute('aria-disabled', true);
4621
4467
  });
4622
4468
  }
4623
- function render() {
4624
- // Render Container
4625
- const params = swiper.params.pagination;
4626
- if (isPaginationDisabled()) return;
4627
- const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.grid && swiper.params.grid.rows > 1 ? swiper.slides.length / Math.ceil(swiper.params.grid.rows) : swiper.slides.length;
4628
- let el = swiper.pagination.el;
4469
+ function enableEl(el) {
4629
4470
  el = makeElementsArray(el);
4630
- let paginationHTML = '';
4631
- if (params.type === 'bullets') {
4632
- let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;
4633
- if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) {
4634
- numberOfBullets = slidesLength;
4471
+ el.forEach(subEl => {
4472
+ subEl.setAttribute('aria-disabled', false);
4473
+ });
4474
+ }
4475
+ function onEnterOrSpaceKey(e) {
4476
+ if (e.keyCode !== 13 && e.keyCode !== 32) return;
4477
+ const params = swiper.params.a11y;
4478
+ const targetEl = e.target;
4479
+ if (swiper.pagination && swiper.pagination.el && (targetEl === swiper.pagination.el || swiper.pagination.el.contains(e.target))) {
4480
+ if (!e.target.matches(classesToSelector(swiper.params.pagination.bulletClass))) return;
4481
+ }
4482
+ if (swiper.navigation && swiper.navigation.prevEl && swiper.navigation.nextEl) {
4483
+ const prevEls = makeElementsArray(swiper.navigation.prevEl);
4484
+ const nextEls = makeElementsArray(swiper.navigation.nextEl);
4485
+ if (nextEls.includes(targetEl)) {
4486
+ if (!(swiper.isEnd && !swiper.params.loop)) {
4487
+ swiper.slideNext();
4488
+ }
4489
+ if (swiper.isEnd) {
4490
+ notify(params.lastSlideMessage);
4491
+ } else {
4492
+ notify(params.nextSlideMessage);
4493
+ }
4635
4494
  }
4636
- for (let i = 0; i < numberOfBullets; i += 1) {
4637
- if (params.renderBullet) {
4638
- paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);
4495
+ if (prevEls.includes(targetEl)) {
4496
+ if (!(swiper.isBeginning && !swiper.params.loop)) {
4497
+ swiper.slidePrev();
4498
+ }
4499
+ if (swiper.isBeginning) {
4500
+ notify(params.firstSlideMessage);
4639
4501
  } else {
4640
- // prettier-ignore
4641
- paginationHTML += `<${params.bulletElement} ${swiper.isElement ? 'part="bullet"' : ''} class="${params.bulletClass}"></${params.bulletElement}>`;
4502
+ notify(params.prevSlideMessage);
4642
4503
  }
4643
4504
  }
4644
4505
  }
4645
- if (params.type === 'fraction') {
4646
- if (params.renderFraction) {
4647
- paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);
4648
- } else {
4649
- paginationHTML = `<span class="${params.currentClass}"></span>` + ' / ' + `<span class="${params.totalClass}"></span>`;
4650
- }
4506
+ if (swiper.pagination && targetEl.matches(classesToSelector(swiper.params.pagination.bulletClass))) {
4507
+ targetEl.click();
4651
4508
  }
4652
- if (params.type === 'progressbar') {
4653
- if (params.renderProgressbar) {
4654
- paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);
4509
+ }
4510
+ function updateNavigation() {
4511
+ if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return;
4512
+ const {
4513
+ nextEl,
4514
+ prevEl
4515
+ } = swiper.navigation;
4516
+ if (prevEl) {
4517
+ if (swiper.isBeginning) {
4518
+ disableEl(prevEl);
4519
+ makeElNotFocusable(prevEl);
4655
4520
  } else {
4656
- paginationHTML = `<span class="${params.progressbarFillClass}"></span>`;
4521
+ enableEl(prevEl);
4522
+ makeElFocusable(prevEl);
4657
4523
  }
4658
4524
  }
4659
- swiper.pagination.bullets = [];
4660
- el.forEach(subEl => {
4661
- if (params.type !== 'custom') {
4662
- subEl.innerHTML = paginationHTML || '';
4663
- }
4664
- if (params.type === 'bullets') {
4665
- swiper.pagination.bullets.push(...subEl.querySelectorAll(classesToSelector(params.bulletClass)));
4525
+ if (nextEl) {
4526
+ if (swiper.isEnd) {
4527
+ disableEl(nextEl);
4528
+ makeElNotFocusable(nextEl);
4529
+ } else {
4530
+ enableEl(nextEl);
4531
+ makeElFocusable(nextEl);
4666
4532
  }
4667
- });
4668
- if (params.type !== 'custom') {
4669
- emit('paginationRender', el[0]);
4670
4533
  }
4671
4534
  }
4672
- function init() {
4673
- swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {
4674
- el: 'swiper-pagination'
4675
- });
4676
- const params = swiper.params.pagination;
4677
- if (!params.el) return;
4678
- let el;
4679
- if (typeof params.el === 'string' && swiper.isElement) {
4680
- el = swiper.el.querySelector(params.el);
4681
- }
4682
- if (!el && typeof params.el === 'string') {
4683
- el = [...document.querySelectorAll(params.el)];
4684
- }
4685
- if (!el) {
4686
- el = params.el;
4687
- }
4688
- if (!el || el.length === 0) return;
4689
- if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) {
4690
- el = [...swiper.el.querySelectorAll(params.el)];
4691
- // check if it belongs to another nested Swiper
4692
- if (el.length > 1) {
4693
- el = el.filter(subEl => {
4694
- if (elementParents(subEl, '.swiper')[0] !== swiper.el) return false;
4695
- return true;
4696
- })[0];
4697
- }
4698
- }
4699
- if (Array.isArray(el) && el.length === 1) el = el[0];
4700
- Object.assign(swiper.pagination, {
4701
- el
4702
- });
4703
- el = makeElementsArray(el);
4704
- el.forEach(subEl => {
4705
- if (params.type === 'bullets' && params.clickable) {
4706
- subEl.classList.add(...(params.clickableClass || '').split(' '));
4707
- }
4708
- subEl.classList.add(params.modifierClass + params.type);
4709
- subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
4710
- if (params.type === 'bullets' && params.dynamicBullets) {
4711
- subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`);
4712
- dynamicBulletIndex = 0;
4713
- if (params.dynamicMainBullets < 1) {
4714
- params.dynamicMainBullets = 1;
4535
+ function hasPagination() {
4536
+ return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length;
4537
+ }
4538
+ function hasClickablePagination() {
4539
+ return hasPagination() && swiper.params.pagination.clickable;
4540
+ }
4541
+ function updatePagination() {
4542
+ const params = swiper.params.a11y;
4543
+ if (!hasPagination()) return;
4544
+ swiper.pagination.bullets.forEach(bulletEl => {
4545
+ if (swiper.params.pagination.clickable) {
4546
+ makeElFocusable(bulletEl);
4547
+ if (!swiper.params.pagination.renderBullet) {
4548
+ addElRole(bulletEl, 'button');
4549
+ addElLabel(bulletEl, params.paginationBulletMessage.replace(/\{\{index\}\}/, elementIndex(bulletEl) + 1));
4715
4550
  }
4716
4551
  }
4717
- if (params.type === 'progressbar' && params.progressbarOpposite) {
4718
- subEl.classList.add(params.progressbarOppositeClass);
4719
- }
4720
- if (params.clickable) {
4721
- subEl.addEventListener('click', onBulletClick);
4722
- }
4723
- if (!swiper.enabled) {
4724
- subEl.classList.add(params.lockClass);
4552
+ if (bulletEl.matches(classesToSelector(swiper.params.pagination.bulletActiveClass))) {
4553
+ bulletEl.setAttribute('aria-current', 'true');
4554
+ } else {
4555
+ bulletEl.removeAttribute('aria-current');
4725
4556
  }
4726
4557
  });
4727
4558
  }
4728
- function destroy() {
4729
- const params = swiper.params.pagination;
4730
- if (isPaginationDisabled()) return;
4731
- let el = swiper.pagination.el;
4732
- if (el) {
4733
- el = makeElementsArray(el);
4734
- el.forEach(subEl => {
4735
- subEl.classList.remove(params.hiddenClass);
4736
- subEl.classList.remove(params.modifierClass + params.type);
4737
- subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
4738
- if (params.clickable) {
4739
- subEl.classList.remove(...(params.clickableClass || '').split(' '));
4740
- subEl.removeEventListener('click', onBulletClick);
4559
+ const initNavEl = (el, wrapperId, message) => {
4560
+ makeElFocusable(el);
4561
+ if (el.tagName !== 'BUTTON') {
4562
+ addElRole(el, 'button');
4563
+ el.addEventListener('keydown', onEnterOrSpaceKey);
4564
+ }
4565
+ addElLabel(el, message);
4566
+ addElControls(el, wrapperId);
4567
+ };
4568
+ const handlePointerDown = e => {
4569
+ if (focusTargetSlideEl && focusTargetSlideEl !== e.target && !focusTargetSlideEl.contains(e.target)) {
4570
+ preventFocusHandler = true;
4571
+ }
4572
+ swiper.a11y.clicked = true;
4573
+ };
4574
+ const handlePointerUp = () => {
4575
+ preventFocusHandler = false;
4576
+ requestAnimationFrame(() => {
4577
+ requestAnimationFrame(() => {
4578
+ if (!swiper.destroyed) {
4579
+ swiper.a11y.clicked = false;
4741
4580
  }
4742
4581
  });
4743
- }
4744
- if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' ')));
4745
- }
4746
- on('changeDirection', () => {
4747
- if (!swiper.pagination || !swiper.pagination.el) return;
4748
- const params = swiper.params.pagination;
4749
- let {
4750
- el
4751
- } = swiper.pagination;
4752
- el = makeElementsArray(el);
4753
- el.forEach(subEl => {
4754
- subEl.classList.remove(params.horizontalClass, params.verticalClass);
4755
- subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
4756
4582
  });
4757
- });
4758
- on('init', () => {
4759
- if (swiper.params.pagination.enabled === false) {
4760
- // eslint-disable-next-line
4761
- disable();
4583
+ };
4584
+ const onVisibilityChange = e => {
4585
+ visibilityChangedTimestamp = new Date().getTime();
4586
+ };
4587
+ const handleFocus = e => {
4588
+ if (swiper.a11y.clicked || !swiper.params.a11y.scrollOnFocus) return;
4589
+ if (new Date().getTime() - visibilityChangedTimestamp < 100) return;
4590
+ const slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);
4591
+ if (!slideEl || !swiper.slides.includes(slideEl)) return;
4592
+ focusTargetSlideEl = slideEl;
4593
+ const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex;
4594
+ const isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl);
4595
+ if (isActive || isVisible) return;
4596
+ if (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) return;
4597
+ if (swiper.isHorizontal()) {
4598
+ swiper.el.scrollLeft = 0;
4762
4599
  } else {
4763
- init();
4764
- render();
4765
- update();
4600
+ swiper.el.scrollTop = 0;
4766
4601
  }
4767
- });
4768
- on('activeIndexChange', () => {
4769
- if (typeof swiper.snapIndex === 'undefined') {
4770
- update();
4771
- }
4772
- });
4773
- on('snapIndexChange', () => {
4774
- update();
4775
- });
4776
- on('snapGridLengthChange', () => {
4777
- render();
4778
- update();
4779
- });
4780
- on('destroy', () => {
4781
- destroy();
4782
- });
4783
- on('enable disable', () => {
4784
- let {
4785
- el
4786
- } = swiper.pagination;
4787
- if (el) {
4788
- el = makeElementsArray(el);
4789
- el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass));
4790
- }
4791
- });
4792
- on('lock unlock', () => {
4793
- update();
4794
- });
4795
- on('click', (_s, e) => {
4796
- const targetEl = e.target;
4797
- const el = makeElementsArray(swiper.pagination.el);
4798
- if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) {
4799
- if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;
4800
- const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass);
4801
- if (isHidden === true) {
4802
- emit('paginationShow');
4602
+ requestAnimationFrame(() => {
4603
+ if (preventFocusHandler) return;
4604
+ if (swiper.params.loop) {
4605
+ swiper.slideToLoop(parseInt(slideEl.getAttribute('data-swiper-slide-index')), 0);
4803
4606
  } else {
4804
- emit('paginationHide');
4607
+ swiper.slideTo(swiper.slides.indexOf(slideEl), 0);
4805
4608
  }
4806
- el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass));
4609
+ preventFocusHandler = false;
4610
+ });
4611
+ };
4612
+ const initSlides = () => {
4613
+ const params = swiper.params.a11y;
4614
+ if (params.itemRoleDescriptionMessage) {
4615
+ addElRoleDescription(swiper.slides, params.itemRoleDescriptionMessage);
4616
+ }
4617
+ if (params.slideRole) {
4618
+ addElRole(swiper.slides, params.slideRole);
4619
+ }
4620
+ const slidesLength = swiper.slides.length;
4621
+ if (params.slideLabelMessage) {
4622
+ swiper.slides.forEach((slideEl, index) => {
4623
+ const slideIndex = swiper.params.loop ? parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10) : index;
4624
+ const ariaLabelMessage = params.slideLabelMessage.replace(/\{\{index\}\}/, slideIndex + 1).replace(/\{\{slidesLength\}\}/, slidesLength);
4625
+ addElLabel(slideEl, ariaLabelMessage);
4626
+ });
4807
4627
  }
4808
- });
4809
- const enable = () => {
4810
- swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass);
4628
+ };
4629
+ const init = () => {
4630
+ const params = swiper.params.a11y;
4631
+ swiper.el.append(liveRegion);
4632
+
4633
+ // Container
4634
+ const containerEl = swiper.el;
4635
+ if (params.containerRoleDescriptionMessage) {
4636
+ addElRoleDescription(containerEl, params.containerRoleDescriptionMessage);
4637
+ }
4638
+ if (params.containerMessage) {
4639
+ addElLabel(containerEl, params.containerMessage);
4640
+ }
4641
+ if (params.containerRole) {
4642
+ addElRole(containerEl, params.containerRole);
4643
+ }
4644
+
4645
+ // Wrapper
4646
+ const wrapperEl = swiper.wrapperEl;
4647
+ const wrapperId = params.id || wrapperEl.getAttribute('id') || `swiper-wrapper-${getRandomNumber(16)}`;
4648
+ const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';
4649
+ addElId(wrapperEl, wrapperId);
4650
+ addElLive(wrapperEl, live);
4651
+
4652
+ // Slide
4653
+ initSlides();
4654
+
4655
+ // Navigation
4811
4656
  let {
4812
- el
4813
- } = swiper.pagination;
4814
- if (el) {
4815
- el = makeElementsArray(el);
4816
- el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass));
4657
+ nextEl,
4658
+ prevEl
4659
+ } = swiper.navigation ? swiper.navigation : {};
4660
+ nextEl = makeElementsArray(nextEl);
4661
+ prevEl = makeElementsArray(prevEl);
4662
+ if (nextEl) {
4663
+ nextEl.forEach(el => initNavEl(el, wrapperId, params.nextSlideMessage));
4664
+ }
4665
+ if (prevEl) {
4666
+ prevEl.forEach(el => initNavEl(el, wrapperId, params.prevSlideMessage));
4667
+ }
4668
+
4669
+ // Pagination
4670
+ if (hasClickablePagination()) {
4671
+ const paginationEl = makeElementsArray(swiper.pagination.el);
4672
+ paginationEl.forEach(el => {
4673
+ el.addEventListener('keydown', onEnterOrSpaceKey);
4674
+ });
4817
4675
  }
4818
- init();
4819
- render();
4820
- update();
4676
+
4677
+ // Tab focus
4678
+ const document = getDocument();
4679
+ document.addEventListener('visibilitychange', onVisibilityChange);
4680
+ swiper.el.addEventListener('focus', handleFocus, true);
4681
+ swiper.el.addEventListener('focus', handleFocus, true);
4682
+ swiper.el.addEventListener('pointerdown', handlePointerDown, true);
4683
+ swiper.el.addEventListener('pointerup', handlePointerUp, true);
4821
4684
  };
4822
- const disable = () => {
4823
- swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass);
4685
+ function destroy() {
4686
+ if (liveRegion) liveRegion.remove();
4824
4687
  let {
4825
- el
4826
- } = swiper.pagination;
4827
- if (el) {
4828
- el = makeElementsArray(el);
4829
- el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass));
4688
+ nextEl,
4689
+ prevEl
4690
+ } = swiper.navigation ? swiper.navigation : {};
4691
+ nextEl = makeElementsArray(nextEl);
4692
+ prevEl = makeElementsArray(prevEl);
4693
+ if (nextEl) {
4694
+ nextEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));
4695
+ }
4696
+ if (prevEl) {
4697
+ prevEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));
4698
+ }
4699
+
4700
+ // Pagination
4701
+ if (hasClickablePagination()) {
4702
+ const paginationEl = makeElementsArray(swiper.pagination.el);
4703
+ paginationEl.forEach(el => {
4704
+ el.removeEventListener('keydown', onEnterOrSpaceKey);
4705
+ });
4830
4706
  }
4707
+ const document = getDocument();
4708
+ document.removeEventListener('visibilitychange', onVisibilityChange);
4709
+ // Tab focus
4710
+ if (swiper.el && typeof swiper.el !== 'string') {
4711
+ swiper.el.removeEventListener('focus', handleFocus, true);
4712
+ swiper.el.removeEventListener('pointerdown', handlePointerDown, true);
4713
+ swiper.el.removeEventListener('pointerup', handlePointerUp, true);
4714
+ }
4715
+ }
4716
+ on('beforeInit', () => {
4717
+ liveRegion = createElement('span', swiper.params.a11y.notificationClass);
4718
+ liveRegion.setAttribute('aria-live', 'assertive');
4719
+ liveRegion.setAttribute('aria-atomic', 'true');
4720
+ });
4721
+ on('afterInit', () => {
4722
+ if (!swiper.params.a11y.enabled) return;
4723
+ init();
4724
+ });
4725
+ on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', () => {
4726
+ if (!swiper.params.a11y.enabled) return;
4727
+ initSlides();
4728
+ });
4729
+ on('fromEdge toEdge afterInit lock unlock', () => {
4730
+ if (!swiper.params.a11y.enabled) return;
4731
+ updateNavigation();
4732
+ });
4733
+ on('paginationUpdate', () => {
4734
+ if (!swiper.params.a11y.enabled) return;
4735
+ updatePagination();
4736
+ });
4737
+ on('destroy', () => {
4738
+ if (!swiper.params.a11y.enabled) return;
4831
4739
  destroy();
4832
- };
4833
- Object.assign(swiper.pagination, {
4834
- enable,
4835
- disable,
4836
- render,
4837
- update,
4838
- init,
4839
- destroy
4840
4740
  });
4841
4741
  }
4842
4742
 
4843
- exports.Pagination = Pagination;
4743
+ exports.A11y = A11y;
4844
4744
  exports.Swiper = Swiper;
4845
4745
  exports.classesToSelector = classesToSelector;
4846
4746
  exports.classesToTokens = classesToTokens;
4847
4747
  exports.createElement = createElement;
4848
- exports.createElementIfNotDefined = createElementIfNotDefined;
4748
+ exports.elementChildren = elementChildren;
4849
4749
  exports.elementIndex = elementIndex;
4850
4750
  exports.elementOffset = elementOffset;
4751
+ exports.elementOuterSize = elementOuterSize;
4752
+ exports.elementParents = elementParents;
4851
4753
  exports.elementTransitionEnd = elementTransitionEnd;
4852
4754
  exports.getDocument = getDocument;
4853
4755
  exports.getSlideTransformEl = getSlideTransformEl;
4854
4756
  exports.makeElementsArray = makeElementsArray;
4855
4757
  exports.nextTick = nextTick;
4856
4758
 
4857
- //# sourceMappingURL=pagination-409ff3a4.js.map
4759
+ //# sourceMappingURL=a11y-3175522b.js.map