ngx-modialog-10
Version:
Modal / Dialog for Angular
151 lines • 13.7 kB
JavaScript
/**
* @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=