UNPKG

@kushki/ng-suka

Version:

<p align="center"> <h1 align="center">Suka Components Angular</h1> <p align="center"> An Angular implementation of the Suka Design System </p> </p>

190 lines 13 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { Injectable, Injector } from '@angular/core'; import { Overlay, OverlayConfig } from '@angular/cdk/overlay'; import { ComponentPortal, PortalInjector } from '@angular/cdk/portal'; import { SheetRef } from './sheet-ref'; import { SHEET_CONTENT_DATA } from './sheet.tokens'; import { SheetContainer } from './sheet-container.component'; /** * @record */ export function SheetContent() { } if (false) { /** @type {?|undefined} */ SheetContent.prototype.title; /** @type {?|undefined} */ SheetContent.prototype.body; /** @type {?|undefined} */ SheetContent.prototype.closeButton; /** @type {?|undefined} */ SheetContent.prototype.actions; } /** * @record */ export function SheetConfig() { } if (false) { /** @type {?|undefined} */ SheetConfig.prototype.closeOnBackdropClick; /** @type {?|undefined} */ SheetConfig.prototype.panelClass; /** @type {?|undefined} */ SheetConfig.prototype.hasBackdrop; /** @type {?|undefined} */ SheetConfig.prototype.backdropClass; /** @type {?|undefined} */ SheetConfig.prototype.content; } /** @type {?} */ var DEFAULT_CONFIG = { closeOnBackdropClick: true, hasBackdrop: true, backdropClass: 'cdk-overlay-transparent-backdrop', panelClass: 'modal--default', content: null }; var SheetService = /** @class */ (function () { function SheetService(injector, overlay) { this.injector = injector; this.overlay = overlay; } /** * @param {?=} config * @return {?} */ SheetService.prototype.open = /** * @param {?=} config * @return {?} */ function (config) { if (config === void 0) { config = {}; } // Override default configuration /** @type {?} */ var dialogConfig = tslib_1.__assign({}, DEFAULT_CONFIG, config); // Returns an OverlayRef which is a PortalHost /** @type {?} */ var overlayRef = this.createOverlay(dialogConfig); // Instantiate remote control /** @type {?} */ var modalRef = new SheetRef(overlayRef); /** @type {?} */ var overlayComponent = this.attachSheetContainer(overlayRef, dialogConfig, modalRef); modalRef.componentInstance = overlayComponent; if (dialogConfig.closeOnBackdropClick) { overlayRef.backdropClick().subscribe((/** * @param {?} _ * @return {?} */ function (_) { return modalRef.close('cancel'); })); } return modalRef; }; /** * @private * @param {?} config * @return {?} */ SheetService.prototype.createOverlay = /** * @private * @param {?} config * @return {?} */ function (config) { /** @type {?} */ var overlayConfig = this.getOverlayConfig(config); return this.overlay.create(overlayConfig); }; /** * @private * @param {?} overlayRef * @param {?} config * @param {?} modalRef * @return {?} */ SheetService.prototype.attachSheetContainer = /** * @private * @param {?} overlayRef * @param {?} config * @param {?} modalRef * @return {?} */ function (overlayRef, config, modalRef) { /** @type {?} */ var injector = this.createInjector(config, modalRef); /** @type {?} */ var containerPortal = new ComponentPortal(SheetContainer, null, injector); /** @type {?} */ var containerRef = overlayRef.attach(containerPortal); return containerRef.instance; }; /** * @private * @param {?} config * @param {?} modalRef * @return {?} */ SheetService.prototype.createInjector = /** * @private * @param {?} config * @param {?} modalRef * @return {?} */ function (config, modalRef) { /** @type {?} */ var injectionTokens = new WeakMap(); injectionTokens.set(SheetRef, modalRef); injectionTokens.set(SHEET_CONTENT_DATA, config.content); return new PortalInjector(this.injector, injectionTokens); }; /** * @private * @param {?} config * @return {?} */ SheetService.prototype.getOverlayConfig = /** * @private * @param {?} config * @return {?} */ function (config) { /** @type {?} */ var positionStrategy = this.overlay.position() .global(); /** @type {?} */ var overlayConfig = new OverlayConfig({ hasBackdrop: config.hasBackdrop, backdropClass: config.backdropClass, panelClass: config.panelClass, scrollStrategy: this.overlay.scrollStrategies.noop(), positionStrategy: positionStrategy }); return overlayConfig; }; SheetService.decorators = [ { type: Injectable } ]; /** @nocollapse */ SheetService.ctorParameters = function () { return [ { type: Injector }, { type: Overlay } ]; }; return SheetService; }()); export { SheetService }; if (false) { /** * @type {?} * @private */ SheetService.prototype.injector; /** * @type {?} * @private */ SheetService.prototype.overlay; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlZXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BrdXNoa2kvbmctc3VrYS8iLCJzb3VyY2VzIjpbImxpYi9zaGVldC9zaGVldC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQTZCLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7OztBQUU3RCxrQ0FTQzs7O0lBUkMsNkJBQWtDOztJQUNsQyw0QkFBaUM7O0lBQ2pDLG1DQUFzQjs7SUFDdEIsK0JBSUk7Ozs7O0FBR04saUNBTUM7OztJQUxDLDJDQUErQjs7SUFDL0IsaUNBQW9COztJQUNwQixrQ0FBc0I7O0lBQ3RCLG9DQUF1Qjs7SUFDdkIsOEJBQXVCOzs7SUFHbkIsY0FBYyxHQUFnQjtJQUNsQyxvQkFBb0IsRUFBRSxJQUFJO0lBQzFCLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLGFBQWEsRUFBRSxrQ0FBa0M7SUFDakQsVUFBVSxFQUFFLGdCQUFnQjtJQUM1QixPQUFPLEVBQUUsSUFBSTtDQUNkO0FBRUQ7SUFHRSxzQkFDVSxRQUFrQixFQUNsQixPQUFnQjtRQURoQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLFlBQU8sR0FBUCxPQUFPLENBQVM7SUFDdEIsQ0FBQzs7Ozs7SUFFTCwyQkFBSTs7OztJQUFKLFVBQUssTUFBd0I7UUFBeEIsdUJBQUEsRUFBQSxXQUF3Qjs7O1lBRXJCLFlBQVksd0JBQVEsY0FBYyxFQUFLLE1BQU0sQ0FBRTs7O1lBRy9DLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQzs7O1lBRzdDLFFBQVEsR0FBRyxJQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUM7O1lBRW5DLGdCQUFnQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQztRQUV0RixRQUFRLENBQUMsaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUM7UUFFOUMsSUFBSSxZQUFZLENBQUMsb0JBQW9CLEVBQUU7WUFDckMsVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDLFNBQVM7Ozs7WUFBQyxVQUFBLENBQUMsSUFBSSxPQUFBLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQXhCLENBQXdCLEVBQUMsQ0FBQztTQUNyRTtRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7Ozs7OztJQUVPLG9DQUFhOzs7OztJQUFyQixVQUFzQixNQUFtQjs7WUFDakMsYUFBYSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7UUFDbkQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM1QyxDQUFDOzs7Ozs7OztJQUVPLDJDQUFvQjs7Ozs7OztJQUE1QixVQUE2QixVQUFzQixFQUFFLE1BQW1CLEVBQUUsUUFBa0I7O1lBQ3BGLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUM7O1lBRWhELGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQzs7WUFDckUsWUFBWSxHQUFpQyxVQUFVLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQztRQUVyRixPQUFPLFlBQVksQ0FBQyxRQUFRLENBQUM7SUFDL0IsQ0FBQzs7Ozs7OztJQUVPLHFDQUFjOzs7Ozs7SUFBdEIsVUFBdUIsTUFBbUIsRUFBRSxRQUFrQjs7WUFDdEQsZUFBZSxHQUFHLElBQUksT0FBTyxFQUFFO1FBRXJDLGVBQWUsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLGVBQWUsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXhELE9BQU8sSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxlQUFlLENBQUMsQ0FBQztJQUM1RCxDQUFDOzs7Ozs7SUFFTyx1Q0FBZ0I7Ozs7O0lBQXhCLFVBQXlCLE1BQW1COztZQUNwQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTthQUM3QyxNQUFNLEVBQUU7O1lBRUwsYUFBYSxHQUFHLElBQUksYUFBYSxDQUFDO1lBQ3RDLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVztZQUMvQixhQUFhLEVBQUUsTUFBTSxDQUFDLGFBQWE7WUFDbkMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxVQUFVO1lBQzdCLGNBQWMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRTtZQUNwRCxnQkFBZ0Isa0JBQUE7U0FDakIsQ0FBQztRQUVGLE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7O2dCQWpFRixVQUFVOzs7O2dCQW5DVSxRQUFRO2dCQUNwQixPQUFPOztJQW9HaEIsbUJBQUM7Q0FBQSxBQWxFRCxJQWtFQztTQWpFWSxZQUFZOzs7Ozs7SUFHckIsZ0NBQTBCOzs7OztJQUMxQiwrQkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciwgQ29tcG9uZW50UmVmLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCwgUG9ydGFsSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcblxuaW1wb3J0IHsgU2hlZXRSZWYgfSBmcm9tICcuL3NoZWV0LXJlZic7XG5pbXBvcnQgeyBTSEVFVF9DT05URU5UX0RBVEEgfSBmcm9tICcuL3NoZWV0LnRva2Vucyc7XG5pbXBvcnQgeyBTaGVldENvbnRhaW5lciB9IGZyb20gJy4vc2hlZXQtY29udGFpbmVyLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hlZXRDb250ZW50IHtcbiAgdGl0bGU/OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuICBib2R5Pzogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PjtcbiAgY2xvc2VCdXR0b24/OiBib29sZWFuO1xuICBhY3Rpb25zPzoge1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgdHlwZTogJ3ByaW1hcnknIHwgJ3NlY29uZGFyeSc7XG4gICAgdGFnPzogc3RyaW5nO1xuICB9W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hlZXRDb25maWcge1xuICBjbG9zZU9uQmFja2Ryb3BDbGljaz86IGJvb2xlYW47XG4gIHBhbmVsQ2xhc3M/OiBzdHJpbmc7XG4gIGhhc0JhY2tkcm9wPzogYm9vbGVhbjtcbiAgYmFja2Ryb3BDbGFzcz86IHN0cmluZztcbiAgY29udGVudD86IFNoZWV0Q29udGVudDtcbn1cblxuY29uc3QgREVGQVVMVF9DT05GSUc6IFNoZWV0Q29uZmlnID0ge1xuICBjbG9zZU9uQmFja2Ryb3BDbGljazogdHJ1ZSxcbiAgaGFzQmFja2Ryb3A6IHRydWUsXG4gIGJhY2tkcm9wQ2xhc3M6ICdjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCcsXG4gIHBhbmVsQ2xhc3M6ICdtb2RhbC0tZGVmYXVsdCcsXG4gIGNvbnRlbnQ6IG51bGxcbn07XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTaGVldFNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheVxuICApIHsgfVxuXG4gIG9wZW4oY29uZmlnOiBTaGVldENvbmZpZyA9IHt9KSB7XG4gICAgLy8gT3ZlcnJpZGUgZGVmYXVsdCBjb25maWd1cmF0aW9uXG4gICAgY29uc3QgZGlhbG9nQ29uZmlnID0geyAuLi5ERUZBVUxUX0NPTkZJRywgLi4uY29uZmlnIH07XG5cbiAgICAvLyBSZXR1cm5zIGFuIE92ZXJsYXlSZWYgd2hpY2ggaXMgYSBQb3J0YWxIb3N0XG4gICAgY29uc3Qgb3ZlcmxheVJlZiA9IHRoaXMuY3JlYXRlT3ZlcmxheShkaWFsb2dDb25maWcpO1xuXG4gICAgLy8gSW5zdGFudGlhdGUgcmVtb3RlIGNvbnRyb2xcbiAgICBjb25zdCBtb2RhbFJlZiA9IG5ldyBTaGVldFJlZihvdmVybGF5UmVmKTtcblxuICAgIGNvbnN0IG92ZXJsYXlDb21wb25lbnQgPSB0aGlzLmF0dGFjaFNoZWV0Q29udGFpbmVyKG92ZXJsYXlSZWYsIGRpYWxvZ0NvbmZpZywgbW9kYWxSZWYpO1xuXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UgPSBvdmVybGF5Q29tcG9uZW50O1xuXG4gICAgaWYgKGRpYWxvZ0NvbmZpZy5jbG9zZU9uQmFja2Ryb3BDbGljaykge1xuICAgICAgb3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKF8gPT4gbW9kYWxSZWYuY2xvc2UoJ2NhbmNlbCcpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbW9kYWxSZWY7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZU92ZXJsYXkoY29uZmlnOiBTaGVldENvbmZpZykge1xuICAgIGNvbnN0IG92ZXJsYXlDb25maWcgPSB0aGlzLmdldE92ZXJsYXlDb25maWcoY29uZmlnKTtcbiAgICByZXR1cm4gdGhpcy5vdmVybGF5LmNyZWF0ZShvdmVybGF5Q29uZmlnKTtcbiAgfVxuXG4gIHByaXZhdGUgYXR0YWNoU2hlZXRDb250YWluZXIob3ZlcmxheVJlZjogT3ZlcmxheVJlZiwgY29uZmlnOiBTaGVldENvbmZpZywgbW9kYWxSZWY6IFNoZWV0UmVmKSB7XG4gICAgY29uc3QgaW5qZWN0b3IgPSB0aGlzLmNyZWF0ZUluamVjdG9yKGNvbmZpZywgbW9kYWxSZWYpO1xuXG4gICAgY29uc3QgY29udGFpbmVyUG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbChTaGVldENvbnRhaW5lciwgbnVsbCwgaW5qZWN0b3IpO1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZjogQ29tcG9uZW50UmVmPFNoZWV0Q29udGFpbmVyPiA9IG92ZXJsYXlSZWYuYXR0YWNoKGNvbnRhaW5lclBvcnRhbCk7XG5cbiAgICByZXR1cm4gY29udGFpbmVyUmVmLmluc3RhbmNlO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVJbmplY3Rvcihjb25maWc6IFNoZWV0Q29uZmlnLCBtb2RhbFJlZjogU2hlZXRSZWYpOiBQb3J0YWxJbmplY3RvciB7XG4gICAgY29uc3QgaW5qZWN0aW9uVG9rZW5zID0gbmV3IFdlYWtNYXAoKTtcblxuICAgIGluamVjdGlvblRva2Vucy5zZXQoU2hlZXRSZWYsIG1vZGFsUmVmKTtcbiAgICBpbmplY3Rpb25Ub2tlbnMuc2V0KFNIRUVUX0NPTlRFTlRfREFUQSwgY29uZmlnLmNvbnRlbnQpO1xuXG4gICAgcmV0dXJuIG5ldyBQb3J0YWxJbmplY3Rvcih0aGlzLmluamVjdG9yLCBpbmplY3Rpb25Ub2tlbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRPdmVybGF5Q29uZmlnKGNvbmZpZzogU2hlZXRDb25maWcpOiBPdmVybGF5Q29uZmlnIHtcbiAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5LnBvc2l0aW9uKClcbiAgICAgIC5nbG9iYWwoKTtcblxuICAgIGNvbnN0IG92ZXJsYXlDb25maWcgPSBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICBoYXNCYWNrZHJvcDogY29uZmlnLmhhc0JhY2tkcm9wLFxuICAgICAgYmFja2Ryb3BDbGFzczogY29uZmlnLmJhY2tkcm9wQ2xhc3MsXG4gICAgICBwYW5lbENsYXNzOiBjb25maWcucGFuZWxDbGFzcyxcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ub29wKCksXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5XG4gICAgfSk7XG5cbiAgICByZXR1cm4gb3ZlcmxheUNvbmZpZztcbiAgfVxufVxuIl19