carbon-components-angular
Version:
Next generation components
1 lines • 48.5 kB
Source Map (JSON)
{"version":3,"file":"carbon-components-angular-modal.mjs","sources":["../../src/modal/base-modal.class.ts","../../src/modal/base-modal.service.ts","../../src/modal/overlay.component.ts","../../src/modal/modal.component.ts","../../src/modal/modal-header.component.ts","../../src/modal/modal-footer.component.ts","../../src/modal/modal-content.directive.ts","../../src/modal/modal-header-heading.directive.ts","../../src/modal/modal-header-label.directive.ts","../../src/modal/alert-modal.component.ts","../../src/modal/alert-modal.interface.ts","../../src/modal/modal.service.ts","../../src/modal/modal-content-text.directive.ts","../../src/modal/modal.module.ts","../../src/modal/carbon-components-angular-modal.ts"],"sourcesContent":["import {\n\tOutput,\n\tEventEmitter,\n\tInput,\n\tDirective\n} from \"@angular/core\";\n\n/**\n * Extend `BaseModal` in your custom modal implementations to ensure consistent close behavior.\n *\n * `ModalService` depends on the `close` event to correctly clean up the component.\n */\n@Directive({\n\tselector: \"[cdsBaseModal], [ibmBaseModal]\"\n})\nexport class BaseModal {\n\t/**\n\t * Base event emitter to propagate close events\n\t */\n\t@Output() close = new EventEmitter();\n\n\t/**\n\t * Controls the open state of the modal\n\t */\n\t@Input() open = false;\n\n\t/**\n\t * Default method to handle closing the modal\n\t */\n\tcloseModal(): void {\n\t\tthis.close.emit();\n\t}\n}\n","import {\n\tComponentRef,\n\tInjector,\n\tInjectable\n} from \"@angular/core\";\nimport { PlaceholderService } from \"carbon-components-angular/placeholder\";\nimport { tap, delay } from \"rxjs/operators\";\n\n\n/**\n * Modal service handles instantiating and destroying modal instances.\n * Uses PlaceholderService to track open instances, and for it's placeholder view reference.\n */\n@Injectable()\nexport class BaseModalService {\n\t// track all our open modals\n\tprotected static modalList: Array<ComponentRef<any>> = [];\n\n\t/**\n\t * Creates an instance of `ModalService`.\n\t */\n\tconstructor(public placeholderService: PlaceholderService) {}\n\n\t/**\n\t * Creates and renders the modal component that is passed in.\n\t * `inputs` is an optional parameter of `data` that can be passed to the `Modal` component.\n\t */\n\tcreate<T>(data: { component: any, inputs?: any }): ComponentRef<any> {\n\t\tlet defaults = { inputs: {} };\n\t\tdata = Object.assign({}, defaults, data);\n\n\t\tconst inputProviders = Object.keys(data.inputs).map(inputName => ({\n\t\t\tprovide: inputName,\n\t\t\tuseValue: data.inputs[inputName]\n\t\t}));\n\t\tconst injector = Injector.create({ providers: inputProviders });\n\t\tconst component = this.placeholderService.createComponent(data.component, injector);\n\t\tlet focusedElement = document.activeElement as HTMLElement;\n\t\tsetTimeout(() => {\n\t\t\tcomponent.instance.open = true;\n\t\t});\n\n\t\tcomponent[\"previouslyFocusedElement\"] = focusedElement; // used to return focus to previously focused element\n\n\t\tcomponent.instance.close.pipe(\n\t\t\t// trigger the close animation\n\t\t\ttap(() => {\n\t\t\t\tcomponent.instance.open = false;\n\t\t\t}),\n\t\t\t// delay closing by an arbitrary amount to allow the animation to finish\n\t\t\tdelay(240)\n\t\t).subscribe(() => {\n\t\t\tthis.placeholderService.destroyComponent(component);\n\t\t\t// filter out our component\n\t\t\tBaseModalService.modalList = BaseModalService.modalList.filter(c => c !== component);\n\t\t});\n\n\t\tcomponent.onDestroy(() => {\n\t\t\tfocusedElement.focus();\n\t\t});\n\n\t\tBaseModalService.modalList.push(component);\n\n\t\treturn component;\n\t}\n\n\t/**\n\t * Destroys the modal on the supplied index.\n\t * When called without parameters it destroys the most recently created/top most modal.\n\t */\n\tdestroy(index = -1) {\n\t\t// return if nothing to destroy because it's already destroyed\n\t\tif (index >= BaseModalService.modalList.length || BaseModalService.modalList.length === 0) {\n\t\t\treturn;\n\t\t}\n\t\t// on negative index destroy the last on the list (top modal)\n\t\tif (index < 0) {\n\t\t\tindex = BaseModalService.modalList.length - 1;\n\t\t}\n\n\t\t// Let animation finish before component is removed\n\t\tsetTimeout(() => {\n\t\t\tif (BaseModalService.modalList[index]) {\n\t\t\t\tthis.placeholderService.destroyComponent(BaseModalService.modalList[index]);\n\t\t\t\tBaseModalService.modalList.splice(index, 1);\n\t\t\t}\n\t\t}, 240);\n\t}\n}\n","import {\n\tComponent,\n\tOutput,\n\tEventEmitter,\n\tViewChild,\n\tElementRef,\n\tInput\n} from \"@angular/core\";\n\n\n/**\n * Component for the overlay object that acts as a backdrop to the `Modal` component.\n *\n * The main purpose for this component is to be able to handle click events that fall outside\n * the bounds of the `Modal` component.\n */\n@Component({\n\tselector: \"cds-overlay, ibm-overlay\",\n\ttemplate: `\n\t\t<section\n\t\t\tclass=\"cds--modal cds--modal-tall\"\n\t\t\t[ngClass]=\"{\n\t\t\t\t'cds--modal--danger': theme === 'danger',\n\t\t\t\t'is-visible': open\n\t\t\t}\"\n\t\t\t(click)=\"overlayClick($event)\"\n\t\t\t#overlay>\n\t\t\t<ng-content></ng-content>\n\t\t</section>\n\t`\n})\nexport class Overlay {\n\t/**\n\t * Classification of the modal.\n\t */\n\t@Input() theme: \"default\" | \"danger\" = \"default\";\n\t@Input() open = false;\n\t/**\n\t * To emit the event where the user selects the overlay behind the `Modal`.\n\t */\n\t@Output() overlaySelect = new EventEmitter();\n\t/**\n\t * Maintains a reference to the view DOM element of the `Overlay`.\n\t */\n\t@ViewChild(\"overlay\", { static: true }) overlay: ElementRef;\n\n\t/**\n\t * Handles the user clicking on the `Overlay` which resides outside the `Modal` object.\n\t */\n\toverlayClick(event) {\n\t\tif (event.target !== this.overlay.nativeElement) { return; }\n\t\tevent.stopPropagation();\n\t\tthis.overlaySelect.emit(event);\n\t}\n\n}\n","import {\n\tAfterViewInit,\n\tComponent,\n\tEventEmitter,\n\tHostListener,\n\tInput,\n\tOutput,\n\tElementRef,\n\tViewChild,\n\tSimpleChanges,\n\tOnChanges,\n\tRenderer2,\n\tInject,\n\tOnDestroy\n} from \"@angular/core\";\nimport { DOCUMENT } from \"@angular/common\";\nimport { cycleTabs, getFocusElementList } from \"carbon-components-angular/common\";\nimport { BaseModalService } from \"./base-modal.service\";\n\n/**\n * Component to create modals for presenting content.\n *\n * [See demo](../../?path=/story/components-modal--basic)\n *\n * Using a modal in your application requires `cds-placeholder` which would generally be\n * placed near the end of your app component template (app.component.ts or app.component.html) as:\n *\n```html\n<cds-placeholder></cds-placeholder>\n```\n *\n * A more complete example for `Modal` is given as follows:\n *\n * Example modal definition:\n *\n```typescript\n@Component({\n\tselector: \"app-sample-modal\",\n\ttemplate: `\n\t\t\t\t<cds-modal size=\"xl\" (overlaySelected)=\"closeModal()\">\n\t\t\t\t\t<cds-modal-header (closeSelect)=\"closeModal()\">Header text</cds-modal-header>\n\t\t\t\t\t\t<section class=\"modal-body\">\n\t\t\t\t\t\t\t<h1>Sample modal works.</h1>\n\t\t\t\t\t\t\t<button class=\"btn--icon-link\" nPopover=\"Hello there\" title=\"Popover title\" placement=\"right\" appendInline=\"true\">\n\t\t\t\t\t\t\t\t<svg cdsIcon=\"info\" size=\"sm\"></svg>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t{{modalText}}\n\t\t\t\t\t\t</section>\n\t\t\t\t\t<cds-modal-footer><button cdsButton=\"primary\" (click)=\"closeModal()\">Close</button></cds-modal-footer>\n\t\t\t\t</cds-modal>`,\n\tstyleUrls: [\"./sample-modal.component.scss\"]\n})\nexport class SampleModal extends BaseModal {\n\tmodalText: string;\n\tconstructor(protected injector: Injector) {\n\t\tsuper();\n\t\tthis.modalText = this.injector.get(\"modalText\");\n\t}\n}\n```\n *\n * Example of opening the modal:\n *\n```typescript\n@Component({\n\tselector: \"app-modal-demo\",\n\ttemplate: `\n\t\t\t\t<button cdsButton=\"primary\" (click)=\"openModal('drill')\">Drill-down modal</button>\n\t\t\t\t<cds-placeholder></cds-placeholder>`\n})\nexport class ModalDemo {\n\topenModal() {\n\t\tthis.modalService.create({component: SampleModal, inputs: {modalText: \"Hello universe.\"}});\n\t}\n}\n```\n */\n@Component({\n\tselector: \"cds-modal, ibm-modal\",\n\ttemplate: `\n\t\t<cds-overlay\n\t\t\t[theme]=\"theme\"\n\t\t\t[open]=\"open\"\n\t\t\t(overlaySelect)=\"overlaySelected.emit()\">\n\t\t\t<div\n\t\t\t\tclass=\"cds--modal-container\"\n\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t'cds--modal-container--xs': size === 'xs',\n\t\t\t\t\t'cds--modal-container--sm': size === 'sm',\n\t\t\t\t\t'cds--modal-container--md': size === 'md',\n\t\t\t\t\t'cds--modal-container--lg': size === 'lg'\n\t\t\t\t}\"\n\t\t\t\trole=\"dialog\"\n\t\t\t\taria-modal=\"true\"\n\t\t\t\tstyle=\"z-index:1;\"\n\t\t\t\t[attr.aria-label]=\"ariaLabel\"\n\t\t\t\t#modal>\n\t\t\t\t<ng-content></ng-content>\n\t\t\t\t<div\n\t\t\t\t\t*ngIf=\"hasScrollingContent !== null ? hasScrollingContent : shouldShowScrollbar\"\n\t\t\t\t\tclass=\"cds--modal-content--overflow-indicator\">\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</cds-overlay>\n\t`\n})\nexport class Modal implements AfterViewInit, OnChanges, OnDestroy {\n\t/**\n\t * Size of the modal to display.\n\t */\n\t@Input() size: \"xs\" | \"sm\"| \"md\" | \"lg\" = \"md\";\n\t/**\n\t * Classification of the modal.\n\t */\n\t@Input() theme: \"default\" | \"danger\" = \"default\";\n\n\t/**\n\t * Label for the modal.\n\t */\n\t@Input() ariaLabel = \"default\";\n\n\t/**\n\t * Controls the visibility of the modal when used directly in a template\n\t */\n\t@Input() open = false;\n\n\t/**\n\t * The element that triggers the modal, which should receive focus when the modal closes\n\t */\n\t@Input() trigger: HTMLElement;\n\n\t/**\n\t * Specify whether the modal contains scrolling content. This property overrides the automatic\n\t * detection of the existence of scrolling content. Set this property to `true` to force\n\t * overflow indicator to show up or to `false` to force overflow indicator to disappear.\n\t * It is set to `null` by default which indicates not to override automatic detection.\n\t */\n\t@Input() hasScrollingContent: boolean = null;\n\n\t/**\n\t * Emits event when click occurs within `n-overlay` element. This is to track click events occurring outside bounds of the `Modal` object.\n\t */\n\t@Output() overlaySelected = new EventEmitter();\n\t/**\n\t * To emit the closing event of the modal window.\n\t */\n\t@Output() close = new EventEmitter();\n\t/**\n\t * Maintains a reference to the view DOM element of the `Modal`.\n\t */\n\t@ViewChild(\"modal\", { static: true }) modal: ElementRef;\n\n\t/**\n\t * An element should have 'modal-primary-focus' as an attribute to receive initial focus within the `Modal` component.\n\t */\n\tselectorPrimaryFocus = \"[modal-primary-focus]\";\n\n\t/**\n\t * Creates an instance of `Modal`.\n\t */\n\tconstructor(\n\t\tpublic modalService: BaseModalService,\n\t\t@Inject(DOCUMENT) private document: Document,\n\t\tprivate renderer: Renderer2\n\t) { }\n\n\tngOnChanges({ open }: SimpleChanges) {\n\t\tif (open) {\n\t\t\tif (open.currentValue) {\n\t\t\t\t// `100` is just enough time to allow the modal\n\t\t\t\t// to become visible, so that we can set focus\n\t\t\t\tsetTimeout(() => this.focusInitialElement(), 100);\n\t\t\t\t// Prevent scrolling on open\n\t\t\t\tthis.renderer.addClass(this.document.body, \"cds--body--with-modal-open\");\n\t\t\t} else if (!open.currentValue) {\n\t\t\t\t// Enable scrolling on close\n\t\t\t\tthis.renderer.removeClass(this.document.body, \"cds--body--with-modal-open\");\n\t\t\t} else if (this.trigger) {\n\t\t\t\tthis.trigger.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Set document focus to be on the modal component after it is initialized.\n\t */\n\tngAfterViewInit() {\n\t\tthis.focusInitialElement();\n\t}\n\n\t/**\n\t * Handle keyboard events to close modal and tab through the content within the modal.\n\t */\n\t@HostListener(\"keydown\", [\"$event\"])\n\thandleKeyboardEvent(event: KeyboardEvent) {\n\t\tswitch (event.key) {\n\t\t\tcase \"Escape\": {\n\t\t\t\tevent.stopImmediatePropagation(); // prevents events being fired for multiple modals if more than 2 open\n\t\t\t\t// Manually close modal\n\t\t\t\tthis.open = false;\n\t\t\t\tthis.close.emit();\n\t\t\t\tthis.modalService.destroy(); // destroy top (latest) modal\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase \"Tab\": {\n\t\t\t\tcycleTabs(event, this.modal.nativeElement);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * This detects whether or not the modal contains scrolling content.\n\t *\n\t * To force trigger a detection (ie. on window resize), change or reset the value of the modal content.\n\t *\n\t * Use the `hasScrollingContent` input to manually override the overflow indicator.\n\t */\n\tget shouldShowScrollbar() {\n\t\tconst modalContent = this.modal ? this.modal.nativeElement.querySelector(\".cds--modal-content\") : null;\n\t\tif (modalContent) {\n\t\t\t// get rounded value from height to match integer returned from scrollHeight\n\t\t\tconst modalContentHeight = Math.ceil(modalContent.getBoundingClientRect().height);\n\t\t\tconst modalContentScrollHeight = modalContent.scrollHeight;\n\t\t\treturn modalContentScrollHeight > modalContentHeight;\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\t// Remove class preventing scrolling\n\tngOnDestroy() {\n\t\tthis.renderer.removeClass(this.document.body, \"cds--body--with-modal-open\");\n\t}\n\n\tprotected focusInitialElement() {\n\t\tconst primaryFocusElement = this.modal.nativeElement.querySelector(this.selectorPrimaryFocus);\n\t\tif (primaryFocusElement && primaryFocusElement.focus) {\n\t\t\tsetTimeout(() => primaryFocusElement.focus());\n\t\t} else if (getFocusElementList(this.modal.nativeElement).length > 0) {\n\t\t\tsetTimeout(() => getFocusElementList(this.modal.nativeElement)[0].focus());\n\t\t} else {\n\t\t\tsetTimeout(() => this.modal.nativeElement.focus());\n\t\t}\n\t}\n}\n","import {\n\tComponent,\n\tOutput,\n\tEventEmitter,\n\tInput\n} from \"@angular/core\";\nimport { I18n } from \"carbon-components-angular/i18n\";\n\n/**\n * ***Inputs***\n * ```html\n * <cds-modal-header>Header text</cds-modal-header>\n * ```\n *\n * ***Outputs***\n * ```html\n * <cds-modal-header (closeSelect)=\"closeModal()\">Header text</cds-modal-header>\n * ```\n */\n@Component({\n\tselector: \"cds-modal-header, ibm-modal-header\",\n\ttemplate: `\n\t\t<header class=\"cds--modal-header {{theme}}\">\n\t\t\t<ng-content></ng-content>\n\t\t\t<div class=\"cds--modal-close-button\">\n\t\t\t\t<cds-icon-button\n\t\t\t\t\t*ngIf=\"showCloseButton\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t[buttonNgClass]=\"buttonNgClass\"\n\t\t\t\t\t[buttonAttributes]=\"buttonAttributes\"\n\t\t\t\t\talign=\"left\"\n\t\t\t\t\t[description]=\"closeLabel\"\n\t\t\t\t\t(click)=\"onClose()\">\n\t\t\t\t\t<svg cdsIcon=\"close\" size=\"20\" class=\"cds--modal-close__icon\"></svg>\n\t\t\t\t</cds-icon-button>\n\t\t\t</div>\n\t\t</header>\n\n\t`\n})\nexport class ModalHeader {\n\t/**\n\t * @deprecated since v5\n\t * Sets the style on the modal heading based on its category.\n\t */\n\t@Input() theme = \"default\";\n\t/**\n\t * Accessible label for the header close button.\n\t * Defaults to the `MODAL.CLOSE` value from the i18n service.\n\t */\n\t@Input() closeLabel = this.i18n.get().MODAL.CLOSE;\n\t/**\n\t * Set to `false` to hide the close button.\n\t */\n\t@Input() showCloseButton = true;\n\n\t/**\n\t * To emit the event of clicking on the close icon within the modal.\n\t */\n\t@Output() closeSelect = new EventEmitter();\n\n\tbuttonNgClass = {\n\t\t\"cds--modal-close\": true\n\t};\n\n\tbuttonAttributes = {\n\t\t\"aria-label\": this.i18n.get().MODAL.CLOSE\n\t};\n\n\tconstructor(protected i18n: I18n) {}\n\n\t/**\n\t * Handles click for the close icon button within the `Modal`.\n\t */\n\tpublic onClose() {\n\t\tthis.closeSelect.emit();\n\t}\n}\n","import { Component } from \"@angular/core\";\n\n@Component({\n\tselector: \"cds-modal-footer, ibm-modal-footer\",\n\ttemplate: `\n\t\t<footer class=\"cds--modal-footer\">\n\t\t\t<ng-content></ng-content>\n\t\t</footer>\n\t`\n})\nexport class ModalFooter {}\n","import { Directive, HostBinding, Input } from \"@angular/core\";\n\n@Directive({\n\tselector: \"[cdsModalContent], [ibmModalContent]\"\n})\nexport class ModalContent {\n\t@HostBinding(\"class.cds--modal-content\") modalContentClass = true;\n\t/**\n\t * Provide whether the modal content has a form element.\n\t * If `true` is used here, non-form child content should have `cds--modal-content__regular-content` class.\n\t */\n\t@HostBinding(\"class.cds--modal-content--with-form\") @Input() hasForm = false;\n}\n","import { Directive, HostBinding, Input } from \"@angular/core\";\n\n@Directive({\n\tselector: \"[cdsModalHeaderHeading], [ibmModalHeaderHeading]\"\n})\nexport class ModalHeaderHeading {\n\t@HostBinding(\"class.cds--modal-header__heading\") modalHeaderHeadingClass = true;\n}\n","import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n\tselector: \"[cdsModalHeaderLabel], [ibmModalHeaderLabel]\"\n})\nexport class ModalHeaderLabel {\n\t@HostBinding(\"class.cds--modal-header__label\") modalHeaderLabelClass = true;\n}\n","import {\n\tComponent,\n\tInject,\n\tViewChild,\n\tAfterViewInit,\n\tOptional\n} from \"@angular/core\";\nimport { BaseModal } from \"./base-modal.class\";\n\n/**\n * Component to create standard modals for presenting content or asking for user's input.\n * It can show as a passive modal showing only text or show as a transactional modal with\n * multiple buttons for different actions for the user to choose from.\n *\n * Using a modal in your application requires `cds-placeholder` which would generally be\n * placed near the end of your app component template (app.component.ts or app.component.html) as:\n *\n * ```html\n * <cds-placeholder></cds-placeholder>\n * ```\n *\n * Example of opening the modal:\n *\n * ```typescript\n * \\@Component({\n * selector: \"app-modal-demo\",\n * template: `\n * <button class=\"btn--primary\" (click)=\"openModal()\">Open modal</button>\n * <cds-placeholder></cds-placeholder>`\n * })\n * export class ModalDemo {\n * \topenModal() {\n * \t\tthis.modalService.show({\n *\t\t\tmodalType: \"default\",\n *\t\t\tlabel: \"optional header text\",\n *\t\t\ttitle: \"Modal title\",\n *\t\t\ttext: \"Modal text\",\n *\t\t\tbuttons: [{\n *\t\t\t\ttext: \"Button text\",\n *\t\t\t\ttype: \"primary\",\n *\t\t\t\tclick: clickFunction\n *\t\t\t}]\n *\t\t});\n * \t}\n * }\n * ```\n */\n@Component({\n\tselector: \"cds-alert-modal, ibm-alert-modal\",\n\ttemplate: `\n\t\t<cds-modal\n\t\t\t[size]=\"size\"\n\t\t\t[theme]=\"type\"\n\t\t\t[ariaLabel]=\"title\"\n\t\t\t[hasScrollingContent]=\"hasScrollingContent\"\n\t\t\t[open]=\"open\"\n\t\t\t(overlaySelected)=\"dismissModal('overlay')\">\n\t\t\t<cds-modal-header (closeSelect)=\"dismissModal('close')\" [showCloseButton]=\"showCloseButton\">\n\t\t\t\t<p cdsModalHeaderLabel class=\"cds--type-delta\">{{label}}</p>\n\t\t\t\t<p cdsModalHeaderHeading class=\"cds--type-beta\">{{title}}</p>\n\t\t\t</cds-modal-header>\n\t\t\t<div cdsModalContent #modalContent>\n\t\t\t\t<p [innerHTML]=\"content\"></p>\n\t\t\t</div>\n\t\t\t<cds-modal-footer *ngIf=\"buttons.length > 0\">\n\t\t\t\t<ng-container *ngFor=\"let button of buttons; let i = index\">\n\t\t\t\t\t<button\n\t\t\t\t\t\t[cdsButton]=\"button.type\"\n\t\t\t\t\t\t(click)=\"buttonClicked(i)\"\n\t\t\t\t\t\t[id]=\"button.id\"\n\t\t\t\t\t\t[attr.modal-primary-focus]=\"(button.type.indexOf('primary') !== -1 ? '' : null)\">\n\t\t\t\t\t\t{{button.text}}\n\t\t\t\t\t</button>\n\t\t\t\t</ng-container>\n\t\t\t</cds-modal-footer>\n\t\t</cds-modal>\n\t`\n})\nexport class AlertModal extends BaseModal implements AfterViewInit {\n\t@ViewChild(\"modalContent\", { static: true }) modalContent: { nativeElement: any; };\n\t/**\n\t * Creates an instance of `AlertModal`.\n\t */\n\tconstructor(\n\t\t@Optional() @Inject(\"type\") public type = \"default\",\n\t\t@Optional() @Inject(\"label\") public label: string,\n\t\t@Optional() @Inject(\"title\") public title: string,\n\t\t@Optional() @Inject(\"content\") public content: string,\n\t\t@Optional() @Inject(\"size\") public size: string,\n\t\t@Optional() @Inject(\"hasScrollingContent\") public hasScrollingContent: boolean = null,\n\t\t@Optional() @Inject(\"buttons\") public buttons = [],\n\t\t@Optional() @Inject(\"close\") public onClose: Function,\n\t\t@Optional() @Inject(\"showCloseButton\") public showCloseButton = true\n\t) {\n\t\tsuper();\n\t\tfor (let i = 0; i < this.buttons.length; i++) {\n\t\t\tconst button = this.buttons[i];\n\t\t\tif (!button.id) {\n\t\t\t\tbutton.id = `alert-modal-button-${i}`;\n\t\t\t}\n\t\t\tif (!button.type) {\n\t\t\t\tbutton.type = \"secondary\";\n\t\t\t}\n\t\t}\n\t}\n\n\tngAfterViewInit() {\n\t\tif (!this.modalContent) { return false; }\n\t\tconst element = this.modalContent.nativeElement;\n\t\tif (element.scrollHeight > element.clientHeight) {\n\t\t\telement.tabIndex = 0;\n\t\t} else {\n\t\t\telement.tabIndex = -1;\n\t\t}\n\t}\n\n\tbuttonClicked(buttonIndex: string | number) {\n\t\tconst button = this.buttons[buttonIndex];\n\t\tif (button.click) {\n\t\t\tbutton.click();\n\t\t}\n\n\t\tthis.closeModal();\n\t}\n\n\tdismissModal(trigger: any) {\n\t\tif (this.onClose && this.onClose(trigger) === false) {\n\t\t\treturn;\n\t\t}\n\t\tthis.closeModal();\n\t}\n}\n","export enum AlertModalType {\n\tdefault = \"default\",\n\tdanger = \"danger\"\n}\n\nexport interface AlertModalData {\n\t/**\n\t * type of the modal\n\t */\n\ttype?: AlertModalType;\n\t/**\n\t * Additional label shown over the modal\n\t */\n\tlabel?: string;\n\t/**\n\t * Primary title for the modal\n\t */\n\ttitle?: string;\n\t/**\n\t * Content for the modal body, could include HTML tags\n\t */\n\tcontent?: string;\n\t/**\n\t * Size of the modal to display.\n\t */\n\tsize?: \"xs\" | \"sm\" | \"md\" | \"lg\";\n\t/**\n\t * Array of `ModalButton`s\n\t */\n\tbuttons?: Array<ModalButton>;\n\t/**\n\t * Specify whether the modal contains scrolling content. This property overrides the automatic detection\n\t * of the existence of scrolling content. Set this property to `true` to force overflow indicator to\n\t * show up or to `false` to force overflow indicator to disappear.\n\t * It is set to `null` by default which indicates not to override automatic detection.\n\t */\n\thasScrollingContent?: boolean;\n\t/**\n\t * Callback for non-specific close events. `return false;` to prevent the modal from closing\n\t * Property trigger has a value of `overlay` or `close`\n\t */\n\tclose?: (trigger?: \"overlay\" | \"close\") => boolean;\n\t/**\n\t * Set to `false` to hide the header's close button.\n\t */\n\tshowCloseButton?: boolean;\n}\n\nexport enum ModalButtonType {\n\tprimary = \"primary\",\n\tsecondary = \"secondary\",\n\ttertiary = \"tertiary\",\n\tghost = \"ghost\",\n\tdanger = \"danger\",\n\tdanger_primary = \"danger--primary\"\n}\n\nexport interface ModalButton {\n\t/**\n\t * Display value of the button\n\t */\n\ttext: string;\n\t/**\n\t * Optional unique ID for the button\n\t */\n\tid?: string;\n\t/**\n\t * Button type\n\t */\n\ttype?: ModalButtonType;\n\t/**\n\t * Callback for the button `click` event\n\t */\n\tclick?: Function;\n}\n","import { Injectable, ViewContainerRef } from \"@angular/core\";\nimport { AlertModal } from \"./alert-modal.component\";\nimport { AlertModalData } from \"./alert-modal.interface\";\nimport { PlaceholderService } from \"carbon-components-angular/placeholder\";\nimport { BaseModalService } from \"./base-modal.service\";\n\n/**\n * Extends Base Modal Service to create Alert Modal with a function call. Placed in a seperate service\n * to prevent remote scoping (NG3003) which has side effects. Hence, import cycles are not allowed when\n * compilationMode is set to `partial`.\n *\n *\n * Modal service handles instantiating and destroying modal instances.\n * Uses PlaceholderService to track open instances, and for it's placeholder view reference.\n */\n@Injectable()\nexport class ModalService extends BaseModalService {\n\t/**\n\t * Creates an instance of `ModalService`.\n\t */\n\tconstructor(public placeholderService: PlaceholderService) {\n\t\tsuper(placeholderService);\n\t}\n\n\t/**\n\t * Creates and renders a new alert modal component.\n\t * @param data You can pass in:\n\t * `type` - \"default\" | \"danger\" = \"default\",\n\t * `label` - a label shown over the title,\n\t * `title` - modal's title,\n\t * `content` - modal's content, could include HTML tags.\n\t * `buttons` is an array of objects\n\t * `close` custom close function\n\t * ```\n\t * {\n\t * \t\ttext: \"Button text\",\n\t * \t\ttype: \"primary\" | \"secondary\" | \"tertiary\" | \"ghost\" | \"danger\" | \"danger--primary\" = \"primary\",\n\t * \t\tclick: clickFunction,\n\t * }\n\t * ```\n\t */\n\tshow(data: AlertModalData) {\n\t\treturn this.create({\n\t\t\tcomponent: AlertModal,\n\t\t\tinputs: {\n\t\t\t\ttype: data.type,\n\t\t\t\tlabel: data.label,\n\t\t\t\ttitle: data.title,\n\t\t\t\tcontent: data.content,\n\t\t\t\thasScrollingContent: data.hasScrollingContent !== undefined ? data.hasScrollingContent : null,\n\t\t\t\tsize: data.size,\n\t\t\t\tbuttons: data.buttons || [],\n\t\t\t\tclose: data.close || (() => { }),\n\t\t\t\tshowCloseButton: data.showCloseButton\n\t\t\t}\n\t\t});\n\t}\n}\n\n","import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n\tselector: \"[cdsModalContentText], [ibmModalContentText]\"\n})\nexport class ModalContentText {\n\t@HostBinding(\"class.cds--modal-content__text\") modalContentTextClass = true;\n}\n","// modules\nimport { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\n// imports\nimport { BaseModalService } from \"./base-modal.service\";\nimport { ModalService } from \"./modal.service\";\nimport { Modal } from \"./modal.component\";\nimport { ModalFooter } from \"./modal-footer.component\";\nimport { Overlay } from \"./overlay.component\";\nimport { ModalHeader } from \"./modal-header.component\";\nimport { AlertModal } from \"./alert-modal.component\";\nimport { ButtonModule } from \"carbon-components-angular/forms\";\nimport { I18nModule } from \"carbon-components-angular/i18n\";\nimport { PlaceholderModule } from \"carbon-components-angular/placeholder\";\nimport { ExperimentalModule } from \"carbon-components-angular/experimental\";\nimport { ModalContent } from \"./modal-content.directive\";\nimport { ModalContentText } from \"./modal-content-text.directive\";\nimport { ModalHeaderHeading } from \"./modal-header-heading.directive\";\nimport { ModalHeaderLabel } from \"./modal-header-label.directive\";\nimport { BaseModal } from \"./base-modal.class\";\nimport { IconModule } from \"carbon-components-angular/icon\";\n\n@NgModule({\n\tdeclarations: [\n\t\tAlertModal,\n\t\tModal,\n\t\tModalHeader,\n\t\tModalFooter,\n\t\tOverlay,\n\t\tModalContent,\n\t\tModalContentText,\n\t\tModalHeaderHeading,\n\t\tModalHeaderLabel,\n\t\tBaseModal\n\t],\n\texports: [\n\t\tAlertModal,\n\t\tModal,\n\t\tModalHeader,\n\t\tModalFooter,\n\t\tModalContent,\n\t\tModalContentText,\n\t\tModalHeaderHeading,\n\t\tModalHeaderLabel,\n\t\tBaseModal\n\t],\n\tproviders: [BaseModalService, ModalService],\n\timports: [\n\t\tCommonModule,\n\t\tButtonModule,\n\t\tI18nModule,\n\t\tPlaceholderModule,\n\t\tExperimentalModule,\n\t\tIconModule\n\t]\n})\nexport class ModalModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i3.Overlay","i2","i3.Modal","i4.ModalHeader","i5.ModalFooter","i6.ModalContent","i7.ModalHeaderHeading","i8.ModalHeaderLabel"],"mappings":"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"}