UNPKG

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.

255 lines (254 loc) 16.1 kB
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; import { r as registerInstance, d as createEvent, h, H as Host, e as getElement } from './index-b6f64b02.js'; import { g as getIonMode, c as config } from './ionic-global-5d790111.js'; import './helpers-4a6bd295.js'; import { c as createAnimation } from './animation-3124e2ad.js'; import { s as sanitizeDOMString } from './index-86d5f3ab.js'; import './hardware-back-button-b3b61715.js'; import { B as BACKDROP, p as prepareOverlay, a as present, d as dismiss, e as eventMethod } from './overlays-40d1f8b3.js'; import { g as getClassMap } from './theme-74c22054.js'; /** * iOS Loading Enter Animation */ var iosEnterAnimation = function (baseEl) { var baseAnimation = createAnimation(); var backdropAnimation = createAnimation(); var wrapperAnimation = createAnimation(); backdropAnimation .addElement(baseEl.querySelector('ion-backdrop')) .fromTo('opacity', 0.01, 'var(--backdrop-opacity)') .beforeStyles({ 'pointer-events': 'none' }) .afterClearStyles(['pointer-events']); wrapperAnimation .addElement(baseEl.querySelector('.loading-wrapper')) .keyframes([ { offset: 0, opacity: 0.01, transform: 'scale(1.1)' }, { offset: 1, opacity: 1, transform: 'scale(1)' } ]); return baseAnimation .addElement(baseEl) .easing('ease-in-out') .duration(200) .addAnimation([backdropAnimation, wrapperAnimation]); }; /** * iOS Loading Leave Animation */ var iosLeaveAnimation = function (baseEl) { var baseAnimation = createAnimation(); var backdropAnimation = createAnimation(); var wrapperAnimation = createAnimation(); backdropAnimation .addElement(baseEl.querySelector('ion-backdrop')) .fromTo('opacity', 'var(--backdrop-opacity)', 0); wrapperAnimation .addElement(baseEl.querySelector('.loading-wrapper')) .keyframes([ { offset: 0, opacity: 0.99, transform: 'scale(1)' }, { offset: 1, opacity: 0, transform: 'scale(0.9)' } ]); return baseAnimation .addElement(baseEl) .easing('ease-in-out') .duration(200) .addAnimation([backdropAnimation, wrapperAnimation]); }; /** * Md Loading Enter Animation */ var mdEnterAnimation = function (baseEl) { var baseAnimation = createAnimation(); var backdropAnimation = createAnimation(); var wrapperAnimation = createAnimation(); backdropAnimation .addElement(baseEl.querySelector('ion-backdrop')) .fromTo('opacity', 0.01, 'var(--backdrop-opacity)') .beforeStyles({ 'pointer-events': 'none' }) .afterClearStyles(['pointer-events']); wrapperAnimation .addElement(baseEl.querySelector('.loading-wrapper')) .keyframes([ { offset: 0, opacity: 0.01, transform: 'scale(1.1)' }, { offset: 1, opacity: 1, transform: 'scale(1)' } ]); return baseAnimation .addElement(baseEl) .easing('ease-in-out') .duration(200) .addAnimation([backdropAnimation, wrapperAnimation]); }; /** * Md Loading Leave Animation */ var mdLeaveAnimation = function (baseEl) { var baseAnimation = createAnimation(); var backdropAnimation = createAnimation(); var wrapperAnimation = createAnimation(); backdropAnimation .addElement(baseEl.querySelector('ion-backdrop')) .fromTo('opacity', 'var(--backdrop-opacity)', 0); wrapperAnimation .addElement(baseEl.querySelector('.loading-wrapper')) .keyframes([ { offset: 0, opacity: 0.99, transform: 'scale(1)' }, { offset: 1, opacity: 0, transform: 'scale(0.9)' } ]); return baseAnimation .addElement(baseEl) .easing('ease-in-out') .duration(200) .addAnimation([backdropAnimation, wrapperAnimation]); }; var loadingIosCss = ".sc-ion-loading-ios-h{--min-width:auto;--width:auto;--min-height:auto;--height:auto;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:fixed;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;font-family:var(--ion-font-family, inherit);contain:strict;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-loading-ios-h{display:none}.loading-wrapper.sc-ion-loading-ios{display:-ms-flexbox;display:flex;-ms-flex-align:inherit;align-items:inherit;-ms-flex-pack:inherit;justify-content:inherit;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);opacity:0;z-index:10}.spinner-lines.sc-ion-loading-ios,.spinner-lines-small.sc-ion-loading-ios,.spinner-bubbles.sc-ion-loading-ios,.spinner-circles.sc-ion-loading-ios,.spinner-crescent.sc-ion-loading-ios,.spinner-dots.sc-ion-loading-ios{color:var(--spinner-color)}.sc-ion-loading-ios-h{--background:var(--ion-overlay-background-color, var(--ion-color-step-100, #f9f9f9));--max-width:270px;--max-height:90%;--spinner-color:var(--ion-color-step-600, #666666);--backdrop-opacity:var(--ion-backdrop-opacity, 0.3);color:var(--ion-text-color, #000);font-size:14px}.loading-wrapper.sc-ion-loading-ios{border-radius:8px;padding-left:34px;padding-right:34px;padding-top:24px;padding-bottom:24px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.loading-wrapper.sc-ion-loading-ios{padding-left:unset;padding-right:unset;-webkit-padding-start:34px;padding-inline-start:34px;-webkit-padding-end:34px;padding-inline-end:34px}}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.loading-translucent.sc-ion-loading-ios-h .loading-wrapper.sc-ion-loading-ios{background-color:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}.loading-content.sc-ion-loading-ios{font-weight:bold}.loading-spinner.sc-ion-loading-ios+.loading-content.sc-ion-loading-ios{margin-left:16px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.loading-spinner.sc-ion-loading-ios+.loading-content.sc-ion-loading-ios{margin-left:unset;-webkit-margin-start:16px;margin-inline-start:16px}}"; var loadingMdCss = ".sc-ion-loading-md-h{--min-width:auto;--width:auto;--min-height:auto;--height:auto;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:fixed;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;font-family:var(--ion-font-family, inherit);contain:strict;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-loading-md-h{display:none}.loading-wrapper.sc-ion-loading-md{display:-ms-flexbox;display:flex;-ms-flex-align:inherit;align-items:inherit;-ms-flex-pack:inherit;justify-content:inherit;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);opacity:0;z-index:10}.spinner-lines.sc-ion-loading-md,.spinner-lines-small.sc-ion-loading-md,.spinner-bubbles.sc-ion-loading-md,.spinner-circles.sc-ion-loading-md,.spinner-crescent.sc-ion-loading-md,.spinner-dots.sc-ion-loading-md{color:var(--spinner-color)}.sc-ion-loading-md-h{--background:var(--ion-color-step-50, #f2f2f2);--max-width:280px;--max-height:90%;--spinner-color:var(--ion-color-primary, #3880ff);--backdrop-opacity:var(--ion-backdrop-opacity, 0.32);color:var(--ion-color-step-850, #262626);font-size:14px}.loading-wrapper.sc-ion-loading-md{border-radius:2px;padding-left:24px;padding-right:24px;padding-top:24px;padding-bottom:24px;-webkit-box-shadow:0 16px 20px rgba(0, 0, 0, 0.4);box-shadow:0 16px 20px rgba(0, 0, 0, 0.4)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.loading-wrapper.sc-ion-loading-md{padding-left:unset;padding-right:unset;-webkit-padding-start:24px;padding-inline-start:24px;-webkit-padding-end:24px;padding-inline-end:24px}}.loading-spinner.sc-ion-loading-md+.loading-content.sc-ion-loading-md{margin-left:16px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.loading-spinner.sc-ion-loading-md+.loading-content.sc-ion-loading-md{margin-left:unset;-webkit-margin-start:16px;margin-inline-start:16px}}"; var Loading = /** @class */ (function () { function class_1(hostRef) { var _this = this; registerInstance(this, hostRef); this.presented = false; /** * If `true`, the keyboard will be automatically dismissed when the overlay is presented. */ this.keyboardClose = true; /** * Number of milliseconds to wait before dismissing the loading indicator. */ this.duration = 0; /** * If `true`, the loading indicator will be dismissed when the backdrop is clicked. */ this.backdropDismiss = false; /** * If `true`, a backdrop will be displayed behind the loading indicator. */ this.showBackdrop = true; /** * If `true`, the loading indicator will be translucent. * Only applies when the mode is `"ios"` and the device supports * [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility). */ this.translucent = false; /** * If `true`, the loading indicator will animate. */ this.animated = true; this.onBackdropTap = function () { _this.dismiss(undefined, BACKDROP); }; prepareOverlay(this.el); this.didPresent = createEvent(this, "ionLoadingDidPresent", 7); this.willPresent = createEvent(this, "ionLoadingWillPresent", 7); this.willDismiss = createEvent(this, "ionLoadingWillDismiss", 7); this.didDismiss = createEvent(this, "ionLoadingDidDismiss", 7); } class_1.prototype.componentWillLoad = function () { if (this.spinner === undefined) { var mode = getIonMode(this); this.spinner = config.get('loadingSpinner', config.get('spinner', mode === 'ios' ? 'lines' : 'crescent')); } }; /** * Present the loading overlay after it has been created. */ class_1.prototype.present = function () { return __awaiter(this, void 0, void 0, function () { var _this = this; return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, present(this, 'loadingEnter', iosEnterAnimation, mdEnterAnimation, undefined)]; case 1: _a.sent(); if (this.duration > 0) { this.durationTimeout = setTimeout(function () { return _this.dismiss(); }, this.duration + 10); } return [2 /*return*/]; } }); }); }; /** * Dismiss the loading overlay after it has been presented. * * @param data Any data to emit in the dismiss events. * @param role The role of the element that is dismissing the loading. * This can be useful in a button handler for determining which button was * clicked to dismiss the loading. * Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`. */ class_1.prototype.dismiss = function (data, role) { if (this.durationTimeout) { clearTimeout(this.durationTimeout); } return dismiss(this, data, role, 'loadingLeave', iosLeaveAnimation, mdLeaveAnimation); }; /** * Returns a promise that resolves when the loading did dismiss. */ class_1.prototype.onDidDismiss = function () { return eventMethod(this.el, 'ionLoadingDidDismiss'); }; /** * Returns a promise that resolves when the loading will dismiss. */ class_1.prototype.onWillDismiss = function () { return eventMethod(this.el, 'ionLoadingWillDismiss'); }; class_1.prototype.render = function () { var _a; var _b = this, message = _b.message, spinner = _b.spinner; var mode = getIonMode(this); return (h(Host, { onIonBackdropTap: this.onBackdropTap, tabindex: "-1", style: { zIndex: "" + (40000 + this.overlayIndex) }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), (_a = {}, _a[mode] = true, _a['loading-translucent'] = this.translucent, _a)) }, h("ion-backdrop", { visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { class: "loading-wrapper", role: "dialog" }, spinner && (h("div", { class: "loading-spinner" }, h("ion-spinner", { name: spinner, "aria-hidden": "true" }))), message && h("div", { class: "loading-content", innerHTML: sanitizeDOMString(message) })))); }; Object.defineProperty(class_1.prototype, "el", { get: function () { return getElement(this); }, enumerable: true, configurable: true }); return class_1; }()); Loading.style = { /*STENCIL:MODE:ios*/ ios: loadingIosCss, /*STENCIL:MODE:md*/ md: loadingMdCss }; export { Loading as ion_loading };