UNPKG

ngx-modialog-10

Version:
151 lines 13.7 kB
/** * @fileoverview added by tsickle * Generated from: lib/models/overlay-context.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { FluentAssign } from './../framework/fluent-assign'; import { extend, arrayUnion } from './../framework/utils'; const ɵ0 = /** * @param {?} keyCode * @return {?} */ function supportsKey(keyCode) { return ((/** @type {?} */ (this.keyboard))).indexOf(keyCode) > -1; }; /** @type {?} */ export const DEFAULT_VALUES = { inElement: false, isBlocking: true, keyboard: [27], supportsKey: (ɵ0) }; /** @type {?} */ const DEFAULT_SETTERS = [ 'inElement', 'isBlocking', 'keyboard' ]; export class OverlayContext { /** * @return {?} */ normalize() { if (this.isBlocking !== false) { this.isBlocking = true; } if (this.keyboard === null) { this.keyboard = []; } else if (typeof this.keyboard === 'number') { this.keyboard = [(/** @type {?} */ (this.keyboard))]; } else if (!Array.isArray((/** @type {?} */ (this.keyboard)))) { this.keyboard = DEFAULT_VALUES.keyboard; } } } if (false) { /** * Describes if the modal is rendered within the container element. * The container element is the ViewContainerRef supplied. * Defaults to false. * @type {?} */ OverlayContext.prototype.inElement; /** * Describes if the modal is blocking modal. * A Blocking modal is not closable by clicking outside of the modal window. * Defaults to false. * @type {?} */ OverlayContext.prototype.isBlocking; /** * Keyboard value/s that close the modal. * Accepts either a single numeric value or an array of numeric values. * A modal closed by a keyboard stroke will result in a 'reject' notification from the promise. * Defaults to 27, set `null` implicitly to disable. * @type {?} */ OverlayContext.prototype.keyboard; } /** * A core context builder for a modal window instance, used to define the context upon * a modal choose it's behaviour. * @template T */ export class OverlayContextBuilder extends FluentAssign { /** * @param {?=} defaultValues * @param {?=} initialSetters * @param {?=} baseType */ constructor(defaultValues, initialSetters, baseType) { super(extend(DEFAULT_VALUES, defaultValues || {}), arrayUnion(DEFAULT_SETTERS, initialSetters || []), baseType || (/** @type {?} */ (OverlayContext)) // https://github.com/Microsoft/TypeScript/issues/7234 ); } /** * Returns an new OverlayConfig with a context property representing the data in this builder. * @param {?=} base A base configuration that the result will extend * @return {?} */ toOverlayConfig(base) { return extend(base || {}, { context: this.toJSON() }); } } if (false) { /** * Describes if the modal is rendered within the container element. * The container element is the ViewContainerRef supplied. * Defaults to false. * @type {?} */ OverlayContextBuilder.prototype.inElement; /** * Describes if the modal is blocking modal. * A Blocking modal is not closable by clicking outside of the modal window. * Defaults to false. * @type {?} */ OverlayContextBuilder.prototype.isBlocking; /** * Keyboard value/s that close the modal. * Accepts either a single numeric value or an array of numeric values. * A modal closed by a keyboard stroke will result in a 'reject' notification from the promise. * Defaults to 27, set `null` implicitly to disable. * @type {?} */ OverlayContextBuilder.prototype.keyboard; } /** * @record * @template T */ export function ModalControllingContextBuilder() { } if (false) { /** * @param {?=} viewContainer * @return {?} */ ModalControllingContextBuilder.prototype.open = function (viewContainer) { }; } /** * A helper to create an `OverlayConfig` on the fly. * Since `OverlayConfig` requires context it means a builder is needed, this process had some boilerplate. * When a quick, on the fly overlay config is needed use this helper to avoid that boilerplate. * * A builder is used as an API to allow setting the context and providing some operations around the modal. * When a developers knows the context before hand we can skip this step, this is what this factory is for. * * @template T * @param {?} context The context for the modal * @param {?=} baseContextType Optional. The type/class of the context. This is the class used to init a new instance of the context * @param {?=} baseConfig A base configuration that the result will extend * @return {?} */ export function overlayConfigFactory(context, baseContextType, baseConfig) { return new OverlayContextBuilder((/** @type {?} */ (context)), undefined, baseContextType).toOverlayConfig(baseConfig); } export { ɵ0 }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1jb250ZXh0LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LW1vZGlhbG9nLTEwLyIsInNvdXJjZXMiOlsibGliL21vZGVscy9vdmVybGF5LWNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFzQixNQUFNLDhCQUE4QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7O0FBUTNDLFNBQVMsV0FBVyxDQUFDLE9BQWU7SUFDL0MsT0FBTyxDQUFDLG1CQUFlLElBQUksQ0FBQyxRQUFRLEVBQUEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM5RCxDQUFDOztBQU5ILE1BQU0sT0FBTyxjQUFjLEdBQUc7SUFDNUIsU0FBUyxFQUFFLEtBQUs7SUFDaEIsVUFBVSxFQUFFLElBQUk7SUFDaEIsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ2QsV0FBVyxNQUVWO0NBQ0Y7O01BRUssZUFBZSxHQUFHO0lBQ3RCLFdBQVc7SUFDWCxZQUFZO0lBQ1osVUFBVTtDQUNYO0FBRUQsTUFBTSxPQUFPLGNBQWM7Ozs7SUF1QnpCLFNBQVM7UUFDUCxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssS0FBSyxFQUFFO1lBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1NBQ3hCO1FBRUQsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksRUFBRTtZQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztTQUNwQjthQUFNLElBQUksT0FBTyxJQUFJLENBQUMsUUFBUSxLQUFLLFFBQVEsRUFBRTtZQUM1QyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsbUJBQVEsSUFBSSxDQUFDLFFBQVEsRUFBQSxDQUFDLENBQUM7U0FDekM7YUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxtQkFBZSxJQUFJLENBQUMsUUFBUSxFQUFBLENBQUMsRUFBRTtZQUN2RCxJQUFJLENBQUMsUUFBUSxHQUFHLGNBQWMsQ0FBQyxRQUFRLENBQUM7U0FDekM7SUFDSCxDQUFDO0NBQ0Y7Ozs7Ozs7O0lBOUJDLG1DQUFtQjs7Ozs7OztJQU9uQixvQ0FBb0I7Ozs7Ozs7O0lBUXBCLGtDQUFpQzs7Ozs7OztBQXFCbkMsTUFBTSxPQUFPLHFCQUFnRCxTQUFRLFlBQWU7Ozs7OztJQXdCbEYsWUFBWSxhQUF1QixFQUN2QixjQUF5QixFQUN6QixRQUFzQjtRQUNoQyxLQUFLLENBQ0gsTUFBTSxDQUFNLGNBQWMsRUFBRSxhQUFhLElBQUksRUFBRSxDQUFDLEVBQ2hELFVBQVUsQ0FBUyxlQUFlLEVBQUUsY0FBYyxJQUFJLEVBQUUsQ0FBQyxFQUN6RCxRQUFRLElBQUksbUJBQUssY0FBYyxFQUFBLENBQUMsc0RBQXNEO1NBQ3ZGLENBQUM7SUFDSixDQUFDOzs7Ozs7SUFNRCxlQUFlLENBQUMsSUFBb0I7UUFDbEMsT0FBTyxNQUFNLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRTtZQUN4QixPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRTtTQUN2QixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7Ozs7Ozs7O0lBckNDLDBDQUE2Qzs7Ozs7OztJQU83QywyQ0FBOEM7Ozs7Ozs7O0lBUTlDLHlDQUEyRDs7Ozs7O0FBd0I3RCxvREFFQzs7Ozs7O0lBREMsNkVBQThDOzs7Ozs7Ozs7Ozs7Ozs7O0FBZWhELE1BQU0sVUFBVSxvQkFBb0IsQ0FBSSxPQUFVLEVBQUUsZUFBcUIsRUFBRSxVQUEwQjtJQUNuRyxPQUFPLElBQUkscUJBQXFCLENBQXFCLG1CQUFLLE9BQU8sRUFBQSxFQUFFLFNBQVMsRUFBRSxlQUFlLENBQUMsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDN0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZsdWVudEFzc2lnbiwgRmx1ZW50QXNzaWduTWV0aG9kIH0gZnJvbSAnLi8uLi9mcmFtZXdvcmsvZmx1ZW50LWFzc2lnbic7XG5pbXBvcnQgeyBleHRlbmQsIGFycmF5VW5pb24gfSBmcm9tICcuLy4uL2ZyYW1ld29yay91dGlscyc7XG5pbXBvcnQgeyBEaWFsb2dSZWYgfSBmcm9tICcuL2RpYWxvZy1yZWYnO1xuaW1wb3J0IHsgV2lkZVZDUmVmLCBPdmVybGF5Q29uZmlnIH0gZnJvbSAnLi90b2tlbnMnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9WQUxVRVMgPSB7XG4gIGluRWxlbWVudDogZmFsc2UsXG4gIGlzQmxvY2tpbmc6IHRydWUsXG4gIGtleWJvYXJkOiBbMjddLFxuICBzdXBwb3J0c0tleTogZnVuY3Rpb24gc3VwcG9ydHNLZXkoa2V5Q29kZTogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICg8QXJyYXk8bnVtYmVyPj50aGlzLmtleWJvYXJkKS5pbmRleE9mKGtleUNvZGUpID4gLTE7XG4gIH1cbn07XG5cbmNvbnN0IERFRkFVTFRfU0VUVEVSUyA9IFtcbiAgJ2luRWxlbWVudCcsXG4gICdpc0Jsb2NraW5nJyxcbiAgJ2tleWJvYXJkJ1xuXTtcblxuZXhwb3J0IGNsYXNzIE92ZXJsYXlDb250ZXh0IHtcbiAgLyoqXG4gICAqIERlc2NyaWJlcyBpZiB0aGUgbW9kYWwgaXMgcmVuZGVyZWQgd2l0aGluIHRoZSBjb250YWluZXIgZWxlbWVudC5cbiAgICogVGhlIGNvbnRhaW5lciBlbGVtZW50IGlzIHRoZSBWaWV3Q29udGFpbmVyUmVmIHN1cHBsaWVkLlxuICAgKiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICovXG4gIGluRWxlbWVudDogYm9vbGVhbjtcblxuICAvKipcbiAgICogRGVzY3JpYmVzIGlmIHRoZSBtb2RhbCBpcyBibG9ja2luZyBtb2RhbC5cbiAgICogQSBCbG9ja2luZyBtb2RhbCBpcyBub3QgY2xvc2FibGUgYnkgY2xpY2tpbmcgb3V0c2lkZSBvZiB0aGUgbW9kYWwgd2luZG93LlxuICAgKiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICovXG4gIGlzQmxvY2tpbmc6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEtleWJvYXJkIHZhbHVlL3MgdGhhdCBjbG9zZSB0aGUgbW9kYWwuXG4gICAqIEFjY2VwdHMgZWl0aGVyIGEgc2luZ2xlIG51bWVyaWMgdmFsdWUgb3IgYW4gYXJyYXkgb2YgbnVtZXJpYyB2YWx1ZXMuXG4gICAqIEEgbW9kYWwgY2xvc2VkIGJ5IGEga2V5Ym9hcmQgc3Ryb2tlIHdpbGwgcmVzdWx0IGluIGEgJ3JlamVjdCcgbm90aWZpY2F0aW9uIGZyb20gdGhlIHByb21pc2UuXG4gICAqIERlZmF1bHRzIHRvIDI3LCBzZXQgYG51bGxgIGltcGxpY2l0bHkgdG8gZGlzYWJsZS5cbiAgICovXG4gIGtleWJvYXJkOiBBcnJheTxudW1iZXI+IHwgbnVtYmVyO1xuXG4gIG5vcm1hbGl6ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Jsb2NraW5nICE9PSBmYWxzZSkge1xuICAgICAgdGhpcy5pc0Jsb2NraW5nID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5rZXlib2FyZCA9PT0gbnVsbCkge1xuICAgICAgdGhpcy5rZXlib2FyZCA9IFtdO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHRoaXMua2V5Ym9hcmQgPT09ICdudW1iZXInKSB7XG4gICAgICB0aGlzLmtleWJvYXJkID0gWzxudW1iZXI+dGhpcy5rZXlib2FyZF07XG4gICAgfSBlbHNlIGlmICghQXJyYXkuaXNBcnJheSg8QXJyYXk8bnVtYmVyPj50aGlzLmtleWJvYXJkKSkge1xuICAgICAgdGhpcy5rZXlib2FyZCA9IERFRkFVTFRfVkFMVUVTLmtleWJvYXJkO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEEgY29yZSBjb250ZXh0IGJ1aWxkZXIgZm9yIGEgbW9kYWwgd2luZG93IGluc3RhbmNlLCB1c2VkIHRvIGRlZmluZSB0aGUgY29udGV4dCB1cG9uXG4gKiBhIG1vZGFsIGNob29zZSBpdCdzIGJlaGF2aW91ci5cbiAqL1xuZXhwb3J0IGNsYXNzIE92ZXJsYXlDb250ZXh0QnVpbGRlcjxUIGV4dGVuZHMgT3ZlcmxheUNvbnRleHQ+IGV4dGVuZHMgRmx1ZW50QXNzaWduPFQ+IHtcbiAgLyoqXG4gICAqIERlc2NyaWJlcyBpZiB0aGUgbW9kYWwgaXMgcmVuZGVyZWQgd2l0aGluIHRoZSBjb250YWluZXIgZWxlbWVudC5cbiAgICogVGhlIGNvbnRhaW5lciBlbGVtZW50IGlzIHRoZSBWaWV3Q29udGFpbmVyUmVmIHN1cHBsaWVkLlxuICAgKiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICovXG4gIGluRWxlbWVudDogRmx1ZW50QXNzaWduTWV0aG9kPGJvb2xlYW4sIHRoaXM+O1xuXG4gIC8qKlxuICAgKiBEZXNjcmliZXMgaWYgdGhlIG1vZGFsIGlzIGJsb2NraW5nIG1vZGFsLlxuICAgKiBBIEJsb2NraW5nIG1vZGFsIGlzIG5vdCBjbG9zYWJsZSBieSBjbGlja2luZyBvdXRzaWRlIG9mIHRoZSBtb2RhbCB3aW5kb3cuXG4gICAqIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgKi9cbiAgaXNCbG9ja2luZzogRmx1ZW50QXNzaWduTWV0aG9kPGJvb2xlYW4sIHRoaXM+O1xuXG4gIC8qKlxuICAgKiBLZXlib2FyZCB2YWx1ZS9zIHRoYXQgY2xvc2UgdGhlIG1vZGFsLlxuICAgKiBBY2NlcHRzIGVpdGhlciBhIHNpbmdsZSBudW1lcmljIHZhbHVlIG9yIGFuIGFycmF5IG9mIG51bWVyaWMgdmFsdWVzLlxuICAgKiBBIG1vZGFsIGNsb3NlZCBieSBhIGtleWJvYXJkIHN0cm9rZSB3aWxsIHJlc3VsdCBpbiBhICdyZWplY3QnIG5vdGlmaWNhdGlvbiBmcm9tIHRoZSBwcm9taXNlLlxuICAgKiBEZWZhdWx0cyB0byAyNywgc2V0IGBudWxsYCBpbXBsaWNpdGx5IHRvIGRpc2FibGUuXG4gICAqL1xuICBrZXlib2FyZDogRmx1ZW50QXNzaWduTWV0aG9kPEFycmF5PG51bWJlcj4gfCBudW1iZXIsIHRoaXM+O1xuXG5cbiAgY29uc3RydWN0b3IoZGVmYXVsdFZhbHVlcz86IFQgfCBUW10sXG4gICAgICAgICAgICAgIGluaXRpYWxTZXR0ZXJzPzogc3RyaW5nW10sXG4gICAgICAgICAgICAgIGJhc2VUeXBlPzogbmV3ICgpID0+IFQpIHtcbiAgICBzdXBlcihcbiAgICAgIGV4dGVuZDxhbnk+KERFRkFVTFRfVkFMVUVTLCBkZWZhdWx0VmFsdWVzIHx8IHt9KSxcbiAgICAgIGFycmF5VW5pb248c3RyaW5nPihERUZBVUxUX1NFVFRFUlMsIGluaXRpYWxTZXR0ZXJzIHx8IFtdKSxcbiAgICAgIGJhc2VUeXBlIHx8IDxhbnk+T3ZlcmxheUNvbnRleHQgLy8gaHR0cHM6Ly9naXRodWIuY29tL01pY3Jvc29mdC9UeXBlU2NyaXB0L2lzc3Vlcy83MjM0XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIG5ldyBPdmVybGF5Q29uZmlnIHdpdGggYSBjb250ZXh0IHByb3BlcnR5IHJlcHJlc2VudGluZyB0aGUgZGF0YSBpbiB0aGlzIGJ1aWxkZXIuXG4gICAqIEBwYXJhbSBiYXNlIEEgYmFzZSBjb25maWd1cmF0aW9uIHRoYXQgdGhlIHJlc3VsdCB3aWxsIGV4dGVuZFxuICAgKi9cbiAgdG9PdmVybGF5Q29uZmlnKGJhc2U/OiBPdmVybGF5Q29uZmlnKTogT3ZlcmxheUNvbmZpZyB7XG4gICAgcmV0dXJuIGV4dGVuZChiYXNlIHx8IHt9LCB7XG4gICAgICBjb250ZXh0OiB0aGlzLnRvSlNPTigpXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBNb2RhbENvbnRyb2xsaW5nQ29udGV4dEJ1aWxkZXI8VD4ge1xuICBvcGVuKHZpZXdDb250YWluZXI/OiBXaWRlVkNSZWYpOiBEaWFsb2dSZWY8VD47XG59XG5cbi8qKlxuICogQSBoZWxwZXIgdG8gY3JlYXRlIGFuIGBPdmVybGF5Q29uZmlnYCBvbiB0aGUgZmx5LlxuICogU2luY2UgYE92ZXJsYXlDb25maWdgIHJlcXVpcmVzIGNvbnRleHQgaXQgbWVhbnMgYSBidWlsZGVyIGlzIG5lZWRlZCwgdGhpcyBwcm9jZXNzIGhhZCBzb21lIGJvaWxlcnBsYXRlLlxuICogV2hlbiBhIHF1aWNrLCBvbiB0aGUgZmx5IG92ZXJsYXkgY29uZmlnIGlzIG5lZWRlZCB1c2UgdGhpcyBoZWxwZXIgdG8gYXZvaWQgdGhhdCBib2lsZXJwbGF0ZS5cbiAqXG4gKiBBIGJ1aWxkZXIgaXMgdXNlZCBhcyBhbiBBUEkgdG8gYWxsb3cgc2V0dGluZyB0aGUgY29udGV4dCBhbmQgcHJvdmlkaW5nIHNvbWUgb3BlcmF0aW9ucyBhcm91bmQgdGhlIG1vZGFsLlxuICogV2hlbiBhIGRldmVsb3BlcnMga25vd3MgdGhlIGNvbnRleHQgYmVmb3JlIGhhbmQgd2UgY2FuIHNraXAgdGhpcyBzdGVwLCB0aGlzIGlzIHdoYXQgdGhpcyBmYWN0b3J5IGlzIGZvci5cbiAqXG4gKiBAcGFyYW0gY29udGV4dCBUaGUgY29udGV4dCBmb3IgdGhlIG1vZGFsXG4gKiBAcGFyYW0gYmFzZUNvbnRleHRUeXBlIE9wdGlvbmFsLiBUaGUgdHlwZS9jbGFzcyBvZiB0aGUgY29udGV4dC4gVGhpcyBpcyB0aGUgY2xhc3MgdXNlZCB0byBpbml0IGEgbmV3IGluc3RhbmNlIG9mIHRoZSBjb250ZXh0XG4gKiBAcGFyYW0gYmFzZUNvbmZpZyBBIGJhc2UgY29uZmlndXJhdGlvbiB0aGF0IHRoZSByZXN1bHQgd2lsbCBleHRlbmRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG92ZXJsYXlDb25maWdGYWN0b3J5PFQ+KGNvbnRleHQ6IFQsIGJhc2VDb250ZXh0VHlwZT86IGFueSwgYmFzZUNvbmZpZz86IE92ZXJsYXlDb25maWcpOiBPdmVybGF5Q29uZmlnIHtcbiAgcmV0dXJuIG5ldyBPdmVybGF5Q29udGV4dEJ1aWxkZXI8VCAmIE92ZXJsYXlDb250ZXh0Pig8YW55PmNvbnRleHQsIHVuZGVmaW5lZCwgYmFzZUNvbnRleHRUeXBlKS50b092ZXJsYXlDb25maWcoYmFzZUNvbmZpZyk7XG59XG4iXX0=