UNPKG

ngx-modialog-11

Version:
68 lines 11.1 kB
import { FluentAssign } from '../framework/fluent-assign'; import { extend, arrayUnion } from '../framework/utils'; const ɵ0 = function supportsKey(keyCode) { return this.keyboard.indexOf(keyCode) > -1; }; export const DEFAULT_VALUES = { inElement: false, isBlocking: true, keyboard: [27], supportsKey: ɵ0 }; const DEFAULT_SETTERS = [ 'inElement', 'isBlocking', 'keyboard' ]; export class OverlayContext { normalize() { if (this.isBlocking !== false) { this.isBlocking = true; } if (this.keyboard === null) { this.keyboard = []; } else if (typeof this.keyboard === 'number') { this.keyboard = [this.keyboard]; } else if (!Array.isArray(this.keyboard)) { this.keyboard = DEFAULT_VALUES.keyboard; } } } /** * A core context builder for a modal window instance, used to define the context upon * a modal choose it's behaviour. */ export class OverlayContextBuilder extends FluentAssign { constructor(defaultValues, initialSetters, baseType) { super(extend(DEFAULT_VALUES, defaultValues || {}), arrayUnion(DEFAULT_SETTERS, initialSetters || []), baseType || 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 */ toOverlayConfig(base) { return extend(base || {}, { context: this.toJSON() }); } } /** * 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. * * @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 */ export function overlayConfigFactory(context, baseContextType, baseConfig) { return new OverlayContextBuilder(context, undefined, baseContextType).toOverlayConfig(baseConfig); } export { ɵ0 }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1vZGlhbG9nLTExL3NyYy9saWIvbW9kZWxzL292ZXJsYXktY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFzQixNQUFNLDRCQUE0QixDQUFDO0FBQzlFLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7V0FRekMsU0FBUyxXQUFXLENBQUMsT0FBZTtJQUMvQyxPQUF1QixJQUFJLENBQUMsUUFBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUM5RCxDQUFDO0FBTkgsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHO0lBQzVCLFNBQVMsRUFBRSxLQUFLO0lBQ2hCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUNkLFdBQVcsSUFFVjtDQUNGLENBQUM7QUFFRixNQUFNLGVBQWUsR0FBRztJQUN0QixXQUFXO0lBQ1gsWUFBWTtJQUNaLFVBQVU7Q0FDWCxDQUFDO0FBRUYsTUFBTSxPQUFPLGNBQWM7SUF1QnpCLFNBQVM7UUFDUCxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssS0FBSyxFQUFFO1lBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1NBQ3hCO1FBRUQsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksRUFBRTtZQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztTQUNwQjthQUFNLElBQUksT0FBTyxJQUFJLENBQUMsUUFBUSxLQUFLLFFBQVEsRUFBRTtZQUM1QyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQVMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3pDO2FBQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQWdCLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUN2RCxJQUFJLENBQUMsUUFBUSxHQUFHLGNBQWMsQ0FBQyxRQUFRLENBQUM7U0FDekM7SUFDSCxDQUFDO0NBQ0Y7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8scUJBQWdELFNBQVEsWUFBZTtJQXdCbEYsWUFBWSxhQUF1QixFQUN2QixjQUF5QixFQUN6QixRQUFzQjtRQUNoQyxLQUFLLENBQ0gsTUFBTSxDQUFNLGNBQWMsRUFBRSxhQUFhLElBQUksRUFBRSxDQUFDLEVBQ2hELFVBQVUsQ0FBUyxlQUFlLEVBQUUsY0FBYyxJQUFJLEVBQUUsQ0FBQyxFQUN6RCxRQUFRLElBQVMsY0FBYyxDQUFDLHNEQUFzRDtTQUN2RixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILGVBQWUsQ0FBQyxJQUFvQjtRQUNsQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxFQUFFO1lBQ3hCLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFO1NBQ3ZCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQU1EOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQixDQUFJLE9BQVUsRUFBRSxlQUFxQixFQUFFLFVBQTBCO0lBQ25HLE9BQU8sSUFBSSxxQkFBcUIsQ0FBMEIsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLENBQUMsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDN0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZsdWVudEFzc2lnbiwgRmx1ZW50QXNzaWduTWV0aG9kIH0gZnJvbSAnLi4vZnJhbWV3b3JrL2ZsdWVudC1hc3NpZ24nO1xyXG5pbXBvcnQgeyBleHRlbmQsIGFycmF5VW5pb24gfSBmcm9tICcuLi9mcmFtZXdvcmsvdXRpbHMnO1xyXG5pbXBvcnQgeyBEaWFsb2dSZWYgfSBmcm9tICcuL2RpYWxvZy1yZWYnO1xyXG5pbXBvcnQgeyBXaWRlVkNSZWYsIE92ZXJsYXlDb25maWcgfSBmcm9tICcuL3Rva2Vucyc7XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9WQUxVRVMgPSB7XHJcbiAgaW5FbGVtZW50OiBmYWxzZSxcclxuICBpc0Jsb2NraW5nOiB0cnVlLFxyXG4gIGtleWJvYXJkOiBbMjddLFxyXG4gIHN1cHBvcnRzS2V5OiBmdW5jdGlvbiBzdXBwb3J0c0tleShrZXlDb2RlOiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAoPEFycmF5PG51bWJlcj4+dGhpcy5rZXlib2FyZCkuaW5kZXhPZihrZXlDb2RlKSA+IC0xO1xyXG4gIH1cclxufTtcclxuXHJcbmNvbnN0IERFRkFVTFRfU0VUVEVSUyA9IFtcclxuICAnaW5FbGVtZW50JyxcclxuICAnaXNCbG9ja2luZycsXHJcbiAgJ2tleWJvYXJkJ1xyXG5dO1xyXG5cclxuZXhwb3J0IGNsYXNzIE92ZXJsYXlDb250ZXh0IHtcclxuICAvKipcclxuICAgKiBEZXNjcmliZXMgaWYgdGhlIG1vZGFsIGlzIHJlbmRlcmVkIHdpdGhpbiB0aGUgY29udGFpbmVyIGVsZW1lbnQuXHJcbiAgICogVGhlIGNvbnRhaW5lciBlbGVtZW50IGlzIHRoZSBWaWV3Q29udGFpbmVyUmVmIHN1cHBsaWVkLlxyXG4gICAqIERlZmF1bHRzIHRvIGZhbHNlLlxyXG4gICAqL1xyXG4gIGluRWxlbWVudDogYm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogRGVzY3JpYmVzIGlmIHRoZSBtb2RhbCBpcyBibG9ja2luZyBtb2RhbC5cclxuICAgKiBBIEJsb2NraW5nIG1vZGFsIGlzIG5vdCBjbG9zYWJsZSBieSBjbGlja2luZyBvdXRzaWRlIG9mIHRoZSBtb2RhbCB3aW5kb3cuXHJcbiAgICogRGVmYXVsdHMgdG8gZmFsc2UuXHJcbiAgICovXHJcbiAgaXNCbG9ja2luZzogYm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogS2V5Ym9hcmQgdmFsdWUvcyB0aGF0IGNsb3NlIHRoZSBtb2RhbC5cclxuICAgKiBBY2NlcHRzIGVpdGhlciBhIHNpbmdsZSBudW1lcmljIHZhbHVlIG9yIGFuIGFycmF5IG9mIG51bWVyaWMgdmFsdWVzLlxyXG4gICAqIEEgbW9kYWwgY2xvc2VkIGJ5IGEga2V5Ym9hcmQgc3Ryb2tlIHdpbGwgcmVzdWx0IGluIGEgJ3JlamVjdCcgbm90aWZpY2F0aW9uIGZyb20gdGhlIHByb21pc2UuXHJcbiAgICogRGVmYXVsdHMgdG8gMjcsIHNldCBgbnVsbGAgaW1wbGljaXRseSB0byBkaXNhYmxlLlxyXG4gICAqL1xyXG4gIGtleWJvYXJkOiBBcnJheTxudW1iZXI+IHwgbnVtYmVyO1xyXG5cclxuICBub3JtYWxpemUoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pc0Jsb2NraW5nICE9PSBmYWxzZSkge1xyXG4gICAgICB0aGlzLmlzQmxvY2tpbmcgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmtleWJvYXJkID09PSBudWxsKSB7XHJcbiAgICAgIHRoaXMua2V5Ym9hcmQgPSBbXTtcclxuICAgIH0gZWxzZSBpZiAodHlwZW9mIHRoaXMua2V5Ym9hcmQgPT09ICdudW1iZXInKSB7XHJcbiAgICAgIHRoaXMua2V5Ym9hcmQgPSBbPG51bWJlcj50aGlzLmtleWJvYXJkXTtcclxuICAgIH0gZWxzZSBpZiAoIUFycmF5LmlzQXJyYXkoPEFycmF5PG51bWJlcj4+dGhpcy5rZXlib2FyZCkpIHtcclxuICAgICAgdGhpcy5rZXlib2FyZCA9IERFRkFVTFRfVkFMVUVTLmtleWJvYXJkO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEEgY29yZSBjb250ZXh0IGJ1aWxkZXIgZm9yIGEgbW9kYWwgd2luZG93IGluc3RhbmNlLCB1c2VkIHRvIGRlZmluZSB0aGUgY29udGV4dCB1cG9uXHJcbiAqIGEgbW9kYWwgY2hvb3NlIGl0J3MgYmVoYXZpb3VyLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIE92ZXJsYXlDb250ZXh0QnVpbGRlcjxUIGV4dGVuZHMgT3ZlcmxheUNvbnRleHQ+IGV4dGVuZHMgRmx1ZW50QXNzaWduPFQ+IHtcclxuICAvKipcclxuICAgKiBEZXNjcmliZXMgaWYgdGhlIG1vZGFsIGlzIHJlbmRlcmVkIHdpdGhpbiB0aGUgY29udGFpbmVyIGVsZW1lbnQuXHJcbiAgICogVGhlIGNvbnRhaW5lciBlbGVtZW50IGlzIHRoZSBWaWV3Q29udGFpbmVyUmVmIHN1cHBsaWVkLlxyXG4gICAqIERlZmF1bHRzIHRvIGZhbHNlLlxyXG4gICAqL1xyXG4gIGluRWxlbWVudDogRmx1ZW50QXNzaWduTWV0aG9kPGJvb2xlYW4sIHRoaXM+O1xyXG5cclxuICAvKipcclxuICAgKiBEZXNjcmliZXMgaWYgdGhlIG1vZGFsIGlzIGJsb2NraW5nIG1vZGFsLlxyXG4gICAqIEEgQmxvY2tpbmcgbW9kYWwgaXMgbm90IGNsb3NhYmxlIGJ5IGNsaWNraW5nIG91dHNpZGUgb2YgdGhlIG1vZGFsIHdpbmRvdy5cclxuICAgKiBEZWZhdWx0cyB0byBmYWxzZS5cclxuICAgKi9cclxuICBpc0Jsb2NraW5nOiBGbHVlbnRBc3NpZ25NZXRob2Q8Ym9vbGVhbiwgdGhpcz47XHJcblxyXG4gIC8qKlxyXG4gICAqIEtleWJvYXJkIHZhbHVlL3MgdGhhdCBjbG9zZSB0aGUgbW9kYWwuXHJcbiAgICogQWNjZXB0cyBlaXRoZXIgYSBzaW5nbGUgbnVtZXJpYyB2YWx1ZSBvciBhbiBhcnJheSBvZiBudW1lcmljIHZhbHVlcy5cclxuICAgKiBBIG1vZGFsIGNsb3NlZCBieSBhIGtleWJvYXJkIHN0cm9rZSB3aWxsIHJlc3VsdCBpbiBhICdyZWplY3QnIG5vdGlmaWNhdGlvbiBmcm9tIHRoZSBwcm9taXNlLlxyXG4gICAqIERlZmF1bHRzIHRvIDI3LCBzZXQgYG51bGxgIGltcGxpY2l0bHkgdG8gZGlzYWJsZS5cclxuICAgKi9cclxuICBrZXlib2FyZDogRmx1ZW50QXNzaWduTWV0aG9kPEFycmF5PG51bWJlcj4gfCBudW1iZXIsIHRoaXM+O1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IoZGVmYXVsdFZhbHVlcz86IFQgfCBUW10sXHJcbiAgICAgICAgICAgICAgaW5pdGlhbFNldHRlcnM/OiBzdHJpbmdbXSxcclxuICAgICAgICAgICAgICBiYXNlVHlwZT86IG5ldyAoKSA9PiBUKSB7XHJcbiAgICBzdXBlcihcclxuICAgICAgZXh0ZW5kPGFueT4oREVGQVVMVF9WQUxVRVMsIGRlZmF1bHRWYWx1ZXMgfHwge30pLFxyXG4gICAgICBhcnJheVVuaW9uPHN0cmluZz4oREVGQVVMVF9TRVRURVJTLCBpbml0aWFsU2V0dGVycyB8fCBbXSksXHJcbiAgICAgIGJhc2VUeXBlIHx8IDxhbnk+T3ZlcmxheUNvbnRleHQgLy8gaHR0cHM6Ly9naXRodWIuY29tL01pY3Jvc29mdC9UeXBlU2NyaXB0L2lzc3Vlcy83MjM0XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyBhbiBuZXcgT3ZlcmxheUNvbmZpZyB3aXRoIGEgY29udGV4dCBwcm9wZXJ0eSByZXByZXNlbnRpbmcgdGhlIGRhdGEgaW4gdGhpcyBidWlsZGVyLlxyXG4gICAqIEBwYXJhbSBiYXNlIEEgYmFzZSBjb25maWd1cmF0aW9uIHRoYXQgdGhlIHJlc3VsdCB3aWxsIGV4dGVuZFxyXG4gICAqL1xyXG4gIHRvT3ZlcmxheUNvbmZpZyhiYXNlPzogT3ZlcmxheUNvbmZpZyk6IE92ZXJsYXlDb25maWcge1xyXG4gICAgcmV0dXJuIGV4dGVuZChiYXNlIHx8IHt9LCB7XHJcbiAgICAgIGNvbnRleHQ6IHRoaXMudG9KU09OKClcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBNb2RhbENvbnRyb2xsaW5nQ29udGV4dEJ1aWxkZXI8VD4ge1xyXG4gIG9wZW4odmlld0NvbnRhaW5lcj86IFdpZGVWQ1JlZik6IERpYWxvZ1JlZjxUPjtcclxufVxyXG5cclxuLyoqXHJcbiAqIEEgaGVscGVyIHRvIGNyZWF0ZSBhbiBgT3ZlcmxheUNvbmZpZ2Agb24gdGhlIGZseS5cclxuICogU2luY2UgYE92ZXJsYXlDb25maWdgIHJlcXVpcmVzIGNvbnRleHQgaXQgbWVhbnMgYSBidWlsZGVyIGlzIG5lZWRlZCwgdGhpcyBwcm9jZXNzIGhhZCBzb21lIGJvaWxlcnBsYXRlLlxyXG4gKiBXaGVuIGEgcXVpY2ssIG9uIHRoZSBmbHkgb3ZlcmxheSBjb25maWcgaXMgbmVlZGVkIHVzZSB0aGlzIGhlbHBlciB0byBhdm9pZCB0aGF0IGJvaWxlcnBsYXRlLlxyXG4gKlxyXG4gKiBBIGJ1aWxkZXIgaXMgdXNlZCBhcyBhbiBBUEkgdG8gYWxsb3cgc2V0dGluZyB0aGUgY29udGV4dCBhbmQgcHJvdmlkaW5nIHNvbWUgb3BlcmF0aW9ucyBhcm91bmQgdGhlIG1vZGFsLlxyXG4gKiBXaGVuIGEgZGV2ZWxvcGVycyBrbm93cyB0aGUgY29udGV4dCBiZWZvcmUgaGFuZCB3ZSBjYW4gc2tpcCB0aGlzIHN0ZXAsIHRoaXMgaXMgd2hhdCB0aGlzIGZhY3RvcnkgaXMgZm9yLlxyXG4gKlxyXG4gKiBAcGFyYW0gY29udGV4dCBUaGUgY29udGV4dCBmb3IgdGhlIG1vZGFsXHJcbiAqIEBwYXJhbSBiYXNlQ29udGV4dFR5cGUgT3B0aW9uYWwuIFRoZSB0eXBlL2NsYXNzIG9mIHRoZSBjb250ZXh0LiBUaGlzIGlzIHRoZSBjbGFzcyB1c2VkIHRvIGluaXQgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIGNvbnRleHRcclxuICogQHBhcmFtIGJhc2VDb25maWcgQSBiYXNlIGNvbmZpZ3VyYXRpb24gdGhhdCB0aGUgcmVzdWx0IHdpbGwgZXh0ZW5kXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gb3ZlcmxheUNvbmZpZ0ZhY3Rvcnk8VD4oY29udGV4dDogVCwgYmFzZUNvbnRleHRUeXBlPzogYW55LCBiYXNlQ29uZmlnPzogT3ZlcmxheUNvbmZpZyk6IE92ZXJsYXlDb25maWcge1xyXG4gIHJldHVybiBuZXcgT3ZlcmxheUNvbnRleHRCdWlsZGVyPFQgJiBPdmVybGF5Q29udGV4dD4oPGFueT5jb250ZXh0LCB1bmRlZmluZWQsIGJhc2VDb250ZXh0VHlwZSkudG9PdmVybGF5Q29uZmlnKGJhc2VDb25maWcpO1xyXG59XHJcbiJdfQ==