UNPKG

@spartacus/storefront

Version:

Spartacus Storefront is a package that you can include in your application, which allows you to add default storefront features.

101 lines 12.8 kB
import { __decorate, __param } from "tslib"; import { DOCUMENT } from '@angular/common'; import { Inject, } from '@angular/core'; import { DIALOG_TYPE, } from '../config'; let LaunchRenderStrategy = class LaunchRenderStrategy { constructor(document, rendererFactory) { this.document = document; this.rendererFactory = rendererFactory; // List of called references; only used for rendered elements this.renderedCallers = []; /** * Classes to apply to the component when the dialog is a DIALOG */ this.dialogClasses = ['d-block', 'fade', 'modal', 'show']; /** * Classes to apply to the component when the dialog is a POPOVER */ this.popoverClasses = ['cx-dialog-popover']; /** * Classes to apply to the component when the dialog is a POPOVER_CENTER */ this.popoverCenterClasses = ['cx-dialog-popover-center']; /** * Classes to apply to the component when the dialog is a POPOVER_CENTER with a backdrop */ this.popoverCenterBackdropClasses = [ 'cx-dialog-popover-center-backdrop', ]; /** * Classes to apply to the component when the dialog is a SIDEBAR_END */ this.sidebarEndClasses = ['cx-sidebar-end']; /** * Classes to apply to the component when the dialog is a SIDEBAR_START */ this.sidebarStartClasses = ['cx-sidebar-start']; this.renderer = rendererFactory.createRenderer(null, null); } /** * Determines if element should render * * @param caller * @param config */ shouldRender(caller, config) { return (Boolean(config.component) && (this.renderedCallers.some((el) => el.caller === caller) ? !!config.multi : true)); } applyClasses(component, dialogType) { let classes = []; // TODO: make classes configurable switch (dialogType) { case DIALOG_TYPE.DIALOG: classes = this.dialogClasses; this.renderer.addClass(this.document.body, 'modal-open'); break; case DIALOG_TYPE.POPOVER: classes = this.popoverClasses; break; case DIALOG_TYPE.POPOVER_CENTER: classes = this.popoverCenterClasses; break; case DIALOG_TYPE.POPOVER_CENTER_BACKDROP: classes = this.popoverCenterBackdropClasses; break; case DIALOG_TYPE.SIDEBAR_END: classes = this.sidebarEndClasses; break; case DIALOG_TYPE.SIDEBAR_START: classes = this.sidebarStartClasses; break; } for (const newClass of classes) { this.renderer.addClass(component.location.nativeElement, newClass); } } /** * Method to call when rendered element is destroyed * The element will be removed from the list of rendered elements * * @param caller * @param _config optional parameters used in children strategies */ remove(caller, config) { var _a; this.renderedCallers = this.renderedCallers.filter((el) => el.caller !== caller); if (((_a = config) === null || _a === void 0 ? void 0 : _a.dialogType) === DIALOG_TYPE.DIALOG) { this.renderer.removeClass(this.document.body, 'modal-open'); } } getPriority() { return -10 /* LOW */; // low, as it's a default matcher } }; LaunchRenderStrategy = __decorate([ __param(0, Inject(DOCUMENT)) ], LaunchRenderStrategy); export { LaunchRenderStrategy }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF1bmNoLXJlbmRlci5zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0b3JlZnJvbnRsaWIvbGF5b3V0L2xhdW5jaC1kaWFsb2cvc2VydmljZXMvbGF1bmNoLXJlbmRlci5zdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFFTCxNQUFNLEdBSVAsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUNMLFdBQVcsR0FJWixNQUFNLFdBQVcsQ0FBQztBQUVuQixJQUFzQixvQkFBb0IsR0FBMUMsTUFBc0Isb0JBQW9CO0lBcUN4QyxZQUM4QixRQUFhLEVBQy9CLGVBQWlDO1FBRGYsYUFBUSxHQUFSLFFBQVEsQ0FBSztRQUMvQixvQkFBZSxHQUFmLGVBQWUsQ0FBa0I7UUF0QzdDLDZEQUE2RDtRQUNuRCxvQkFBZSxHQUlwQixFQUFFLENBQUM7UUFFUjs7V0FFRztRQUNPLGtCQUFhLEdBQUcsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMvRDs7V0FFRztRQUNPLG1CQUFjLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2pEOztXQUVHO1FBQ08seUJBQW9CLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQzlEOztXQUVHO1FBQ08saUNBQTRCLEdBQUc7WUFDdkMsbUNBQW1DO1NBQ3BDLENBQUM7UUFDRjs7V0FFRztRQUNPLHNCQUFpQixHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNqRDs7V0FFRztRQUNPLHdCQUFtQixHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQVFuRCxJQUFJLENBQUMsUUFBUSxHQUFHLGVBQWUsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFvQkQ7Ozs7O09BS0c7SUFDTyxZQUFZLENBQ3BCLE1BQThCLEVBQzlCLE1BQW9CO1FBRXBCLE9BQU8sQ0FDTCxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztZQUN6QixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQztnQkFDdEQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSztnQkFDaEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUNWLENBQUM7SUFDSixDQUFDO0lBRVMsWUFBWSxDQUNwQixTQUE0QixFQUM1QixVQUF1QjtRQUV2QixJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFFakIsa0NBQWtDO1FBQ2xDLFFBQVEsVUFBVSxFQUFFO1lBQ2xCLEtBQUssV0FBVyxDQUFDLE1BQU07Z0JBQ3JCLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO2dCQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQztnQkFDekQsTUFBTTtZQUNSLEtBQUssV0FBVyxDQUFDLE9BQU87Z0JBQ3RCLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO2dCQUM5QixNQUFNO1lBQ1IsS0FBSyxXQUFXLENBQUMsY0FBYztnQkFDN0IsT0FBTyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztnQkFDcEMsTUFBTTtZQUNSLEtBQUssV0FBVyxDQUFDLHVCQUF1QjtnQkFDdEMsT0FBTyxHQUFHLElBQUksQ0FBQyw0QkFBNEIsQ0FBQztnQkFDNUMsTUFBTTtZQUNSLEtBQUssV0FBVyxDQUFDLFdBQVc7Z0JBQzFCLE9BQU8sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7Z0JBQ2pDLE1BQU07WUFDUixLQUFLLFdBQVcsQ0FBQyxhQUFhO2dCQUM1QixPQUFPLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO2dCQUNuQyxNQUFNO1NBQ1Q7UUFFRCxLQUFLLE1BQU0sUUFBUSxJQUFJLE9BQU8sRUFBRTtZQUM5QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQztTQUNwRTtJQUNILENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsTUFBOEIsRUFBRSxNQUFxQjs7UUFDakUsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FDaEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUM3QixDQUFDO1FBRUYsSUFBSSxDQUFBLE1BQUMsTUFBdUIsMENBQUUsVUFBVSxNQUFLLFdBQVcsQ0FBQyxNQUFNLEVBQUU7WUFDL0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUM7U0FDN0Q7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULHFCQUFvQixDQUFDLGlDQUFpQztJQUN4RCxDQUFDO0NBQ0YsQ0FBQTtBQXRJcUIsb0JBQW9CO0lBc0NyQyxXQUFBLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtHQXRDQyxvQkFBb0IsQ0FzSXpDO1NBdElxQixvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnRSZWYsXG4gIEluamVjdCxcbiAgUmVuZGVyZXIyLFxuICBSZW5kZXJlckZhY3RvcnkyLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFwcGxpY2FibGUsIFByaW9yaXR5IH0gZnJvbSAnQHNwYXJ0YWN1cy9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIERJQUxPR19UWVBFLFxuICBMYXVuY2hEaWFsb2csXG4gIExhdW5jaE9wdGlvbnMsXG4gIExBVU5DSF9DQUxMRVIsXG59IGZyb20gJy4uL2NvbmZpZyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBMYXVuY2hSZW5kZXJTdHJhdGVneSBpbXBsZW1lbnRzIEFwcGxpY2FibGUge1xuICAvLyBMaXN0IG9mIGNhbGxlZCByZWZlcmVuY2VzOyBvbmx5IHVzZWQgZm9yIHJlbmRlcmVkIGVsZW1lbnRzXG4gIHByb3RlY3RlZCByZW5kZXJlZENhbGxlcnM6IEFycmF5PHtcbiAgICBjYWxsZXI6IExBVU5DSF9DQUxMRVIgfCBzdHJpbmc7XG4gICAgZWxlbWVudD86IGFueTtcbiAgICBjb21wb25lbnQ/OiBDb21wb25lbnRSZWY8YW55PjtcbiAgfT4gPSBbXTtcblxuICAvKipcbiAgICogQ2xhc3NlcyB0byBhcHBseSB0byB0aGUgY29tcG9uZW50IHdoZW4gdGhlIGRpYWxvZyBpcyBhIERJQUxPR1xuICAgKi9cbiAgcHJvdGVjdGVkIGRpYWxvZ0NsYXNzZXMgPSBbJ2QtYmxvY2snLCAnZmFkZScsICdtb2RhbCcsICdzaG93J107XG4gIC8qKlxuICAgKiBDbGFzc2VzIHRvIGFwcGx5IHRvIHRoZSBjb21wb25lbnQgd2hlbiB0aGUgZGlhbG9nIGlzIGEgUE9QT1ZFUlxuICAgKi9cbiAgcHJvdGVjdGVkIHBvcG92ZXJDbGFzc2VzID0gWydjeC1kaWFsb2ctcG9wb3ZlciddO1xuICAvKipcbiAgICogQ2xhc3NlcyB0byBhcHBseSB0byB0aGUgY29tcG9uZW50IHdoZW4gdGhlIGRpYWxvZyBpcyBhIFBPUE9WRVJfQ0VOVEVSXG4gICAqL1xuICBwcm90ZWN0ZWQgcG9wb3ZlckNlbnRlckNsYXNzZXMgPSBbJ2N4LWRpYWxvZy1wb3BvdmVyLWNlbnRlciddO1xuICAvKipcbiAgICogQ2xhc3NlcyB0byBhcHBseSB0byB0aGUgY29tcG9uZW50IHdoZW4gdGhlIGRpYWxvZyBpcyBhIFBPUE9WRVJfQ0VOVEVSIHdpdGggYSBiYWNrZHJvcFxuICAgKi9cbiAgcHJvdGVjdGVkIHBvcG92ZXJDZW50ZXJCYWNrZHJvcENsYXNzZXMgPSBbXG4gICAgJ2N4LWRpYWxvZy1wb3BvdmVyLWNlbnRlci1iYWNrZHJvcCcsXG4gIF07XG4gIC8qKlxuICAgKiBDbGFzc2VzIHRvIGFwcGx5IHRvIHRoZSBjb21wb25lbnQgd2hlbiB0aGUgZGlhbG9nIGlzIGEgU0lERUJBUl9FTkRcbiAgICovXG4gIHByb3RlY3RlZCBzaWRlYmFyRW5kQ2xhc3NlcyA9IFsnY3gtc2lkZWJhci1lbmQnXTtcbiAgLyoqXG4gICAqIENsYXNzZXMgdG8gYXBwbHkgdG8gdGhlIGNvbXBvbmVudCB3aGVuIHRoZSBkaWFsb2cgaXMgYSBTSURFQkFSX1NUQVJUXG4gICAqL1xuICBwcm90ZWN0ZWQgc2lkZWJhclN0YXJ0Q2xhc3NlcyA9IFsnY3gtc2lkZWJhci1zdGFydCddO1xuXG4gIHByb3RlY3RlZCByZW5kZXJlcjogUmVuZGVyZXIyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByb3RlY3RlZCBkb2N1bWVudDogYW55LFxuICAgIHByb3RlY3RlZCByZW5kZXJlckZhY3Rvcnk6IFJlbmRlcmVyRmFjdG9yeTJcbiAgKSB7XG4gICAgdGhpcy5yZW5kZXJlciA9IHJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcihudWxsLCBudWxsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXIgbWV0aG9kIHRvIGltcGxlbWVudCBiYXNlZCBvbiB0aGUgc3RyYXRlZ3lcbiAgICpcbiAgICogQHBhcmFtIGNvbmZpZyBMYXVuY2ggY29uZmlndXJhdGlvblxuICAgKi9cbiAgYWJzdHJhY3QgcmVuZGVyKFxuICAgIGNvbmZpZzogTGF1bmNoT3B0aW9ucyxcbiAgICBjYWxsZXI6IExBVU5DSF9DQUxMRVIgfCBzdHJpbmcsXG4gICAgdmNyPzogVmlld0NvbnRhaW5lclJlZlxuICApOiBPYnNlcnZhYmxlPENvbXBvbmVudFJlZjxhbnk+IHwgdW5kZWZpbmVkPiB8IHZvaWQ7XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgdGhlIHN0cmF0ZWd5IGlzIHRoZSByaWdodCBvbmUgZm9yIHRoZSBwcm92aWRlZCBjb25maWd1cmF0aW9uXG4gICAqXG4gICAqIEBwYXJhbSBjb25maWdcbiAgICovXG4gIGFic3RyYWN0IGhhc01hdGNoKGNvbmZpZzogTGF1bmNoT3B0aW9ucyk6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgZWxlbWVudCBzaG91bGQgcmVuZGVyXG4gICAqXG4gICAqIEBwYXJhbSBjYWxsZXJcbiAgICogQHBhcmFtIGNvbmZpZ1xuICAgKi9cbiAgcHJvdGVjdGVkIHNob3VsZFJlbmRlcihcbiAgICBjYWxsZXI6IExBVU5DSF9DQUxMRVIgfCBzdHJpbmcsXG4gICAgY29uZmlnOiBMYXVuY2hEaWFsb2dcbiAgKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIEJvb2xlYW4oY29uZmlnLmNvbXBvbmVudCkgJiZcbiAgICAgICh0aGlzLnJlbmRlcmVkQ2FsbGVycy5zb21lKChlbCkgPT4gZWwuY2FsbGVyID09PSBjYWxsZXIpXG4gICAgICAgID8gISFjb25maWcubXVsdGlcbiAgICAgICAgOiB0cnVlKVxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXBwbHlDbGFzc2VzKFxuICAgIGNvbXBvbmVudDogQ29tcG9uZW50UmVmPGFueT4sXG4gICAgZGlhbG9nVHlwZTogRElBTE9HX1RZUEVcbiAgKTogdm9pZCB7XG4gICAgbGV0IGNsYXNzZXMgPSBbXTtcblxuICAgIC8vIFRPRE86IG1ha2UgY2xhc3NlcyBjb25maWd1cmFibGVcbiAgICBzd2l0Y2ggKGRpYWxvZ1R5cGUpIHtcbiAgICAgIGNhc2UgRElBTE9HX1RZUEUuRElBTE9HOlxuICAgICAgICBjbGFzc2VzID0gdGhpcy5kaWFsb2dDbGFzc2VzO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZG9jdW1lbnQuYm9keSwgJ21vZGFsLW9wZW4nKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIERJQUxPR19UWVBFLlBPUE9WRVI6XG4gICAgICAgIGNsYXNzZXMgPSB0aGlzLnBvcG92ZXJDbGFzc2VzO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRElBTE9HX1RZUEUuUE9QT1ZFUl9DRU5URVI6XG4gICAgICAgIGNsYXNzZXMgPSB0aGlzLnBvcG92ZXJDZW50ZXJDbGFzc2VzO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRElBTE9HX1RZUEUuUE9QT1ZFUl9DRU5URVJfQkFDS0RST1A6XG4gICAgICAgIGNsYXNzZXMgPSB0aGlzLnBvcG92ZXJDZW50ZXJCYWNrZHJvcENsYXNzZXM7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBESUFMT0dfVFlQRS5TSURFQkFSX0VORDpcbiAgICAgICAgY2xhc3NlcyA9IHRoaXMuc2lkZWJhckVuZENsYXNzZXM7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBESUFMT0dfVFlQRS5TSURFQkFSX1NUQVJUOlxuICAgICAgICBjbGFzc2VzID0gdGhpcy5zaWRlYmFyU3RhcnRDbGFzc2VzO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IG5ld0NsYXNzIG9mIGNsYXNzZXMpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoY29tcG9uZW50LmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQsIG5ld0NsYXNzKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTWV0aG9kIHRvIGNhbGwgd2hlbiByZW5kZXJlZCBlbGVtZW50IGlzIGRlc3Ryb3llZFxuICAgKiBUaGUgZWxlbWVudCB3aWxsIGJlIHJlbW92ZWQgZnJvbSB0aGUgbGlzdCBvZiByZW5kZXJlZCBlbGVtZW50c1xuICAgKlxuICAgKiBAcGFyYW0gY2FsbGVyXG4gICAqIEBwYXJhbSBfY29uZmlnIG9wdGlvbmFsIHBhcmFtZXRlcnMgdXNlZCBpbiBjaGlsZHJlbiBzdHJhdGVnaWVzXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlKGNhbGxlcjogTEFVTkNIX0NBTExFUiB8IHN0cmluZywgY29uZmlnOiBMYXVuY2hPcHRpb25zKTogdm9pZCB7XG4gICAgdGhpcy5yZW5kZXJlZENhbGxlcnMgPSB0aGlzLnJlbmRlcmVkQ2FsbGVycy5maWx0ZXIoXG4gICAgICAoZWwpID0+IGVsLmNhbGxlciAhPT0gY2FsbGVyXG4gICAgKTtcblxuICAgIGlmICgoY29uZmlnIGFzIExhdW5jaERpYWxvZyk/LmRpYWxvZ1R5cGUgPT09IERJQUxPR19UWVBFLkRJQUxPRykge1xuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmRvY3VtZW50LmJvZHksICdtb2RhbC1vcGVuJyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0UHJpb3JpdHkoKTogUHJpb3JpdHkge1xuICAgIHJldHVybiBQcmlvcml0eS5MT1c7IC8vIGxvdywgYXMgaXQncyBhIGRlZmF1bHQgbWF0Y2hlclxuICB9XG59XG4iXX0=