test-isc
Version:
An Ionic component similar to Ionic Select, that allows to search items, including async search, group, add, edit, delete items, and much more.
43 lines (42 loc) • 1.56 kB
JavaScript
export function format(first, middle, last) {
return (first || '') + (middle ? ` ${middle}` : '') + (last ? ` ${last}` : '');
}
export const findItemLabel = (componentElement) => {
const itemElement = componentElement.closest('ion-item');
if (itemElement) {
return itemElement.querySelector('ion-label');
}
return null;
};
export const findItem = (componentEl) => {
const itemEl = componentEl.closest('ion-item');
return itemEl;
};
export const addRippleEffectElement = (componentElement) => {
const itemElement = componentElement.closest('ion-item');
const itemNative = itemElement.shadowRoot.querySelector('div.item-native');
if (itemNative) {
const ionRipple = itemNative.ownerDocument.createElement('ion-ripple-effect');
itemNative.appendChild(ionRipple);
}
};
export const hostContext = (selector, element) => {
return element.closest(selector) !== null;
};
export const renderHiddenInput = (always, container, name, value, disabled) => {
if (always || hasShadowDom(container)) {
let input = container.querySelector('input.aux-input');
if (!input) {
input = container.ownerDocument.createElement('input');
input.type = 'hidden';
input.classList.add('aux-input');
container.appendChild(input);
}
input.disabled = disabled;
input.name = name;
input.value = value || '';
}
};
export const hasShadowDom = (element) => {
return !!element.shadowRoot && !!element.attachShadow;
};