@brytdesigns/web-component-keen-slider 1.0.8 → 1.0.10

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.
@@ -88,8 +88,10 @@ class KeenSlider extends _KeenSlider {
88
88
  if (!this.options?.slides) return;
89
89
  if (typeof this.options.slides === "number" || typeof this.options.slides === "function")
90
90
  return;
91
- if ("perScroll" in this.options.slides === false) return;
92
- const amount = this.options?.slides?.perScroll || 1;
91
+ let amount = 1;
92
+ if ("perScroll" in this.options.slides === true) {
93
+ amount = this.options?.slides?.perScroll || 1;
94
+ }
93
95
  if (!this.options.loop) {
94
96
  return this.moveToIdx(
95
97
  constrain(
@@ -105,8 +107,10 @@ class KeenSlider extends _KeenSlider {
105
107
  if (!this.options?.slides) return;
106
108
  if (typeof this.options.slides === "number" || typeof this.options.slides === "function")
107
109
  return;
108
- if ("perScroll" in this.options.slides === false) return;
109
- const amount = this.options?.slides?.perScroll || 1;
110
+ let amount = 1;
111
+ if ("perScroll" in this.options.slides === true) {
112
+ amount = this.options?.slides?.perScroll || 1;
113
+ }
110
114
  if (!this.options.loop) {
111
115
  this.moveToIdx(
112
116
  constrain(
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/KeenSlider.ts"],"names":["slider"],"mappings":"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","file":"KeenSlider.js","sourcesContent":["import type { ICustomElement } from \"component-register\";\n\nimport _KeenSlider, {\n type KeenSliderOptions as _KeenSliderOptions,\n type KeenSliderPlugin as _KeenSliderPlugin,\n type KeenSliderInstance as _KeenSliderInstance,\n type KeenSliderHooks as _KeenSliderHooks,\n} from \"keen-slider\";\n\nimport { constrain } from \"./utils\";\n\nexport type KeenSliderHooks = _KeenSliderHooks;\n\nexport type KeenSliderInstance<\n O = {},\n P = {},\n H extends _KeenSliderHooks = _KeenSliderHooks,\n> = _KeenSliderInstance<O, P, H>;\n\ntype ExtendedSlidesOption = NonNullable<\n _KeenSliderInstance[\"options\"][\"slides\"]\n> & {\n perScroll?: number;\n};\n\ntype ExtendedKeenSliderOptions = Omit<\n _KeenSliderInstance[\"options\"],\n \"slides\"\n> & {\n slides?: ExtendedSlidesOption;\n};\n\nexport type KeenSliderOptions<\n O = {},\n P = {},\n H extends _KeenSliderHooks = _KeenSliderHooks,\n> = _KeenSliderOptions<O, P, H> & {\n slides: {\n perScroll?: number;\n } & _KeenSliderOptions<O, P, H>[\"slides\"];\n};\n\nexport type KeenSliderPlugin<\n O = {},\n P = {},\n H extends _KeenSliderHooks = _KeenSliderHooks,\n> = _KeenSliderPlugin<O, P, H>;\n\nfunction attachMoreDetails(prevSlide: number) {\n return function (slider: KeenSliderInstance) {\n if (slider.track.details.rel != slider.animator.targetIdx) return;\n\n (slider as KeenSlider).direction =\n slider.track.details.rel > prevSlide ? \"forward\" : \"backward\";\n\n prevSlide = slider.track.details.rel;\n };\n}\n\nconst attachAriaAttributes: KeenSliderPlugin = (slider) => {\n const maxIdx =\n slider?.track?.details?.maxIdx === Infinity\n ? slider.track.details.length\n : slider?.track?.details?.maxIdx || 0;\n slider.container.setAttribute(\"role\", \"listbox\");\n slider.container.setAttribute(\n \"aria-orientation\",\n slider.options?.vertical ? \"vertical\" : \"horizontal\",\n );\n slider.container.setAttribute(\"aria-multiselectable\", \"false\");\n slider.container.setAttribute(\"aria-label\", \"Slider\");\n slider.container.setAttribute(\"tabindex\", \"0\");\n slider.container.setAttribute(\"aria-live\", \"polite\");\n slider.container.setAttribute(\"aria-atomic\", \"true\");\n slider.container.setAttribute(\"aria-live\", \"polite\");\n slider.container.setAttribute(\"aria-busy\", \"false\");\n slider.container.setAttribute(\"aria-valuemin\", \"0\");\n slider.container.setAttribute(\"aria-valuemax\", `${maxIdx}`);\n slider.container.setAttribute(\n \"aria-valuenow\",\n `${slider?.track?.details?.rel || 0}`,\n );\n\n function getMaxRel(rel: number, perView = 1) {\n return Math.floor(rel + perView - 1);\n }\n\n function slideIsActive(idx: number) {\n const perView = ((slider.options?.slides as any)?.perView as number) || 1,\n rel = slider.track.details.rel,\n maxRel = getMaxRel(rel, perView);\n\n return rel <= idx && idx <= maxRel;\n }\n\n async function updateTabIndexes(slide: HTMLElement, tabindex: string) {\n const focusableElements = Array.from(\n slide.querySelectorAll(\n \"input, a, button:not(:disabled), textarea, select, textarea, [tabindex]\",\n ),\n );\n focusableElements.forEach((element) => {\n element.setAttribute(\"tabindex\", tabindex);\n });\n }\n\n function updateAriaActiveSlide(slide: HTMLElement) {\n slide.setAttribute(\"aria-selected\", \"true\");\n slide.setAttribute(\"aria-hidden\", \"false\");\n slide.setAttribute(\"tabindex\", \"0\");\n updateTabIndexes(slide, \"0\");\n }\n\n function updateAriaInActiveSlide(slide: HTMLElement) {\n slide.setAttribute(\"aria-selected\", \"false\");\n slide.setAttribute(\"aria-hidden\", \"true\");\n slide.setAttribute(\"tabindex\", \"-1\");\n updateTabIndexes(slide, \"-1\");\n }\n\n function updateSlideAriaAttributes(slider: _KeenSliderInstance) {\n if (slider.options?.disabled) {\n slider.slides.forEach((slide, i) => {\n slide.setAttribute(\"role\", \"option\");\n updateAriaActiveSlide(slide);\n });\n return;\n }\n\n slider.slides.forEach((slide, i) => {\n slide.setAttribute(\"role\", \"option\");\n if (slideIsActive(i)) updateAriaActiveSlide(slide);\n else updateAriaInActiveSlide(slide);\n });\n }\n\n slider.on(\"slideChanged\", updateSlideAriaAttributes);\n slider.on(\"created\", updateSlideAriaAttributes);\n slider.on(\"optionsChanged\", updateSlideAriaAttributes);\n slider.on(\"updated\", updateSlideAriaAttributes);\n};\n\nexport default class KeenSlider extends _KeenSlider {\n direction: \"forward\" | \"backward\" | null = null;\n constructor(\n element: ICustomElement & HTMLElement,\n config: KeenSliderOptions,\n plugins: _KeenSliderPlugin[] = [],\n ) {\n super(element, config, plugins);\n let prevSlide = 0;\n\n this.direction = null;\n this.on(\"slideChanged\", attachMoreDetails(prevSlide) as any);\n\n attachAriaAttributes(this);\n\n this.next = function () {\n if (!this.options?.slides) return;\n if (\n typeof this.options.slides === \"number\" ||\n typeof this.options.slides === \"function\"\n )\n return;\n if (\"perScroll\" in this.options.slides === false) return;\n const amount = (this.options?.slides?.perScroll as number) || 1;\n if (!this.options.loop) {\n return this.moveToIdx(\n constrain(\n this.track.details.rel + amount,\n 0,\n this.track.details.maxIdx,\n ),\n );\n }\n return this.moveToIdx(constrain(this.track.details.abs + amount), true);\n };\n\n this.prev = function () {\n if (!this.options?.slides) return;\n if (\n typeof this.options.slides === \"number\" ||\n typeof this.options.slides === \"function\"\n )\n return;\n if (\"perScroll\" in this.options.slides === false) return;\n const amount = (this.options?.slides?.perScroll as number) || 1;\n if (!this.options.loop) {\n this.moveToIdx(\n constrain(\n this.track.details.rel - amount,\n 0,\n this.track.details.maxIdx,\n ),\n );\n }\n return this.moveToIdx(constrain(this.track.details.abs - amount), true);\n };\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/KeenSlider.ts"],"names":["slider"],"mappings":"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","file":"KeenSlider.js","sourcesContent":["import type { ICustomElement } from \"component-register\";\n\nimport _KeenSlider, {\n type KeenSliderOptions as _KeenSliderOptions,\n type KeenSliderPlugin as _KeenSliderPlugin,\n type KeenSliderInstance as _KeenSliderInstance,\n type KeenSliderHooks as _KeenSliderHooks,\n} from \"keen-slider\";\n\nimport { constrain } from \"./utils\";\n\nexport type KeenSliderHooks = _KeenSliderHooks;\n\nexport type KeenSliderInstance<\n O = {},\n P = {},\n H extends _KeenSliderHooks = _KeenSliderHooks,\n> = _KeenSliderInstance<O, P, H>;\n\ntype ExtendedSlidesOption = NonNullable<\n _KeenSliderInstance[\"options\"][\"slides\"]\n> & {\n perScroll?: number;\n};\n\ntype ExtendedKeenSliderOptions = Omit<\n _KeenSliderInstance[\"options\"],\n \"slides\"\n> & {\n slides?: ExtendedSlidesOption;\n};\n\nexport type KeenSliderOptions<\n O = {},\n P = {},\n H extends _KeenSliderHooks = _KeenSliderHooks,\n> = _KeenSliderOptions<O, P, H> & {\n slides: {\n perScroll?: number;\n } & _KeenSliderOptions<O, P, H>[\"slides\"];\n};\n\nexport type KeenSliderPlugin<\n O = {},\n P = {},\n H extends _KeenSliderHooks = _KeenSliderHooks,\n> = _KeenSliderPlugin<O, P, H>;\n\nfunction attachMoreDetails(prevSlide: number) {\n return function(slider: KeenSliderInstance) {\n if (slider.track.details.rel != slider.animator.targetIdx) return;\n\n (slider as KeenSlider).direction =\n slider.track.details.rel > prevSlide ? \"forward\" : \"backward\";\n\n prevSlide = slider.track.details.rel;\n };\n}\n\nconst attachAriaAttributes: KeenSliderPlugin = (slider) => {\n const maxIdx =\n slider?.track?.details?.maxIdx === Infinity\n ? slider.track.details.length\n : slider?.track?.details?.maxIdx || 0;\n slider.container.setAttribute(\"role\", \"listbox\");\n slider.container.setAttribute(\n \"aria-orientation\",\n slider.options?.vertical ? \"vertical\" : \"horizontal\",\n );\n slider.container.setAttribute(\"aria-multiselectable\", \"false\");\n slider.container.setAttribute(\"aria-label\", \"Slider\");\n slider.container.setAttribute(\"tabindex\", \"0\");\n slider.container.setAttribute(\"aria-live\", \"polite\");\n slider.container.setAttribute(\"aria-atomic\", \"true\");\n slider.container.setAttribute(\"aria-live\", \"polite\");\n slider.container.setAttribute(\"aria-busy\", \"false\");\n slider.container.setAttribute(\"aria-valuemin\", \"0\");\n slider.container.setAttribute(\"aria-valuemax\", `${maxIdx}`);\n slider.container.setAttribute(\n \"aria-valuenow\",\n `${slider?.track?.details?.rel || 0}`,\n );\n\n function getMaxRel(rel: number, perView = 1) {\n return Math.floor(rel + perView - 1);\n }\n\n function slideIsActive(idx: number) {\n const perView = ((slider.options?.slides as any)?.perView as number) || 1,\n rel = slider.track.details.rel,\n maxRel = getMaxRel(rel, perView);\n\n return rel <= idx && idx <= maxRel;\n }\n\n async function updateTabIndexes(slide: HTMLElement, tabindex: string) {\n const focusableElements = Array.from(\n slide.querySelectorAll(\n \"input, a, button:not(:disabled), textarea, select, textarea, [tabindex]\",\n ),\n );\n focusableElements.forEach((element) => {\n element.setAttribute(\"tabindex\", tabindex);\n });\n }\n\n function updateAriaActiveSlide(slide: HTMLElement) {\n slide.setAttribute(\"aria-selected\", \"true\");\n slide.setAttribute(\"aria-hidden\", \"false\");\n slide.setAttribute(\"tabindex\", \"0\");\n updateTabIndexes(slide, \"0\");\n }\n\n function updateAriaInActiveSlide(slide: HTMLElement) {\n slide.setAttribute(\"aria-selected\", \"false\");\n slide.setAttribute(\"aria-hidden\", \"true\");\n slide.setAttribute(\"tabindex\", \"-1\");\n updateTabIndexes(slide, \"-1\");\n }\n\n function updateSlideAriaAttributes(slider: _KeenSliderInstance) {\n if (slider.options?.disabled) {\n slider.slides.forEach((slide, i) => {\n slide.setAttribute(\"role\", \"option\");\n updateAriaActiveSlide(slide);\n });\n return;\n }\n\n slider.slides.forEach((slide, i) => {\n slide.setAttribute(\"role\", \"option\");\n if (slideIsActive(i)) updateAriaActiveSlide(slide);\n else updateAriaInActiveSlide(slide);\n });\n }\n\n slider.on(\"slideChanged\", updateSlideAriaAttributes);\n slider.on(\"created\", updateSlideAriaAttributes);\n slider.on(\"optionsChanged\", updateSlideAriaAttributes);\n slider.on(\"updated\", updateSlideAriaAttributes);\n};\n\nexport default class KeenSlider extends _KeenSlider {\n direction: \"forward\" | \"backward\" | null = null;\n constructor(\n element: ICustomElement & HTMLElement,\n config: KeenSliderOptions,\n plugins: _KeenSliderPlugin[] = [],\n ) {\n super(element, config, plugins);\n let prevSlide = 0;\n\n this.direction = null;\n this.on(\"slideChanged\", attachMoreDetails(prevSlide) as any);\n\n attachAriaAttributes(this);\n\n this.next = function() {\n if (!this.options?.slides) return;\n if (\n typeof this.options.slides === \"number\" ||\n typeof this.options.slides === \"function\"\n )\n return;\n let amount: number = 1;\n if (\"perScroll\" in this.options.slides === true) {\n amount = (this.options?.slides?.perScroll as number) || 1;\n }\n if (!this.options.loop) {\n return this.moveToIdx(\n constrain(\n this.track.details.rel + amount,\n 0,\n this.track.details.maxIdx,\n ),\n );\n }\n return this.moveToIdx(constrain(this.track.details.abs + amount), true);\n };\n\n this.prev = function() {\n if (!this.options?.slides) return;\n if (\n typeof this.options.slides === \"number\" ||\n typeof this.options.slides === \"function\"\n )\n return;\n let amount: number = 1;\n if (\"perScroll\" in this.options.slides === true) {\n amount = (this.options?.slides?.perScroll as number) || 1;\n }\n if (!this.options.loop) {\n this.moveToIdx(\n constrain(\n this.track.details.rel - amount,\n 0,\n this.track.details.maxIdx,\n ),\n );\n }\n return this.moveToIdx(constrain(this.track.details.abs - amount), true);\n };\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brytdesigns/web-component-keen-slider",
3
- "version": "1.0.8",
3
+ "version": "1.0.10",
4
4
  "description": "Keen slider web component",
5
5
  "main": "./dist/main/index.js",
6
6
  "module": "./dist/main/index.js",
@@ -22,8 +22,8 @@
22
22
  "component-register": "^0.8.7",
23
23
  "keen-slider": "^6.8.6",
24
24
  "solid-element": "^1.9.1",
25
- "solid-js": "^1.9.6",
26
- "@brytdesigns/web-component-utils": "0.1.10"
25
+ "solid-js": "^1.9.7",
26
+ "@brytdesigns/web-component-utils": "0.1.12"
27
27
  },
28
28
  "devDependencies": {
29
29
  "dts-bundle-generator": "^9.5.1",