UNPKG

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