Нет описания

common.js 46KB

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