@theseam/ui-common 0.3.3 → 0.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/theseam-ui-common-dynamic.umd.js +1 -1
- package/bundles/theseam-ui-common-dynamic.umd.js.map +1 -1
- package/bundles/theseam-ui-common-modal.umd.js +59 -30
- package/bundles/theseam-ui-common-modal.umd.js.map +1 -1
- package/esm2015/dynamic/evaluators/jexl-evaluator/jexl-evaluator.js +2 -2
- package/esm2015/modal/modal-container/modal-container.component.js +4 -1
- package/esm2015/modal/modal-ref.js +56 -31
- package/fesm2015/theseam-ui-common-dynamic.js +1 -1
- package/fesm2015/theseam-ui-common-dynamic.js.map +1 -1
- package/fesm2015/theseam-ui-common-modal.js +58 -30
- package/fesm2015/theseam-ui-common-modal.js.map +1 -1
- package/modal/modal-container/modal-container.component.d.ts +1 -0
- package/modal/modal-ref.d.ts +2 -1
- package/modal/theseam-ui-common-modal.metadata.json +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theseam-ui-common-modal.umd.js","sources":["../../../projects/ui-common/modal/modal-ref.ts","../../../projects/ui-common/modal/modal-utils.ts","../../../node_modules/tslib/tslib.es6.js","../../../projects/ui-common/modal/modal-config.ts","../../../projects/ui-common/modal/modal-injectors.ts","../../../projects/ui-common/modal/modal.service.ts","../../../projects/ui-common/modal/directives/modal-close.directive.ts","../../../projects/ui-common/modal/directives/modal-footer-tpl.directive.ts","../../../projects/ui-common/modal/directives/modal-header-icon-tpl.directive.ts","../../../projects/ui-common/modal/directives/modal-header-title-tpl.directive.ts","../../../projects/ui-common/modal/directives/modal-title.directive.ts","../../../projects/ui-common/modal/directives/modal.directive.ts","../../../projects/ui-common/modal/modal-body/modal-body.component.ts","../../../projects/ui-common/modal/modal-container/modal-container.component.ts","../../../projects/ui-common/modal/modal-footer/modal-footer.component.ts","../../../projects/ui-common/modal/modal-header/modal-header.component.ts","../../../projects/ui-common/modal/modal.models.ts","../../../projects/ui-common/modal/modal/modal.component.ts","../../../projects/ui-common/modal/route-modal/route-modal.component.ts","../../../projects/ui-common/modal/modal.module.ts","../../../projects/ui-common/modal/theseam-ui-common-modal.ts"],"sourcesContent":["import { ESCAPE } from '@angular/cdk/keycodes'\nimport { GlobalPositionStrategy, OverlayRef, OverlaySizeConfig } from '@angular/cdk/overlay'\nimport { Observable } from 'rxjs'\nimport { filter, map } from 'rxjs/operators'\n\nimport { IModalPosition } from './modal-config'\nimport { ModalContainerComponent } from './modal-container/modal-container.component'\n\n/** Unique id for the created dialog. */\nlet uniqueId = 0\n\n/**\n * Reference to a dialog opened via the Dialog service.\n */\nexport class ModalRef<T, R = any> {\n /** The instance of the component in the dialog. */\n componentInstance: T | null = null\n\n /** Whether the user is allowed to close the dialog. */\n disableClose: boolean | undefined\n\n /** Result to be passed to afterClosed. */\n private _result: R | undefined\n\n constructor(\n public _overlayRef: OverlayRef,\n protected _containerInstance: ModalContainerComponent,\n readonly id: string = `seam-modal-${uniqueId++}`) {\n // Pass the id along to the container.\n _containerInstance._id = id\n\n const _bootstrapBackdropClickListener = () => {\n if (!this.disableClose) {\n this.close()\n }\n }\n\n // If the dialog has a backdrop, handle clicks from the backdrop.\n if (_containerInstance._config.hasBackdrop) {\n _overlayRef.backdropClick().subscribe(() => {\n if (!this.disableClose) {\n this.close()\n }\n })\n\n // NOTE: For current bootstrap style modal\n // Replaced click event because it was easy to accidentally close\n // the dialog by mousing down inside the modal and mousing up outside\n // (like when dragging a map, selecting text, etc)\n let clickStarted = false;\n _overlayRef.overlayElement.addEventListener('mousedown', (event) => {\n // @ts-ignore\n if (!this._isModalMouseEvent(event.path)) {\n clickStarted = true\n }\n })\n\n _overlayRef.overlayElement.addEventListener('mouseup', (event) => {\n // @ts-ignore\n if (clickStarted && !this._isModalMouseEvent(event.path)) {\n clickStarted = false\n _bootstrapBackdropClickListener()\n }\n }, { })\n }\n\n this.beforeClosed().subscribe(() => {\n this._overlayRef.detachBackdrop()\n })\n\n this.afterClosed().subscribe(() => {\n if (this._containerInstance._config.hasBackdrop) {\n this._overlayRef.overlayElement.removeEventListener('click', _bootstrapBackdropClickListener)\n }\n this._overlayRef.detach()\n this._overlayRef.dispose()\n this.componentInstance = null\n })\n\n // Close when escape keydown event occurs\n _overlayRef.keydownEvents()\n // tslint:disable-next-line:deprecation\n .pipe(filter(event => event.keyCode === ESCAPE && !this.disableClose))\n .subscribe(() => this.close())\n }\n\n /** Gets an observable that emits when the overlay's backdrop has been clicked. */\n backdropClick(): Observable<MouseEvent> {\n return this._overlayRef.backdropClick()\n }\n\n /**\n * Close the dialog.\n * @param dialogResult Optional result to return to the dialog opener.\n */\n close(dialogResult?: R): void {\n this._result = dialogResult\n this._containerInstance._startExiting()\n }\n\n /**\n * Updates the dialog's position.\n * @param position New dialog position.\n */\n updatePosition(position?: IModalPosition): this {\n const strategy = this._getPositionStrategy()\n\n if (position && (position.left || position.right)) {\n position.left ? strategy.left(position.left) : strategy.right(position.right)\n } else {\n strategy.centerHorizontally()\n }\n\n if (position && (position.top || position.bottom)) {\n position.top ? strategy.top(position.top) : strategy.bottom(position.bottom)\n } else {\n strategy.centerVertically()\n }\n\n this._overlayRef.updatePosition()\n\n return this\n }\n\n /**\n * Gets an observable that emits when keydown events are targeted on the overlay.\n */\n keydownEvents(): Observable<KeyboardEvent> {\n return this._overlayRef.keydownEvents()\n }\n\n /**\n * Updates the dialog's width and height, defined, min and max.\n * @param size New size for the overlay.\n */\n updateSize(size: OverlaySizeConfig): this {\n if (size.width) {\n // tslint:disable-next-line:deprecation\n this._getPositionStrategy().width(size.width.toString())\n }\n if (size.height) {\n // tslint:disable-next-line:deprecation\n this._getPositionStrategy().height(size.height.toString())\n }\n this._overlayRef.updateSize(size)\n this._overlayRef.updatePosition()\n return this\n }\n\n /** Fetches the position strategy object from the overlay ref. */\n private _getPositionStrategy(): GlobalPositionStrategy {\n return this._overlayRef.getConfig().positionStrategy as GlobalPositionStrategy\n }\n\n /** Gets an observable that emits when dialog begins opening. */\n beforeOpened(): Observable<void> {\n return this._containerInstance._beforeEnter.asObservable()\n }\n\n /** Gets an observable that emits when dialog is finished opening. */\n afterOpened(): Observable<void> {\n return this._containerInstance._afterEnter.asObservable()\n }\n\n /** Gets an observable that emits when dialog begins closing. */\n beforeClosed(): Observable<R | undefined> {\n return this._containerInstance._beforeExit.pipe(map(() => this._result))\n }\n\n /** Gets an observable that emits when dialog is finished closing. */\n afterClosed(): Observable<R | undefined> {\n return this._containerInstance._afterExit.pipe(map(() => this._result))\n }\n\n // TODO: pull container name in from element, to protect against changes\n private _isModalMouseEvent(path: HTMLElement[]): boolean {\n return path.findIndex(p => p.localName === 'seam-modal-container') !== -1\n }\n}\n","import { ElementRef } from '@angular/core'\nimport { ModalRef } from './modal-ref'\n\n/**\n * Finds the closest MatDialogRef to an element by looking at the DOM.\n * @param element Element relative to which to look for a dialog.\n * @param openDialogs References to the currently-open dialogs.\n */\nexport function getClosestModal(element: ElementRef<HTMLElement>, openDialogs: ModalRef<any>[]) {\n let parent: HTMLElement | null = element.nativeElement.parentElement\n\n while (parent && !parent.classList.contains('seam-modal-container')) {\n parent = parent.parentElement\n }\n\n const parentId = parent ? parent.id : null\n return parentId ? openDialogs.find(dialog => dialog.id === parentId) : null\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { Direction } from '@angular/cdk/bidi'\nimport { ComponentType } from '@angular/cdk/overlay'\nimport { InjectionToken, ViewContainerRef } from '@angular/core'\n\nimport { ModalContainerComponent } from './modal-container/modal-container.component'\n\n/** Valid ARIA roles for a dialog element. */\nexport type DialogRole = 'dialog' | 'alertdialog'\n\n/** Possible overrides for a dialog's position. */\nexport interface IModalPosition {\n top?: string\n bottom?: string\n left?: string\n right?: string\n}\n\n// tslint:disable:no-inferrable-types\nexport class ModalConfig<D = any> {\n /** Component to use as the container for the dialog. */\n containerComponent?: ComponentType<ModalContainerComponent>\n\n /**\n * Where the attached component should live in Angular's *logical* component tree.\n * This affects what is available for injection and the change detection order for the\n * component instantiated inside of the dialog. This does not affect where the dialog\n * content will be rendered.\n */\n viewContainerRef?: ViewContainerRef\n\n /** The id of the dialog. */\n id?: string\n\n /** The ARIA role of the dialog. */\n role?: DialogRole = 'dialog'\n\n /** Custom class(es) for the overlay panel. */\n panelClass?: string | string[] = ''\n\n /** Whether the dialog has a background. */\n hasBackdrop?: boolean = true\n\n /** Custom class(es) for the backdrop. */\n backdropClass?: string | undefined = ''\n\n /** Whether the dialog can be closed by user interaction. */\n disableClose?: boolean = false\n\n /** The width of the dialog. */\n width?: string = '100%'\n\n /** The height of the dialog. */\n height?: string = ''\n\n /** The minimum width of the dialog. */\n minWidth?: string | number = ''\n\n /** The minimum height of the dialog. */\n minHeight?: string | number = ''\n\n /** The maximum width of the dialog. */\n maxWidth?: string | number = ''\n\n /** The maximum height of the dialog. */\n maxHeight?: string | number = ''\n\n /** The position of the dialog. */\n position?: IModalPosition\n\n /** Data to be injected into the dialog content. */\n data?: D | null = null\n\n /** The layout direction for the dialog content. */\n direction?: Direction\n\n /** ID of the element that describes the dialog. */\n ariaDescribedBy?: string | null = null\n\n /** Aria label to assign to the dialog element */\n ariaLabel?: string | null = null\n\n /** Whether the dialog should focus the first focusable element on open. */\n autoFocus?: boolean = true\n\n /** Duration of the enter animation. Has to be a valid CSS value (e.g. 100ms). */\n enterAnimationDuration?: string = '225ms'\n\n /** Duration of the exit animation. Has to be a valid CSS value (e.g. 50ms). */\n exitAnimationDuration?: string = '225ms'\n\n /** Bootstrap modal sizes */\n modalSize?: 'sm' | 'lg' | 'xl'\n}\n// tslint:enable:no-inferrable-types\n\nexport function mergeModalConfigs(a: ModalConfig, b: ModalConfig) {\n return { ...a, ...b }\n}\n\n\n/** Injection token that can be used to specify modal options. */\nexport const LIB_MODAL_CONFIG = new InjectionToken<ModalConfig>('seamModalConfig')\n","import {\n ComponentType,\n Overlay,\n ScrollStrategy,\n} from '@angular/cdk/overlay'\nimport { InjectionToken } from '@angular/core'\n\nimport { ModalConfig } from './modal-config'\nimport { ModalContainerComponent } from './modal-container/modal-container.component'\nimport { ModalRef } from './modal-ref'\n\n/** Injection token for the Dialog's ScrollStrategy. */\nexport const MODAL_SCROLL_STRATEGY =\n new InjectionToken<() => ScrollStrategy>('ModalScrollStrategy')\n\n/** Injection token for the Dialog's Data. */\nexport const MODAL_DATA = new InjectionToken<any>('ModalData')\n\n/** Injection token for the DialogRef constructor. */\nexport const MODAL_REF = new InjectionToken<ModalRef<any>>('ModalRef')\n\n/** Injection token for the DialogConfig. */\nexport const MODAL_CONFIG = new InjectionToken<ModalConfig>('ModalConfig')\n\n/** Injection token for the Dialog's DialogContainer component. */\nexport const MODAL_CONTAINER =\n new InjectionToken<ComponentType<ModalContainerComponent>>('ModalContainer')\n\n/** @docs-private */\nexport function THESEAM_MODAL_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay: Overlay):\n () => ScrollStrategy {\n return () => overlay.scrollStrategies.block()\n}\n\n/** @docs-private */\nexport const THESEAM_MODAL_SCROLL_STRATEGY_PROVIDER = {\n provide: MODAL_SCROLL_STRATEGY,\n deps: [ Overlay ],\n useFactory: THESEAM_MODAL_SCROLL_STRATEGY_PROVIDER_FACTORY,\n}\n","import { Directionality } from '@angular/cdk/bidi'\nimport {\n ComponentType,\n Overlay,\n OverlayConfig,\n OverlayRef,\n ScrollStrategy,\n} from '@angular/cdk/overlay'\nimport { ComponentPortal, PortalInjector, TemplatePortal } from '@angular/cdk/portal'\nimport { Location } from '@angular/common'\nimport {\n ComponentFactoryResolver,\n ComponentRef,\n Inject,\n Injectable,\n Injector,\n OnDestroy,\n Optional,\n SkipSelf,\n TemplateRef,\n Type\n} from '@angular/core'\nimport { defer, Observable, of, of as observableOf, Subject } from 'rxjs'\nimport { startWith, switchMap } from 'rxjs/operators'\n\nimport { TheSeamDynamicComponentLoader } from '@theseam/ui-common/dynamic-component-loader'\nimport { OverlayScrollbarsService } from '@theseam/ui-common/scrollbar'\n\nimport { ModalConfig } from './modal-config'\nimport { ModalContainerComponent } from './modal-container/modal-container.component'\nimport {\n MODAL_CONFIG,\n MODAL_CONTAINER,\n MODAL_DATA,\n MODAL_REF,\n MODAL_SCROLL_STRATEGY,\n} from './modal-injectors'\nimport { ModalRef } from './modal-ref'\n\n\n/**\n * Service to open modal dialogs.\n */\n@Injectable()\nexport class Modal implements OnDestroy {\n private _scrollStrategy: () => ScrollStrategy\n\n /** Stream that emits when all dialogs are closed. */\n get _afterAllClosed(): Observable<void> {\n return this._parentDialog ? this._parentDialog.afterAllClosed : this._afterAllClosedBase\n }\n _afterAllClosedBase = new Subject<void>()\n\n afterAllClosed: Observable<void> = defer(() => this.openDialogs.length ?\n this._afterAllClosed : this._afterAllClosed.pipe(startWith(undefined)))\n\n /** Stream that emits when a dialog is opened. */\n get afterOpened(): Subject<ModalRef<any>> {\n return this._parentDialog ? this._parentDialog.afterOpened : this._afterOpened\n }\n _afterOpened: Subject<ModalRef<any>> = new Subject()\n\n /** Stream that emits when a dialog is opened. */\n get openDialogs(): ModalRef<any>[] {\n return this._parentDialog ? this._parentDialog.openDialogs : this._openDialogs\n }\n _openDialogs: ModalRef<any>[] = []\n\n constructor(\n private overlay: Overlay,\n private injector: Injector,\n @Inject(MODAL_REF) private dialogRefConstructor: Type<ModalRef<any>>,\n @Inject(MODAL_SCROLL_STRATEGY) scrollStrategy: any,\n @Optional() @SkipSelf() private _parentDialog: Modal,\n @Optional() location: Location,\n private _scrollbars: OverlayScrollbarsService,\n private _dynamicComponentLoaderModule: TheSeamDynamicComponentLoader\n ) {\n\n // Close all of the dialogs when the user goes forwards/backwards in history or when the\n // location hash changes. Note that this usually doesn't include clicking on links (unless\n // the user is using the `HashLocationStrategy`).\n if (!_parentDialog && location) {\n location.subscribe(() => this.closeAll())\n }\n\n this._scrollStrategy = scrollStrategy\n }\n\n /** Gets an open dialog by id. */\n getById(id: string): ModalRef<any> | undefined {\n return this._openDialogs.find(ref => ref.id === id)\n }\n\n /** Closes all open dialogs. */\n closeAll(): void {\n this.openDialogs.forEach(ref => ref.close())\n }\n\n /** Opens a dialog from a component. */\n openFromComponent<T, D = any>(\n component: ComponentType<T>,\n config?: ModalConfig<D>,\n // NOTE: Should only be needed with the current implementation of `TheSeamDynamicComponentLoader`.\n componentFactoryResolver?: ComponentFactoryResolver | null | undefined\n ): ModalRef<T, D> {\n config = this._applyConfigDefaults(config)\n\n if (config.id && this.getById(config.id)) {\n throw Error(`Modal with id \"${config.id}\" exists already. The modal id must be unique.`)\n }\n\n const overlayRef = this._createOverlay(config)\n const dialogContainer = this._attachDialogContainer(overlayRef, config)\n const dialogRef = this._attachDialogContentForComponent(component, dialogContainer,\n overlayRef, config, componentFactoryResolver)\n\n this.registerDialogRef(dialogRef)\n return dialogRef\n }\n\n /** Opens a dialog from a template. */\n openFromTemplate<T>(template: TemplateRef<T>, config?: ModalConfig): ModalRef<any> {\n config = this._applyConfigDefaults(config)\n\n if (config.id && this.getById(config.id)) {\n throw Error(`Modal with id \"${config.id}\" exists already. The modal id must be unique.`)\n }\n\n const overlayRef = this._createOverlay(config)\n const dialogContainer = this._attachDialogContainer(overlayRef, config)\n const dialogRef = this._attachDialogContentForTemplate(template, dialogContainer,\n overlayRef, config)\n\n this.registerDialogRef(dialogRef)\n return dialogRef\n }\n\n /** Opens a dialog from a lazy-loaded component. */\n openFromLazyComponent<T, D = any>(\n componentId: string,\n config?: ModalConfig<D>\n ): Observable<ModalRef<T, D>> {\n config = this._applyConfigDefaults(config)\n\n if (config.id && this.getById(config.id)) {\n throw Error(`Modal with id \"${config.id}\" exists already. The modal id must be unique.`)\n }\n\n return this._dynamicComponentLoaderModule\n .getComponentFactory<{}>(componentId)\n .pipe(\n switchMap(componentFactory => {\n const modalRef = this.openFromComponent(\n componentFactory.componentType,\n config,\n (<any /* ComponentFactoryBoundToModule */>componentFactory).ngModule.componentFactoryResolver\n )\n return of(modalRef)\n })\n )\n }\n\n ngOnDestroy() {\n // Only close all the dialogs at this level.\n this._openDialogs.forEach(ref => ref.close())\n }\n\n /**\n * Forwards emitting events for when dialogs are opened and all dialogs are closed.\n */\n private registerDialogRef(dialogRef: ModalRef<any>): void {\n this.openDialogs.push(dialogRef)\n\n let cleanupScroll: (() => void) | undefined\n const dialogBeforeOpenSub = dialogRef.beforeOpened().subscribe(() => {\n cleanupScroll = this._registerDialogRefScrollEvents(dialogRef)\n dialogBeforeOpenSub.unsubscribe()\n })\n\n const dialogBeforeCloseSub = dialogRef.beforeClosed().subscribe(() => {\n // TODO: Do I need to destroy the instance? I feel like I should, but the\n // way I have this implemented currently causes the native scrollbar to\n // appear before the element is removed from the DOM.\n // this._scrollbars.destroyInstance(dialogRef._overlayRef.overlayElement)\n if (cleanupScroll) {\n cleanupScroll()\n }\n\n dialogBeforeCloseSub.unsubscribe()\n })\n\n const dialogOpenSub = dialogRef.afterOpened().subscribe(() => {\n this.afterOpened.next(dialogRef)\n dialogOpenSub.unsubscribe()\n })\n\n const dialogCloseSub = dialogRef.afterClosed().subscribe(() => {\n // this._scrollbars.destroyInstance(dialogRef._overlayRef.overlayElement)\n const dialogIndex = this._openDialogs.indexOf(dialogRef)\n\n if (dialogIndex > -1) {\n this._openDialogs.splice(dialogIndex, 1)\n }\n\n if (!this._openDialogs.length) {\n this._afterAllClosedBase.next()\n dialogCloseSub.unsubscribe()\n }\n })\n }\n\n // TODO: Cleanup. This was rushed together fast and became an unefficient mess.\n private _registerDialogRefScrollEvents(dialogRef: ModalRef<any>): () => void {\n const _scrollbarMouseDownListener = () => {\n if (dialogRef) { dialogRef.disableClose = true }\n }\n const _scrollbarMouseUpListener = () => {\n setTimeout(() => { if (dialogRef) { dialogRef.disableClose = false } })\n }\n\n let verticalHandleElement: HTMLElement | undefined\n let horizontalHandleElement: HTMLElement | undefined\n this._scrollbars.initializeInstance(dialogRef._overlayRef.overlayElement, {\n callbacks: {\n onInitialized: () => {\n // console.log('onInitialized')\n setTimeout(() => {\n const instance = this._scrollbars.getInstance(dialogRef._overlayRef.overlayElement)\n if (instance) {\n verticalHandleElement = instance.getElements().scrollbarVertical.handle\n if (verticalHandleElement) {\n verticalHandleElement.addEventListener('mousedown', _scrollbarMouseDownListener)\n verticalHandleElement.addEventListener('touchstart', _scrollbarMouseDownListener)\n }\n horizontalHandleElement = instance.getElements().scrollbarHorizontal.handle\n if (horizontalHandleElement) {\n horizontalHandleElement.addEventListener('mousedown', _scrollbarMouseDownListener)\n horizontalHandleElement.addEventListener('touchstart', _scrollbarMouseDownListener)\n }\n if (verticalHandleElement || horizontalHandleElement) {\n document.addEventListener('mouseup', _scrollbarMouseUpListener)\n document.addEventListener('touchend', _scrollbarMouseUpListener)\n document.addEventListener('touchcancel', _scrollbarMouseUpListener)\n }\n }\n })\n },\n onDestroyed: () => {\n // console.log('onDestroyed')\n // // const instance = this._scrollbars.getInstance(dialogRef._overlayRef.overlayElement)\n // // const scrollElem = instance.getElements().scrollbarVertical.handle\n // if (verticalHandleElement) {\n // verticalHandleElement.removeEventListener('mousedown', _scrollbarMouseDownListener)\n // verticalHandleElement.removeEventListener('touchstart', _scrollbarMouseDownListener)\n // }\n // if (horizontalHandleElement) {\n // horizontalHandleElement.removeEventListener('mousedown', _scrollbarMouseDownListener)\n // horizontalHandleElement.removeEventListener('touchstart', _scrollbarMouseDownListener)\n // }\n // if (verticalHandleElement || horizontalHandleElement) {\n // document.removeEventListener('mouseup', _scrollbarMouseUpListener)\n // document.removeEventListener('touchend', _scrollbarMouseUpListener)\n // document.removeEventListener('touchcancel', _scrollbarMouseUpListener)\n // }\n }\n }\n })\n\n // Cleans up the registered events.\n return () => {\n // console.log('scrollevents cleanup')\n // const instance = this._scrollbars.getInstance(dialogRef._overlayRef.overlayElement)\n // const scrollElem = instance.getElements().scrollbarVertical.handle\n if (verticalHandleElement) {\n verticalHandleElement.removeEventListener('mousedown', _scrollbarMouseDownListener)\n verticalHandleElement.removeEventListener('touchstart', _scrollbarMouseDownListener)\n }\n if (horizontalHandleElement) {\n horizontalHandleElement.removeEventListener('mousedown', _scrollbarMouseDownListener)\n horizontalHandleElement.removeEventListener('touchstart', _scrollbarMouseDownListener)\n }\n if (verticalHandleElement || horizontalHandleElement) {\n document.removeEventListener('mouseup', _scrollbarMouseUpListener)\n document.removeEventListener('touchend', _scrollbarMouseUpListener)\n document.removeEventListener('touchcancel', _scrollbarMouseUpListener)\n }\n }\n }\n\n /**\n * Creates an overlay config from a dialog config.\n * @param config The dialog configuration.\n * @returns The overlay configuration.\n */\n protected _createOverlay(config: ModalConfig): OverlayRef {\n let panelClass = (config.panelClass || [])\n if (typeof panelClass === 'string') {\n panelClass = [ panelClass ]\n }\n panelClass = [ ...panelClass, 'modal', 'd-block', 'overflow-auto' ]\n\n const overlayConfig = new OverlayConfig({\n positionStrategy: this.overlay.position().global(),\n scrollStrategy: this._scrollStrategy(),\n panelClass: panelClass,\n hasBackdrop: config.hasBackdrop,\n direction: config.direction,\n minWidth: config.minWidth,\n minHeight: config.minHeight,\n maxWidth: config.maxWidth,\n maxHeight: config.maxHeight\n })\n\n if (config.backdropClass) {\n overlayConfig.backdropClass = config.backdropClass\n }\n return this.overlay.create(overlayConfig)\n }\n\n /**\n * Attaches an MatDialogContainer to a dialog's already-created overlay.\n * @param overlay Reference to the dialog's underlying overlay.\n * @param config The dialog configuration.\n * @returns A promise resolving to a ComponentRef for the attached container.\n */\n protected _attachDialogContainer(overlay: OverlayRef, config: ModalConfig): ModalContainerComponent {\n const container = config.containerComponent || this.injector.get(MODAL_CONTAINER)\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector\n const injector = new PortalInjector(userInjector || this.injector, new WeakMap([\n [ModalConfig, config]\n ]))\n const containerPortal = new ComponentPortal(container, config.viewContainerRef, injector)\n const containerRef = <ComponentRef<ModalContainerComponent>>overlay.attach(containerPortal)\n containerRef.instance._config = config\n\n return containerRef.instance\n }\n\n\n /**\n * Attaches the user-provided component to the already-created MatDialogContainer.\n * @param componentOrTemplateRef The type of component being loaded into the dialog,\n * or a TemplateRef to instantiate as the content.\n * @param dialogContainer Reference to the wrapping MatDialogContainer.\n * @param overlayRef Reference to the overlay in which the dialog resides.\n * @param config The dialog configuration.\n * @returns A promise resolving to the MatDialogRef that should be returned to the user.\n */\n protected _attachDialogContentForComponent<T>(\n componentOrTemplateRef: ComponentType<T>,\n dialogContainer: ModalContainerComponent,\n overlayRef: OverlayRef,\n config: ModalConfig,\n componentFactoryResolver?: ComponentFactoryResolver | null | undefined): ModalRef<any> {\n\n // Create a reference to the dialog we're creating in order to give the user a handle\n // to modify and close it.\n const dialogRef = new this.dialogRefConstructor(overlayRef, dialogContainer, config.id)\n const injector = this._createInjector<T>(config, dialogRef, dialogContainer)\n const contentRef = dialogContainer.attachComponentPortal(\n new ComponentPortal(componentOrTemplateRef, undefined, injector, componentFactoryResolver))\n\n dialogRef.componentInstance = contentRef.instance\n dialogRef.disableClose = config.disableClose\n\n dialogRef.updateSize({width: config.width, height: config.height})\n .updatePosition(config.position)\n\n return dialogRef\n }\n\n /**\n * Attaches the user-provided component to the already-created MatDialogContainer.\n * @param componentOrTemplateRef The type of component being loaded into the dialog,\n * or a TemplateRef to instantiate as the content.\n * @param dialogContainer Reference to the wrapping MatDialogContainer.\n * @param overlayRef Reference to the overlay in which the dialog resides.\n * @param config The dialog configuration.\n * @returns A promise resolving to the MatDialogRef that should be returned to the user.\n */\n protected _attachDialogContentForTemplate<T>(\n componentOrTemplateRef: TemplateRef<T>,\n dialogContainer: ModalContainerComponent,\n overlayRef: OverlayRef,\n config: ModalConfig): ModalRef<any> {\n\n // Create a reference to the dialog we're creating in order to give the user a handle\n // to modify and close it.\n const dialogRef = new this.dialogRefConstructor(overlayRef, dialogContainer, config.id)\n\n dialogContainer.attachTemplatePortal(\n new TemplatePortal<T>(componentOrTemplateRef, <any>null,\n <any>{$implicit: config.data, dialogRef}))\n dialogRef.updateSize({width: config.width, height: config.height})\n .updatePosition(config.position)\n\n return dialogRef\n }\n\n\n /**\n * Creates a custom injector to be used inside the dialog. This allows a component loaded inside\n * of a dialog to close itself and, optionally, to return a value.\n * @param config Config object that is used to construct the dialog.\n * @param dialogRef Reference to the dialog.\n * @param container Dialog container element that wraps all of the contents.\n * @returns The custom injector that can be used inside the dialog.\n */\n private _createInjector<T>(\n config: ModalConfig,\n dialogRef: ModalRef<T>,\n dialogContainer: ModalContainerComponent): PortalInjector {\n\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector\n const injectionTokens = new WeakMap<any, any>([\n [this.injector.get(MODAL_REF), dialogRef],\n [this.injector.get(MODAL_CONTAINER), dialogContainer],\n [MODAL_DATA, config.data]\n ])\n\n if (config.direction &&\n (!userInjector || !userInjector.get<Directionality | null>(Directionality, null))) {\n injectionTokens.set(Directionality, {\n value: config.direction,\n change: observableOf()\n })\n }\n\n return new PortalInjector(userInjector || this.injector, injectionTokens)\n }\n\n /**\n * Expands the provided configuration object to include the default values for properties which\n * are undefined.\n */\n private _applyConfigDefaults(config?: ModalConfig): ModalConfig {\n const dialogConfig = (<unknown>this.injector.get(MODAL_CONFIG)) as typeof ModalConfig\n return {...new dialogConfig(), ...config}\n }\n}\n","import { Directive, ElementRef, HostBinding, HostListener, Input, OnInit, Optional } from '@angular/core'\n\nimport { ModalRef } from '../modal-ref'\nimport { getClosestModal } from '../modal-utils'\nimport { Modal } from '../modal.service'\n\n@Directive({\n selector: 'button[seamModalClose]',\n exportAs: 'seamModalClose'\n})\nexport class ModalCloseDirective implements OnInit {\n\n public modalRef: ModalRef<any> | undefined | null\n\n // @HostBinding('class.close') _closeCss = true\n\n @HostBinding('attr.type')\n get _attrType() { return this.type }\n\n @Input() type = 'button'\n\n @HostBinding('attr.aria-label')\n get _attrAriaLabel() { return this.ariaLabel || null }\n\n /** Screenreader label for the button. */\n @Input('aria-label') ariaLabel: string | undefined | null\n\n @Input() seamModalClose: any\n\n // NOTE: This will most likely be temporary.\n @Input() seamModalNext: any\n @Input() seamModalNextConfig: any\n\n @HostListener('click')\n _onClick() {\n if (this.modalRef) {\n if (this.seamModalNext) {\n this.modalRef.afterClosed().subscribe(() => {\n if (typeof this.seamModalNext === 'string') {\n this._modal.openFromLazyComponent(this.seamModalNext, this.seamModalNextConfig).subscribe()\n } else {\n this._modal.openFromComponent(this.seamModalNext, this.seamModalNextConfig)\n }\n })\n }\n this.modalRef.close(this.seamModalClose)\n }\n }\n\n constructor(\n private _elementRef: ElementRef<HTMLElement>,\n private _modal: Modal,\n @Optional() private _modalRef?: ModalRef<any>\n ) {\n this.modalRef = _modalRef\n }\n\n ngOnInit() {\n if (!this.modalRef) {\n // When this directive is included in a dialog via TemplateRef (rather than being\n // in a Component), the DialogRef isn't available via injection because embedded\n // views cannot be given a custom injector. Instead, we look up the DialogRef by\n // ID. This must occur in `onInit`, as the ID binding for the dialog container won't\n // be resolved at constructor time.\n this.modalRef = getClosestModal(this._elementRef, this._modal.openDialogs)\n }\n }\n\n}\n","import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[seamModalFooterTpl]'\n})\nexport class ModalFooterTplDirective {\n\n constructor(public template: TemplateRef<any>) { }\n\n}\n","import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[seamModalHeaderIconTpl]'\n})\nexport class ModalHeaderIconTplDirective {\n\n constructor(public template: TemplateRef<any>) { }\n\n}\n","import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[seamModalHeaderTitleTpl]'\n})\nexport class ModalHeaderTitleTplDirective {\n\n constructor(public template: TemplateRef<any>) { }\n\n}\n","import { Directive, ElementRef, HostBinding, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[seamModalTitle]'\n})\nexport class ModalTitleDirective {\n\n @HostBinding('class.modal-title') _modalTitleCss = true\n\n constructor(\n private _elementRef: ElementRef<HTMLElement>\n ) { }\n\n}\n","import { Directive, TemplateRef } from '@angular/core'\n\nimport { ModalRef } from '../modal-ref'\nimport { Modal } from '../modal.service'\n\n// TODO: Make this work for current modal usage.\n\n@Directive({\n selector: '[seamModal]',\n exportAs: 'seamModal'\n})\nexport class ModalDirective {\n\n constructor(\n public template: TemplateRef<HTMLElement>,\n public modal: Modal\n ) { }\n\n open(): void {\n // console.log('[ModalDirective] open')\n const ref = this.modal.openFromTemplate(this.template)\n ref.backdropClick().subscribe(e => console.log('backdropClick', e))\n }\n\n}\n","import { Component, HostBinding, OnInit } from '@angular/core'\n\n@Component({\n selector: 'seam-modal-body',\n templateUrl: './modal-body.component.html',\n styleUrls: ['./modal-body.component.scss']\n})\nexport class ModalBodyComponent implements OnInit {\n\n @HostBinding('class.modal-body') _modalBodyCss = true\n @HostBinding('class.p-3') _paddingCss = true\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { animate, AnimationEvent, state, style, transition, trigger } from '@angular/animations'\nimport { FocusTrapFactory } from '@angular/cdk/a11y'\nimport { BasePortalOutlet, CdkPortalOutlet, ComponentPortal, TemplatePortal } from '@angular/cdk/portal'\nimport { DOCUMENT } from '@angular/common'\nimport {\n ChangeDetectorRef,\n Component,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n HostBinding,\n HostListener,\n Inject,\n OnDestroy,\n Optional,\n ViewChild\n} from '@angular/core'\nimport { Subject } from 'rxjs'\nimport { distinctUntilChanged } from 'rxjs/operators'\n\nimport { ModalConfig } from '../modal-config'\n\nexport function throwDialogContentAlreadyAttachedError() {\n throw Error('Attempting to attach dialog content after content is already attached')\n}\n\n/**\n * Internal component that wraps user-provided dialog content.\n * @docs-private\n */\n@Component({\n selector: 'seam-modal-container',\n templateUrl: './modal-container.component.html',\n styleUrls: ['./modal-container.component.scss'],\n animations: [\n trigger('dialog', [\n state('enter', style({opacity: 1})),\n state('exit, void', style({opacity: 0})),\n transition('* => enter', animate('{{enterAnimationDuration}}')),\n transition('* => exit, * => void', animate('{{exitAnimationDuration}}')),\n ])\n ],\n // tslint:disable:use-host-property-decorator\n host: {\n '[@dialog]': `{\n value: _state,\n params: {\n enterAnimationDuration: _config.enterAnimationDuration,\n exitAnimationDuration: _config.exitAnimationDuration\n }\n }`,\n '(@dialog.start)': '_onAnimationStart($event)',\n '(@dialog.done)': '_animationDone.next($event)',\n },\n // tslint:enable:use-host-property-decorator\n})\nexport class ModalContainerComponent extends BasePortalOutlet implements OnDestroy {\n\n @HostBinding('attr.id') get _idAttr() { return this._id }\n\n // @HostBinding is used in the class as it is expected to be extended. Since @Component decorator\n // metadata is not inherited by child classes, instead the host binding data is defined in a way\n // that can be inherited.\n // tslint:disable:no-host-decorator-in-concrete\n @HostBinding('attr.aria-label') get _ariaLabel() { return this._config.ariaLabel || null }\n\n @HostBinding('attr.aria-describedby')\n get _ariaDescribedBy() { return this._config.ariaDescribedBy }\n\n @HostBinding('attr.role') get _role() { return this._config.role }\n\n // @HostBinding('attr.tabindex') get _tabindex() { return -1 }\n\n @HostBinding('class.seam-modal-container') _seamModalContainer = true\n\n _id: string | undefined | null\n\n constructor(\n private _elementRef: ElementRef<HTMLElement>,\n private _focusTrapFactory: FocusTrapFactory,\n private _changeDetectorRef: ChangeDetectorRef,\n @Optional() @Inject(DOCUMENT) private _document: any,\n /** The dialog configuration. */\n public _config: ModalConfig) {\n super()\n\n // We use a Subject with a distinctUntilChanged, rather than a callback attached to .done,\n // because some browsers fire the done event twice and we don't want to emit duplicate events.\n // See: https://github.com/angular/angular/issues/24084\n this._animationDone.pipe(distinctUntilChanged((x, y) => {\n return x.fromState === y.fromState && x.toState === y.toState\n })).subscribe(event => {\n // Emit lifecycle events based on animation `done` callback.\n if (event.toState === 'enter') {\n this._autoFocusFirstTabbableElement()\n this._afterEnter.next()\n this._afterEnter.complete()\n }\n\n if (event.fromState === 'enter' && (event.toState === 'void' || event.toState === 'exit')) {\n this._returnFocusAfterDialog()\n this._afterExit.next()\n this._afterExit.complete()\n }\n })\n }\n\n /** State of the dialog animation. */\n _state: 'void' | 'enter' | 'exit' = 'enter'\n\n /** Element that was focused before the dialog was opened. Save this to restore upon close. */\n private _elementFocusedBeforeDialogWasOpened: HTMLElement | null = null\n\n /** The class that traps and manages focus within the dialog. */\n private _focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement, false)\n // tslint:disable:no-host-decorator-in-concrete\n\n @HostBinding('class.modal-dialog') _modalDialog = true\n @HostBinding('class.modal-dialog-centered') _modalDialogCentered = true\n\n @HostBinding('class.modal-sm') get _modalDialogSm() { return this._config.modalSize === 'sm' }\n @HostBinding('class.modal-lg') get _modalDialogLg() { return this._config.modalSize === 'lg' }\n @HostBinding('class.modal-xl') get _modalDialogXl() { return this._config.modalSize === 'xl' }\n\n /** The portal host inside of this container into which the dialog content will be loaded. */\n @ViewChild(CdkPortalOutlet /*, { static: true }*/, { static: true }) _portalHost?: CdkPortalOutlet\n\n /** A subject emitting before the dialog enters the view. */\n _beforeEnter: Subject<void> = new Subject()\n\n /** A subject emitting after the dialog enters the view. */\n _afterEnter: Subject<void> = new Subject()\n\n /** A subject emitting before the dialog exits the view. */\n _beforeExit: Subject<void> = new Subject()\n\n /** A subject emitting after the dialog exits the view. */\n _afterExit: Subject<void> = new Subject()\n\n /** Stream of animation `done` events. */\n _animationDone = new Subject<AnimationEvent>()\n\n // NOTE: For current bootstrap style modal\n @HostListener('click', [ '$event' ])\n _onClick(event: UIEvent) {\n event.stopPropagation()\n }\n\n /** Destroy focus trap to place focus back to the element focused before the dialog opened. */\n ngOnDestroy() {\n this._focusTrap.destroy()\n this._animationDone.complete()\n }\n\n /**\n * Attach a ComponentPortal as content to this dialog container.\n * @param portal Portal to be attached as the dialog content.\n */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n if (!this._portalHost) {\n throw Error(`_portalHost not found.`)\n }\n\n if (this._portalHost.hasAttached()) {\n throwDialogContentAlreadyAttachedError()\n }\n\n this._savePreviouslyFocusedElement()\n return this._portalHost.attachComponentPortal(portal)\n }\n\n /**\n * Attach a TemplatePortal as content to this dialog container.\n * @param portal Portal to be attached as the dialog content.\n */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n if (!this._portalHost) {\n throw Error(`_portalHost not found.`)\n }\n\n if (this._portalHost.hasAttached()) {\n throwDialogContentAlreadyAttachedError()\n }\n\n this._savePreviouslyFocusedElement()\n return this._portalHost.attachTemplatePortal(portal)\n }\n\n /** Emit lifecycle events based on animation `start` callback. */\n _onAnimationStart(event: AnimationEvent) {\n if (event.toState === 'enter') {\n this._beforeEnter.next()\n this._beforeEnter.complete()\n }\n if (event.fromState === 'enter' && (event.toState === 'void' || event.toState === 'exit')) {\n this._beforeExit.next()\n this._beforeExit.complete()\n }\n }\n\n /** Starts the dialog exit animation. */\n _startExiting(): void {\n this._state = 'exit'\n\n // Mark the container for check so it can react if the\n // view container is using OnPush change detection.\n this._changeDetectorRef.markForCheck()\n }\n\n /** Saves a reference to the element that was focused before the dialog was opened. */\n private _savePreviouslyFocusedElement() {\n if (this._document) {\n this._elementFocusedBeforeDialogWasOpened = this._document.activeElement as HTMLElement\n\n // Move focus onto the dialog immediately in order to prevent the user from accidentally\n // opening multiple dialogs at the same time. Needs to be async, because the element\n // may not be focusable immediately.\n Promise.resolve().then(() => this._elementRef.nativeElement.focus())\n }\n }\n\n /**\n * Autofocus the first tabbable element inside of the dialog, if there is not a tabbable element,\n * focus the dialog instead.\n */\n private _autoFocusFirstTabbableElement() {\n // If were to attempt to focus immediately, then the content of the dialog would not yet be\n // ready in instances where change detection has to run first. To deal with this, we simply\n // wait for the microtask queue to be empty.\n if (this._config.autoFocus) {\n this._focusTrap.focusInitialElementWhenReady().then(hasMovedFocus => {\n // If we didn't find any focusable elements inside the dialog, focus the\n // container so the user can't tab into other elements behind it.\n if (!hasMovedFocus) {\n this._elementRef.nativeElement.focus()\n }\n })\n }\n }\n\n /** Returns the focus to the element focused before the dialog was open. */\n private _returnFocusAfterDialog() {\n const toFocus = this._elementFocusedBeforeDialogWasOpened\n // We need the extra check, because IE can set the `activeElement` to null in some cases.\n if (toFocus && typeof toFocus.focus === 'function') {\n toFocus.focus()\n }\n }\n\n}\n","import { Component, HostBinding, OnInit } from '@angular/core'\n\n@Component({\n selector: 'seam-modal-footer',\n templateUrl: './modal-footer.component.html',\n styleUrls: ['./modal-footer.component.scss']\n})\nexport class ModalFooterComponent implements OnInit {\n\n @HostBinding('class.modal-footer') _modalFooterCss = true\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, ContentChild, HostBinding, Input, OnInit } from '@angular/core'\n\nimport { ModalCloseDirective } from '../directives/modal-close.directive'\nimport { ModalTitleDirective } from '../directives/modal-title.directive'\n\n@Component({\n selector: 'seam-modal-header',\n templateUrl: './modal-header.component.html',\n styleUrls: ['./modal-header.component.scss']\n})\nexport class ModalHeaderComponent implements OnInit {\n\n @HostBinding('class.modal-header') _modalHeaderCss = true\n\n @Input() hasCloseBtn = true\n\n @ContentChild(ModalTitleDirective, { static: true }) _titleDirective?: ModalTitleDirective\n @ContentChild(ModalCloseDirective, { static: true }) _closeDirective?: ModalCloseDirective\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { OverlayRef } from '@angular/cdk/overlay'\nimport { EventEmitter, InjectionToken } from '@angular/core'\nimport { FormGroup } from '@angular/forms'\n\nexport interface IModalContainer {\n\n /**\n * Modal will close if a key is pressed with any of these key codes.\n *\n * default: [ 27 ] // 27 = ESCAPE\n */\n closeOnKeyPressed: number[]\n\n /** Emits when the modal has closed. */\n modalClosed: EventEmitter<void>\n\n /** Reference to the cdk OverlayRef. */\n _overlayRef?: OverlayRef\n\n /** Makes the modal container a form with this formGroup. */\n form: FormGroup | undefined | null\n\n /** Emit the `(ngSubmit)` event. NOTE: Only if `form` is defined. */\n formSubmit: EventEmitter<void>\n\n /** Opens the modal. */\n open(): void\n\n /** Closes the modal. */\n close(): void\n\n}\n\nexport const THESEAM_MODAL_CONTAINER = new InjectionToken<IModalContainer>('seamModalContainer')\n","import { BooleanInput } from '@angular/cdk/coercion'\nimport { ESCAPE } from '@angular/cdk/keycodes'\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay'\nimport { ComponentPortal, TemplatePortal } from '@angular/cdk/portal'\nimport {\n AfterViewInit, Component, ContentChild, EventEmitter, forwardRef, Input,\n isDevMode, OnDestroy, OnInit, Output, TemplateRef, ViewChild, ViewContainerRef\n} from '@angular/core'\nimport { FormGroup } from '@angular/forms'\nimport { ActivatedRoute } from '@angular/router'\nimport { filter } from 'rxjs/operators'\n\nimport { IconProp } from '@fortawesome/fontawesome-svg-core'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\nimport { SeamIcon } from '@theseam/ui-common/icon'\n\nimport { ModalFooterTplDirective } from '../directives/modal-footer-tpl.directive'\nimport { ModalHeaderIconTplDirective } from '../directives/modal-header-icon-tpl.directive'\nimport { ModalHeaderTitleTplDirective } from '../directives/modal-header-title-tpl.directive'\nimport { IModalContainer, THESEAM_MODAL_CONTAINER } from '../modal.models'\n\nexport const LIB_MODAL: any = {\n provide: THESEAM_MODAL_CONTAINER,\n // tslint:disable-next-line:no-use-before-declare\n useExisting: forwardRef(() => ModalComponent),\n multi: true,\n}\n\n@Component({\n selector: 'seam-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n providers: [ LIB_MODAL ]\n})\nexport class ModalComponent implements OnInit, OnDestroy, AfterViewInit, IModalContainer {\n static ngAcceptInputType_showCloseBtn: BooleanInput\n\n @Input()\n set closeOnKeyPressed(value: number[]) { this._closeOnKeyPressed = Array.isArray(value) ? value : [] }\n get closeOnKeyPressed(): number[] { return this._closeOnKeyPressed }\n private _closeOnKeyPressed: number[] = [ ESCAPE ]\n\n @Input() @InputBoolean() showCloseBtn: boolean = true\n\n @Input() titleText: string | undefined | null\n\n @Input()\n get icon(): SeamIcon | undefined { return this._iconUrl || this._iconObj }\n set icon(value: SeamIcon | undefined) {\n if (typeof value === 'string') {\n this._iconUrl = value\n this._iconObj = undefined\n } else {\n this._iconUrl = undefined\n this._iconObj = value\n }\n }\n\n public _iconUrl: string | undefined\n public _iconObj: IconProp | undefined\n\n @Input()\n get iconTpl(): TemplateRef<HTMLElement> | undefined {\n return this._iconTpl || (this._queryIconTpl && this._queryIconTpl.template)\n }\n set iconTpl(value: TemplateRef<HTMLElement> | undefined) {\n this._iconTpl = value\n }\n private _iconTpl?: TemplateRef<HTMLElement>\n\n @Input()\n get titleTpl(): TemplateRef<HTMLElement> | undefined {\n return this._titleTpl || (this._queryTitleTpl && this._queryTitleTpl.template)\n }\n set titleTpl(value: TemplateRef<HTMLElement> | undefined) {\n this._titleTpl = value\n }\n private _titleTpl?: TemplateRef<HTMLElement>\n\n @Input()\n get footerTpl(): TemplateRef<HTMLElement> | undefined {\n return this._footerTpl || (this._queryFooterTpl && this._queryFooterTpl.template)\n }\n set footerTpl(value: TemplateRef<HTMLElement> | undefined) {\n this._footerTpl = value\n }\n private _footerTpl?: TemplateRef<HTMLElement>\n\n @Output() modalClosed = new EventEmitter<void>()\n\n _overlayRef?: OverlayRef\n\n @Output() overlayDetached = new EventEmitter<void>()\n\n @ContentChild(ModalHeaderIconTplDirective, { static: true }) _queryIconTpl?: ModalHeaderIconTplDirective\n @ContentChild(ModalHeaderTitleTplDirective, { static: true }) _queryTitleTpl?: ModalHeaderTitleTplDirective\n @ContentChild(ModalFooterTplDirective, { static: true }) _queryFooterTpl?: ModalFooterTplDirective\n\n @ViewChild('modalTpl', { static: true }) _modalTpl?: TemplateRef<HTMLElement>\n\n /** Makes the modal container a form with this formGroup. */\n @Input() form: FormGroup | undefined | null\n\n /** Emit the `(ngSubmit)` event. NOTE: Only if `form` is defined. */\n @Output() formSubmit = new EventEmitter<void>()\n\n constructor(\n private _viewContainerRef: ViewContainerRef,\n private _overlay: Overlay,\n private _route: ActivatedRoute\n ) {\n if (isDevMode()) {\n // tslint:disable-next-line:max-line-length\n console.warn('seamModal has some issues with its design. Use the Modal service for now, because seamModal will have breaking changes or be removed soon.')\n }\n }\n\n ngOnInit() { }\n\n ngOnDestroy() {\n this.close()\n }\n\n ngAfterViewInit() {\n if (this.isRouteModal()) {\n this.open()\n }\n }\n\n public open(portal?: TemplatePortal | ComponentPortal<{}>) {\n if (this._overlayRef && this._overlayRef.hasAttached()) { return }\n\n const positionStrategy = this._overlay.position()\n .global()\n .centerHorizontally()\n .centerVertically()\n\n this._overlayRef = this._overlay.create({\n hasBackdrop: true,\n positionStrategy: positionStrategy\n })\n\n this._overlayRef.detachments().subscribe(_ => this.overlayDetached.emit())\n\n this._overlayRef.backdropClick().subscribe(_ => this.close())\n\n this._overlayRef.keydownEvents()\n // tslint:disable-next-line:deprecation\n .pipe(filter(e => e.keyCode === ESCAPE))\n .subscribe(_ => this.close())\n\n let portalToAttach = portal\n if (!portalToAttach) {\n if (!this._modalTpl) {\n throw new Error(`_modalTpl not found.`)\n }\n portalToAttach = new TemplatePortal(this._modalTpl, this._viewContainerRef)\n }\n\n this._overlayRef.attach(portalToAttach)\n }\n\n public close() {\n if (!this._overlayRef || !this._overlayRef.hasAttached()) { return }\n\n this._overlayRef.detach()\n\n this.modalClosed.emit()\n }\n\n _onSubmit() {\n this.formSubmit.emit()\n }\n\n public isRouteModal() {\n return this._route.outlet === 'modal'\n }\n\n}\n","import { AfterViewInit, Component, OnDestroy, OnInit, ViewChild } from '@angular/core'\nimport { ActivatedRoute, ActivatedRouteSnapshot, Router } from '@angular/router'\n\n// import { ModalComponent } from '../modal/modal.component'\nimport { Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\nimport { Modal } from '../modal.service'\n\n@Component({\n selector: 'seam-route-modal',\n templateUrl: './route-modal.component.html',\n styleUrls: ['./route-modal.component.scss']\n})\nexport class RouteModalComponent implements OnInit, OnDestroy, AfterViewInit {\n\n private readonly _ngUnsubscribe = new Subject()\n\n // @ViewChild(ModalComponent, { static: true }) _modal: ModalComponent\n\n constructor(\n private _route: ActivatedRoute,\n private _router: Router,\n private _modal: Modal\n ) { }\n\n ngOnInit() {\n this._route.data\n .pipe(\n takeUntil(this._ngUnsubscribe)\n )\n .subscribe(data => {\n // console.log('data', data)\n if (data.routeComponent) {\n // console.log(this._route.snapshot)\n const modalRef = this._modal.openFromComponent(data.routeComponent, {\n modalSize: 'lg',\n data\n })\n modalRef.afterClosed().subscribe(() => {\n const parent = this.getOutletParent()\n this._router.navigate(\n [{ outlets: { modal: null, primary: ['.'] } }],\n // { relativeTo: this._route.parent }\n { relativeTo: parent }\n )\n })\n }\n })\n }\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n ngAfterViewInit() { }\n\n getOutletParent() {\n let route: ActivatedRoute | null = this._route\n while (route && route.outlet !== 'modal') { route = route.parent }\n return route ? route.parent : route\n }\n\n public _onDetached() {\n if (this.isRouteModal()) {\n this._router.navigate(\n [{ outlets: { modal: null, primary: ['.'] } }],\n { relativeTo: this._route.parent }\n )\n }\n }\n\n public isRouteModal() {\n return this._route.outlet === 'modal'\n }\n\n}\n","import { A11yModule } from '@angular/cdk/a11y'\nimport { OverlayModule } from '@angular/cdk/overlay'\nimport { PortalModule } from '@angular/cdk/portal'\nimport { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { ReactiveFormsModule } from '@angular/forms'\nimport { RouterModule } from '@angular/router'\n\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome'\n\nimport { ModalCloseDirective } from './directives/modal-close.directive'\nimport { ModalFooterTplDirective } from './directives/modal-footer-tpl.directive'\nimport { ModalHeaderIconTplDirective } from './directives/modal-header-icon-tpl.directive'\nimport { ModalHeaderTitleTplDirective } from './directives/modal-header-title-tpl.directive'\nimport { ModalTitleDirective } from './directives/modal-title.directive'\nimport { ModalDirective } from './directives/modal.directive'\nimport { ModalBodyComponent } from './modal-body/modal-body.component'\nimport { ModalConfig } from './modal-config'\nimport { ModalContainerComponent } from './modal-container/modal-container.component'\nimport { ModalFooterComponent } from './modal-footer/modal-footer.component'\nimport { ModalHeaderComponent } from './modal-header/modal-header.component'\nimport {\n MODAL_CONFIG,\n MODAL_CONTAINER,\n MODAL_REF,\n THESEAM_MODAL_SCROLL_STRATEGY_PROVIDER\n} from './modal-injectors'\nimport { ModalRef } from './modal-ref'\nimport { Modal } from './modal.service'\nimport { ModalComponent } from './modal/modal.component'\nimport { RouteModalComponent } from './route-modal/route-modal.component'\n\n@NgModule({\n declarations: [\n ModalComponent,\n ModalFooterTplDirective,\n ModalHeaderIconTplDirective,\n ModalHeaderTitleTplDirective,\n RouteModalComponent,\n ModalDirective,\n ModalContainerComponent,\n ModalHeaderComponent,\n ModalTitleDirective,\n ModalBodyComponent,\n ModalFooterComponent,\n ModalCloseDirective\n ],\n imports: [\n CommonModule,\n OverlayModule,\n FontAwesomeModule,\n RouterModule,\n ReactiveFormsModule,\n PortalModule,\n A11yModule,\n ],\n exports: [\n ModalComponent,\n ModalFooterTplDirective,\n ModalHeaderIconTplDirective,\n ModalHeaderTitleTplDirective,\n RouteModalComponent,\n ModalDirective,\n // Re-export the PortalModule so that people extending the `CdkDialogContainer`\n // don't have to remember to import it or be faced with an unhelpful error.\n PortalModule,\n ModalHeaderComponent,\n ModalTitleDirective,\n ModalBodyComponent,\n ModalFooterComponent,\n ModalCloseDirective\n ],\n providers: [\n Modal,\n THESEAM_MODAL_SCROLL_STRATEGY_PROVIDER,\n { provide: MODAL_REF, useValue: ModalRef },\n { provide: MODAL_CONTAINER, useValue: ModalContainerComponent },\n { provide: MODAL_CONFIG, useValue: ModalConfig },\n ],\n entryComponents: [\n RouteModalComponent,\n ModalContainerComponent\n ],\n})\nexport class TheSeamModalModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["filter","ESCAPE","map","InjectionToken","Overlay","Subject","defer","startWith","switchMap","of","OverlayConfig","PortalInjector","ComponentPortal","TemplatePortal","Directionality","observableOf","Injectable","Injector","Type","Inject","Optional","SkipSelf","Location","OverlayScrollbarsService","TheSeamDynamicComponentLoader","Directive","ElementRef","HostBinding","Input","HostListener","TemplateRef","Component","distinctUntilChanged","BasePortalOutlet","trigger","state","style","transition","animate","FocusTrapFactory","ChangeDetectorRef","DOCUMENT","ViewChild","CdkPortalOutlet","ContentChild","forwardRef","EventEmitter","isDevMode","portal","ViewContainerRef","ActivatedRoute","Output","InputBoolean","takeUntil","Router","NgModule","CommonModule","OverlayModule","FontAwesomeModule","RouterModule","ReactiveFormsModule","PortalModule","A11yModule"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"theseam-ui-common-modal.umd.js","sources":["../../../projects/ui-common/modal/modal-ref.ts","../../../projects/ui-common/modal/modal-utils.ts","../../../node_modules/tslib/tslib.es6.js","../../../projects/ui-common/modal/modal-config.ts","../../../projects/ui-common/modal/modal-injectors.ts","../../../projects/ui-common/modal/modal.service.ts","../../../projects/ui-common/modal/directives/modal-close.directive.ts","../../../projects/ui-common/modal/directives/modal-footer-tpl.directive.ts","../../../projects/ui-common/modal/directives/modal-header-icon-tpl.directive.ts","../../../projects/ui-common/modal/directives/modal-header-title-tpl.directive.ts","../../../projects/ui-common/modal/directives/modal-title.directive.ts","../../../projects/ui-common/modal/directives/modal.directive.ts","../../../projects/ui-common/modal/modal-body/modal-body.component.ts","../../../projects/ui-common/modal/modal-container/modal-container.component.ts","../../../projects/ui-common/modal/modal-footer/modal-footer.component.ts","../../../projects/ui-common/modal/modal-header/modal-header.component.ts","../../../projects/ui-common/modal/modal.models.ts","../../../projects/ui-common/modal/modal/modal.component.ts","../../../projects/ui-common/modal/route-modal/route-modal.component.ts","../../../projects/ui-common/modal/modal.module.ts","../../../projects/ui-common/modal/theseam-ui-common-modal.ts"],"sourcesContent":["import { ESCAPE } from '@angular/cdk/keycodes'\nimport { GlobalPositionStrategy, OverlayRef, OverlaySizeConfig } from '@angular/cdk/overlay'\nimport { Observable } from 'rxjs'\nimport { filter, map } from 'rxjs/operators'\n\nimport { IModalPosition } from './modal-config'\nimport { ModalContainerComponent } from './modal-container/modal-container.component'\n\nconst DRAG_CLOSE_THRESHOLD = 5\n\n/** Unique id for the created dialog. */\nlet uniqueId = 0\n\n/**\n * Reference to a dialog opened via the Dialog service.\n */\nexport class ModalRef<T, R = any> {\n /** The instance of the component in the dialog. */\n componentInstance: T | null = null\n\n /** Whether the user is allowed to close the dialog. */\n disableClose: boolean | undefined\n\n /** Result to be passed to afterClosed. */\n private _result: R | undefined\n\n private _clickOutsideCleanup: (() => void) | null = null\n\n constructor(\n public _overlayRef: OverlayRef,\n protected _containerInstance: ModalContainerComponent,\n readonly id: string = `seam-modal-${uniqueId++}`) {\n // Pass the id along to the container.\n _containerInstance._id = id\n\n // If the dialog has a backdrop, handle clicks from the backdrop.\n if (_containerInstance._config.hasBackdrop) {\n _overlayRef.backdropClick().subscribe(() => {\n if (!this.disableClose) {\n this.close()\n }\n })\n\n this._clickOutsideCleanup = this._initCloseOnClickOutside()\n }\n\n this.beforeClosed().subscribe(() => {\n this._overlayRef.detachBackdrop()\n })\n\n this.afterClosed().subscribe(() => {\n this._overlayRef.detach()\n this._overlayRef.dispose()\n this.componentInstance = null\n })\n\n // Close when escape keydown event occurs\n _overlayRef.keydownEvents()\n // tslint:disable-next-line:deprecation\n .pipe(filter(event => event.keyCode === ESCAPE && !this.disableClose))\n .subscribe(() => this.close())\n }\n\n private _initCloseOnClickOutside(): () => void {\n const close = () => {\n if (!this.disableClose) {\n this.close()\n }\n }\n\n const isInContainer = (target: HTMLElement | null) => {\n return this._containerInstance.getNativeElement().contains(target)\n }\n\n const getPosition = (event: MouseEvent | PointerEvent): { x: number, y: number } => {\n return { x: event.clientX, y: event.clientY }\n }\n\n const dist = (x1: number, y1: number, x2: number, y2: number): number => {\n return Math.sqrt( Math.pow((x2 - x1), 2) + Math.pow((y2 - y1), 2) )\n }\n\n let pressed = false\n let pressedPosition: { x: number, y: number } | null = null\n const _handlePressDown = (event: MouseEvent | PointerEvent) => {\n pressed = true\n pressedPosition = getPosition(event)\n }\n\n const _handlePressUp = (event: MouseEvent | PointerEvent) => {\n if (pressedPosition) {\n const target = event.target as HTMLElement | null\n if (target && !isInContainer(target)) {\n const currentPosition = getPosition(event)\n const d = dist(currentPosition.x, currentPosition.y, pressedPosition.x, pressedPosition.y)\n if (d < DRAG_CLOSE_THRESHOLD) {\n close()\n }\n }\n\n pressedPosition = null\n } else if (pressed) {\n close()\n }\n pressed = false\n }\n\n this._overlayRef.overlayElement.addEventListener('mousedown', _handlePressDown)\n this._overlayRef.overlayElement.addEventListener('pointerdown', _handlePressDown)\n\n this._overlayRef.overlayElement.addEventListener('mouseup', _handlePressUp)\n this._overlayRef.overlayElement.addEventListener('pointerup', _handlePressUp)\n\n return () => {\n this._overlayRef.overlayElement.removeEventListener('mousedown', _handlePressDown)\n this._overlayRef.overlayElement.removeEventListener('pointerdown', _handlePressDown)\n\n this._overlayRef.overlayElement.removeEventListener('mouseup', _handlePressUp)\n this._overlayRef.overlayElement.removeEventListener('pointerup', _handlePressUp)\n }\n }\n\n /** Gets an observable that emits when the overlay's backdrop has been clicked. */\n backdropClick(): Observable<MouseEvent> {\n return this._overlayRef.backdropClick()\n }\n\n /**\n * Close the dialog.\n * @param dialogResult Optional result to return to the dialog opener.\n */\n close(dialogResult?: R): void {\n this._result = dialogResult\n this._containerInstance._startExiting()\n if (this._clickOutsideCleanup) {this._clickOutsideCleanup()}\n }\n\n /**\n * Updates the dialog's position.\n * @param position New dialog position.\n */\n updatePosition(position?: IModalPosition): this {\n const strategy = this._getPositionStrategy()\n\n if (position && (position.left || position.right)) {\n position.left ? strategy.left(position.left) : strategy.right(position.right)\n } else {\n strategy.centerHorizontally()\n }\n\n if (position && (position.top || position.bottom)) {\n position.top ? strategy.top(position.top) : strategy.bottom(position.bottom)\n } else {\n strategy.centerVertically()\n }\n\n this._overlayRef.updatePosition()\n\n return this\n }\n\n /**\n * Gets an observable that emits when keydown events are targeted on the overlay.\n */\n keydownEvents(): Observable<KeyboardEvent> {\n return this._overlayRef.keydownEvents()\n }\n\n /**\n * Updates the dialog's width and height, defined, min and max.\n * @param size New size for the overlay.\n */\n updateSize(size: OverlaySizeConfig): this {\n if (size.width) {\n // tslint:disable-next-line:deprecation\n this._getPositionStrategy().width(size.width.toString())\n }\n if (size.height) {\n // tslint:disable-next-line:deprecation\n this._getPositionStrategy().height(size.height.toString())\n }\n this._overlayRef.updateSize(size)\n this._overlayRef.updatePosition()\n return this\n }\n\n /** Fetches the position strategy object from the overlay ref. */\n private _getPositionStrategy(): GlobalPositionStrategy {\n return this._overlayRef.getConfig().positionStrategy as GlobalPositionStrategy\n }\n\n /** Gets an observable that emits when dialog begins opening. */\n beforeOpened(): Observable<void> {\n return this._containerInstance._beforeEnter.asObservable()\n }\n\n /** Gets an observable that emits when dialog is finished opening. */\n afterOpened(): Observable<void> {\n return this._containerInstance._afterEnter.asObservable()\n }\n\n /** Gets an observable that emits when dialog begins closing. */\n beforeClosed(): Observable<R | undefined> {\n return this._containerInstance._beforeExit.pipe(map(() => this._result))\n }\n\n /** Gets an observable that emits when dialog is finished closing. */\n afterClosed(): Observable<R | undefined> {\n return this._containerInstance._afterExit.pipe(map(() => this._result))\n }\n}\n","import { ElementRef } from '@angular/core'\nimport { ModalRef } from './modal-ref'\n\n/**\n * Finds the closest MatDialogRef to an element by looking at the DOM.\n * @param element Element relative to which to look for a dialog.\n * @param openDialogs References to the currently-open dialogs.\n */\nexport function getClosestModal(element: ElementRef<HTMLElement>, openDialogs: ModalRef<any>[]) {\n let parent: HTMLElement | null = element.nativeElement.parentElement\n\n while (parent && !parent.classList.contains('seam-modal-container')) {\n parent = parent.parentElement\n }\n\n const parentId = parent ? parent.id : null\n return parentId ? openDialogs.find(dialog => dialog.id === parentId) : null\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { Direction } from '@angular/cdk/bidi'\nimport { ComponentType } from '@angular/cdk/overlay'\nimport { InjectionToken, ViewContainerRef } from '@angular/core'\n\nimport { ModalContainerComponent } from './modal-container/modal-container.component'\n\n/** Valid ARIA roles for a dialog element. */\nexport type DialogRole = 'dialog' | 'alertdialog'\n\n/** Possible overrides for a dialog's position. */\nexport interface IModalPosition {\n top?: string\n bottom?: string\n left?: string\n right?: string\n}\n\n// tslint:disable:no-inferrable-types\nexport class ModalConfig<D = any> {\n /** Component to use as the container for the dialog. */\n containerComponent?: ComponentType<ModalContainerComponent>\n\n /**\n * Where the attached component should live in Angular's *logical* component tree.\n * This affects what is available for injection and the change detection order for the\n * component instantiated inside of the dialog. This does not affect where the dialog\n * content will be rendered.\n */\n viewContainerRef?: ViewContainerRef\n\n /** The id of the dialog. */\n id?: string\n\n /** The ARIA role of the dialog. */\n role?: DialogRole = 'dialog'\n\n /** Custom class(es) for the overlay panel. */\n panelClass?: string | string[] = ''\n\n /** Whether the dialog has a background. */\n hasBackdrop?: boolean = true\n\n /** Custom class(es) for the backdrop. */\n backdropClass?: string | undefined = ''\n\n /** Whether the dialog can be closed by user interaction. */\n disableClose?: boolean = false\n\n /** The width of the dialog. */\n width?: string = '100%'\n\n /** The height of the dialog. */\n height?: string = ''\n\n /** The minimum width of the dialog. */\n minWidth?: string | number = ''\n\n /** The minimum height of the dialog. */\n minHeight?: string | number = ''\n\n /** The maximum width of the dialog. */\n maxWidth?: string | number = ''\n\n /** The maximum height of the dialog. */\n maxHeight?: string | number = ''\n\n /** The position of the dialog. */\n position?: IModalPosition\n\n /** Data to be injected into the dialog content. */\n data?: D | null = null\n\n /** The layout direction for the dialog content. */\n direction?: Direction\n\n /** ID of the element that describes the dialog. */\n ariaDescribedBy?: string | null = null\n\n /** Aria label to assign to the dialog element */\n ariaLabel?: string | null = null\n\n /** Whether the dialog should focus the first focusable element on open. */\n autoFocus?: boolean = true\n\n /** Duration of the enter animation. Has to be a valid CSS value (e.g. 100ms). */\n enterAnimationDuration?: string = '225ms'\n\n /** Duration of the exit animation. Has to be a valid CSS value (e.g. 50ms). */\n exitAnimationDuration?: string = '225ms'\n\n /** Bootstrap modal sizes */\n modalSize?: 'sm' | 'lg' | 'xl'\n}\n// tslint:enable:no-inferrable-types\n\nexport function mergeModalConfigs(a: ModalConfig, b: ModalConfig) {\n return { ...a, ...b }\n}\n\n\n/** Injection token that can be used to specify modal options. */\nexport const LIB_MODAL_CONFIG = new InjectionToken<ModalConfig>('seamModalConfig')\n","import {\n ComponentType,\n Overlay,\n ScrollStrategy,\n} from '@angular/cdk/overlay'\nimport { InjectionToken } from '@angular/core'\n\nimport { ModalConfig } from './modal-config'\nimport { ModalContainerComponent } from './modal-container/modal-container.component'\nimport { ModalRef } from './modal-ref'\n\n/** Injection token for the Dialog's ScrollStrategy. */\nexport const MODAL_SCROLL_STRATEGY =\n new InjectionToken<() => ScrollStrategy>('ModalScrollStrategy')\n\n/** Injection token for the Dialog's Data. */\nexport const MODAL_DATA = new InjectionToken<any>('ModalData')\n\n/** Injection token for the DialogRef constructor. */\nexport const MODAL_REF = new InjectionToken<ModalRef<any>>('ModalRef')\n\n/** Injection token for the DialogConfig. */\nexport const MODAL_CONFIG = new InjectionToken<ModalConfig>('ModalConfig')\n\n/** Injection token for the Dialog's DialogContainer component. */\nexport const MODAL_CONTAINER =\n new InjectionToken<ComponentType<ModalContainerComponent>>('ModalContainer')\n\n/** @docs-private */\nexport function THESEAM_MODAL_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay: Overlay):\n () => ScrollStrategy {\n return () => overlay.scrollStrategies.block()\n}\n\n/** @docs-private */\nexport const THESEAM_MODAL_SCROLL_STRATEGY_PROVIDER = {\n provide: MODAL_SCROLL_STRATEGY,\n deps: [ Overlay ],\n useFactory: THESEAM_MODAL_SCROLL_STRATEGY_PROVIDER_FACTORY,\n}\n","import { Directionality } from '@angular/cdk/bidi'\nimport {\n ComponentType,\n Overlay,\n OverlayConfig,\n OverlayRef,\n ScrollStrategy,\n} from '@angular/cdk/overlay'\nimport { ComponentPortal, PortalInjector, TemplatePortal } from '@angular/cdk/portal'\nimport { Location } from '@angular/common'\nimport {\n ComponentFactoryResolver,\n ComponentRef,\n Inject,\n Injectable,\n Injector,\n OnDestroy,\n Optional,\n SkipSelf,\n TemplateRef,\n Type\n} from '@angular/core'\nimport { defer, Observable, of, of as observableOf, Subject } from 'rxjs'\nimport { startWith, switchMap } from 'rxjs/operators'\n\nimport { TheSeamDynamicComponentLoader } from '@theseam/ui-common/dynamic-component-loader'\nimport { OverlayScrollbarsService } from '@theseam/ui-common/scrollbar'\n\nimport { ModalConfig } from './modal-config'\nimport { ModalContainerComponent } from './modal-container/modal-container.component'\nimport {\n MODAL_CONFIG,\n MODAL_CONTAINER,\n MODAL_DATA,\n MODAL_REF,\n MODAL_SCROLL_STRATEGY,\n} from './modal-injectors'\nimport { ModalRef } from './modal-ref'\n\n\n/**\n * Service to open modal dialogs.\n */\n@Injectable()\nexport class Modal implements OnDestroy {\n private _scrollStrategy: () => ScrollStrategy\n\n /** Stream that emits when all dialogs are closed. */\n get _afterAllClosed(): Observable<void> {\n return this._parentDialog ? this._parentDialog.afterAllClosed : this._afterAllClosedBase\n }\n _afterAllClosedBase = new Subject<void>()\n\n afterAllClosed: Observable<void> = defer(() => this.openDialogs.length ?\n this._afterAllClosed : this._afterAllClosed.pipe(startWith(undefined)))\n\n /** Stream that emits when a dialog is opened. */\n get afterOpened(): Subject<ModalRef<any>> {\n return this._parentDialog ? this._parentDialog.afterOpened : this._afterOpened\n }\n _afterOpened: Subject<ModalRef<any>> = new Subject()\n\n /** Stream that emits when a dialog is opened. */\n get openDialogs(): ModalRef<any>[] {\n return this._parentDialog ? this._parentDialog.openDialogs : this._openDialogs\n }\n _openDialogs: ModalRef<any>[] = []\n\n constructor(\n private overlay: Overlay,\n private injector: Injector,\n @Inject(MODAL_REF) private dialogRefConstructor: Type<ModalRef<any>>,\n @Inject(MODAL_SCROLL_STRATEGY) scrollStrategy: any,\n @Optional() @SkipSelf() private _parentDialog: Modal,\n @Optional() location: Location,\n private _scrollbars: OverlayScrollbarsService,\n private _dynamicComponentLoaderModule: TheSeamDynamicComponentLoader\n ) {\n\n // Close all of the dialogs when the user goes forwards/backwards in history or when the\n // location hash changes. Note that this usually doesn't include clicking on links (unless\n // the user is using the `HashLocationStrategy`).\n if (!_parentDialog && location) {\n location.subscribe(() => this.closeAll())\n }\n\n this._scrollStrategy = scrollStrategy\n }\n\n /** Gets an open dialog by id. */\n getById(id: string): ModalRef<any> | undefined {\n return this._openDialogs.find(ref => ref.id === id)\n }\n\n /** Closes all open dialogs. */\n closeAll(): void {\n this.openDialogs.forEach(ref => ref.close())\n }\n\n /** Opens a dialog from a component. */\n openFromComponent<T, D = any>(\n component: ComponentType<T>,\n config?: ModalConfig<D>,\n // NOTE: Should only be needed with the current implementation of `TheSeamDynamicComponentLoader`.\n componentFactoryResolver?: ComponentFactoryResolver | null | undefined\n ): ModalRef<T, D> {\n config = this._applyConfigDefaults(config)\n\n if (config.id && this.getById(config.id)) {\n throw Error(`Modal with id \"${config.id}\" exists already. The modal id must be unique.`)\n }\n\n const overlayRef = this._createOverlay(config)\n const dialogContainer = this._attachDialogContainer(overlayRef, config)\n const dialogRef = this._attachDialogContentForComponent(component, dialogContainer,\n overlayRef, config, componentFactoryResolver)\n\n this.registerDialogRef(dialogRef)\n return dialogRef\n }\n\n /** Opens a dialog from a template. */\n openFromTemplate<T>(template: TemplateRef<T>, config?: ModalConfig): ModalRef<any> {\n config = this._applyConfigDefaults(config)\n\n if (config.id && this.getById(config.id)) {\n throw Error(`Modal with id \"${config.id}\" exists already. The modal id must be unique.`)\n }\n\n const overlayRef = this._createOverlay(config)\n const dialogContainer = this._attachDialogContainer(overlayRef, config)\n const dialogRef = this._attachDialogContentForTemplate(template, dialogContainer,\n overlayRef, config)\n\n this.registerDialogRef(dialogRef)\n return dialogRef\n }\n\n /** Opens a dialog from a lazy-loaded component. */\n openFromLazyComponent<T, D = any>(\n componentId: string,\n config?: ModalConfig<D>\n ): Observable<ModalRef<T, D>> {\n config = this._applyConfigDefaults(config)\n\n if (config.id && this.getById(config.id)) {\n throw Error(`Modal with id \"${config.id}\" exists already. The modal id must be unique.`)\n }\n\n return this._dynamicComponentLoaderModule\n .getComponentFactory<{}>(componentId)\n .pipe(\n switchMap(componentFactory => {\n const modalRef = this.openFromComponent(\n componentFactory.componentType,\n config,\n (<any /* ComponentFactoryBoundToModule */>componentFactory).ngModule.componentFactoryResolver\n )\n return of(modalRef)\n })\n )\n }\n\n ngOnDestroy() {\n // Only close all the dialogs at this level.\n this._openDialogs.forEach(ref => ref.close())\n }\n\n /**\n * Forwards emitting events for when dialogs are opened and all dialogs are closed.\n */\n private registerDialogRef(dialogRef: ModalRef<any>): void {\n this.openDialogs.push(dialogRef)\n\n let cleanupScroll: (() => void) | undefined\n const dialogBeforeOpenSub = dialogRef.beforeOpened().subscribe(() => {\n cleanupScroll = this._registerDialogRefScrollEvents(dialogRef)\n dialogBeforeOpenSub.unsubscribe()\n })\n\n const dialogBeforeCloseSub = dialogRef.beforeClosed().subscribe(() => {\n // TODO: Do I need to destroy the instance? I feel like I should, but the\n // way I have this implemented currently causes the native scrollbar to\n // appear before the element is removed from the DOM.\n // this._scrollbars.destroyInstance(dialogRef._overlayRef.overlayElement)\n if (cleanupScroll) {\n cleanupScroll()\n }\n\n dialogBeforeCloseSub.unsubscribe()\n })\n\n const dialogOpenSub = dialogRef.afterOpened().subscribe(() => {\n this.afterOpened.next(dialogRef)\n dialogOpenSub.unsubscribe()\n })\n\n const dialogCloseSub = dialogRef.afterClosed().subscribe(() => {\n // this._scrollbars.destroyInstance(dialogRef._overlayRef.overlayElement)\n const dialogIndex = this._openDialogs.indexOf(dialogRef)\n\n if (dialogIndex > -1) {\n this._openDialogs.splice(dialogIndex, 1)\n }\n\n if (!this._openDialogs.length) {\n this._afterAllClosedBase.next()\n dialogCloseSub.unsubscribe()\n }\n })\n }\n\n // TODO: Cleanup. This was rushed together fast and became an unefficient mess.\n private _registerDialogRefScrollEvents(dialogRef: ModalRef<any>): () => void {\n const _scrollbarMouseDownListener = () => {\n if (dialogRef) { dialogRef.disableClose = true }\n }\n const _scrollbarMouseUpListener = () => {\n setTimeout(() => { if (dialogRef) { dialogRef.disableClose = false } })\n }\n\n let verticalHandleElement: HTMLElement | undefined\n let horizontalHandleElement: HTMLElement | undefined\n this._scrollbars.initializeInstance(dialogRef._overlayRef.overlayElement, {\n callbacks: {\n onInitialized: () => {\n // console.log('onInitialized')\n setTimeout(() => {\n const instance = this._scrollbars.getInstance(dialogRef._overlayRef.overlayElement)\n if (instance) {\n verticalHandleElement = instance.getElements().scrollbarVertical.handle\n if (verticalHandleElement) {\n verticalHandleElement.addEventListener('mousedown', _scrollbarMouseDownListener)\n verticalHandleElement.addEventListener('touchstart', _scrollbarMouseDownListener)\n }\n horizontalHandleElement = instance.getElements().scrollbarHorizontal.handle\n if (horizontalHandleElement) {\n horizontalHandleElement.addEventListener('mousedown', _scrollbarMouseDownListener)\n horizontalHandleElement.addEventListener('touchstart', _scrollbarMouseDownListener)\n }\n if (verticalHandleElement || horizontalHandleElement) {\n document.addEventListener('mouseup', _scrollbarMouseUpListener)\n document.addEventListener('touchend', _scrollbarMouseUpListener)\n document.addEventListener('touchcancel', _scrollbarMouseUpListener)\n }\n }\n })\n },\n onDestroyed: () => {\n // console.log('onDestroyed')\n // // const instance = this._scrollbars.getInstance(dialogRef._overlayRef.overlayElement)\n // // const scrollElem = instance.getElements().scrollbarVertical.handle\n // if (verticalHandleElement) {\n // verticalHandleElement.removeEventListener('mousedown', _scrollbarMouseDownListener)\n // verticalHandleElement.removeEventListener('touchstart', _scrollbarMouseDownListener)\n // }\n // if (horizontalHandleElement) {\n // horizontalHandleElement.removeEventListener('mousedown', _scrollbarMouseDownListener)\n // horizontalHandleElement.removeEventListener('touchstart', _scrollbarMouseDownListener)\n // }\n // if (verticalHandleElement || horizontalHandleElement) {\n // document.removeEventListener('mouseup', _scrollbarMouseUpListener)\n // document.removeEventListener('touchend', _scrollbarMouseUpListener)\n // document.removeEventListener('touchcancel', _scrollbarMouseUpListener)\n // }\n }\n }\n })\n\n // Cleans up the registered events.\n return () => {\n // console.log('scrollevents cleanup')\n // const instance = this._scrollbars.getInstance(dialogRef._overlayRef.overlayElement)\n // const scrollElem = instance.getElements().scrollbarVertical.handle\n if (verticalHandleElement) {\n verticalHandleElement.removeEventListener('mousedown', _scrollbarMouseDownListener)\n verticalHandleElement.removeEventListener('touchstart', _scrollbarMouseDownListener)\n }\n if (horizontalHandleElement) {\n horizontalHandleElement.removeEventListener('mousedown', _scrollbarMouseDownListener)\n horizontalHandleElement.removeEventListener('touchstart', _scrollbarMouseDownListener)\n }\n if (verticalHandleElement || horizontalHandleElement) {\n document.removeEventListener('mouseup', _scrollbarMouseUpListener)\n document.removeEventListener('touchend', _scrollbarMouseUpListener)\n document.removeEventListener('touchcancel', _scrollbarMouseUpListener)\n }\n }\n }\n\n /**\n * Creates an overlay config from a dialog config.\n * @param config The dialog configuration.\n * @returns The overlay configuration.\n */\n protected _createOverlay(config: ModalConfig): OverlayRef {\n let panelClass = (config.panelClass || [])\n if (typeof panelClass === 'string') {\n panelClass = [ panelClass ]\n }\n panelClass = [ ...panelClass, 'modal', 'd-block', 'overflow-auto' ]\n\n const overlayConfig = new OverlayConfig({\n positionStrategy: this.overlay.position().global(),\n scrollStrategy: this._scrollStrategy(),\n panelClass: panelClass,\n hasBackdrop: config.hasBackdrop,\n direction: config.direction,\n minWidth: config.minWidth,\n minHeight: config.minHeight,\n maxWidth: config.maxWidth,\n maxHeight: config.maxHeight\n })\n\n if (config.backdropClass) {\n overlayConfig.backdropClass = config.backdropClass\n }\n return this.overlay.create(overlayConfig)\n }\n\n /**\n * Attaches an MatDialogContainer to a dialog's already-created overlay.\n * @param overlay Reference to the dialog's underlying overlay.\n * @param config The dialog configuration.\n * @returns A promise resolving to a ComponentRef for the attached container.\n */\n protected _attachDialogContainer(overlay: OverlayRef, config: ModalConfig): ModalContainerComponent {\n const container = config.containerComponent || this.injector.get(MODAL_CONTAINER)\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector\n const injector = new PortalInjector(userInjector || this.injector, new WeakMap([\n [ModalConfig, config]\n ]))\n const containerPortal = new ComponentPortal(container, config.viewContainerRef, injector)\n const containerRef = <ComponentRef<ModalContainerComponent>>overlay.attach(containerPortal)\n containerRef.instance._config = config\n\n return containerRef.instance\n }\n\n\n /**\n * Attaches the user-provided component to the already-created MatDialogContainer.\n * @param componentOrTemplateRef The type of component being loaded into the dialog,\n * or a TemplateRef to instantiate as the content.\n * @param dialogContainer Reference to the wrapping MatDialogContainer.\n * @param overlayRef Reference to the overlay in which the dialog resides.\n * @param config The dialog configuration.\n * @returns A promise resolving to the MatDialogRef that should be returned to the user.\n */\n protected _attachDialogContentForComponent<T>(\n componentOrTemplateRef: ComponentType<T>,\n dialogContainer: ModalContainerComponent,\n overlayRef: OverlayRef,\n config: ModalConfig,\n componentFactoryResolver?: ComponentFactoryResolver | null | undefined): ModalRef<any> {\n\n // Create a reference to the dialog we're creating in order to give the user a handle\n // to modify and close it.\n const dialogRef = new this.dialogRefConstructor(overlayRef, dialogContainer, config.id)\n const injector = this._createInjector<T>(config, dialogRef, dialogContainer)\n const contentRef = dialogContainer.attachComponentPortal(\n new ComponentPortal(componentOrTemplateRef, undefined, injector, componentFactoryResolver))\n\n dialogRef.componentInstance = contentRef.instance\n dialogRef.disableClose = config.disableClose\n\n dialogRef.updateSize({width: config.width, height: config.height})\n .updatePosition(config.position)\n\n return dialogRef\n }\n\n /**\n * Attaches the user-provided component to the already-created MatDialogContainer.\n * @param componentOrTemplateRef The type of component being loaded into the dialog,\n * or a TemplateRef to instantiate as the content.\n * @param dialogContainer Reference to the wrapping MatDialogContainer.\n * @param overlayRef Reference to the overlay in which the dialog resides.\n * @param config The dialog configuration.\n * @returns A promise resolving to the MatDialogRef that should be returned to the user.\n */\n protected _attachDialogContentForTemplate<T>(\n componentOrTemplateRef: TemplateRef<T>,\n dialogContainer: ModalContainerComponent,\n overlayRef: OverlayRef,\n config: ModalConfig): ModalRef<any> {\n\n // Create a reference to the dialog we're creating in order to give the user a handle\n // to modify and close it.\n const dialogRef = new this.dialogRefConstructor(overlayRef, dialogContainer, config.id)\n\n dialogContainer.attachTemplatePortal(\n new TemplatePortal<T>(componentOrTemplateRef, <any>null,\n <any>{$implicit: config.data, dialogRef}))\n dialogRef.updateSize({width: config.width, height: config.height})\n .updatePosition(config.position)\n\n return dialogRef\n }\n\n\n /**\n * Creates a custom injector to be used inside the dialog. This allows a component loaded inside\n * of a dialog to close itself and, optionally, to return a value.\n * @param config Config object that is used to construct the dialog.\n * @param dialogRef Reference to the dialog.\n * @param container Dialog container element that wraps all of the contents.\n * @returns The custom injector that can be used inside the dialog.\n */\n private _createInjector<T>(\n config: ModalConfig,\n dialogRef: ModalRef<T>,\n dialogContainer: ModalContainerComponent): PortalInjector {\n\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector\n const injectionTokens = new WeakMap<any, any>([\n [this.injector.get(MODAL_REF), dialogRef],\n [this.injector.get(MODAL_CONTAINER), dialogContainer],\n [MODAL_DATA, config.data]\n ])\n\n if (config.direction &&\n (!userInjector || !userInjector.get<Directionality | null>(Directionality, null))) {\n injectionTokens.set(Directionality, {\n value: config.direction,\n change: observableOf()\n })\n }\n\n return new PortalInjector(userInjector || this.injector, injectionTokens)\n }\n\n /**\n * Expands the provided configuration object to include the default values for properties which\n * are undefined.\n */\n private _applyConfigDefaults(config?: ModalConfig): ModalConfig {\n const dialogConfig = (<unknown>this.injector.get(MODAL_CONFIG)) as typeof ModalConfig\n return {...new dialogConfig(), ...config}\n }\n}\n","import { Directive, ElementRef, HostBinding, HostListener, Input, OnInit, Optional } from '@angular/core'\n\nimport { ModalRef } from '../modal-ref'\nimport { getClosestModal } from '../modal-utils'\nimport { Modal } from '../modal.service'\n\n@Directive({\n selector: 'button[seamModalClose]',\n exportAs: 'seamModalClose'\n})\nexport class ModalCloseDirective implements OnInit {\n\n public modalRef: ModalRef<any> | undefined | null\n\n // @HostBinding('class.close') _closeCss = true\n\n @HostBinding('attr.type')\n get _attrType() { return this.type }\n\n @Input() type = 'button'\n\n @HostBinding('attr.aria-label')\n get _attrAriaLabel() { return this.ariaLabel || null }\n\n /** Screenreader label for the button. */\n @Input('aria-label') ariaLabel: string | undefined | null\n\n @Input() seamModalClose: any\n\n // NOTE: This will most likely be temporary.\n @Input() seamModalNext: any\n @Input() seamModalNextConfig: any\n\n @HostListener('click')\n _onClick() {\n if (this.modalRef) {\n if (this.seamModalNext) {\n this.modalRef.afterClosed().subscribe(() => {\n if (typeof this.seamModalNext === 'string') {\n this._modal.openFromLazyComponent(this.seamModalNext, this.seamModalNextConfig).subscribe()\n } else {\n this._modal.openFromComponent(this.seamModalNext, this.seamModalNextConfig)\n }\n })\n }\n this.modalRef.close(this.seamModalClose)\n }\n }\n\n constructor(\n private _elementRef: ElementRef<HTMLElement>,\n private _modal: Modal,\n @Optional() private _modalRef?: ModalRef<any>\n ) {\n this.modalRef = _modalRef\n }\n\n ngOnInit() {\n if (!this.modalRef) {\n // When this directive is included in a dialog via TemplateRef (rather than being\n // in a Component), the DialogRef isn't available via injection because embedded\n // views cannot be given a custom injector. Instead, we look up the DialogRef by\n // ID. This must occur in `onInit`, as the ID binding for the dialog container won't\n // be resolved at constructor time.\n this.modalRef = getClosestModal(this._elementRef, this._modal.openDialogs)\n }\n }\n\n}\n","import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[seamModalFooterTpl]'\n})\nexport class ModalFooterTplDirective {\n\n constructor(public template: TemplateRef<any>) { }\n\n}\n","import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[seamModalHeaderIconTpl]'\n})\nexport class ModalHeaderIconTplDirective {\n\n constructor(public template: TemplateRef<any>) { }\n\n}\n","import { Directive, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[seamModalHeaderTitleTpl]'\n})\nexport class ModalHeaderTitleTplDirective {\n\n constructor(public template: TemplateRef<any>) { }\n\n}\n","import { Directive, ElementRef, HostBinding, TemplateRef } from '@angular/core'\n\n@Directive({\n selector: '[seamModalTitle]'\n})\nexport class ModalTitleDirective {\n\n @HostBinding('class.modal-title') _modalTitleCss = true\n\n constructor(\n private _elementRef: ElementRef<HTMLElement>\n ) { }\n\n}\n","import { Directive, TemplateRef } from '@angular/core'\n\nimport { ModalRef } from '../modal-ref'\nimport { Modal } from '../modal.service'\n\n// TODO: Make this work for current modal usage.\n\n@Directive({\n selector: '[seamModal]',\n exportAs: 'seamModal'\n})\nexport class ModalDirective {\n\n constructor(\n public template: TemplateRef<HTMLElement>,\n public modal: Modal\n ) { }\n\n open(): void {\n // console.log('[ModalDirective] open')\n const ref = this.modal.openFromTemplate(this.template)\n ref.backdropClick().subscribe(e => console.log('backdropClick', e))\n }\n\n}\n","import { Component, HostBinding, OnInit } from '@angular/core'\n\n@Component({\n selector: 'seam-modal-body',\n templateUrl: './modal-body.component.html',\n styleUrls: ['./modal-body.component.scss']\n})\nexport class ModalBodyComponent implements OnInit {\n\n @HostBinding('class.modal-body') _modalBodyCss = true\n @HostBinding('class.p-3') _paddingCss = true\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { animate, AnimationEvent, state, style, transition, trigger } from '@angular/animations'\nimport { FocusTrapFactory } from '@angular/cdk/a11y'\nimport { BasePortalOutlet, CdkPortalOutlet, ComponentPortal, TemplatePortal } from '@angular/cdk/portal'\nimport { DOCUMENT } from '@angular/common'\nimport {\n ChangeDetectorRef,\n Component,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n HostBinding,\n HostListener,\n Inject,\n OnDestroy,\n Optional,\n ViewChild\n} from '@angular/core'\nimport { Subject } from 'rxjs'\nimport { distinctUntilChanged } from 'rxjs/operators'\n\nimport { ModalConfig } from '../modal-config'\n\nexport function throwDialogContentAlreadyAttachedError() {\n throw Error('Attempting to attach dialog content after content is already attached')\n}\n\n/**\n * Internal component that wraps user-provided dialog content.\n * @docs-private\n */\n@Component({\n selector: 'seam-modal-container',\n templateUrl: './modal-container.component.html',\n styleUrls: ['./modal-container.component.scss'],\n animations: [\n trigger('dialog', [\n state('enter', style({opacity: 1})),\n state('exit, void', style({opacity: 0})),\n transition('* => enter', animate('{{enterAnimationDuration}}')),\n transition('* => exit, * => void', animate('{{exitAnimationDuration}}')),\n ])\n ],\n // tslint:disable:use-host-property-decorator\n host: {\n '[@dialog]': `{\n value: _state,\n params: {\n enterAnimationDuration: _config.enterAnimationDuration,\n exitAnimationDuration: _config.exitAnimationDuration\n }\n }`,\n '(@dialog.start)': '_onAnimationStart($event)',\n '(@dialog.done)': '_animationDone.next($event)',\n },\n // tslint:enable:use-host-property-decorator\n})\nexport class ModalContainerComponent extends BasePortalOutlet implements OnDestroy {\n\n @HostBinding('attr.id') get _idAttr() { return this._id }\n\n // @HostBinding is used in the class as it is expected to be extended. Since @Component decorator\n // metadata is not inherited by child classes, instead the host binding data is defined in a way\n // that can be inherited.\n // tslint:disable:no-host-decorator-in-concrete\n @HostBinding('attr.aria-label') get _ariaLabel() { return this._config.ariaLabel || null }\n\n @HostBinding('attr.aria-describedby')\n get _ariaDescribedBy() { return this._config.ariaDescribedBy }\n\n @HostBinding('attr.role') get _role() { return this._config.role }\n\n // @HostBinding('attr.tabindex') get _tabindex() { return -1 }\n\n @HostBinding('class.seam-modal-container') _seamModalContainer = true\n\n _id: string | undefined | null\n\n constructor(\n private _elementRef: ElementRef<HTMLElement>,\n private _focusTrapFactory: FocusTrapFactory,\n private _changeDetectorRef: ChangeDetectorRef,\n @Optional() @Inject(DOCUMENT) private _document: any,\n /** The dialog configuration. */\n public _config: ModalConfig) {\n super()\n\n // We use a Subject with a distinctUntilChanged, rather than a callback attached to .done,\n // because some browsers fire the done event twice and we don't want to emit duplicate events.\n // See: https://github.com/angular/angular/issues/24084\n this._animationDone.pipe(distinctUntilChanged((x, y) => {\n return x.fromState === y.fromState && x.toState === y.toState\n })).subscribe(event => {\n // Emit lifecycle events based on animation `done` callback.\n if (event.toState === 'enter') {\n this._autoFocusFirstTabbableElement()\n this._afterEnter.next()\n this._afterEnter.complete()\n }\n\n if (event.fromState === 'enter' && (event.toState === 'void' || event.toState === 'exit')) {\n this._returnFocusAfterDialog()\n this._afterExit.next()\n this._afterExit.complete()\n }\n })\n }\n\n /** State of the dialog animation. */\n _state: 'void' | 'enter' | 'exit' = 'enter'\n\n /** Element that was focused before the dialog was opened. Save this to restore upon close. */\n private _elementFocusedBeforeDialogWasOpened: HTMLElement | null = null\n\n /** The class that traps and manages focus within the dialog. */\n private _focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement, false)\n // tslint:disable:no-host-decorator-in-concrete\n\n @HostBinding('class.modal-dialog') _modalDialog = true\n @HostBinding('class.modal-dialog-centered') _modalDialogCentered = true\n\n @HostBinding('class.modal-sm') get _modalDialogSm() { return this._config.modalSize === 'sm' }\n @HostBinding('class.modal-lg') get _modalDialogLg() { return this._config.modalSize === 'lg' }\n @HostBinding('class.modal-xl') get _modalDialogXl() { return this._config.modalSize === 'xl' }\n\n /** The portal host inside of this container into which the dialog content will be loaded. */\n @ViewChild(CdkPortalOutlet /*, { static: true }*/, { static: true }) _portalHost?: CdkPortalOutlet\n\n /** A subject emitting before the dialog enters the view. */\n _beforeEnter: Subject<void> = new Subject()\n\n /** A subject emitting after the dialog enters the view. */\n _afterEnter: Subject<void> = new Subject()\n\n /** A subject emitting before the dialog exits the view. */\n _beforeExit: Subject<void> = new Subject()\n\n /** A subject emitting after the dialog exits the view. */\n _afterExit: Subject<void> = new Subject()\n\n /** Stream of animation `done` events. */\n _animationDone = new Subject<AnimationEvent>()\n\n // NOTE: For current bootstrap style modal\n @HostListener('click', [ '$event' ])\n _onClick(event: UIEvent) {\n event.stopPropagation()\n }\n\n /** Destroy focus trap to place focus back to the element focused before the dialog opened. */\n ngOnDestroy() {\n this._focusTrap.destroy()\n this._animationDone.complete()\n }\n\n /**\n * Attach a ComponentPortal as content to this dialog container.\n * @param portal Portal to be attached as the dialog content.\n */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n if (!this._portalHost) {\n throw Error(`_portalHost not found.`)\n }\n\n if (this._portalHost.hasAttached()) {\n throwDialogContentAlreadyAttachedError()\n }\n\n this._savePreviouslyFocusedElement()\n return this._portalHost.attachComponentPortal(portal)\n }\n\n /**\n * Attach a TemplatePortal as content to this dialog container.\n * @param portal Portal to be attached as the dialog content.\n */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n if (!this._portalHost) {\n throw Error(`_portalHost not found.`)\n }\n\n if (this._portalHost.hasAttached()) {\n throwDialogContentAlreadyAttachedError()\n }\n\n this._savePreviouslyFocusedElement()\n return this._portalHost.attachTemplatePortal(portal)\n }\n\n /** Emit lifecycle events based on animation `start` callback. */\n _onAnimationStart(event: AnimationEvent) {\n if (event.toState === 'enter') {\n this._beforeEnter.next()\n this._beforeEnter.complete()\n }\n if (event.fromState === 'enter' && (event.toState === 'void' || event.toState === 'exit')) {\n this._beforeExit.next()\n this._beforeExit.complete()\n }\n }\n\n /** Starts the dialog exit animation. */\n _startExiting(): void {\n this._state = 'exit'\n\n // Mark the container for check so it can react if the\n // view container is using OnPush change detection.\n this._changeDetectorRef.markForCheck()\n }\n\n /** Saves a reference to the element that was focused before the dialog was opened. */\n private _savePreviouslyFocusedElement() {\n if (this._document) {\n this._elementFocusedBeforeDialogWasOpened = this._document.activeElement as HTMLElement\n\n // Move focus onto the dialog immediately in order to prevent the user from accidentally\n // opening multiple dialogs at the same time. Needs to be async, because the element\n // may not be focusable immediately.\n Promise.resolve().then(() => this._elementRef.nativeElement.focus())\n }\n }\n\n /**\n * Autofocus the first tabbable element inside of the dialog, if there is not a tabbable element,\n * focus the dialog instead.\n */\n private _autoFocusFirstTabbableElement() {\n // If were to attempt to focus immediately, then the content of the dialog would not yet be\n // ready in instances where change detection has to run first. To deal with this, we simply\n // wait for the microtask queue to be empty.\n if (this._config.autoFocus) {\n this._focusTrap.focusInitialElementWhenReady().then(hasMovedFocus => {\n // If we didn't find any focusable elements inside the dialog, focus the\n // container so the user can't tab into other elements behind it.\n if (!hasMovedFocus) {\n this._elementRef.nativeElement.focus()\n }\n })\n }\n }\n\n /** Returns the focus to the element focused before the dialog was open. */\n private _returnFocusAfterDialog() {\n const toFocus = this._elementFocusedBeforeDialogWasOpened\n // We need the extra check, because IE can set the `activeElement` to null in some cases.\n if (toFocus && typeof toFocus.focus === 'function') {\n toFocus.focus()\n }\n }\n\n public getNativeElement(): HTMLElement {\n return this._elementRef.nativeElement\n }\n\n}\n","import { Component, HostBinding, OnInit } from '@angular/core'\n\n@Component({\n selector: 'seam-modal-footer',\n templateUrl: './modal-footer.component.html',\n styleUrls: ['./modal-footer.component.scss']\n})\nexport class ModalFooterComponent implements OnInit {\n\n @HostBinding('class.modal-footer') _modalFooterCss = true\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { Component, ContentChild, HostBinding, Input, OnInit } from '@angular/core'\n\nimport { ModalCloseDirective } from '../directives/modal-close.directive'\nimport { ModalTitleDirective } from '../directives/modal-title.directive'\n\n@Component({\n selector: 'seam-modal-header',\n templateUrl: './modal-header.component.html',\n styleUrls: ['./modal-header.component.scss']\n})\nexport class ModalHeaderComponent implements OnInit {\n\n @HostBinding('class.modal-header') _modalHeaderCss = true\n\n @Input() hasCloseBtn = true\n\n @ContentChild(ModalTitleDirective, { static: true }) _titleDirective?: ModalTitleDirective\n @ContentChild(ModalCloseDirective, { static: true }) _closeDirective?: ModalCloseDirective\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","import { OverlayRef } from '@angular/cdk/overlay'\nimport { EventEmitter, InjectionToken } from '@angular/core'\nimport { FormGroup } from '@angular/forms'\n\nexport interface IModalContainer {\n\n /**\n * Modal will close if a key is pressed with any of these key codes.\n *\n * default: [ 27 ] // 27 = ESCAPE\n */\n closeOnKeyPressed: number[]\n\n /** Emits when the modal has closed. */\n modalClosed: EventEmitter<void>\n\n /** Reference to the cdk OverlayRef. */\n _overlayRef?: OverlayRef\n\n /** Makes the modal container a form with this formGroup. */\n form: FormGroup | undefined | null\n\n /** Emit the `(ngSubmit)` event. NOTE: Only if `form` is defined. */\n formSubmit: EventEmitter<void>\n\n /** Opens the modal. */\n open(): void\n\n /** Closes the modal. */\n close(): void\n\n}\n\nexport const THESEAM_MODAL_CONTAINER = new InjectionToken<IModalContainer>('seamModalContainer')\n","import { BooleanInput } from '@angular/cdk/coercion'\nimport { ESCAPE } from '@angular/cdk/keycodes'\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay'\nimport { ComponentPortal, TemplatePortal } from '@angular/cdk/portal'\nimport {\n AfterViewInit, Component, ContentChild, EventEmitter, forwardRef, Input,\n isDevMode, OnDestroy, OnInit, Output, TemplateRef, ViewChild, ViewContainerRef\n} from '@angular/core'\nimport { FormGroup } from '@angular/forms'\nimport { ActivatedRoute } from '@angular/router'\nimport { filter } from 'rxjs/operators'\n\nimport { IconProp } from '@fortawesome/fontawesome-svg-core'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\nimport { SeamIcon } from '@theseam/ui-common/icon'\n\nimport { ModalFooterTplDirective } from '../directives/modal-footer-tpl.directive'\nimport { ModalHeaderIconTplDirective } from '../directives/modal-header-icon-tpl.directive'\nimport { ModalHeaderTitleTplDirective } from '../directives/modal-header-title-tpl.directive'\nimport { IModalContainer, THESEAM_MODAL_CONTAINER } from '../modal.models'\n\nexport const LIB_MODAL: any = {\n provide: THESEAM_MODAL_CONTAINER,\n // tslint:disable-next-line:no-use-before-declare\n useExisting: forwardRef(() => ModalComponent),\n multi: true,\n}\n\n@Component({\n selector: 'seam-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n providers: [ LIB_MODAL ]\n})\nexport class ModalComponent implements OnInit, OnDestroy, AfterViewInit, IModalContainer {\n static ngAcceptInputType_showCloseBtn: BooleanInput\n\n @Input()\n set closeOnKeyPressed(value: number[]) { this._closeOnKeyPressed = Array.isArray(value) ? value : [] }\n get closeOnKeyPressed(): number[] { return this._closeOnKeyPressed }\n private _closeOnKeyPressed: number[] = [ ESCAPE ]\n\n @Input() @InputBoolean() showCloseBtn: boolean = true\n\n @Input() titleText: string | undefined | null\n\n @Input()\n get icon(): SeamIcon | undefined { return this._iconUrl || this._iconObj }\n set icon(value: SeamIcon | undefined) {\n if (typeof value === 'string') {\n this._iconUrl = value\n this._iconObj = undefined\n } else {\n this._iconUrl = undefined\n this._iconObj = value\n }\n }\n\n public _iconUrl: string | undefined\n public _iconObj: IconProp | undefined\n\n @Input()\n get iconTpl(): TemplateRef<HTMLElement> | undefined {\n return this._iconTpl || (this._queryIconTpl && this._queryIconTpl.template)\n }\n set iconTpl(value: TemplateRef<HTMLElement> | undefined) {\n this._iconTpl = value\n }\n private _iconTpl?: TemplateRef<HTMLElement>\n\n @Input()\n get titleTpl(): TemplateRef<HTMLElement> | undefined {\n return this._titleTpl || (this._queryTitleTpl && this._queryTitleTpl.template)\n }\n set titleTpl(value: TemplateRef<HTMLElement> | undefined) {\n this._titleTpl = value\n }\n private _titleTpl?: TemplateRef<HTMLElement>\n\n @Input()\n get footerTpl(): TemplateRef<HTMLElement> | undefined {\n return this._footerTpl || (this._queryFooterTpl && this._queryFooterTpl.template)\n }\n set footerTpl(value: TemplateRef<HTMLElement> | undefined) {\n this._footerTpl = value\n }\n private _footerTpl?: TemplateRef<HTMLElement>\n\n @Output() modalClosed = new EventEmitter<void>()\n\n _overlayRef?: OverlayRef\n\n @Output() overlayDetached = new EventEmitter<void>()\n\n @ContentChild(ModalHeaderIconTplDirective, { static: true }) _queryIconTpl?: ModalHeaderIconTplDirective\n @ContentChild(ModalHeaderTitleTplDirective, { static: true }) _queryTitleTpl?: ModalHeaderTitleTplDirective\n @ContentChild(ModalFooterTplDirective, { static: true }) _queryFooterTpl?: ModalFooterTplDirective\n\n @ViewChild('modalTpl', { static: true }) _modalTpl?: TemplateRef<HTMLElement>\n\n /** Makes the modal container a form with this formGroup. */\n @Input() form: FormGroup | undefined | null\n\n /** Emit the `(ngSubmit)` event. NOTE: Only if `form` is defined. */\n @Output() formSubmit = new EventEmitter<void>()\n\n constructor(\n private _viewContainerRef: ViewContainerRef,\n private _overlay: Overlay,\n private _route: ActivatedRoute\n ) {\n if (isDevMode()) {\n // tslint:disable-next-line:max-line-length\n console.warn('seamModal has some issues with its design. Use the Modal service for now, because seamModal will have breaking changes or be removed soon.')\n }\n }\n\n ngOnInit() { }\n\n ngOnDestroy() {\n this.close()\n }\n\n ngAfterViewInit() {\n if (this.isRouteModal()) {\n this.open()\n }\n }\n\n public open(portal?: TemplatePortal | ComponentPortal<{}>) {\n if (this._overlayRef && this._overlayRef.hasAttached()) { return }\n\n const positionStrategy = this._overlay.position()\n .global()\n .centerHorizontally()\n .centerVertically()\n\n this._overlayRef = this._overlay.create({\n hasBackdrop: true,\n positionStrategy: positionStrategy\n })\n\n this._overlayRef.detachments().subscribe(_ => this.overlayDetached.emit())\n\n this._overlayRef.backdropClick().subscribe(_ => this.close())\n\n this._overlayRef.keydownEvents()\n // tslint:disable-next-line:deprecation\n .pipe(filter(e => e.keyCode === ESCAPE))\n .subscribe(_ => this.close())\n\n let portalToAttach = portal\n if (!portalToAttach) {\n if (!this._modalTpl) {\n throw new Error(`_modalTpl not found.`)\n }\n portalToAttach = new TemplatePortal(this._modalTpl, this._viewContainerRef)\n }\n\n this._overlayRef.attach(portalToAttach)\n }\n\n public close() {\n if (!this._overlayRef || !this._overlayRef.hasAttached()) { return }\n\n this._overlayRef.detach()\n\n this.modalClosed.emit()\n }\n\n _onSubmit() {\n this.formSubmit.emit()\n }\n\n public isRouteModal() {\n return this._route.outlet === 'modal'\n }\n\n}\n","import { AfterViewInit, Component, OnDestroy, OnInit, ViewChild } from '@angular/core'\nimport { ActivatedRoute, ActivatedRouteSnapshot, Router } from '@angular/router'\n\n// import { ModalComponent } from '../modal/modal.component'\nimport { Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\nimport { Modal } from '../modal.service'\n\n@Component({\n selector: 'seam-route-modal',\n templateUrl: './route-modal.component.html',\n styleUrls: ['./route-modal.component.scss']\n})\nexport class RouteModalComponent implements OnInit, OnDestroy, AfterViewInit {\n\n private readonly _ngUnsubscribe = new Subject()\n\n // @ViewChild(ModalComponent, { static: true }) _modal: ModalComponent\n\n constructor(\n private _route: ActivatedRoute,\n private _router: Router,\n private _modal: Modal\n ) { }\n\n ngOnInit() {\n this._route.data\n .pipe(\n takeUntil(this._ngUnsubscribe)\n )\n .subscribe(data => {\n // console.log('data', data)\n if (data.routeComponent) {\n // console.log(this._route.snapshot)\n const modalRef = this._modal.openFromComponent(data.routeComponent, {\n modalSize: 'lg',\n data\n })\n modalRef.afterClosed().subscribe(() => {\n const parent = this.getOutletParent()\n this._router.navigate(\n [{ outlets: { modal: null, primary: ['.'] } }],\n // { relativeTo: this._route.parent }\n { relativeTo: parent }\n )\n })\n }\n })\n }\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n ngAfterViewInit() { }\n\n getOutletParent() {\n let route: ActivatedRoute | null = this._route\n while (route && route.outlet !== 'modal') { route = route.parent }\n return route ? route.parent : route\n }\n\n public _onDetached() {\n if (this.isRouteModal()) {\n this._router.navigate(\n [{ outlets: { modal: null, primary: ['.'] } }],\n { relativeTo: this._route.parent }\n )\n }\n }\n\n public isRouteModal() {\n return this._route.outlet === 'modal'\n }\n\n}\n","import { A11yModule } from '@angular/cdk/a11y'\nimport { OverlayModule } from '@angular/cdk/overlay'\nimport { PortalModule } from '@angular/cdk/portal'\nimport { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { ReactiveFormsModule } from '@angular/forms'\nimport { RouterModule } from '@angular/router'\n\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome'\n\nimport { ModalCloseDirective } from './directives/modal-close.directive'\nimport { ModalFooterTplDirective } from './directives/modal-footer-tpl.directive'\nimport { ModalHeaderIconTplDirective } from './directives/modal-header-icon-tpl.directive'\nimport { ModalHeaderTitleTplDirective } from './directives/modal-header-title-tpl.directive'\nimport { ModalTitleDirective } from './directives/modal-title.directive'\nimport { ModalDirective } from './directives/modal.directive'\nimport { ModalBodyComponent } from './modal-body/modal-body.component'\nimport { ModalConfig } from './modal-config'\nimport { ModalContainerComponent } from './modal-container/modal-container.component'\nimport { ModalFooterComponent } from './modal-footer/modal-footer.component'\nimport { ModalHeaderComponent } from './modal-header/modal-header.component'\nimport {\n MODAL_CONFIG,\n MODAL_CONTAINER,\n MODAL_REF,\n THESEAM_MODAL_SCROLL_STRATEGY_PROVIDER\n} from './modal-injectors'\nimport { ModalRef } from './modal-ref'\nimport { Modal } from './modal.service'\nimport { ModalComponent } from './modal/modal.component'\nimport { RouteModalComponent } from './route-modal/route-modal.component'\n\n@NgModule({\n declarations: [\n ModalComponent,\n ModalFooterTplDirective,\n ModalHeaderIconTplDirective,\n ModalHeaderTitleTplDirective,\n RouteModalComponent,\n ModalDirective,\n ModalContainerComponent,\n ModalHeaderComponent,\n ModalTitleDirective,\n ModalBodyComponent,\n ModalFooterComponent,\n ModalCloseDirective\n ],\n imports: [\n CommonModule,\n OverlayModule,\n FontAwesomeModule,\n RouterModule,\n ReactiveFormsModule,\n PortalModule,\n A11yModule,\n ],\n exports: [\n ModalComponent,\n ModalFooterTplDirective,\n ModalHeaderIconTplDirective,\n ModalHeaderTitleTplDirective,\n RouteModalComponent,\n ModalDirective,\n // Re-export the PortalModule so that people extending the `CdkDialogContainer`\n // don't have to remember to import it or be faced with an unhelpful error.\n PortalModule,\n ModalHeaderComponent,\n ModalTitleDirective,\n ModalBodyComponent,\n ModalFooterComponent,\n ModalCloseDirective\n ],\n providers: [\n Modal,\n THESEAM_MODAL_SCROLL_STRATEGY_PROVIDER,\n { provide: MODAL_REF, useValue: ModalRef },\n { provide: MODAL_CONTAINER, useValue: ModalContainerComponent },\n { provide: MODAL_CONFIG, useValue: ModalConfig },\n ],\n entryComponents: [\n RouteModalComponent,\n ModalContainerComponent\n ],\n})\nexport class TheSeamModalModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["filter","ESCAPE","map","InjectionToken","Overlay","Subject","defer","startWith","switchMap","of","OverlayConfig","PortalInjector","ComponentPortal","TemplatePortal","Directionality","observableOf","Injectable","Injector","Type","Inject","Optional","SkipSelf","Location","OverlayScrollbarsService","TheSeamDynamicComponentLoader","Directive","ElementRef","HostBinding","Input","HostListener","TemplateRef","Component","distinctUntilChanged","BasePortalOutlet","trigger","state","style","transition","animate","FocusTrapFactory","ChangeDetectorRef","DOCUMENT","ViewChild","CdkPortalOutlet","ContentChild","forwardRef","EventEmitter","isDevMode","portal","ViewContainerRef","ActivatedRoute","Output","InputBoolean","takeUntil","Router","NgModule","CommonModule","OverlayModule","FontAwesomeModule","RouterModule","ReactiveFormsModule","PortalModule","A11yModule"],"mappings":"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"}
|