carbon-components-angular 5.40.4 → 5.40.5

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.
Files changed (60) hide show
  1. package/docs/documentation/components/Modal.html +77 -26
  2. package/docs/documentation/coverage.html +4 -4
  3. package/docs/documentation/js/search/search_index.js +2 -2
  4. package/docs/documentation/modules/ComboBoxModule/dependencies.svg +4 -4
  5. package/docs/documentation/modules/ComboBoxModule.html +4 -4
  6. package/docs/documentation/modules/ContentSwitcherModule/dependencies.svg +4 -4
  7. package/docs/documentation/modules/ContentSwitcherModule.html +4 -4
  8. package/docs/documentation/modules/DatePickerInputModule/dependencies.svg +41 -37
  9. package/docs/documentation/modules/DatePickerInputModule.html +41 -37
  10. package/docs/documentation/modules/DatePickerModule/dependencies.svg +38 -38
  11. package/docs/documentation/modules/DatePickerModule.html +38 -38
  12. package/docs/documentation/modules/GridModule/dependencies.svg +60 -60
  13. package/docs/documentation/modules/GridModule.html +60 -60
  14. package/docs/documentation/modules/LoadingModule/dependencies.svg +4 -4
  15. package/docs/documentation/modules/LoadingModule.html +4 -4
  16. package/docs/documentation/modules/NFormsModule/dependencies.svg +4 -4
  17. package/docs/documentation/modules/NFormsModule.html +4 -4
  18. package/docs/documentation/modules/NumberModule/dependencies.svg +4 -4
  19. package/docs/documentation/modules/NumberModule.html +4 -4
  20. package/docs/documentation/modules/ProgressIndicatorModule/dependencies.svg +4 -4
  21. package/docs/documentation/modules/ProgressIndicatorModule.html +4 -4
  22. package/docs/documentation/modules/RadioModule/dependencies.svg +4 -4
  23. package/docs/documentation/modules/RadioModule.html +4 -4
  24. package/docs/documentation/modules/SelectModule/dependencies.svg +58 -58
  25. package/docs/documentation/modules/SelectModule.html +58 -58
  26. package/docs/documentation/modules/SliderModule/dependencies.svg +4 -4
  27. package/docs/documentation/modules/SliderModule.html +4 -4
  28. package/docs/documentation/modules/TableModule/dependencies.svg +216 -216
  29. package/docs/documentation/modules/TableModule.html +216 -216
  30. package/docs/documentation/modules/TabsModule/dependencies.svg +69 -69
  31. package/docs/documentation/modules/TabsModule.html +69 -69
  32. package/docs/documentation/modules/ThemeModule/dependencies.svg +4 -4
  33. package/docs/documentation/modules/ThemeModule.html +4 -4
  34. package/docs/documentation/modules/TilesModule/dependencies.svg +101 -101
  35. package/docs/documentation/modules/TilesModule.html +101 -101
  36. package/docs/documentation/modules/TimePickerModule/dependencies.svg +45 -41
  37. package/docs/documentation/modules/TimePickerModule.html +45 -41
  38. package/docs/documentation/modules/ToggleModule/dependencies.svg +45 -41
  39. package/docs/documentation/modules/ToggleModule.html +45 -41
  40. package/docs/documentation/modules/ToggletipModule/dependencies.svg +39 -39
  41. package/docs/documentation/modules/ToggletipModule.html +39 -39
  42. package/docs/documentation/modules/TooltipModule/dependencies.svg +28 -28
  43. package/docs/documentation/modules/TooltipModule.html +28 -28
  44. package/docs/documentation/modules/TreeviewModule/dependencies.svg +35 -35
  45. package/docs/documentation/modules/TreeviewModule.html +35 -35
  46. package/docs/documentation/modules/UIShellModule/dependencies.svg +4 -4
  47. package/docs/documentation/modules/UIShellModule.html +4 -4
  48. package/docs/documentation.json +15 -15
  49. package/docs/storybook/{3931.0e7c514c.iframe.bundle.js → 3931.b0862ad7.iframe.bundle.js} +1 -1
  50. package/docs/storybook/iframe.html +2 -2
  51. package/docs/storybook/{main.d2da63e8.iframe.bundle.js → main.d8d08a11.iframe.bundle.js} +1 -1
  52. package/docs/storybook/project.json +1 -1
  53. package/docs/storybook/{runtime~main.28549df7.iframe.bundle.js → runtime~main.f922d628.iframe.bundle.js} +1 -1
  54. package/esm2020/modal/modal.component.mjs +19 -11
  55. package/fesm2015/carbon-components-angular-modal.mjs +25 -17
  56. package/fesm2015/carbon-components-angular-modal.mjs.map +1 -1
  57. package/fesm2020/carbon-components-angular-modal.mjs +25 -17
  58. package/fesm2020/carbon-components-angular-modal.mjs.map +1 -1
  59. package/modal/modal.component.d.ts +2 -1
  60. package/package.json +1 -1
@@ -1 +1 @@
1
- {"generatedAt":1727719205069,"hasCustomBabel":false,"hasCustomWebpack":false,"hasStaticDirs":true,"hasStorybookEslint":false,"refCount":0,"packageManager":{"type":"npm","version":"8.19.4"},"preview":{"usesGlobals":false},"framework":{"name":"@storybook/angular","options":{}},"builder":"@storybook/builder-webpack5","renderer":"@storybook/angular","storybookVersion":"7.6.7","storybookVersionSpecifier":"7.6.7","language":"typescript","storybookPackages":{"@storybook/addon-actions":{"version":"7.6.7"},"@storybook/angular":{"version":"7.6.7"},"@storybook/theming":{"version":"7.6.7"},"storybook":{"version":"7.6.7"}},"addons":{"@storybook/addon-links":{"version":"7.6.7"},"@storybook/addon-essentials":{"options":{"backgrounds":false},"version":"7.6.7"},"@storybook/addon-a11y":{"version":"7.6.7"},"@storybook/addon-storysource":{"version":"7.6.7"}}}
1
+ {"generatedAt":1727751665491,"hasCustomBabel":false,"hasCustomWebpack":false,"hasStaticDirs":true,"hasStorybookEslint":false,"refCount":0,"packageManager":{"type":"npm","version":"8.19.4"},"preview":{"usesGlobals":false},"framework":{"name":"@storybook/angular","options":{}},"builder":"@storybook/builder-webpack5","renderer":"@storybook/angular","storybookVersion":"7.6.7","storybookVersionSpecifier":"7.6.7","language":"typescript","storybookPackages":{"@storybook/addon-actions":{"version":"7.6.7"},"@storybook/angular":{"version":"7.6.7"},"@storybook/theming":{"version":"7.6.7"},"storybook":{"version":"7.6.7"}},"addons":{"@storybook/addon-links":{"version":"7.6.7"},"@storybook/addon-essentials":{"options":{"backgrounds":false},"version":"7.6.7"},"@storybook/addon-a11y":{"version":"7.6.7"},"@storybook/addon-storysource":{"version":"7.6.7"}}}
@@ -1 +1 @@
1
- (()=>{"use strict";var deferred,leafPrototypes,getProto,inProgress,__webpack_modules__={},__webpack_module_cache__={};function __webpack_require__(moduleId){var cachedModule=__webpack_module_cache__[moduleId];if(void 0!==cachedModule)return cachedModule.exports;var module=__webpack_module_cache__[moduleId]={id:moduleId,loaded:!1,exports:{}};return __webpack_modules__[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}__webpack_require__.m=__webpack_modules__,__webpack_require__.amdO={},deferred=[],__webpack_require__.O=(result,chunkIds,fn,priority)=>{if(!chunkIds){var notFulfilled=1/0;for(i=0;i<deferred.length;i++){for(var[chunkIds,fn,priority]=deferred[i],fulfilled=!0,j=0;j<chunkIds.length;j++)(!1&priority||notFulfilled>=priority)&&Object.keys(__webpack_require__.O).every((key=>__webpack_require__.O[key](chunkIds[j])))?chunkIds.splice(j--,1):(fulfilled=!1,priority<notFulfilled&&(notFulfilled=priority));if(fulfilled){deferred.splice(i--,1);var r=fn();void 0!==r&&(result=r)}}return result}priority=priority||0;for(var i=deferred.length;i>0&&deferred[i-1][2]>priority;i--)deferred[i]=deferred[i-1];deferred[i]=[chunkIds,fn,priority]},__webpack_require__.n=module=>{var getter=module&&module.__esModule?()=>module.default:()=>module;return __webpack_require__.d(getter,{a:getter}),getter},getProto=Object.getPrototypeOf?obj=>Object.getPrototypeOf(obj):obj=>obj.__proto__,__webpack_require__.t=function(value,mode){if(1&mode&&(value=this(value)),8&mode)return value;if("object"==typeof value&&value){if(4&mode&&value.__esModule)return value;if(16&mode&&"function"==typeof value.then)return value}var ns=Object.create(null);__webpack_require__.r(ns);var def={};leafPrototypes=leafPrototypes||[null,getProto({}),getProto([]),getProto(getProto)];for(var current=2&mode&&value;"object"==typeof current&&!~leafPrototypes.indexOf(current);current=getProto(current))Object.getOwnPropertyNames(current).forEach((key=>def[key]=()=>value[key]));return def.default=()=>value,__webpack_require__.d(ns,def),ns},__webpack_require__.d=(exports,definition)=>{for(var key in definition)__webpack_require__.o(definition,key)&&!__webpack_require__.o(exports,key)&&Object.defineProperty(exports,key,{enumerable:!0,get:definition[key]})},__webpack_require__.f={},__webpack_require__.e=chunkId=>Promise.all(Object.keys(__webpack_require__.f).reduce(((promises,key)=>(__webpack_require__.f[key](chunkId,promises),promises)),[])),__webpack_require__.u=chunkId=>(({140:"dialog-overflow-menu-overflow-menu-stories",210:"list-list-stories",384:"grid-css-grid-stories",459:"tabs-tabs-stories",703:"toggletip-toggletip-stories",799:"pagination-pagination-stories",911:"button-button-stories",933:"table-table-stories",972:"patterns-loading-large-loading-stories",1127:"search-search-stories",1928:"accordion-accordion-stories",2218:"inline-loading-inline-loading-stories",2342:"radio-radio-stories",2371:"timepicker-timepicker-stories",2388:"modal-modal-stories",2399:"input-textarea-stories",2489:"toggle-toggle-stories",2494:"loading-loading-stories",2573:"grid-grid-stories",2722:"context-menu-context-menu-stories",2969:"pagination-pagination-nav-stories",3046:"input-password-stories",3280:"tiles-tiles-stories",3314:"patterns-filtering-multiple-categories-stories",3329:"checkbox-checkbox-stories",3402:"tiles-expandable-tile-stories",3523:"contained-list-contained-list-stories",3610:"patterns-filtering-single-selection-stories",3719:"tiles-clickable-tile-stories",3858:"code-snippet-code-snippet-stories",3867:"tag-tag-stories",4232:"patterns-forms-multi-step-form-stories",4253:"tooltip-tooltip-stories",4277:"patterns-dialogs-modal-with-table-stories",4391:"content-switcher-content-switcher-stories",4731:"icon-icon-stories",4762:"patterns-filtering-multi-selection-stories",5167:"button-icon-button-stories",5368:"number-input-number-stories",5455:"layer-layer-stories",5808:"progress-bar-progress-bar-stories",5980:"select-select-stories",6026:"slider-slider-stories",6115:"theme-theme-stories",6274:"tooltip-definition-tooptip-stories",6310:"file-uploader-file-uploader-stories",6322:"popover-popover-stories",6456:"treeview-treeview-stories",6634:"link-link-stories",6663:"datepicker-datepicker-stories",6842:"breadcrumb-breadcrumb-stories",6943:"input-input-stories",7081:"layout-stack-stories",7235:"index-stories",7291:"structured-list-structured-list-stories",7840:"patterns-loading-progressive-loading-stories",7869:"skeleton-skeleton-stories",7931:"notification-notification-stories",8552:"button-button-set-stories",9211:"dropdown-dropdown-stories",9325:"tiles-tile-group-stories",9552:"timepicker-select-timepicker-select-stories",9619:"progress-indicator-progress-indicator-stories",9660:"ui-shell-ui-shell-stories",9736:"combobox-combobox-stories"}[chunkId]||chunkId)+"."+{140:"e0a259e0",210:"e906cf67",384:"c703f9de",459:"066fa432",503:"7113f5a6",703:"93f48d46",760:"c83c0660",799:"05ab4dd7",901:"eac9ade7",911:"a12bca49",933:"c19aca64",972:"699b1e1b",1119:"29184bd5",1127:"2dfd7cce",1345:"9eabf5e2",1470:"39923f01",1562:"1e6a79b6",1895:"0331c090",1928:"e04e2378",2218:"5226939d",2342:"b6c3c440",2371:"7bbf1029",2388:"eca6c3e9",2399:"1a3b5e80",2489:"def6c644",2494:"261bc118",2573:"f7a88c02",2722:"64411dcb",2969:"ad4e83e9",3046:"33a92ba2",3080:"d3996d61",3224:"c0834124",3280:"841048dc",3314:"487f9487",3329:"3aeae19d",3360:"e0c015fc",3402:"97c48cb1",3415:"bd5d140d",3446:"67748550",3523:"b0377336",3610:"e4243e65",3719:"09f1a279",3774:"c37f3d92",3858:"0b374806",3867:"dffa6874",3931:"0e7c514c",4232:"22da53c6",4253:"eb2e347f",4277:"a011175b",4391:"8f3aa078",4731:"7926f3ba",4762:"cae9c326",5069:"eabf32ea",5103:"20115e64",5167:"d6e7f30d",5368:"a1953960",5455:"9fc41371",5808:"36bb008f",5868:"06f13966",5980:"c1077d92",6026:"5884b16a",6115:"66e1727e",6274:"60d42e1c",6310:"7cbeda49",6322:"a91784a3",6456:"7addb70a",6634:"9e3dd976",6663:"adb85d77",6702:"8b6fb391",6765:"2096c92a",6842:"8a783f18",6943:"8154d597",7019:"b8944046",7081:"799a681c",7235:"613320d5",7291:"c86ef32b",7399:"f37bb110",7529:"5272f30b",7773:"6c3cf943",7840:"717ad729",7869:"77f9485f",7931:"624c3d04",8341:"a544f9e9",8552:"1417284a",9115:"b37cce0a",9211:"c20a8aa6",9325:"c925923c",9552:"5b57af49",9558:"40984421",9619:"b7f8dfd4",9660:"b8c5a541",9672:"7b7a4af9",9736:"3bbada2d"}[chunkId]+".iframe.bundle.js"),__webpack_require__.miniCssF=chunkId=>{},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.hmd=module=>((module=Object.create(module)).children||(module.children=[]),Object.defineProperty(module,"exports",{enumerable:!0,set:()=>{throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+module.id)}}),module),__webpack_require__.o=(obj,prop)=>Object.prototype.hasOwnProperty.call(obj,prop),inProgress={},__webpack_require__.l=(url,done,key,chunkId)=>{if(inProgress[url])inProgress[url].push(done);else{var script,needAttach;if(void 0!==key)for(var scripts=document.getElementsByTagName("script"),i=0;i<scripts.length;i++){var s=scripts[i];if(s.getAttribute("src")==url||s.getAttribute("data-webpack")=="carbon-components-angular:"+key){script=s;break}}script||(needAttach=!0,(script=document.createElement("script")).charset="utf-8",script.timeout=120,__webpack_require__.nc&&script.setAttribute("nonce",__webpack_require__.nc),script.setAttribute("data-webpack","carbon-components-angular:"+key),script.src=url),inProgress[url]=[done];var onScriptComplete=(prev,event)=>{script.onerror=script.onload=null,clearTimeout(timeout);var doneFns=inProgress[url];if(delete inProgress[url],script.parentNode&&script.parentNode.removeChild(script),doneFns&&doneFns.forEach((fn=>fn(event))),prev)return prev(event)},timeout=setTimeout(onScriptComplete.bind(null,void 0,{type:"timeout",target:script}),12e4);script.onerror=onScriptComplete.bind(null,script.onerror),script.onload=onScriptComplete.bind(null,script.onload),needAttach&&document.head.appendChild(script)}},__webpack_require__.r=exports=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(exports,"__esModule",{value:!0})},__webpack_require__.nmd=module=>(module.paths=[],module.children||(module.children=[]),module),__webpack_require__.p="",(()=>{var installedChunks={1303:0};__webpack_require__.f.j=(chunkId,promises)=>{var installedChunkData=__webpack_require__.o(installedChunks,chunkId)?installedChunks[chunkId]:void 0;if(0!==installedChunkData)if(installedChunkData)promises.push(installedChunkData[2]);else if(1303!=chunkId){var promise=new Promise(((resolve,reject)=>installedChunkData=installedChunks[chunkId]=[resolve,reject]));promises.push(installedChunkData[2]=promise);var url=__webpack_require__.p+__webpack_require__.u(chunkId),error=new Error;__webpack_require__.l(url,(event=>{if(__webpack_require__.o(installedChunks,chunkId)&&(0!==(installedChunkData=installedChunks[chunkId])&&(installedChunks[chunkId]=void 0),installedChunkData)){var errorType=event&&("load"===event.type?"missing":event.type),realSrc=event&&event.target&&event.target.src;error.message="Loading chunk "+chunkId+" failed.\n("+errorType+": "+realSrc+")",error.name="ChunkLoadError",error.type=errorType,error.request=realSrc,installedChunkData[1](error)}}),"chunk-"+chunkId,chunkId)}else installedChunks[chunkId]=0},__webpack_require__.O.j=chunkId=>0===installedChunks[chunkId];var webpackJsonpCallback=(parentChunkLoadingFunction,data)=>{var moduleId,chunkId,[chunkIds,moreModules,runtime]=data,i=0;if(chunkIds.some((id=>0!==installedChunks[id]))){for(moduleId in moreModules)__webpack_require__.o(moreModules,moduleId)&&(__webpack_require__.m[moduleId]=moreModules[moduleId]);if(runtime)var result=runtime(__webpack_require__)}for(parentChunkLoadingFunction&&parentChunkLoadingFunction(data);i<chunkIds.length;i++)chunkId=chunkIds[i],__webpack_require__.o(installedChunks,chunkId)&&installedChunks[chunkId]&&installedChunks[chunkId][0](),installedChunks[chunkId]=0;return __webpack_require__.O(result)},chunkLoadingGlobal=self.webpackChunkcarbon_components_angular=self.webpackChunkcarbon_components_angular||[];chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null,0)),chunkLoadingGlobal.push=webpackJsonpCallback.bind(null,chunkLoadingGlobal.push.bind(chunkLoadingGlobal))})(),__webpack_require__.nc=void 0})();
1
+ (()=>{"use strict";var deferred,leafPrototypes,getProto,inProgress,__webpack_modules__={},__webpack_module_cache__={};function __webpack_require__(moduleId){var cachedModule=__webpack_module_cache__[moduleId];if(void 0!==cachedModule)return cachedModule.exports;var module=__webpack_module_cache__[moduleId]={id:moduleId,loaded:!1,exports:{}};return __webpack_modules__[moduleId].call(module.exports,module,module.exports,__webpack_require__),module.loaded=!0,module.exports}__webpack_require__.m=__webpack_modules__,__webpack_require__.amdO={},deferred=[],__webpack_require__.O=(result,chunkIds,fn,priority)=>{if(!chunkIds){var notFulfilled=1/0;for(i=0;i<deferred.length;i++){for(var[chunkIds,fn,priority]=deferred[i],fulfilled=!0,j=0;j<chunkIds.length;j++)(!1&priority||notFulfilled>=priority)&&Object.keys(__webpack_require__.O).every((key=>__webpack_require__.O[key](chunkIds[j])))?chunkIds.splice(j--,1):(fulfilled=!1,priority<notFulfilled&&(notFulfilled=priority));if(fulfilled){deferred.splice(i--,1);var r=fn();void 0!==r&&(result=r)}}return result}priority=priority||0;for(var i=deferred.length;i>0&&deferred[i-1][2]>priority;i--)deferred[i]=deferred[i-1];deferred[i]=[chunkIds,fn,priority]},__webpack_require__.n=module=>{var getter=module&&module.__esModule?()=>module.default:()=>module;return __webpack_require__.d(getter,{a:getter}),getter},getProto=Object.getPrototypeOf?obj=>Object.getPrototypeOf(obj):obj=>obj.__proto__,__webpack_require__.t=function(value,mode){if(1&mode&&(value=this(value)),8&mode)return value;if("object"==typeof value&&value){if(4&mode&&value.__esModule)return value;if(16&mode&&"function"==typeof value.then)return value}var ns=Object.create(null);__webpack_require__.r(ns);var def={};leafPrototypes=leafPrototypes||[null,getProto({}),getProto([]),getProto(getProto)];for(var current=2&mode&&value;"object"==typeof current&&!~leafPrototypes.indexOf(current);current=getProto(current))Object.getOwnPropertyNames(current).forEach((key=>def[key]=()=>value[key]));return def.default=()=>value,__webpack_require__.d(ns,def),ns},__webpack_require__.d=(exports,definition)=>{for(var key in definition)__webpack_require__.o(definition,key)&&!__webpack_require__.o(exports,key)&&Object.defineProperty(exports,key,{enumerable:!0,get:definition[key]})},__webpack_require__.f={},__webpack_require__.e=chunkId=>Promise.all(Object.keys(__webpack_require__.f).reduce(((promises,key)=>(__webpack_require__.f[key](chunkId,promises),promises)),[])),__webpack_require__.u=chunkId=>(({140:"dialog-overflow-menu-overflow-menu-stories",210:"list-list-stories",384:"grid-css-grid-stories",459:"tabs-tabs-stories",703:"toggletip-toggletip-stories",799:"pagination-pagination-stories",911:"button-button-stories",933:"table-table-stories",972:"patterns-loading-large-loading-stories",1127:"search-search-stories",1928:"accordion-accordion-stories",2218:"inline-loading-inline-loading-stories",2342:"radio-radio-stories",2371:"timepicker-timepicker-stories",2388:"modal-modal-stories",2399:"input-textarea-stories",2489:"toggle-toggle-stories",2494:"loading-loading-stories",2573:"grid-grid-stories",2722:"context-menu-context-menu-stories",2969:"pagination-pagination-nav-stories",3046:"input-password-stories",3280:"tiles-tiles-stories",3314:"patterns-filtering-multiple-categories-stories",3329:"checkbox-checkbox-stories",3402:"tiles-expandable-tile-stories",3523:"contained-list-contained-list-stories",3610:"patterns-filtering-single-selection-stories",3719:"tiles-clickable-tile-stories",3858:"code-snippet-code-snippet-stories",3867:"tag-tag-stories",4232:"patterns-forms-multi-step-form-stories",4253:"tooltip-tooltip-stories",4277:"patterns-dialogs-modal-with-table-stories",4391:"content-switcher-content-switcher-stories",4731:"icon-icon-stories",4762:"patterns-filtering-multi-selection-stories",5167:"button-icon-button-stories",5368:"number-input-number-stories",5455:"layer-layer-stories",5808:"progress-bar-progress-bar-stories",5980:"select-select-stories",6026:"slider-slider-stories",6115:"theme-theme-stories",6274:"tooltip-definition-tooptip-stories",6310:"file-uploader-file-uploader-stories",6322:"popover-popover-stories",6456:"treeview-treeview-stories",6634:"link-link-stories",6663:"datepicker-datepicker-stories",6842:"breadcrumb-breadcrumb-stories",6943:"input-input-stories",7081:"layout-stack-stories",7235:"index-stories",7291:"structured-list-structured-list-stories",7840:"patterns-loading-progressive-loading-stories",7869:"skeleton-skeleton-stories",7931:"notification-notification-stories",8552:"button-button-set-stories",9211:"dropdown-dropdown-stories",9325:"tiles-tile-group-stories",9552:"timepicker-select-timepicker-select-stories",9619:"progress-indicator-progress-indicator-stories",9660:"ui-shell-ui-shell-stories",9736:"combobox-combobox-stories"}[chunkId]||chunkId)+"."+{140:"e0a259e0",210:"e906cf67",384:"c703f9de",459:"066fa432",503:"7113f5a6",703:"93f48d46",760:"c83c0660",799:"05ab4dd7",901:"eac9ade7",911:"a12bca49",933:"c19aca64",972:"699b1e1b",1119:"29184bd5",1127:"2dfd7cce",1345:"9eabf5e2",1470:"39923f01",1562:"1e6a79b6",1895:"0331c090",1928:"e04e2378",2218:"5226939d",2342:"b6c3c440",2371:"7bbf1029",2388:"eca6c3e9",2399:"1a3b5e80",2489:"def6c644",2494:"261bc118",2573:"f7a88c02",2722:"64411dcb",2969:"ad4e83e9",3046:"33a92ba2",3080:"d3996d61",3224:"c0834124",3280:"841048dc",3314:"487f9487",3329:"3aeae19d",3360:"e0c015fc",3402:"97c48cb1",3415:"bd5d140d",3446:"67748550",3523:"b0377336",3610:"e4243e65",3719:"09f1a279",3774:"c37f3d92",3858:"0b374806",3867:"dffa6874",3931:"b0862ad7",4232:"22da53c6",4253:"eb2e347f",4277:"a011175b",4391:"8f3aa078",4731:"7926f3ba",4762:"cae9c326",5069:"eabf32ea",5103:"20115e64",5167:"d6e7f30d",5368:"a1953960",5455:"9fc41371",5808:"36bb008f",5868:"06f13966",5980:"c1077d92",6026:"5884b16a",6115:"66e1727e",6274:"60d42e1c",6310:"7cbeda49",6322:"a91784a3",6456:"7addb70a",6634:"9e3dd976",6663:"adb85d77",6702:"8b6fb391",6765:"2096c92a",6842:"8a783f18",6943:"8154d597",7019:"b8944046",7081:"799a681c",7235:"613320d5",7291:"c86ef32b",7399:"f37bb110",7529:"5272f30b",7773:"6c3cf943",7840:"717ad729",7869:"77f9485f",7931:"624c3d04",8341:"a544f9e9",8552:"1417284a",9115:"b37cce0a",9211:"c20a8aa6",9325:"c925923c",9552:"5b57af49",9558:"40984421",9619:"b7f8dfd4",9660:"b8c5a541",9672:"7b7a4af9",9736:"3bbada2d"}[chunkId]+".iframe.bundle.js"),__webpack_require__.miniCssF=chunkId=>{},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.hmd=module=>((module=Object.create(module)).children||(module.children=[]),Object.defineProperty(module,"exports",{enumerable:!0,set:()=>{throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+module.id)}}),module),__webpack_require__.o=(obj,prop)=>Object.prototype.hasOwnProperty.call(obj,prop),inProgress={},__webpack_require__.l=(url,done,key,chunkId)=>{if(inProgress[url])inProgress[url].push(done);else{var script,needAttach;if(void 0!==key)for(var scripts=document.getElementsByTagName("script"),i=0;i<scripts.length;i++){var s=scripts[i];if(s.getAttribute("src")==url||s.getAttribute("data-webpack")=="carbon-components-angular:"+key){script=s;break}}script||(needAttach=!0,(script=document.createElement("script")).charset="utf-8",script.timeout=120,__webpack_require__.nc&&script.setAttribute("nonce",__webpack_require__.nc),script.setAttribute("data-webpack","carbon-components-angular:"+key),script.src=url),inProgress[url]=[done];var onScriptComplete=(prev,event)=>{script.onerror=script.onload=null,clearTimeout(timeout);var doneFns=inProgress[url];if(delete inProgress[url],script.parentNode&&script.parentNode.removeChild(script),doneFns&&doneFns.forEach((fn=>fn(event))),prev)return prev(event)},timeout=setTimeout(onScriptComplete.bind(null,void 0,{type:"timeout",target:script}),12e4);script.onerror=onScriptComplete.bind(null,script.onerror),script.onload=onScriptComplete.bind(null,script.onload),needAttach&&document.head.appendChild(script)}},__webpack_require__.r=exports=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(exports,"__esModule",{value:!0})},__webpack_require__.nmd=module=>(module.paths=[],module.children||(module.children=[]),module),__webpack_require__.p="",(()=>{var installedChunks={1303:0};__webpack_require__.f.j=(chunkId,promises)=>{var installedChunkData=__webpack_require__.o(installedChunks,chunkId)?installedChunks[chunkId]:void 0;if(0!==installedChunkData)if(installedChunkData)promises.push(installedChunkData[2]);else if(1303!=chunkId){var promise=new Promise(((resolve,reject)=>installedChunkData=installedChunks[chunkId]=[resolve,reject]));promises.push(installedChunkData[2]=promise);var url=__webpack_require__.p+__webpack_require__.u(chunkId),error=new Error;__webpack_require__.l(url,(event=>{if(__webpack_require__.o(installedChunks,chunkId)&&(0!==(installedChunkData=installedChunks[chunkId])&&(installedChunks[chunkId]=void 0),installedChunkData)){var errorType=event&&("load"===event.type?"missing":event.type),realSrc=event&&event.target&&event.target.src;error.message="Loading chunk "+chunkId+" failed.\n("+errorType+": "+realSrc+")",error.name="ChunkLoadError",error.type=errorType,error.request=realSrc,installedChunkData[1](error)}}),"chunk-"+chunkId,chunkId)}else installedChunks[chunkId]=0},__webpack_require__.O.j=chunkId=>0===installedChunks[chunkId];var webpackJsonpCallback=(parentChunkLoadingFunction,data)=>{var moduleId,chunkId,[chunkIds,moreModules,runtime]=data,i=0;if(chunkIds.some((id=>0!==installedChunks[id]))){for(moduleId in moreModules)__webpack_require__.o(moreModules,moduleId)&&(__webpack_require__.m[moduleId]=moreModules[moduleId]);if(runtime)var result=runtime(__webpack_require__)}for(parentChunkLoadingFunction&&parentChunkLoadingFunction(data);i<chunkIds.length;i++)chunkId=chunkIds[i],__webpack_require__.o(installedChunks,chunkId)&&installedChunks[chunkId]&&installedChunks[chunkId][0](),installedChunks[chunkId]=0;return __webpack_require__.O(result)},chunkLoadingGlobal=self.webpackChunkcarbon_components_angular=self.webpackChunkcarbon_components_angular||[];chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null,0)),chunkLoadingGlobal.push=webpackJsonpCallback.bind(null,chunkLoadingGlobal.push.bind(chunkLoadingGlobal))})(),__webpack_require__.nc=void 0})();
@@ -107,7 +107,7 @@ export class Modal {
107
107
  */
108
108
  this.selectorPrimaryFocus = "[modal-primary-focus]";
109
109
  }
110
- ngOnChanges({ open }) {
110
+ ngOnChanges({ open, hasScrollingContent }) {
111
111
  if (open) {
112
112
  if (open.currentValue) {
113
113
  // `100` is just enough time to allow the modal
@@ -124,12 +124,16 @@ export class Modal {
124
124
  this.trigger.focus();
125
125
  }
126
126
  }
127
+ if (hasScrollingContent) {
128
+ this.updateScrollbar();
129
+ }
127
130
  }
128
131
  /**
129
132
  * Set document focus to be on the modal component after it is initialized.
130
133
  */
131
134
  ngAfterViewInit() {
132
135
  this.focusInitialElement();
136
+ this.updateScrollbar();
133
137
  }
134
138
  /**
135
139
  * Handle keyboard events to close modal and tab through the content within the modal.
@@ -185,6 +189,18 @@ export class Modal {
185
189
  setTimeout(() => this.modal.nativeElement.focus());
186
190
  }
187
191
  }
192
+ updateScrollbar() {
193
+ const modalContent = this.modal ? this.modal.nativeElement.querySelector(".cds--modal-content") : null;
194
+ const showScrollbar = this.hasScrollingContent !== null ? this.hasScrollingContent : this.shouldShowScrollbar;
195
+ if (modalContent) {
196
+ if (showScrollbar) {
197
+ this.renderer.addClass(modalContent, "cds--modal-scroll-content");
198
+ }
199
+ else {
200
+ this.renderer.removeClass(modalContent, "cds--modal-scroll-content");
201
+ }
202
+ }
203
+ }
188
204
  }
189
205
  Modal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: Modal, deps: [{ token: i1.BaseModalService }, { token: DOCUMENT }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
190
206
  Modal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: Modal, selector: "cds-modal, ibm-modal", inputs: { size: "size", theme: "theme", ariaLabel: "ariaLabel", open: "open", trigger: "trigger", hasScrollingContent: "hasScrollingContent" }, outputs: { overlaySelected: "overlaySelected", close: "close" }, host: { listeners: { "keydown": "handleKeyboardEvent($event)" } }, viewQueries: [{ propertyName: "modal", first: true, predicate: ["modal"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: `
@@ -206,13 +222,9 @@ Modal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0
206
222
  [attr.aria-label]="ariaLabel"
207
223
  #modal>
208
224
  <ng-content></ng-content>
209
- <div
210
- *ngIf="hasScrollingContent !== null ? hasScrollingContent : shouldShowScrollbar"
211
- class="cds--modal-content--overflow-indicator">
212
- </div>
213
225
  </div>
214
226
  </cds-overlay>
215
- `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.Overlay, selector: "cds-overlay, ibm-overlay", inputs: ["theme", "open"], outputs: ["overlaySelect"] }] });
227
+ `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i3.Overlay, selector: "cds-overlay, ibm-overlay", inputs: ["theme", "open"], outputs: ["overlaySelect"] }] });
216
228
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: Modal, decorators: [{
217
229
  type: Component,
218
230
  args: [{
@@ -236,10 +248,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
236
248
  [attr.aria-label]="ariaLabel"
237
249
  #modal>
238
250
  <ng-content></ng-content>
239
- <div
240
- *ngIf="hasScrollingContent !== null ? hasScrollingContent : shouldShowScrollbar"
241
- class="cds--modal-content--overflow-indicator">
242
- </div>
243
251
  </div>
244
252
  </cds-overlay>
245
253
  `
@@ -270,4 +278,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
270
278
  type: HostListener,
271
279
  args: ["keydown", ["$event"]]
272
280
  }] } });
273
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZGFsL21vZGFsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRU4sU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixTQUFTLEVBSVQsTUFBTSxFQUVOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7O0FBR2xGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5REc7QUE4QkgsTUFBTSxPQUFPLEtBQUs7SUFtRGpCOztPQUVHO0lBQ0gsWUFDUSxZQUE4QixFQUNYLFFBQWtCLEVBQ3BDLFFBQW1CO1FBRnBCLGlCQUFZLEdBQVosWUFBWSxDQUFrQjtRQUNYLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDcEMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQXhENUI7O1dBRUc7UUFDTSxTQUFJLEdBQTZCLElBQUksQ0FBQztRQUMvQzs7V0FFRztRQUNNLFVBQUssR0FBeUIsU0FBUyxDQUFDO1FBRWpEOztXQUVHO1FBQ00sY0FBUyxHQUFHLFNBQVMsQ0FBQztRQUUvQjs7V0FFRztRQUNNLFNBQUksR0FBRyxLQUFLLENBQUM7UUFPdEI7Ozs7O1dBS0c7UUFDTSx3QkFBbUIsR0FBWSxJQUFJLENBQUM7UUFFN0M7O1dBRUc7UUFDTyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDL0M7O1dBRUc7UUFDTyxVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQU1yQzs7V0FFRztRQUNILHlCQUFvQixHQUFHLHVCQUF1QixDQUFDO0lBUzNDLENBQUM7SUFFTCxX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Q0FBQyxFQUFFO1lBQ3BFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDM0U7YUFBTTtZQUNOLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1NBQ25EO0lBQ0YsQ0FBQzs7a0dBM0lXLEtBQUssa0RBd0RSLFFBQVE7c0ZBeERMLEtBQUssbWRBM0JQOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBeUJUOzJGQUVXLEtBQUs7a0JBN0JqQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXlCVDtpQkFDRDs7MEJBeURFLE1BQU07MkJBQUMsUUFBUTtvRUFwRFIsSUFBSTtzQkFBWixLQUFLO2dCQUlHLEtBQUs7c0JBQWIsS0FBSztnQkFLRyxTQUFTO3NCQUFqQixLQUFLO2dCQUtHLElBQUk7c0JBQVosS0FBSztnQkFLRyxPQUFPO3NCQUFmLEtBQUs7Z0JBUUcsbUJBQW1CO3NCQUEzQixLQUFLO2dCQUtJLGVBQWU7c0JBQXhCLE1BQU07Z0JBSUcsS0FBSztzQkFBZCxNQUFNO2dCQUkrQixLQUFLO3NCQUExQyxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBNENwQyxtQkFBbUI7c0JBRGxCLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0QWZ0ZXJWaWV3SW5pdCxcblx0Q29tcG9uZW50LFxuXHRFdmVudEVtaXR0ZXIsXG5cdEhvc3RMaXN0ZW5lcixcblx0SW5wdXQsXG5cdE91dHB1dCxcblx0RWxlbWVudFJlZixcblx0Vmlld0NoaWxkLFxuXHRTaW1wbGVDaGFuZ2VzLFxuXHRPbkNoYW5nZXMsXG5cdFJlbmRlcmVyMixcblx0SW5qZWN0LFxuXHRPbkRlc3Ryb3lcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgY3ljbGVUYWJzLCBnZXRGb2N1c0VsZW1lbnRMaXN0IH0gZnJvbSBcImNhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBCYXNlTW9kYWxTZXJ2aWNlIH0gZnJvbSBcIi4vYmFzZS1tb2RhbC5zZXJ2aWNlXCI7XG5cbi8qKlxuICogQ29tcG9uZW50IHRvIGNyZWF0ZSBtb2RhbHMgZm9yIHByZXNlbnRpbmcgY29udGVudC5cbiAqXG4gKiBbU2VlIGRlbW9dKC4uLy4uLz9wYXRoPS9zdG9yeS9jb21wb25lbnRzLW1vZGFsLS1iYXNpYylcbiAqXG4gKiBVc2luZyBhIG1vZGFsIGluIHlvdXIgYXBwbGljYXRpb24gcmVxdWlyZXMgYGNkcy1wbGFjZWhvbGRlcmAgd2hpY2ggd291bGQgZ2VuZXJhbGx5IGJlXG4gKiBwbGFjZWQgbmVhciB0aGUgZW5kIG9mIHlvdXIgYXBwIGNvbXBvbmVudCB0ZW1wbGF0ZSAoYXBwLmNvbXBvbmVudC50cyBvciBhcHAuY29tcG9uZW50Lmh0bWwpIGFzOlxuICpcbmBgYGh0bWxcbjxjZHMtcGxhY2Vob2xkZXI+PC9jZHMtcGxhY2Vob2xkZXI+XG5gYGBcbiAqXG4gKiBBIG1vcmUgY29tcGxldGUgZXhhbXBsZSBmb3IgYE1vZGFsYCBpcyBnaXZlbiBhcyBmb2xsb3dzOlxuICpcbiAqIEV4YW1wbGUgbW9kYWwgZGVmaW5pdGlvbjpcbiAqXG5gYGB0eXBlc2NyaXB0XG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6IFwiYXBwLXNhbXBsZS1tb2RhbFwiLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdFx0XHQ8Y2RzLW1vZGFsIHNpemU9XCJ4bFwiIChvdmVybGF5U2VsZWN0ZWQpPVwiY2xvc2VNb2RhbCgpXCI+XG5cdFx0XHRcdFx0PGNkcy1tb2RhbC1oZWFkZXIgKGNsb3NlU2VsZWN0KT1cImNsb3NlTW9kYWwoKVwiPkhlYWRlciB0ZXh0PC9jZHMtbW9kYWwtaGVhZGVyPlxuXHRcdFx0XHRcdFx0PHNlY3Rpb24gY2xhc3M9XCJtb2RhbC1ib2R5XCI+XG5cdFx0XHRcdFx0XHRcdDxoMT5TYW1wbGUgbW9kYWwgd29ya3MuPC9oMT5cblx0XHRcdFx0XHRcdFx0PGJ1dHRvbiBjbGFzcz1cImJ0bi0taWNvbi1saW5rXCIgblBvcG92ZXI9XCJIZWxsbyB0aGVyZVwiIHRpdGxlPVwiUG9wb3ZlciB0aXRsZVwiIHBsYWNlbWVudD1cInJpZ2h0XCIgYXBwZW5kSW5saW5lPVwidHJ1ZVwiPlxuXHRcdFx0XHRcdFx0XHRcdDxzdmcgY2RzSWNvbj1cImluZm9cIiBzaXplPVwic21cIj48L3N2Zz5cblx0XHRcdFx0XHRcdFx0PC9idXR0b24+XG5cdFx0XHRcdFx0XHRcdHt7bW9kYWxUZXh0fX1cblx0XHRcdFx0XHRcdDwvc2VjdGlvbj5cblx0XHRcdFx0XHQ8Y2RzLW1vZGFsLWZvb3Rlcj48YnV0dG9uIGNkc0J1dHRvbj1cInByaW1hcnlcIiAoY2xpY2spPVwiY2xvc2VNb2RhbCgpXCI+Q2xvc2U8L2J1dHRvbj48L2Nkcy1tb2RhbC1mb290ZXI+XG5cdFx0XHRcdDwvY2RzLW1vZGFsPmAsXG5cdHN0eWxlVXJsczogW1wiLi9zYW1wbGUtbW9kYWwuY29tcG9uZW50LnNjc3NcIl1cbn0pXG5leHBvcnQgY2xhc3MgU2FtcGxlTW9kYWwgZXh0ZW5kcyBCYXNlTW9kYWwge1xuXHRtb2RhbFRleHQ6IHN0cmluZztcblx0Y29uc3RydWN0b3IocHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3Rvcikge1xuXHRcdHN1cGVyKCk7XG5cdFx0dGhpcy5tb2RhbFRleHQgPSB0aGlzLmluamVjdG9yLmdldChcIm1vZGFsVGV4dFwiKTtcblx0fVxufVxuYGBgXG4gKlxuICogRXhhbXBsZSBvZiBvcGVuaW5nIHRoZSBtb2RhbDpcbiAqXG5gYGB0eXBlc2NyaXB0XG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6IFwiYXBwLW1vZGFsLWRlbW9cIixcblx0dGVtcGxhdGU6IGBcblx0XHRcdFx0PGJ1dHRvbiBjZHNCdXR0b249XCJwcmltYXJ5XCIgKGNsaWNrKT1cIm9wZW5Nb2RhbCgnZHJpbGwnKVwiPkRyaWxsLWRvd24gbW9kYWw8L2J1dHRvbj5cblx0XHRcdFx0PGNkcy1wbGFjZWhvbGRlcj48L2Nkcy1wbGFjZWhvbGRlcj5gXG59KVxuZXhwb3J0IGNsYXNzIE1vZGFsRGVtbyB7XG5cdG9wZW5Nb2RhbCgpIHtcblx0XHR0aGlzLm1vZGFsU2VydmljZS5jcmVhdGUoe2NvbXBvbmVudDogU2FtcGxlTW9kYWwsIGlucHV0czoge21vZGFsVGV4dDogXCJIZWxsbyB1bml2ZXJzZS5cIn19KTtcblx0fVxufVxuYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogXCJjZHMtbW9kYWwsIGlibS1tb2RhbFwiLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxjZHMtb3ZlcmxheVxuXHRcdFx0W3RoZW1lXT1cInRoZW1lXCJcblx0XHRcdFtvcGVuXT1cIm9wZW5cIlxuXHRcdFx0KG92ZXJsYXlTZWxlY3QpPVwib3ZlcmxheVNlbGVjdGVkLmVtaXQoKVwiPlxuXHRcdFx0PGRpdlxuXHRcdFx0XHRjbGFzcz1cImNkcy0tbW9kYWwtY29udGFpbmVyXCJcblx0XHRcdFx0W25nQ2xhc3NdPVwie1xuXHRcdFx0XHRcdCdjZHMtLW1vZGFsLWNvbnRhaW5lci0teHMnOiBzaXplID09PSAneHMnLFxuXHRcdFx0XHRcdCdjZHMtLW1vZGFsLWNvbnRhaW5lci0tc20nOiBzaXplID09PSAnc20nLFxuXHRcdFx0XHRcdCdjZHMtLW1vZGFsLWNvbnRhaW5lci0tbWQnOiBzaXplID09PSAnbWQnLFxuXHRcdFx0XHRcdCdjZHMtLW1vZGFsLWNvbnRhaW5lci0tbGcnOiBzaXplID09PSAnbGcnXG5cdFx0XHRcdH1cIlxuXHRcdFx0XHRyb2xlPVwiZGlhbG9nXCJcblx0XHRcdFx0YXJpYS1tb2RhbD1cInRydWVcIlxuXHRcdFx0XHRzdHlsZT1cInotaW5kZXg6MTtcIlxuXHRcdFx0XHRbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG5cdFx0XHRcdCNtb2RhbD5cblx0XHRcdFx0PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXHRcdFx0XHQ8ZGl2XG5cdFx0XHRcdFx0Km5nSWY9XCJoYXNTY3JvbGxpbmdDb250ZW50ICE9PSBudWxsID8gaGFzU2Nyb2xsaW5nQ29udGVudCA6IHNob3VsZFNob3dTY3JvbGxiYXJcIlxuXHRcdFx0XHRcdGNsYXNzPVwiY2RzLS1tb2RhbC1jb250ZW50LS1vdmVyZmxvdy1pbmRpY2F0b3JcIj5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Nkcy1vdmVybGF5PlxuXHRgXG59KVxuZXhwb3J0IGNsYXNzIE1vZGFsIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuXHQvKipcblx0ICogU2l6ZSBvZiB0aGUgbW9kYWwgdG8gZGlzcGxheS5cblx0ICovXG5cdEBJbnB1dCgpIHNpemU6IFwieHNcIiB8IFwic21cInwgXCJtZFwiIHwgXCJsZ1wiID0gXCJtZFwiO1xuXHQvKipcblx0ICogQ2xhc3NpZmljYXRpb24gb2YgdGhlIG1vZGFsLlxuXHQgKi9cblx0QElucHV0KCkgdGhlbWU6IFwiZGVmYXVsdFwiIHwgXCJkYW5nZXJcIiA9IFwiZGVmYXVsdFwiO1xuXG5cdC8qKlxuXHQgKiBMYWJlbCBmb3IgdGhlIG1vZGFsLlxuXHQgKi9cblx0QElucHV0KCkgYXJpYUxhYmVsID0gXCJkZWZhdWx0XCI7XG5cblx0LyoqXG5cdCAqIENvbnRyb2xzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBtb2RhbCB3aGVuIHVzZWQgZGlyZWN0bHkgaW4gYSB0ZW1wbGF0ZVxuXHQgKi9cblx0QElucHV0KCkgb3BlbiA9IGZhbHNlO1xuXG5cdC8qKlxuXHQgKiBUaGUgZWxlbWVudCB0aGF0IHRyaWdnZXJzIHRoZSBtb2RhbCwgd2hpY2ggc2hvdWxkIHJlY2VpdmUgZm9jdXMgd2hlbiB0aGUgbW9kYWwgY2xvc2VzXG5cdCAqL1xuXHRASW5wdXQoKSB0cmlnZ2VyOiBIVE1MRWxlbWVudDtcblxuXHQvKipcblx0ICogU3BlY2lmeSB3aGV0aGVyIHRoZSBtb2RhbCBjb250YWlucyBzY3JvbGxpbmcgY29udGVudC4gVGhpcyBwcm9wZXJ0eSBvdmVycmlkZXMgdGhlIGF1dG9tYXRpY1xuXHQgKiBkZXRlY3Rpb24gb2YgdGhlIGV4aXN0ZW5jZSBvZiBzY3JvbGxpbmcgY29udGVudC4gU2V0IHRoaXMgcHJvcGVydHkgdG8gYHRydWVgIHRvIGZvcmNlXG5cdCAqIG92ZXJmbG93IGluZGljYXRvciB0byBzaG93IHVwIG9yIHRvIGBmYWxzZWAgdG8gZm9yY2Ugb3ZlcmZsb3cgaW5kaWNhdG9yIHRvIGRpc2FwcGVhci5cblx0ICogSXQgaXMgc2V0IHRvIGBudWxsYCBieSBkZWZhdWx0IHdoaWNoIGluZGljYXRlcyBub3QgdG8gb3ZlcnJpZGUgYXV0b21hdGljIGRldGVjdGlvbi5cblx0ICovXG5cdEBJbnB1dCgpIGhhc1Njcm9sbGluZ0NvbnRlbnQ6IGJvb2xlYW4gPSBudWxsO1xuXG5cdC8qKlxuXHQgKiBFbWl0cyBldmVudCB3aGVuIGNsaWNrIG9jY3VycyB3aXRoaW4gYG4tb3ZlcmxheWAgZWxlbWVudC4gVGhpcyBpcyB0byB0cmFjayBjbGljayBldmVudHMgb2NjdXJyaW5nIG91dHNpZGUgYm91bmRzIG9mIHRoZSBgTW9kYWxgIG9iamVjdC5cblx0ICovXG5cdEBPdXRwdXQoKSBvdmVybGF5U2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cdC8qKlxuXHQgKiBUbyBlbWl0IHRoZSBjbG9zaW5nIGV2ZW50IG9mIHRoZSBtb2RhbCB3aW5kb3cuXG5cdCAqL1xuXHRAT3V0cHV0KCkgY2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cdC8qKlxuXHQgKiBNYWludGFpbnMgYSByZWZlcmVuY2UgdG8gdGhlIHZpZXcgRE9NIGVsZW1lbnQgb2YgdGhlIGBNb2RhbGAuXG5cdCAqL1xuXHRAVmlld0NoaWxkKFwibW9kYWxcIiwgeyBzdGF0aWM6IHRydWUgfSkgbW9kYWw6IEVsZW1lbnRSZWY7XG5cblx0LyoqXG5cdCAqIEFuIGVsZW1lbnQgc2hvdWxkIGhhdmUgJ21vZGFsLXByaW1hcnktZm9jdXMnIGFzIGFuIGF0dHJpYnV0ZSB0byByZWNlaXZlIGluaXRpYWwgZm9jdXMgd2l0aGluIHRoZSBgTW9kYWxgIGNvbXBvbmVudC5cblx0ICovXG5cdHNlbGVjdG9yUHJpbWFyeUZvY3VzID0gXCJbbW9kYWwtcHJpbWFyeS1mb2N1c11cIjtcblxuXHQvKipcblx0ICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBgTW9kYWxgLlxuXHQgKi9cblx0Y29uc3RydWN0b3IoXG5cdFx0cHVibGljIG1vZGFsU2VydmljZTogQmFzZU1vZGFsU2VydmljZSxcblx0XHRASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcblx0XHRwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjJcblx0KSB7IH1cblxuXHRuZ09uQ2hhbmdlcyh7IG9wZW4gfTogU2ltcGxlQ2hhbmdlcykge1xuXHRcdGlmIChvcGVuKSB7XG5cdFx0XHRpZiAob3Blbi5jdXJyZW50VmFsdWUpIHtcblx0XHRcdFx0Ly8gYDEwMGAgaXMganVzdCBlbm91Z2ggdGltZSB0byBhbGxvdyB0aGUgbW9kYWxcblx0XHRcdFx0Ly8gdG8gYmVjb21lIHZpc2libGUsIHNvIHRoYXQgd2UgY2FuIHNldCBmb2N1c1xuXHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHRoaXMuZm9jdXNJbml0aWFsRWxlbWVudCgpLCAxMDApO1xuXHRcdFx0XHQvLyBQcmV2ZW50IHNjcm9sbGluZyBvbiBvcGVuXG5cdFx0XHRcdHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5kb2N1bWVudC5ib2R5LCBcImNkcy0tYm9keS0td2l0aC1tb2RhbC1vcGVuXCIpO1xuXHRcdFx0fSBlbHNlIGlmICghb3Blbi5jdXJyZW50VmFsdWUpIHtcblx0XHRcdFx0Ly8gRW5hYmxlIHNjcm9sbGluZyBvbiBjbG9zZVxuXHRcdFx0XHR0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZG9jdW1lbnQuYm9keSwgXCJjZHMtLWJvZHktLXdpdGgtbW9kYWwtb3BlblwiKTtcblx0XHRcdH0gZWxzZSBpZiAodGhpcy50cmlnZ2VyKSB7XG5cdFx0XHRcdHRoaXMudHJpZ2dlci5mb2N1cygpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBTZXQgZG9jdW1lbnQgZm9jdXMgdG8gYmUgb24gdGhlIG1vZGFsIGNvbXBvbmVudCBhZnRlciBpdCBpcyBpbml0aWFsaXplZC5cblx0ICovXG5cdG5nQWZ0ZXJWaWV3SW5pdCgpIHtcblx0XHR0aGlzLmZvY3VzSW5pdGlhbEVsZW1lbnQoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBIYW5kbGUga2V5Ym9hcmQgZXZlbnRzIHRvIGNsb3NlIG1vZGFsIGFuZCB0YWIgdGhyb3VnaCB0aGUgY29udGVudCB3aXRoaW4gdGhlIG1vZGFsLlxuXHQgKi9cblx0QEhvc3RMaXN0ZW5lcihcImtleWRvd25cIiwgW1wiJGV2ZW50XCJdKVxuXHRoYW5kbGVLZXlib2FyZEV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG5cdFx0c3dpdGNoIChldmVudC5rZXkpIHtcblx0XHRcdGNhc2UgXCJFc2NhcGVcIjoge1xuXHRcdFx0XHRldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTsgIC8vIHByZXZlbnRzIGV2ZW50cyBiZWluZyBmaXJlZCBmb3IgbXVsdGlwbGUgbW9kYWxzIGlmIG1vcmUgdGhhbiAyIG9wZW5cblx0XHRcdFx0Ly8gTWFudWFsbHkgY2xvc2UgbW9kYWxcblx0XHRcdFx0dGhpcy5vcGVuID0gZmFsc2U7XG5cdFx0XHRcdHRoaXMuY2xvc2UuZW1pdCgpO1xuXHRcdFx0XHR0aGlzLm1vZGFsU2VydmljZS5kZXN0cm95KCk7ICAvLyBkZXN0cm95IHRvcCAobGF0ZXN0KSBtb2RhbFxuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblxuXHRcdFx0Y2FzZSBcIlRhYlwiOiB7XG5cdFx0XHRcdGN5Y2xlVGFicyhldmVudCwgdGhpcy5tb2RhbC5uYXRpdmVFbGVtZW50KTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFRoaXMgZGV0ZWN0cyB3aGV0aGVyIG9yIG5vdCB0aGUgbW9kYWwgY29udGFpbnMgc2Nyb2xsaW5nIGNvbnRlbnQuXG5cdCAqXG5cdCAqIFRvIGZvcmNlIHRyaWdnZXIgYSBkZXRlY3Rpb24gKGllLiBvbiB3aW5kb3cgcmVzaXplKSwgY2hhbmdlIG9yIHJlc2V0IHRoZSB2YWx1ZSBvZiB0aGUgbW9kYWwgY29udGVudC5cblx0ICpcblx0ICogVXNlIHRoZSBgaGFzU2Nyb2xsaW5nQ29udGVudGAgaW5wdXQgdG8gbWFudWFsbHkgb3ZlcnJpZGUgdGhlIG92ZXJmbG93IGluZGljYXRvci5cblx0ICovXG5cdGdldCBzaG91bGRTaG93U2Nyb2xsYmFyKCkge1xuXHRcdGNvbnN0IG1vZGFsQ29udGVudCA9IHRoaXMubW9kYWwgPyB0aGlzLm1vZGFsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcIi5jZHMtLW1vZGFsLWNvbnRlbnRcIikgOiBudWxsO1xuXHRcdGlmIChtb2RhbENvbnRlbnQpIHtcblx0XHRcdC8vIGdldCByb3VuZGVkIHZhbHVlIGZyb20gaGVpZ2h0IHRvIG1hdGNoIGludGVnZXIgcmV0dXJuZWQgZnJvbSBzY3JvbGxIZWlnaHRcblx0XHRcdGNvbnN0IG1vZGFsQ29udGVudEhlaWdodCA9IE1hdGguY2VpbChtb2RhbENvbnRlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0KTtcblx0XHRcdGNvbnN0IG1vZGFsQ29udGVudFNjcm9sbEhlaWdodCA9IG1vZGFsQ29udGVudC5zY3JvbGxIZWlnaHQ7XG5cdFx0XHRyZXR1cm4gbW9kYWxDb250ZW50U2Nyb2xsSGVpZ2h0ID4gbW9kYWxDb250ZW50SGVpZ2h0O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXHR9XG5cblx0Ly8gUmVtb3ZlIGNsYXNzIHByZXZlbnRpbmcgc2Nyb2xsaW5nXG5cdG5nT25EZXN0cm95KCkge1xuXHRcdHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5kb2N1bWVudC5ib2R5LCBcImNkcy0tYm9keS0td2l0aC1tb2RhbC1vcGVuXCIpO1xuXHR9XG5cblx0cHJvdGVjdGVkIGZvY3VzSW5pdGlhbEVsZW1lbnQoKSB7XG5cdFx0Y29uc3QgcHJpbWFyeUZvY3VzRWxlbWVudCA9IHRoaXMubW9kYWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKHRoaXMuc2VsZWN0b3JQcmltYXJ5Rm9jdXMpO1xuXHRcdGlmIChwcmltYXJ5Rm9jdXNFbGVtZW50ICYmIHByaW1hcnlGb2N1c0VsZW1lbnQuZm9jdXMpIHtcblx0XHRcdHNldFRpbWVvdXQoKCkgPT4gcHJpbWFyeUZvY3VzRWxlbWVudC5mb2N1cygpKTtcblx0XHR9IGVsc2UgaWYgKGdldEZvY3VzRWxlbWVudExpc3QodGhpcy5tb2RhbC5uYXRpdmVFbGVtZW50KS5sZW5ndGggPiAwKSB7XG5cdFx0XHRzZXRUaW1lb3V0KCgpID0+IGdldEZvY3VzRWxlbWVudExpc3QodGhpcy5tb2RhbC5uYXRpdmVFbGVtZW50KVswXS5mb2N1cygpKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0c2V0VGltZW91dCgoKSA9PiB0aGlzLm1vZGFsLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKSk7XG5cdFx0fVxuXHR9XG59XG4iXX0=
281
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZGFsL21vZGFsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRU4sU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixTQUFTLEVBSVQsTUFBTSxFQUVOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7O0FBR2xGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5REc7QUEwQkgsTUFBTSxPQUFPLEtBQUs7SUFtRGpCOztPQUVHO0lBQ0gsWUFDUSxZQUE4QixFQUNYLFFBQWtCLEVBQ3BDLFFBQW1CO1FBRnBCLGlCQUFZLEdBQVosWUFBWSxDQUFrQjtRQUNYLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDcEMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQXhENUI7O1dBRUc7UUFDTSxTQUFJLEdBQTZCLElBQUksQ0FBQztRQUMvQzs7V0FFRztRQUNNLFVBQUssR0FBeUIsU0FBUyxDQUFDO1FBRWpEOztXQUVHO1FBQ00sY0FBUyxHQUFHLFNBQVMsQ0FBQztRQUUvQjs7V0FFRztRQUNNLFNBQUksR0FBRyxLQUFLLENBQUM7UUFPdEI7Ozs7O1dBS0c7UUFDTSx3QkFBbUIsR0FBWSxJQUFJLENBQUM7UUFFN0M7O1dBRUc7UUFDTyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDL0M7O1dBRUc7UUFDTyxVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQU1yQzs7V0FFRztRQUNILHlCQUFvQixHQUFHLHVCQUF1QixDQUFDO0lBUzNDLENBQUM7SUFFTCxX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RUFBRSxzQkFBc0I7b0JBQ2hDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBcUJUO2lCQUNEOzswQkF5REUsTUFBTTsyQkFBQyxRQUFRO29FQXBEUixJQUFJO3NCQUFaLEtBQUs7Z0JBSUcsS0FBSztzQkFBYixLQUFLO2dCQUtHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBS0csSUFBSTtzQkFBWixLQUFLO2dCQUtHLE9BQU87c0JBQWYsS0FBSztnQkFRRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBS0ksZUFBZTtzQkFBeEIsTUFBTTtnQkFJRyxLQUFLO3NCQUFkLE1BQU07Z0JBSStCLEtBQUs7c0JBQTFDLFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFnRHBDLG1CQUFtQjtzQkFEbEIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRBZnRlclZpZXdJbml0LFxuXHRDb21wb25lbnQsXG5cdEV2ZW50RW1pdHRlcixcblx0SG9zdExpc3RlbmVyLFxuXHRJbnB1dCxcblx0T3V0cHV0LFxuXHRFbGVtZW50UmVmLFxuXHRWaWV3Q2hpbGQsXG5cdFNpbXBsZUNoYW5nZXMsXG5cdE9uQ2hhbmdlcyxcblx0UmVuZGVyZXIyLFxuXHRJbmplY3QsXG5cdE9uRGVzdHJveVxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBjeWNsZVRhYnMsIGdldEZvY3VzRWxlbWVudExpc3QgfSBmcm9tIFwiY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IEJhc2VNb2RhbFNlcnZpY2UgfSBmcm9tIFwiLi9iYXNlLW1vZGFsLnNlcnZpY2VcIjtcblxuLyoqXG4gKiBDb21wb25lbnQgdG8gY3JlYXRlIG1vZGFscyBmb3IgcHJlc2VudGluZyBjb250ZW50LlxuICpcbiAqIFtTZWUgZGVtb10oLi4vLi4vP3BhdGg9L3N0b3J5L2NvbXBvbmVudHMtbW9kYWwtLWJhc2ljKVxuICpcbiAqIFVzaW5nIGEgbW9kYWwgaW4geW91ciBhcHBsaWNhdGlvbiByZXF1aXJlcyBgY2RzLXBsYWNlaG9sZGVyYCB3aGljaCB3b3VsZCBnZW5lcmFsbHkgYmVcbiAqIHBsYWNlZCBuZWFyIHRoZSBlbmQgb2YgeW91ciBhcHAgY29tcG9uZW50IHRlbXBsYXRlIChhcHAuY29tcG9uZW50LnRzIG9yIGFwcC5jb21wb25lbnQuaHRtbCkgYXM6XG4gKlxuYGBgaHRtbFxuPGNkcy1wbGFjZWhvbGRlcj48L2Nkcy1wbGFjZWhvbGRlcj5cbmBgYFxuICpcbiAqIEEgbW9yZSBjb21wbGV0ZSBleGFtcGxlIGZvciBgTW9kYWxgIGlzIGdpdmVuIGFzIGZvbGxvd3M6XG4gKlxuICogRXhhbXBsZSBtb2RhbCBkZWZpbml0aW9uOlxuICpcbmBgYHR5cGVzY3JpcHRcbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogXCJhcHAtc2FtcGxlLW1vZGFsXCIsXG5cdHRlbXBsYXRlOiBgXG5cdFx0XHRcdDxjZHMtbW9kYWwgc2l6ZT1cInhsXCIgKG92ZXJsYXlTZWxlY3RlZCk9XCJjbG9zZU1vZGFsKClcIj5cblx0XHRcdFx0XHQ8Y2RzLW1vZGFsLWhlYWRlciAoY2xvc2VTZWxlY3QpPVwiY2xvc2VNb2RhbCgpXCI+SGVhZGVyIHRleHQ8L2Nkcy1tb2RhbC1oZWFkZXI+XG5cdFx0XHRcdFx0XHQ8c2VjdGlvbiBjbGFzcz1cIm1vZGFsLWJvZHlcIj5cblx0XHRcdFx0XHRcdFx0PGgxPlNhbXBsZSBtb2RhbCB3b3Jrcy48L2gxPlxuXHRcdFx0XHRcdFx0XHQ8YnV0dG9uIGNsYXNzPVwiYnRuLS1pY29uLWxpbmtcIiBuUG9wb3Zlcj1cIkhlbGxvIHRoZXJlXCIgdGl0bGU9XCJQb3BvdmVyIHRpdGxlXCIgcGxhY2VtZW50PVwicmlnaHRcIiBhcHBlbmRJbmxpbmU9XCJ0cnVlXCI+XG5cdFx0XHRcdFx0XHRcdFx0PHN2ZyBjZHNJY29uPVwiaW5mb1wiIHNpemU9XCJzbVwiPjwvc3ZnPlxuXHRcdFx0XHRcdFx0XHQ8L2J1dHRvbj5cblx0XHRcdFx0XHRcdFx0e3ttb2RhbFRleHR9fVxuXHRcdFx0XHRcdFx0PC9zZWN0aW9uPlxuXHRcdFx0XHRcdDxjZHMtbW9kYWwtZm9vdGVyPjxidXR0b24gY2RzQnV0dG9uPVwicHJpbWFyeVwiIChjbGljayk9XCJjbG9zZU1vZGFsKClcIj5DbG9zZTwvYnV0dG9uPjwvY2RzLW1vZGFsLWZvb3Rlcj5cblx0XHRcdFx0PC9jZHMtbW9kYWw+YCxcblx0c3R5bGVVcmxzOiBbXCIuL3NhbXBsZS1tb2RhbC5jb21wb25lbnQuc2Nzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBTYW1wbGVNb2RhbCBleHRlbmRzIEJhc2VNb2RhbCB7XG5cdG1vZGFsVGV4dDogc3RyaW5nO1xuXHRjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yKSB7XG5cdFx0c3VwZXIoKTtcblx0XHR0aGlzLm1vZGFsVGV4dCA9IHRoaXMuaW5qZWN0b3IuZ2V0KFwibW9kYWxUZXh0XCIpO1xuXHR9XG59XG5gYGBcbiAqXG4gKiBFeGFtcGxlIG9mIG9wZW5pbmcgdGhlIG1vZGFsOlxuICpcbmBgYHR5cGVzY3JpcHRcbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogXCJhcHAtbW9kYWwtZGVtb1wiLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdFx0XHQ8YnV0dG9uIGNkc0J1dHRvbj1cInByaW1hcnlcIiAoY2xpY2spPVwib3Blbk1vZGFsKCdkcmlsbCcpXCI+RHJpbGwtZG93biBtb2RhbDwvYnV0dG9uPlxuXHRcdFx0XHQ8Y2RzLXBsYWNlaG9sZGVyPjwvY2RzLXBsYWNlaG9sZGVyPmBcbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxEZW1vIHtcblx0b3Blbk1vZGFsKCkge1xuXHRcdHRoaXMubW9kYWxTZXJ2aWNlLmNyZWF0ZSh7Y29tcG9uZW50OiBTYW1wbGVNb2RhbCwgaW5wdXRzOiB7bW9kYWxUZXh0OiBcIkhlbGxvIHVuaXZlcnNlLlwifX0pO1xuXHR9XG59XG5gYGBcbiAqL1xuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiBcImNkcy1tb2RhbCwgaWJtLW1vZGFsXCIsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PGNkcy1vdmVybGF5XG5cdFx0XHRbdGhlbWVdPVwidGhlbWVcIlxuXHRcdFx0W29wZW5dPVwib3BlblwiXG5cdFx0XHQob3ZlcmxheVNlbGVjdCk9XCJvdmVybGF5U2VsZWN0ZWQuZW1pdCgpXCI+XG5cdFx0XHQ8ZGl2XG5cdFx0XHRcdGNsYXNzPVwiY2RzLS1tb2RhbC1jb250YWluZXJcIlxuXHRcdFx0XHRbbmdDbGFzc109XCJ7XG5cdFx0XHRcdFx0J2Nkcy0tbW9kYWwtY29udGFpbmVyLS14cyc6IHNpemUgPT09ICd4cycsXG5cdFx0XHRcdFx0J2Nkcy0tbW9kYWwtY29udGFpbmVyLS1zbSc6IHNpemUgPT09ICdzbScsXG5cdFx0XHRcdFx0J2Nkcy0tbW9kYWwtY29udGFpbmVyLS1tZCc6IHNpemUgPT09ICdtZCcsXG5cdFx0XHRcdFx0J2Nkcy0tbW9kYWwtY29udGFpbmVyLS1sZyc6IHNpemUgPT09ICdsZydcblx0XHRcdFx0fVwiXG5cdFx0XHRcdHJvbGU9XCJkaWFsb2dcIlxuXHRcdFx0XHRhcmlhLW1vZGFsPVwidHJ1ZVwiXG5cdFx0XHRcdHN0eWxlPVwiei1pbmRleDoxO1wiXG5cdFx0XHRcdFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcblx0XHRcdFx0I21vZGFsPlxuXHRcdFx0XHQ8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Nkcy1vdmVybGF5PlxuXHRgXG59KVxuZXhwb3J0IGNsYXNzIE1vZGFsIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuXHQvKipcblx0ICogU2l6ZSBvZiB0aGUgbW9kYWwgdG8gZGlzcGxheS5cblx0ICovXG5cdEBJbnB1dCgpIHNpemU6IFwieHNcIiB8IFwic21cInwgXCJtZFwiIHwgXCJsZ1wiID0gXCJtZFwiO1xuXHQvKipcblx0ICogQ2xhc3NpZmljYXRpb24gb2YgdGhlIG1vZGFsLlxuXHQgKi9cblx0QElucHV0KCkgdGhlbWU6IFwiZGVmYXVsdFwiIHwgXCJkYW5nZXJcIiA9IFwiZGVmYXVsdFwiO1xuXG5cdC8qKlxuXHQgKiBMYWJlbCBmb3IgdGhlIG1vZGFsLlxuXHQgKi9cblx0QElucHV0KCkgYXJpYUxhYmVsID0gXCJkZWZhdWx0XCI7XG5cblx0LyoqXG5cdCAqIENvbnRyb2xzIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBtb2RhbCB3aGVuIHVzZWQgZGlyZWN0bHkgaW4gYSB0ZW1wbGF0ZVxuXHQgKi9cblx0QElucHV0KCkgb3BlbiA9IGZhbHNlO1xuXG5cdC8qKlxuXHQgKiBUaGUgZWxlbWVudCB0aGF0IHRyaWdnZXJzIHRoZSBtb2RhbCwgd2hpY2ggc2hvdWxkIHJlY2VpdmUgZm9jdXMgd2hlbiB0aGUgbW9kYWwgY2xvc2VzXG5cdCAqL1xuXHRASW5wdXQoKSB0cmlnZ2VyOiBIVE1MRWxlbWVudDtcblxuXHQvKipcblx0ICogU3BlY2lmeSB3aGV0aGVyIHRoZSBtb2RhbCBjb250YWlucyBzY3JvbGxpbmcgY29udGVudC4gVGhpcyBwcm9wZXJ0eSBvdmVycmlkZXMgdGhlIGF1dG9tYXRpY1xuXHQgKiBkZXRlY3Rpb24gb2YgdGhlIGV4aXN0ZW5jZSBvZiBzY3JvbGxpbmcgY29udGVudC4gU2V0IHRoaXMgcHJvcGVydHkgdG8gYHRydWVgIHRvIGZvcmNlXG5cdCAqIG92ZXJmbG93IGluZGljYXRvciB0byBzaG93IHVwIG9yIHRvIGBmYWxzZWAgdG8gZm9yY2Ugb3ZlcmZsb3cgaW5kaWNhdG9yIHRvIGRpc2FwcGVhci5cblx0ICogSXQgaXMgc2V0IHRvIGBudWxsYCBieSBkZWZhdWx0IHdoaWNoIGluZGljYXRlcyBub3QgdG8gb3ZlcnJpZGUgYXV0b21hdGljIGRldGVjdGlvbi5cblx0ICovXG5cdEBJbnB1dCgpIGhhc1Njcm9sbGluZ0NvbnRlbnQ6IGJvb2xlYW4gPSBudWxsO1xuXG5cdC8qKlxuXHQgKiBFbWl0cyBldmVudCB3aGVuIGNsaWNrIG9jY3VycyB3aXRoaW4gYG4tb3ZlcmxheWAgZWxlbWVudC4gVGhpcyBpcyB0byB0cmFjayBjbGljayBldmVudHMgb2NjdXJyaW5nIG91dHNpZGUgYm91bmRzIG9mIHRoZSBgTW9kYWxgIG9iamVjdC5cblx0ICovXG5cdEBPdXRwdXQoKSBvdmVybGF5U2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cdC8qKlxuXHQgKiBUbyBlbWl0IHRoZSBjbG9zaW5nIGV2ZW50IG9mIHRoZSBtb2RhbCB3aW5kb3cuXG5cdCAqL1xuXHRAT3V0cHV0KCkgY2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cdC8qKlxuXHQgKiBNYWludGFpbnMgYSByZWZlcmVuY2UgdG8gdGhlIHZpZXcgRE9NIGVsZW1lbnQgb2YgdGhlIGBNb2RhbGAuXG5cdCAqL1xuXHRAVmlld0NoaWxkKFwibW9kYWxcIiwgeyBzdGF0aWM6IHRydWUgfSkgbW9kYWw6IEVsZW1lbnRSZWY7XG5cblx0LyoqXG5cdCAqIEFuIGVsZW1lbnQgc2hvdWxkIGhhdmUgJ21vZGFsLXByaW1hcnktZm9jdXMnIGFzIGFuIGF0dHJpYnV0ZSB0byByZWNlaXZlIGluaXRpYWwgZm9jdXMgd2l0aGluIHRoZSBgTW9kYWxgIGNvbXBvbmVudC5cblx0ICovXG5cdHNlbGVjdG9yUHJpbWFyeUZvY3VzID0gXCJbbW9kYWwtcHJpbWFyeS1mb2N1c11cIjtcblxuXHQvKipcblx0ICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBgTW9kYWxgLlxuXHQgKi9cblx0Y29uc3RydWN0b3IoXG5cdFx0cHVibGljIG1vZGFsU2VydmljZTogQmFzZU1vZGFsU2VydmljZSxcblx0XHRASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcblx0XHRwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjJcblx0KSB7IH1cblxuXHRuZ09uQ2hhbmdlcyh7IG9wZW4sIGhhc1Njcm9sbGluZ0NvbnRlbnQgfTogU2ltcGxlQ2hhbmdlcykge1xuXHRcdGlmIChvcGVuKSB7XG5cdFx0XHRpZiAob3Blbi5jdXJyZW50VmFsdWUpIHtcblx0XHRcdFx0Ly8gYDEwMGAgaXMganVzdCBlbm91Z2ggdGltZSB0byBhbGxvdyB0aGUgbW9kYWxcblx0XHRcdFx0Ly8gdG8gYmVjb21lIHZpc2libGUsIHNvIHRoYXQgd2UgY2FuIHNldCBmb2N1c1xuXHRcdFx0XHRzZXRUaW1lb3V0KCgpID0+IHRoaXMuZm9jdXNJbml0aWFsRWxlbWVudCgpLCAxMDApO1xuXHRcdFx0XHQvLyBQcmV2ZW50IHNjcm9sbGluZyBvbiBvcGVuXG5cdFx0XHRcdHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5kb2N1bWVudC5ib2R5LCBcImNkcy0tYm9keS0td2l0aC1tb2RhbC1vcGVuXCIpO1xuXHRcdFx0fSBlbHNlIGlmICghb3Blbi5jdXJyZW50VmFsdWUpIHtcblx0XHRcdFx0Ly8gRW5hYmxlIHNjcm9sbGluZyBvbiBjbG9zZVxuXHRcdFx0XHR0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZG9jdW1lbnQuYm9keSwgXCJjZHMtLWJvZHktLXdpdGgtbW9kYWwtb3BlblwiKTtcblx0XHRcdH0gZWxzZSBpZiAodGhpcy50cmlnZ2VyKSB7XG5cdFx0XHRcdHRoaXMudHJpZ2dlci5mb2N1cygpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAoaGFzU2Nyb2xsaW5nQ29udGVudCkge1xuXHRcdFx0dGhpcy51cGRhdGVTY3JvbGxiYXIoKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogU2V0IGRvY3VtZW50IGZvY3VzIHRvIGJlIG9uIHRoZSBtb2RhbCBjb21wb25lbnQgYWZ0ZXIgaXQgaXMgaW5pdGlhbGl6ZWQuXG5cdCAqL1xuXHRuZ0FmdGVyVmlld0luaXQoKSB7XG5cdFx0dGhpcy5mb2N1c0luaXRpYWxFbGVtZW50KCk7XG5cdFx0dGhpcy51cGRhdGVTY3JvbGxiYXIoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBIYW5kbGUga2V5Ym9hcmQgZXZlbnRzIHRvIGNsb3NlIG1vZGFsIGFuZCB0YWIgdGhyb3VnaCB0aGUgY29udGVudCB3aXRoaW4gdGhlIG1vZGFsLlxuXHQgKi9cblx0QEhvc3RMaXN0ZW5lcihcImtleWRvd25cIiwgW1wiJGV2ZW50XCJdKVxuXHRoYW5kbGVLZXlib2FyZEV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG5cdFx0c3dpdGNoIChldmVudC5rZXkpIHtcblx0XHRcdGNhc2UgXCJFc2NhcGVcIjoge1xuXHRcdFx0XHRldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTsgIC8vIHByZXZlbnRzIGV2ZW50cyBiZWluZyBmaXJlZCBmb3IgbXVsdGlwbGUgbW9kYWxzIGlmIG1vcmUgdGhhbiAyIG9wZW5cblx0XHRcdFx0Ly8gTWFudWFsbHkgY2xvc2UgbW9kYWxcblx0XHRcdFx0dGhpcy5vcGVuID0gZmFsc2U7XG5cdFx0XHRcdHRoaXMuY2xvc2UuZW1pdCgpO1xuXHRcdFx0XHR0aGlzLm1vZGFsU2VydmljZS5kZXN0cm95KCk7ICAvLyBkZXN0cm95IHRvcCAobGF0ZXN0KSBtb2RhbFxuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblxuXHRcdFx0Y2FzZSBcIlRhYlwiOiB7XG5cdFx0XHRcdGN5Y2xlVGFicyhldmVudCwgdGhpcy5tb2RhbC5uYXRpdmVFbGVtZW50KTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFRoaXMgZGV0ZWN0cyB3aGV0aGVyIG9yIG5vdCB0aGUgbW9kYWwgY29udGFpbnMgc2Nyb2xsaW5nIGNvbnRlbnQuXG5cdCAqXG5cdCAqIFRvIGZvcmNlIHRyaWdnZXIgYSBkZXRlY3Rpb24gKGllLiBvbiB3aW5kb3cgcmVzaXplKSwgY2hhbmdlIG9yIHJlc2V0IHRoZSB2YWx1ZSBvZiB0aGUgbW9kYWwgY29udGVudC5cblx0ICpcblx0ICogVXNlIHRoZSBgaGFzU2Nyb2xsaW5nQ29udGVudGAgaW5wdXQgdG8gbWFudWFsbHkgb3ZlcnJpZGUgdGhlIG92ZXJmbG93IGluZGljYXRvci5cblx0ICovXG5cdGdldCBzaG91bGRTaG93U2Nyb2xsYmFyKCkge1xuXHRcdGNvbnN0IG1vZGFsQ29udGVudCA9IHRoaXMubW9kYWwgPyB0aGlzLm1vZGFsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcIi5jZHMtLW1vZGFsLWNvbnRlbnRcIikgOiBudWxsO1xuXHRcdGlmIChtb2RhbENvbnRlbnQpIHtcblx0XHRcdC8vIGdldCByb3VuZGVkIHZhbHVlIGZyb20gaGVpZ2h0IHRvIG1hdGNoIGludGVnZXIgcmV0dXJuZWQgZnJvbSBzY3JvbGxIZWlnaHRcblx0XHRcdGNvbnN0IG1vZGFsQ29udGVudEhlaWdodCA9IE1hdGguY2VpbChtb2RhbENvbnRlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0KTtcblx0XHRcdGNvbnN0IG1vZGFsQ29udGVudFNjcm9sbEhlaWdodCA9IG1vZGFsQ29udGVudC5zY3JvbGxIZWlnaHQ7XG5cdFx0XHRyZXR1cm4gbW9kYWxDb250ZW50U2Nyb2xsSGVpZ2h0ID4gbW9kYWxDb250ZW50SGVpZ2h0O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXHR9XG5cblx0Ly8gUmVtb3ZlIGNsYXNzIHByZXZlbnRpbmcgc2Nyb2xsaW5nXG5cdG5nT25EZXN0cm95KCkge1xuXHRcdHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5kb2N1bWVudC5ib2R5LCBcImNkcy0tYm9keS0td2l0aC1tb2RhbC1vcGVuXCIpO1xuXHR9XG5cblx0cHJvdGVjdGVkIGZvY3VzSW5pdGlhbEVsZW1lbnQoKSB7XG5cdFx0Y29uc3QgcHJpbWFyeUZvY3VzRWxlbWVudCA9IHRoaXMubW9kYWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKHRoaXMuc2VsZWN0b3JQcmltYXJ5Rm9jdXMpO1xuXHRcdGlmIChwcmltYXJ5Rm9jdXNFbGVtZW50ICYmIHByaW1hcnlGb2N1c0VsZW1lbnQuZm9jdXMpIHtcblx0XHRcdHNldFRpbWVvdXQoKCkgPT4gcHJpbWFyeUZvY3VzRWxlbWVudC5mb2N1cygpKTtcblx0XHR9IGVsc2UgaWYgKGdldEZvY3VzRWxlbWVudExpc3QodGhpcy5tb2RhbC5uYXRpdmVFbGVtZW50KS5sZW5ndGggPiAwKSB7XG5cdFx0XHRzZXRUaW1lb3V0KCgpID0+IGdldEZvY3VzRWxlbWVudExpc3QodGhpcy5tb2RhbC5uYXRpdmVFbGVtZW50KVswXS5mb2N1cygpKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0c2V0VGltZW91dCgoKSA9PiB0aGlzLm1vZGFsLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKSk7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSB1cGRhdGVTY3JvbGxiYXIoKSB7XG5cdFx0Y29uc3QgbW9kYWxDb250ZW50ID0gdGhpcy5tb2RhbCA/IHRoaXMubW9kYWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiLmNkcy0tbW9kYWwtY29udGVudFwiKSA6IG51bGw7XG5cdFx0Y29uc3Qgc2hvd1Njcm9sbGJhciA9IHRoaXMuaGFzU2Nyb2xsaW5nQ29udGVudCAhPT0gbnVsbCA/IHRoaXMuaGFzU2Nyb2xsaW5nQ29udGVudCA6IHRoaXMuc2hvdWxkU2hvd1Njcm9sbGJhcjtcblx0XHRpZiAobW9kYWxDb250ZW50KSB7XG5cdFx0XHRpZiAoc2hvd1Njcm9sbGJhcikge1xuXHRcdFx0XHR0aGlzLnJlbmRlcmVyLmFkZENsYXNzKG1vZGFsQ29udGVudCwgXCJjZHMtLW1vZGFsLXNjcm9sbC1jb250ZW50XCIpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhtb2RhbENvbnRlbnQsIFwiY2RzLS1tb2RhbC1zY3JvbGwtY29udGVudFwiKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { EventEmitter, Directive, Output, Input, Injector, Injectable, Component, ViewChild, Inject, HostListener, HostBinding, Optional, NgModule } from '@angular/core';
3
- import * as i2 from '@angular/common';
3
+ import * as i1$1 from '@angular/common';
4
4
  import { DOCUMENT, CommonModule } from '@angular/common';
5
5
  import * as i3 from 'carbon-components-angular/forms';
6
6
  import { ButtonModule } from 'carbon-components-angular/forms';
@@ -8,7 +8,7 @@ import { cycleTabs, getFocusElementList } from 'carbon-components-angular/common
8
8
  import { tap, delay } from 'rxjs/operators';
9
9
  import * as i1 from 'carbon-components-angular/placeholder';
10
10
  import { PlaceholderModule } from 'carbon-components-angular/placeholder';
11
- import * as i1$1 from 'carbon-components-angular/i18n';
11
+ import * as i1$2 from 'carbon-components-angular/i18n';
12
12
  import { I18nModule } from 'carbon-components-angular/i18n';
13
13
  import * as i4 from 'carbon-components-angular/icon';
14
14
  import { IconModule } from 'carbon-components-angular/icon';
@@ -167,7 +167,7 @@ Overlay.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3
167
167
  #overlay>
168
168
  <ng-content></ng-content>
169
169
  </section>
170
- `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
170
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
171
171
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: Overlay, decorators: [{
172
172
  type: Component,
173
173
  args: [{
@@ -298,7 +298,7 @@ class Modal {
298
298
  */
299
299
  this.selectorPrimaryFocus = "[modal-primary-focus]";
300
300
  }
301
- ngOnChanges({ open }) {
301
+ ngOnChanges({ open, hasScrollingContent }) {
302
302
  if (open) {
303
303
  if (open.currentValue) {
304
304
  // `100` is just enough time to allow the modal
@@ -315,12 +315,16 @@ class Modal {
315
315
  this.trigger.focus();
316
316
  }
317
317
  }
318
+ if (hasScrollingContent) {
319
+ this.updateScrollbar();
320
+ }
318
321
  }
319
322
  /**
320
323
  * Set document focus to be on the modal component after it is initialized.
321
324
  */
322
325
  ngAfterViewInit() {
323
326
  this.focusInitialElement();
327
+ this.updateScrollbar();
324
328
  }
325
329
  /**
326
330
  * Handle keyboard events to close modal and tab through the content within the modal.
@@ -376,6 +380,18 @@ class Modal {
376
380
  setTimeout(() => this.modal.nativeElement.focus());
377
381
  }
378
382
  }
383
+ updateScrollbar() {
384
+ const modalContent = this.modal ? this.modal.nativeElement.querySelector(".cds--modal-content") : null;
385
+ const showScrollbar = this.hasScrollingContent !== null ? this.hasScrollingContent : this.shouldShowScrollbar;
386
+ if (modalContent) {
387
+ if (showScrollbar) {
388
+ this.renderer.addClass(modalContent, "cds--modal-scroll-content");
389
+ }
390
+ else {
391
+ this.renderer.removeClass(modalContent, "cds--modal-scroll-content");
392
+ }
393
+ }
394
+ }
379
395
  }
380
396
  Modal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: Modal, deps: [{ token: BaseModalService }, { token: DOCUMENT }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
381
397
  Modal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: Modal, selector: "cds-modal, ibm-modal", inputs: { size: "size", theme: "theme", ariaLabel: "ariaLabel", open: "open", trigger: "trigger", hasScrollingContent: "hasScrollingContent" }, outputs: { overlaySelected: "overlaySelected", close: "close" }, host: { listeners: { "keydown": "handleKeyboardEvent($event)" } }, viewQueries: [{ propertyName: "modal", first: true, predicate: ["modal"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: `
@@ -397,13 +413,9 @@ Modal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0
397
413
  [attr.aria-label]="ariaLabel"
398
414
  #modal>
399
415
  <ng-content></ng-content>
400
- <div
401
- *ngIf="hasScrollingContent !== null ? hasScrollingContent : shouldShowScrollbar"
402
- class="cds--modal-content--overflow-indicator">
403
- </div>
404
416
  </div>
405
417
  </cds-overlay>
406
- `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: Overlay, selector: "cds-overlay, ibm-overlay", inputs: ["theme", "open"], outputs: ["overlaySelect"] }] });
418
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: Overlay, selector: "cds-overlay, ibm-overlay", inputs: ["theme", "open"], outputs: ["overlaySelect"] }] });
407
419
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: Modal, decorators: [{
408
420
  type: Component,
409
421
  args: [{
@@ -427,10 +439,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
427
439
  [attr.aria-label]="ariaLabel"
428
440
  #modal>
429
441
  <ng-content></ng-content>
430
- <div
431
- *ngIf="hasScrollingContent !== null ? hasScrollingContent : shouldShowScrollbar"
432
- class="cds--modal-content--overflow-indicator">
433
- </div>
434
442
  </div>
435
443
  </cds-overlay>
436
444
  `
@@ -510,7 +518,7 @@ class ModalHeader {
510
518
  this.closeSelect.emit();
511
519
  }
512
520
  }
513
- ModalHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ModalHeader, deps: [{ token: i1$1.I18n }], target: i0.ɵɵFactoryTarget.Component });
521
+ ModalHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ModalHeader, deps: [{ token: i1$2.I18n }], target: i0.ɵɵFactoryTarget.Component });
514
522
  ModalHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: { theme: "theme", closeLabel: "closeLabel", showCloseButton: "showCloseButton" }, outputs: { closeSelect: "closeSelect" }, ngImport: i0, template: `
515
523
  <header class="cds--modal-header {{theme}}">
516
524
  <ng-content></ng-content>
@@ -528,7 +536,7 @@ ModalHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
528
536
  </div>
529
537
  </header>
530
538
 
531
- `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IconButton, selector: "cds-icon-button, ibm-icon-button", inputs: ["buttonNgClass", "buttonAttributes", "buttonId", "kind", "size", "type", "isExpressive", "disabled", "description"], outputs: ["click", "focus", "blur", "tooltipClick"] }, { kind: "directive", type: i4.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }] });
539
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IconButton, selector: "cds-icon-button, ibm-icon-button", inputs: ["buttonNgClass", "buttonAttributes", "buttonId", "kind", "size", "type", "isExpressive", "disabled", "description"], outputs: ["click", "focus", "blur", "tooltipClick"] }, { kind: "directive", type: i4.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }] });
532
540
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ModalHeader, decorators: [{
533
541
  type: Component,
534
542
  args: [{
@@ -552,7 +560,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
552
560
 
553
561
  `
554
562
  }]
555
- }], ctorParameters: function () { return [{ type: i1$1.I18n }]; }, propDecorators: { theme: [{
563
+ }], ctorParameters: function () { return [{ type: i1$2.I18n }]; }, propDecorators: { theme: [{
556
564
  type: Input
557
565
  }], closeLabel: [{
558
566
  type: Input
@@ -760,7 +768,7 @@ AlertModal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "1
760
768
  </ng-container>
761
769
  </cds-modal-footer>
762
770
  </cds-modal>
763
- `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "component", type: Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "directive", type: ModalHeaderLabel, selector: "[cdsModalHeaderLabel], [ibmModalHeaderLabel]" }] });
771
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "component", type: Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "directive", type: ModalHeaderLabel, selector: "[cdsModalHeaderLabel], [ibmModalHeaderLabel]" }] });
764
772
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AlertModal, decorators: [{
765
773
  type: Component,
766
774
  args: [{
@@ -1 +1 @@
1
- {"version":3,"file":"carbon-components-angular-modal.mjs","sources":["../../src/modal/base-modal.class.ts","../../src/modal/base-modal.service.ts","../../src/modal/overlay.component.ts","../../src/modal/modal.component.ts","../../src/modal/modal-header.component.ts","../../src/modal/modal-footer.component.ts","../../src/modal/modal-content.directive.ts","../../src/modal/modal-header-heading.directive.ts","../../src/modal/modal-header-label.directive.ts","../../src/modal/alert-modal.component.ts","../../src/modal/alert-modal.interface.ts","../../src/modal/modal.service.ts","../../src/modal/modal-content-text.directive.ts","../../src/modal/modal.module.ts","../../src/modal/carbon-components-angular-modal.ts"],"sourcesContent":["import {\n\tOutput,\n\tEventEmitter,\n\tInput,\n\tDirective\n} from \"@angular/core\";\n\n/**\n * Extend `BaseModal` in your custom modal implementations to ensure consistent close behavior.\n *\n * `ModalService` depends on the `close` event to correctly clean up the component.\n */\n@Directive({\n\tselector: \"[cdsBaseModal], [ibmBaseModal]\"\n})\nexport class BaseModal {\n\t/**\n\t * Base event emitter to propagate close events\n\t */\n\t@Output() close = new EventEmitter();\n\n\t/**\n\t * Controls the open state of the modal\n\t */\n\t@Input() open = false;\n\n\t/**\n\t * Default method to handle closing the modal\n\t */\n\tcloseModal(): void {\n\t\tthis.close.emit();\n\t}\n}\n","import {\n\tComponentRef,\n\tInjector,\n\tInjectable\n} from \"@angular/core\";\nimport { PlaceholderService } from \"carbon-components-angular/placeholder\";\nimport { tap, delay } from \"rxjs/operators\";\n\n\n/**\n * Modal service handles instantiating and destroying modal instances.\n * Uses PlaceholderService to track open instances, and for it's placeholder view reference.\n */\n@Injectable()\nexport class BaseModalService {\n\t// track all our open modals\n\tprotected static modalList: Array<ComponentRef<any>> = [];\n\n\t/**\n\t * Creates an instance of `ModalService`.\n\t */\n\tconstructor(public placeholderService: PlaceholderService) {}\n\n\t/**\n\t * Creates and renders the modal component that is passed in.\n\t * `inputs` is an optional parameter of `data` that can be passed to the `Modal` component.\n\t */\n\tcreate<T>(data: { component: any, inputs?: any }): ComponentRef<any> {\n\t\tlet defaults = { inputs: {} };\n\t\tdata = Object.assign({}, defaults, data);\n\n\t\tconst inputProviders = Object.keys(data.inputs).map(inputName => ({\n\t\t\tprovide: inputName,\n\t\t\tuseValue: data.inputs[inputName]\n\t\t}));\n\t\tconst injector = Injector.create({ providers: inputProviders });\n\t\tconst component = this.placeholderService.createComponent(data.component, injector);\n\t\tlet focusedElement = document.activeElement as HTMLElement;\n\t\tsetTimeout(() => {\n\t\t\tcomponent.instance.open = true;\n\t\t});\n\n\t\tcomponent[\"previouslyFocusedElement\"] = focusedElement; // used to return focus to previously focused element\n\n\t\tcomponent.instance.close.pipe(\n\t\t\t// trigger the close animation\n\t\t\ttap(() => {\n\t\t\t\tcomponent.instance.open = false;\n\t\t\t}),\n\t\t\t// delay closing by an arbitrary amount to allow the animation to finish\n\t\t\tdelay(240)\n\t\t).subscribe(() => {\n\t\t\tthis.placeholderService.destroyComponent(component);\n\t\t\t// filter out our component\n\t\t\tBaseModalService.modalList = BaseModalService.modalList.filter(c => c !== component);\n\t\t});\n\n\t\tcomponent.onDestroy(() => {\n\t\t\tfocusedElement.focus();\n\t\t});\n\n\t\tBaseModalService.modalList.push(component);\n\n\t\treturn component;\n\t}\n\n\t/**\n\t * Destroys the modal on the supplied index.\n\t * When called without parameters it destroys the most recently created/top most modal.\n\t */\n\tdestroy(index = -1) {\n\t\t// return if nothing to destroy because it's already destroyed\n\t\tif (index >= BaseModalService.modalList.length || BaseModalService.modalList.length === 0) {\n\t\t\treturn;\n\t\t}\n\t\t// on negative index destroy the last on the list (top modal)\n\t\tif (index < 0) {\n\t\t\tindex = BaseModalService.modalList.length - 1;\n\t\t}\n\n\t\t// Let animation finish before component is removed\n\t\tsetTimeout(() => {\n\t\t\tif (BaseModalService.modalList[index]) {\n\t\t\t\tthis.placeholderService.destroyComponent(BaseModalService.modalList[index]);\n\t\t\t\tBaseModalService.modalList.splice(index, 1);\n\t\t\t}\n\t\t}, 240);\n\t}\n}\n","import {\n\tComponent,\n\tOutput,\n\tEventEmitter,\n\tViewChild,\n\tElementRef,\n\tInput\n} from \"@angular/core\";\n\n\n/**\n * Component for the overlay object that acts as a backdrop to the `Modal` component.\n *\n * The main purpose for this component is to be able to handle click events that fall outside\n * the bounds of the `Modal` component.\n */\n@Component({\n\tselector: \"cds-overlay, ibm-overlay\",\n\ttemplate: `\n\t\t<section\n\t\t\tclass=\"cds--modal cds--modal-tall\"\n\t\t\t[ngClass]=\"{\n\t\t\t\t'cds--modal--danger': theme === 'danger',\n\t\t\t\t'is-visible': open\n\t\t\t}\"\n\t\t\t(click)=\"overlayClick($event)\"\n\t\t\t#overlay>\n\t\t\t<ng-content></ng-content>\n\t\t</section>\n\t`\n})\nexport class Overlay {\n\t/**\n\t * Classification of the modal.\n\t */\n\t@Input() theme: \"default\" | \"danger\" = \"default\";\n\t@Input() open = false;\n\t/**\n\t * To emit the event where the user selects the overlay behind the `Modal`.\n\t */\n\t@Output() overlaySelect = new EventEmitter();\n\t/**\n\t * Maintains a reference to the view DOM element of the `Overlay`.\n\t */\n\t@ViewChild(\"overlay\", { static: true }) overlay: ElementRef;\n\n\t/**\n\t * Handles the user clicking on the `Overlay` which resides outside the `Modal` object.\n\t */\n\toverlayClick(event) {\n\t\tif (event.target !== this.overlay.nativeElement) { return; }\n\t\tevent.stopPropagation();\n\t\tthis.overlaySelect.emit(event);\n\t}\n\n}\n","import {\n\tAfterViewInit,\n\tComponent,\n\tEventEmitter,\n\tHostListener,\n\tInput,\n\tOutput,\n\tElementRef,\n\tViewChild,\n\tSimpleChanges,\n\tOnChanges,\n\tRenderer2,\n\tInject,\n\tOnDestroy\n} from \"@angular/core\";\nimport { DOCUMENT } from \"@angular/common\";\nimport { cycleTabs, getFocusElementList } from \"carbon-components-angular/common\";\nimport { BaseModalService } from \"./base-modal.service\";\n\n/**\n * Component to create modals for presenting content.\n *\n * [See demo](../../?path=/story/components-modal--basic)\n *\n * Using a modal in your application requires `cds-placeholder` which would generally be\n * placed near the end of your app component template (app.component.ts or app.component.html) as:\n *\n```html\n<cds-placeholder></cds-placeholder>\n```\n *\n * A more complete example for `Modal` is given as follows:\n *\n * Example modal definition:\n *\n```typescript\n@Component({\n\tselector: \"app-sample-modal\",\n\ttemplate: `\n\t\t\t\t<cds-modal size=\"xl\" (overlaySelected)=\"closeModal()\">\n\t\t\t\t\t<cds-modal-header (closeSelect)=\"closeModal()\">Header text</cds-modal-header>\n\t\t\t\t\t\t<section class=\"modal-body\">\n\t\t\t\t\t\t\t<h1>Sample modal works.</h1>\n\t\t\t\t\t\t\t<button class=\"btn--icon-link\" nPopover=\"Hello there\" title=\"Popover title\" placement=\"right\" appendInline=\"true\">\n\t\t\t\t\t\t\t\t<svg cdsIcon=\"info\" size=\"sm\"></svg>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t{{modalText}}\n\t\t\t\t\t\t</section>\n\t\t\t\t\t<cds-modal-footer><button cdsButton=\"primary\" (click)=\"closeModal()\">Close</button></cds-modal-footer>\n\t\t\t\t</cds-modal>`,\n\tstyleUrls: [\"./sample-modal.component.scss\"]\n})\nexport class SampleModal extends BaseModal {\n\tmodalText: string;\n\tconstructor(protected injector: Injector) {\n\t\tsuper();\n\t\tthis.modalText = this.injector.get(\"modalText\");\n\t}\n}\n```\n *\n * Example of opening the modal:\n *\n```typescript\n@Component({\n\tselector: \"app-modal-demo\",\n\ttemplate: `\n\t\t\t\t<button cdsButton=\"primary\" (click)=\"openModal('drill')\">Drill-down modal</button>\n\t\t\t\t<cds-placeholder></cds-placeholder>`\n})\nexport class ModalDemo {\n\topenModal() {\n\t\tthis.modalService.create({component: SampleModal, inputs: {modalText: \"Hello universe.\"}});\n\t}\n}\n```\n */\n@Component({\n\tselector: \"cds-modal, ibm-modal\",\n\ttemplate: `\n\t\t<cds-overlay\n\t\t\t[theme]=\"theme\"\n\t\t\t[open]=\"open\"\n\t\t\t(overlaySelect)=\"overlaySelected.emit()\">\n\t\t\t<div\n\t\t\t\tclass=\"cds--modal-container\"\n\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t'cds--modal-container--xs': size === 'xs',\n\t\t\t\t\t'cds--modal-container--sm': size === 'sm',\n\t\t\t\t\t'cds--modal-container--md': size === 'md',\n\t\t\t\t\t'cds--modal-container--lg': size === 'lg'\n\t\t\t\t}\"\n\t\t\t\trole=\"dialog\"\n\t\t\t\taria-modal=\"true\"\n\t\t\t\tstyle=\"z-index:1;\"\n\t\t\t\t[attr.aria-label]=\"ariaLabel\"\n\t\t\t\t#modal>\n\t\t\t\t<ng-content></ng-content>\n\t\t\t\t<div\n\t\t\t\t\t*ngIf=\"hasScrollingContent !== null ? hasScrollingContent : shouldShowScrollbar\"\n\t\t\t\t\tclass=\"cds--modal-content--overflow-indicator\">\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</cds-overlay>\n\t`\n})\nexport class Modal implements AfterViewInit, OnChanges, OnDestroy {\n\t/**\n\t * Size of the modal to display.\n\t */\n\t@Input() size: \"xs\" | \"sm\"| \"md\" | \"lg\" = \"md\";\n\t/**\n\t * Classification of the modal.\n\t */\n\t@Input() theme: \"default\" | \"danger\" = \"default\";\n\n\t/**\n\t * Label for the modal.\n\t */\n\t@Input() ariaLabel = \"default\";\n\n\t/**\n\t * Controls the visibility of the modal when used directly in a template\n\t */\n\t@Input() open = false;\n\n\t/**\n\t * The element that triggers the modal, which should receive focus when the modal closes\n\t */\n\t@Input() trigger: HTMLElement;\n\n\t/**\n\t * Specify whether the modal contains scrolling content. This property overrides the automatic\n\t * detection of the existence of scrolling content. Set this property to `true` to force\n\t * overflow indicator to show up or to `false` to force overflow indicator to disappear.\n\t * It is set to `null` by default which indicates not to override automatic detection.\n\t */\n\t@Input() hasScrollingContent: boolean = null;\n\n\t/**\n\t * Emits event when click occurs within `n-overlay` element. This is to track click events occurring outside bounds of the `Modal` object.\n\t */\n\t@Output() overlaySelected = new EventEmitter();\n\t/**\n\t * To emit the closing event of the modal window.\n\t */\n\t@Output() close = new EventEmitter();\n\t/**\n\t * Maintains a reference to the view DOM element of the `Modal`.\n\t */\n\t@ViewChild(\"modal\", { static: true }) modal: ElementRef;\n\n\t/**\n\t * An element should have 'modal-primary-focus' as an attribute to receive initial focus within the `Modal` component.\n\t */\n\tselectorPrimaryFocus = \"[modal-primary-focus]\";\n\n\t/**\n\t * Creates an instance of `Modal`.\n\t */\n\tconstructor(\n\t\tpublic modalService: BaseModalService,\n\t\t@Inject(DOCUMENT) private document: Document,\n\t\tprivate renderer: Renderer2\n\t) { }\n\n\tngOnChanges({ open }: SimpleChanges) {\n\t\tif (open) {\n\t\t\tif (open.currentValue) {\n\t\t\t\t// `100` is just enough time to allow the modal\n\t\t\t\t// to become visible, so that we can set focus\n\t\t\t\tsetTimeout(() => this.focusInitialElement(), 100);\n\t\t\t\t// Prevent scrolling on open\n\t\t\t\tthis.renderer.addClass(this.document.body, \"cds--body--with-modal-open\");\n\t\t\t} else if (!open.currentValue) {\n\t\t\t\t// Enable scrolling on close\n\t\t\t\tthis.renderer.removeClass(this.document.body, \"cds--body--with-modal-open\");\n\t\t\t} else if (this.trigger) {\n\t\t\t\tthis.trigger.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Set document focus to be on the modal component after it is initialized.\n\t */\n\tngAfterViewInit() {\n\t\tthis.focusInitialElement();\n\t}\n\n\t/**\n\t * Handle keyboard events to close modal and tab through the content within the modal.\n\t */\n\t@HostListener(\"keydown\", [\"$event\"])\n\thandleKeyboardEvent(event: KeyboardEvent) {\n\t\tswitch (event.key) {\n\t\t\tcase \"Escape\": {\n\t\t\t\tevent.stopImmediatePropagation(); // prevents events being fired for multiple modals if more than 2 open\n\t\t\t\t// Manually close modal\n\t\t\t\tthis.open = false;\n\t\t\t\tthis.close.emit();\n\t\t\t\tthis.modalService.destroy(); // destroy top (latest) modal\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase \"Tab\": {\n\t\t\t\tcycleTabs(event, this.modal.nativeElement);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * This detects whether or not the modal contains scrolling content.\n\t *\n\t * To force trigger a detection (ie. on window resize), change or reset the value of the modal content.\n\t *\n\t * Use the `hasScrollingContent` input to manually override the overflow indicator.\n\t */\n\tget shouldShowScrollbar() {\n\t\tconst modalContent = this.modal ? this.modal.nativeElement.querySelector(\".cds--modal-content\") : null;\n\t\tif (modalContent) {\n\t\t\t// get rounded value from height to match integer returned from scrollHeight\n\t\t\tconst modalContentHeight = Math.ceil(modalContent.getBoundingClientRect().height);\n\t\t\tconst modalContentScrollHeight = modalContent.scrollHeight;\n\t\t\treturn modalContentScrollHeight > modalContentHeight;\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\t// Remove class preventing scrolling\n\tngOnDestroy() {\n\t\tthis.renderer.removeClass(this.document.body, \"cds--body--with-modal-open\");\n\t}\n\n\tprotected focusInitialElement() {\n\t\tconst primaryFocusElement = this.modal.nativeElement.querySelector(this.selectorPrimaryFocus);\n\t\tif (primaryFocusElement && primaryFocusElement.focus) {\n\t\t\tsetTimeout(() => primaryFocusElement.focus());\n\t\t} else if (getFocusElementList(this.modal.nativeElement).length > 0) {\n\t\t\tsetTimeout(() => getFocusElementList(this.modal.nativeElement)[0].focus());\n\t\t} else {\n\t\t\tsetTimeout(() => this.modal.nativeElement.focus());\n\t\t}\n\t}\n}\n","import {\n\tComponent,\n\tOutput,\n\tEventEmitter,\n\tInput\n} from \"@angular/core\";\nimport { I18n } from \"carbon-components-angular/i18n\";\n\n/**\n * ***Inputs***\n * ```html\n * <cds-modal-header>Header text</cds-modal-header>\n * ```\n *\n * ***Outputs***\n * ```html\n * <cds-modal-header (closeSelect)=\"closeModal()\">Header text</cds-modal-header>\n * ```\n */\n@Component({\n\tselector: \"cds-modal-header, ibm-modal-header\",\n\ttemplate: `\n\t\t<header class=\"cds--modal-header {{theme}}\">\n\t\t\t<ng-content></ng-content>\n\t\t\t<div class=\"cds--modal-close-button\">\n\t\t\t\t<cds-icon-button\n\t\t\t\t\t*ngIf=\"showCloseButton\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t[buttonNgClass]=\"buttonNgClass\"\n\t\t\t\t\t[buttonAttributes]=\"buttonAttributes\"\n\t\t\t\t\talign=\"left\"\n\t\t\t\t\t[description]=\"closeLabel\"\n\t\t\t\t\t(click)=\"onClose()\">\n\t\t\t\t\t<svg cdsIcon=\"close\" size=\"20\" class=\"cds--modal-close__icon\"></svg>\n\t\t\t\t</cds-icon-button>\n\t\t\t</div>\n\t\t</header>\n\n\t`\n})\nexport class ModalHeader {\n\t/**\n\t * @deprecated since v5\n\t * Sets the style on the modal heading based on its category.\n\t */\n\t@Input() theme = \"default\";\n\t/**\n\t * Accessible label for the header close button.\n\t * Defaults to the `MODAL.CLOSE` value from the i18n service.\n\t */\n\t@Input() closeLabel = this.i18n.get().MODAL.CLOSE;\n\t/**\n\t * Set to `false` to hide the close button.\n\t */\n\t@Input() showCloseButton = true;\n\n\t/**\n\t * To emit the event of clicking on the close icon within the modal.\n\t */\n\t@Output() closeSelect = new EventEmitter();\n\n\tbuttonNgClass = {\n\t\t\"cds--modal-close\": true\n\t};\n\n\tbuttonAttributes = {\n\t\t\"aria-label\": this.i18n.get().MODAL.CLOSE\n\t};\n\n\tconstructor(protected i18n: I18n) {}\n\n\t/**\n\t * Handles click for the close icon button within the `Modal`.\n\t */\n\tpublic onClose() {\n\t\tthis.closeSelect.emit();\n\t}\n}\n","import { Component } from \"@angular/core\";\n\n@Component({\n\tselector: \"cds-modal-footer, ibm-modal-footer\",\n\ttemplate: `\n\t\t<footer class=\"cds--modal-footer\">\n\t\t\t<ng-content></ng-content>\n\t\t</footer>\n\t`\n})\nexport class ModalFooter {}\n","import { Directive, HostBinding, Input } from \"@angular/core\";\n\n@Directive({\n\tselector: \"[cdsModalContent], [ibmModalContent]\"\n})\nexport class ModalContent {\n\t@HostBinding(\"class.cds--modal-content\") modalContentClass = true;\n\t/**\n\t * Provide whether the modal content has a form element.\n\t * If `true` is used here, non-form child content should have `cds--modal-content__regular-content` class.\n\t */\n\t@HostBinding(\"class.cds--modal-content--with-form\") @Input() hasForm = false;\n}\n","import { Directive, HostBinding, Input } from \"@angular/core\";\n\n@Directive({\n\tselector: \"[cdsModalHeaderHeading], [ibmModalHeaderHeading]\"\n})\nexport class ModalHeaderHeading {\n\t@HostBinding(\"class.cds--modal-header__heading\") modalHeaderHeadingClass = true;\n}\n","import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n\tselector: \"[cdsModalHeaderLabel], [ibmModalHeaderLabel]\"\n})\nexport class ModalHeaderLabel {\n\t@HostBinding(\"class.cds--modal-header__label\") modalHeaderLabelClass = true;\n}\n","import {\n\tComponent,\n\tInject,\n\tViewChild,\n\tAfterViewInit,\n\tOptional\n} from \"@angular/core\";\nimport { BaseModal } from \"./base-modal.class\";\n\n/**\n * Component to create standard modals for presenting content or asking for user's input.\n * It can show as a passive modal showing only text or show as a transactional modal with\n * multiple buttons for different actions for the user to choose from.\n *\n * Using a modal in your application requires `cds-placeholder` which would generally be\n * placed near the end of your app component template (app.component.ts or app.component.html) as:\n *\n * ```html\n * <cds-placeholder></cds-placeholder>\n * ```\n *\n * Example of opening the modal:\n *\n * ```typescript\n * \\@Component({\n * selector: \"app-modal-demo\",\n * template: `\n * <button class=\"btn--primary\" (click)=\"openModal()\">Open modal</button>\n * <cds-placeholder></cds-placeholder>`\n * })\n * export class ModalDemo {\n * \topenModal() {\n * \t\tthis.modalService.show({\n *\t\t\tmodalType: \"default\",\n *\t\t\tlabel: \"optional header text\",\n *\t\t\ttitle: \"Modal title\",\n *\t\t\ttext: \"Modal text\",\n *\t\t\tbuttons: [{\n *\t\t\t\ttext: \"Button text\",\n *\t\t\t\ttype: \"primary\",\n *\t\t\t\tclick: clickFunction\n *\t\t\t}]\n *\t\t});\n * \t}\n * }\n * ```\n */\n@Component({\n\tselector: \"cds-alert-modal, ibm-alert-modal\",\n\ttemplate: `\n\t\t<cds-modal\n\t\t\t[size]=\"size\"\n\t\t\t[theme]=\"type\"\n\t\t\t[ariaLabel]=\"title\"\n\t\t\t[hasScrollingContent]=\"hasScrollingContent\"\n\t\t\t[open]=\"open\"\n\t\t\t(overlaySelected)=\"dismissModal('overlay')\">\n\t\t\t<cds-modal-header (closeSelect)=\"dismissModal('close')\" [showCloseButton]=\"showCloseButton\">\n\t\t\t\t<p cdsModalHeaderLabel class=\"cds--type-delta\">{{label}}</p>\n\t\t\t\t<p cdsModalHeaderHeading class=\"cds--type-beta\">{{title}}</p>\n\t\t\t</cds-modal-header>\n\t\t\t<div cdsModalContent #modalContent>\n\t\t\t\t<p [innerHTML]=\"content\"></p>\n\t\t\t</div>\n\t\t\t<cds-modal-footer *ngIf=\"buttons.length > 0\">\n\t\t\t\t<ng-container *ngFor=\"let button of buttons; let i = index\">\n\t\t\t\t\t<button\n\t\t\t\t\t\t[cdsButton]=\"button.type\"\n\t\t\t\t\t\t(click)=\"buttonClicked(i)\"\n\t\t\t\t\t\t[id]=\"button.id\"\n\t\t\t\t\t\t[attr.modal-primary-focus]=\"(button.type.indexOf('primary') !== -1 ? '' : null)\">\n\t\t\t\t\t\t{{button.text}}\n\t\t\t\t\t</button>\n\t\t\t\t</ng-container>\n\t\t\t</cds-modal-footer>\n\t\t</cds-modal>\n\t`\n})\nexport class AlertModal extends BaseModal implements AfterViewInit {\n\t@ViewChild(\"modalContent\", { static: true }) modalContent: { nativeElement: any; };\n\t/**\n\t * Creates an instance of `AlertModal`.\n\t */\n\tconstructor(\n\t\t@Optional() @Inject(\"type\") public type = \"default\",\n\t\t@Optional() @Inject(\"label\") public label: string,\n\t\t@Optional() @Inject(\"title\") public title: string,\n\t\t@Optional() @Inject(\"content\") public content: string,\n\t\t@Optional() @Inject(\"size\") public size: string,\n\t\t@Optional() @Inject(\"hasScrollingContent\") public hasScrollingContent: boolean = null,\n\t\t@Optional() @Inject(\"buttons\") public buttons = [],\n\t\t@Optional() @Inject(\"close\") public onClose: Function,\n\t\t@Optional() @Inject(\"showCloseButton\") public showCloseButton = true\n\t) {\n\t\tsuper();\n\t\tfor (let i = 0; i < this.buttons.length; i++) {\n\t\t\tconst button = this.buttons[i];\n\t\t\tif (!button.id) {\n\t\t\t\tbutton.id = `alert-modal-button-${i}`;\n\t\t\t}\n\t\t\tif (!button.type) {\n\t\t\t\tbutton.type = \"secondary\";\n\t\t\t}\n\t\t}\n\t}\n\n\tngAfterViewInit() {\n\t\tif (!this.modalContent) { return false; }\n\t\tconst element = this.modalContent.nativeElement;\n\t\tif (element.scrollHeight > element.clientHeight) {\n\t\t\telement.tabIndex = 0;\n\t\t} else {\n\t\t\telement.tabIndex = -1;\n\t\t}\n\t}\n\n\tbuttonClicked(buttonIndex: string | number) {\n\t\tconst button = this.buttons[buttonIndex];\n\t\tif (button.click) {\n\t\t\tbutton.click();\n\t\t}\n\n\t\tthis.closeModal();\n\t}\n\n\tdismissModal(trigger: any) {\n\t\tif (this.onClose && this.onClose(trigger) === false) {\n\t\t\treturn;\n\t\t}\n\t\tthis.closeModal();\n\t}\n}\n","export enum AlertModalType {\n\tdefault = \"default\",\n\tdanger = \"danger\"\n}\n\nexport interface AlertModalData {\n\t/**\n\t * type of the modal\n\t */\n\ttype?: AlertModalType;\n\t/**\n\t * Additional label shown over the modal\n\t */\n\tlabel?: string;\n\t/**\n\t * Primary title for the modal\n\t */\n\ttitle?: string;\n\t/**\n\t * Content for the modal body, could include HTML tags\n\t */\n\tcontent?: string;\n\t/**\n\t * Size of the modal to display.\n\t */\n\tsize?: \"xs\" | \"sm\" | \"md\" | \"lg\";\n\t/**\n\t * Array of `ModalButton`s\n\t */\n\tbuttons?: Array<ModalButton>;\n\t/**\n\t * Specify whether the modal contains scrolling content. This property overrides the automatic detection\n\t * of the existence of scrolling content. Set this property to `true` to force overflow indicator to\n\t * show up or to `false` to force overflow indicator to disappear.\n\t * It is set to `null` by default which indicates not to override automatic detection.\n\t */\n\thasScrollingContent?: boolean;\n\t/**\n\t * Callback for non-specific close events. `return false;` to prevent the modal from closing\n\t * Property trigger has a value of `overlay` or `close`\n\t */\n\tclose?: (trigger?: \"overlay\" | \"close\") => boolean;\n\t/**\n\t * Set to `false` to hide the header's close button.\n\t */\n\tshowCloseButton?: boolean;\n}\n\nexport enum ModalButtonType {\n\tprimary = \"primary\",\n\tsecondary = \"secondary\",\n\ttertiary = \"tertiary\",\n\tghost = \"ghost\",\n\tdanger = \"danger\",\n\tdanger_primary = \"danger--primary\"\n}\n\nexport interface ModalButton {\n\t/**\n\t * Display value of the button\n\t */\n\ttext: string;\n\t/**\n\t * Optional unique ID for the button\n\t */\n\tid?: string;\n\t/**\n\t * Button type\n\t */\n\ttype?: ModalButtonType;\n\t/**\n\t * Callback for the button `click` event\n\t */\n\tclick?: Function;\n}\n","import { Injectable, ViewContainerRef } from \"@angular/core\";\nimport { AlertModal } from \"./alert-modal.component\";\nimport { AlertModalData } from \"./alert-modal.interface\";\nimport { PlaceholderService } from \"carbon-components-angular/placeholder\";\nimport { BaseModalService } from \"./base-modal.service\";\n\n/**\n * Extends Base Modal Service to create Alert Modal with a function call. Placed in a seperate service\n * to prevent remote scoping (NG3003) which has side effects. Hence, import cycles are not allowed when\n * compilationMode is set to `partial`.\n *\n *\n * Modal service handles instantiating and destroying modal instances.\n * Uses PlaceholderService to track open instances, and for it's placeholder view reference.\n */\n@Injectable()\nexport class ModalService extends BaseModalService {\n\t/**\n\t * Creates an instance of `ModalService`.\n\t */\n\tconstructor(public placeholderService: PlaceholderService) {\n\t\tsuper(placeholderService);\n\t}\n\n\t/**\n\t * Creates and renders a new alert modal component.\n\t * @param data You can pass in:\n\t * `type` - \"default\" | \"danger\" = \"default\",\n\t * `label` - a label shown over the title,\n\t * `title` - modal's title,\n\t * `content` - modal's content, could include HTML tags.\n\t * `buttons` is an array of objects\n\t * `close` custom close function\n\t * ```\n\t * {\n\t * \t\ttext: \"Button text\",\n\t * \t\ttype: \"primary\" | \"secondary\" | \"tertiary\" | \"ghost\" | \"danger\" | \"danger--primary\" = \"primary\",\n\t * \t\tclick: clickFunction,\n\t * }\n\t * ```\n\t */\n\tshow(data: AlertModalData) {\n\t\treturn this.create({\n\t\t\tcomponent: AlertModal,\n\t\t\tinputs: {\n\t\t\t\ttype: data.type,\n\t\t\t\tlabel: data.label,\n\t\t\t\ttitle: data.title,\n\t\t\t\tcontent: data.content,\n\t\t\t\thasScrollingContent: data.hasScrollingContent !== undefined ? data.hasScrollingContent : null,\n\t\t\t\tsize: data.size,\n\t\t\t\tbuttons: data.buttons || [],\n\t\t\t\tclose: data.close || (() => { }),\n\t\t\t\tshowCloseButton: data.showCloseButton\n\t\t\t}\n\t\t});\n\t}\n}\n\n","import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n\tselector: \"[cdsModalContentText], [ibmModalContentText]\"\n})\nexport class ModalContentText {\n\t@HostBinding(\"class.cds--modal-content__text\") modalContentTextClass = true;\n}\n","// modules\nimport { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\n// imports\nimport { BaseModalService } from \"./base-modal.service\";\nimport { ModalService } from \"./modal.service\";\nimport { Modal } from \"./modal.component\";\nimport { ModalFooter } from \"./modal-footer.component\";\nimport { Overlay } from \"./overlay.component\";\nimport { ModalHeader } from \"./modal-header.component\";\nimport { AlertModal } from \"./alert-modal.component\";\nimport { ButtonModule } from \"carbon-components-angular/forms\";\nimport { I18nModule } from \"carbon-components-angular/i18n\";\nimport { PlaceholderModule } from \"carbon-components-angular/placeholder\";\nimport { ExperimentalModule } from \"carbon-components-angular/experimental\";\nimport { ModalContent } from \"./modal-content.directive\";\nimport { ModalContentText } from \"./modal-content-text.directive\";\nimport { ModalHeaderHeading } from \"./modal-header-heading.directive\";\nimport { ModalHeaderLabel } from \"./modal-header-label.directive\";\nimport { BaseModal } from \"./base-modal.class\";\nimport { IconModule } from \"carbon-components-angular/icon\";\n\n@NgModule({\n\tdeclarations: [\n\t\tAlertModal,\n\t\tModal,\n\t\tModalHeader,\n\t\tModalFooter,\n\t\tOverlay,\n\t\tModalContent,\n\t\tModalContentText,\n\t\tModalHeaderHeading,\n\t\tModalHeaderLabel,\n\t\tBaseModal\n\t],\n\texports: [\n\t\tAlertModal,\n\t\tModal,\n\t\tModalHeader,\n\t\tModalFooter,\n\t\tModalContent,\n\t\tModalContentText,\n\t\tModalHeaderHeading,\n\t\tModalHeaderLabel,\n\t\tBaseModal\n\t],\n\tproviders: [BaseModalService, ModalService],\n\timports: [\n\t\tCommonModule,\n\t\tButtonModule,\n\t\tI18nModule,\n\t\tPlaceholderModule,\n\t\tExperimentalModule,\n\t\tIconModule\n\t]\n})\nexport class ModalModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i3.Overlay","i2","i3.Modal","i4.ModalHeader","i5.ModalFooter","i6.ModalContent","i7.ModalHeaderHeading","i8.ModalHeaderLabel"],"mappings":";;;;;;;;;;;;;;;;AAOA;;;;AAIG;MAIU,SAAS,CAAA;AAHtB,IAAA,WAAA,GAAA;AAIC;;AAEG;AACO,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;AAErC;;AAEG;AACM,QAAA,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC;KAQtB;AANA;;AAEG;IACH,UAAU,GAAA;AACT,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;KAClB;;sGAhBW,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;0FAAT,SAAS,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAT,SAAS,EAAA,UAAA,EAAA,CAAA;kBAHrB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,gCAAgC;iBAC1C,CAAA;8BAKU,KAAK,EAAA,CAAA;sBAAd,MAAM;gBAKE,IAAI,EAAA,CAAA;sBAAZ,KAAK;;;ACfP;;;AAGG;MAEU,gBAAgB,CAAA;AAI5B;;AAEG;AACH,IAAA,WAAA,CAAmB,kBAAsC,EAAA;AAAtC,QAAA,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;KAAI;AAE7D;;;AAGG;AACH,IAAA,MAAM,CAAI,IAAsC,EAAA;AAC/C,QAAA,IAAI,QAAQ,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QAC9B,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AAEzC,QAAA,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,KAAK;AACjE,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;AAChC,SAAA,CAAC,CAAC,CAAC;AACJ,QAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC;AAChE,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AACpF,QAAA,IAAI,cAAc,GAAG,QAAQ,CAAC,aAA4B,CAAC;QAC3D,UAAU,CAAC,MAAK;AACf,YAAA,SAAS,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;AAChC,SAAC,CAAC,CAAC;AAEH,QAAA,SAAS,CAAC,0BAA0B,CAAC,GAAG,cAAc,CAAC;AAEvD,QAAA,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI;;QAE5B,GAAG,CAAC,MAAK;AACR,YAAA,SAAS,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAK,CAAC;AACjC,SAAC,CAAC;;QAEF,KAAK,CAAC,GAAG,CAAC,CACV,CAAC,SAAS,CAAC,MAAK;AAChB,YAAA,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;;AAEpD,YAAA,gBAAgB,CAAC,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC;AACtF,SAAC,CAAC,CAAC;AAEH,QAAA,SAAS,CAAC,SAAS,CAAC,MAAK;YACxB,cAAc,CAAC,KAAK,EAAE,CAAC;AACxB,SAAC,CAAC,CAAC;AAEH,QAAA,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAE3C,QAAA,OAAO,SAAS,CAAC;KACjB;AAED;;;AAGG;AACH,IAAA,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,EAAA;;AAEjB,QAAA,IAAI,KAAK,IAAI,gBAAgB,CAAC,SAAS,CAAC,MAAM,IAAI,gBAAgB,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1F,OAAO;AACP,SAAA;;QAED,IAAI,KAAK,GAAG,CAAC,EAAE;YACd,KAAK,GAAG,gBAAgB,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9C,SAAA;;QAGD,UAAU,CAAC,MAAK;AACf,YAAA,IAAI,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;AACtC,gBAAA,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC5E,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC5C,aAAA;SACD,EAAE,GAAG,CAAC,CAAC;KACR;;AAxED;AACiB,gBAAS,CAAA,SAAA,GAA6B,EAAG,CAAA;6GAF9C,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;iHAAhB,gBAAgB,EAAA,CAAA,CAAA;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,UAAU;;;ACHX;;;;;AAKG;MAgBU,OAAO,CAAA;AAfpB,IAAA,WAAA,GAAA;AAgBC;;AAEG;AACM,QAAA,IAAK,CAAA,KAAA,GAAyB,SAAS,CAAC;AACxC,QAAA,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC;AACtB;;AAEG;AACO,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;KAe7C;AATA;;AAEG;AACH,IAAA,YAAY,CAAC,KAAK,EAAA;QACjB,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;YAAE,OAAO;AAAE,SAAA;QAC5D,KAAK,CAAC,eAAe,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC/B;;oGAtBW,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAP,OAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,OAAO,EAbT,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;AAWT,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAEW,OAAO,EAAA,UAAA,EAAA,CAAA;kBAfnB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,0BAA0B;AACpC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;AAWT,CAAA,CAAA;iBACD,CAAA;8BAKS,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAII,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBAIiC,OAAO,EAAA,CAAA;sBAA9C,SAAS;gBAAC,IAAA,EAAA,CAAA,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;ACzBvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDG;MA8BU,KAAK,CAAA;AAmDjB;;AAEG;AACH,IAAA,WAAA,CACQ,YAA8B,EACX,QAAkB,EACpC,QAAmB,EAAA;AAFpB,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAkB;AACX,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;AACpC,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;AAxD5B;;AAEG;AACM,QAAA,IAAI,CAAA,IAAA,GAA6B,IAAI,CAAC;AAC/C;;AAEG;AACM,QAAA,IAAK,CAAA,KAAA,GAAyB,SAAS,CAAC;AAEjD;;AAEG;AACM,QAAA,IAAS,CAAA,SAAA,GAAG,SAAS,CAAC;AAE/B;;AAEG;AACM,QAAA,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC;AAOtB;;;;;AAKG;AACM,QAAA,IAAmB,CAAA,mBAAA,GAAY,IAAI,CAAC;AAE7C;;AAEG;AACO,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAE,CAAC;AAC/C;;AAEG;AACO,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;AAMrC;;AAEG;AACH,QAAA,IAAoB,CAAA,oBAAA,GAAG,uBAAuB,CAAC;KAS1C;IAEL,WAAW,CAAC,EAAE,IAAI,EAAiB,EAAA;AAClC,QAAA,IAAI,IAAI,EAAE;YACT,IAAI,IAAI,CAAC,YAAY,EAAE;;;gBAGtB,UAAU,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,EAAE,GAAG,CAAC,CAAC;;AAElD,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAC;AACzE,aAAA;AAAM,iBAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;;AAE9B,gBAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAC;AAC5E,aAAA;iBAAM,IAAI,IAAI,CAAC,OAAO,EAAE;AACxB,gBAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;AACrB,aAAA;AACD,SAAA;KACD;AAED;;AAEG;IACH,eAAe,GAAA;QACd,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC3B;AAED;;AAEG;AAEH,IAAA,mBAAmB,CAAC,KAAoB,EAAA;QACvC,QAAQ,KAAK,CAAC,GAAG;YAChB,KAAK,QAAQ,EAAE;AACd,gBAAA,KAAK,CAAC,wBAAwB,EAAE,CAAC;;AAEjC,gBAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;AAClB,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AAClB,gBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;gBAC5B,MAAM;AACN,aAAA;YAED,KAAK,KAAK,EAAE;gBACX,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBAC3C,MAAM;AACN,aAAA;AACD,SAAA;KACD;AAED;;;;;;AAMG;AACH,IAAA,IAAI,mBAAmB,GAAA;QACtB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC;AACvG,QAAA,IAAI,YAAY,EAAE;;AAEjB,YAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC,CAAC;AAClF,YAAA,MAAM,wBAAwB,GAAG,YAAY,CAAC,YAAY,CAAC;YAC3D,OAAO,wBAAwB,GAAG,kBAAkB,CAAC;AACrD,SAAA;AAAM,aAAA;AACN,YAAA,OAAO,KAAK,CAAC;AACb,SAAA;KACD;;IAGD,WAAW,GAAA;AACV,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAC;KAC5E;IAES,mBAAmB,GAAA;AAC5B,QAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAC9F,QAAA,IAAI,mBAAmB,IAAI,mBAAmB,CAAC,KAAK,EAAE;YACrD,UAAU,CAAC,MAAM,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC;AAC9C,SAAA;AAAM,aAAA,IAAI,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACpE,YAAA,UAAU,CAAC,MAAM,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AAC3E,SAAA;AAAM,aAAA;AACN,YAAA,UAAU,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC;AACnD,SAAA;KACD;;AA3IW,KAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,KAAK,+CAwDR,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAxDL,KAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAK,EA3BP,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,6BAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;AAyBT,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,OAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAEW,KAAK,EAAA,UAAA,EAAA,CAAA;kBA7BjB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;AAyBT,CAAA,CAAA;iBACD,CAAA;;;8BAyDE,MAAM;+BAAC,QAAQ,CAAA;;yBApDR,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAIG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAKG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAKG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAKG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAQG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBAKI,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBAIG,KAAK,EAAA,CAAA;sBAAd,MAAM;gBAI+B,KAAK,EAAA,CAAA;sBAA1C,SAAS;gBAAC,IAAA,EAAA,CAAA,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBA4CpC,mBAAmB,EAAA,CAAA;sBADlB,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAA;;;ACzLpC;;;;;;;;;;AAUG;MAsBU,WAAW,CAAA;AA6BvB,IAAA,WAAA,CAAsB,IAAU,EAAA;AAAV,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAM;AA5BhC;;;AAGG;AACM,QAAA,IAAK,CAAA,KAAA,GAAG,SAAS,CAAC;AAC3B;;;AAGG;AACM,QAAA,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;AAClD;;AAEG;AACM,QAAA,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC;AAEhC;;AAEG;AACO,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAE,CAAC;QAE3C,IAAA,CAAA,aAAa,GAAG;AACf,YAAA,kBAAkB,EAAE,IAAI;SACxB,CAAC;QAEF,IAAA,CAAA,gBAAgB,GAAG;YAClB,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK;SACzC,CAAC;KAEkC;AAEpC;;AAEG;IACI,OAAO,GAAA;AACb,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;KACxB;;wGApCW,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAX,WAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,WAAW,EAnBb,QAAA,EAAA,oCAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,YAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;EAiBT,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,cAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAEW,WAAW,EAAA,UAAA,EAAA,CAAA;kBArBvB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,oCAAoC;AAC9C,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;AAiBT,CAAA,CAAA;iBACD,CAAA;6FAMS,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAKG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAIG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAKI,WAAW,EAAA,CAAA;sBAApB,MAAM;;;MCjDK,WAAW,CAAA;;wGAAX,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAX,WAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,WAAW,EANb,QAAA,EAAA,oCAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIT,CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;2FAEW,WAAW,EAAA,UAAA,EAAA,CAAA;kBARvB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,oCAAoC;AAC9C,oBAAA,QAAQ,EAAE,CAAA;;;;AAIT,CAAA,CAAA;iBACD,CAAA;;;MCJY,YAAY,CAAA;AAHzB,IAAA,WAAA,GAAA;AAI0C,QAAA,IAAiB,CAAA,iBAAA,GAAG,IAAI,CAAC;AAClE;;;AAGG;AAC0D,QAAA,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;KAC7E;;yGAPY,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;6FAAZ,YAAY,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,0BAAA,EAAA,wBAAA,EAAA,qCAAA,EAAA,cAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,sCAAsC;iBAChD,CAAA;8BAEyC,iBAAiB,EAAA,CAAA;sBAAzD,WAAW;uBAAC,0BAA0B,CAAA;gBAKsB,OAAO,EAAA,CAAA;sBAAnE,WAAW;uBAAC,qCAAqC,CAAA;;sBAAG,KAAK;;;MCN9C,kBAAkB,CAAA;AAH/B,IAAA,WAAA,GAAA;AAIkD,QAAA,IAAuB,CAAA,uBAAA,GAAG,IAAI,CAAC;KAChF;;+GAFY,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAlB,kBAAkB,EAAA,QAAA,EAAA,kDAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,kCAAA,EAAA,8BAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,kDAAkD;iBAC5D,CAAA;8BAEiD,uBAAuB,EAAA,CAAA;sBAAvE,WAAW;uBAAC,kCAAkC,CAAA;;;MCDnC,gBAAgB,CAAA;AAH7B,IAAA,WAAA,GAAA;AAIgD,QAAA,IAAqB,CAAA,qBAAA,GAAG,IAAI,CAAC;KAC5E;;6GAFY,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;iGAAhB,gBAAgB,EAAA,QAAA,EAAA,8CAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gCAAA,EAAA,4BAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,8CAA8C;iBACxD,CAAA;8BAE+C,qBAAqB,EAAA,CAAA;sBAAnE,WAAW;uBAAC,gCAAgC,CAAA;;;ACG9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCG;AAgCG,MAAO,UAAW,SAAQ,SAAS,CAAA;AAExC;;AAEG;IACH,WACoC,CAAA,IAAA,GAAO,SAAS,EACf,KAAa,EACb,KAAa,EACX,OAAe,EAClB,IAAY,EACG,mBAA+B,GAAA,IAAI,EAC/C,OAAU,GAAA,EAAE,EACd,OAAiB,EACP,kBAAkB,IAAI,EAAA;AAEpE,QAAA,KAAK,EAAE,CAAC;AAV2B,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;AACf,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAQ;AACb,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAQ;AACX,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;AAClB,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;AACG,QAAA,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAgB;AAC/C,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAK;AACd,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAU;AACP,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAAO;AAGpE,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC/B,YAAA,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;AACf,gBAAA,MAAM,CAAC,EAAE,GAAG,CAAsB,mBAAA,EAAA,CAAC,EAAE,CAAC;AACtC,aAAA;AACD,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AACjB,gBAAA,MAAM,CAAC,IAAI,GAAG,WAAW,CAAC;AAC1B,aAAA;AACD,SAAA;KACD;IAED,eAAe,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AAAE,YAAA,OAAO,KAAK,CAAC;AAAE,SAAA;AACzC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;AAChD,QAAA,IAAI,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,EAAE;AAChD,YAAA,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACrB,SAAA;AAAM,aAAA;AACN,YAAA,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;AACtB,SAAA;KACD;AAED,IAAA,aAAa,CAAC,WAA4B,EAAA;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACzC,IAAI,MAAM,CAAC,KAAK,EAAE;YACjB,MAAM,CAAC,KAAK,EAAE,CAAC;AACf,SAAA;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;KAClB;AAED,IAAA,YAAY,CAAC,OAAY,EAAA;AACxB,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,KAAK,EAAE;YACpD,OAAO;AACP,SAAA;QACD,IAAI,CAAC,UAAU,EAAE,CAAC;KAClB;;AApDW,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,kBAMD,MAAM,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EACN,OAAO,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EACP,OAAO,EACP,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,SAAS,EACT,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,MAAM,6BACN,qBAAqB,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EACrB,SAAS,EACT,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,OAAO,6BACP,iBAAiB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAd1B,UAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAU,EA7BZ,QAAA,EAAA,kCAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BT,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,KAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,SAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,WAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,WAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,YAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,QAAA,EAAA,kDAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAEW,UAAU,EAAA,UAAA,EAAA,CAAA;kBA/BtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,kCAAkC;AAC5C,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BT,CAAA,CAAA;iBACD,CAAA;;;8BAOE,QAAQ;;8BAAI,MAAM;+BAAC,MAAM,CAAA;;8BACzB,QAAQ;;8BAAI,MAAM;+BAAC,OAAO,CAAA;;8BAC1B,QAAQ;;8BAAI,MAAM;+BAAC,OAAO,CAAA;;8BAC1B,QAAQ;;8BAAI,MAAM;+BAAC,SAAS,CAAA;;8BAC5B,QAAQ;;8BAAI,MAAM;+BAAC,MAAM,CAAA;;8BACzB,QAAQ;;8BAAI,MAAM;+BAAC,qBAAqB,CAAA;;8BACxC,QAAQ;;8BAAI,MAAM;+BAAC,SAAS,CAAA;;8BAC5B,QAAQ;;8BAAI,MAAM;+BAAC,OAAO,CAAA;;8BAC1B,QAAQ;;8BAAI,MAAM;+BAAC,iBAAiB,CAAA;;yBAbO,YAAY,EAAA,CAAA;sBAAxD,SAAS;gBAAC,IAAA,EAAA,CAAA,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;AC/EhC,IAAA,eAGX;AAHD,CAAA,UAAY,cAAc,EAAA;AACzB,IAAA,cAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,cAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AAClB,CAAC,EAHW,cAAc,KAAd,cAAc,GAGzB,EAAA,CAAA,CAAA,CAAA;AA6CW,IAAA,gBAOX;AAPD,CAAA,UAAY,eAAe,EAAA;AAC1B,IAAA,eAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,eAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,eAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,eAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,eAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,eAAA,CAAA,gBAAA,CAAA,GAAA,iBAAkC,CAAA;AACnC,CAAC,EAPW,eAAe,KAAf,eAAe,GAO1B,EAAA,CAAA,CAAA;;ACjDD;;;;;;;;AAQG;AAEG,MAAO,YAAa,SAAQ,gBAAgB,CAAA;AACjD;;AAEG;AACH,IAAA,WAAA,CAAmB,kBAAsC,EAAA;QACxD,KAAK,CAAC,kBAAkB,CAAC,CAAC;AADR,QAAA,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;KAExD;AAED;;;;;;;;;;;;;;;;AAgBG;AACH,IAAA,IAAI,CAAC,IAAoB,EAAA;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC;AAClB,YAAA,SAAS,EAAE,UAAU;AACrB,YAAA,MAAM,EAAE;gBACP,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,OAAO,EAAE,IAAI,CAAC,OAAO;AACrB,gBAAA,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,KAAK,SAAS,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI;gBAC7F,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,gBAAA,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;gBAC3B,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,MAAQ,GAAC,CAAC;gBAChC,eAAe,EAAE,IAAI,CAAC,eAAe;AACrC,aAAA;AACD,SAAA,CAAC,CAAC;KACH;;yGAxCW,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;6GAAZ,YAAY,EAAA,CAAA,CAAA;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB,UAAU;;;MCVE,gBAAgB,CAAA;AAH7B,IAAA,WAAA,GAAA;AAIgD,QAAA,IAAqB,CAAA,qBAAA,GAAG,IAAI,CAAC;KAC5E;;6GAFY,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;iGAAhB,gBAAgB,EAAA,QAAA,EAAA,8CAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gCAAA,EAAA,4BAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,8CAA8C;iBACxD,CAAA;8BAE+C,qBAAqB,EAAA,CAAA;sBAAnE,WAAW;uBAAC,gCAAgC,CAAA;;;ACN9C;MAyDa,WAAW,CAAA;;wGAAX,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAX,WAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,iBAhCtB,UAAU;QACV,KAAK;QACL,WAAW;QACX,WAAW;QACX,OAAO;QACP,YAAY;QACZ,gBAAgB;QAChB,kBAAkB;QAClB,gBAAgB;AAChB,QAAA,SAAS,aAeT,YAAY;QACZ,YAAY;QACZ,UAAU;QACV,iBAAiB;QACjB,kBAAkB;AAClB,QAAA,UAAU,aAjBV,UAAU;QACV,KAAK;QACL,WAAW;QACX,WAAW;QACX,YAAY;QACZ,gBAAgB;QAChB,kBAAkB;QAClB,gBAAgB;QAChB,SAAS,CAAA,EAAA,CAAA,CAAA;AAYE,WAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,aAVZ,CAAC,gBAAgB,EAAE,YAAY,CAAC,YAE1C,YAAY;QACZ,YAAY;QACZ,UAAU;QACV,iBAAiB;QACjB,kBAAkB;QAClB,UAAU,CAAA,EAAA,CAAA,CAAA;2FAGC,WAAW,EAAA,UAAA,EAAA,CAAA;kBAlCvB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,YAAY,EAAE;wBACb,UAAU;wBACV,KAAK;wBACL,WAAW;wBACX,WAAW;wBACX,OAAO;wBACP,YAAY;wBACZ,gBAAgB;wBAChB,kBAAkB;wBAClB,gBAAgB;wBAChB,SAAS;AACT,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACR,UAAU;wBACV,KAAK;wBACL,WAAW;wBACX,WAAW;wBACX,YAAY;wBACZ,gBAAgB;wBAChB,kBAAkB;wBAClB,gBAAgB;wBAChB,SAAS;AACT,qBAAA;AACD,oBAAA,SAAS,EAAE,CAAC,gBAAgB,EAAE,YAAY,CAAC;AAC3C,oBAAA,OAAO,EAAE;wBACR,YAAY;wBACZ,YAAY;wBACZ,UAAU;wBACV,iBAAiB;wBACjB,kBAAkB;wBAClB,UAAU;AACV,qBAAA;iBACD,CAAA;;;ACxDD;;AAEG;;;;"}
1
+ {"version":3,"file":"carbon-components-angular-modal.mjs","sources":["../../src/modal/base-modal.class.ts","../../src/modal/base-modal.service.ts","../../src/modal/overlay.component.ts","../../src/modal/modal.component.ts","../../src/modal/modal-header.component.ts","../../src/modal/modal-footer.component.ts","../../src/modal/modal-content.directive.ts","../../src/modal/modal-header-heading.directive.ts","../../src/modal/modal-header-label.directive.ts","../../src/modal/alert-modal.component.ts","../../src/modal/alert-modal.interface.ts","../../src/modal/modal.service.ts","../../src/modal/modal-content-text.directive.ts","../../src/modal/modal.module.ts","../../src/modal/carbon-components-angular-modal.ts"],"sourcesContent":["import {\n\tOutput,\n\tEventEmitter,\n\tInput,\n\tDirective\n} from \"@angular/core\";\n\n/**\n * Extend `BaseModal` in your custom modal implementations to ensure consistent close behavior.\n *\n * `ModalService` depends on the `close` event to correctly clean up the component.\n */\n@Directive({\n\tselector: \"[cdsBaseModal], [ibmBaseModal]\"\n})\nexport class BaseModal {\n\t/**\n\t * Base event emitter to propagate close events\n\t */\n\t@Output() close = new EventEmitter();\n\n\t/**\n\t * Controls the open state of the modal\n\t */\n\t@Input() open = false;\n\n\t/**\n\t * Default method to handle closing the modal\n\t */\n\tcloseModal(): void {\n\t\tthis.close.emit();\n\t}\n}\n","import {\n\tComponentRef,\n\tInjector,\n\tInjectable\n} from \"@angular/core\";\nimport { PlaceholderService } from \"carbon-components-angular/placeholder\";\nimport { tap, delay } from \"rxjs/operators\";\n\n\n/**\n * Modal service handles instantiating and destroying modal instances.\n * Uses PlaceholderService to track open instances, and for it's placeholder view reference.\n */\n@Injectable()\nexport class BaseModalService {\n\t// track all our open modals\n\tprotected static modalList: Array<ComponentRef<any>> = [];\n\n\t/**\n\t * Creates an instance of `ModalService`.\n\t */\n\tconstructor(public placeholderService: PlaceholderService) {}\n\n\t/**\n\t * Creates and renders the modal component that is passed in.\n\t * `inputs` is an optional parameter of `data` that can be passed to the `Modal` component.\n\t */\n\tcreate<T>(data: { component: any, inputs?: any }): ComponentRef<any> {\n\t\tlet defaults = { inputs: {} };\n\t\tdata = Object.assign({}, defaults, data);\n\n\t\tconst inputProviders = Object.keys(data.inputs).map(inputName => ({\n\t\t\tprovide: inputName,\n\t\t\tuseValue: data.inputs[inputName]\n\t\t}));\n\t\tconst injector = Injector.create({ providers: inputProviders });\n\t\tconst component = this.placeholderService.createComponent(data.component, injector);\n\t\tlet focusedElement = document.activeElement as HTMLElement;\n\t\tsetTimeout(() => {\n\t\t\tcomponent.instance.open = true;\n\t\t});\n\n\t\tcomponent[\"previouslyFocusedElement\"] = focusedElement; // used to return focus to previously focused element\n\n\t\tcomponent.instance.close.pipe(\n\t\t\t// trigger the close animation\n\t\t\ttap(() => {\n\t\t\t\tcomponent.instance.open = false;\n\t\t\t}),\n\t\t\t// delay closing by an arbitrary amount to allow the animation to finish\n\t\t\tdelay(240)\n\t\t).subscribe(() => {\n\t\t\tthis.placeholderService.destroyComponent(component);\n\t\t\t// filter out our component\n\t\t\tBaseModalService.modalList = BaseModalService.modalList.filter(c => c !== component);\n\t\t});\n\n\t\tcomponent.onDestroy(() => {\n\t\t\tfocusedElement.focus();\n\t\t});\n\n\t\tBaseModalService.modalList.push(component);\n\n\t\treturn component;\n\t}\n\n\t/**\n\t * Destroys the modal on the supplied index.\n\t * When called without parameters it destroys the most recently created/top most modal.\n\t */\n\tdestroy(index = -1) {\n\t\t// return if nothing to destroy because it's already destroyed\n\t\tif (index >= BaseModalService.modalList.length || BaseModalService.modalList.length === 0) {\n\t\t\treturn;\n\t\t}\n\t\t// on negative index destroy the last on the list (top modal)\n\t\tif (index < 0) {\n\t\t\tindex = BaseModalService.modalList.length - 1;\n\t\t}\n\n\t\t// Let animation finish before component is removed\n\t\tsetTimeout(() => {\n\t\t\tif (BaseModalService.modalList[index]) {\n\t\t\t\tthis.placeholderService.destroyComponent(BaseModalService.modalList[index]);\n\t\t\t\tBaseModalService.modalList.splice(index, 1);\n\t\t\t}\n\t\t}, 240);\n\t}\n}\n","import {\n\tComponent,\n\tOutput,\n\tEventEmitter,\n\tViewChild,\n\tElementRef,\n\tInput\n} from \"@angular/core\";\n\n\n/**\n * Component for the overlay object that acts as a backdrop to the `Modal` component.\n *\n * The main purpose for this component is to be able to handle click events that fall outside\n * the bounds of the `Modal` component.\n */\n@Component({\n\tselector: \"cds-overlay, ibm-overlay\",\n\ttemplate: `\n\t\t<section\n\t\t\tclass=\"cds--modal cds--modal-tall\"\n\t\t\t[ngClass]=\"{\n\t\t\t\t'cds--modal--danger': theme === 'danger',\n\t\t\t\t'is-visible': open\n\t\t\t}\"\n\t\t\t(click)=\"overlayClick($event)\"\n\t\t\t#overlay>\n\t\t\t<ng-content></ng-content>\n\t\t</section>\n\t`\n})\nexport class Overlay {\n\t/**\n\t * Classification of the modal.\n\t */\n\t@Input() theme: \"default\" | \"danger\" = \"default\";\n\t@Input() open = false;\n\t/**\n\t * To emit the event where the user selects the overlay behind the `Modal`.\n\t */\n\t@Output() overlaySelect = new EventEmitter();\n\t/**\n\t * Maintains a reference to the view DOM element of the `Overlay`.\n\t */\n\t@ViewChild(\"overlay\", { static: true }) overlay: ElementRef;\n\n\t/**\n\t * Handles the user clicking on the `Overlay` which resides outside the `Modal` object.\n\t */\n\toverlayClick(event) {\n\t\tif (event.target !== this.overlay.nativeElement) { return; }\n\t\tevent.stopPropagation();\n\t\tthis.overlaySelect.emit(event);\n\t}\n\n}\n","import {\n\tAfterViewInit,\n\tComponent,\n\tEventEmitter,\n\tHostListener,\n\tInput,\n\tOutput,\n\tElementRef,\n\tViewChild,\n\tSimpleChanges,\n\tOnChanges,\n\tRenderer2,\n\tInject,\n\tOnDestroy\n} from \"@angular/core\";\nimport { DOCUMENT } from \"@angular/common\";\nimport { cycleTabs, getFocusElementList } from \"carbon-components-angular/common\";\nimport { BaseModalService } from \"./base-modal.service\";\n\n/**\n * Component to create modals for presenting content.\n *\n * [See demo](../../?path=/story/components-modal--basic)\n *\n * Using a modal in your application requires `cds-placeholder` which would generally be\n * placed near the end of your app component template (app.component.ts or app.component.html) as:\n *\n```html\n<cds-placeholder></cds-placeholder>\n```\n *\n * A more complete example for `Modal` is given as follows:\n *\n * Example modal definition:\n *\n```typescript\n@Component({\n\tselector: \"app-sample-modal\",\n\ttemplate: `\n\t\t\t\t<cds-modal size=\"xl\" (overlaySelected)=\"closeModal()\">\n\t\t\t\t\t<cds-modal-header (closeSelect)=\"closeModal()\">Header text</cds-modal-header>\n\t\t\t\t\t\t<section class=\"modal-body\">\n\t\t\t\t\t\t\t<h1>Sample modal works.</h1>\n\t\t\t\t\t\t\t<button class=\"btn--icon-link\" nPopover=\"Hello there\" title=\"Popover title\" placement=\"right\" appendInline=\"true\">\n\t\t\t\t\t\t\t\t<svg cdsIcon=\"info\" size=\"sm\"></svg>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t{{modalText}}\n\t\t\t\t\t\t</section>\n\t\t\t\t\t<cds-modal-footer><button cdsButton=\"primary\" (click)=\"closeModal()\">Close</button></cds-modal-footer>\n\t\t\t\t</cds-modal>`,\n\tstyleUrls: [\"./sample-modal.component.scss\"]\n})\nexport class SampleModal extends BaseModal {\n\tmodalText: string;\n\tconstructor(protected injector: Injector) {\n\t\tsuper();\n\t\tthis.modalText = this.injector.get(\"modalText\");\n\t}\n}\n```\n *\n * Example of opening the modal:\n *\n```typescript\n@Component({\n\tselector: \"app-modal-demo\",\n\ttemplate: `\n\t\t\t\t<button cdsButton=\"primary\" (click)=\"openModal('drill')\">Drill-down modal</button>\n\t\t\t\t<cds-placeholder></cds-placeholder>`\n})\nexport class ModalDemo {\n\topenModal() {\n\t\tthis.modalService.create({component: SampleModal, inputs: {modalText: \"Hello universe.\"}});\n\t}\n}\n```\n */\n@Component({\n\tselector: \"cds-modal, ibm-modal\",\n\ttemplate: `\n\t\t<cds-overlay\n\t\t\t[theme]=\"theme\"\n\t\t\t[open]=\"open\"\n\t\t\t(overlaySelect)=\"overlaySelected.emit()\">\n\t\t\t<div\n\t\t\t\tclass=\"cds--modal-container\"\n\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t'cds--modal-container--xs': size === 'xs',\n\t\t\t\t\t'cds--modal-container--sm': size === 'sm',\n\t\t\t\t\t'cds--modal-container--md': size === 'md',\n\t\t\t\t\t'cds--modal-container--lg': size === 'lg'\n\t\t\t\t}\"\n\t\t\t\trole=\"dialog\"\n\t\t\t\taria-modal=\"true\"\n\t\t\t\tstyle=\"z-index:1;\"\n\t\t\t\t[attr.aria-label]=\"ariaLabel\"\n\t\t\t\t#modal>\n\t\t\t\t<ng-content></ng-content>\n\t\t\t</div>\n\t\t</cds-overlay>\n\t`\n})\nexport class Modal implements AfterViewInit, OnChanges, OnDestroy {\n\t/**\n\t * Size of the modal to display.\n\t */\n\t@Input() size: \"xs\" | \"sm\"| \"md\" | \"lg\" = \"md\";\n\t/**\n\t * Classification of the modal.\n\t */\n\t@Input() theme: \"default\" | \"danger\" = \"default\";\n\n\t/**\n\t * Label for the modal.\n\t */\n\t@Input() ariaLabel = \"default\";\n\n\t/**\n\t * Controls the visibility of the modal when used directly in a template\n\t */\n\t@Input() open = false;\n\n\t/**\n\t * The element that triggers the modal, which should receive focus when the modal closes\n\t */\n\t@Input() trigger: HTMLElement;\n\n\t/**\n\t * Specify whether the modal contains scrolling content. This property overrides the automatic\n\t * detection of the existence of scrolling content. Set this property to `true` to force\n\t * overflow indicator to show up or to `false` to force overflow indicator to disappear.\n\t * It is set to `null` by default which indicates not to override automatic detection.\n\t */\n\t@Input() hasScrollingContent: boolean = null;\n\n\t/**\n\t * Emits event when click occurs within `n-overlay` element. This is to track click events occurring outside bounds of the `Modal` object.\n\t */\n\t@Output() overlaySelected = new EventEmitter();\n\t/**\n\t * To emit the closing event of the modal window.\n\t */\n\t@Output() close = new EventEmitter();\n\t/**\n\t * Maintains a reference to the view DOM element of the `Modal`.\n\t */\n\t@ViewChild(\"modal\", { static: true }) modal: ElementRef;\n\n\t/**\n\t * An element should have 'modal-primary-focus' as an attribute to receive initial focus within the `Modal` component.\n\t */\n\tselectorPrimaryFocus = \"[modal-primary-focus]\";\n\n\t/**\n\t * Creates an instance of `Modal`.\n\t */\n\tconstructor(\n\t\tpublic modalService: BaseModalService,\n\t\t@Inject(DOCUMENT) private document: Document,\n\t\tprivate renderer: Renderer2\n\t) { }\n\n\tngOnChanges({ open, hasScrollingContent }: SimpleChanges) {\n\t\tif (open) {\n\t\t\tif (open.currentValue) {\n\t\t\t\t// `100` is just enough time to allow the modal\n\t\t\t\t// to become visible, so that we can set focus\n\t\t\t\tsetTimeout(() => this.focusInitialElement(), 100);\n\t\t\t\t// Prevent scrolling on open\n\t\t\t\tthis.renderer.addClass(this.document.body, \"cds--body--with-modal-open\");\n\t\t\t} else if (!open.currentValue) {\n\t\t\t\t// Enable scrolling on close\n\t\t\t\tthis.renderer.removeClass(this.document.body, \"cds--body--with-modal-open\");\n\t\t\t} else if (this.trigger) {\n\t\t\t\tthis.trigger.focus();\n\t\t\t}\n\t\t}\n\t\tif (hasScrollingContent) {\n\t\t\tthis.updateScrollbar();\n\t\t}\n\t}\n\n\t/**\n\t * Set document focus to be on the modal component after it is initialized.\n\t */\n\tngAfterViewInit() {\n\t\tthis.focusInitialElement();\n\t\tthis.updateScrollbar();\n\t}\n\n\t/**\n\t * Handle keyboard events to close modal and tab through the content within the modal.\n\t */\n\t@HostListener(\"keydown\", [\"$event\"])\n\thandleKeyboardEvent(event: KeyboardEvent) {\n\t\tswitch (event.key) {\n\t\t\tcase \"Escape\": {\n\t\t\t\tevent.stopImmediatePropagation(); // prevents events being fired for multiple modals if more than 2 open\n\t\t\t\t// Manually close modal\n\t\t\t\tthis.open = false;\n\t\t\t\tthis.close.emit();\n\t\t\t\tthis.modalService.destroy(); // destroy top (latest) modal\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase \"Tab\": {\n\t\t\t\tcycleTabs(event, this.modal.nativeElement);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * This detects whether or not the modal contains scrolling content.\n\t *\n\t * To force trigger a detection (ie. on window resize), change or reset the value of the modal content.\n\t *\n\t * Use the `hasScrollingContent` input to manually override the overflow indicator.\n\t */\n\tget shouldShowScrollbar() {\n\t\tconst modalContent = this.modal ? this.modal.nativeElement.querySelector(\".cds--modal-content\") : null;\n\t\tif (modalContent) {\n\t\t\t// get rounded value from height to match integer returned from scrollHeight\n\t\t\tconst modalContentHeight = Math.ceil(modalContent.getBoundingClientRect().height);\n\t\t\tconst modalContentScrollHeight = modalContent.scrollHeight;\n\t\t\treturn modalContentScrollHeight > modalContentHeight;\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\t// Remove class preventing scrolling\n\tngOnDestroy() {\n\t\tthis.renderer.removeClass(this.document.body, \"cds--body--with-modal-open\");\n\t}\n\n\tprotected focusInitialElement() {\n\t\tconst primaryFocusElement = this.modal.nativeElement.querySelector(this.selectorPrimaryFocus);\n\t\tif (primaryFocusElement && primaryFocusElement.focus) {\n\t\t\tsetTimeout(() => primaryFocusElement.focus());\n\t\t} else if (getFocusElementList(this.modal.nativeElement).length > 0) {\n\t\t\tsetTimeout(() => getFocusElementList(this.modal.nativeElement)[0].focus());\n\t\t} else {\n\t\t\tsetTimeout(() => this.modal.nativeElement.focus());\n\t\t}\n\t}\n\n\tprivate updateScrollbar() {\n\t\tconst modalContent = this.modal ? this.modal.nativeElement.querySelector(\".cds--modal-content\") : null;\n\t\tconst showScrollbar = this.hasScrollingContent !== null ? this.hasScrollingContent : this.shouldShowScrollbar;\n\t\tif (modalContent) {\n\t\t\tif (showScrollbar) {\n\t\t\t\tthis.renderer.addClass(modalContent, \"cds--modal-scroll-content\");\n\t\t\t} else {\n\t\t\t\tthis.renderer.removeClass(modalContent, \"cds--modal-scroll-content\");\n\t\t\t}\n\t\t}\n\t}\n}\n","import {\n\tComponent,\n\tOutput,\n\tEventEmitter,\n\tInput\n} from \"@angular/core\";\nimport { I18n } from \"carbon-components-angular/i18n\";\n\n/**\n * ***Inputs***\n * ```html\n * <cds-modal-header>Header text</cds-modal-header>\n * ```\n *\n * ***Outputs***\n * ```html\n * <cds-modal-header (closeSelect)=\"closeModal()\">Header text</cds-modal-header>\n * ```\n */\n@Component({\n\tselector: \"cds-modal-header, ibm-modal-header\",\n\ttemplate: `\n\t\t<header class=\"cds--modal-header {{theme}}\">\n\t\t\t<ng-content></ng-content>\n\t\t\t<div class=\"cds--modal-close-button\">\n\t\t\t\t<cds-icon-button\n\t\t\t\t\t*ngIf=\"showCloseButton\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t[buttonNgClass]=\"buttonNgClass\"\n\t\t\t\t\t[buttonAttributes]=\"buttonAttributes\"\n\t\t\t\t\talign=\"left\"\n\t\t\t\t\t[description]=\"closeLabel\"\n\t\t\t\t\t(click)=\"onClose()\">\n\t\t\t\t\t<svg cdsIcon=\"close\" size=\"20\" class=\"cds--modal-close__icon\"></svg>\n\t\t\t\t</cds-icon-button>\n\t\t\t</div>\n\t\t</header>\n\n\t`\n})\nexport class ModalHeader {\n\t/**\n\t * @deprecated since v5\n\t * Sets the style on the modal heading based on its category.\n\t */\n\t@Input() theme = \"default\";\n\t/**\n\t * Accessible label for the header close button.\n\t * Defaults to the `MODAL.CLOSE` value from the i18n service.\n\t */\n\t@Input() closeLabel = this.i18n.get().MODAL.CLOSE;\n\t/**\n\t * Set to `false` to hide the close button.\n\t */\n\t@Input() showCloseButton = true;\n\n\t/**\n\t * To emit the event of clicking on the close icon within the modal.\n\t */\n\t@Output() closeSelect = new EventEmitter();\n\n\tbuttonNgClass = {\n\t\t\"cds--modal-close\": true\n\t};\n\n\tbuttonAttributes = {\n\t\t\"aria-label\": this.i18n.get().MODAL.CLOSE\n\t};\n\n\tconstructor(protected i18n: I18n) {}\n\n\t/**\n\t * Handles click for the close icon button within the `Modal`.\n\t */\n\tpublic onClose() {\n\t\tthis.closeSelect.emit();\n\t}\n}\n","import { Component } from \"@angular/core\";\n\n@Component({\n\tselector: \"cds-modal-footer, ibm-modal-footer\",\n\ttemplate: `\n\t\t<footer class=\"cds--modal-footer\">\n\t\t\t<ng-content></ng-content>\n\t\t</footer>\n\t`\n})\nexport class ModalFooter {}\n","import { Directive, HostBinding, Input } from \"@angular/core\";\n\n@Directive({\n\tselector: \"[cdsModalContent], [ibmModalContent]\"\n})\nexport class ModalContent {\n\t@HostBinding(\"class.cds--modal-content\") modalContentClass = true;\n\t/**\n\t * Provide whether the modal content has a form element.\n\t * If `true` is used here, non-form child content should have `cds--modal-content__regular-content` class.\n\t */\n\t@HostBinding(\"class.cds--modal-content--with-form\") @Input() hasForm = false;\n}\n","import { Directive, HostBinding, Input } from \"@angular/core\";\n\n@Directive({\n\tselector: \"[cdsModalHeaderHeading], [ibmModalHeaderHeading]\"\n})\nexport class ModalHeaderHeading {\n\t@HostBinding(\"class.cds--modal-header__heading\") modalHeaderHeadingClass = true;\n}\n","import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n\tselector: \"[cdsModalHeaderLabel], [ibmModalHeaderLabel]\"\n})\nexport class ModalHeaderLabel {\n\t@HostBinding(\"class.cds--modal-header__label\") modalHeaderLabelClass = true;\n}\n","import {\n\tComponent,\n\tInject,\n\tViewChild,\n\tAfterViewInit,\n\tOptional\n} from \"@angular/core\";\nimport { BaseModal } from \"./base-modal.class\";\n\n/**\n * Component to create standard modals for presenting content or asking for user's input.\n * It can show as a passive modal showing only text or show as a transactional modal with\n * multiple buttons for different actions for the user to choose from.\n *\n * Using a modal in your application requires `cds-placeholder` which would generally be\n * placed near the end of your app component template (app.component.ts or app.component.html) as:\n *\n * ```html\n * <cds-placeholder></cds-placeholder>\n * ```\n *\n * Example of opening the modal:\n *\n * ```typescript\n * \\@Component({\n * selector: \"app-modal-demo\",\n * template: `\n * <button class=\"btn--primary\" (click)=\"openModal()\">Open modal</button>\n * <cds-placeholder></cds-placeholder>`\n * })\n * export class ModalDemo {\n * \topenModal() {\n * \t\tthis.modalService.show({\n *\t\t\tmodalType: \"default\",\n *\t\t\tlabel: \"optional header text\",\n *\t\t\ttitle: \"Modal title\",\n *\t\t\ttext: \"Modal text\",\n *\t\t\tbuttons: [{\n *\t\t\t\ttext: \"Button text\",\n *\t\t\t\ttype: \"primary\",\n *\t\t\t\tclick: clickFunction\n *\t\t\t}]\n *\t\t});\n * \t}\n * }\n * ```\n */\n@Component({\n\tselector: \"cds-alert-modal, ibm-alert-modal\",\n\ttemplate: `\n\t\t<cds-modal\n\t\t\t[size]=\"size\"\n\t\t\t[theme]=\"type\"\n\t\t\t[ariaLabel]=\"title\"\n\t\t\t[hasScrollingContent]=\"hasScrollingContent\"\n\t\t\t[open]=\"open\"\n\t\t\t(overlaySelected)=\"dismissModal('overlay')\">\n\t\t\t<cds-modal-header (closeSelect)=\"dismissModal('close')\" [showCloseButton]=\"showCloseButton\">\n\t\t\t\t<p cdsModalHeaderLabel class=\"cds--type-delta\">{{label}}</p>\n\t\t\t\t<p cdsModalHeaderHeading class=\"cds--type-beta\">{{title}}</p>\n\t\t\t</cds-modal-header>\n\t\t\t<div cdsModalContent #modalContent>\n\t\t\t\t<p [innerHTML]=\"content\"></p>\n\t\t\t</div>\n\t\t\t<cds-modal-footer *ngIf=\"buttons.length > 0\">\n\t\t\t\t<ng-container *ngFor=\"let button of buttons; let i = index\">\n\t\t\t\t\t<button\n\t\t\t\t\t\t[cdsButton]=\"button.type\"\n\t\t\t\t\t\t(click)=\"buttonClicked(i)\"\n\t\t\t\t\t\t[id]=\"button.id\"\n\t\t\t\t\t\t[attr.modal-primary-focus]=\"(button.type.indexOf('primary') !== -1 ? '' : null)\">\n\t\t\t\t\t\t{{button.text}}\n\t\t\t\t\t</button>\n\t\t\t\t</ng-container>\n\t\t\t</cds-modal-footer>\n\t\t</cds-modal>\n\t`\n})\nexport class AlertModal extends BaseModal implements AfterViewInit {\n\t@ViewChild(\"modalContent\", { static: true }) modalContent: { nativeElement: any; };\n\t/**\n\t * Creates an instance of `AlertModal`.\n\t */\n\tconstructor(\n\t\t@Optional() @Inject(\"type\") public type = \"default\",\n\t\t@Optional() @Inject(\"label\") public label: string,\n\t\t@Optional() @Inject(\"title\") public title: string,\n\t\t@Optional() @Inject(\"content\") public content: string,\n\t\t@Optional() @Inject(\"size\") public size: string,\n\t\t@Optional() @Inject(\"hasScrollingContent\") public hasScrollingContent: boolean = null,\n\t\t@Optional() @Inject(\"buttons\") public buttons = [],\n\t\t@Optional() @Inject(\"close\") public onClose: Function,\n\t\t@Optional() @Inject(\"showCloseButton\") public showCloseButton = true\n\t) {\n\t\tsuper();\n\t\tfor (let i = 0; i < this.buttons.length; i++) {\n\t\t\tconst button = this.buttons[i];\n\t\t\tif (!button.id) {\n\t\t\t\tbutton.id = `alert-modal-button-${i}`;\n\t\t\t}\n\t\t\tif (!button.type) {\n\t\t\t\tbutton.type = \"secondary\";\n\t\t\t}\n\t\t}\n\t}\n\n\tngAfterViewInit() {\n\t\tif (!this.modalContent) { return false; }\n\t\tconst element = this.modalContent.nativeElement;\n\t\tif (element.scrollHeight > element.clientHeight) {\n\t\t\telement.tabIndex = 0;\n\t\t} else {\n\t\t\telement.tabIndex = -1;\n\t\t}\n\t}\n\n\tbuttonClicked(buttonIndex: string | number) {\n\t\tconst button = this.buttons[buttonIndex];\n\t\tif (button.click) {\n\t\t\tbutton.click();\n\t\t}\n\n\t\tthis.closeModal();\n\t}\n\n\tdismissModal(trigger: any) {\n\t\tif (this.onClose && this.onClose(trigger) === false) {\n\t\t\treturn;\n\t\t}\n\t\tthis.closeModal();\n\t}\n}\n","export enum AlertModalType {\n\tdefault = \"default\",\n\tdanger = \"danger\"\n}\n\nexport interface AlertModalData {\n\t/**\n\t * type of the modal\n\t */\n\ttype?: AlertModalType;\n\t/**\n\t * Additional label shown over the modal\n\t */\n\tlabel?: string;\n\t/**\n\t * Primary title for the modal\n\t */\n\ttitle?: string;\n\t/**\n\t * Content for the modal body, could include HTML tags\n\t */\n\tcontent?: string;\n\t/**\n\t * Size of the modal to display.\n\t */\n\tsize?: \"xs\" | \"sm\" | \"md\" | \"lg\";\n\t/**\n\t * Array of `ModalButton`s\n\t */\n\tbuttons?: Array<ModalButton>;\n\t/**\n\t * Specify whether the modal contains scrolling content. This property overrides the automatic detection\n\t * of the existence of scrolling content. Set this property to `true` to force overflow indicator to\n\t * show up or to `false` to force overflow indicator to disappear.\n\t * It is set to `null` by default which indicates not to override automatic detection.\n\t */\n\thasScrollingContent?: boolean;\n\t/**\n\t * Callback for non-specific close events. `return false;` to prevent the modal from closing\n\t * Property trigger has a value of `overlay` or `close`\n\t */\n\tclose?: (trigger?: \"overlay\" | \"close\") => boolean;\n\t/**\n\t * Set to `false` to hide the header's close button.\n\t */\n\tshowCloseButton?: boolean;\n}\n\nexport enum ModalButtonType {\n\tprimary = \"primary\",\n\tsecondary = \"secondary\",\n\ttertiary = \"tertiary\",\n\tghost = \"ghost\",\n\tdanger = \"danger\",\n\tdanger_primary = \"danger--primary\"\n}\n\nexport interface ModalButton {\n\t/**\n\t * Display value of the button\n\t */\n\ttext: string;\n\t/**\n\t * Optional unique ID for the button\n\t */\n\tid?: string;\n\t/**\n\t * Button type\n\t */\n\ttype?: ModalButtonType;\n\t/**\n\t * Callback for the button `click` event\n\t */\n\tclick?: Function;\n}\n","import { Injectable, ViewContainerRef } from \"@angular/core\";\nimport { AlertModal } from \"./alert-modal.component\";\nimport { AlertModalData } from \"./alert-modal.interface\";\nimport { PlaceholderService } from \"carbon-components-angular/placeholder\";\nimport { BaseModalService } from \"./base-modal.service\";\n\n/**\n * Extends Base Modal Service to create Alert Modal with a function call. Placed in a seperate service\n * to prevent remote scoping (NG3003) which has side effects. Hence, import cycles are not allowed when\n * compilationMode is set to `partial`.\n *\n *\n * Modal service handles instantiating and destroying modal instances.\n * Uses PlaceholderService to track open instances, and for it's placeholder view reference.\n */\n@Injectable()\nexport class ModalService extends BaseModalService {\n\t/**\n\t * Creates an instance of `ModalService`.\n\t */\n\tconstructor(public placeholderService: PlaceholderService) {\n\t\tsuper(placeholderService);\n\t}\n\n\t/**\n\t * Creates and renders a new alert modal component.\n\t * @param data You can pass in:\n\t * `type` - \"default\" | \"danger\" = \"default\",\n\t * `label` - a label shown over the title,\n\t * `title` - modal's title,\n\t * `content` - modal's content, could include HTML tags.\n\t * `buttons` is an array of objects\n\t * `close` custom close function\n\t * ```\n\t * {\n\t * \t\ttext: \"Button text\",\n\t * \t\ttype: \"primary\" | \"secondary\" | \"tertiary\" | \"ghost\" | \"danger\" | \"danger--primary\" = \"primary\",\n\t * \t\tclick: clickFunction,\n\t * }\n\t * ```\n\t */\n\tshow(data: AlertModalData) {\n\t\treturn this.create({\n\t\t\tcomponent: AlertModal,\n\t\t\tinputs: {\n\t\t\t\ttype: data.type,\n\t\t\t\tlabel: data.label,\n\t\t\t\ttitle: data.title,\n\t\t\t\tcontent: data.content,\n\t\t\t\thasScrollingContent: data.hasScrollingContent !== undefined ? data.hasScrollingContent : null,\n\t\t\t\tsize: data.size,\n\t\t\t\tbuttons: data.buttons || [],\n\t\t\t\tclose: data.close || (() => { }),\n\t\t\t\tshowCloseButton: data.showCloseButton\n\t\t\t}\n\t\t});\n\t}\n}\n\n","import { Directive, HostBinding } from \"@angular/core\";\n\n@Directive({\n\tselector: \"[cdsModalContentText], [ibmModalContentText]\"\n})\nexport class ModalContentText {\n\t@HostBinding(\"class.cds--modal-content__text\") modalContentTextClass = true;\n}\n","// modules\nimport { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\n// imports\nimport { BaseModalService } from \"./base-modal.service\";\nimport { ModalService } from \"./modal.service\";\nimport { Modal } from \"./modal.component\";\nimport { ModalFooter } from \"./modal-footer.component\";\nimport { Overlay } from \"./overlay.component\";\nimport { ModalHeader } from \"./modal-header.component\";\nimport { AlertModal } from \"./alert-modal.component\";\nimport { ButtonModule } from \"carbon-components-angular/forms\";\nimport { I18nModule } from \"carbon-components-angular/i18n\";\nimport { PlaceholderModule } from \"carbon-components-angular/placeholder\";\nimport { ExperimentalModule } from \"carbon-components-angular/experimental\";\nimport { ModalContent } from \"./modal-content.directive\";\nimport { ModalContentText } from \"./modal-content-text.directive\";\nimport { ModalHeaderHeading } from \"./modal-header-heading.directive\";\nimport { ModalHeaderLabel } from \"./modal-header-label.directive\";\nimport { BaseModal } from \"./base-modal.class\";\nimport { IconModule } from \"carbon-components-angular/icon\";\n\n@NgModule({\n\tdeclarations: [\n\t\tAlertModal,\n\t\tModal,\n\t\tModalHeader,\n\t\tModalFooter,\n\t\tOverlay,\n\t\tModalContent,\n\t\tModalContentText,\n\t\tModalHeaderHeading,\n\t\tModalHeaderLabel,\n\t\tBaseModal\n\t],\n\texports: [\n\t\tAlertModal,\n\t\tModal,\n\t\tModalHeader,\n\t\tModalFooter,\n\t\tModalContent,\n\t\tModalContentText,\n\t\tModalHeaderHeading,\n\t\tModalHeaderLabel,\n\t\tBaseModal\n\t],\n\tproviders: [BaseModalService, ModalService],\n\timports: [\n\t\tCommonModule,\n\t\tButtonModule,\n\t\tI18nModule,\n\t\tPlaceholderModule,\n\t\tExperimentalModule,\n\t\tIconModule\n\t]\n})\nexport class ModalModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3.Overlay","i3.Modal","i4.ModalHeader","i5.ModalFooter","i6.ModalContent","i7.ModalHeaderHeading","i8.ModalHeaderLabel"],"mappings":"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"}