@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>
199 lines • 12.8 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 { ToastRef } from './toast-ref';
import { ToastContainer } from './toast-container.component';
import { TOAST_CONFIG_DATA } from './toast.tokens';
/**
* @record
*/
export function ToastContent() { }
if (false) {
/** @type {?} */
ToastContent.prototype.type;
/** @type {?|undefined} */
ToastContent.prototype.body;
}
/**
* @record
*/
export function ToastConfig() { }
if (false) {
/** @type {?|undefined} */
ToastConfig.prototype.content;
/** @type {?|undefined} */
ToastConfig.prototype.position;
/** @type {?|undefined} */
ToastConfig.prototype.animation;
}
/** @type {?} */
var DEFAULT_CONFIG = {
position: {
top: 20,
},
animation: {
fadeOut: 2500,
fadeIn: 150,
},
content: null,
};
var ToastService = /** @class */ (function () {
function ToastService(injector, overlay) {
this.injector = injector;
this.overlay = overlay;
}
/**
* @param {?=} config
* @return {?}
*/
ToastService.prototype.show = /**
* @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 toastRef = new ToastRef(overlayRef);
this.lastToast = toastRef;
/** @type {?} */
var overlayComponent = this.attachToastContainer(overlayRef, dialogConfig, toastRef);
toastRef.componentInstance = overlayComponent;
return toastRef;
};
/**
* @private
* @param {?} config
* @return {?}
*/
ToastService.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 {?} toastRef
* @return {?}
*/
ToastService.prototype.attachToastContainer = /**
* @private
* @param {?} overlayRef
* @param {?} config
* @param {?} toastRef
* @return {?}
*/
function (overlayRef, config, toastRef) {
/** @type {?} */
var injector = this.createInjector(config, toastRef);
/** @type {?} */
var containerPortal = new ComponentPortal(ToastContainer, null, injector);
/** @type {?} */
var containerRef = overlayRef.attach(containerPortal);
return containerRef.instance;
};
/**
* @private
* @param {?} config
* @param {?} toastRef
* @return {?}
*/
ToastService.prototype.createInjector = /**
* @private
* @param {?} config
* @param {?} toastRef
* @return {?}
*/
function (config, toastRef) {
/** @type {?} */
var injectionTokens = new WeakMap();
injectionTokens.set(ToastRef, toastRef);
injectionTokens.set(TOAST_CONFIG_DATA, config);
return new PortalInjector(this.injector, injectionTokens);
};
/**
* @private
* @param {?} config
* @return {?}
*/
ToastService.prototype.getOverlayConfig = /**
* @private
* @param {?} config
* @return {?}
*/
function (config) {
/** @type {?} */
var positionStrategy = this.overlay.position()
.global()
.centerHorizontally()
.top(this.getPosition(config));
/** @type {?} */
var overlayConfig = new OverlayConfig({
positionStrategy: positionStrategy
});
return overlayConfig;
};
/**
* @param {?} config
* @return {?}
*/
ToastService.prototype.getPosition = /**
* @param {?} config
* @return {?}
*/
function (config) {
/** @type {?} */
var lastToastIsVisible = this.lastToast && this.lastToast.isVisible();
/** @type {?} */
var position = lastToastIsVisible
? this.lastToast.getPosition().bottom
: config.position.top;
return position + 'px';
};
ToastService.decorators = [
{ type: Injectable }
];
/** @nocollapse */
ToastService.ctorParameters = function () { return [
{ type: Injector },
{ type: Overlay }
]; };
return ToastService;
}());
export { ToastService };
if (false) {
/**
* @type {?}
* @private
*/
ToastService.prototype.lastToast;
/**
* @type {?}
* @private
*/
ToastService.prototype.injector;
/**
* @type {?}
* @private
*/
ToastService.prototype.overlay;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BrdXNoa2kvbmctc3VrYS8iLCJzb3VyY2VzIjpbImxpYi90b2FzdC90b2FzdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQTZCLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUluRCxrQ0FHQzs7O0lBRkMsNEJBQWdCOztJQUNoQiw0QkFBaUM7Ozs7O0FBR25DLGlDQVNDOzs7SUFSQyw4QkFBdUI7O0lBQ3ZCLCtCQUVFOztJQUNGLGdDQUdFOzs7SUFHRSxjQUFjLEdBQWdCO0lBQ2xDLFFBQVEsRUFBRTtRQUNSLEdBQUcsRUFBRSxFQUFFO0tBQ1I7SUFDRCxTQUFTLEVBQUU7UUFDVCxPQUFPLEVBQUUsSUFBSTtRQUNiLE1BQU0sRUFBRSxHQUFHO0tBQ1o7SUFDRCxPQUFPLEVBQUUsSUFBSTtDQUNkO0FBRUQ7SUFJRSxzQkFDVSxRQUFrQixFQUNsQixPQUFnQjtRQURoQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLFlBQU8sR0FBUCxPQUFPLENBQVM7SUFDdEIsQ0FBQzs7Ozs7SUFFTCwyQkFBSTs7OztJQUFKLFVBQUssTUFBd0I7UUFBeEIsdUJBQUEsRUFBQSxXQUF3Qjs7O1lBRXJCLFlBQVksd0JBQVEsY0FBYyxFQUFLLE1BQU0sQ0FBRTs7O1lBRy9DLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQzs7O1lBRzdDLFFBQVEsR0FBRyxJQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUM7UUFFekMsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7O1lBRXBCLGdCQUFnQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQztRQUV0RixRQUFRLENBQUMsaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUM7UUFFOUMsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQzs7Ozs7O0lBRU8sb0NBQWE7Ozs7O0lBQXJCLFVBQXNCLE1BQW1COztZQUNqQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztRQUNuRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzVDLENBQUM7Ozs7Ozs7O0lBRU8sMkNBQW9COzs7Ozs7O0lBQTVCLFVBQTZCLFVBQXNCLEVBQUUsTUFBbUIsRUFBRSxRQUFrQjs7WUFDcEYsUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQzs7WUFFaEQsZUFBZSxHQUFHLElBQUksZUFBZSxDQUFDLGNBQWMsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDOztZQUNyRSxZQUFZLEdBQWlDLFVBQVUsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDO1FBRXJGLE9BQU8sWUFBWSxDQUFDLFFBQVEsQ0FBQztJQUMvQixDQUFDOzs7Ozs7O0lBRU8scUNBQWM7Ozs7OztJQUF0QixVQUF1QixNQUFtQixFQUFFLFFBQWtCOztZQUN0RCxlQUFlLEdBQUcsSUFBSSxPQUFPLEVBQUU7UUFFckMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDeEMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUUvQyxPQUFPLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDNUQsQ0FBQzs7Ozs7O0lBRU8sdUNBQWdCOzs7OztJQUF4QixVQUF5QixNQUFtQjs7WUFDcEMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7YUFDN0MsTUFBTSxFQUFFO2FBQ1Isa0JBQWtCLEVBQUU7YUFDcEIsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7O1lBRTFCLGFBQWEsR0FBRyxJQUFJLGFBQWEsQ0FBQztZQUN0QyxnQkFBZ0Isa0JBQUE7U0FDakIsQ0FBQztRQUVGLE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7Ozs7O0lBRUQsa0NBQVc7Ozs7SUFBWCxVQUFZLE1BQW1COztZQUN2QixrQkFBa0IsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFOztZQUNqRSxRQUFRLEdBQUcsa0JBQWtCO1lBQ2pDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLE1BQU07WUFDckMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRztRQUV2QixPQUFPLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDekIsQ0FBQzs7Z0JBdkVGLFVBQVU7Ozs7Z0JBckNVLFFBQVE7Z0JBQ3BCLE9BQU87O0lBNkdoQixtQkFBQztDQUFBLEFBekVELElBeUVDO1NBeEVZLFlBQVk7Ozs7OztJQUN2QixpQ0FBNEI7Ozs7O0lBRzFCLGdDQUEwQjs7Ozs7SUFDMUIsK0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIENvbXBvbmVudFJlZiwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwsIFBvcnRhbEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5cbmltcG9ydCB7IFRvYXN0UmVmIH0gZnJvbSAnLi90b2FzdC1yZWYnO1xuaW1wb3J0IHsgVG9hc3RDb250YWluZXIgfSBmcm9tICcuL3RvYXN0LWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVE9BU1RfQ09ORklHX0RBVEEgfSBmcm9tICcuL3RvYXN0LnRva2Vucyc7XG5cbmV4cG9ydCB0eXBlIFRvYXN0VHlwZSA9ICdpbmZvJyB8ICdzdWNjZXNzJyB8ICdhdHRlbnRpb24nIHwgJ2FsZXJ0JztcblxuZXhwb3J0IGludGVyZmFjZSBUb2FzdENvbnRlbnQge1xuICB0eXBlOiBUb2FzdFR5cGU7XG4gIGJvZHk/OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRvYXN0Q29uZmlnIHtcbiAgY29udGVudD86IFRvYXN0Q29udGVudDtcbiAgcG9zaXRpb24/OiB7XG4gICAgdG9wOiBudW1iZXI7XG4gIH07XG4gIGFuaW1hdGlvbj86IHtcbiAgICBmYWRlT3V0OiBudW1iZXI7XG4gICAgZmFkZUluOiBudW1iZXI7XG4gIH07XG59XG5cbmNvbnN0IERFRkFVTFRfQ09ORklHOiBUb2FzdENvbmZpZyA9IHtcbiAgcG9zaXRpb246IHtcbiAgICB0b3A6IDIwLFxuICB9LFxuICBhbmltYXRpb246IHtcbiAgICBmYWRlT3V0OiAyNTAwLFxuICAgIGZhZGVJbjogMTUwLFxuICB9LFxuICBjb250ZW50OiBudWxsLFxufTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRvYXN0U2VydmljZSB7XG4gIHByaXZhdGUgbGFzdFRvYXN0OiBUb2FzdFJlZjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXlcbiAgKSB7IH1cblxuICBzaG93KGNvbmZpZzogVG9hc3RDb25maWcgPSB7fSkge1xuICAgIC8vIE92ZXJyaWRlIGRlZmF1bHQgY29uZmlndXJhdGlvblxuICAgIGNvbnN0IGRpYWxvZ0NvbmZpZyA9IHsgLi4uREVGQVVMVF9DT05GSUcsIC4uLmNvbmZpZyB9O1xuXG4gICAgLy8gUmV0dXJucyBhbiBPdmVybGF5UmVmIHdoaWNoIGlzIGEgUG9ydGFsSG9zdFxuICAgIGNvbnN0IG92ZXJsYXlSZWYgPSB0aGlzLmNyZWF0ZU92ZXJsYXkoZGlhbG9nQ29uZmlnKTtcblxuICAgIC8vIEluc3RhbnRpYXRlIHJlbW90ZSBjb250cm9sXG4gICAgY29uc3QgdG9hc3RSZWYgPSBuZXcgVG9hc3RSZWYob3ZlcmxheVJlZik7XG5cbiAgICB0aGlzLmxhc3RUb2FzdCA9IHRvYXN0UmVmO1xuXG4gICAgY29uc3Qgb3ZlcmxheUNvbXBvbmVudCA9IHRoaXMuYXR0YWNoVG9hc3RDb250YWluZXIob3ZlcmxheVJlZiwgZGlhbG9nQ29uZmlnLCB0b2FzdFJlZik7XG5cbiAgICB0b2FzdFJlZi5jb21wb25lbnRJbnN0YW5jZSA9IG92ZXJsYXlDb21wb25lbnQ7XG5cbiAgICByZXR1cm4gdG9hc3RSZWY7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZU92ZXJsYXkoY29uZmlnOiBUb2FzdENvbmZpZykge1xuICAgIGNvbnN0IG92ZXJsYXlDb25maWcgPSB0aGlzLmdldE92ZXJsYXlDb25maWcoY29uZmlnKTtcbiAgICByZXR1cm4gdGhpcy5vdmVybGF5LmNyZWF0ZShvdmVybGF5Q29uZmlnKTtcbiAgfVxuXG4gIHByaXZhdGUgYXR0YWNoVG9hc3RDb250YWluZXIob3ZlcmxheVJlZjogT3ZlcmxheVJlZiwgY29uZmlnOiBUb2FzdENvbmZpZywgdG9hc3RSZWY6IFRvYXN0UmVmKSB7XG4gICAgY29uc3QgaW5qZWN0b3IgPSB0aGlzLmNyZWF0ZUluamVjdG9yKGNvbmZpZywgdG9hc3RSZWYpO1xuXG4gICAgY29uc3QgY29udGFpbmVyUG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbChUb2FzdENvbnRhaW5lciwgbnVsbCwgaW5qZWN0b3IpO1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZjogQ29tcG9uZW50UmVmPFRvYXN0Q29udGFpbmVyPiA9IG92ZXJsYXlSZWYuYXR0YWNoKGNvbnRhaW5lclBvcnRhbCk7XG5cbiAgICByZXR1cm4gY29udGFpbmVyUmVmLmluc3RhbmNlO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVJbmplY3Rvcihjb25maWc6IFRvYXN0Q29uZmlnLCB0b2FzdFJlZjogVG9hc3RSZWYpOiBQb3J0YWxJbmplY3RvciB7XG4gICAgY29uc3QgaW5qZWN0aW9uVG9rZW5zID0gbmV3IFdlYWtNYXAoKTtcblxuICAgIGluamVjdGlvblRva2Vucy5zZXQoVG9hc3RSZWYsIHRvYXN0UmVmKTtcbiAgICBpbmplY3Rpb25Ub2tlbnMuc2V0KFRPQVNUX0NPTkZJR19EQVRBLCBjb25maWcpO1xuXG4gICAgcmV0dXJuIG5ldyBQb3J0YWxJbmplY3Rvcih0aGlzLmluamVjdG9yLCBpbmplY3Rpb25Ub2tlbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRPdmVybGF5Q29uZmlnKGNvbmZpZzogVG9hc3RDb25maWcpOiBPdmVybGF5Q29uZmlnIHtcbiAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5LnBvc2l0aW9uKClcbiAgICAgIC5nbG9iYWwoKVxuICAgICAgLmNlbnRlckhvcml6b250YWxseSgpXG4gICAgICAudG9wKHRoaXMuZ2V0UG9zaXRpb24oY29uZmlnKSk7XG5cbiAgICBjb25zdCBvdmVybGF5Q29uZmlnID0gbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgcG9zaXRpb25TdHJhdGVneVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG92ZXJsYXlDb25maWc7XG4gIH1cblxuICBnZXRQb3NpdGlvbihjb25maWc6IFRvYXN0Q29uZmlnKSB7XG4gICAgY29uc3QgbGFzdFRvYXN0SXNWaXNpYmxlID0gdGhpcy5sYXN0VG9hc3QgJiYgdGhpcy5sYXN0VG9hc3QuaXNWaXNpYmxlKCk7XG4gICAgY29uc3QgcG9zaXRpb24gPSBsYXN0VG9hc3RJc1Zpc2libGVcbiAgICAgID8gdGhpcy5sYXN0VG9hc3QuZ2V0UG9zaXRpb24oKS5ib3R0b21cbiAgICAgIDogY29uZmlnLnBvc2l0aW9uLnRvcDtcblxuICAgIHJldHVybiBwb3NpdGlvbiArICdweCc7XG4gIH1cblxufVxuIl19