Sin descripción

common.js 46KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334
  1. "use strict";
  2. (self["webpackChunkapp"] = self["webpackChunkapp"] || []).push([["common"],{
  3. /***/ 9386:
  4. /*!********************************************!*\
  5. !*** ./src/app/services/wpdata.service.ts ***!
  6. \********************************************/
  7. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  8. __webpack_require__.r(__webpack_exports__);
  9. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  10. /* harmony export */ "WpdataService": () => (/* binding */ WpdataService)
  11. /* harmony export */ });
  12. /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tslib */ 4929);
  13. /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 3184);
  14. /* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/common/http */ 8784);
  15. let WpdataService = class WpdataService {
  16. constructor(http) {
  17. this.http = http;
  18. }
  19. // getAllNews() {
  20. // return this.http.get(
  21. // "../assets/api/news-api.json"
  22. // );
  23. // }
  24. getAllNews() {
  25. return this.http.get("https://fm99activeradio.mcot.net/wp-json/wp/v2/news?_embed");
  26. }
  27. getNewsDetail(id) {
  28. let url = 'https://fm99activeradio.mcot.net/';
  29. const route = url + 'wp-json/wp/v2/' + 'news/' + id + '?_embed';
  30. return this.http.get(route);
  31. }
  32. getAllYoutube() {
  33. return this.http.get(
  34. // "../assets/api/youtube-data.json"
  35. "https://youtube.googleapis.com/youtube/v3/search?part=snippet&channelId=UCfZdHbI3pIN4uselPFzzbOg&maxResults=5&order=date&key=AIzaSyDsRrS_dUxT_3PFaMZIBBdrbl37p_fqrNY");
  36. }
  37. };
  38. WpdataService.ctorParameters = () => [
  39. { type: _angular_common_http__WEBPACK_IMPORTED_MODULE_0__.HttpClient }
  40. ];
  41. WpdataService = (0,tslib__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
  42. (0,_angular_core__WEBPACK_IMPORTED_MODULE_2__.Injectable)({
  43. providedIn: 'root'
  44. })
  45. ], WpdataService);
  46. /***/ }),
  47. /***/ 5479:
  48. /*!*********************************************************************!*\
  49. !*** ./node_modules/@ionic/core/dist/esm/button-active-1542e4b9.js ***!
  50. \*********************************************************************/
  51. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  52. __webpack_require__.r(__webpack_exports__);
  53. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  54. /* harmony export */ "c": () => (/* binding */ createButtonActiveGesture)
  55. /* harmony export */ });
  56. /* harmony import */ var _index_8e692445_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index-8e692445.js */ 1559);
  57. /* harmony import */ var _haptic_683b3b3c_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./haptic-683b3b3c.js */ 634);
  58. /* harmony import */ var _index_f8d8aa5a_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index-f8d8aa5a.js */ 9286);
  59. /*!
  60. * (C) Ionic http://ionicframework.com - MIT License
  61. */
  62. const createButtonActiveGesture = (el, isButton) => {
  63. let currentTouchedButton;
  64. let initialTouchedButton;
  65. const activateButtonAtPoint = (x, y, hapticFeedbackFn) => {
  66. if (typeof document === 'undefined') {
  67. return;
  68. }
  69. const target = document.elementFromPoint(x, y);
  70. if (!target || !isButton(target)) {
  71. clearActiveButton();
  72. return;
  73. }
  74. if (target !== currentTouchedButton) {
  75. clearActiveButton();
  76. setActiveButton(target, hapticFeedbackFn);
  77. }
  78. };
  79. const setActiveButton = (button, hapticFeedbackFn) => {
  80. currentTouchedButton = button;
  81. if (!initialTouchedButton) {
  82. initialTouchedButton = currentTouchedButton;
  83. }
  84. const buttonToModify = currentTouchedButton;
  85. (0,_index_8e692445_js__WEBPACK_IMPORTED_MODULE_0__.c)(() => buttonToModify.classList.add('ion-activated'));
  86. hapticFeedbackFn();
  87. };
  88. const clearActiveButton = (dispatchClick = false) => {
  89. if (!currentTouchedButton) {
  90. return;
  91. }
  92. const buttonToModify = currentTouchedButton;
  93. (0,_index_8e692445_js__WEBPACK_IMPORTED_MODULE_0__.c)(() => buttonToModify.classList.remove('ion-activated'));
  94. /**
  95. * Clicking on one button, but releasing on another button
  96. * does not dispatch a click event in browsers, so we
  97. * need to do it manually here. Some browsers will
  98. * dispatch a click if clicking on one button, dragging over
  99. * another button, and releasing on the original button. In that
  100. * case, we need to make sure we do not cause a double click there.
  101. */
  102. if (dispatchClick && initialTouchedButton !== currentTouchedButton) {
  103. currentTouchedButton.click();
  104. }
  105. currentTouchedButton = undefined;
  106. };
  107. return (0,_index_f8d8aa5a_js__WEBPACK_IMPORTED_MODULE_2__.createGesture)({
  108. el,
  109. gestureName: 'buttonActiveDrag',
  110. threshold: 0,
  111. onStart: ev => activateButtonAtPoint(ev.currentX, ev.currentY, _haptic_683b3b3c_js__WEBPACK_IMPORTED_MODULE_1__.a),
  112. onMove: ev => activateButtonAtPoint(ev.currentX, ev.currentY, _haptic_683b3b3c_js__WEBPACK_IMPORTED_MODULE_1__.b),
  113. onEnd: () => {
  114. clearActiveButton(true);
  115. (0,_haptic_683b3b3c_js__WEBPACK_IMPORTED_MODULE_1__.h)();
  116. initialTouchedButton = undefined;
  117. }
  118. });
  119. };
  120. /***/ }),
  121. /***/ 7481:
  122. /*!***********************************************************!*\
  123. !*** ./node_modules/@ionic/core/dist/esm/dir-e8b767a8.js ***!
  124. \***********************************************************/
  125. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  126. __webpack_require__.r(__webpack_exports__);
  127. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  128. /* harmony export */ "i": () => (/* binding */ isRTL)
  129. /* harmony export */ });
  130. /*!
  131. * (C) Ionic http://ionicframework.com - MIT License
  132. */
  133. /**
  134. * Returns `true` if the document or host element
  135. * has a `dir` set to `rtl`. The host value will always
  136. * take priority over the root document value.
  137. */
  138. const isRTL = hostEl => {
  139. if (hostEl) {
  140. if (hostEl.dir !== '') {
  141. return hostEl.dir.toLowerCase() === 'rtl';
  142. }
  143. }
  144. return (document === null || document === void 0 ? void 0 : document.dir.toLowerCase()) === 'rtl';
  145. };
  146. /***/ }),
  147. /***/ 5777:
  148. /*!*********************************************************************!*\
  149. !*** ./node_modules/@ionic/core/dist/esm/focus-visible-096cf6fd.js ***!
  150. \*********************************************************************/
  151. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  152. __webpack_require__.r(__webpack_exports__);
  153. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  154. /* harmony export */ "startFocusVisible": () => (/* binding */ startFocusVisible)
  155. /* harmony export */ });
  156. /*!
  157. * (C) Ionic http://ionicframework.com - MIT License
  158. */
  159. const ION_FOCUSED = 'ion-focused';
  160. const ION_FOCUSABLE = 'ion-focusable';
  161. const FOCUS_KEYS = ['Tab', 'ArrowDown', 'Space', 'Escape', ' ', 'Shift', 'Enter', 'ArrowLeft', 'ArrowRight', 'ArrowUp', 'Home', 'End'];
  162. const startFocusVisible = rootEl => {
  163. let currentFocus = [];
  164. let keyboardMode = true;
  165. const ref = rootEl ? rootEl.shadowRoot : document;
  166. const root = rootEl ? rootEl : document.body;
  167. const setFocus = elements => {
  168. currentFocus.forEach(el => el.classList.remove(ION_FOCUSED));
  169. elements.forEach(el => el.classList.add(ION_FOCUSED));
  170. currentFocus = elements;
  171. };
  172. const pointerDown = () => {
  173. keyboardMode = false;
  174. setFocus([]);
  175. };
  176. const onKeydown = ev => {
  177. keyboardMode = FOCUS_KEYS.includes(ev.key);
  178. if (!keyboardMode) {
  179. setFocus([]);
  180. }
  181. };
  182. const onFocusin = ev => {
  183. if (keyboardMode && ev.composedPath !== undefined) {
  184. const toFocus = ev.composedPath().filter(el => {
  185. if (el.classList) {
  186. return el.classList.contains(ION_FOCUSABLE);
  187. }
  188. return false;
  189. });
  190. setFocus(toFocus);
  191. }
  192. };
  193. const onFocusout = () => {
  194. if (ref.activeElement === root) {
  195. setFocus([]);
  196. }
  197. };
  198. ref.addEventListener('keydown', onKeydown);
  199. ref.addEventListener('focusin', onFocusin);
  200. ref.addEventListener('focusout', onFocusout);
  201. ref.addEventListener('touchstart', pointerDown);
  202. ref.addEventListener('mousedown', pointerDown);
  203. const destroy = () => {
  204. ref.removeEventListener('keydown', onKeydown);
  205. ref.removeEventListener('focusin', onFocusin);
  206. ref.removeEventListener('focusout', onFocusout);
  207. ref.removeEventListener('touchstart', pointerDown);
  208. ref.removeEventListener('mousedown', pointerDown);
  209. };
  210. return {
  211. destroy,
  212. setFocus
  213. };
  214. };
  215. /***/ }),
  216. /***/ 3701:
  217. /*!**************************************************************************!*\
  218. !*** ./node_modules/@ionic/core/dist/esm/framework-delegate-897f849d.js ***!
  219. \**************************************************************************/
  220. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  221. __webpack_require__.r(__webpack_exports__);
  222. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  223. /* harmony export */ "C": () => (/* binding */ CoreDelegate),
  224. /* harmony export */ "a": () => (/* binding */ attachComponent),
  225. /* harmony export */ "d": () => (/* binding */ detachComponent)
  226. /* harmony export */ });
  227. /* harmony import */ var _Volumes_App_fm99_app_rev_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js */ 1670);
  228. /* harmony import */ var _helpers_3b390e48_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helpers-3b390e48.js */ 9234);
  229. /*!
  230. * (C) Ionic http://ionicframework.com - MIT License
  231. */
  232. const attachComponent = /*#__PURE__*/function () {
  233. var _ref = (0,_Volumes_App_fm99_app_rev_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function* (delegate, container, component, cssClasses, componentProps, inline) {
  234. var _a;
  235. if (delegate) {
  236. return delegate.attachViewToDom(container, component, componentProps, cssClasses);
  237. }
  238. if (!inline && typeof component !== 'string' && !(component instanceof HTMLElement)) {
  239. throw new Error('framework delegate is missing');
  240. }
  241. const el = typeof component === 'string' ? (_a = container.ownerDocument) === null || _a === void 0 ? void 0 : _a.createElement(component) : component;
  242. if (cssClasses) {
  243. cssClasses.forEach(c => el.classList.add(c));
  244. }
  245. if (componentProps) {
  246. Object.assign(el, componentProps);
  247. }
  248. container.appendChild(el);
  249. yield new Promise(resolve => (0,_helpers_3b390e48_js__WEBPACK_IMPORTED_MODULE_1__.c)(el, resolve));
  250. return el;
  251. });
  252. return function attachComponent(_x, _x2, _x3, _x4, _x5, _x6) {
  253. return _ref.apply(this, arguments);
  254. };
  255. }();
  256. const detachComponent = (delegate, element) => {
  257. if (element) {
  258. if (delegate) {
  259. const container = element.parentElement;
  260. return delegate.removeViewFromDom(container, element);
  261. }
  262. element.remove();
  263. }
  264. return Promise.resolve();
  265. };
  266. const CoreDelegate = () => {
  267. let BaseComponent;
  268. let Reference;
  269. const attachViewToDom = /*#__PURE__*/function () {
  270. var _ref2 = (0,_Volumes_App_fm99_app_rev_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function* (parentElement, userComponent, userComponentProps = {}, cssClasses = []) {
  271. var _a, _b;
  272. BaseComponent = parentElement;
  273. /**
  274. * If passing in a component via the `component` props
  275. * we need to append it inside of our overlay component.
  276. */
  277. if (userComponent) {
  278. /**
  279. * If passing in the tag name, create
  280. * the element otherwise just get a reference
  281. * to the component.
  282. */
  283. const el = typeof userComponent === 'string' ? (_a = BaseComponent.ownerDocument) === null || _a === void 0 ? void 0 : _a.createElement(userComponent) : userComponent;
  284. /**
  285. * Add any css classes passed in
  286. * via the cssClasses prop on the overlay.
  287. */
  288. cssClasses.forEach(c => el.classList.add(c));
  289. /**
  290. * Add any props passed in
  291. * via the componentProps prop on the overlay.
  292. */
  293. Object.assign(el, userComponentProps);
  294. /**
  295. * Finally, append the component
  296. * inside of the overlay component.
  297. */
  298. BaseComponent.appendChild(el);
  299. yield new Promise(resolve => (0,_helpers_3b390e48_js__WEBPACK_IMPORTED_MODULE_1__.c)(el, resolve));
  300. } else if (BaseComponent.children.length > 0) {
  301. // If there is no component, then we need to create a new parent
  302. // element to apply the css classes to.
  303. const el = (_b = BaseComponent.ownerDocument) === null || _b === void 0 ? void 0 : _b.createElement('div');
  304. cssClasses.forEach(c => el.classList.add(c)); // Move each child from the original template to the new parent element.
  305. el.append(...BaseComponent.children); // Append the new parent element to the original parent element.
  306. BaseComponent.appendChild(el);
  307. }
  308. /**
  309. * Get the root of the app and
  310. * add the overlay there.
  311. */
  312. const app = document.querySelector('ion-app') || document.body;
  313. /**
  314. * Create a placeholder comment so that
  315. * we can return this component to where
  316. * it was previously.
  317. */
  318. Reference = document.createComment('ionic teleport');
  319. BaseComponent.parentNode.insertBefore(Reference, BaseComponent);
  320. app.appendChild(BaseComponent);
  321. return BaseComponent;
  322. });
  323. return function attachViewToDom(_x7, _x8) {
  324. return _ref2.apply(this, arguments);
  325. };
  326. }();
  327. const removeViewFromDom = () => {
  328. /**
  329. * Return component to where it was previously in the DOM.
  330. */
  331. if (BaseComponent && Reference) {
  332. Reference.parentNode.insertBefore(BaseComponent, Reference);
  333. Reference.remove();
  334. }
  335. return Promise.resolve();
  336. };
  337. return {
  338. attachViewToDom,
  339. removeViewFromDom
  340. };
  341. };
  342. /***/ }),
  343. /***/ 634:
  344. /*!**************************************************************!*\
  345. !*** ./node_modules/@ionic/core/dist/esm/haptic-683b3b3c.js ***!
  346. \**************************************************************/
  347. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  348. __webpack_require__.r(__webpack_exports__);
  349. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  350. /* harmony export */ "a": () => (/* binding */ hapticSelectionStart),
  351. /* harmony export */ "b": () => (/* binding */ hapticSelectionChanged),
  352. /* harmony export */ "c": () => (/* binding */ hapticSelection),
  353. /* harmony export */ "d": () => (/* binding */ hapticImpact),
  354. /* harmony export */ "h": () => (/* binding */ hapticSelectionEnd)
  355. /* harmony export */ });
  356. /*!
  357. * (C) Ionic http://ionicframework.com - MIT License
  358. */
  359. const HapticEngine = {
  360. getEngine() {
  361. var _a;
  362. const win = window;
  363. return win.TapticEngine || ((_a = win.Capacitor) === null || _a === void 0 ? void 0 : _a.isPluginAvailable('Haptics')) && win.Capacitor.Plugins.Haptics;
  364. },
  365. available() {
  366. return !!this.getEngine();
  367. },
  368. isCordova() {
  369. return !!window.TapticEngine;
  370. },
  371. isCapacitor() {
  372. const win = window;
  373. return !!win.Capacitor;
  374. },
  375. impact(options) {
  376. const engine = this.getEngine();
  377. if (!engine) {
  378. return;
  379. }
  380. const style = this.isCapacitor() ? options.style.toUpperCase() : options.style;
  381. engine.impact({
  382. style
  383. });
  384. },
  385. notification(options) {
  386. const engine = this.getEngine();
  387. if (!engine) {
  388. return;
  389. }
  390. const style = this.isCapacitor() ? options.style.toUpperCase() : options.style;
  391. engine.notification({
  392. style
  393. });
  394. },
  395. selection() {
  396. this.impact({
  397. style: 'light'
  398. });
  399. },
  400. selectionStart() {
  401. const engine = this.getEngine();
  402. if (!engine) {
  403. return;
  404. }
  405. if (this.isCapacitor()) {
  406. engine.selectionStart();
  407. } else {
  408. engine.gestureSelectionStart();
  409. }
  410. },
  411. selectionChanged() {
  412. const engine = this.getEngine();
  413. if (!engine) {
  414. return;
  415. }
  416. if (this.isCapacitor()) {
  417. engine.selectionChanged();
  418. } else {
  419. engine.gestureSelectionChanged();
  420. }
  421. },
  422. selectionEnd() {
  423. const engine = this.getEngine();
  424. if (!engine) {
  425. return;
  426. }
  427. if (this.isCapacitor()) {
  428. engine.selectionEnd();
  429. } else {
  430. engine.gestureSelectionEnd();
  431. }
  432. }
  433. };
  434. /**
  435. * Trigger a selection changed haptic event. Good for one-time events
  436. * (not for gestures)
  437. */
  438. const hapticSelection = () => {
  439. HapticEngine.selection();
  440. };
  441. /**
  442. * Tell the haptic engine that a gesture for a selection change is starting.
  443. */
  444. const hapticSelectionStart = () => {
  445. HapticEngine.selectionStart();
  446. };
  447. /**
  448. * Tell the haptic engine that a selection changed during a gesture.
  449. */
  450. const hapticSelectionChanged = () => {
  451. HapticEngine.selectionChanged();
  452. };
  453. /**
  454. * Tell the haptic engine we are done with a gesture. This needs to be
  455. * called lest resources are not properly recycled.
  456. */
  457. const hapticSelectionEnd = () => {
  458. HapticEngine.selectionEnd();
  459. };
  460. /**
  461. * Use this to indicate success/failure/warning to the user.
  462. * options should be of the type `{ style: 'light' }` (or `medium`/`heavy`)
  463. */
  464. const hapticImpact = options => {
  465. HapticEngine.impact(options);
  466. };
  467. /***/ }),
  468. /***/ 2002:
  469. /*!*************************************************************!*\
  470. !*** ./node_modules/@ionic/core/dist/esm/index-40bb69ee.js ***!
  471. \*************************************************************/
  472. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  473. __webpack_require__.r(__webpack_exports__);
  474. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  475. /* harmony export */ "a": () => (/* binding */ arrowBackSharp),
  476. /* harmony export */ "b": () => (/* binding */ closeCircle),
  477. /* harmony export */ "c": () => (/* binding */ chevronBack),
  478. /* harmony export */ "d": () => (/* binding */ closeSharp),
  479. /* harmony export */ "e": () => (/* binding */ searchSharp),
  480. /* harmony export */ "f": () => (/* binding */ checkmarkOutline),
  481. /* harmony export */ "g": () => (/* binding */ ellipseOutline),
  482. /* harmony export */ "h": () => (/* binding */ caretBackSharp),
  483. /* harmony export */ "i": () => (/* binding */ arrowDown),
  484. /* harmony export */ "j": () => (/* binding */ reorderThreeOutline),
  485. /* harmony export */ "k": () => (/* binding */ reorderTwoSharp),
  486. /* harmony export */ "l": () => (/* binding */ chevronDown),
  487. /* harmony export */ "m": () => (/* binding */ chevronForwardOutline),
  488. /* harmony export */ "n": () => (/* binding */ ellipsisHorizontal),
  489. /* harmony export */ "o": () => (/* binding */ chevronForward),
  490. /* harmony export */ "p": () => (/* binding */ caretUpSharp),
  491. /* harmony export */ "q": () => (/* binding */ caretDownSharp),
  492. /* harmony export */ "r": () => (/* binding */ removeOutline),
  493. /* harmony export */ "s": () => (/* binding */ searchOutline),
  494. /* harmony export */ "t": () => (/* binding */ close),
  495. /* harmony export */ "u": () => (/* binding */ menuOutline),
  496. /* harmony export */ "v": () => (/* binding */ menuSharp)
  497. /* harmony export */ });
  498. /*!
  499. * (C) Ionic http://ionicframework.com - MIT License
  500. */
  501. /* Ionicons v6.0.3, ES Modules */
  502. const arrowBackSharp = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Arrow Back</title><path stroke-linecap='square' stroke-miterlimit='10' stroke-width='48' d='M244 400L100 256l144-144M120 256h292' class='ionicon-fill-none'/></svg>";
  503. const arrowDown = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Arrow Down</title><path stroke-linecap='round' stroke-linejoin='round' stroke-width='48' d='M112 268l144 144 144-144M256 392V100' class='ionicon-fill-none'/></svg>";
  504. const caretBackSharp = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Caret Back</title><path d='M368 64L144 256l224 192V64z'/></svg>";
  505. const caretDownSharp = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Caret Down</title><path d='M64 144l192 224 192-224H64z'/></svg>";
  506. const caretUpSharp = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Caret Up</title><path d='M448 368L256 144 64 368h384z'/></svg>";
  507. const checkmarkOutline = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Checkmark</title><path stroke-linecap='round' stroke-linejoin='round' d='M416 128L192 384l-96-96' class='ionicon-fill-none ionicon-stroke-width'/></svg>";
  508. const chevronBack = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chevron Back</title><path stroke-linecap='round' stroke-linejoin='round' stroke-width='48' d='M328 112L184 256l144 144' class='ionicon-fill-none'/></svg>";
  509. const chevronDown = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chevron Down</title><path stroke-linecap='round' stroke-linejoin='round' stroke-width='48' d='M112 184l144 144 144-144' class='ionicon-fill-none'/></svg>";
  510. const chevronForward = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chevron Forward</title><path stroke-linecap='round' stroke-linejoin='round' stroke-width='48' d='M184 112l144 144-144 144' class='ionicon-fill-none'/></svg>";
  511. const chevronForwardOutline = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Chevron Forward</title><path stroke-linecap='round' stroke-linejoin='round' stroke-width='48' d='M184 112l144 144-144 144' class='ionicon-fill-none'/></svg>";
  512. const close = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Close</title><path d='M289.94 256l95-95A24 24 0 00351 127l-95 95-95-95a24 24 0 00-34 34l95 95-95 95a24 24 0 1034 34l95-95 95 95a24 24 0 0034-34z'/></svg>";
  513. const closeCircle = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Close Circle</title><path d='M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm75.31 260.69a16 16 0 11-22.62 22.62L256 278.63l-52.69 52.68a16 16 0 01-22.62-22.62L233.37 256l-52.68-52.69a16 16 0 0122.62-22.62L256 233.37l52.69-52.68a16 16 0 0122.62 22.62L278.63 256z'/></svg>";
  514. const closeSharp = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Close</title><path d='M400 145.49L366.51 112 256 222.51 145.49 112 112 145.49 222.51 256 112 366.51 145.49 400 256 289.49 366.51 400 400 366.51 289.49 256 400 145.49z'/></svg>";
  515. const ellipseOutline = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Ellipse</title><circle cx='256' cy='256' r='192' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none ionicon-stroke-width'/></svg>";
  516. const ellipsisHorizontal = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Ellipsis Horizontal</title><circle cx='256' cy='256' r='48'/><circle cx='416' cy='256' r='48'/><circle cx='96' cy='256' r='48'/></svg>";
  517. const menuOutline = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Menu</title><path stroke-linecap='round' stroke-miterlimit='10' d='M80 160h352M80 256h352M80 352h352' class='ionicon-fill-none ionicon-stroke-width'/></svg>";
  518. const menuSharp = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Menu</title><path d='M64 384h384v-42.67H64zm0-106.67h384v-42.66H64zM64 128v42.67h384V128z'/></svg>";
  519. const removeOutline = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Remove</title><path stroke-linecap='round' stroke-linejoin='round' d='M400 256H112' class='ionicon-fill-none ionicon-stroke-width'/></svg>";
  520. const reorderThreeOutline = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Reorder Three</title><path stroke-linecap='round' stroke-linejoin='round' d='M96 256h320M96 176h320M96 336h320' class='ionicon-fill-none ionicon-stroke-width'/></svg>";
  521. const reorderTwoSharp = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Reorder Two</title><path stroke-linecap='square' stroke-linejoin='round' stroke-width='44' d='M118 304h276M118 208h276' class='ionicon-fill-none'/></svg>";
  522. const searchOutline = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Search</title><path d='M221.09 64a157.09 157.09 0 10157.09 157.09A157.1 157.1 0 00221.09 64z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-miterlimit='10' d='M338.29 338.29L448 448' class='ionicon-fill-none ionicon-stroke-width'/></svg>";
  523. const searchSharp = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><title>Search</title><path d='M464 428L339.92 303.9a160.48 160.48 0 0030.72-94.58C370.64 120.37 298.27 48 209.32 48S48 120.37 48 209.32s72.37 161.32 161.32 161.32a160.48 160.48 0 0094.58-30.72L428 464zM209.32 319.69a110.38 110.38 0 11110.37-110.37 110.5 110.5 0 01-110.37 110.37z'/></svg>";
  524. /***/ }),
  525. /***/ 3081:
  526. /*!*************************************************************!*\
  527. !*** ./node_modules/@ionic/core/dist/esm/index-5d0c8232.js ***!
  528. \*************************************************************/
  529. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  530. __webpack_require__.r(__webpack_exports__);
  531. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  532. /* harmony export */ "I": () => (/* binding */ ION_CONTENT_ELEMENT_SELECTOR),
  533. /* harmony export */ "a": () => (/* binding */ findIonContent),
  534. /* harmony export */ "b": () => (/* binding */ ION_CONTENT_CLASS_SELECTOR),
  535. /* harmony export */ "c": () => (/* binding */ scrollByPoint),
  536. /* harmony export */ "d": () => (/* binding */ disableContentScrollY),
  537. /* harmony export */ "f": () => (/* binding */ findClosestIonContent),
  538. /* harmony export */ "g": () => (/* binding */ getScrollElement),
  539. /* harmony export */ "i": () => (/* binding */ isIonContent),
  540. /* harmony export */ "p": () => (/* binding */ printIonContentErrorMsg),
  541. /* harmony export */ "r": () => (/* binding */ resetContentScrollY),
  542. /* harmony export */ "s": () => (/* binding */ scrollToTop)
  543. /* harmony export */ });
  544. /* harmony import */ var _Volumes_App_fm99_app_rev_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js */ 1670);
  545. /* harmony import */ var _helpers_3b390e48_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helpers-3b390e48.js */ 9234);
  546. /* harmony import */ var _index_c4b11676_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index-c4b11676.js */ 9273);
  547. /*!
  548. * (C) Ionic http://ionicframework.com - MIT License
  549. */
  550. const ION_CONTENT_TAG_NAME = 'ION-CONTENT';
  551. const ION_CONTENT_ELEMENT_SELECTOR = 'ion-content';
  552. const ION_CONTENT_CLASS_SELECTOR = '.ion-content-scroll-host';
  553. /**
  554. * Selector used for implementations reliant on `<ion-content>` for scroll event changes.
  555. *
  556. * Developers should use the `.ion-content-scroll-host` selector to target the element emitting
  557. * scroll events. With virtual scroll implementations this will be the host element for
  558. * the scroll viewport.
  559. */
  560. const ION_CONTENT_SELECTOR = `${ION_CONTENT_ELEMENT_SELECTOR}, ${ION_CONTENT_CLASS_SELECTOR}`;
  561. const isIonContent = el => el.tagName === ION_CONTENT_TAG_NAME;
  562. /**
  563. * Waits for the element host fully initialize before
  564. * returning the inner scroll element.
  565. *
  566. * For `ion-content` the scroll target will be the result
  567. * of the `getScrollElement` function.
  568. *
  569. * For custom implementations it will be the element host
  570. * or a selector within the host, if supplied through `scrollTarget`.
  571. */
  572. const getScrollElement = /*#__PURE__*/function () {
  573. var _ref = (0,_Volumes_App_fm99_app_rev_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_0__["default"])(function* (el) {
  574. if (isIonContent(el)) {
  575. yield new Promise(resolve => (0,_helpers_3b390e48_js__WEBPACK_IMPORTED_MODULE_1__.c)(el, resolve));
  576. return el.getScrollElement();
  577. }
  578. return el;
  579. });
  580. return function getScrollElement(_x) {
  581. return _ref.apply(this, arguments);
  582. };
  583. }();
  584. /**
  585. * Queries the element matching the selector for IonContent.
  586. * See ION_CONTENT_SELECTOR for the selector used.
  587. */
  588. const findIonContent = el => {
  589. /**
  590. * First we try to query the custom scroll host selector in cases where
  591. * the implementation is using an outer `ion-content` with an inner custom
  592. * scroll container.
  593. */
  594. const customContentHost = el.querySelector(ION_CONTENT_CLASS_SELECTOR);
  595. if (customContentHost) {
  596. return customContentHost;
  597. }
  598. return el.querySelector(ION_CONTENT_SELECTOR);
  599. };
  600. /**
  601. * Queries the closest element matching the selector for IonContent.
  602. */
  603. const findClosestIonContent = el => {
  604. return el.closest(ION_CONTENT_SELECTOR);
  605. };
  606. /**
  607. * Scrolls to the top of the element. If an `ion-content` is found, it will scroll
  608. * using the public API `scrollToTop` with a duration.
  609. */
  610. const scrollToTop = (el, durationMs) => {
  611. if (isIonContent(el)) {
  612. const content = el;
  613. return content.scrollToTop(durationMs);
  614. }
  615. return Promise.resolve(el.scrollTo({
  616. top: 0,
  617. left: 0,
  618. behavior: durationMs > 0 ? 'smooth' : 'auto'
  619. }));
  620. };
  621. /**
  622. * Scrolls by a specified X/Y distance in the component. If an `ion-content` is found, it will scroll
  623. * using the public API `scrollByPoint` with a duration.
  624. */
  625. const scrollByPoint = (el, x, y, durationMs) => {
  626. if (isIonContent(el)) {
  627. const content = el;
  628. return content.scrollByPoint(x, y, durationMs);
  629. }
  630. return Promise.resolve(el.scrollBy({
  631. top: y,
  632. left: x,
  633. behavior: durationMs > 0 ? 'smooth' : 'auto'
  634. }));
  635. };
  636. /**
  637. * Prints an error informing developers that an implementation requires an element to be used
  638. * within either the `ion-content` selector or the `.ion-content-scroll-host` class.
  639. */
  640. const printIonContentErrorMsg = el => {
  641. return (0,_index_c4b11676_js__WEBPACK_IMPORTED_MODULE_2__.a)(el, ION_CONTENT_ELEMENT_SELECTOR);
  642. };
  643. /**
  644. * Several components in Ionic need to prevent scrolling
  645. * during a gesture (card modal, range, item sliding, etc).
  646. * Use this utility to account for ion-content and custom content hosts.
  647. */
  648. const disableContentScrollY = contentEl => {
  649. if (isIonContent(contentEl)) {
  650. const ionContent = contentEl;
  651. const initialScrollY = ionContent.scrollY;
  652. ionContent.scrollY = false;
  653. /**
  654. * This should be passed into resetContentScrollY
  655. * so that we can revert ion-content's scrollY to the
  656. * correct state. For example, if scrollY = false
  657. * initially, we do not want to enable scrolling
  658. * when we call resetContentScrollY.
  659. */
  660. return initialScrollY;
  661. } else {
  662. contentEl.style.setProperty('overflow', 'hidden');
  663. return true;
  664. }
  665. };
  666. const resetContentScrollY = (contentEl, initialScrollY) => {
  667. if (isIonContent(contentEl)) {
  668. contentEl.scrollY = initialScrollY;
  669. } else {
  670. contentEl.style.removeProperty('overflow');
  671. }
  672. };
  673. /***/ }),
  674. /***/ 6524:
  675. /*!****************************************************************!*\
  676. !*** ./node_modules/@ionic/core/dist/esm/keyboard-4d5544a0.js ***!
  677. \****************************************************************/
  678. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  679. __webpack_require__.r(__webpack_exports__);
  680. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  681. /* harmony export */ "KEYBOARD_DID_CLOSE": () => (/* binding */ KEYBOARD_DID_CLOSE),
  682. /* harmony export */ "KEYBOARD_DID_OPEN": () => (/* binding */ KEYBOARD_DID_OPEN),
  683. /* harmony export */ "copyVisualViewport": () => (/* binding */ copyVisualViewport),
  684. /* harmony export */ "keyboardDidClose": () => (/* binding */ keyboardDidClose),
  685. /* harmony export */ "keyboardDidOpen": () => (/* binding */ keyboardDidOpen),
  686. /* harmony export */ "keyboardDidResize": () => (/* binding */ keyboardDidResize),
  687. /* harmony export */ "resetKeyboardAssist": () => (/* binding */ resetKeyboardAssist),
  688. /* harmony export */ "setKeyboardClose": () => (/* binding */ setKeyboardClose),
  689. /* harmony export */ "setKeyboardOpen": () => (/* binding */ setKeyboardOpen),
  690. /* harmony export */ "startKeyboardAssist": () => (/* binding */ startKeyboardAssist),
  691. /* harmony export */ "trackViewportChanges": () => (/* binding */ trackViewportChanges)
  692. /* harmony export */ });
  693. /*!
  694. * (C) Ionic http://ionicframework.com - MIT License
  695. */
  696. const KEYBOARD_DID_OPEN = 'ionKeyboardDidShow';
  697. const KEYBOARD_DID_CLOSE = 'ionKeyboardDidHide';
  698. const KEYBOARD_THRESHOLD = 150;
  699. let previousVisualViewport = {};
  700. let currentVisualViewport = {};
  701. let keyboardOpen = false;
  702. /**
  703. * This is only used for tests
  704. */
  705. const resetKeyboardAssist = () => {
  706. previousVisualViewport = {};
  707. currentVisualViewport = {};
  708. keyboardOpen = false;
  709. };
  710. const startKeyboardAssist = win => {
  711. startNativeListeners(win);
  712. if (!win.visualViewport) {
  713. return;
  714. }
  715. currentVisualViewport = copyVisualViewport(win.visualViewport);
  716. win.visualViewport.onresize = () => {
  717. trackViewportChanges(win);
  718. if (keyboardDidOpen() || keyboardDidResize(win)) {
  719. setKeyboardOpen(win);
  720. } else if (keyboardDidClose(win)) {
  721. setKeyboardClose(win);
  722. }
  723. };
  724. };
  725. /**
  726. * Listen for events fired by native keyboard plugin
  727. * in Capacitor/Cordova so devs only need to listen
  728. * in one place.
  729. */
  730. const startNativeListeners = win => {
  731. win.addEventListener('keyboardDidShow', ev => setKeyboardOpen(win, ev));
  732. win.addEventListener('keyboardDidHide', () => setKeyboardClose(win));
  733. };
  734. const setKeyboardOpen = (win, ev) => {
  735. fireKeyboardOpenEvent(win, ev);
  736. keyboardOpen = true;
  737. };
  738. const setKeyboardClose = win => {
  739. fireKeyboardCloseEvent(win);
  740. keyboardOpen = false;
  741. };
  742. /**
  743. * Returns `true` if the `keyboardOpen` flag is not
  744. * set, the previous visual viewport width equal the current
  745. * visual viewport width, and if the scaled difference
  746. * of the previous visual viewport height minus the current
  747. * visual viewport height is greater than KEYBOARD_THRESHOLD
  748. *
  749. * We need to be able to accommodate users who have zooming
  750. * enabled in their browser (or have zoomed in manually) which
  751. * is why we take into account the current visual viewport's
  752. * scale value.
  753. */
  754. const keyboardDidOpen = () => {
  755. const scaledHeightDifference = (previousVisualViewport.height - currentVisualViewport.height) * currentVisualViewport.scale;
  756. return !keyboardOpen && previousVisualViewport.width === currentVisualViewport.width && scaledHeightDifference > KEYBOARD_THRESHOLD;
  757. };
  758. /**
  759. * Returns `true` if the keyboard is open,
  760. * but the keyboard did not close
  761. */
  762. const keyboardDidResize = win => {
  763. return keyboardOpen && !keyboardDidClose(win);
  764. };
  765. /**
  766. * Determine if the keyboard was closed
  767. * Returns `true` if the `keyboardOpen` flag is set and
  768. * the current visual viewport height equals the
  769. * layout viewport height.
  770. */
  771. const keyboardDidClose = win => {
  772. return keyboardOpen && currentVisualViewport.height === win.innerHeight;
  773. };
  774. /**
  775. * Dispatch a keyboard open event
  776. */
  777. const fireKeyboardOpenEvent = (win, nativeEv) => {
  778. const keyboardHeight = nativeEv ? nativeEv.keyboardHeight : win.innerHeight - currentVisualViewport.height;
  779. const ev = new CustomEvent(KEYBOARD_DID_OPEN, {
  780. detail: {
  781. keyboardHeight
  782. }
  783. });
  784. win.dispatchEvent(ev);
  785. };
  786. /**
  787. * Dispatch a keyboard close event
  788. */
  789. const fireKeyboardCloseEvent = win => {
  790. const ev = new CustomEvent(KEYBOARD_DID_CLOSE);
  791. win.dispatchEvent(ev);
  792. };
  793. /**
  794. * Given a window object, create a copy of
  795. * the current visual and layout viewport states
  796. * while also preserving the previous visual and
  797. * layout viewport states
  798. */
  799. const trackViewportChanges = win => {
  800. previousVisualViewport = Object.assign({}, currentVisualViewport);
  801. currentVisualViewport = copyVisualViewport(win.visualViewport);
  802. };
  803. /**
  804. * Creates a deep copy of the visual viewport
  805. * at a given state
  806. */
  807. const copyVisualViewport = visualViewport => {
  808. return {
  809. width: Math.round(visualViewport.width),
  810. height: Math.round(visualViewport.height),
  811. offsetTop: visualViewport.offsetTop,
  812. offsetLeft: visualViewport.offsetLeft,
  813. pageTop: visualViewport.pageTop,
  814. pageLeft: visualViewport.pageLeft,
  815. scale: visualViewport.scale
  816. };
  817. };
  818. /***/ }),
  819. /***/ 3963:
  820. /*!***************************************************************************!*\
  821. !*** ./node_modules/@ionic/core/dist/esm/keyboard-controller-73af62b2.js ***!
  822. \***************************************************************************/
  823. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  824. __webpack_require__.r(__webpack_exports__);
  825. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  826. /* harmony export */ "c": () => (/* binding */ createKeyboardController)
  827. /* harmony export */ });
  828. /* harmony import */ var _index_33ffec25_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index-33ffec25.js */ 2286);
  829. /*!
  830. * (C) Ionic http://ionicframework.com - MIT License
  831. */
  832. /**
  833. * Creates a controller that tracks and reacts to opening or closing the keyboard.
  834. *
  835. * @internal
  836. * @param keyboardChangeCallback A function to call when the keyboard opens or closes.
  837. */
  838. const createKeyboardController = keyboardChangeCallback => {
  839. let keyboardWillShowHandler;
  840. let keyboardWillHideHandler;
  841. let keyboardVisible;
  842. const init = () => {
  843. keyboardWillShowHandler = () => {
  844. keyboardVisible = true;
  845. if (keyboardChangeCallback) keyboardChangeCallback(true);
  846. };
  847. keyboardWillHideHandler = () => {
  848. keyboardVisible = false;
  849. if (keyboardChangeCallback) keyboardChangeCallback(false);
  850. };
  851. _index_33ffec25_js__WEBPACK_IMPORTED_MODULE_0__.w === null || _index_33ffec25_js__WEBPACK_IMPORTED_MODULE_0__.w === void 0 ? void 0 : _index_33ffec25_js__WEBPACK_IMPORTED_MODULE_0__.w.addEventListener('keyboardWillShow', keyboardWillShowHandler);
  852. _index_33ffec25_js__WEBPACK_IMPORTED_MODULE_0__.w === null || _index_33ffec25_js__WEBPACK_IMPORTED_MODULE_0__.w === void 0 ? void 0 : _index_33ffec25_js__WEBPACK_IMPORTED_MODULE_0__.w.addEventListener('keyboardWillHide', keyboardWillHideHandler);
  853. };
  854. const destroy = () => {
  855. _index_33ffec25_js__WEBPACK_IMPORTED_MODULE_0__.w === null || _index_33ffec25_js__WEBPACK_IMPORTED_MODULE_0__.w === void 0 ? void 0 : _index_33ffec25_js__WEBPACK_IMPORTED_MODULE_0__.w.removeEventListener('keyboardWillShow', keyboardWillShowHandler);
  856. _index_33ffec25_js__WEBPACK_IMPORTED_MODULE_0__.w === null || _index_33ffec25_js__WEBPACK_IMPORTED_MODULE_0__.w === void 0 ? void 0 : _index_33ffec25_js__WEBPACK_IMPORTED_MODULE_0__.w.removeEventListener('keyboardWillHide', keyboardWillHideHandler);
  857. keyboardWillShowHandler = keyboardWillHideHandler = undefined;
  858. };
  859. const isKeyboardVisible = () => keyboardVisible;
  860. init();
  861. return {
  862. init,
  863. destroy,
  864. isKeyboardVisible
  865. };
  866. };
  867. /***/ }),
  868. /***/ 3844:
  869. /*!***********************************************************************!*\
  870. !*** ./node_modules/@ionic/core/dist/esm/spinner-configs-5d6b6fe7.js ***!
  871. \***********************************************************************/
  872. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  873. __webpack_require__.r(__webpack_exports__);
  874. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  875. /* harmony export */ "S": () => (/* binding */ SPINNERS)
  876. /* harmony export */ });
  877. /*!
  878. * (C) Ionic http://ionicframework.com - MIT License
  879. */
  880. const spinners = {
  881. bubbles: {
  882. dur: 1000,
  883. circles: 9,
  884. fn: (dur, index, total) => {
  885. const animationDelay = `${dur * index / total - dur}ms`;
  886. const angle = 2 * Math.PI * index / total;
  887. return {
  888. r: 5,
  889. style: {
  890. top: `${9 * Math.sin(angle)}px`,
  891. left: `${9 * Math.cos(angle)}px`,
  892. 'animation-delay': animationDelay
  893. }
  894. };
  895. }
  896. },
  897. circles: {
  898. dur: 1000,
  899. circles: 8,
  900. fn: (dur, index, total) => {
  901. const step = index / total;
  902. const animationDelay = `${dur * step - dur}ms`;
  903. const angle = 2 * Math.PI * step;
  904. return {
  905. r: 5,
  906. style: {
  907. top: `${9 * Math.sin(angle)}px`,
  908. left: `${9 * Math.cos(angle)}px`,
  909. 'animation-delay': animationDelay
  910. }
  911. };
  912. }
  913. },
  914. circular: {
  915. dur: 1400,
  916. elmDuration: true,
  917. circles: 1,
  918. fn: () => {
  919. return {
  920. r: 20,
  921. cx: 48,
  922. cy: 48,
  923. fill: 'none',
  924. viewBox: '24 24 48 48',
  925. transform: 'translate(0,0)',
  926. style: {}
  927. };
  928. }
  929. },
  930. crescent: {
  931. dur: 750,
  932. circles: 1,
  933. fn: () => {
  934. return {
  935. r: 26,
  936. style: {}
  937. };
  938. }
  939. },
  940. dots: {
  941. dur: 750,
  942. circles: 3,
  943. fn: (_, index) => {
  944. const animationDelay = -(110 * index) + 'ms';
  945. return {
  946. r: 6,
  947. style: {
  948. left: `${9 - 9 * index}px`,
  949. 'animation-delay': animationDelay
  950. }
  951. };
  952. }
  953. },
  954. lines: {
  955. dur: 1000,
  956. lines: 8,
  957. fn: (dur, index, total) => {
  958. const transform = `rotate(${360 / total * index + (index < total / 2 ? 180 : -180)}deg)`;
  959. const animationDelay = `${dur * index / total - dur}ms`;
  960. return {
  961. y1: 14,
  962. y2: 26,
  963. style: {
  964. transform: transform,
  965. 'animation-delay': animationDelay
  966. }
  967. };
  968. }
  969. },
  970. 'lines-small': {
  971. dur: 1000,
  972. lines: 8,
  973. fn: (dur, index, total) => {
  974. const transform = `rotate(${360 / total * index + (index < total / 2 ? 180 : -180)}deg)`;
  975. const animationDelay = `${dur * index / total - dur}ms`;
  976. return {
  977. y1: 12,
  978. y2: 20,
  979. style: {
  980. transform: transform,
  981. 'animation-delay': animationDelay
  982. }
  983. };
  984. }
  985. },
  986. 'lines-sharp': {
  987. dur: 1000,
  988. lines: 12,
  989. fn: (dur, index, total) => {
  990. const transform = `rotate(${30 * index + (index < 6 ? 180 : -180)}deg)`;
  991. const animationDelay = `${dur * index / total - dur}ms`;
  992. return {
  993. y1: 17,
  994. y2: 29,
  995. style: {
  996. transform: transform,
  997. 'animation-delay': animationDelay
  998. }
  999. };
  1000. }
  1001. },
  1002. 'lines-sharp-small': {
  1003. dur: 1000,
  1004. lines: 12,
  1005. fn: (dur, index, total) => {
  1006. const transform = `rotate(${30 * index + (index < 6 ? 180 : -180)}deg)`;
  1007. const animationDelay = `${dur * index / total - dur}ms`;
  1008. return {
  1009. y1: 12,
  1010. y2: 20,
  1011. style: {
  1012. transform: transform,
  1013. 'animation-delay': animationDelay
  1014. }
  1015. };
  1016. }
  1017. }
  1018. };
  1019. const SPINNERS = spinners;
  1020. /***/ }),
  1021. /***/ 4114:
  1022. /*!******************************************************************!*\
  1023. !*** ./node_modules/@ionic/core/dist/esm/swipe-back-5351da01.js ***!
  1024. \******************************************************************/
  1025. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  1026. __webpack_require__.r(__webpack_exports__);
  1027. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  1028. /* harmony export */ "createSwipeBackGesture": () => (/* binding */ createSwipeBackGesture)
  1029. /* harmony export */ });
  1030. /* harmony import */ var _helpers_3b390e48_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helpers-3b390e48.js */ 9234);
  1031. /* harmony import */ var _dir_e8b767a8_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dir-e8b767a8.js */ 7481);
  1032. /* harmony import */ var _index_f8d8aa5a_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index-f8d8aa5a.js */ 9286);
  1033. /* harmony import */ var _gesture_controller_17060b7c_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./gesture-controller-17060b7c.js */ 6379);
  1034. /*!
  1035. * (C) Ionic http://ionicframework.com - MIT License
  1036. */
  1037. const createSwipeBackGesture = (el, canStartHandler, onStartHandler, onMoveHandler, onEndHandler) => {
  1038. const win = el.ownerDocument.defaultView;
  1039. const rtl = (0,_dir_e8b767a8_js__WEBPACK_IMPORTED_MODULE_1__.i)(el);
  1040. /**
  1041. * Determine if a gesture is near the edge
  1042. * of the screen. If true, then the swipe
  1043. * to go back gesture should proceed.
  1044. */
  1045. const isAtEdge = detail => {
  1046. const threshold = 50;
  1047. const {
  1048. startX
  1049. } = detail;
  1050. if (rtl) {
  1051. return startX >= win.innerWidth - threshold;
  1052. }
  1053. return startX <= threshold;
  1054. };
  1055. const getDeltaX = detail => {
  1056. return rtl ? -detail.deltaX : detail.deltaX;
  1057. };
  1058. const getVelocityX = detail => {
  1059. return rtl ? -detail.velocityX : detail.velocityX;
  1060. };
  1061. const canStart = detail => {
  1062. return isAtEdge(detail) && canStartHandler();
  1063. };
  1064. const onMove = detail => {
  1065. // set the transition animation's progress
  1066. const delta = getDeltaX(detail);
  1067. const stepValue = delta / win.innerWidth;
  1068. onMoveHandler(stepValue);
  1069. };
  1070. const onEnd = detail => {
  1071. // the swipe back gesture has ended
  1072. const delta = getDeltaX(detail);
  1073. const width = win.innerWidth;
  1074. const stepValue = delta / width;
  1075. const velocity = getVelocityX(detail);
  1076. const z = width / 2.0;
  1077. const shouldComplete = velocity >= 0 && (velocity > 0.2 || delta > z);
  1078. const missing = shouldComplete ? 1 - stepValue : stepValue;
  1079. const missingDistance = missing * width;
  1080. let realDur = 0;
  1081. if (missingDistance > 5) {
  1082. const dur = missingDistance / Math.abs(velocity);
  1083. realDur = Math.min(dur, 540);
  1084. }
  1085. /**
  1086. * TODO: stepValue can sometimes return negative values
  1087. * or values greater than 1 which should not be possible.
  1088. * Need to investigate more to find where the issue is.
  1089. */
  1090. onEndHandler(shouldComplete, stepValue <= 0 ? 0.01 : (0,_helpers_3b390e48_js__WEBPACK_IMPORTED_MODULE_0__.l)(0, stepValue, 0.9999), realDur);
  1091. };
  1092. return (0,_index_f8d8aa5a_js__WEBPACK_IMPORTED_MODULE_2__.createGesture)({
  1093. el,
  1094. gestureName: 'goback-swipe',
  1095. gesturePriority: 40,
  1096. threshold: 10,
  1097. canStart,
  1098. onStart: onStartHandler,
  1099. onMove,
  1100. onEnd
  1101. });
  1102. };
  1103. /***/ })
  1104. }]);
  1105. //# sourceMappingURL=common.js.map