UNPKG

@huluvu424242/honey-slideshow

Version:

Text to Speech component wich is reading texts from DOM elements.

162 lines (156 loc) 6.36 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); const index = require('./index-99ba775b.js'); const config = require('./config-eee1a965.js'); const index$1 = require('./index-5b797ee0.js'); const cubicBezier = require('./cubic-bezier-f3b34d27.js'); const ionicGlobal = require('./ionic-global-a82af109.js'); const frameworkDelegate = require('./framework-delegate-84d33ff0.js'); const routeOutletCss = ":host{left:0;right:0;top:0;bottom:0;position:absolute;contain:layout size style;overflow:hidden;z-index:0}"; const RouterOutlet = class { constructor(hostRef) { index.registerInstance(this, hostRef); this.ionNavWillLoad = index.createEvent(this, "ionNavWillLoad", 7); this.ionNavWillChange = index.createEvent(this, "ionNavWillChange", 3); this.ionNavDidChange = index.createEvent(this, "ionNavDidChange", 3); this.animationEnabled = true; /** * The mode determines which platform styles to use. */ this.mode = ionicGlobal.getIonMode(this); /** * If `true`, the router-outlet should animate the transition of components. */ this.animated = true; } swipeHandlerChanged() { if (this.gesture) { this.gesture.enable(this.swipeHandler !== undefined); } } async connectedCallback() { this.gesture = (await Promise.resolve().then(function () { return require('./swipe-back-4797c3d7.js'); })).createSwipeBackGesture(this.el, () => !!this.swipeHandler && this.swipeHandler.canStart() && this.animationEnabled, () => this.swipeHandler && this.swipeHandler.onStart(), step => this.ani && this.ani.progressStep(step), (shouldComplete, step, dur) => { if (this.ani) { this.animationEnabled = false; this.ani.onFinish(() => { this.animationEnabled = true; if (this.swipeHandler) { this.swipeHandler.onEnd(shouldComplete); } }, { oneTimeCallback: true }); // Account for rounding errors in JS let newStepValue = (shouldComplete) ? -0.001 : 0.001; /** * Animation will be reversed here, so need to * reverse the easing curve as well * * Additionally, we need to account for the time relative * to the new easing curve, as `stepValue` is going to be given * in terms of a linear curve. */ if (!shouldComplete) { this.ani.easing('cubic-bezier(1, 0, 0.68, 0.28)'); newStepValue += cubicBezier.getTimeGivenProgression([0, 0], [1, 0], [0.68, 0.28], [1, 1], step)[0]; } else { newStepValue += cubicBezier.getTimeGivenProgression([0, 0], [0.32, 0.72], [0, 1], [1, 1], step)[0]; } this.ani.progressEnd(shouldComplete ? 1 : 0, newStepValue, dur); } }); this.swipeHandlerChanged(); } componentWillLoad() { this.ionNavWillLoad.emit(); } disconnectedCallback() { if (this.gesture) { this.gesture.destroy(); this.gesture = undefined; } } /** @internal */ async commit(enteringEl, leavingEl, opts) { const unlock = await this.lock(); let changed = false; try { changed = await this.transition(enteringEl, leavingEl, opts); } catch (e) { console.error(e); } unlock(); return changed; } /** @internal */ async setRouteId(id, params, direction) { const changed = await this.setRoot(id, params, { duration: direction === 'root' ? 0 : undefined, direction: direction === 'back' ? 'back' : 'forward', }); return { changed, element: this.activeEl }; } /** @internal */ async getRouteId() { const active = this.activeEl; return active ? { id: active.tagName, element: active, } : undefined; } async setRoot(component, params, opts) { if (this.activeComponent === component) { return false; } // attach entering view to DOM const leavingEl = this.activeEl; const enteringEl = await frameworkDelegate.attachComponent(this.delegate, this.el, component, ['ion-page', 'ion-page-invisible'], params); this.activeComponent = component; this.activeEl = enteringEl; // commit animation await this.commit(enteringEl, leavingEl, opts); await frameworkDelegate.detachComponent(this.delegate, leavingEl); return true; } async transition(enteringEl, leavingEl, opts = {}) { if (leavingEl === enteringEl) { return false; } // emit nav will change event this.ionNavWillChange.emit(); const { el, mode } = this; const animated = this.animated && config.config.getBoolean('animated', true); const animationBuilder = this.animation || opts.animationBuilder || config.config.get('navAnimation'); await index$1.transition(Object.assign({ mode, animated, animationBuilder, enteringEl, leavingEl, baseEl: el, progressCallback: (opts.progressAnimation ? ani => this.ani = ani : undefined) }, opts)); // emit nav changed event this.ionNavDidChange.emit(); return true; } async lock() { const p = this.waitPromise; let resolve; this.waitPromise = new Promise(r => resolve = r); if (p !== undefined) { await p; } return resolve; } render() { return (index.h("slot", null)); } get el() { return index.getElement(this); } static get watchers() { return { "swipeHandler": ["swipeHandlerChanged"] }; } }; RouterOutlet.style = routeOutletCss; exports.ion_router_outlet = RouterOutlet;