UNPKG

ng-zorro-antd

Version:

An enterprise-class UI components based on Ant Design and Angular

68 lines 10.5 kB
/** * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE */ import { Directionality } from '@angular/cdk/bidi'; import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay'; import { ComponentPortal } from '@angular/cdk/portal'; import { Injectable, Injector, Optional } from '@angular/core'; import { NzConfigService } from 'ng-zorro-antd/core/config'; import { IMAGE_PREVIEW_MASK_CLASS_NAME, NZ_CONFIG_MODULE_NAME } from './image-config'; import { NzImagePreviewOptions } from './image-preview-options'; import { NzImagePreviewRef } from './image-preview-ref'; import { NzImagePreviewComponent } from './image-preview.component'; export class NzImageService { constructor(overlay, injector, nzConfigService, directionality) { this.overlay = overlay; this.injector = injector; this.nzConfigService = nzConfigService; this.directionality = directionality; } preview(images, options) { return this.display(images, options); } display(images, config) { const configMerged = Object.assign(Object.assign({}, new NzImagePreviewOptions()), (config !== null && config !== void 0 ? config : {})); const overlayRef = this.createOverlay(configMerged); const previewComponent = this.attachPreviewComponent(overlayRef, configMerged); previewComponent.setImages(images); const previewRef = new NzImagePreviewRef(previewComponent, configMerged, overlayRef); previewComponent.previewRef = previewRef; return previewRef; } attachPreviewComponent(overlayRef, config) { const injector = Injector.create({ parent: this.injector, providers: [ { provide: OverlayRef, useValue: overlayRef }, { provide: NzImagePreviewOptions, useValue: config } ] }); const containerPortal = new ComponentPortal(NzImagePreviewComponent, null, injector); const containerRef = overlayRef.attach(containerPortal); return containerRef.instance; } createOverlay(config) { var _a, _b; const globalConfig = this.nzConfigService.getConfigForComponent(NZ_CONFIG_MODULE_NAME) || {}; const overLayConfig = new OverlayConfig({ hasBackdrop: true, scrollStrategy: this.overlay.scrollStrategies.block(), positionStrategy: this.overlay.position().global(), disposeOnNavigation: (_b = (_a = config.nzCloseOnNavigation) !== null && _a !== void 0 ? _a : globalConfig.nzCloseOnNavigation) !== null && _b !== void 0 ? _b : true, backdropClass: IMAGE_PREVIEW_MASK_CLASS_NAME, direction: config.nzDirection || globalConfig.nzDirection || this.directionality.value }); return this.overlay.create(overLayConfig); } } NzImageService.decorators = [ { type: Injectable } ]; NzImageService.ctorParameters = () => [ { type: Overlay }, { type: Injector }, { type: NzConfigService }, { type: Directionality, decorators: [{ type: Optional }] } ]; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2NvbXBvbmVudHMvaW1hZ2UvaW1hZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRCxPQUFPLEVBQWUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFekUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEYsT0FBTyxFQUFXLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFPcEUsTUFBTSxPQUFPLGNBQWM7SUFDekIsWUFDVSxPQUFnQixFQUNoQixRQUFrQixFQUNsQixlQUFnQyxFQUNwQixjQUE4QjtRQUgxQyxZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ3BCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtJQUNqRCxDQUFDO0lBRUosT0FBTyxDQUFDLE1BQWlCLEVBQUUsT0FBK0I7UUFDeEQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU8sT0FBTyxDQUFDLE1BQWlCLEVBQUUsTUFBOEI7UUFDL0QsTUFBTSxZQUFZLG1DQUFRLElBQUkscUJBQXFCLEVBQUUsR0FBSyxDQUFDLE1BQU0sYUFBTixNQUFNLGNBQU4sTUFBTSxHQUFJLEVBQUUsQ0FBQyxDQUFFLENBQUM7UUFDM0UsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwRCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDL0UsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLE1BQU0sVUFBVSxHQUFHLElBQUksaUJBQWlCLENBQUMsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXJGLGdCQUFnQixDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDekMsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVPLHNCQUFzQixDQUFDLFVBQXNCLEVBQUUsTUFBNkI7UUFDbEYsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUMvQixNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDckIsU0FBUyxFQUFFO2dCQUNULEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFO2dCQUM3QyxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFO2FBQ3JEO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsTUFBTSxlQUFlLEdBQUcsSUFBSSxlQUFlLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3JGLE1BQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFeEQsT0FBTyxZQUFZLENBQUMsUUFBUSxDQUFDO0lBQy9CLENBQUM7SUFFTyxhQUFhLENBQUMsTUFBNkI7O1FBQ2pELE1BQU0sWUFBWSxHQUFJLElBQUksQ0FBQyxlQUFlLENBQUMscUJBQXFCLENBQUMscUJBQXFCLENBQWlCLElBQUksRUFBRSxDQUFDO1FBQzlHLE1BQU0sYUFBYSxHQUFHLElBQUksYUFBYSxDQUFDO1lBQ3RDLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLGNBQWMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRTtZQUNyRCxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sRUFBRTtZQUNsRCxtQkFBbUIsRUFBRSxNQUFBLE1BQUEsTUFBTSxDQUFDLG1CQUFtQixtQ0FBSSxZQUFZLENBQUMsbUJBQW1CLG1DQUFJLElBQUk7WUFDM0YsYUFBYSxFQUFFLDZCQUE2QjtZQUM1QyxTQUFTLEVBQUUsTUFBTSxDQUFDLFdBQVcsSUFBSSxZQUFZLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSztTQUN2RixDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzVDLENBQUM7OztZQW5ERixVQUFVOzs7WUFmRixPQUFPO1lBRUssUUFBUTtZQUVQLGVBQWU7WUFMNUIsY0FBYyx1QkFzQmxCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBJbWFnZUNvbmZpZywgTnpDb25maWdTZXJ2aWNlIH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL2NvbmZpZyc7XG5cbmltcG9ydCB7IElNQUdFX1BSRVZJRVdfTUFTS19DTEFTU19OQU1FLCBOWl9DT05GSUdfTU9EVUxFX05BTUUgfSBmcm9tICcuL2ltYWdlLWNvbmZpZyc7XG5pbXBvcnQgeyBOekltYWdlLCBOekltYWdlUHJldmlld09wdGlvbnMgfSBmcm9tICcuL2ltYWdlLXByZXZpZXctb3B0aW9ucyc7XG5pbXBvcnQgeyBOekltYWdlUHJldmlld1JlZiB9IGZyb20gJy4vaW1hZ2UtcHJldmlldy1yZWYnO1xuaW1wb3J0IHsgTnpJbWFnZVByZXZpZXdDb21wb25lbnQgfSBmcm9tICcuL2ltYWdlLXByZXZpZXcuY29tcG9uZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBOekltYWdlU2VydmljZSB7XG4gIHByZXZpZXcoaW1hZ2VzOiBOekltYWdlW10sIG9wdGlvbj86IE56SW1hZ2VQcmV2aWV3T3B0aW9ucyk6IE56SW1hZ2VQcmV2aWV3UmVmO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTnpJbWFnZVNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBuekNvbmZpZ1NlcnZpY2U6IE56Q29uZmlnU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGRpcmVjdGlvbmFsaXR5OiBEaXJlY3Rpb25hbGl0eVxuICApIHt9XG5cbiAgcHJldmlldyhpbWFnZXM6IE56SW1hZ2VbXSwgb3B0aW9ucz86IE56SW1hZ2VQcmV2aWV3T3B0aW9ucyk6IE56SW1hZ2VQcmV2aWV3UmVmIHtcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5KGltYWdlcywgb3B0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIGRpc3BsYXkoaW1hZ2VzOiBOekltYWdlW10sIGNvbmZpZz86IE56SW1hZ2VQcmV2aWV3T3B0aW9ucyk6IE56SW1hZ2VQcmV2aWV3UmVmIHtcbiAgICBjb25zdCBjb25maWdNZXJnZWQgPSB7IC4uLm5ldyBOekltYWdlUHJldmlld09wdGlvbnMoKSwgLi4uKGNvbmZpZyA/PyB7fSkgfTtcbiAgICBjb25zdCBvdmVybGF5UmVmID0gdGhpcy5jcmVhdGVPdmVybGF5KGNvbmZpZ01lcmdlZCk7XG4gICAgY29uc3QgcHJldmlld0NvbXBvbmVudCA9IHRoaXMuYXR0YWNoUHJldmlld0NvbXBvbmVudChvdmVybGF5UmVmLCBjb25maWdNZXJnZWQpO1xuICAgIHByZXZpZXdDb21wb25lbnQuc2V0SW1hZ2VzKGltYWdlcyk7XG4gICAgY29uc3QgcHJldmlld1JlZiA9IG5ldyBOekltYWdlUHJldmlld1JlZihwcmV2aWV3Q29tcG9uZW50LCBjb25maWdNZXJnZWQsIG92ZXJsYXlSZWYpO1xuXG4gICAgcHJldmlld0NvbXBvbmVudC5wcmV2aWV3UmVmID0gcHJldmlld1JlZjtcbiAgICByZXR1cm4gcHJldmlld1JlZjtcbiAgfVxuXG4gIHByaXZhdGUgYXR0YWNoUHJldmlld0NvbXBvbmVudChvdmVybGF5UmVmOiBPdmVybGF5UmVmLCBjb25maWc6IE56SW1hZ2VQcmV2aWV3T3B0aW9ucyk6IE56SW1hZ2VQcmV2aWV3Q29tcG9uZW50IHtcbiAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICBwYXJlbnQ6IHRoaXMuaW5qZWN0b3IsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBPdmVybGF5UmVmLCB1c2VWYWx1ZTogb3ZlcmxheVJlZiB9LFxuICAgICAgICB7IHByb3ZpZGU6IE56SW1hZ2VQcmV2aWV3T3B0aW9ucywgdXNlVmFsdWU6IGNvbmZpZyB9XG4gICAgICBdXG4gICAgfSk7XG5cbiAgICBjb25zdCBjb250YWluZXJQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKE56SW1hZ2VQcmV2aWV3Q29tcG9uZW50LCBudWxsLCBpbmplY3Rvcik7XG4gICAgY29uc3QgY29udGFpbmVyUmVmID0gb3ZlcmxheVJlZi5hdHRhY2goY29udGFpbmVyUG9ydGFsKTtcblxuICAgIHJldHVybiBjb250YWluZXJSZWYuaW5zdGFuY2U7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZU92ZXJsYXkoY29uZmlnOiBOekltYWdlUHJldmlld09wdGlvbnMpOiBPdmVybGF5UmVmIHtcbiAgICBjb25zdCBnbG9iYWxDb25maWcgPSAodGhpcy5uekNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnRm9yQ29tcG9uZW50KE5aX0NPTkZJR19NT0RVTEVfTkFNRSkgYXMgSW1hZ2VDb25maWcpIHx8IHt9O1xuICAgIGNvbnN0IG92ZXJMYXlDb25maWcgPSBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ibG9jaygpLFxuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCksXG4gICAgICBkaXNwb3NlT25OYXZpZ2F0aW9uOiBjb25maWcubnpDbG9zZU9uTmF2aWdhdGlvbiA/PyBnbG9iYWxDb25maWcubnpDbG9zZU9uTmF2aWdhdGlvbiA/PyB0cnVlLFxuICAgICAgYmFja2Ryb3BDbGFzczogSU1BR0VfUFJFVklFV19NQVNLX0NMQVNTX05BTUUsXG4gICAgICBkaXJlY3Rpb246IGNvbmZpZy5uekRpcmVjdGlvbiB8fCBnbG9iYWxDb25maWcubnpEaXJlY3Rpb24gfHwgdGhpcy5kaXJlY3Rpb25hbGl0eS52YWx1ZVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMub3ZlcmxheS5jcmVhdGUob3ZlckxheUNvbmZpZyk7XG4gIH1cbn1cbiJdfQ==