carbon-components-angular
Version:
Next generation components
62 lines • 6.86 kB
JavaScript
import { Injectable } from "@angular/core";
import { AlertModal } from "./alert-modal.component";
import { BaseModalService } from "./base-modal.service";
import * as i0 from "@angular/core";
import * as i1 from "carbon-components-angular/placeholder";
/**
* Extends Base Modal Service to create Alert Modal with a function call. Placed in a seperate service
* to prevent remote scoping (NG3003) which has side effects. Hence, import cycles are not allowed when
* compilationMode is set to `partial`.
*
*
* Modal service handles instantiating and destroying modal instances.
* Uses PlaceholderService to track open instances, and for it's placeholder view reference.
*/
export class ModalService extends BaseModalService {
/**
* Creates an instance of `ModalService`.
*/
constructor(placeholderService) {
super(placeholderService);
this.placeholderService = placeholderService;
}
/**
* Creates and renders a new alert modal component.
* @param data You can pass in:
* `type` - "default" | "danger" = "default",
* `label` - a label shown over the title,
* `title` - modal's title,
* `content` - modal's content, could include HTML tags.
* `buttons` is an array of objects
* `close` custom close function
* ```
* {
* text: "Button text",
* type: "primary" | "secondary" | "tertiary" | "ghost" | "danger" | "danger--primary" = "primary",
* click: clickFunction,
* }
* ```
*/
show(data) {
return this.create({
component: AlertModal,
inputs: {
type: data.type,
label: data.label,
title: data.title,
content: data.content,
hasScrollingContent: data.hasScrollingContent !== undefined ? data.hasScrollingContent : null,
size: data.size,
buttons: data.buttons || [],
close: data.close || (() => { }),
showCloseButton: data.showCloseButton
}
});
}
}
ModalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ModalService, deps: [{ token: i1.PlaceholderService }], target: i0.ɵɵFactoryTarget.Injectable });
ModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ModalService });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ModalService, decorators: [{
type: Injectable
}], ctorParameters: function () { return [{ type: i1.PlaceholderService }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RhbC9tb2RhbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUdyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBRXhEOzs7Ozs7OztHQVFHO0FBRUgsTUFBTSxPQUFPLFlBQWEsU0FBUSxnQkFBZ0I7SUFDakQ7O09BRUc7SUFDSCxZQUFtQixrQkFBc0M7UUFDeEQsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFEUix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO0lBRXpELENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7OztPQWdCRztJQUNILElBQUksQ0FBQyxJQUFvQjtRQUN4QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDbEIsU0FBUyxFQUFFLFVBQVU7WUFDckIsTUFBTSxFQUFFO2dCQUNQLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDZixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7Z0JBQ2pCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDakIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO2dCQUNyQixtQkFBbUIsRUFBRSxJQUFJLENBQUMsbUJBQW1CLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLElBQUk7Z0JBQzdGLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDZixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFO2dCQUMzQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDaEMsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlO2FBQ3JDO1NBQ0QsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs7eUdBeENXLFlBQVk7NkdBQVosWUFBWTsyRkFBWixZQUFZO2tCQUR4QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBbGVydE1vZGFsIH0gZnJvbSBcIi4vYWxlcnQtbW9kYWwuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBBbGVydE1vZGFsRGF0YSB9IGZyb20gXCIuL2FsZXJ0LW1vZGFsLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgUGxhY2Vob2xkZXJTZXJ2aWNlIH0gZnJvbSBcImNhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXIvcGxhY2Vob2xkZXJcIjtcbmltcG9ydCB7IEJhc2VNb2RhbFNlcnZpY2UgfSBmcm9tIFwiLi9iYXNlLW1vZGFsLnNlcnZpY2VcIjtcblxuLyoqXG4gKiBFeHRlbmRzIEJhc2UgTW9kYWwgU2VydmljZSB0byBjcmVhdGUgQWxlcnQgTW9kYWwgd2l0aCBhIGZ1bmN0aW9uIGNhbGwuIFBsYWNlZCBpbiBhIHNlcGVyYXRlIHNlcnZpY2VcbiAqIHRvIHByZXZlbnQgcmVtb3RlIHNjb3BpbmcgKE5HMzAwMykgd2hpY2ggaGFzIHNpZGUgZWZmZWN0cy4gSGVuY2UsIGltcG9ydCBjeWNsZXMgYXJlIG5vdCBhbGxvd2VkIHdoZW5cbiAqIGNvbXBpbGF0aW9uTW9kZSBpcyBzZXQgdG8gYHBhcnRpYWxgLlxuICpcbiAqXG4gKiBNb2RhbCBzZXJ2aWNlIGhhbmRsZXMgaW5zdGFudGlhdGluZyBhbmQgZGVzdHJveWluZyBtb2RhbCBpbnN0YW5jZXMuXG4gKiBVc2VzIFBsYWNlaG9sZGVyU2VydmljZSB0byB0cmFjayBvcGVuIGluc3RhbmNlcywgYW5kIGZvciBpdCdzIHBsYWNlaG9sZGVyIHZpZXcgcmVmZXJlbmNlLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTW9kYWxTZXJ2aWNlIGV4dGVuZHMgQmFzZU1vZGFsU2VydmljZSB7XG5cdC8qKlxuXHQgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIGBNb2RhbFNlcnZpY2VgLlxuXHQgKi9cblx0Y29uc3RydWN0b3IocHVibGljIHBsYWNlaG9sZGVyU2VydmljZTogUGxhY2Vob2xkZXJTZXJ2aWNlKSB7XG5cdFx0c3VwZXIocGxhY2Vob2xkZXJTZXJ2aWNlKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIGFuZCByZW5kZXJzIGEgbmV3IGFsZXJ0IG1vZGFsIGNvbXBvbmVudC5cblx0ICogQHBhcmFtIGRhdGEgWW91IGNhbiBwYXNzIGluOlxuXHQgKiBgdHlwZWAgLSBcImRlZmF1bHRcIiB8IFwiZGFuZ2VyXCIgPSBcImRlZmF1bHRcIixcblx0ICogYGxhYmVsYCAtIGEgbGFiZWwgc2hvd24gb3ZlciB0aGUgdGl0bGUsXG5cdCAqIGB0aXRsZWAgLSBtb2RhbCdzIHRpdGxlLFxuXHQgKiBgY29udGVudGAgLSBtb2RhbCdzIGNvbnRlbnQsIGNvdWxkIGluY2x1ZGUgSFRNTCB0YWdzLlxuXHQgKiBgYnV0dG9uc2AgaXMgYW4gYXJyYXkgb2Ygb2JqZWN0c1xuXHQgKiBgY2xvc2VgIGN1c3RvbSBjbG9zZSBmdW5jdGlvblxuXHQgKiBgYGBcblx0ICoge1xuXHQgKiBcdFx0dGV4dDogXCJCdXR0b24gdGV4dFwiLFxuXHQgKiBcdFx0dHlwZTogXCJwcmltYXJ5XCIgfCBcInNlY29uZGFyeVwiIHwgXCJ0ZXJ0aWFyeVwiIHwgXCJnaG9zdFwiIHwgXCJkYW5nZXJcIiB8IFwiZGFuZ2VyLS1wcmltYXJ5XCIgPSBcInByaW1hcnlcIixcblx0ICogXHRcdGNsaWNrOiBjbGlja0Z1bmN0aW9uLFxuXHQgKiB9XG5cdCAqIGBgYFxuXHQgKi9cblx0c2hvdyhkYXRhOiBBbGVydE1vZGFsRGF0YSkge1xuXHRcdHJldHVybiB0aGlzLmNyZWF0ZSh7XG5cdFx0XHRjb21wb25lbnQ6IEFsZXJ0TW9kYWwsXG5cdFx0XHRpbnB1dHM6IHtcblx0XHRcdFx0dHlwZTogZGF0YS50eXBlLFxuXHRcdFx0XHRsYWJlbDogZGF0YS5sYWJlbCxcblx0XHRcdFx0dGl0bGU6IGRhdGEudGl0bGUsXG5cdFx0XHRcdGNvbnRlbnQ6IGRhdGEuY29udGVudCxcblx0XHRcdFx0aGFzU2Nyb2xsaW5nQ29udGVudDogZGF0YS5oYXNTY3JvbGxpbmdDb250ZW50ICE9PSB1bmRlZmluZWQgPyBkYXRhLmhhc1Njcm9sbGluZ0NvbnRlbnQgOiBudWxsLFxuXHRcdFx0XHRzaXplOiBkYXRhLnNpemUsXG5cdFx0XHRcdGJ1dHRvbnM6IGRhdGEuYnV0dG9ucyB8fCBbXSxcblx0XHRcdFx0Y2xvc2U6IGRhdGEuY2xvc2UgfHwgKCgpID0+IHsgfSksXG5cdFx0XHRcdHNob3dDbG9zZUJ1dHRvbjogZGF0YS5zaG93Q2xvc2VCdXR0b25cblx0XHRcdH1cblx0XHR9KTtcblx0fVxufVxuXG4iXX0=