@nanoporetech-digital/components 5.5.0 → 5.5.2
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 +23 -0
- package/dist/cjs/nano-slides.cjs.entry.js +19 -15
- package/dist/cjs/nano-slides.cjs.entry.js.map +1 -1
- package/dist/cjs/{nano-table-6abb323d.js → nano-table-265e86b3.js} +2 -2
- package/dist/cjs/{nano-table-6abb323d.js.map → nano-table-265e86b3.js.map} +1 -1
- package/dist/cjs/nano-table.cjs.entry.js +1 -1
- package/dist/cjs/{table.worker-20dc920c.js → table.worker-4ba19693.js} +2 -2
- package/dist/cjs/table.worker-4ba19693.js.map +1 -0
- package/dist/collection/components/slides/lib/js/prev-next-button.js +5 -0
- package/dist/collection/components/slides/slides.js +14 -15
- package/dist/collection/components/slides/slides.js.map +1 -1
- package/dist/components/nano-slides.js +19 -15
- package/dist/components/nano-slides.js.map +1 -1
- package/dist/esm/nano-slides.entry.js +19 -15
- package/dist/esm/nano-slides.entry.js.map +1 -1
- package/dist/esm/{nano-table-f234ca94.js → nano-table-2ac76509.js} +2 -2
- package/dist/esm/{nano-table-f234ca94.js.map → nano-table-2ac76509.js.map} +1 -1
- package/dist/esm/nano-table.entry.js +1 -1
- package/dist/esm/{table.worker-cb4d4ab8.js → table.worker-28470fb1.js} +2 -2
- package/dist/esm/table.worker-28470fb1.js.map +1 -0
- package/dist/nano-components/nano-components.esm.js +1 -1
- package/dist/nano-components/p-37cb3003.js +5 -0
- package/dist/nano-components/p-4e9125ec.entry.js +23 -0
- package/dist/nano-components/p-4e9125ec.entry.js.map +1 -0
- package/dist/nano-components/{p-47b7a81d.entry.js → p-b7f2b048.entry.js} +2 -2
- package/dist/nano-components/{p-c6ee778e.js → p-e2e07791.js} +2 -2
- package/dist/types/components/slides/slides.d.ts +1 -3
- package/docs-json.json +1 -1
- package/hydrate/index.js +19 -15
- package/package.json +2 -2
- package/dist/cjs/table.worker-20dc920c.js.map +0 -1
- package/dist/esm/table.worker-cb4d4ab8.js.map +0 -1
- package/dist/nano-components/p-0b03cb52.entry.js +0 -23
- package/dist/nano-components/p-0b03cb52.entry.js.map +0 -1
- package/dist/nano-components/p-5c493505.js +0 -5
- /package/dist/nano-components/{p-47b7a81d.entry.js.map → p-37cb3003.js.map} +0 -0
- /package/dist/nano-components/{p-5c493505.js.map → p-b7f2b048.entry.js.map} +0 -0
- /package/dist/nano-components/{p-c6ee778e.js.map → p-e2e07791.js.map} +0 -0
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Object.defineProperty(exports, '__esModule', { value: true });
|
7
7
|
|
8
|
-
const nanoTable_entry = require('./nano-table-
|
8
|
+
const nanoTable_entry = require('./nano-table-265e86b3.js');
|
9
9
|
require('./index-1d3ebe1a.js');
|
10
10
|
require('./math-a8123703.js');
|
11
11
|
require('./throttle-dfa64b9e.js');
|
@@ -3,7 +3,7 @@
|
|
3
3
|
*/
|
4
4
|
'use strict';
|
5
5
|
|
6
|
-
const nanoTable_entry = require('./nano-table-
|
6
|
+
const nanoTable_entry = require('./nano-table-265e86b3.js');
|
7
7
|
require('./index-1d3ebe1a.js');
|
8
8
|
require('./math-a8123703.js');
|
9
9
|
require('./throttle-dfa64b9e.js');
|
@@ -22,4 +22,4 @@ exports.workerMsgId = workerMsgId;
|
|
22
22
|
exports.workerName = workerName;
|
23
23
|
exports.workerPath = workerPath;
|
24
24
|
|
25
|
-
//# sourceMappingURL=table.worker-
|
25
|
+
//# sourceMappingURL=table.worker-4ba19693.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"file":"table.worker-4ba19693.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3}
|
@@ -44,6 +44,11 @@ PrevNextButton.prototype._create = function () {
|
|
44
44
|
const slot = document.createElement('slot');
|
45
45
|
slot.name = this.isPrevious ? 'previous-icon' : 'next-icon';
|
46
46
|
button.appendChild(slot);
|
47
|
+
slot.addEventListener('slotchange', () => {
|
48
|
+
slot.assignedElements({ flatten: true }).forEach((ele) => {
|
49
|
+
ele.removeAttribute('hidden');
|
50
|
+
});
|
51
|
+
});
|
47
52
|
|
48
53
|
// create arrow
|
49
54
|
var svg = this.createSVG();
|
@@ -36,9 +36,8 @@ export class Slides {
|
|
36
36
|
});
|
37
37
|
this.parallax = async () => {
|
38
38
|
const flkty = await this.flickity;
|
39
|
-
flkty.cells
|
40
|
-
|
41
|
-
const shiftedPos = cell.x + flkty.slideableWidth * cell.shift;
|
39
|
+
const cells = flkty.cells;
|
40
|
+
cells.forEach((cell, i) => {
|
42
41
|
const ele = this.childrenEles[i];
|
43
42
|
let flkX = flkty.x;
|
44
43
|
if (flkty.options.wrapAround && flkty.cells.length > 1) {
|
@@ -47,13 +46,12 @@ export class Slides {
|
|
47
46
|
}
|
48
47
|
let x = ((cell.target + flkX) * -1) / 3;
|
49
48
|
if (cell.shift < 0) {
|
50
|
-
x =
|
49
|
+
x = ((cell.target - flkty.slideableWidth + flkX) * -1) / 3;
|
51
50
|
}
|
52
51
|
else if (cell.shift > 0) {
|
53
|
-
x = ((cell.target + (flkX +
|
52
|
+
x = ((cell.target + (flkX + flkty.slideableWidth)) * -1) / 3;
|
54
53
|
}
|
55
54
|
ele.style.transform = 'translate3d(' + x + 'px, 0, 0)';
|
56
|
-
// 'translateX(' + x + 'px)';
|
57
55
|
});
|
58
56
|
};
|
59
57
|
this.handleFullscreen = (isFullScreen) => {
|
@@ -127,7 +125,7 @@ export class Slides {
|
|
127
125
|
this.options = { fade: true, percentPosition: true };
|
128
126
|
break;
|
129
127
|
case 'parallax':
|
130
|
-
this.options = { fade: false, percentPosition:
|
128
|
+
this.options = { fade: false, percentPosition: true };
|
131
129
|
flkty.on('scroll', this.parallax);
|
132
130
|
break;
|
133
131
|
default:
|
@@ -236,9 +234,7 @@ export class Slides {
|
|
236
234
|
this.options = { autoPlay: time };
|
237
235
|
setTimeout(() => flickity.playPlayer());
|
238
236
|
}
|
239
|
-
/**
|
240
|
-
* Stop auto play.
|
241
|
-
*/
|
237
|
+
/** Stop auto play. */
|
242
238
|
async stopAutoplay() {
|
243
239
|
const flickity = await this.getflickity();
|
244
240
|
flickity.stopPlayer();
|
@@ -296,14 +292,16 @@ export class Slides {
|
|
296
292
|
const finalOptions = this.normalizeOptions();
|
297
293
|
// init flickity core
|
298
294
|
await waitForSlides(this.host);
|
299
|
-
this.flickityEl.style.height =
|
300
|
-
this.flickityEl.getBoundingClientRect().height + 'px';
|
301
|
-
this.slidesReady = true;
|
302
295
|
this.flickityEl =
|
303
296
|
this.flickityEl || this._getRoot().querySelector('.flickity-container');
|
304
|
-
if (this.flickityEl
|
305
|
-
|
297
|
+
if (!this.flickityEl)
|
298
|
+
return;
|
299
|
+
this.slidesReady = true;
|
300
|
+
if (this.flickityEl.classList.contains('flickity-enabled')) {
|
306
301
|
this.destroyflickity();
|
302
|
+
}
|
303
|
+
this.flickityEl.style.height =
|
304
|
+
this.flickityEl.getBoundingClientRect().height + 'px';
|
307
305
|
setTimeout(() => {
|
308
306
|
this.flickityEl.style.height = '';
|
309
307
|
const flick = new flickity(this.flickityEl, finalOptions);
|
@@ -1179,6 +1177,7 @@ const waitForSlides = (host) => {
|
|
1179
1177
|
if (!toLoadSlides.length) {
|
1180
1178
|
resolve(allSlides);
|
1181
1179
|
host.removeEventListener('nanoSlideReady', slideResolver);
|
1180
|
+
host.removeEventListener('nano-slide-ready', slideResolver);
|
1182
1181
|
}
|
1183
1182
|
};
|
1184
1183
|
host.addEventListener('nanoSlideReady', slideResolver);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"slides.js","sourceRoot":"","sources":["../../../src/components/slides/slides.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n Prop,\n h,\n Host,\n Watch,\n Method,\n State,\n Build,\n} from '@stencil/core';\nimport { flickity } from './lib/js';\nimport type {\n FlickityOptions,\n FlickityEvents,\n Flickity,\n DragEvent,\n SlideAnimation,\n FlickityCell,\n} from '../../interface';\n\nconst modulo = (num, div) => {\n return ((num % div) + div) % div;\n};\n\n/**\n * The Slides component is a multi-section container. Each section can be swiped or dragged between.\n * It contains any number of Slide components.\n *\n * Uses [Flickity](https://flickity.metafizzy.co/) under the hood.\n *\n * @part base - Wrapper around slides and additional ui elements.\n * @part slide-container - Wraps all slide elements.\n * @part slide-viewport - The visible, scrollable area around slide elements.\n * @part navigation-button - Next / previous navigation buttons.\n * @part navigation-button--next - the next navigation button.\n * @part navigation-button--previous - The previous navigation button.\n * @part navigation-icon - The chevron / arrow icon within a navigation button.\n * @part pagination - Wraps pagination indicators.\n * @part pagination-item - A pagination indicator.\n * @part pagination-item--active - The current, active pagination indicator.\n *\n * @slot - default slot of nano-slide components.\n * @slot ui - An absolutely positioned element that will be placed over the slider. Any custom ui can be housed here.\n * @slot next-icon - Optional next icon to use instead of the default.\n * @slot previous-icon - Optional previous icon to use instead of the default.\n */\n@Component({\n tag: 'nano-slides',\n styleUrl: 'slides.scss',\n shadow: true,\n})\nexport class Slides implements ComponentInterface {\n private flickityEl: HTMLElement;\n private flickityReady = false;\n private mutationO?: MutationObserver;\n private resizeO?: ResizeObserver;\n private readyflickity!: (slider: Flickity) => void;\n private flickity: Promise<Flickity> = new Promise((resolve) => {\n this.readyflickity = resolve;\n });\n private syncflickity?: Flickity;\n private childrenEles: NodeList;\n\n @State() iCurrentSlide: number;\n @State() slidesReady: boolean;\n @State() didInit = false;\n\n @Element() host!: HTMLNanoSlidesElement;\n\n /**\n * Options to pass to the flickity instance.\n * See https://flickity.metafizzy.co/options.html for valid options\n */\n @Prop({ mutable: true }) options: FlickityOptions = {};\n\n @Watch('options')\n async optionsChanged() {\n if (this.flickityReady) {\n const flickity = await this.getflickity();\n Object.assign(flickity.options, this.options);\n await this.update();\n }\n }\n\n /** If `true`, show the next / prev buttons. */\n @Prop() navbtns = false;\n\n @Watch('navbtns')\n async navbtnsChanged() {\n Array.from(\n this._getRoot().querySelectorAll('.flickity-prev-next-button')\n ).forEach((btn) => {\n (btn as HTMLElement).hidden = !this.navbtns;\n });\n }\n\n /** If `true`, show the pagination. */\n @Prop() pager = false;\n\n @Watch('pager')\n async pagerChanged() {\n const dots = this._getRoot().querySelector(\n '.flickity-page-dots'\n ) as HTMLElement;\n dots.hidden = !this.pager;\n }\n\n /** If `true`, show a fullscreen button. */\n @Prop() fullscreenbtn = false;\n\n @Watch('fullscreenbtn')\n async fullscreenBtnChanged() {\n const btn = this._getRoot().querySelector(\n '.flickity-fullscreen-button'\n ) as HTMLElement;\n btn.hidden = !this.fullscreenbtn;\n }\n\n /** If `true`, make the slider fullscreen. */\n @Prop({ reflect: true, mutable: true }) fullscreen = false;\n\n @Watch('fullscreen')\n async fullscreenChanged(_?, oldFs?: boolean) {\n const flickity = await this.getflickity();\n if (this.fullscreen) flickity.viewFullscreen();\n else if (typeof oldFs !== 'undefined') flickity.exitFullscreen();\n }\n\n /** Animation presets. */\n @Prop({ reflect: true }) animation: SlideAnimation = 'scroll';\n\n @Watch('animation')\n async animationChange(_?, oldAnim?: SlideAnimation) {\n const [flkty, slides] = await Promise.all([\n this.getflickity(),\n waitForSlides(this.host),\n ]);\n\n // clear old stuff\n slides.forEach((slide) => {\n slide.style['left'] = undefined;\n });\n\n if (oldAnim === 'parallax') {\n flkty.off('scroll', this.parallax);\n slides.forEach((_, i) => {\n if (this.childrenEles && this.childrenEles[i])\n (this.childrenEles[i] as HTMLElement).style['transform'] = undefined;\n });\n this.update();\n }\n\n // setup new stuff\n switch (this.animation) {\n case 'fade':\n this.options = { fade: true, percentPosition: true };\n break;\n case 'parallax':\n this.options = { fade: false, percentPosition: false };\n flkty.on('scroll', this.parallax);\n break;\n default:\n this.options = { fade: false, percentPosition: true };\n break;\n }\n }\n\n /** Zero-based index of the selected cell. */\n @Prop({ reflect: true, mutable: true }) currentSlide: number = 0;\n\n @Watch('currentSlide')\n currentSlideChange() {\n if (this.currentSlide !== this.iCurrentSlide)\n this.slideTo(this.currentSlide);\n }\n\n @Watch('iCurrentSlide')\n internalSlideChange() {\n this.currentSlide = this.iCurrentSlide;\n }\n\n /** time duration, in ms, to automatically advance slides */\n @Prop() autoplay: string | false | number = false;\n\n @Watch('autoplay')\n async autoPlayChange() {\n await this.stopAutoplay();\n if (this.autoplay) {\n if (typeof this.autoplay === 'string')\n this.autoplay = parseInt(this.autoplay);\n if (this.autoplay > 0) this.startAutoplay(this.autoplay as number);\n }\n }\n\n /** @internal */\n @Prop({ reflect: true, mutable: true }) ready = false;\n\n /** Emitted after component initialisation. */\n @Event() nanoSlidesDidLoad!: EventEmitter<void>;\n\n /** Emitted after flickity initialisation. */\n @Event() nanoSlidesReady!: EventEmitter<void>;\n\n /** Emitted when a slide is selected, even on the same slide. */\n @Event() nanoSlidesSelect!: EventEmitter<number>;\n\n /** Emitted when the selected slide is changed. */\n @Event() nanoSlidesChange!: EventEmitter<number>;\n\n /** Emitted when the slider moves. */\n @Event() nanoSlidesScroll!: EventEmitter<number>;\n\n /** Emitted when the slide transition has finished. */\n @Event() nanoSlidesTransitionEnd!: EventEmitter<number>;\n\n /** Emitted when the slider starts actively being moved. */\n @Event() nanoSlidesDragStart!: EventEmitter<DragEvent>;\n\n /** Emitted when the slider is being dragged. */\n @Event() nanoSlidesDragMove!: EventEmitter<DragEvent>;\n\n /** Emitted when the slider has finished being dragged. */\n @Event() nanoSlidesDragEnd!: EventEmitter<DragEvent>;\n\n /** Emitted when the user taps/clicks on the slide's container. */\n @Event() nanoSlidesTap!: EventEmitter<DragEvent>;\n\n /** Emitted when the user taps/clicks on the slide's container. */\n @Event() nanoSlidesFullscreenChange!: EventEmitter<boolean>;\n\n /**\n * Update the underlying flickity implementation. Call this if you've added or removed\n * child slides.\n */\n @Method()\n async update() {\n const [flickity] = await Promise.all([\n this.getflickity(),\n waitForSlides(this.host),\n ]);\n this.childrenEles = this.host.querySelectorAll('nano-slide > *');\n flickity.reloadCells();\n flickity.resize();\n flickity.reposition();\n }\n\n /**\n * Force flickity to update its height (when adaptiveHeight is enabled) for the duration\n * equal to 'speed' parameter.\n *\n * @param speed The transition duration (in ms).\n */\n @Method()\n async updateAutoHeight(speed?: number) {\n const vp = document.querySelector('.flickity-viewport') as HTMLElement;\n if (vp) vp.style.transition = speed + 'ms';\n }\n\n /**\n * Transition to the specified slide.\n *\n * @param index The index of the slide to transition to.\n * @param instant Immediately view the selected slide without animation.\n */\n @Method()\n async slideTo(index: number, instant?: boolean) {\n const flickity = await this.getflickity();\n flickity.select(index, instant);\n }\n\n /**\n * Transition to the next slide.\n *\n * @param instant The transition duration (in ms).\n * @param wrap If true, the first slide will be selected if at the last slide.\n */\n @Method()\n async slideNext(instant?: boolean, wrap?: boolean) {\n const flickity = await this.getflickity();\n flickity.next(wrap, instant);\n }\n\n /**\n * Transition to the previous slide.\n *\n * @param instant The transition duration (in ms).\n * @param wrap If true, the last slide will be selected if at the first slide.\n */\n @Method()\n async slidePrev(instant?: boolean, wrap?: boolean) {\n const flickity = await this.getflickity();\n flickity.previous(instant, wrap);\n }\n\n /** Get the index of the active slide. */\n @Method()\n async getActiveIndex() {\n const flickity = await this.getflickity();\n return flickity.selectedIndex;\n }\n\n /** Get the total number of slides. */\n @Method()\n async length() {\n const flickity = await this.getflickity();\n return flickity.slides.length;\n }\n\n /** Get whether or not the current slide is the last slide. */\n @Method()\n async isEnd() {\n const flickity = await this.getflickity();\n return flickity.selectedIndex === flickity.slides.length - 1;\n }\n\n /** Get whether or not the current slide is the first slide. */\n @Method()\n async isBeginning() {\n const flickity = await this.getflickity();\n return flickity.selectedIndex === 0;\n }\n\n /**\n * Start auto play.\n * @param time - optional time duration to show slides\n */\n @Method()\n async startAutoplay(time?: number) {\n const flickity = await this.getflickity();\n if (time) this.options = { autoPlay: time };\n setTimeout(() => flickity.playPlayer());\n }\n\n /**\n * Stop auto play.\n */\n @Method()\n async stopAutoplay() {\n const flickity = await this.getflickity();\n flickity.stopPlayer();\n }\n\n /**\n * Lock or unlock the ability to slide to the next slide.\n *\n * @param lock If `true`, disable swiping\n */\n @Method()\n async lockSwipes(lock: boolean) {\n const flickity = await this.getflickity();\n flickity.options.draggable = !lock;\n flickity.updateDraggable();\n }\n\n /**\n * Get the flickity instance.\n * Use this to access the full flickity API.\n * See https://flickity.metafizzy.co/ for all API options.\n */\n @Method()\n async getflickity() {\n return this.flickity;\n }\n\n /**\n * Hard destroy / create.\n * Certain flickity options, you will require the instance to be re-initialised\n */\n @Method()\n async reload() {\n this.destroyflickity();\n setTimeout(() => this.initflickity(), 20);\n }\n\n private _getRoot() {\n return this.host.shadowRoot ? this.host.shadowRoot : this.host;\n }\n\n private parallax = async () => {\n const flkty = await this.flickity;\n flkty.cells.forEach((el, i) => {\n const cell = el as unknown as FlickityCell;\n const shiftedPos = cell.x + flkty.slideableWidth * cell.shift;\n const ele = this.childrenEles[i] as HTMLElement;\n\n let flkX = flkty.x;\n\n if (flkty.options.wrapAround && flkty.cells.length > 1) {\n flkX = modulo(flkX, flkty.slideableWidth);\n flkX = flkX - flkty.slideableWidth;\n }\n\n let x = ((cell.target + flkX) * -1) / 3;\n\n if (cell.shift < 0) {\n x = x + Math.abs(shiftedPos);\n } else if (cell.shift > 0) {\n x = ((cell.target + (flkX + shiftedPos)) * -1) / 3;\n }\n ele.style.transform = 'translate3d(' + x + 'px, 0, 0)';\n // 'translateX(' + x + 'px)';\n });\n };\n\n private handleFullscreen = (isFullScreen: boolean) => {\n this.fullscreen = isFullScreen;\n this.nanoSlidesFullscreenChange.emit(isFullScreen);\n };\n\n private handleSlideSelect = (slide: number) => {\n this.iCurrentSlide = slide;\n this.nanoSlidesSelect.emit(slide);\n };\n\n private destroyflickity() {\n /**\n * We need to synchronously destroy\n * flickity otherwise it is possible\n * that it will be left in a\n * destroyed state if connectedCallback\n * is called multiple times\n */\n const flickity = this.syncflickity;\n\n if (flickity !== undefined) {\n flickity.destroy();\n this.flickity = new Promise((resolve) => {\n this.readyflickity = resolve;\n });\n this.flickityReady = false;\n this.syncflickity = undefined;\n this.ready = false;\n }\n this.didInit = false;\n }\n\n private async initflickity() {\n const finalOptions = this.normalizeOptions();\n\n // init flickity core\n await waitForSlides(this.host);\n\n this.flickityEl.style.height =\n this.flickityEl.getBoundingClientRect().height + 'px';\n this.slidesReady = true;\n\n this.flickityEl =\n this.flickityEl || this._getRoot().querySelector('.flickity-container');\n if (\n this.flickityEl &&\n this.flickityEl.classList.contains('flickity-enabled')\n )\n this.destroyflickity();\n\n setTimeout(() => {\n this.flickityEl.style.height = '';\n const flick = new flickity(this.flickityEl, finalOptions) as Flickity;\n this.flickityReady = true;\n this.syncflickity = flick;\n\n this.animationChange();\n this.navbtnsChanged();\n this.pagerChanged();\n this.fullscreenChanged();\n this.fullscreenBtnChanged();\n\n this.readyflickity(flick);\n this.ready = true;\n\n if (!window['ResizeObserver']) return;\n\n // just boots and braces to make sure it's the correct size oninit\n const ro = (this.resizeO = new ResizeObserver(() => {\n flick.resize();\n // this.resizeO.disconnect();\n }));\n ro.observe(this.host);\n }, 100);\n }\n\n private normalizeOptions(): FlickityOptions {\n // Base options, can be changed\n const flickityOptions: FlickityOptions = {\n cellSelector: 'nano-slide',\n contain: true,\n prevNextButtons: true,\n fullscreen: true,\n accessibility: true,\n imagesLoaded: true,\n pageDots: true,\n };\n\n if (this.animation === 'fade') {\n flickityOptions.fade = true;\n }\n if (this.currentSlide > 0) {\n flickityOptions.initialIndex = this.currentSlide;\n }\n if (this.autoplay) {\n if (typeof this.autoplay === 'string')\n this.autoplay = parseInt(this.autoplay);\n if (this.autoplay > 0) flickityOptions.autoPlay = this.autoplay as number;\n }\n\n // Keep the event options separate, we dont want users\n // overwriting these\n const eventOptions: FlickityEvents = {\n ready: () => {\n setTimeout(() => {\n this.nanoSlidesReady.emit();\n }, 20);\n },\n select: this.handleSlideSelect,\n change: this.nanoSlidesChange.emit,\n scroll: this.nanoSlidesScroll.emit,\n settle: this.nanoSlidesTransitionEnd.emit,\n dragStart: this.nanoSlidesDragStart.emit,\n dragMove: this.nanoSlidesDragMove.emit,\n dragEnd: this.nanoSlidesDragEnd.emit,\n staticClick: this.nanoSlidesTap.emit,\n fullscreenChange: this.handleFullscreen,\n };\n\n const customEvents =\n !!this.options && !!this.options.on ? this.options.on : {};\n // merge \"on\" event listeners, while giving our event listeners priority\n const mergedEventOptions = { on: { ...customEvents, ...eventOptions } };\n // Merge the base, user options, and events together then pass to flickity\n // @ts-ignore\n return { ...flickityOptions, ...mergedEventOptions, ...this.options };\n }\n\n componentDidLoad() {\n if (\n Build.isBrowser &&\n typeof window !== 'undefined' &&\n (window as any).MutationObserver\n ) {\n const mut = (this.mutationO = new MutationObserver(\n (e: MutationRecord[]) => {\n if (\n e[0].addedNodes[0] &&\n e[0].addedNodes[0].nodeName.toLowerCase() === 'nano-slide' &&\n this.flickityReady\n ) {\n this.update();\n }\n }\n ));\n\n mut.observe(this.host, {\n childList: true,\n subtree: true,\n });\n }\n }\n\n componentWillLoad() {\n this.nanoSlidesDidLoad.emit();\n\n if (!this.didInit) {\n this.didInit = true;\n this.initflickity();\n }\n }\n\n disconnectedCallback() {\n if (this.mutationO) {\n this.mutationO.disconnect();\n this.mutationO = undefined;\n }\n if (this.resizeO) this.resizeO.disconnect();\n this.destroyflickity();\n }\n\n render() {\n return (\n <Host>\n <div\n class={{\n slideshow: true,\n ready: this.ready,\n 'not-ready': !this.ready,\n }}\n part=\"base\"\n >\n <div\n ref={(div) => (this.flickityEl = div)}\n class={{\n 'flickity-container': true,\n 'slides-ready': this.slidesReady,\n 'slides-not-ready': !this.slidesReady,\n }}\n part=\"slide-container\"\n >\n <slot />\n </div>\n <div class=\"ui-extras\">\n <slot name=\"ui\" />\n </div>\n </div>\n </Host>\n );\n }\n}\n\nconst waitForSlides = (host: HTMLElement): Promise<HTMLNanoSlideElement[]> => {\n const allSlides = Array.from(host.querySelectorAll('nano-slide'));\n let toLoadSlides = allSlides.filter(\n (ele: HTMLNanoSlideElement) => !ele.ready\n );\n\n if (!toLoadSlides.length) return Promise.resolve(allSlides);\n\n return new Promise((resolve) => {\n const slideResolver = (ev: CustomEvent) => {\n toLoadSlides = toLoadSlides.filter((ele) => ele !== ev.target);\n if (!toLoadSlides.length) {\n resolve(allSlides);\n host.removeEventListener('nanoSlideReady', slideResolver);\n }\n };\n host.addEventListener('nanoSlideReady', slideResolver);\n // fallback for vue who can't handle camelcase event names\n host.addEventListener('nano-slide-ready', slideResolver);\n });\n};\n"]}
|
1
|
+
{"version":3,"file":"slides.js","sourceRoot":"","sources":["../../../src/components/slides/slides.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n Prop,\n h,\n Host,\n Watch,\n Method,\n State,\n Build,\n} from '@stencil/core';\nimport { flickity } from './lib/js';\nimport type {\n FlickityOptions,\n FlickityEvents,\n Flickity,\n DragEvent,\n SlideAnimation,\n FlickityCell,\n} from '../../interface';\n\nconst modulo = (num, div) => {\n return ((num % div) + div) % div;\n};\n\n/**\n * The Slides component is a multi-section container. Each section can be swiped or dragged between.\n * It contains any number of Slide components.\n *\n * Uses [Flickity](https://flickity.metafizzy.co/) under the hood.\n *\n * @part base - Wrapper around slides and additional ui elements.\n * @part slide-container - Wraps all slide elements.\n * @part slide-viewport - The visible, scrollable area around slide elements.\n * @part navigation-button - Next / previous navigation buttons.\n * @part navigation-button--next - the next navigation button.\n * @part navigation-button--previous - The previous navigation button.\n * @part navigation-icon - The chevron / arrow icon within a navigation button.\n * @part pagination - Wraps pagination indicators.\n * @part pagination-item - A pagination indicator.\n * @part pagination-item--active - The current, active pagination indicator.\n *\n * @slot - default slot of nano-slide components.\n * @slot ui - An absolutely positioned element that will be placed over the slider. Any custom ui can be housed here.\n * @slot next-icon - Optional next icon to use instead of the default.\n * @slot previous-icon - Optional previous icon to use instead of the default.\n */\n@Component({\n tag: 'nano-slides',\n styleUrl: 'slides.scss',\n shadow: true,\n})\nexport class Slides implements ComponentInterface {\n private flickityEl: HTMLElement;\n private flickityReady = false;\n private mutationO?: MutationObserver;\n private resizeO?: ResizeObserver;\n private readyflickity!: (slider: Flickity) => void;\n private flickity: Promise<Flickity> = new Promise((resolve) => {\n this.readyflickity = resolve;\n });\n private syncflickity?: Flickity;\n private childrenEles: NodeList;\n\n @State() iCurrentSlide: number;\n @State() slidesReady: boolean;\n @State() didInit = false;\n\n @Element() host!: HTMLNanoSlidesElement;\n\n /**\n * Options to pass to the flickity instance.\n * See https://flickity.metafizzy.co/options.html for valid options\n */\n @Prop({ mutable: true }) options: FlickityOptions = {};\n\n @Watch('options')\n async optionsChanged() {\n if (this.flickityReady) {\n const flickity = await this.getflickity();\n Object.assign(flickity.options, this.options);\n await this.update();\n }\n }\n\n /** If `true`, show the next / prev buttons. */\n @Prop() navbtns = false;\n\n @Watch('navbtns')\n async navbtnsChanged() {\n Array.from(\n this._getRoot().querySelectorAll('.flickity-prev-next-button')\n ).forEach((btn) => {\n (btn as HTMLElement).hidden = !this.navbtns;\n });\n }\n\n /** If `true`, show the pagination. */\n @Prop() pager = false;\n\n @Watch('pager')\n async pagerChanged() {\n const dots = this._getRoot().querySelector(\n '.flickity-page-dots'\n ) as HTMLElement;\n dots.hidden = !this.pager;\n }\n\n /** If `true`, show a fullscreen button. */\n @Prop() fullscreenbtn = false;\n\n @Watch('fullscreenbtn')\n async fullscreenBtnChanged() {\n const btn = this._getRoot().querySelector(\n '.flickity-fullscreen-button'\n ) as HTMLElement;\n btn.hidden = !this.fullscreenbtn;\n }\n\n /** If `true`, make the slider fullscreen. */\n @Prop({ reflect: true, mutable: true }) fullscreen = false;\n\n @Watch('fullscreen')\n async fullscreenChanged(_?, oldFs?: boolean) {\n const flickity = await this.getflickity();\n if (this.fullscreen) flickity.viewFullscreen();\n else if (typeof oldFs !== 'undefined') flickity.exitFullscreen();\n }\n\n /** Animation presets. */\n @Prop({ reflect: true }) animation: SlideAnimation = 'scroll';\n\n @Watch('animation')\n async animationChange(_?, oldAnim?: SlideAnimation) {\n const [flkty, slides] = await Promise.all([\n this.getflickity(),\n waitForSlides(this.host),\n ]);\n\n // clear old stuff\n slides.forEach((slide) => {\n slide.style['left'] = undefined;\n });\n\n if (oldAnim === 'parallax') {\n flkty.off('scroll', this.parallax);\n slides.forEach((_, i) => {\n if (this.childrenEles && this.childrenEles[i])\n (this.childrenEles[i] as HTMLElement).style['transform'] = undefined;\n });\n this.update();\n }\n\n // setup new stuff\n switch (this.animation) {\n case 'fade':\n this.options = { fade: true, percentPosition: true };\n break;\n case 'parallax':\n this.options = { fade: false, percentPosition: true };\n flkty.on('scroll', this.parallax);\n break;\n default:\n this.options = { fade: false, percentPosition: true };\n break;\n }\n }\n\n /** Zero-based index of the selected cell. */\n @Prop({ reflect: true, mutable: true }) currentSlide: number = 0;\n\n @Watch('currentSlide')\n currentSlideChange() {\n if (this.currentSlide !== this.iCurrentSlide)\n this.slideTo(this.currentSlide);\n }\n\n @Watch('iCurrentSlide')\n internalSlideChange() {\n this.currentSlide = this.iCurrentSlide;\n }\n\n /** time duration, in ms, to automatically advance slides */\n @Prop() autoplay: string | false | number = false;\n\n @Watch('autoplay')\n async autoPlayChange() {\n await this.stopAutoplay();\n if (this.autoplay) {\n if (typeof this.autoplay === 'string')\n this.autoplay = parseInt(this.autoplay);\n if (this.autoplay > 0) this.startAutoplay(this.autoplay as number);\n }\n }\n\n /** @internal */\n @Prop({ reflect: true, mutable: true }) ready = false;\n\n /** Emitted after component initialisation. */\n @Event() nanoSlidesDidLoad!: EventEmitter<void>;\n\n /** Emitted after flickity initialisation. */\n @Event() nanoSlidesReady!: EventEmitter<void>;\n\n /** Emitted when a slide is selected, even on the same slide. */\n @Event() nanoSlidesSelect!: EventEmitter<number>;\n\n /** Emitted when the selected slide is changed. */\n @Event() nanoSlidesChange!: EventEmitter<number>;\n\n /** Emitted when the slider moves. */\n @Event() nanoSlidesScroll!: EventEmitter<number>;\n\n /** Emitted when the slide transition has finished. */\n @Event() nanoSlidesTransitionEnd!: EventEmitter<number>;\n\n /** Emitted when the slider starts actively being moved. */\n @Event() nanoSlidesDragStart!: EventEmitter<DragEvent>;\n\n /** Emitted when the slider is being dragged. */\n @Event() nanoSlidesDragMove!: EventEmitter<DragEvent>;\n\n /** Emitted when the slider has finished being dragged. */\n @Event() nanoSlidesDragEnd!: EventEmitter<DragEvent>;\n\n /** Emitted when the user taps/clicks on the slide's container. */\n @Event() nanoSlidesTap!: EventEmitter<DragEvent>;\n\n /** Emitted when the user taps/clicks on the slide's container. */\n @Event() nanoSlidesFullscreenChange!: EventEmitter<boolean>;\n\n /**\n * Update the underlying flickity implementation. Call this if you've added or removed\n * child slides.\n */\n @Method()\n async update() {\n const [flickity] = await Promise.all([\n this.getflickity(),\n waitForSlides(this.host),\n ]);\n this.childrenEles = this.host.querySelectorAll('nano-slide > *');\n flickity.reloadCells();\n flickity.resize();\n flickity.reposition();\n }\n\n /**\n * Force flickity to update its height (when adaptiveHeight is enabled) for the duration\n * equal to 'speed' parameter.\n *\n * @param speed The transition duration (in ms).\n */\n @Method()\n async updateAutoHeight(speed?: number) {\n const vp = document.querySelector('.flickity-viewport') as HTMLElement;\n if (vp) vp.style.transition = speed + 'ms';\n }\n\n /**\n * Transition to the specified slide.\n *\n * @param index The index of the slide to transition to.\n * @param instant Immediately view the selected slide without animation.\n */\n @Method()\n async slideTo(index: number, instant?: boolean) {\n const flickity = await this.getflickity();\n flickity.select(index, instant);\n }\n\n /**\n * Transition to the next slide.\n *\n * @param instant The transition duration (in ms).\n * @param wrap If true, the first slide will be selected if at the last slide.\n */\n @Method()\n async slideNext(instant?: boolean, wrap?: boolean) {\n const flickity = await this.getflickity();\n flickity.next(wrap, instant);\n }\n\n /**\n * Transition to the previous slide.\n *\n * @param instant The transition duration (in ms).\n * @param wrap If true, the last slide will be selected if at the first slide.\n */\n @Method()\n async slidePrev(instant?: boolean, wrap?: boolean) {\n const flickity = await this.getflickity();\n flickity.previous(instant, wrap);\n }\n\n /** Get the index of the active slide. */\n @Method()\n async getActiveIndex() {\n const flickity = await this.getflickity();\n return flickity.selectedIndex;\n }\n\n /** Get the total number of slides. */\n @Method()\n async length() {\n const flickity = await this.getflickity();\n return flickity.slides.length;\n }\n\n /** Get whether or not the current slide is the last slide. */\n @Method()\n async isEnd() {\n const flickity = await this.getflickity();\n return flickity.selectedIndex === flickity.slides.length - 1;\n }\n\n /** Get whether or not the current slide is the first slide. */\n @Method()\n async isBeginning() {\n const flickity = await this.getflickity();\n return flickity.selectedIndex === 0;\n }\n\n /**\n * Start auto play.\n * @param time - optional time duration to show slides\n */\n @Method()\n async startAutoplay(time?: number) {\n const flickity = await this.getflickity();\n if (time) this.options = { autoPlay: time };\n setTimeout(() => flickity.playPlayer());\n }\n\n /** Stop auto play. */\n @Method()\n async stopAutoplay() {\n const flickity = await this.getflickity();\n flickity.stopPlayer();\n }\n\n /**\n * Lock or unlock the ability to slide to the next slide.\n *\n * @param lock If `true`, disable swiping\n */\n @Method()\n async lockSwipes(lock: boolean) {\n const flickity = await this.getflickity();\n flickity.options.draggable = !lock;\n flickity.updateDraggable();\n }\n\n /**\n * Get the flickity instance.\n * Use this to access the full flickity API.\n * See https://flickity.metafizzy.co/ for all API options.\n */\n @Method()\n async getflickity() {\n return this.flickity;\n }\n\n /**\n * Hard destroy / create.\n * Certain flickity options, you will require the instance to be re-initialised\n */\n @Method()\n async reload() {\n this.destroyflickity();\n setTimeout(() => this.initflickity(), 20);\n }\n\n private _getRoot() {\n return this.host.shadowRoot ? this.host.shadowRoot : this.host;\n }\n\n private parallax = async () => {\n const flkty = await this.flickity;\n const cells = flkty.cells as unknown as FlickityCell[];\n\n cells.forEach((cell, i) => {\n const ele = this.childrenEles[i] as HTMLElement;\n\n let flkX = flkty.x;\n if (flkty.options.wrapAround && flkty.cells.length > 1) {\n flkX = modulo(flkX, flkty.slideableWidth);\n flkX = flkX - flkty.slideableWidth;\n }\n\n let x = ((cell.target + flkX) * -1) / 3;\n\n if (cell.shift < 0) {\n x = ((cell.target - flkty.slideableWidth + flkX) * -1) / 3;\n } else if (cell.shift > 0) {\n x = ((cell.target + (flkX + flkty.slideableWidth)) * -1) / 3;\n }\n ele.style.transform = 'translate3d(' + x + 'px, 0, 0)';\n });\n };\n\n private handleFullscreen = (isFullScreen: boolean) => {\n this.fullscreen = isFullScreen;\n this.nanoSlidesFullscreenChange.emit(isFullScreen);\n };\n\n private handleSlideSelect = (slide: number) => {\n this.iCurrentSlide = slide;\n this.nanoSlidesSelect.emit(slide);\n };\n\n private destroyflickity() {\n /**\n * We need to synchronously destroy\n * flickity otherwise it is possible\n * that it will be left in a\n * destroyed state if connectedCallback\n * is called multiple times\n */\n const flickity = this.syncflickity;\n\n if (flickity !== undefined) {\n flickity.destroy();\n this.flickity = new Promise((resolve) => {\n this.readyflickity = resolve;\n });\n this.flickityReady = false;\n this.syncflickity = undefined;\n this.ready = false;\n }\n this.didInit = false;\n }\n\n private async initflickity() {\n const finalOptions = this.normalizeOptions();\n\n // init flickity core\n await waitForSlides(this.host);\n\n this.flickityEl =\n this.flickityEl || this._getRoot().querySelector('.flickity-container');\n\n if (!this.flickityEl) return;\n\n this.slidesReady = true;\n\n if (this.flickityEl.classList.contains('flickity-enabled')) {\n this.destroyflickity();\n }\n\n this.flickityEl.style.height =\n this.flickityEl.getBoundingClientRect().height + 'px';\n\n setTimeout(() => {\n this.flickityEl.style.height = '';\n const flick = new flickity(this.flickityEl, finalOptions) as Flickity;\n this.flickityReady = true;\n this.syncflickity = flick;\n\n this.animationChange();\n this.navbtnsChanged();\n this.pagerChanged();\n this.fullscreenChanged();\n this.fullscreenBtnChanged();\n\n this.readyflickity(flick);\n this.ready = true;\n\n if (!window['ResizeObserver']) return;\n\n // just boots and braces to make sure it's the correct size oninit\n const ro = (this.resizeO = new ResizeObserver(() => {\n flick.resize();\n // this.resizeO.disconnect();\n }));\n ro.observe(this.host);\n }, 100);\n }\n\n private normalizeOptions(): FlickityOptions {\n // Base options, can be changed\n const flickityOptions: FlickityOptions = {\n cellSelector: 'nano-slide',\n contain: true,\n prevNextButtons: true,\n fullscreen: true,\n accessibility: true,\n imagesLoaded: true,\n pageDots: true,\n };\n\n if (this.animation === 'fade') {\n flickityOptions.fade = true;\n }\n if (this.currentSlide > 0) {\n flickityOptions.initialIndex = this.currentSlide;\n }\n if (this.autoplay) {\n if (typeof this.autoplay === 'string')\n this.autoplay = parseInt(this.autoplay);\n if (this.autoplay > 0) flickityOptions.autoPlay = this.autoplay as number;\n }\n\n // Keep the event options separate, we dont want users\n // overwriting these\n const eventOptions: FlickityEvents = {\n ready: () => {\n setTimeout(() => {\n this.nanoSlidesReady.emit();\n }, 20);\n },\n select: this.handleSlideSelect,\n change: this.nanoSlidesChange.emit,\n scroll: this.nanoSlidesScroll.emit,\n settle: this.nanoSlidesTransitionEnd.emit,\n dragStart: this.nanoSlidesDragStart.emit,\n dragMove: this.nanoSlidesDragMove.emit,\n dragEnd: this.nanoSlidesDragEnd.emit,\n staticClick: this.nanoSlidesTap.emit,\n fullscreenChange: this.handleFullscreen,\n };\n\n const customEvents =\n !!this.options && !!this.options.on ? this.options.on : {};\n // merge \"on\" event listeners, while giving our event listeners priority\n const mergedEventOptions = { on: { ...customEvents, ...eventOptions } };\n // Merge the base, user options, and events together then pass to flickity\n // @ts-ignore\n return { ...flickityOptions, ...mergedEventOptions, ...this.options };\n }\n\n componentDidLoad() {\n if (\n Build.isBrowser &&\n typeof window !== 'undefined' &&\n (window as any).MutationObserver\n ) {\n const mut = (this.mutationO = new MutationObserver(\n (e: MutationRecord[]) => {\n if (\n e[0].addedNodes[0] &&\n e[0].addedNodes[0].nodeName.toLowerCase() === 'nano-slide' &&\n this.flickityReady\n ) {\n this.update();\n }\n }\n ));\n\n mut.observe(this.host, {\n childList: true,\n subtree: true,\n });\n }\n }\n\n componentWillLoad() {\n this.nanoSlidesDidLoad.emit();\n\n if (!this.didInit) {\n this.didInit = true;\n this.initflickity();\n }\n }\n\n disconnectedCallback() {\n if (this.mutationO) {\n this.mutationO.disconnect();\n this.mutationO = undefined;\n }\n if (this.resizeO) this.resizeO.disconnect();\n this.destroyflickity();\n }\n\n render() {\n return (\n <Host>\n <div\n class={{\n slideshow: true,\n ready: this.ready,\n 'not-ready': !this.ready,\n }}\n part=\"base\"\n >\n <div\n ref={(div) => (this.flickityEl = div)}\n class={{\n 'flickity-container': true,\n 'slides-ready': this.slidesReady,\n 'slides-not-ready': !this.slidesReady,\n }}\n part=\"slide-container\"\n >\n <slot />\n </div>\n <div class=\"ui-extras\">\n <slot name=\"ui\" />\n </div>\n </div>\n </Host>\n );\n }\n}\n\nconst waitForSlides = (host: HTMLElement): Promise<HTMLNanoSlideElement[]> => {\n const allSlides = Array.from(host.querySelectorAll('nano-slide'));\n let toLoadSlides = allSlides.filter(\n (ele: HTMLNanoSlideElement) => !ele.ready\n );\n\n if (!toLoadSlides.length) return Promise.resolve(allSlides);\n\n return new Promise((resolve) => {\n const slideResolver = (ev: CustomEvent) => {\n toLoadSlides = toLoadSlides.filter((ele) => ele !== ev.target);\n if (!toLoadSlides.length) {\n resolve(allSlides);\n host.removeEventListener('nanoSlideReady', slideResolver);\n host.removeEventListener('nano-slide-ready', slideResolver);\n }\n };\n host.addEventListener('nanoSlideReady', slideResolver);\n // fallback for vue who can't handle camelcase event names\n host.addEventListener('nano-slide-ready', slideResolver);\n });\n};\n"]}
|
@@ -2758,6 +2758,11 @@ PrevNextButton.prototype._create = function () {
|
|
2758
2758
|
const slot = document.createElement('slot');
|
2759
2759
|
slot.name = this.isPrevious ? 'previous-icon' : 'next-icon';
|
2760
2760
|
button.appendChild(slot);
|
2761
|
+
slot.addEventListener('slotchange', () => {
|
2762
|
+
slot.assignedElements({ flatten: true }).forEach((ele) => {
|
2763
|
+
ele.removeAttribute('hidden');
|
2764
|
+
});
|
2765
|
+
});
|
2761
2766
|
|
2762
2767
|
// create arrow
|
2763
2768
|
var svg = this.createSVG();
|
@@ -3867,9 +3872,8 @@ const Slides = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement$1 {
|
|
3867
3872
|
});
|
3868
3873
|
this.parallax = async () => {
|
3869
3874
|
const flkty = await this.flickity;
|
3870
|
-
flkty.cells
|
3871
|
-
|
3872
|
-
const shiftedPos = cell.x + flkty.slideableWidth * cell.shift;
|
3875
|
+
const cells = flkty.cells;
|
3876
|
+
cells.forEach((cell, i) => {
|
3873
3877
|
const ele = this.childrenEles[i];
|
3874
3878
|
let flkX = flkty.x;
|
3875
3879
|
if (flkty.options.wrapAround && flkty.cells.length > 1) {
|
@@ -3878,13 +3882,12 @@ const Slides = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement$1 {
|
|
3878
3882
|
}
|
3879
3883
|
let x = ((cell.target + flkX) * -1) / 3;
|
3880
3884
|
if (cell.shift < 0) {
|
3881
|
-
x =
|
3885
|
+
x = ((cell.target - flkty.slideableWidth + flkX) * -1) / 3;
|
3882
3886
|
}
|
3883
3887
|
else if (cell.shift > 0) {
|
3884
|
-
x = ((cell.target + (flkX +
|
3888
|
+
x = ((cell.target + (flkX + flkty.slideableWidth)) * -1) / 3;
|
3885
3889
|
}
|
3886
3890
|
ele.style.transform = 'translate3d(' + x + 'px, 0, 0)';
|
3887
|
-
// 'translateX(' + x + 'px)';
|
3888
3891
|
});
|
3889
3892
|
};
|
3890
3893
|
this.handleFullscreen = (isFullScreen) => {
|
@@ -3958,7 +3961,7 @@ const Slides = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement$1 {
|
|
3958
3961
|
this.options = { fade: true, percentPosition: true };
|
3959
3962
|
break;
|
3960
3963
|
case 'parallax':
|
3961
|
-
this.options = { fade: false, percentPosition:
|
3964
|
+
this.options = { fade: false, percentPosition: true };
|
3962
3965
|
flkty.on('scroll', this.parallax);
|
3963
3966
|
break;
|
3964
3967
|
default:
|
@@ -4067,9 +4070,7 @@ const Slides = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement$1 {
|
|
4067
4070
|
this.options = { autoPlay: time };
|
4068
4071
|
setTimeout(() => flickity.playPlayer());
|
4069
4072
|
}
|
4070
|
-
/**
|
4071
|
-
* Stop auto play.
|
4072
|
-
*/
|
4073
|
+
/** Stop auto play. */
|
4073
4074
|
async stopAutoplay() {
|
4074
4075
|
const flickity = await this.getflickity();
|
4075
4076
|
flickity.stopPlayer();
|
@@ -4127,14 +4128,16 @@ const Slides = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement$1 {
|
|
4127
4128
|
const finalOptions = this.normalizeOptions();
|
4128
4129
|
// init flickity core
|
4129
4130
|
await waitForSlides(this.host);
|
4130
|
-
this.flickityEl.style.height =
|
4131
|
-
this.flickityEl.getBoundingClientRect().height + 'px';
|
4132
|
-
this.slidesReady = true;
|
4133
4131
|
this.flickityEl =
|
4134
4132
|
this.flickityEl || this._getRoot().querySelector('.flickity-container');
|
4135
|
-
if (this.flickityEl
|
4136
|
-
|
4133
|
+
if (!this.flickityEl)
|
4134
|
+
return;
|
4135
|
+
this.slidesReady = true;
|
4136
|
+
if (this.flickityEl.classList.contains('flickity-enabled')) {
|
4137
4137
|
this.destroyflickity();
|
4138
|
+
}
|
4139
|
+
this.flickityEl.style.height =
|
4140
|
+
this.flickityEl.getBoundingClientRect().height + 'px';
|
4138
4141
|
setTimeout(() => {
|
4139
4142
|
this.flickityEl.style.height = '';
|
4140
4143
|
const flick = new flickity(this.flickityEl, finalOptions);
|
@@ -4301,6 +4304,7 @@ const waitForSlides = (host) => {
|
|
4301
4304
|
if (!toLoadSlides.length) {
|
4302
4305
|
resolve(allSlides);
|
4303
4306
|
host.removeEventListener('nanoSlideReady', slideResolver);
|
4307
|
+
host.removeEventListener('nano-slide-ready', slideResolver);
|
4304
4308
|
}
|
4305
4309
|
};
|
4306
4310
|
host.addEventListener('nanoSlideReady', slideResolver);
|