{"version":3,"sources":["webpack:///./node_modules/aurelia-dialog/dist/native-modules/chunk.js","webpack:///./node_modules/aurelia-dialog/dist/native-modules/aurelia-dialog.js"],"names":["Renderer","prototype","getDialogContainer","Error","showDialog","dialogController","hideDialog","createDialogCancelError","output","error","wasCancelled","createDialogCloseError","invokeLifecycle","instance","name","model","Promise","resolve","then","result","DialogController","renderer","settings","reject","this","releaseResources","_this","controller","viewModel","unbind","cancelOperation","rejectOnCancel","ok","close","cancel","closeError","closePromise","dialogResult","catch","reason","undefined","canDeactivate","inject","DefaultDialogSettings","lock","startingZIndex","centerHorizontalOnly","ignoreTransitions","restoreFocus","lastActiveElement","focus","RENDERRERS","ux","m","DialogRenderer","native","NativeDialogRenderer","DEFAULT_RESOURCES","UxDialog","UxDialogHeader","UxDialogBody","UxDialogFooter","AttachFocus","DEFAULT_CSS_TEXT","cssM","DialogConfiguration","frameworkConfiguration","applySetter","cssText","resources","fwConfig","container","get","_apply","all","_a","rendererImpl","$cssText","transient","injectStyles","map","modules","globalResources","useDefaults","useRenderer","useCSS","useStandardResources","Object","keys","forEach","useResource","resourceName","push","assign","whenClosed","onfulfilled","onrejected","r","closeResult","DialogService","compositionEngine","defaultSettings","controllers","hasOpenDialog","hasActiveDialog","validateSettings","view","createCompositionContext","childContainer","host","parent","bindingContext","viewResources","viewSlot","ensureViewModel","compositionContext","_cancelOperation","composeAndShowDialog","compose","length","createSettings","keyboard","overlayDismiss","defineProperty","writable","configurable","enumerable","open","resolveCloseResult","rejectCloseResult","createChild","invoke","registerInstance","removeController","promise","openResult","canActivate","closeAll","slice","unclosedControllers","filter","unclosed","service","i","indexOf","splice","configure","frameworkConfig","callback","applyConfig","config","apply"],"mappings":"8FAAA,8KAAIA,EAAY,WACZ,SAASA,KAWT,OATAA,EAASC,UAAUC,mBAAqB,WACpC,MAAM,IAAIC,MAAM,wDAEpBH,EAASC,UAAUG,WAAa,SAAUC,GACtC,MAAM,IAAIF,MAAM,gDAEpBH,EAASC,UAAUK,WAAa,SAAUD,GACtC,MAAM,IAAIF,MAAM,gDAEbH,EAZI,GAef,SAASO,EAAwBC,GAC7B,IAAIC,EAAQ,IAAIN,MAAM,wBAGtB,OAFAM,EAAMC,cAAe,EACrBD,EAAMD,OAASA,EACRC,EAGX,SAASE,EAAuBH,GAC5B,IAAIC,EAAQ,IAAIN,MAGhB,OAFAM,EAAMC,cAAe,EACrBD,EAAMD,OAASA,EACRC,EAGX,SAASG,EAAgBC,EAAUC,EAAMC,GACrC,MAA8B,mBAAnBF,EAASC,GACT,IAAIE,SAAQ,SAAUC,GACzBA,EAAQJ,EAASC,GAAMC,OACxBG,MAAK,SAAUC,GACd,OAAIA,SACOA,KAKZH,QAAQC,SAAQ,GAG3B,IAAIG,EAAoB,WACpB,SAASA,EAAiBC,EAAUC,EAAUL,EAASM,GACnDC,KAAKP,QAAUA,EACfO,KAAKD,OAASA,EACdC,KAAKF,SAAWA,EAChBE,KAAKH,SAAWA,EAyDpB,OAvDAD,EAAiBnB,UAAUwB,iBAAmB,SAAUN,GACpD,IAAIO,EAAQF,KACZ,OAAOZ,EAAgBY,KAAKG,WAAWC,WAAa,GAAI,aAAcT,GACjED,MAAK,WAAc,OAAOQ,EAAML,SAASf,WAAWoB,MACpDR,MAAK,WACNQ,EAAMC,WAAWE,aAGzBT,EAAiBnB,UAAU6B,gBAAkB,WACzC,IAAKN,KAAKF,SAASS,eACf,MAAO,CAAErB,cAAc,GAE3B,MAAMH,KAEVa,EAAiBnB,UAAU+B,GAAK,SAAUxB,GACtC,OAAOgB,KAAKS,OAAM,EAAMzB,IAE5BY,EAAiBnB,UAAUiC,OAAS,SAAU1B,GAC1C,OAAOgB,KAAKS,OAAM,EAAOzB,IAE7BY,EAAiBnB,UAAUQ,MAAQ,SAAUD,GACzC,IAAIkB,EAAQF,KACRW,EAAaxB,EAAuBH,GACxC,OAAOgB,KAAKC,iBAAiBU,GAAYjB,MAAK,WAAcQ,EAAMH,OAAOY,OAE7Ef,EAAiBnB,UAAUgC,MAAQ,SAAUD,EAAIxB,GAC7C,IAAIkB,EAAQF,KACZ,GAAIA,KAAKY,aACL,OAAOZ,KAAKY,aAEhB,IAAIC,EAAe,CAAE3B,cAAesB,EAAIxB,OAAQA,GAChD,OAAOgB,KAAKY,aAAexB,EAAgBY,KAAKG,WAAWC,WAAa,GAAI,gBAAiBS,GACxFC,OAAM,SAAUC,GAEjB,OADAb,EAAMU,kBAAeI,EACdxB,QAAQO,OAAOgB,MACvBrB,MAAK,SAAUuB,GACd,OAAKA,EAIEf,EAAMD,iBAAiBY,GAAcnB,MAAK,WAO7C,OANKQ,EAAMJ,SAASS,gBAAkBC,EAClCN,EAAMT,QAAQoB,GAGdX,EAAMH,OAAOhB,EAAwBC,IAElC,CAAEE,cAAc,MACxB4B,OAAM,SAAUC,GAEf,OADAb,EAAMU,kBAAeI,EACdxB,QAAQO,OAAOgB,OAbtBb,EAAMU,kBAAeI,EACdd,EAAMI,uBAgBzBV,EAAiBsB,OAAS,CAAC1C,GACpBoB,EA9DY,I,8CC3CvB,kdAMIuB,EACA,WACInB,KAAKoB,MAAO,EACZpB,KAAKqB,eAAiB,IACtBrB,KAAKsB,sBAAuB,EAC5BtB,KAAKO,gBAAiB,EACtBP,KAAKuB,mBAAoB,EACzBvB,KAAKwB,aAAe,SAAUC,GAAqB,OAAOA,EAAkBC,UAKhFC,EAAa,CACbC,GAAI,WAAc,OAAO,iCAAkClC,MAAK,SAAUmC,GAAK,OAAOA,EAAEC,mBACxFC,OAAQ,WAAc,OAAO,iCAAsCrC,MAAK,SAAUmC,GAAK,OAAOA,EAAEG,0BAEhGC,EAAoB,CACpB,YAAa,WAAc,OAAO,iCAAyBvC,MAAK,SAAUmC,GAAK,OAAOA,EAAEK,aACxF,mBAAoB,WAAc,OAAO,iCAAgCxC,MAAK,SAAUmC,GAAK,OAAOA,EAAEM,mBACtG,iBAAkB,WAAc,OAAO,iCAA8BzC,MAAK,SAAUmC,GAAK,OAAOA,EAAEO,iBAClG,mBAAoB,WAAc,OAAO,iCAAgC1C,MAAK,SAAUmC,GAAK,OAAOA,EAAEQ,mBACtG,eAAgB,WAAc,OAAO,iCAA4B3C,MAAK,SAAUmC,GAAK,OAAOA,EAAES,iBAE9FC,EAAmB,WAAc,OAAO,iCAA8B7C,MAAK,SAAU8C,GAAQ,OAAOA,EAAc,YAClHC,EAAuB,WACvB,SAASA,EAAoBC,EAAwBC,GACjD,IAAIzC,EAAQF,KACZA,KAAKH,SAAW,KAChBG,KAAK4C,QAAUL,EACfvC,KAAK6C,UAAY,GACjB7C,KAAK8C,SAAWJ,EAChB1C,KAAKF,SAAW4C,EAAuBK,UAAUC,IAAI7B,GACrDwB,GAAY,WAAc,OAAOzC,EAAM+C,YAsD3C,OApDAR,EAAoBhE,UAAUwE,OAAS,WACnC,IAAI/C,EAAQF,KACRH,EAAWG,KAAKH,SAChB+C,EAAU5C,KAAK4C,QACnB,OAAOpD,QACF0D,IAAI,CACe,iBAAbrD,EAAwB8B,EAAW9B,KAAcA,EACxD+C,EACyB,iBAAZA,EACHA,EACAA,IACJ,KAELlD,MAAK,SAAUyD,GAChB,IAAIC,EAAeD,EAAG,GAAIE,EAAWF,EAAG,GACpCL,EAAW5C,EAAM4C,SAKrB,OAJAA,EAASQ,UAAU,IAAUF,GACzBC,GACA,IAAIE,aAAaF,GAEd7D,QACF0D,IAAIhD,EAAM2C,UAAUW,KAAI,SAAUlE,GAAQ,OAAO2C,EAAkB3C,SACnEI,MAAK,SAAU+D,GAChBX,EAASY,gBAAgBD,UAIrChB,EAAoBhE,UAAUkF,YAAc,WACxC,OAAO3D,KACF4D,YAAY,MACZC,OAAOtB,GACPuB,wBAETrB,EAAoBhE,UAAUqF,qBAAuB,WAEjD,OADAC,OAAOC,KAAK/B,GAAmBgC,QAAQjE,KAAKkE,YAAalE,MAClDA,MAEXyC,EAAoBhE,UAAUyF,YAAc,SAAUC,GAElD,OADAnE,KAAK6C,UAAUuB,KAAKD,GACbnE,MAEXyC,EAAoBhE,UAAUmF,YAAc,SAAU/D,EAAUC,GAK5D,OAJAE,KAAKH,SAAWA,EACZC,GACAiE,OAAOM,OAAOrE,KAAKF,SAAUA,GAE1BE,MAEXyC,EAAoBhE,UAAUoF,OAAS,SAAUjB,GAE7C,OADA5C,KAAK4C,QAAUA,EACR5C,MAEJyC,EA9De,GAiE1B,SAAS6B,EAAWC,EAAaC,GAC7B,OAAOxE,KAAKN,MAAK,SAAU+E,GAAK,OAAOA,EAAEvF,aAAeuF,EAAIA,EAAEC,eAAgBhF,KAAK6E,EAAaC,GAMpG,IAAIG,EAAiB,WACjB,SAASA,EAAc5B,EAAW6B,EAAmBC,GACjD7E,KAAK8E,YAAc,GACnB9E,KAAK+E,eAAgB,EACrB/E,KAAKgF,iBAAkB,EACvBhF,KAAK+C,UAAYA,EACjB/C,KAAK4E,kBAAoBA,EACzB5E,KAAK6E,gBAAkBA,EA0H3B,OAxHAF,EAAclG,UAAUwG,iBAAmB,SAAUnF,GACjD,IAAKA,EAASM,YAAcN,EAASoF,KACjC,MAAM,IAAIvG,MAAM,2EAGxBgG,EAAclG,UAAU0G,yBAA2B,SAAUC,EAAgBC,EAAMvF,GAC/E,MAAO,CACHiD,UAAWqC,EAAeE,OAC1BF,eAAgBA,EAChBG,eAAgB,KAChBC,cAAe,KACfjG,MAAOO,EAASP,MAChB2F,KAAMpF,EAASoF,KACf9E,UAAWN,EAASM,UACpBqF,SAAU,IAAI,IAASJ,GAAM,GAC7BA,KAAMA,IAGdV,EAAclG,UAAUiH,gBAAkB,SAAUC,GAChD,MAA4C,iBAAjCA,EAAmBvF,UACnBZ,QAAQC,QAAQkG,GAEpB3F,KAAK4E,kBAAkBc,gBAAgBC,IAElDhB,EAAclG,UAAUmH,iBAAmB,SAAUrF,GACjD,IAAKA,EACD,MAAO,CAAErB,cAAc,GAE3B,MAAM,eAEVyF,EAAclG,UAAUoH,qBAAuB,SAAUF,EAAoB9G,GACzE,IAAIqB,EAAQF,KAIZ,OAHK2F,EAAmBvF,YACpBuF,EAAmBJ,eAAiB,CAAEpF,WAAYtB,IAE/CmB,KAAK4E,kBACPkB,QAAQH,GACRjG,MAAK,SAAUS,GAEhB,OADAtB,EAAiBsB,WAAaA,EACvBtB,EAAiBgB,SACnBjB,WAAWC,GACXa,MAAK,WACNQ,EAAM4E,YAAYV,KAAKvF,GACvBqB,EAAM8E,gBAAkB9E,EAAM6E,gBAAkB7E,EAAM4E,YAAYiB,UACnE,SAAUhF,GAIT,OAHIZ,EAAWC,WACX,YAAgBD,EAAWC,UAAW,cAEnCZ,QAAQO,OAAOgB,UAIlC4D,EAAclG,UAAUuH,eAAiB,SAAUlG,GAc/C,MAZiC,kBADjCA,EAAWiE,OAAOM,OAAO,GAAIrE,KAAK6E,gBAAiB/E,IAC/BmG,UAA2BnG,EAASmG,WACpDnG,EAASmG,UAAYnG,EAASsB,MAEK,kBAA5BtB,EAASoG,iBAChBpG,EAASoG,gBAAkBpG,EAASsB,MAExC2C,OAAOoC,eAAerG,EAAU,iBAAkB,CAC9CsG,UAAU,EACVC,cAAc,EACdC,YAAY,IAEhBtG,KAAKiF,iBAAiBnF,GACfA,GAEX6E,EAAclG,UAAU8H,KAAO,SAAUzG,GACrC,IAAII,EAAQF,UACK,IAAbF,IAAuBA,EAAW,IAEtC,IACI0G,EACAC,EAFArB,GADJtF,EAAWE,KAAKgG,eAAelG,IACDsF,gBAAkBpF,KAAK+C,UAAU2D,cAG3DhC,EAAc,IAAIlF,SAAQ,SAAUC,EAASM,GAC7CyG,EAAqB/G,EACrBgH,EAAoB1G,KAEpBlB,EAAmBuG,EAAeuB,OAAO,IAAkB,CAAC7G,EAAU0G,EAAoBC,IAC9FrB,EAAewB,iBAAiB,IAAkB/H,GAClD6F,EAAYhF,MAAK,WACbmH,EAAiB3G,EAAOrB,MACzB,WACCgI,EAAiB3G,EAAOrB,MAE5B,IAnGqBiI,EAmGjBnB,EAAqB3F,KAAKmF,yBAAyBC,EAAgBvG,EAAiBgB,SAASnB,qBAAsBG,EAAiBiB,UACpIiH,EAAa/G,KAAK0F,gBAAgBC,GAAoBjG,MAAK,SAAUiG,GACrE,OAAKA,EAAmBvF,WAGjB,YAAgBuF,EAAmBvF,UAAW,cAAevB,EAAiBiB,SAASP,UAC/FG,MAAK,SAAUsH,GACd,OAAKA,EAGE9G,EAAM2F,qBAAqBF,EAAoB9G,GACjDa,MAAK,WAAc,MAAO,CAAGS,WAAYtB,EAAkB6F,YAAaA,EAAaxF,cAAc,MAH7FgB,EAAM0F,iBAAiB/G,EAAiBiB,SAASS,mBAKhE,OAhHqBuG,EAgHMC,GA/GvBzC,WAAaA,EACdwC,GAgHPnC,EAAclG,UAAUwI,SAAW,WAC/B,OAAOzH,QAAQ0D,IAAIlD,KAAK8E,YAAYoC,MAAM,GAAG1D,KAAI,SAAUrD,GACvD,OAAKA,EAAWL,SAASS,eAQlBJ,EAAWO,SAAShB,MAAK,WAAc,OAAO,QAASoB,OAAM,SAAUC,GAC1E,GAAIA,EAAO7B,aACP,OAAOiB,EAEX,MAAMY,KAXCZ,EAAWO,SAAShB,MAAK,SAAUC,GACtC,OAAIA,EAAOT,aACAiB,EAEJ,YASfT,MAAK,SAAUyH,GAAuB,OAAOA,EAAoBC,QAAO,SAAUC,GAAY,QAASA,SAE/G1C,EAAczD,OAAS,CAAC,IAAW,IAAmBC,GAC/CwD,EAjIS,GAmIpB,SAASkC,EAAiBS,EAASzI,GAC/B,IAAI0I,EAAID,EAAQxC,YAAY0C,QAAQ3I,IACzB,IAAP0I,IACAD,EAAQxC,YAAY2C,OAAOF,EAAG,GAC9BD,EAAQtC,gBAAkBsC,EAAQvC,gBAAkBuC,EAAQxC,YAAYiB,QAIhF,SAAS2B,EAAUC,EAAiBC,GAChC,IAAIC,EAAc,KACdC,EAAS,IAAIrF,EAAoBkF,GAAiB,SAAUI,GAASF,EAAcE,KAOvF,MANwB,mBAAbH,EACPA,EAASE,GAGTA,EAAOnE,cAEJkE","file":"vendor.aurelia-dialog~3e799143.c8db1ce6fa209fbc801a.chunk.js","sourcesContent":["var Renderer = (function () {\r\n function Renderer() {\r\n }\r\n Renderer.prototype.getDialogContainer = function () {\r\n throw new Error('DialogRenderer must implement getDialogContainer().');\r\n };\r\n Renderer.prototype.showDialog = function (dialogController) {\r\n throw new Error('DialogRenderer must implement showDialog().');\r\n };\r\n Renderer.prototype.hideDialog = function (dialogController) {\r\n throw new Error('DialogRenderer must implement hideDialog().');\r\n };\r\n return Renderer;\r\n}());\n\nfunction createDialogCancelError(output) {\r\n var error = new Error('Operation cancelled.');\r\n error.wasCancelled = true;\r\n error.output = output;\r\n return error;\r\n}\n\nfunction createDialogCloseError(output) {\r\n var error = new Error();\r\n error.wasCancelled = false;\r\n error.output = output;\r\n return error;\r\n}\n\nfunction invokeLifecycle(instance, name, model) {\r\n if (typeof instance[name] === 'function') {\r\n return new Promise(function (resolve) {\r\n resolve(instance[name](model));\r\n }).then(function (result) {\r\n if (result !== null && result !== undefined) {\r\n return result;\r\n }\r\n return true;\r\n });\r\n }\r\n return Promise.resolve(true);\r\n}\n\nvar DialogController = (function () {\r\n function DialogController(renderer, settings, resolve, reject) {\r\n this.resolve = resolve;\r\n this.reject = reject;\r\n this.settings = settings;\r\n this.renderer = renderer;\r\n }\r\n DialogController.prototype.releaseResources = function (result) {\r\n var _this = this;\r\n return invokeLifecycle(this.controller.viewModel || {}, 'deactivate', result)\r\n .then(function () { return _this.renderer.hideDialog(_this); })\r\n .then(function () {\r\n _this.controller.unbind();\r\n });\r\n };\r\n DialogController.prototype.cancelOperation = function () {\r\n if (!this.settings.rejectOnCancel) {\r\n return { wasCancelled: true };\r\n }\r\n throw createDialogCancelError();\r\n };\r\n DialogController.prototype.ok = function (output) {\r\n return this.close(true, output);\r\n };\r\n DialogController.prototype.cancel = function (output) {\r\n return this.close(false, output);\r\n };\r\n DialogController.prototype.error = function (output) {\r\n var _this = this;\r\n var closeError = createDialogCloseError(output);\r\n return this.releaseResources(closeError).then(function () { _this.reject(closeError); });\r\n };\r\n DialogController.prototype.close = function (ok, output) {\r\n var _this = this;\r\n if (this.closePromise) {\r\n return this.closePromise;\r\n }\r\n var dialogResult = { wasCancelled: !ok, output: output };\r\n return this.closePromise = invokeLifecycle(this.controller.viewModel || {}, 'canDeactivate', dialogResult)\r\n .catch(function (reason) {\r\n _this.closePromise = undefined;\r\n return Promise.reject(reason);\r\n }).then(function (canDeactivate) {\r\n if (!canDeactivate) {\r\n _this.closePromise = undefined;\r\n return _this.cancelOperation();\r\n }\r\n return _this.releaseResources(dialogResult).then(function () {\r\n if (!_this.settings.rejectOnCancel || ok) {\r\n _this.resolve(dialogResult);\r\n }\r\n else {\r\n _this.reject(createDialogCancelError(output));\r\n }\r\n return { wasCancelled: false };\r\n }).catch(function (reason) {\r\n _this.closePromise = undefined;\r\n return Promise.reject(reason);\r\n });\r\n });\r\n };\r\n DialogController.inject = [Renderer];\r\n return DialogController;\r\n}());\n\nexport { Renderer as a, createDialogCancelError as b, invokeLifecycle as c, DialogController as d, createDialogCloseError as e };\n//# sourceMappingURL=chunk.js.map\n","import { a as Renderer, b as createDialogCancelError, c as invokeLifecycle, d as DialogController } from './chunk.js';\nexport { d as DialogController, a as Renderer, b as createDialogCancelError, e as createDialogCloseError } from './chunk.js';\nimport { DOM } from 'aurelia-pal';\nimport { Container } from 'aurelia-dependency-injection';\nimport { ViewSlot, CompositionEngine } from 'aurelia-templating';\n\nvar DefaultDialogSettings = (function () {\r\n function DefaultDialogSettings() {\r\n this.lock = true;\r\n this.startingZIndex = 1000;\r\n this.centerHorizontalOnly = false;\r\n this.rejectOnCancel = false;\r\n this.ignoreTransitions = false;\r\n this.restoreFocus = function (lastActiveElement) { return lastActiveElement.focus(); };\r\n }\r\n return DefaultDialogSettings;\r\n}());\n\nvar RENDERRERS = {\r\n ux: function () { return import('./ux-dialog-renderer.js').then(function (m) { return m.DialogRenderer; }); },\r\n native: function () { return import('./native-dialog-renderer.js').then(function (m) { return m.NativeDialogRenderer; }); }\r\n};\r\nvar DEFAULT_RESOURCES = {\r\n 'ux-dialog': function () { return import('./ux-dialog.js').then(function (m) { return m.UxDialog; }); },\r\n 'ux-dialog-header': function () { return import('./ux-dialog-header.js').then(function (m) { return m.UxDialogHeader; }); },\r\n 'ux-dialog-body': function () { return import('./ux-dialog-body.js').then(function (m) { return m.UxDialogBody; }); },\r\n 'ux-dialog-footer': function () { return import('./ux-dialog-footer.js').then(function (m) { return m.UxDialogFooter; }); },\r\n 'attach-focus': function () { return import('./attach-focus.js').then(function (m) { return m.AttachFocus; }); }\r\n};\r\nvar DEFAULT_CSS_TEXT = function () { return import('./default-styles.js').then(function (cssM) { return cssM['default']; }); };\r\nvar DialogConfiguration = (function () {\r\n function DialogConfiguration(frameworkConfiguration, applySetter) {\r\n var _this = this;\r\n this.renderer = 'ux';\r\n this.cssText = DEFAULT_CSS_TEXT;\r\n this.resources = [];\r\n this.fwConfig = frameworkConfiguration;\r\n this.settings = frameworkConfiguration.container.get(DefaultDialogSettings);\r\n applySetter(function () { return _this._apply(); });\r\n }\r\n DialogConfiguration.prototype._apply = function () {\r\n var _this = this;\r\n var renderer = this.renderer;\r\n var cssText = this.cssText;\r\n return Promise\r\n .all([\r\n typeof renderer === 'string' ? RENDERRERS[renderer]() : renderer,\r\n cssText\r\n ? typeof cssText === 'string'\r\n ? cssText\r\n : cssText()\r\n : ''\r\n ])\r\n .then(function (_a) {\r\n var rendererImpl = _a[0], $cssText = _a[1];\r\n var fwConfig = _this.fwConfig;\r\n fwConfig.transient(Renderer, rendererImpl);\r\n if ($cssText) {\r\n DOM.injectStyles($cssText);\r\n }\r\n return Promise\r\n .all(_this.resources.map(function (name) { return DEFAULT_RESOURCES[name](); }))\r\n .then(function (modules) {\r\n fwConfig.globalResources(modules);\r\n });\r\n });\r\n };\r\n DialogConfiguration.prototype.useDefaults = function () {\r\n return this\r\n .useRenderer('ux')\r\n .useCSS(DEFAULT_CSS_TEXT)\r\n .useStandardResources();\r\n };\r\n DialogConfiguration.prototype.useStandardResources = function () {\r\n Object.keys(DEFAULT_RESOURCES).forEach(this.useResource, this);\r\n return this;\r\n };\r\n DialogConfiguration.prototype.useResource = function (resourceName) {\r\n this.resources.push(resourceName);\r\n return this;\r\n };\r\n DialogConfiguration.prototype.useRenderer = function (renderer, settings) {\r\n this.renderer = renderer;\r\n if (settings) {\r\n Object.assign(this.settings, settings);\r\n }\r\n return this;\r\n };\r\n DialogConfiguration.prototype.useCSS = function (cssText) {\r\n this.cssText = cssText;\r\n return this;\r\n };\r\n return DialogConfiguration;\r\n}());\n\nfunction whenClosed(onfulfilled, onrejected) {\r\n return this.then(function (r) { return r.wasCancelled ? r : r.closeResult; }).then(onfulfilled, onrejected);\r\n}\r\nfunction asDialogOpenPromise(promise) {\r\n promise.whenClosed = whenClosed;\r\n return promise;\r\n}\r\nvar DialogService = (function () {\r\n function DialogService(container, compositionEngine, defaultSettings) {\r\n this.controllers = [];\r\n this.hasOpenDialog = false;\r\n this.hasActiveDialog = false;\r\n this.container = container;\r\n this.compositionEngine = compositionEngine;\r\n this.defaultSettings = defaultSettings;\r\n }\r\n DialogService.prototype.validateSettings = function (settings) {\r\n if (!settings.viewModel && !settings.view) {\r\n throw new Error('Invalid Dialog Settings. You must provide \"viewModel\", \"view\" or both.');\r\n }\r\n };\r\n DialogService.prototype.createCompositionContext = function (childContainer, host, settings) {\r\n return {\r\n container: childContainer.parent,\r\n childContainer: childContainer,\r\n bindingContext: null,\r\n viewResources: null,\r\n model: settings.model,\r\n view: settings.view,\r\n viewModel: settings.viewModel,\r\n viewSlot: new ViewSlot(host, true),\r\n host: host\r\n };\r\n };\r\n DialogService.prototype.ensureViewModel = function (compositionContext) {\r\n if (typeof compositionContext.viewModel === 'object') {\r\n return Promise.resolve(compositionContext);\r\n }\r\n return this.compositionEngine.ensureViewModel(compositionContext);\r\n };\r\n DialogService.prototype._cancelOperation = function (rejectOnCancel) {\r\n if (!rejectOnCancel) {\r\n return { wasCancelled: true };\r\n }\r\n throw createDialogCancelError();\r\n };\r\n DialogService.prototype.composeAndShowDialog = function (compositionContext, dialogController) {\r\n var _this = this;\r\n if (!compositionContext.viewModel) {\r\n compositionContext.bindingContext = { controller: dialogController };\r\n }\r\n return this.compositionEngine\r\n .compose(compositionContext)\r\n .then(function (controller) {\r\n dialogController.controller = controller;\r\n return dialogController.renderer\r\n .showDialog(dialogController)\r\n .then(function () {\r\n _this.controllers.push(dialogController);\r\n _this.hasActiveDialog = _this.hasOpenDialog = !!_this.controllers.length;\r\n }, function (reason) {\r\n if (controller.viewModel) {\r\n invokeLifecycle(controller.viewModel, 'deactivate');\r\n }\r\n return Promise.reject(reason);\r\n });\r\n });\r\n };\r\n DialogService.prototype.createSettings = function (settings) {\r\n settings = Object.assign({}, this.defaultSettings, settings);\r\n if (typeof settings.keyboard !== 'boolean' && !settings.keyboard) {\r\n settings.keyboard = !settings.lock;\r\n }\r\n if (typeof settings.overlayDismiss !== 'boolean') {\r\n settings.overlayDismiss = !settings.lock;\r\n }\r\n Object.defineProperty(settings, 'rejectOnCancel', {\r\n writable: false,\r\n configurable: true,\r\n enumerable: true\r\n });\r\n this.validateSettings(settings);\r\n return settings;\r\n };\r\n DialogService.prototype.open = function (settings) {\r\n var _this = this;\r\n if (settings === void 0) { settings = {}; }\r\n settings = this.createSettings(settings);\r\n var childContainer = settings.childContainer || this.container.createChild();\r\n var resolveCloseResult;\r\n var rejectCloseResult;\r\n var closeResult = new Promise(function (resolve, reject) {\r\n resolveCloseResult = resolve;\r\n rejectCloseResult = reject;\r\n });\r\n var dialogController = childContainer.invoke(DialogController, [settings, resolveCloseResult, rejectCloseResult]);\r\n childContainer.registerInstance(DialogController, dialogController);\r\n closeResult.then(function () {\r\n removeController(_this, dialogController);\r\n }, function () {\r\n removeController(_this, dialogController);\r\n });\r\n var compositionContext = this.createCompositionContext(childContainer, dialogController.renderer.getDialogContainer(), dialogController.settings);\r\n var openResult = this.ensureViewModel(compositionContext).then(function (compositionContext) {\r\n if (!compositionContext.viewModel) {\r\n return true;\r\n }\r\n return invokeLifecycle(compositionContext.viewModel, 'canActivate', dialogController.settings.model);\r\n }).then(function (canActivate) {\r\n if (!canActivate) {\r\n return _this._cancelOperation(dialogController.settings.rejectOnCancel);\r\n }\r\n return _this.composeAndShowDialog(compositionContext, dialogController)\r\n .then(function () { return ({ controller: dialogController, closeResult: closeResult, wasCancelled: false }); });\r\n });\r\n return asDialogOpenPromise(openResult);\r\n };\r\n DialogService.prototype.closeAll = function () {\r\n return Promise.all(this.controllers.slice(0).map(function (controller) {\r\n if (!controller.settings.rejectOnCancel) {\r\n return controller.cancel().then(function (result) {\r\n if (result.wasCancelled) {\r\n return controller;\r\n }\r\n return null;\r\n });\r\n }\r\n return controller.cancel().then(function () { return null; }).catch(function (reason) {\r\n if (reason.wasCancelled) {\r\n return controller;\r\n }\r\n throw reason;\r\n });\r\n })).then(function (unclosedControllers) { return unclosedControllers.filter(function (unclosed) { return !!unclosed; }); });\r\n };\r\n DialogService.inject = [Container, CompositionEngine, DefaultDialogSettings];\r\n return DialogService;\r\n}());\r\nfunction removeController(service, dialogController) {\r\n var i = service.controllers.indexOf(dialogController);\r\n if (i !== -1) {\r\n service.controllers.splice(i, 1);\r\n service.hasActiveDialog = service.hasOpenDialog = !!service.controllers.length;\r\n }\r\n}\n\nfunction configure(frameworkConfig, callback) {\r\n var applyConfig = null;\r\n var config = new DialogConfiguration(frameworkConfig, function (apply) { applyConfig = apply; });\r\n if (typeof callback === 'function') {\r\n callback(config);\r\n }\r\n else {\r\n config.useDefaults();\r\n }\r\n return applyConfig();\r\n}\n\nexport { DefaultDialogSettings, DialogConfiguration, DialogService, configure };\n//# sourceMappingURL=aurelia-dialog.js.map\n"],"sourceRoot":""}