@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
JavaScript
/**
* @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