UNPKG

@huluvu424242/honey-slideshow

Version:

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

304 lines (303 loc) 12.6 kB
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; import { j as writeTask, B as Build } from './index-a2883912.js'; var LIFECYCLE_WILL_ENTER = 'ionViewWillEnter'; var LIFECYCLE_DID_ENTER = 'ionViewDidEnter'; var LIFECYCLE_WILL_LEAVE = 'ionViewWillLeave'; var LIFECYCLE_DID_LEAVE = 'ionViewDidLeave'; var LIFECYCLE_WILL_UNLOAD = 'ionViewWillUnload'; var iosTransitionAnimation = function () { return import('./ios.transition-c10550db.js'); }; var mdTransitionAnimation = function () { return import('./md.transition-03d85222.js'); }; var transition = function (opts) { return new Promise(function (resolve, reject) { writeTask(function () { beforeTransition(opts); runTransition(opts).then(function (result) { if (result.animation) { result.animation.destroy(); } afterTransition(opts); resolve(result); }, function (error) { afterTransition(opts); reject(error); }); }); }); }; var beforeTransition = function (opts) { var enteringEl = opts.enteringEl; var leavingEl = opts.leavingEl; setZIndex(enteringEl, leavingEl, opts.direction); if (opts.showGoBack) { enteringEl.classList.add('can-go-back'); } else { enteringEl.classList.remove('can-go-back'); } setPageHidden(enteringEl, false); if (leavingEl) { setPageHidden(leavingEl, false); } }; var runTransition = function (opts) { return __awaiter(void 0, void 0, void 0, function () { var animationBuilder, ani; return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, getAnimationBuilder(opts)]; case 1: animationBuilder = _a.sent(); ani = (animationBuilder && Build.isBrowser) ? animation(animationBuilder, opts) : noAnimation(opts); return [2 /*return*/, ani]; } }); }); }; var afterTransition = function (opts) { var enteringEl = opts.enteringEl; var leavingEl = opts.leavingEl; enteringEl.classList.remove('ion-page-invisible'); if (leavingEl !== undefined) { leavingEl.classList.remove('ion-page-invisible'); } }; var getAnimationBuilder = function (opts) { return __awaiter(void 0, void 0, void 0, function () { var getAnimation, _a; return __generator(this, function (_b) { switch (_b.label) { case 0: if (!opts.leavingEl || !opts.animated || opts.duration === 0) { return [2 /*return*/, undefined]; } if (opts.animationBuilder) { return [2 /*return*/, opts.animationBuilder]; } if (!(opts.mode === 'ios')) return [3 /*break*/, 2]; return [4 /*yield*/, iosTransitionAnimation()]; case 1: _a = (_b.sent()).iosTransitionAnimation; return [3 /*break*/, 4]; case 2: return [4 /*yield*/, mdTransitionAnimation()]; case 3: _a = (_b.sent()).mdTransitionAnimation; _b.label = 4; case 4: getAnimation = _a; return [2 /*return*/, getAnimation]; } }); }); }; var animation = function (animationBuilder, opts) { return __awaiter(void 0, void 0, void 0, function () { var trans, didComplete; return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, waitForReady(opts, true)]; case 1: _a.sent(); trans = animationBuilder(opts.baseEl, opts); fireWillEvents(opts.enteringEl, opts.leavingEl); return [4 /*yield*/, playTransition(trans, opts)]; case 2: didComplete = _a.sent(); if (opts.progressCallback) { opts.progressCallback(undefined); } if (didComplete) { fireDidEvents(opts.enteringEl, opts.leavingEl); } return [2 /*return*/, { hasCompleted: didComplete, animation: trans }]; } }); }); }; var noAnimation = function (opts) { return __awaiter(void 0, void 0, void 0, function () { var enteringEl, leavingEl; return __generator(this, function (_a) { switch (_a.label) { case 0: enteringEl = opts.enteringEl; leavingEl = opts.leavingEl; return [4 /*yield*/, waitForReady(opts, false)]; case 1: _a.sent(); fireWillEvents(enteringEl, leavingEl); fireDidEvents(enteringEl, leavingEl); return [2 /*return*/, { hasCompleted: true }]; } }); }); }; var waitForReady = function (opts, defaultDeep) { return __awaiter(void 0, void 0, void 0, function () { var deep, promises; return __generator(this, function (_a) { switch (_a.label) { case 0: deep = opts.deepWait !== undefined ? opts.deepWait : defaultDeep; promises = deep ? [ deepReady(opts.enteringEl), deepReady(opts.leavingEl), ] : [ shallowReady(opts.enteringEl), shallowReady(opts.leavingEl), ]; return [4 /*yield*/, Promise.all(promises)]; case 1: _a.sent(); return [4 /*yield*/, notifyViewReady(opts.viewIsReady, opts.enteringEl)]; case 2: _a.sent(); return [2 /*return*/]; } }); }); }; var notifyViewReady = function (viewIsReady, enteringEl) { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) { switch (_a.label) { case 0: if (!viewIsReady) return [3 /*break*/, 2]; return [4 /*yield*/, viewIsReady(enteringEl)]; case 1: _a.sent(); _a.label = 2; case 2: return [2 /*return*/]; } }); }); }; var playTransition = function (trans, opts) { var progressCallback = opts.progressCallback; var promise = new Promise(function (resolve) { trans.onFinish(function (currentStep) { return resolve(currentStep === 1); }); }); // cool, let's do this, start the transition if (progressCallback) { // this is a swipe to go back, just get the transition progress ready // kick off the swipe animation start trans.progressStart(true); progressCallback(trans); } else { // only the top level transition should actually start "play" // kick it off and let it play through // ******** DOM WRITE **************** trans.play(); } // create a callback for when the animation is done return promise; }; var fireWillEvents = function (enteringEl, leavingEl) { lifecycle(leavingEl, LIFECYCLE_WILL_LEAVE); lifecycle(enteringEl, LIFECYCLE_WILL_ENTER); }; var fireDidEvents = function (enteringEl, leavingEl) { lifecycle(enteringEl, LIFECYCLE_DID_ENTER); lifecycle(leavingEl, LIFECYCLE_DID_LEAVE); }; var lifecycle = function (el, eventName) { if (el) { var ev = new CustomEvent(eventName, { bubbles: false, cancelable: false, }); el.dispatchEvent(ev); } }; var shallowReady = function (el) { if (el && el.componentOnReady) { return el.componentOnReady(); } return Promise.resolve(); }; var deepReady = function (el) { return __awaiter(void 0, void 0, void 0, function () { var element, stencilEl; return __generator(this, function (_a) { switch (_a.label) { case 0: element = el; if (!element) return [3 /*break*/, 4]; if (!(element.componentOnReady != null)) return [3 /*break*/, 2]; return [4 /*yield*/, element.componentOnReady()]; case 1: stencilEl = _a.sent(); if (stencilEl != null) { return [2 /*return*/]; } _a.label = 2; case 2: return [4 /*yield*/, Promise.all(Array.from(element.children).map(deepReady))]; case 3: _a.sent(); _a.label = 4; case 4: return [2 /*return*/]; } }); }); }; var setPageHidden = function (el, hidden) { if (hidden) { el.setAttribute('aria-hidden', 'true'); el.classList.add('ion-page-hidden'); } else { el.hidden = false; el.removeAttribute('aria-hidden'); el.classList.remove('ion-page-hidden'); } }; var setZIndex = function (enteringEl, leavingEl, direction) { if (enteringEl !== undefined) { enteringEl.style.zIndex = (direction === 'back') ? '99' : '101'; } if (leavingEl !== undefined) { leavingEl.style.zIndex = '100'; } }; var getIonPageElement = function (element) { if (element.classList.contains('ion-page')) { return element; } var ionPage = element.querySelector(':scope > .ion-page, :scope > ion-nav, :scope > ion-tabs'); if (ionPage) { return ionPage; } // idk, return the original element so at least something animates and we don't have a null pointer return element; }; export { LIFECYCLE_WILL_UNLOAD as L, LIFECYCLE_WILL_LEAVE as a, LIFECYCLE_DID_LEAVE as b, deepReady as d, getIonPageElement as g, lifecycle as l, setPageHidden as s, transition as t };