{"version":3,"file":"vendors.async.3c2adae2ecf1464ac637.chunk.js","mappings":";;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACvBA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;AC1MA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;AC1OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["webpack://client-app/./node_modules/aurelia-dialog/dist/native-modules/attach-focus.js","webpack://client-app/./node_modules/aurelia-dialog/dist/native-modules/default-styles.js","webpack://client-app/./node_modules/aurelia-dialog/dist/native-modules/native-dialog-renderer.js","webpack://client-app/./node_modules/aurelia-dialog/dist/native-modules/ux-dialog-body.js","webpack://client-app/./node_modules/aurelia-dialog/dist/native-modules/ux-dialog-footer.js","webpack://client-app/./node_modules/aurelia-dialog/dist/native-modules/ux-dialog-header.js","webpack://client-app/./node_modules/aurelia-dialog/dist/native-modules/ux-dialog-renderer.js","webpack://client-app/./node_modules/aurelia-dialog/dist/native-modules/ux-dialog.js"],"sourcesContent":["import { DOM } from 'aurelia-pal';\n\nvar AttachFocus = (function () {\r\n function AttachFocus(element) {\r\n this.element = element;\r\n this.value = true;\r\n }\r\n AttachFocus.inject = function () {\r\n return [DOM.Element];\r\n };\r\n AttachFocus.prototype.attached = function () {\r\n if (this.value === '' || (this.value && this.value !== 'false')) {\r\n this.element.focus();\r\n }\r\n };\r\n AttachFocus.$resource = {\r\n type: 'attribute',\r\n name: 'attach-focus'\r\n };\r\n return AttachFocus;\r\n}());\n\nexport { AttachFocus };\n//# sourceMappingURL=attach-focus.js.map\n","var css = \"ux-dialog-overlay{bottom:0;left:0;position:fixed;top:0;right:0;opacity:0}ux-dialog-overlay.active{opacity:1}ux-dialog-container{display:block;transition:opacity .2s linear;opacity:0;overflow-x:hidden;overflow-y:auto;position:fixed;top:0;right:0;bottom:0;left:0;-webkit-overflow-scrolling:touch}ux-dialog-container.active{opacity:1}ux-dialog-container>div{padding:30px}ux-dialog-container>div>div{width:100%;display:block;min-width:300px;width:-moz-fit-content;width:-webkit-fit-content;width:fit-content;height:-moz-fit-content;height:-webkit-fit-content;height:fit-content;margin:auto}ux-dialog-container,ux-dialog-container>div,ux-dialog-container>div>div{outline:0}ux-dialog{width:100%;display:table;box-shadow:0 5px 15px rgba(0,0,0,.5);border:1px solid rgba(0,0,0,.2);border-radius:5px;padding:3;min-width:300px;width:-moz-fit-content;width:-webkit-fit-content;width:fit-content;height:-moz-fit-content;height:-webkit-fit-content;height:fit-content;margin:auto;border-image-source:none;border-image-slice:100%;border-image-width:1;border-image-outset:0;border-image-repeat:initial;background:#fff}ux-dialog>ux-dialog-header{display:block;padding:16px;border-bottom:1px solid #e5e5e5}ux-dialog>ux-dialog-header>button{float:right;border:none;display:block;width:32px;height:32px;background:none;font-size:22px;line-height:16px;margin:-14px -16px 0 0;padding:0;cursor:pointer}ux-dialog>ux-dialog-body{display:block;padding:16px}ux-dialog>ux-dialog-footer{display:block;padding:6px;border-top:1px solid #e5e5e5;text-align:right}ux-dialog>ux-dialog-footer button{color:#333;background-color:#fff;padding:6px 12px;font-size:14px;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid #ccc;border-radius:4px;margin:5px 0 5px 5px}ux-dialog>ux-dialog-footer button:disabled{cursor:default;opacity:.45}ux-dialog>ux-dialog-footer button:hover:enabled{color:#333;background-color:#e6e6e6;border-color:#adadad}.ux-dialog-open{overflow:hidden}\";\n\nexport default css;\n//# sourceMappingURL=default-styles.js.map\n","import { DOM } from 'aurelia-pal';\nimport { transient } from 'aurelia-dependency-injection';\nimport { transitionEvent, hasTransition } from './ux-dialog-renderer.js';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n\r\nfunction __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}\n\nvar containerTagName = 'dialog';\r\nvar body;\r\nvar NativeDialogRenderer = (function () {\r\n function NativeDialogRenderer() {\r\n }\r\n NativeDialogRenderer_1 = NativeDialogRenderer;\r\n NativeDialogRenderer.keyboardEventHandler = function (e) {\r\n var key = (e.code || e.key) === 'Enter' || e.keyCode === 13\r\n ? 'Enter'\r\n : undefined;\r\n if (!key) {\r\n return;\r\n }\r\n var top = NativeDialogRenderer_1.dialogControllers[NativeDialogRenderer_1.dialogControllers.length - 1];\r\n if (!top || !top.settings.keyboard) {\r\n return;\r\n }\r\n var keyboard = top.settings.keyboard;\r\n if (key === 'Enter' && (keyboard === key || (Array.isArray(keyboard) && keyboard.indexOf(key) > -1))) {\r\n top.ok();\r\n }\r\n };\r\n NativeDialogRenderer.trackController = function (dialogController) {\r\n if (!NativeDialogRenderer_1.dialogControllers.length) {\r\n DOM.addEventListener('keyup', NativeDialogRenderer_1.keyboardEventHandler, false);\r\n }\r\n NativeDialogRenderer_1.dialogControllers.push(dialogController);\r\n };\r\n NativeDialogRenderer.untrackController = function (dialogController) {\r\n var i = NativeDialogRenderer_1.dialogControllers.indexOf(dialogController);\r\n if (i !== -1) {\r\n NativeDialogRenderer_1.dialogControllers.splice(i, 1);\r\n }\r\n if (!NativeDialogRenderer_1.dialogControllers.length) {\r\n DOM.removeEventListener('keyup', NativeDialogRenderer_1.keyboardEventHandler, false);\r\n }\r\n };\r\n NativeDialogRenderer.prototype.getOwnElements = function (parent, selector) {\r\n var elements = parent.querySelectorAll(selector);\r\n var own = [];\r\n for (var i = 0; i < elements.length; i++) {\r\n if (elements[i].parentElement === parent) {\r\n own.push(elements[i]);\r\n }\r\n }\r\n return own;\r\n };\r\n NativeDialogRenderer.prototype.attach = function (dialogController) {\r\n if (dialogController.settings.restoreFocus) {\r\n this.lastActiveElement = DOM.activeElement;\r\n }\r\n var spacingWrapper = DOM.createElement('div');\r\n spacingWrapper.appendChild(this.anchor);\r\n this.dialogContainer = DOM.createElement(containerTagName);\r\n if (window.dialogPolyfill) {\r\n window.dialogPolyfill.registerDialog(this.dialogContainer);\r\n }\r\n this.dialogContainer.appendChild(spacingWrapper);\r\n var lastContainer = this.getOwnElements(this.host, containerTagName).pop();\r\n if (lastContainer && lastContainer.parentElement) {\r\n this.host.insertBefore(this.dialogContainer, lastContainer.nextSibling);\r\n }\r\n else {\r\n this.host.insertBefore(this.dialogContainer, this.host.firstChild);\r\n }\r\n dialogController.controller.attached();\r\n this.host.classList.add('ux-dialog-open');\r\n };\r\n NativeDialogRenderer.prototype.detach = function (dialogController) {\r\n if (this.dialogContainer.hasAttribute('open')) {\r\n this.dialogContainer.close();\r\n }\r\n this.host.removeChild(this.dialogContainer);\r\n dialogController.controller.detached();\r\n if (!NativeDialogRenderer_1.dialogControllers.length) {\r\n this.host.classList.remove('ux-dialog-open');\r\n }\r\n if (dialogController.settings.restoreFocus) {\r\n dialogController.settings.restoreFocus(this.lastActiveElement);\r\n }\r\n };\r\n NativeDialogRenderer.prototype.setAsActive = function () {\r\n this.dialogContainer.showModal();\r\n this.dialogContainer.classList.add('active');\r\n };\r\n NativeDialogRenderer.prototype.setAsInactive = function () {\r\n this.dialogContainer.classList.remove('active');\r\n };\r\n NativeDialogRenderer.prototype.setupEventHandling = function (dialogController) {\r\n this.stopPropagation = function (e) { e._aureliaDialogHostClicked = true; };\r\n this.closeDialogClick = function (e) {\r\n if (dialogController.settings.overlayDismiss && !e._aureliaDialogHostClicked) {\r\n dialogController.cancel();\r\n }\r\n };\r\n this.dialogCancel = function (e) {\r\n var keyboard = dialogController.settings.keyboard;\r\n var key = 'Escape';\r\n if (keyboard === true || keyboard === key || (Array.isArray(keyboard) && keyboard.indexOf(key) > -1)) {\r\n dialogController.cancel();\r\n }\r\n else {\r\n e.preventDefault();\r\n }\r\n };\r\n var mouseEvent = dialogController.settings.mouseEvent || 'click';\r\n this.dialogContainer.addEventListener(mouseEvent, this.closeDialogClick);\r\n this.dialogContainer.addEventListener('cancel', this.dialogCancel);\r\n this.anchor.addEventListener(mouseEvent, this.stopPropagation);\r\n };\r\n NativeDialogRenderer.prototype.clearEventHandling = function (dialogController) {\r\n var mouseEvent = dialogController.settings.mouseEvent || 'click';\r\n this.dialogContainer.removeEventListener(mouseEvent, this.closeDialogClick);\r\n this.dialogContainer.removeEventListener('cancel', this.dialogCancel);\r\n this.anchor.removeEventListener(mouseEvent, this.stopPropagation);\r\n };\r\n NativeDialogRenderer.prototype.awaitTransition = function (setActiveInactive, ignore) {\r\n var _this = this;\r\n return new Promise(function (resolve) {\r\n var renderer = _this;\r\n var eventName = transitionEvent();\r\n function onTransitionEnd(e) {\r\n if (e.target !== renderer.dialogContainer) {\r\n return;\r\n }\r\n renderer.dialogContainer.removeEventListener(eventName, onTransitionEnd);\r\n resolve();\r\n }\r\n if (ignore || !hasTransition(_this.dialogContainer)) {\r\n resolve();\r\n }\r\n else {\r\n _this.dialogContainer.addEventListener(eventName, onTransitionEnd);\r\n }\r\n setActiveInactive();\r\n });\r\n };\r\n NativeDialogRenderer.prototype.getDialogContainer = function () {\r\n return this.anchor || (this.anchor = DOM.createElement('div'));\r\n };\r\n NativeDialogRenderer.prototype.showDialog = function (dialogController) {\r\n var _this = this;\r\n if (!body) {\r\n body = DOM.querySelector('body');\r\n }\r\n if (dialogController.settings.host) {\r\n this.host = dialogController.settings.host;\r\n }\r\n else {\r\n this.host = body;\r\n }\r\n var settings = dialogController.settings;\r\n this.attach(dialogController);\r\n if (typeof settings.position === 'function') {\r\n settings.position(this.dialogContainer);\r\n }\r\n NativeDialogRenderer_1.trackController(dialogController);\r\n this.setupEventHandling(dialogController);\r\n return this.awaitTransition(function () { return _this.setAsActive(); }, dialogController.settings.ignoreTransitions);\r\n };\r\n NativeDialogRenderer.prototype.hideDialog = function (dialogController) {\r\n var _this = this;\r\n this.clearEventHandling(dialogController);\r\n NativeDialogRenderer_1.untrackController(dialogController);\r\n return this.awaitTransition(function () { return _this.setAsInactive(); }, dialogController.settings.ignoreTransitions)\r\n .then(function () { _this.detach(dialogController); });\r\n };\r\n var NativeDialogRenderer_1;\r\n NativeDialogRenderer.dialogControllers = [];\r\n NativeDialogRenderer = NativeDialogRenderer_1 = __decorate([\r\n transient()\r\n ], NativeDialogRenderer);\r\n return NativeDialogRenderer;\r\n}());\n\nexport { NativeDialogRenderer };\n//# sourceMappingURL=native-dialog-renderer.js.map\n","var UxDialogBody = (function () {\r\n function UxDialogBody() {\r\n }\r\n UxDialogBody.$view = \"\";\r\n UxDialogBody.$resource = 'ux-dialog-body';\r\n return UxDialogBody;\r\n}());\n\nexport { UxDialogBody };\n//# sourceMappingURL=ux-dialog-body.js.map\n","import { d as DialogController } from './chunk.js';\n\nvar UxDialogFooter = (function () {\r\n function UxDialogFooter(controller) {\r\n this.controller = controller;\r\n this.buttons = [];\r\n this.useDefaultButtons = false;\r\n }\r\n UxDialogFooter.isCancelButton = function (value) {\r\n return value === 'Cancel';\r\n };\r\n UxDialogFooter.prototype.close = function (buttonValue) {\r\n if (UxDialogFooter.isCancelButton(buttonValue)) {\r\n this.controller.cancel(buttonValue);\r\n }\r\n else {\r\n this.controller.ok(buttonValue);\r\n }\r\n };\r\n UxDialogFooter.prototype.useDefaultButtonsChanged = function (newValue) {\r\n if (newValue) {\r\n this.buttons = ['Cancel', 'Ok'];\r\n }\r\n };\r\n UxDialogFooter.inject = [DialogController];\r\n UxDialogFooter.$view = \"\\n \\n 0\\\">\\n \\n \\n\";\r\n UxDialogFooter.$resource = {\r\n name: 'ux-dialog-footer',\r\n bindables: ['buttons', 'useDefaultButtons']\r\n };\r\n return UxDialogFooter;\r\n}());\n\nexport { UxDialogFooter };\n//# sourceMappingURL=ux-dialog-footer.js.map\n","import { d as DialogController } from './chunk.js';\n\nvar UxDialogHeader = (function () {\r\n function UxDialogHeader(controller) {\r\n this.controller = controller;\r\n }\r\n UxDialogHeader.prototype.bind = function () {\r\n if (typeof this.showCloseButton !== 'boolean') {\r\n this.showCloseButton = !this.controller.settings.lock;\r\n }\r\n };\r\n UxDialogHeader.inject = [DialogController];\r\n UxDialogHeader.$view = \"\\n \\n\\n \\n\";\r\n UxDialogHeader.$resource = {\r\n name: 'ux-dialog-header',\r\n bindables: ['showCloseButton']\r\n };\r\n return UxDialogHeader;\r\n}());\n\nexport { UxDialogHeader };\n//# sourceMappingURL=ux-dialog-header.js.map\n","import { DOM } from 'aurelia-pal';\nimport { transient } from 'aurelia-dependency-injection';\n\nvar containerTagName = 'ux-dialog-container';\r\nvar overlayTagName = 'ux-dialog-overlay';\r\nvar transitionEvent = (function () {\r\n var transition;\r\n return function () {\r\n if (transition) {\r\n return transition;\r\n }\r\n var el = DOM.createElement('fakeelement');\r\n var transitions = {\r\n transition: 'transitionend',\r\n OTransition: 'oTransitionEnd',\r\n MozTransition: 'transitionend',\r\n WebkitTransition: 'webkitTransitionEnd'\r\n };\r\n for (var t in transitions) {\r\n if (el.style[t] !== undefined) {\r\n transition = transitions[t];\r\n return transition;\r\n }\r\n }\r\n return '';\r\n };\r\n})();\r\nvar hasTransition = (function () {\r\n var unprefixedName = 'transitionDuration';\r\n var prefixedNames = ['webkitTransitionDuration', 'oTransitionDuration'];\r\n var el;\r\n var transitionDurationName;\r\n return function (element) {\r\n if (!el) {\r\n el = DOM.createElement('fakeelement');\r\n if (unprefixedName in el.style) {\r\n transitionDurationName = unprefixedName;\r\n }\r\n else {\r\n transitionDurationName = prefixedNames.find(function (prefixed) { return (prefixed in el.style); });\r\n }\r\n }\r\n return !!transitionDurationName && !!(DOM.getComputedStyle(element)[transitionDurationName]\r\n .split(',')\r\n .find(function (duration) { return !!parseFloat(duration); }));\r\n };\r\n})();\r\nvar body;\r\nfunction getActionKey(e) {\r\n if ((e.code || e.key) === 'Escape' || e.keyCode === 27) {\r\n return 'Escape';\r\n }\r\n if ((e.code || e.key) === 'Enter' || e.keyCode === 13) {\r\n return 'Enter';\r\n }\r\n return undefined;\r\n}\r\nvar DialogRenderer = (function () {\r\n function DialogRenderer() {\r\n }\r\n DialogRenderer.keyboardEventHandler = function (e) {\r\n var key = getActionKey(e);\r\n if (!key) {\r\n return;\r\n }\r\n var top = DialogRenderer.dialogControllers[DialogRenderer.dialogControllers.length - 1];\r\n if (!top || !top.settings.keyboard) {\r\n return;\r\n }\r\n var keyboard = top.settings.keyboard;\r\n if (key === 'Escape'\r\n && (keyboard === true || keyboard === key || (Array.isArray(keyboard) && keyboard.indexOf(key) > -1))) {\r\n top.cancel();\r\n }\r\n else if (key === 'Enter' && (keyboard === key || (Array.isArray(keyboard) && keyboard.indexOf(key) > -1))) {\r\n top.ok();\r\n }\r\n };\r\n DialogRenderer.trackController = function (dialogController) {\r\n var trackedDialogControllers = DialogRenderer.dialogControllers;\r\n if (!trackedDialogControllers.length) {\r\n DOM.addEventListener(dialogController.settings.keyEvent || 'keyup', DialogRenderer.keyboardEventHandler, false);\r\n }\r\n trackedDialogControllers.push(dialogController);\r\n };\r\n DialogRenderer.untrackController = function (dialogController) {\r\n var trackedDialogControllers = DialogRenderer.dialogControllers;\r\n var i = trackedDialogControllers.indexOf(dialogController);\r\n if (i !== -1) {\r\n trackedDialogControllers.splice(i, 1);\r\n }\r\n if (!trackedDialogControllers.length) {\r\n DOM.removeEventListener(dialogController.settings.keyEvent || 'keyup', DialogRenderer.keyboardEventHandler, false);\r\n }\r\n };\r\n DialogRenderer.prototype.getOwnElements = function (parent, selector) {\r\n var elements = parent.querySelectorAll(selector);\r\n var own = [];\r\n for (var i = 0; i < elements.length; i++) {\r\n if (elements[i].parentElement === parent) {\r\n own.push(elements[i]);\r\n }\r\n }\r\n return own;\r\n };\r\n DialogRenderer.prototype.attach = function (dialogController) {\r\n if (dialogController.settings.restoreFocus) {\r\n this.lastActiveElement = DOM.activeElement;\r\n }\r\n var spacingWrapper = DOM.createElement('div');\r\n spacingWrapper.appendChild(this.anchor);\r\n var dialogContainer = this.dialogContainer = DOM.createElement(containerTagName);\r\n dialogContainer.appendChild(spacingWrapper);\r\n var dialogOverlay = this.dialogOverlay = DOM.createElement(overlayTagName);\r\n var zIndex = typeof dialogController.settings.startingZIndex === 'number'\r\n ? dialogController.settings.startingZIndex + ''\r\n : 'auto';\r\n dialogOverlay.style.zIndex = zIndex;\r\n dialogContainer.style.zIndex = zIndex;\r\n var host = this.host;\r\n var lastContainer = this.getOwnElements(host, containerTagName).pop();\r\n if (lastContainer && lastContainer.parentElement) {\r\n host.insertBefore(dialogContainer, lastContainer.nextSibling);\r\n host.insertBefore(dialogOverlay, lastContainer.nextSibling);\r\n }\r\n else {\r\n host.insertBefore(dialogContainer, host.firstChild);\r\n host.insertBefore(dialogOverlay, host.firstChild);\r\n }\r\n dialogController.controller.attached();\r\n host.classList.add('ux-dialog-open');\r\n };\r\n DialogRenderer.prototype.detach = function (dialogController) {\r\n var host = this.host;\r\n host.removeChild(this.dialogOverlay);\r\n host.removeChild(this.dialogContainer);\r\n dialogController.controller.detached();\r\n if (!DialogRenderer.dialogControllers.length) {\r\n host.classList.remove('ux-dialog-open');\r\n }\r\n if (dialogController.settings.restoreFocus) {\r\n dialogController.settings.restoreFocus(this.lastActiveElement);\r\n }\r\n };\r\n DialogRenderer.prototype.setAsActive = function () {\r\n this.dialogOverlay.classList.add('active');\r\n this.dialogContainer.classList.add('active');\r\n };\r\n DialogRenderer.prototype.setAsInactive = function () {\r\n this.dialogOverlay.classList.remove('active');\r\n this.dialogContainer.classList.remove('active');\r\n };\r\n DialogRenderer.prototype.setupEventHandling = function (dialogController) {\r\n this.stopPropagation = function (e) { e._aureliaDialogHostClicked = true; };\r\n this.closeDialogClick = function (e) {\r\n if (dialogController.settings.overlayDismiss && !e._aureliaDialogHostClicked) {\r\n dialogController.cancel();\r\n }\r\n };\r\n var mouseEvent = dialogController.settings.mouseEvent || 'click';\r\n this.dialogContainer.addEventListener(mouseEvent, this.closeDialogClick);\r\n this.anchor.addEventListener(mouseEvent, this.stopPropagation);\r\n };\r\n DialogRenderer.prototype.clearEventHandling = function (dialogController) {\r\n var mouseEvent = dialogController.settings.mouseEvent || 'click';\r\n this.dialogContainer.removeEventListener(mouseEvent, this.closeDialogClick);\r\n this.anchor.removeEventListener(mouseEvent, this.stopPropagation);\r\n };\r\n DialogRenderer.prototype.centerDialog = function () {\r\n var child = this.dialogContainer.children[0];\r\n var vh = Math.max(DOM.querySelectorAll('html')[0].clientHeight, window.innerHeight || 0);\r\n child.style.marginTop = Math.max((vh - child.offsetHeight) / 2, 30) + 'px';\r\n child.style.marginBottom = Math.max((vh - child.offsetHeight) / 2, 30) + 'px';\r\n };\r\n DialogRenderer.prototype.awaitTransition = function (setActiveInactive, ignore) {\r\n var _this = this;\r\n return new Promise(function (resolve) {\r\n var renderer = _this;\r\n var eventName = transitionEvent();\r\n function onTransitionEnd(e) {\r\n if (e.target !== renderer.dialogContainer) {\r\n return;\r\n }\r\n renderer.dialogContainer.removeEventListener(eventName, onTransitionEnd);\r\n resolve();\r\n }\r\n if (ignore || !hasTransition(_this.dialogContainer)) {\r\n resolve();\r\n }\r\n else {\r\n _this.dialogContainer.addEventListener(eventName, onTransitionEnd);\r\n }\r\n setActiveInactive();\r\n });\r\n };\r\n DialogRenderer.prototype.getDialogContainer = function () {\r\n return this.anchor || (this.anchor = DOM.createElement('div'));\r\n };\r\n DialogRenderer.prototype.showDialog = function (dialogController) {\r\n var _this = this;\r\n if (!body) {\r\n body = DOM.querySelector('body');\r\n }\r\n if (dialogController.settings.host) {\r\n this.host = dialogController.settings.host;\r\n }\r\n else {\r\n this.host = body;\r\n }\r\n var settings = dialogController.settings;\r\n this.attach(dialogController);\r\n if (typeof settings.position === 'function') {\r\n settings.position(this.dialogContainer, this.dialogOverlay);\r\n }\r\n else if (!settings.centerHorizontalOnly) {\r\n this.centerDialog();\r\n }\r\n DialogRenderer.trackController(dialogController);\r\n this.setupEventHandling(dialogController);\r\n return this.awaitTransition(function () { return _this.setAsActive(); }, dialogController.settings.ignoreTransitions);\r\n };\r\n DialogRenderer.prototype.hideDialog = function (dialogController) {\r\n var _this = this;\r\n this.clearEventHandling(dialogController);\r\n DialogRenderer.untrackController(dialogController);\r\n return this.awaitTransition(function () { return _this.setAsInactive(); }, dialogController.settings.ignoreTransitions)\r\n .then(function () { _this.detach(dialogController); });\r\n };\r\n DialogRenderer.dialogControllers = [];\r\n return DialogRenderer;\r\n}());\r\ntransient()(DialogRenderer);\n\nexport { DialogRenderer, DialogRenderer as UxDialogRenderer, hasTransition, transitionEvent };\n//# sourceMappingURL=ux-dialog-renderer.js.map\n","var UxDialog = (function () {\r\n function UxDialog() {\r\n }\r\n UxDialog.$view = \"\";\r\n UxDialog.$resource = 'ux-dialog';\r\n return UxDialog;\r\n}());\n\nexport { UxDialog };\n//# sourceMappingURL=ux-dialog.js.map\n"],"names":[],"sourceRoot":""}