theme-d1c573d2.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /*!
  2. * (C) Ionic http://ionicframework.com - MIT License
  3. */
  4. 'use strict';
  5. const hostContext = (selector, el) => {
  6. return el.closest(selector) !== null;
  7. };
  8. /**
  9. * Create the mode and color classes for the component based on the classes passed in
  10. */
  11. const createColorClasses = (color, cssClassMap) => {
  12. return typeof color === 'string' && color.length > 0
  13. ? Object.assign({ 'ion-color': true, [`ion-color-${color}`]: true }, cssClassMap) : cssClassMap;
  14. };
  15. const getClassList = (classes) => {
  16. if (classes !== undefined) {
  17. const array = Array.isArray(classes) ? classes : classes.split(' ');
  18. return array
  19. .filter((c) => c != null)
  20. .map((c) => c.trim())
  21. .filter((c) => c !== '');
  22. }
  23. return [];
  24. };
  25. const getClassMap = (classes) => {
  26. const map = {};
  27. getClassList(classes).forEach((c) => (map[c] = true));
  28. return map;
  29. };
  30. const SCHEME = /^[a-z][a-z0-9+\-.]*:/;
  31. const openURL = async (url, ev, direction, animation) => {
  32. if (url != null && url[0] !== '#' && !SCHEME.test(url)) {
  33. const router = document.querySelector('ion-router');
  34. if (router) {
  35. if (ev != null) {
  36. ev.preventDefault();
  37. }
  38. return router.push(url, direction, animation);
  39. }
  40. }
  41. return false;
  42. };
  43. exports.createColorClasses = createColorClasses;
  44. exports.getClassMap = getClassMap;
  45. exports.hostContext = hostContext;
  46. exports.openURL = openURL;