carbon-components-angular 5.24.1 → 5.24.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/documentation/components/DropdownList.html +17 -16
- package/docs/documentation/components/Tooltip.html +67 -28
- package/docs/documentation/coverage.html +3 -3
- package/docs/documentation/js/search/search_index.js +2 -2
- package/docs/documentation/modules/TilesModule/dependencies.svg +4 -4
- package/docs/documentation/modules/TilesModule.html +4 -4
- package/docs/documentation/modules/TimePickerModule/dependencies.svg +41 -45
- package/docs/documentation/modules/TimePickerModule.html +41 -45
- package/docs/documentation/modules/TimePickerSelectModule/dependencies.svg +38 -42
- package/docs/documentation/modules/TimePickerSelectModule.html +38 -42
- package/docs/documentation/modules/ToggleModule/dependencies.svg +4 -4
- package/docs/documentation/modules/ToggleModule.html +4 -4
- package/docs/documentation/modules/TooltipModule/dependencies.svg +28 -28
- package/docs/documentation/modules/TooltipModule.html +28 -28
- package/docs/documentation/modules/TreeviewModule/dependencies.svg +36 -36
- package/docs/documentation/modules/TreeviewModule.html +36 -36
- package/docs/documentation/modules/UIShellModule/dependencies.svg +4 -4
- package/docs/documentation/modules/UIShellModule.html +4 -4
- package/docs/documentation.json +23 -23
- package/docs/storybook/{3224.92030851.iframe.bundle.js → 3224.aa2b4664.iframe.bundle.js} +1 -1
- package/docs/storybook/{4578.17249a24.iframe.bundle.js → 4578.65805869.iframe.bundle.js} +1 -1
- package/docs/storybook/iframe.html +2 -2
- package/docs/storybook/{main.9d694b47.iframe.bundle.js → main.ff512697.iframe.bundle.js} +1 -1
- package/docs/storybook/project.json +1 -1
- package/docs/storybook/{runtime~main.1f3e45b2.iframe.bundle.js → runtime~main.4af5c4ee.iframe.bundle.js} +1 -1
- package/docs/storybook/tooltip-definition-tooptip-stories.d6e8ec29.iframe.bundle.js +1 -0
- package/docs/storybook/tooltip-tooltip-stories.79853bfa.iframe.bundle.js +1 -0
- package/esm2020/dropdown/list/dropdown-list.component.mjs +4 -3
- package/esm2020/tooltip/tooltip.component.mjs +9 -3
- package/fesm2015/carbon-components-angular-dropdown.mjs +5 -2
- package/fesm2015/carbon-components-angular-dropdown.mjs.map +1 -1
- package/fesm2015/carbon-components-angular-tooltip.mjs +8 -2
- package/fesm2015/carbon-components-angular-tooltip.mjs.map +1 -1
- package/fesm2020/carbon-components-angular-dropdown.mjs +3 -2
- package/fesm2020/carbon-components-angular-dropdown.mjs.map +1 -1
- package/fesm2020/carbon-components-angular-tooltip.mjs +8 -2
- package/fesm2020/carbon-components-angular-tooltip.mjs.map +1 -1
- package/package.json +1 -1
- package/tooltip/tooltip.component.d.ts +1 -0
- package/docs/storybook/tooltip-definition-tooptip-stories.d4d53243.iframe.bundle.js +0 -1
- package/docs/storybook/tooltip-tooltip-stories.fafd3535.iframe.bundle.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"generatedAt":
|
|
1
|
+
{"generatedAt":1713558448092,"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",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:"e8963bf8",210:"e906cf67",384:"c703f9de",454:"3f3499ab",459:"183f4129",503:"7113f5a6",703:"7265233d",799:"05ab4dd7",901:"fedd2c3b",911:"1b5d80b7",933:"c19aca64",972:"699b1e1b",1119:"f42b55a6",1127:"fac60ec0",1325:"3c39c950",1470:"39923f01",1562:"1e6a79b6",1895:"0331c090",1928:"48faee56",2218:"7513a48b",2342:"ba1fb969",2371:"7bbf1029",2388:"66aa5c7c",2399:"51dab44c",2489:"def6c644",2494:"261bc118",2573:"f7a88c02",2722:"00b09460",2969:"ad4e83e9",3080:"d3996d61",3224:"92030851",3280:"841048dc",3314:"487f9487",3329:"3aeae19d",3348:"9d9f3238",3360:"e0c015fc",3402:"209d7ef2",3415:"bd5d140d",3523:"2887855a",3610:"e4243e65",3719:"09f1a279",3774:"c37f3d92",3858:"d9a3162d",3867:"7b3a9288",3931:"0e7c514c",4232:"89086fc2",4253:"fafd3535",4277:"a011175b",4391:"8f3aa078",4578:"17249a24",4731:"5b558b26",4762:"cae9c326",5069:"eabf32ea",5103:"20115e64",5167:"59d7496a",5368:"b2525c3c",5455:"9fc41371",5808:"0002dc55",5868:"9e6e15e4",5980:"f28348e5",6026:"0a70e102",6115:"66e1727e",6274:"d4d53243",6310:"7cbeda49",6322:"a91784a3",6456:"e544ed9d",6634:"9e3dd976",6663:"1d3d1000",6842:"43daa149",6943:"eeb079d9",7019:"b8944046",7081:"799a681c",7153:"fff25cdf",7235:"70809ec7",7291:"c50bdf73",7399:"f37bb110",7529:"5272f30b",7773:"6c3cf943",7840:"717ad729",7869:"77f9485f",7931:"624c3d04",8341:"a544f9e9",8552:"d561d04b",9115:"b37cce0a",9211:"97161318",9325:"c925923c",9552:"5b57af49",9558:"f6e6487f",9619:"bf194b73",9660:"a1fb87a2",9672:"00e58d20",9736:"6039adf9"}[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",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:"e8963bf8",210:"e906cf67",384:"c703f9de",454:"3f3499ab",459:"183f4129",503:"7113f5a6",703:"7265233d",799:"05ab4dd7",901:"fedd2c3b",911:"1b5d80b7",933:"c19aca64",972:"699b1e1b",1119:"f42b55a6",1127:"fac60ec0",1325:"3c39c950",1470:"39923f01",1562:"1e6a79b6",1895:"0331c090",1928:"48faee56",2218:"7513a48b",2342:"ba1fb969",2371:"7bbf1029",2388:"66aa5c7c",2399:"51dab44c",2489:"def6c644",2494:"261bc118",2573:"f7a88c02",2722:"00b09460",2969:"ad4e83e9",3080:"d3996d61",3224:"aa2b4664",3280:"841048dc",3314:"487f9487",3329:"3aeae19d",3348:"9d9f3238",3360:"e0c015fc",3402:"209d7ef2",3415:"bd5d140d",3523:"2887855a",3610:"e4243e65",3719:"09f1a279",3774:"c37f3d92",3858:"d9a3162d",3867:"7b3a9288",3931:"0e7c514c",4232:"89086fc2",4253:"79853bfa",4277:"a011175b",4391:"8f3aa078",4578:"65805869",4731:"5b558b26",4762:"cae9c326",5069:"eabf32ea",5103:"20115e64",5167:"59d7496a",5368:"b2525c3c",5455:"9fc41371",5808:"0002dc55",5868:"9e6e15e4",5980:"f28348e5",6026:"0a70e102",6115:"66e1727e",6274:"d6e8ec29",6310:"7cbeda49",6322:"a91784a3",6456:"e544ed9d",6634:"9e3dd976",6663:"1d3d1000",6842:"43daa149",6943:"eeb079d9",7019:"b8944046",7081:"799a681c",7153:"fff25cdf",7235:"70809ec7",7291:"c50bdf73",7399:"f37bb110",7529:"5272f30b",7773:"6c3cf943",7840:"717ad729",7869:"77f9485f",7931:"624c3d04",8341:"a544f9e9",8552:"d561d04b",9115:"b37cce0a",9211:"97161318",9325:"c925923c",9552:"5b57af49",9558:"f6e6487f",9619:"bf194b73",9660:"a1fb87a2",9672:"00e58d20",9736:"6039adf9"}[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})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunkcarbon_components_angular=self.webpackChunkcarbon_components_angular||[]).push([[6274],{"./src/popover/index.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{OI:()=>PopoverContainer,yk:()=>PopoverContent,UU:()=>PopoverModule});var asyncToGenerator=__webpack_require__("./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"),tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.js"),core=__webpack_require__("./node_modules/@angular/core/fesm2020/core.mjs"),floating_ui_dom=__webpack_require__("./node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs"),floating_ui_core=__webpack_require__("./node_modules/@floating-ui/core/dist/floating-ui.core.mjs");let PopoverContainer=class PopoverContainer{constructor(elementRef,ngZone,renderer,changeDetectorRef){this.elementRef=elementRef,this.ngZone=ngZone,this.renderer=renderer,this.changeDetectorRef=changeDetectorRef,this._align="bottom",this.alignmentClassPrefix="cds--popover--",this.onClose=new core.EventEmitter,this.onOpen=new core.EventEmitter,this.isOpenChange=new core.EventEmitter,this.caret=!0,this.dropShadow=!0,this.highContrast=!1,this.autoAlign=!1,this.containerClass=!0,this.isOpen=!1}set align(alignment){if(!alignment)return;const previousAlignment=this._align;switch(alignment){case"top-left":this._align="top-start";break;case"top-right":this._align="top-end";break;case"bottom-left":this._align="bottom-start";break;case"bottom-right":this._align="bottom-end";break;case"left-top":this._align="left-start";break;case"left-bottom":this._align="left-end";break;case"right-top":this._align="right-start";break;case"right-bottom":this._align="right-end";break;default:this._align=alignment}this.updateAlignmentClass(this._align,previousAlignment)}handleChange(open,event){if(this.isOpen!==open&&event&&this.isOpenChange.emit(open),open){if(event&&this.onOpen.emit(event),this.autoAlign){if(this.caretRef){const computedStyle=getComputedStyle(this.caretRef),offset=computedStyle.getPropertyValue("--cds-popover-offset"),height=computedStyle.getPropertyValue("--cds-popover-caret-height");this.caretOffset=(offset?.includes("px")?Number(offset.split("px",1)[0]):16*Number(offset.split("rem",1)[0]))||10,this.caretHeight=(height?.includes("px")?Number(height.split("px",1)[0]):16*Number(height.split("rem",1)[0]))||6}this.elementRef.nativeElement&&this.popoverContentRef&&(this.unmountFloatingElement=(0,floating_ui_dom.Me)(this.elementRef.nativeElement,this.popoverContentRef,this.recomputePosition.bind(this)))}}else this.cleanUp(),event&&this.onClose.emit(event);this.isOpen=open,this.changeDetectorRef.markForCheck()}roundByDPR(value){const dpr=window.devicePixelRatio||1;return Math.round(value*dpr)/dpr}recomputePosition(){var _this=this;this.ngZone.runOutsideAngular((0,asyncToGenerator.Z)((function*(){const{x,y,placement,middlewareData}=yield(0,floating_ui_dom.oo)(_this.elementRef.nativeElement,_this.popoverContentRef,{placement:_this._align,strategy:"fixed",middleware:[(0,floating_ui_core.cv)(_this.caretOffset),(0,floating_ui_dom.RR)({fallbackAxisSideDirection:"start"}),(0,floating_ui_dom.x7)({element:_this.caretRef})]}),previousAlignment=_this._align;if(_this._align=placement,_this.updateAlignmentClass(_this._align,previousAlignment),Object.assign(_this.popoverContentRef.style,{position:"fixed",top:"0",left:"0",transform:`translate(${_this.roundByDPR(x)}px,${_this.roundByDPR(y)}px)`}),middlewareData.arrow){const{x:arrowX,y:arrowY}=middlewareData.arrow,staticSide={top:"bottom",right:"left",bottom:"top",left:"right"}[placement.split("-")[0]];_this.caretRef.style.left=null!=arrowX?`${arrowX}px`:"",_this.caretRef.style.top=null!=arrowY?`${arrowY}px`:"",_this.caretRef.style.right="",_this.caretRef.style.bottom="",staticSide&&(_this.caretRef.style[staticSide]=-_this.caretHeight+"px")}})))}ngOnChanges(changes){const originalState=this.isOpen;this.handleChange(!1),changes.autoAlign&&!changes.autoAlign.firstChange&&(this.popoverContentRef=this.elementRef.nativeElement.querySelector(".cds--popover-content"),this.popoverContentRef.setAttribute("style",""),this.caretRef=this.elementRef.nativeElement.querySelector("span.cds--popover-caret")),this.handleChange(originalState)}ngAfterViewInit(){this.initializeReferences()}initializeReferences(){this.updateAlignmentClass(this._align),this.popoverContentRef=this.elementRef.nativeElement.querySelector(".cds--popover-content"),this.caretRef=this.elementRef.nativeElement.querySelector("span.cds--popover-caret"),this.handleChange(this.isOpen)}ngOnDestroy(){this.cleanUp()}cleanUp(){this.unmountFloatingElement&&this.unmountFloatingElement(),this.unmountFloatingElement=void 0}updateAlignmentClass(newAlignment,previousAlignment){if(this.elementRef.nativeElement&&previousAlignment!==newAlignment){const regexp=new RegExp("right|top|left|bottom");this.elementRef.nativeElement.classList.forEach((className=>{regexp.test(className)&&this.renderer.removeClass(this.elementRef.nativeElement,`${className}`)})),this.renderer.addClass(this.elementRef.nativeElement,`${this.alignmentClassPrefix}${newAlignment}`)}}};PopoverContainer.ctorParameters=()=>[{type:core.ElementRef},{type:core.NgZone},{type:core.Renderer2},{type:core.ChangeDetectorRef}],PopoverContainer.propDecorators={align:[{type:core.Input}],onClose:[{type:core.Output}],onOpen:[{type:core.Output}],isOpenChange:[{type:core.Output}],caret:[{type:core.HostBinding,args:["class.cds--popover--caret"]},{type:core.Input}],dropShadow:[{type:core.HostBinding,args:["class.cds--popover--drop-shadow"]},{type:core.Input}],highContrast:[{type:core.HostBinding,args:["class.cds--popover--high-contrast"]},{type:core.Input}],autoAlign:[{type:core.HostBinding,args:["class.cds--popover--auto-align"]},{type:core.Input}],containerClass:[{type:core.HostBinding,args:["class.cds--popover-container"]}],isOpen:[{type:core.Input},{type:core.HostBinding,args:["class.cds--popover--open"]}]},PopoverContainer=(0,tslib_es6.gn)([(0,core.Directive)({selector:"[cdsPopover], [ibmPopover]"})],PopoverContainer);let PopoverContent=class PopoverContent{constructor(changeDetectorRef){this.changeDetectorRef=changeDetectorRef,this.popoverClass=!0,this.autoAlign=!1}ngAfterViewInit(){this.popoverContent&&(this.autoAlign=!!this.popoverContent.nativeElement.closest(".cds--popover--auto-align"),this.changeDetectorRef.detectChanges())}};PopoverContent.ctorParameters=()=>[{type:core.ChangeDetectorRef}],PopoverContent.propDecorators={popoverClass:[{type:core.HostBinding,args:["class.cds--popover"]}],popoverContent:[{type:core.ViewChild,args:["content"]}]},PopoverContent=(0,tslib_es6.gn)([(0,core.Component)({selector:"cds-popover-content, ibm-popover-content",template:'\n\t\t<span class="cds--popover-content" #content>\n\t\t\t<div>\n\t\t\t\t<ng-content></ng-content>\n\t\t\t</div>\n\t\t\t<span *ngIf="autoAlign" class="cds--popover-caret cds--popover--auto-align"></span>\n\t\t</span>\n\t\t<span *ngIf="!autoAlign" class="cds--popover-caret"></span>\n\t'})],PopoverContent);var common=__webpack_require__("./node_modules/@angular/common/fesm2020/common.mjs");let PopoverModule=class PopoverModule{};PopoverModule=(0,tslib_es6.gn)([(0,core.NgModule)({declarations:[PopoverContainer,PopoverContent],exports:[PopoverContainer,PopoverContent],imports:[common.CommonModule]})],PopoverModule)},"./src/tooltip/index.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{u:()=>Tooltip,vD:()=>TooltipDefinition,z8:()=>TooltipModule});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.js"),core=__webpack_require__("./node_modules/@angular/core/fesm2020/core.mjs"),popover=__webpack_require__("./src/popover/index.ts");let Tooltip=class Tooltip extends popover.OI{constructor(elementRef,ngZone,renderer,changeDetectorRef){super(elementRef,ngZone,renderer,changeDetectorRef),this.elementRef=elementRef,this.ngZone=ngZone,this.renderer=renderer,this.changeDetectorRef=changeDetectorRef,this.tooltipClass=!0,this.id="tooltip-"+Tooltip.tooltipCount++,this.enterDelayMs=100,this.leaveDelayMs=300,this.disabled=!1,this.highContrast=!0,this.dropShadow=!1}mouseenter(event){clearTimeout(this.timeoutId),this.timeoutId=setTimeout((()=>{this.handleChange(!0,event)}),this.enterDelayMs)}mouseleave(event){clearTimeout(this.timeoutId),this.timeoutId=setTimeout((()=>{this.handleChange(!1,event)}),this.leaveDelayMs)}hostkeys(event){open&&"Escape"===event.key&&(event.stopPropagation(),this.handleChange(!1,event))}handleFocus(event){this.handleChange(!0,event)}handleFocusOut(event){this.handleChange(!1,event)}isTemplate(value){return value instanceof core.TemplateRef}ngAfterContentChecked(){if(this.wrapper){const buttonElement=this.wrapper.nativeElement.querySelector("button");buttonElement&&!buttonElement.getAttribute("aria-labelledby")&&buttonElement.setAttribute("aria-labelledby",this.id)}}};Tooltip.tooltipCount=0,Tooltip.ctorParameters=()=>[{type:core.ElementRef},{type:core.NgZone},{type:core.Renderer2},{type:core.ChangeDetectorRef}],Tooltip.propDecorators={tooltipClass:[{type:core.HostBinding,args:["class.cds--tooltip"]}],id:[{type:core.Input}],enterDelayMs:[{type:core.Input}],leaveDelayMs:[{type:core.Input}],disabled:[{type:core.Input}],description:[{type:core.Input}],templateContext:[{type:core.Input}],wrapper:[{type:core.ViewChild,args:["contentWrapper"]}],mouseenter:[{type:core.HostListener,args:["mouseenter",["$event"]]}],mouseleave:[{type:core.HostListener,args:["mouseleave",["$event"]]}],hostkeys:[{type:core.HostListener,args:["keyup",["$event"]]}],handleFocus:[{type:core.HostListener,args:["focusin",["$event"]]}],handleFocusOut:[{type:core.HostListener,args:["focusout",["$event"]]}]},Tooltip=(0,tslib_es6.gn)([(0,core.Component)({selector:"cds-tooltip, ibm-tooltip",changeDetection:core.ChangeDetectionStrategy.OnPush,template:'\n\t\t<span #contentWrapper>\n\t\t\t<ng-content></ng-content>\n\t\t</span>\n\t\t<span\n\t\t\t*ngIf="description"\n\t\t\tclass="cds--popover"\n\t\t\t[id]="id"\n\t\t\t[attr.aria-hidden]="!isOpen"\n\t\t\trole="tooltip">\n\t\t\t<ng-container *ngIf="!disabled">\n\t\t\t\t<span class="cds--popover-content cds--tooltip-content">\n\t\t\t\t\t<ng-container *ngIf="!isTemplate(description)">{{description}}</ng-container>\n\t\t\t\t\t<ng-template *ngIf="isTemplate(description)" [ngTemplateOutlet]="description" [ngTemplateOutletContext]="{ $implicit: templateContext }"></ng-template>\n\t\t\t\t\t<span *ngIf="autoAlign" class="cds--popover-caret cds--popover--auto-align"></span>\n\t\t\t\t</span>\n\t\t\t\t<span *ngIf="!autoAlign" class="cds--popover-caret"></span>\n\t\t\t</ng-container>\n\t\t</span>\n\t'})],Tooltip);let TooltipDefinition=class TooltipDefinition extends popover.OI{constructor(elementRef,ngZone,renderer,changeDetectorRef){super(elementRef,ngZone,renderer,changeDetectorRef),this.elementRef=elementRef,this.ngZone=ngZone,this.renderer=renderer,this.changeDetectorRef=changeDetectorRef,this.id="tooltip-definition-"+TooltipDefinition.tooltipCount++,this.highContrast=!0,this.dropShadow=!1}onBlur(event){this.handleChange(!1,event)}onClick(event){this.handleChange(!this.isOpen,event)}hostkeys(event){this.isOpen&&"Escape"===event.key&&(event.stopPropagation(),this.handleChange(!1,event))}mouseleave(event){this.handleChange(!1,event)}isTemplate(value){return value instanceof core.TemplateRef}};TooltipDefinition.tooltipCount=0,TooltipDefinition.ctorParameters=()=>[{type:core.ElementRef},{type:core.NgZone},{type:core.Renderer2},{type:core.ChangeDetectorRef}],TooltipDefinition.propDecorators={id:[{type:core.Input}],description:[{type:core.Input}],templateContext:[{type:core.Input}],hostkeys:[{type:core.HostListener,args:["keyup",["$event"]]}],mouseleave:[{type:core.HostListener,args:["mouseleave",["$event"]]}]},TooltipDefinition=(0,tslib_es6.gn)([(0,core.Component)({selector:"cds-tooltip-definition, ibm-tooltip-definition",changeDetection:core.ChangeDetectionStrategy.OnPush,template:'\n\t\t<button\n\t\t\tclass="cds--definition-term"\n\t\t\t[attr.aria-controls]="id"\n\t\t\t[attr.aria-expanded]="isOpen"\n\t\t\t(blur)="onBlur($event)"\n\t\t\t(click)="onClick($event)"\n\t\t\ttype="button">\n\t\t\t<ng-content></ng-content>\n\t\t</button>\n\t\t<span\n\t\t\t*ngIf="description"\n\t\t\tclass="cds--popover"\n\t\t\t[id]="id"\n\t\t\t[attr.aria-hidden]="isOpen"\n\t\t\trole="tooltip">\n\t\t\t<span class="cds--popover-content cds--definition-tooltip">\n\t\t\t\t<ng-container *ngIf="!isTemplate(description)">{{description}}</ng-container>\n\t\t\t\t<ng-template *ngIf="isTemplate(description)" [ngTemplateOutlet]="description" [ngTemplateOutletContext]="{ $implicit: templateContext }"></ng-template>\n\t\t\t\t<span *ngIf="autoAlign" class="cds--popover-caret cds--popover--auto-align"></span>\n\t\t\t</span>\n\t\t\t<span *ngIf="!autoAlign" class="cds--popover-caret"></span>\n\t\t</span>\n\t'})],TooltipDefinition);var common=__webpack_require__("./node_modules/@angular/common/fesm2020/common.mjs");let TooltipModule=class TooltipModule{};TooltipModule=(0,tslib_es6.gn)([(0,core.NgModule)({declarations:[Tooltip,TooltipDefinition],exports:[Tooltip,TooltipDefinition],imports:[common.CommonModule,popover.UU]})],TooltipModule)},"./node_modules/@storybook/angular/dist/client/argsToTemplate.js":(__unused_webpack_module,exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.argsToTemplate=void 0,exports.argsToTemplate=function argsToTemplate(args,options={}){const includeSet=options.include?new Set(options.include):null,excludeSet=options.exclude?new Set(options.exclude):null;return Object.entries(args).filter((([key])=>void 0!==args[key])).filter((([key])=>includeSet?includeSet.has(key):!excludeSet||!excludeSet.has(key))).map((([key,value])=>"function"==typeof value?`(${key})="${key}($event)"`:`[${key}]="${key}"`)).join(" ")}},"./node_modules/@storybook/angular/dist/client/decorators.js":(__unused_webpack_module,exports,__webpack_require__)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.componentWrapperDecorator=exports.applicationConfig=exports.moduleMetadata=void 0;const ComputesTemplateFromComponent_1=__webpack_require__("./node_modules/@storybook/angular/dist/client/angular-beta/ComputesTemplateFromComponent.js"),NgComponentAnalyzer_1=__webpack_require__("./node_modules/@storybook/angular/dist/client/angular-beta/utils/NgComponentAnalyzer.js");exports.moduleMetadata=metadata=>storyFn=>{const story=storyFn(),storyMetadata=story.moduleMetadata||{};return metadata=metadata||{},{...story,moduleMetadata:{declarations:[...metadata.declarations||[],...storyMetadata.declarations||[]],entryComponents:[...metadata.entryComponents||[],...storyMetadata.entryComponents||[]],imports:[...metadata.imports||[],...storyMetadata.imports||[]],schemas:[...metadata.schemas||[],...storyMetadata.schemas||[]],providers:[...metadata.providers||[],...storyMetadata.providers||[]]}}},exports.applicationConfig=function applicationConfig(config){return storyFn=>{const story=storyFn(),storyConfig=story.applicationConfig;return{...story,applicationConfig:storyConfig||config?{...config,...storyConfig,providers:[...config?.providers||[],...storyConfig?.providers||[]]}:void 0}}};exports.componentWrapperDecorator=(element,props)=>(storyFn,storyContext)=>{const story=storyFn(),currentProps="function"==typeof props?props(storyContext):props,template=(0,NgComponentAnalyzer_1.isComponent)(element)?(0,ComputesTemplateFromComponent_1.computesTemplateFromComponent)(element,currentProps??{},story.template):element(story.template);return{...story,template,...currentProps||story.props?{props:{...currentProps,...story.props}}:{}}}},"./node_modules/@storybook/angular/dist/client/index.js":function(__unused_webpack_module,exports,__webpack_require__){var __createBinding=this&&this.__createBinding||(Object.create?function(o,m,k,k2){void 0===k2&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m,k);desc&&!("get"in desc?!m.__esModule:desc.writable||desc.configurable)||(desc={enumerable:!0,get:function(){return m[k]}}),Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){void 0===k2&&(k2=k),o[k2]=m[k]}),__exportStar=this&&this.__exportStar||function(m,exports){for(var p in m)"default"===p||Object.prototype.hasOwnProperty.call(exports,p)||__createBinding(exports,m,p)};Object.defineProperty(exports,"__esModule",{value:!0}),exports.argsToTemplate=exports.applicationConfig=exports.componentWrapperDecorator=exports.moduleMetadata=void 0,__webpack_require__("./node_modules/@storybook/angular/dist/client/globals.js"),__exportStar(__webpack_require__("./node_modules/@storybook/angular/dist/client/public-api.js"),exports),__exportStar(__webpack_require__("./node_modules/@storybook/angular/dist/client/public-types.js"),exports);var decorators_1=__webpack_require__("./node_modules/@storybook/angular/dist/client/decorators.js");Object.defineProperty(exports,"moduleMetadata",{enumerable:!0,get:function(){return decorators_1.moduleMetadata}}),Object.defineProperty(exports,"componentWrapperDecorator",{enumerable:!0,get:function(){return decorators_1.componentWrapperDecorator}}),Object.defineProperty(exports,"applicationConfig",{enumerable:!0,get:function(){return decorators_1.applicationConfig}});var argsToTemplate_1=__webpack_require__("./node_modules/@storybook/angular/dist/client/argsToTemplate.js");Object.defineProperty(exports,"argsToTemplate",{enumerable:!0,get:function(){return argsToTemplate_1.argsToTemplate}})},"./node_modules/@storybook/angular/dist/client/public-api.js":function(__unused_webpack_module,exports,__webpack_require__){var __createBinding=this&&this.__createBinding||(Object.create?function(o,m,k,k2){void 0===k2&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m,k);desc&&!("get"in desc?!m.__esModule:desc.writable||desc.configurable)||(desc={enumerable:!0,get:function(){return m[k]}}),Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){void 0===k2&&(k2=k),o[k2]=m[k]}),__exportStar=this&&this.__exportStar||function(m,exports){for(var p in m)"default"===p||Object.prototype.hasOwnProperty.call(exports,p)||__createBinding(exports,m,p)},__importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.raw=exports.forceReRender=exports.configure=exports.storiesOf=void 0;const preview_api_1=__webpack_require__("@storybook/preview-api"),render_1=__webpack_require__("./node_modules/@storybook/angular/dist/client/render.js"),decorateStory_1=__importDefault(__webpack_require__("./node_modules/@storybook/angular/dist/client/decorateStory.js"));__exportStar(__webpack_require__("./node_modules/@storybook/angular/dist/client/public-types.js"),exports);const api=(0,preview_api_1.start)(render_1.renderToCanvas,{decorateStory:decorateStory_1.default,render:render_1.render});exports.storiesOf=(kind,m)=>api.clientApi.storiesOf(kind,m).addParameters({renderer:"angular"});exports.configure=(...args)=>api.configure("angular",...args),exports.forceReRender=api.forceReRender,exports.raw=api.clientApi.raw},"./node_modules/@storybook/angular/dist/client/public-types.js":(__unused_webpack_module,exports)=>{Object.defineProperty(exports,"__esModule",{value:!0})},"./node_modules/@storybook/angular/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{var _client_index__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/angular/dist/client/index.js");__webpack_require__.o(_client_index__WEBPACK_IMPORTED_MODULE_0__,"applicationConfig")&&__webpack_require__.d(__webpack_exports__,{applicationConfig:function(){return _client_index__WEBPACK_IMPORTED_MODULE_0__.applicationConfig}}),__webpack_require__.o(_client_index__WEBPACK_IMPORTED_MODULE_0__,"componentWrapperDecorator")&&__webpack_require__.d(__webpack_exports__,{componentWrapperDecorator:function(){return _client_index__WEBPACK_IMPORTED_MODULE_0__.componentWrapperDecorator}}),__webpack_require__.o(_client_index__WEBPACK_IMPORTED_MODULE_0__,"moduleMetadata")&&__webpack_require__.d(__webpack_exports__,{moduleMetadata:function(){return _client_index__WEBPACK_IMPORTED_MODULE_0__.moduleMetadata}})},"./src/tooltip/definition-tooptip.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Basic:()=>Basic,WithAutoAlign:()=>WithAutoAlign,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _storybook_angular__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),___WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/tooltip/index.ts");const __WEBPACK_DEFAULT_EXPORT__={title:"Components/Definition Tooltip",decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_0__.moduleMetadata)({imports:[___WEBPACK_IMPORTED_MODULE_1__.z8]})],parameters:{docs:{story:{inline:!1,iframeHeight:"18rem"}}},args:{isOpen:!0,caret:!0,description:"Uniform Resource Locator; the address of a resource (such as a document or website) on the Internet.",align:"bottom",autoAlign:!1},argTypes:{autoAlign:{control:!1},onOpen:{control:"Opened!"},onClose:{control:"Closed!"},isOpenChange:{control:"Is Open Change!"},align:{options:["top","top-left","top-right","bottom","bottom-left","bottom-right"],control:"select"}},component:___WEBPACK_IMPORTED_MODULE_1__.vD},Basic=(args=>({props:args,template:'\n <div style="height:3000px">\n Scrolling will update the position of the popover:\n <div style="position: absolute; top: 500px; left: 500px;">\n <p>Custom domains direct requests for your apps in this Cloud Foundry organization to a\n <cds-tooltip-definition\n [isOpen]="isOpen"\n [caret]="caret"\n [align]="align"\n (onOpen)="onOpen($event)"\n (onClose)="onClose($event)"\n (isOpenChange)="isOpenChange($event)"\n [description]="description">\n URL\n </cds-tooltip-definition>\n that you own. A custom domain can be a shared domain, a shared subdomain, or a shared domain and host.</p>\n </div>\n </div>\n ',styles:["\n .tooltip-trigger {\n box-sizing: border-box;\n margin: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 2rem;\n height: 2rem;\n background: white;\n border: 1px solid var(--cds-border-subtle);\n cursor: pointer;\n }\n svg { fill: var(--cds-background-inverse); }\n "]})).bind({}),WithAutoAlign=(args=>({props:args,template:'\n <div style="height:3000px">\n Scrolling will update the position of the popover:\n <div style="position: absolute; top: 500px; left: 500px;">\n <p>Custom domains direct requests for your apps in this Cloud Foundry organization to a\n <cds-tooltip-definition\n [isOpen]="isOpen"\n [caret]="caret"\n [align]="align"\n [autoAlign]="true"\n (onOpen)="onOpen($event)"\n (onClose)="onClose($event)"\n (isOpenChange)="isOpenChange($event)"\n [description]="description">\n URL\n </cds-tooltip-definition>\n that you own. A custom domain can be a shared domain, a shared subdomain, or a shared domain and host.</p>\n </div>\n </div>\n ',styles:["\n .tooltip-trigger {\n box-sizing: border-box;\n margin: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 2rem;\n height: 2rem;\n background: white;\n border: 1px solid var(--cds-border-subtle);\n cursor: pointer;\n }\n svg { fill: var(--cds-background-inverse); }\n "]})).bind({});WithAutoAlign.args={autoAlign:!0,align:"top"},Basic.parameters={...Basic.parameters,docs:{...Basic.parameters?.docs,source:{originalSource:'args => ({\n props: args,\n template: `\n <div style="height:3000px">\n Scrolling will update the position of the popover:\n <div style="position: absolute; top: 500px; left: 500px;">\n <p>Custom domains direct requests for your apps in this Cloud Foundry organization to a\n <cds-tooltip-definition\n [isOpen]="isOpen"\n [caret]="caret"\n [align]="align"\n (onOpen)="onOpen($event)"\n (onClose)="onClose($event)"\n (isOpenChange)="isOpenChange($event)"\n [description]="description">\n URL\n </cds-tooltip-definition>\n that you own. A custom domain can be a shared domain, a shared subdomain, or a shared domain and host.</p>\n </div>\n </div>\n `,\n styles: [`\n .tooltip-trigger {\n box-sizing: border-box;\n margin: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 2rem;\n height: 2rem;\n background: white;\n border: 1px solid var(--cds-border-subtle);\n cursor: pointer;\n }\n svg { fill: var(--cds-background-inverse); }\n `]\n})',...Basic.parameters?.docs?.source}}},WithAutoAlign.parameters={...WithAutoAlign.parameters,docs:{...WithAutoAlign.parameters?.docs,source:{originalSource:'args => ({\n props: args,\n template: `\n <div style="height:3000px">\n Scrolling will update the position of the popover:\n <div style="position: absolute; top: 500px; left: 500px;">\n <p>Custom domains direct requests for your apps in this Cloud Foundry organization to a\n <cds-tooltip-definition\n [isOpen]="isOpen"\n [caret]="caret"\n [align]="align"\n [autoAlign]="true"\n (onOpen)="onOpen($event)"\n (onClose)="onClose($event)"\n (isOpenChange)="isOpenChange($event)"\n [description]="description">\n URL\n </cds-tooltip-definition>\n that you own. A custom domain can be a shared domain, a shared subdomain, or a shared domain and host.</p>\n </div>\n </div>\n `,\n styles: [`\n .tooltip-trigger {\n box-sizing: border-box;\n margin: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 2rem;\n height: 2rem;\n background: white;\n border: 1px solid var(--cds-border-subtle);\n cursor: pointer;\n }\n svg { fill: var(--cds-background-inverse); }\n `]\n})',...WithAutoAlign.parameters?.docs?.source}}};const __namedExportsOrder=["Basic","WithAutoAlign"]}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunkcarbon_components_angular=self.webpackChunkcarbon_components_angular||[]).push([[4253],{"./src/popover/index.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{OI:()=>PopoverContainer,yk:()=>PopoverContent,UU:()=>PopoverModule});var asyncToGenerator=__webpack_require__("./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"),tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.js"),core=__webpack_require__("./node_modules/@angular/core/fesm2020/core.mjs"),floating_ui_dom=__webpack_require__("./node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs"),floating_ui_core=__webpack_require__("./node_modules/@floating-ui/core/dist/floating-ui.core.mjs");let PopoverContainer=class PopoverContainer{constructor(elementRef,ngZone,renderer,changeDetectorRef){this.elementRef=elementRef,this.ngZone=ngZone,this.renderer=renderer,this.changeDetectorRef=changeDetectorRef,this._align="bottom",this.alignmentClassPrefix="cds--popover--",this.onClose=new core.EventEmitter,this.onOpen=new core.EventEmitter,this.isOpenChange=new core.EventEmitter,this.caret=!0,this.dropShadow=!0,this.highContrast=!1,this.autoAlign=!1,this.containerClass=!0,this.isOpen=!1}set align(alignment){if(!alignment)return;const previousAlignment=this._align;switch(alignment){case"top-left":this._align="top-start";break;case"top-right":this._align="top-end";break;case"bottom-left":this._align="bottom-start";break;case"bottom-right":this._align="bottom-end";break;case"left-top":this._align="left-start";break;case"left-bottom":this._align="left-end";break;case"right-top":this._align="right-start";break;case"right-bottom":this._align="right-end";break;default:this._align=alignment}this.updateAlignmentClass(this._align,previousAlignment)}handleChange(open,event){if(this.isOpen!==open&&event&&this.isOpenChange.emit(open),open){if(event&&this.onOpen.emit(event),this.autoAlign){if(this.caretRef){const computedStyle=getComputedStyle(this.caretRef),offset=computedStyle.getPropertyValue("--cds-popover-offset"),height=computedStyle.getPropertyValue("--cds-popover-caret-height");this.caretOffset=(offset?.includes("px")?Number(offset.split("px",1)[0]):16*Number(offset.split("rem",1)[0]))||10,this.caretHeight=(height?.includes("px")?Number(height.split("px",1)[0]):16*Number(height.split("rem",1)[0]))||6}this.elementRef.nativeElement&&this.popoverContentRef&&(this.unmountFloatingElement=(0,floating_ui_dom.Me)(this.elementRef.nativeElement,this.popoverContentRef,this.recomputePosition.bind(this)))}}else this.cleanUp(),event&&this.onClose.emit(event);this.isOpen=open,this.changeDetectorRef.markForCheck()}roundByDPR(value){const dpr=window.devicePixelRatio||1;return Math.round(value*dpr)/dpr}recomputePosition(){var _this=this;this.ngZone.runOutsideAngular((0,asyncToGenerator.Z)((function*(){const{x,y,placement,middlewareData}=yield(0,floating_ui_dom.oo)(_this.elementRef.nativeElement,_this.popoverContentRef,{placement:_this._align,strategy:"fixed",middleware:[(0,floating_ui_core.cv)(_this.caretOffset),(0,floating_ui_dom.RR)({fallbackAxisSideDirection:"start"}),(0,floating_ui_dom.x7)({element:_this.caretRef})]}),previousAlignment=_this._align;if(_this._align=placement,_this.updateAlignmentClass(_this._align,previousAlignment),Object.assign(_this.popoverContentRef.style,{position:"fixed",top:"0",left:"0",transform:`translate(${_this.roundByDPR(x)}px,${_this.roundByDPR(y)}px)`}),middlewareData.arrow){const{x:arrowX,y:arrowY}=middlewareData.arrow,staticSide={top:"bottom",right:"left",bottom:"top",left:"right"}[placement.split("-")[0]];_this.caretRef.style.left=null!=arrowX?`${arrowX}px`:"",_this.caretRef.style.top=null!=arrowY?`${arrowY}px`:"",_this.caretRef.style.right="",_this.caretRef.style.bottom="",staticSide&&(_this.caretRef.style[staticSide]=-_this.caretHeight+"px")}})))}ngOnChanges(changes){const originalState=this.isOpen;this.handleChange(!1),changes.autoAlign&&!changes.autoAlign.firstChange&&(this.popoverContentRef=this.elementRef.nativeElement.querySelector(".cds--popover-content"),this.popoverContentRef.setAttribute("style",""),this.caretRef=this.elementRef.nativeElement.querySelector("span.cds--popover-caret")),this.handleChange(originalState)}ngAfterViewInit(){this.initializeReferences()}initializeReferences(){this.updateAlignmentClass(this._align),this.popoverContentRef=this.elementRef.nativeElement.querySelector(".cds--popover-content"),this.caretRef=this.elementRef.nativeElement.querySelector("span.cds--popover-caret"),this.handleChange(this.isOpen)}ngOnDestroy(){this.cleanUp()}cleanUp(){this.unmountFloatingElement&&this.unmountFloatingElement(),this.unmountFloatingElement=void 0}updateAlignmentClass(newAlignment,previousAlignment){if(this.elementRef.nativeElement&&previousAlignment!==newAlignment){const regexp=new RegExp("right|top|left|bottom");this.elementRef.nativeElement.classList.forEach((className=>{regexp.test(className)&&this.renderer.removeClass(this.elementRef.nativeElement,`${className}`)})),this.renderer.addClass(this.elementRef.nativeElement,`${this.alignmentClassPrefix}${newAlignment}`)}}};PopoverContainer.ctorParameters=()=>[{type:core.ElementRef},{type:core.NgZone},{type:core.Renderer2},{type:core.ChangeDetectorRef}],PopoverContainer.propDecorators={align:[{type:core.Input}],onClose:[{type:core.Output}],onOpen:[{type:core.Output}],isOpenChange:[{type:core.Output}],caret:[{type:core.HostBinding,args:["class.cds--popover--caret"]},{type:core.Input}],dropShadow:[{type:core.HostBinding,args:["class.cds--popover--drop-shadow"]},{type:core.Input}],highContrast:[{type:core.HostBinding,args:["class.cds--popover--high-contrast"]},{type:core.Input}],autoAlign:[{type:core.HostBinding,args:["class.cds--popover--auto-align"]},{type:core.Input}],containerClass:[{type:core.HostBinding,args:["class.cds--popover-container"]}],isOpen:[{type:core.Input},{type:core.HostBinding,args:["class.cds--popover--open"]}]},PopoverContainer=(0,tslib_es6.gn)([(0,core.Directive)({selector:"[cdsPopover], [ibmPopover]"})],PopoverContainer);let PopoverContent=class PopoverContent{constructor(changeDetectorRef){this.changeDetectorRef=changeDetectorRef,this.popoverClass=!0,this.autoAlign=!1}ngAfterViewInit(){this.popoverContent&&(this.autoAlign=!!this.popoverContent.nativeElement.closest(".cds--popover--auto-align"),this.changeDetectorRef.detectChanges())}};PopoverContent.ctorParameters=()=>[{type:core.ChangeDetectorRef}],PopoverContent.propDecorators={popoverClass:[{type:core.HostBinding,args:["class.cds--popover"]}],popoverContent:[{type:core.ViewChild,args:["content"]}]},PopoverContent=(0,tslib_es6.gn)([(0,core.Component)({selector:"cds-popover-content, ibm-popover-content",template:'\n\t\t<span class="cds--popover-content" #content>\n\t\t\t<div>\n\t\t\t\t<ng-content></ng-content>\n\t\t\t</div>\n\t\t\t<span *ngIf="autoAlign" class="cds--popover-caret cds--popover--auto-align"></span>\n\t\t</span>\n\t\t<span *ngIf="!autoAlign" class="cds--popover-caret"></span>\n\t'})],PopoverContent);var common=__webpack_require__("./node_modules/@angular/common/fesm2020/common.mjs");let PopoverModule=class PopoverModule{};PopoverModule=(0,tslib_es6.gn)([(0,core.NgModule)({declarations:[PopoverContainer,PopoverContent],exports:[PopoverContainer,PopoverContent],imports:[common.CommonModule]})],PopoverModule)},"./src/tooltip/index.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{u:()=>Tooltip,vD:()=>TooltipDefinition,z8:()=>TooltipModule});var tslib_es6=__webpack_require__("./node_modules/tslib/tslib.es6.js"),core=__webpack_require__("./node_modules/@angular/core/fesm2020/core.mjs"),popover=__webpack_require__("./src/popover/index.ts");let Tooltip=class Tooltip extends popover.OI{constructor(elementRef,ngZone,renderer,changeDetectorRef){super(elementRef,ngZone,renderer,changeDetectorRef),this.elementRef=elementRef,this.ngZone=ngZone,this.renderer=renderer,this.changeDetectorRef=changeDetectorRef,this.tooltipClass=!0,this.id="tooltip-"+Tooltip.tooltipCount++,this.enterDelayMs=100,this.leaveDelayMs=300,this.disabled=!1,this.highContrast=!0,this.dropShadow=!1}mouseenter(event){clearTimeout(this.timeoutId),this.timeoutId=setTimeout((()=>{this.handleChange(!0,event)}),this.enterDelayMs)}mouseleave(event){clearTimeout(this.timeoutId),this.timeoutId=setTimeout((()=>{this.handleChange(!1,event)}),this.leaveDelayMs)}hostkeys(event){open&&"Escape"===event.key&&(event.stopPropagation(),this.handleChange(!1,event))}handleFocus(event){this.handleChange(!0,event)}handleFocusOut(event){this.handleChange(!1,event)}isTemplate(value){return value instanceof core.TemplateRef}ngAfterContentChecked(){if(this.wrapper){const buttonElement=this.wrapper.nativeElement.querySelector("button");buttonElement&&!buttonElement.getAttribute("aria-labelledby")&&buttonElement.setAttribute("aria-labelledby",this.id)}}};Tooltip.tooltipCount=0,Tooltip.ctorParameters=()=>[{type:core.ElementRef},{type:core.NgZone},{type:core.Renderer2},{type:core.ChangeDetectorRef}],Tooltip.propDecorators={tooltipClass:[{type:core.HostBinding,args:["class.cds--tooltip"]}],id:[{type:core.Input}],enterDelayMs:[{type:core.Input}],leaveDelayMs:[{type:core.Input}],disabled:[{type:core.Input}],description:[{type:core.Input}],templateContext:[{type:core.Input}],wrapper:[{type:core.ViewChild,args:["contentWrapper"]}],mouseenter:[{type:core.HostListener,args:["mouseenter",["$event"]]}],mouseleave:[{type:core.HostListener,args:["mouseleave",["$event"]]}],hostkeys:[{type:core.HostListener,args:["keyup",["$event"]]}],handleFocus:[{type:core.HostListener,args:["focusin",["$event"]]}],handleFocusOut:[{type:core.HostListener,args:["focusout",["$event"]]}]},Tooltip=(0,tslib_es6.gn)([(0,core.Component)({selector:"cds-tooltip, ibm-tooltip",changeDetection:core.ChangeDetectionStrategy.OnPush,template:'\n\t\t<span #contentWrapper>\n\t\t\t<ng-content></ng-content>\n\t\t</span>\n\t\t<span\n\t\t\t*ngIf="description"\n\t\t\tclass="cds--popover"\n\t\t\t[id]="id"\n\t\t\t[attr.aria-hidden]="!isOpen"\n\t\t\trole="tooltip">\n\t\t\t<ng-container *ngIf="!disabled">\n\t\t\t\t<span class="cds--popover-content cds--tooltip-content">\n\t\t\t\t\t<ng-container *ngIf="!isTemplate(description)">{{description}}</ng-container>\n\t\t\t\t\t<ng-template *ngIf="isTemplate(description)" [ngTemplateOutlet]="description" [ngTemplateOutletContext]="{ $implicit: templateContext }"></ng-template>\n\t\t\t\t\t<span *ngIf="autoAlign" class="cds--popover-caret cds--popover--auto-align"></span>\n\t\t\t\t</span>\n\t\t\t\t<span *ngIf="!autoAlign" class="cds--popover-caret"></span>\n\t\t\t</ng-container>\n\t\t</span>\n\t'})],Tooltip);let TooltipDefinition=class TooltipDefinition extends popover.OI{constructor(elementRef,ngZone,renderer,changeDetectorRef){super(elementRef,ngZone,renderer,changeDetectorRef),this.elementRef=elementRef,this.ngZone=ngZone,this.renderer=renderer,this.changeDetectorRef=changeDetectorRef,this.id="tooltip-definition-"+TooltipDefinition.tooltipCount++,this.highContrast=!0,this.dropShadow=!1}onBlur(event){this.handleChange(!1,event)}onClick(event){this.handleChange(!this.isOpen,event)}hostkeys(event){this.isOpen&&"Escape"===event.key&&(event.stopPropagation(),this.handleChange(!1,event))}mouseleave(event){this.handleChange(!1,event)}isTemplate(value){return value instanceof core.TemplateRef}};TooltipDefinition.tooltipCount=0,TooltipDefinition.ctorParameters=()=>[{type:core.ElementRef},{type:core.NgZone},{type:core.Renderer2},{type:core.ChangeDetectorRef}],TooltipDefinition.propDecorators={id:[{type:core.Input}],description:[{type:core.Input}],templateContext:[{type:core.Input}],hostkeys:[{type:core.HostListener,args:["keyup",["$event"]]}],mouseleave:[{type:core.HostListener,args:["mouseleave",["$event"]]}]},TooltipDefinition=(0,tslib_es6.gn)([(0,core.Component)({selector:"cds-tooltip-definition, ibm-tooltip-definition",changeDetection:core.ChangeDetectionStrategy.OnPush,template:'\n\t\t<button\n\t\t\tclass="cds--definition-term"\n\t\t\t[attr.aria-controls]="id"\n\t\t\t[attr.aria-expanded]="isOpen"\n\t\t\t(blur)="onBlur($event)"\n\t\t\t(click)="onClick($event)"\n\t\t\ttype="button">\n\t\t\t<ng-content></ng-content>\n\t\t</button>\n\t\t<span\n\t\t\t*ngIf="description"\n\t\t\tclass="cds--popover"\n\t\t\t[id]="id"\n\t\t\t[attr.aria-hidden]="isOpen"\n\t\t\trole="tooltip">\n\t\t\t<span class="cds--popover-content cds--definition-tooltip">\n\t\t\t\t<ng-container *ngIf="!isTemplate(description)">{{description}}</ng-container>\n\t\t\t\t<ng-template *ngIf="isTemplate(description)" [ngTemplateOutlet]="description" [ngTemplateOutletContext]="{ $implicit: templateContext }"></ng-template>\n\t\t\t\t<span *ngIf="autoAlign" class="cds--popover-caret cds--popover--auto-align"></span>\n\t\t\t</span>\n\t\t\t<span *ngIf="!autoAlign" class="cds--popover-caret"></span>\n\t\t</span>\n\t'})],TooltipDefinition);var common=__webpack_require__("./node_modules/@angular/common/fesm2020/common.mjs");let TooltipModule=class TooltipModule{};TooltipModule=(0,tslib_es6.gn)([(0,core.NgModule)({declarations:[Tooltip,TooltipDefinition],exports:[Tooltip,TooltipDefinition],imports:[common.CommonModule,popover.UU]})],TooltipModule)},"./node_modules/@storybook/angular/dist/client/argsToTemplate.js":(__unused_webpack_module,exports)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.argsToTemplate=void 0,exports.argsToTemplate=function argsToTemplate(args,options={}){const includeSet=options.include?new Set(options.include):null,excludeSet=options.exclude?new Set(options.exclude):null;return Object.entries(args).filter((([key])=>void 0!==args[key])).filter((([key])=>includeSet?includeSet.has(key):!excludeSet||!excludeSet.has(key))).map((([key,value])=>"function"==typeof value?`(${key})="${key}($event)"`:`[${key}]="${key}"`)).join(" ")}},"./node_modules/@storybook/angular/dist/client/decorators.js":(__unused_webpack_module,exports,__webpack_require__)=>{Object.defineProperty(exports,"__esModule",{value:!0}),exports.componentWrapperDecorator=exports.applicationConfig=exports.moduleMetadata=void 0;const ComputesTemplateFromComponent_1=__webpack_require__("./node_modules/@storybook/angular/dist/client/angular-beta/ComputesTemplateFromComponent.js"),NgComponentAnalyzer_1=__webpack_require__("./node_modules/@storybook/angular/dist/client/angular-beta/utils/NgComponentAnalyzer.js");exports.moduleMetadata=metadata=>storyFn=>{const story=storyFn(),storyMetadata=story.moduleMetadata||{};return metadata=metadata||{},{...story,moduleMetadata:{declarations:[...metadata.declarations||[],...storyMetadata.declarations||[]],entryComponents:[...metadata.entryComponents||[],...storyMetadata.entryComponents||[]],imports:[...metadata.imports||[],...storyMetadata.imports||[]],schemas:[...metadata.schemas||[],...storyMetadata.schemas||[]],providers:[...metadata.providers||[],...storyMetadata.providers||[]]}}},exports.applicationConfig=function applicationConfig(config){return storyFn=>{const story=storyFn(),storyConfig=story.applicationConfig;return{...story,applicationConfig:storyConfig||config?{...config,...storyConfig,providers:[...config?.providers||[],...storyConfig?.providers||[]]}:void 0}}};exports.componentWrapperDecorator=(element,props)=>(storyFn,storyContext)=>{const story=storyFn(),currentProps="function"==typeof props?props(storyContext):props,template=(0,NgComponentAnalyzer_1.isComponent)(element)?(0,ComputesTemplateFromComponent_1.computesTemplateFromComponent)(element,currentProps??{},story.template):element(story.template);return{...story,template,...currentProps||story.props?{props:{...currentProps,...story.props}}:{}}}},"./node_modules/@storybook/angular/dist/client/index.js":function(__unused_webpack_module,exports,__webpack_require__){var __createBinding=this&&this.__createBinding||(Object.create?function(o,m,k,k2){void 0===k2&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m,k);desc&&!("get"in desc?!m.__esModule:desc.writable||desc.configurable)||(desc={enumerable:!0,get:function(){return m[k]}}),Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){void 0===k2&&(k2=k),o[k2]=m[k]}),__exportStar=this&&this.__exportStar||function(m,exports){for(var p in m)"default"===p||Object.prototype.hasOwnProperty.call(exports,p)||__createBinding(exports,m,p)};Object.defineProperty(exports,"__esModule",{value:!0}),exports.argsToTemplate=exports.applicationConfig=exports.componentWrapperDecorator=exports.moduleMetadata=void 0,__webpack_require__("./node_modules/@storybook/angular/dist/client/globals.js"),__exportStar(__webpack_require__("./node_modules/@storybook/angular/dist/client/public-api.js"),exports),__exportStar(__webpack_require__("./node_modules/@storybook/angular/dist/client/public-types.js"),exports);var decorators_1=__webpack_require__("./node_modules/@storybook/angular/dist/client/decorators.js");Object.defineProperty(exports,"moduleMetadata",{enumerable:!0,get:function(){return decorators_1.moduleMetadata}}),Object.defineProperty(exports,"componentWrapperDecorator",{enumerable:!0,get:function(){return decorators_1.componentWrapperDecorator}}),Object.defineProperty(exports,"applicationConfig",{enumerable:!0,get:function(){return decorators_1.applicationConfig}});var argsToTemplate_1=__webpack_require__("./node_modules/@storybook/angular/dist/client/argsToTemplate.js");Object.defineProperty(exports,"argsToTemplate",{enumerable:!0,get:function(){return argsToTemplate_1.argsToTemplate}})},"./node_modules/@storybook/angular/dist/client/public-api.js":function(__unused_webpack_module,exports,__webpack_require__){var __createBinding=this&&this.__createBinding||(Object.create?function(o,m,k,k2){void 0===k2&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m,k);desc&&!("get"in desc?!m.__esModule:desc.writable||desc.configurable)||(desc={enumerable:!0,get:function(){return m[k]}}),Object.defineProperty(o,k2,desc)}:function(o,m,k,k2){void 0===k2&&(k2=k),o[k2]=m[k]}),__exportStar=this&&this.__exportStar||function(m,exports){for(var p in m)"default"===p||Object.prototype.hasOwnProperty.call(exports,p)||__createBinding(exports,m,p)},__importDefault=this&&this.__importDefault||function(mod){return mod&&mod.__esModule?mod:{default:mod}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.raw=exports.forceReRender=exports.configure=exports.storiesOf=void 0;const preview_api_1=__webpack_require__("@storybook/preview-api"),render_1=__webpack_require__("./node_modules/@storybook/angular/dist/client/render.js"),decorateStory_1=__importDefault(__webpack_require__("./node_modules/@storybook/angular/dist/client/decorateStory.js"));__exportStar(__webpack_require__("./node_modules/@storybook/angular/dist/client/public-types.js"),exports);const api=(0,preview_api_1.start)(render_1.renderToCanvas,{decorateStory:decorateStory_1.default,render:render_1.render});exports.storiesOf=(kind,m)=>api.clientApi.storiesOf(kind,m).addParameters({renderer:"angular"});exports.configure=(...args)=>api.configure("angular",...args),exports.forceReRender=api.forceReRender,exports.raw=api.clientApi.raw},"./node_modules/@storybook/angular/dist/client/public-types.js":(__unused_webpack_module,exports)=>{Object.defineProperty(exports,"__esModule",{value:!0})},"./node_modules/@storybook/angular/dist/index.mjs":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{var _client_index__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/angular/dist/client/index.js");__webpack_require__.o(_client_index__WEBPACK_IMPORTED_MODULE_0__,"applicationConfig")&&__webpack_require__.d(__webpack_exports__,{applicationConfig:function(){return _client_index__WEBPACK_IMPORTED_MODULE_0__.applicationConfig}}),__webpack_require__.o(_client_index__WEBPACK_IMPORTED_MODULE_0__,"componentWrapperDecorator")&&__webpack_require__.d(__webpack_exports__,{componentWrapperDecorator:function(){return _client_index__WEBPACK_IMPORTED_MODULE_0__.componentWrapperDecorator}}),__webpack_require__.o(_client_index__WEBPACK_IMPORTED_MODULE_0__,"moduleMetadata")&&__webpack_require__.d(__webpack_exports__,{moduleMetadata:function(){return _client_index__WEBPACK_IMPORTED_MODULE_0__.moduleMetadata}})},"./src/tooltip/tooltip.stories.ts":(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{Basic:()=>Basic,Ellipses:()=>Ellipses,WithAutoAlign:()=>WithAutoAlign,__namedExportsOrder:()=>__namedExportsOrder,default:()=>__WEBPACK_DEFAULT_EXPORT__});var _storybook_angular__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("./node_modules/@storybook/angular/dist/index.mjs"),___WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("./src/tooltip/index.ts");const __WEBPACK_DEFAULT_EXPORT__={title:"Components/Tooltip",decorators:[(0,_storybook_angular__WEBPACK_IMPORTED_MODULE_0__.moduleMetadata)({imports:[___WEBPACK_IMPORTED_MODULE_1__.z8]})],args:{isOpen:!0,caret:!0,description:"Occassionally, services are updated in a specified time window to ensure no down time for customers.",align:"bottom",autoAlign:!1},argTypes:{autoAlign:{control:!1},onOpen:{control:"Opened!"},onClose:{control:"Closed!"},isOpenChange:{control:"Is Open Change!"},align:{options:["top","top-start","top-end","right","right-start","right-end","bottom","bottom-start","bottom-end","left","left-start","left-end"],control:"select"}},component:___WEBPACK_IMPORTED_MODULE_1__.u},Basic=(args=>({props:args,template:'\n <cds-tooltip\n [isOpen]="isOpen"\n [caret]="caret"\n [align]="align"\n (onOpen)="onOpen($event)"\n (onClose)="onClose($event)"\n (isOpenChange)="isOpenChange($event)"\n [description]="description">\n <button type="button" class="tooltip-trigger">\n <svg preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 32 32">\n <path d="M26,4H6A2,2,0,0,0,4,6V26a2,2,0,0,0,2,2H26a2,2,0,0,0,2-2V6A2,2,0,0,0,26,4ZM6,26V6H26V26Z"></path>\n </svg>\n </button>\n </cds-tooltip>\n ',styles:["\n .tooltip-trigger {\n box-sizing: border-box;\n margin: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 2rem;\n height: 2rem;\n background: white;\n border: 1px solid var(--cds-border-subtle);\n cursor: pointer;\n }\n svg { fill: var(--cds-background-inverse); }\n "]})).bind({});Basic.parameters={docs:{story:{inline:!1,iframeHeight:"18rem"}},layout:"centered"};const Ellipses=(args=>({props:args,template:'\n <cds-tooltip\n [isOpen]="isOpen"\n [caret]="caret"\n [align]="align"\n description="Tooltip for ellipsis because I can and I am really really long">\n <span class="overflowText">\n Tooltip for ellipsis because I can and I am really really long\n </span>\n </cds-tooltip>\n ',styles:["\n .overflowText {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n width: 100px;\n display: inline-block;\n }\n "]})).bind({});Ellipses.argTypes={description:{control:!1}},Ellipses.parameters={docs:{story:{inline:!1,iframeHeight:"18rem"}},layout:"centered"};const WithAutoAlign=(args=>({props:args,template:'\n <div style="height:3000px">\n Scrolling will update the position of the popover:\n <div style="position: absolute; top: 500px; left: 500px;">\n <cds-tooltip\n [isOpen]="isOpen"\n [caret]="caret"\n [align]="align"\n [autoAlign]="true"\n (onOpen)="onOpen($event)"\n (onClose)="onClose($event)"\n (isOpenChange)="isOpenChange($event)"\n [description]="description">\n <button type="button" class="tooltip-trigger">\n <svg preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 32 32">\n <path d="M26,4H6A2,2,0,0,0,4,6V26a2,2,0,0,0,2,2H26a2,2,0,0,0,2-2V6A2,2,0,0,0,26,4ZM6,26V6H26V26Z"></path>\n </svg>\n </button>\n </cds-tooltip>\n </div>\n </div>\n ',styles:["\n .tooltip-trigger {\n box-sizing: border-box;\n margin: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 2rem;\n height: 2rem;\n background: white;\n border: 1px solid var(--cds-border-subtle);\n cursor: pointer;\n }\n svg { fill: var(--cds-background-inverse); }\n "]})).bind({});WithAutoAlign.args={autoAlign:!0,align:"top"},Basic.parameters={...Basic.parameters,docs:{...Basic.parameters?.docs,source:{originalSource:'args => ({\n props: args,\n template: `\n <cds-tooltip\n [isOpen]="isOpen"\n [caret]="caret"\n [align]="align"\n (onOpen)="onOpen($event)"\n (onClose)="onClose($event)"\n (isOpenChange)="isOpenChange($event)"\n [description]="description">\n <button type="button" class="tooltip-trigger">\n <svg preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 32 32">\n <path d="M26,4H6A2,2,0,0,0,4,6V26a2,2,0,0,0,2,2H26a2,2,0,0,0,2-2V6A2,2,0,0,0,26,4ZM6,26V6H26V26Z"></path>\n </svg>\n </button>\n </cds-tooltip>\n `,\n styles: [`\n .tooltip-trigger {\n box-sizing: border-box;\n margin: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 2rem;\n height: 2rem;\n background: white;\n border: 1px solid var(--cds-border-subtle);\n cursor: pointer;\n }\n svg { fill: var(--cds-background-inverse); }\n `]\n})',...Basic.parameters?.docs?.source}}},Ellipses.parameters={...Ellipses.parameters,docs:{...Ellipses.parameters?.docs,source:{originalSource:'args => ({\n props: args,\n template: `\n <cds-tooltip\n [isOpen]="isOpen"\n [caret]="caret"\n [align]="align"\n description="Tooltip for ellipsis because I can and I am really really long">\n <span class="overflowText">\n Tooltip for ellipsis because I can and I am really really long\n </span>\n </cds-tooltip>\n `,\n styles: [`\n .overflowText {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n width: 100px;\n display: inline-block;\n }\n `]\n})',...Ellipses.parameters?.docs?.source}}},WithAutoAlign.parameters={...WithAutoAlign.parameters,docs:{...WithAutoAlign.parameters?.docs,source:{originalSource:'args => ({\n props: args,\n template: `\n <div style="height:3000px">\n Scrolling will update the position of the popover:\n <div style="position: absolute; top: 500px; left: 500px;">\n <cds-tooltip\n [isOpen]="isOpen"\n [caret]="caret"\n [align]="align"\n [autoAlign]="true"\n (onOpen)="onOpen($event)"\n (onClose)="onClose($event)"\n (isOpenChange)="isOpenChange($event)"\n [description]="description">\n <button type="button" class="tooltip-trigger">\n <svg preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 32 32">\n <path d="M26,4H6A2,2,0,0,0,4,6V26a2,2,0,0,0,2,2H26a2,2,0,0,0,2-2V6A2,2,0,0,0,26,4ZM6,26V6H26V26Z"></path>\n </svg>\n </button>\n </cds-tooltip>\n </div>\n </div>\n `,\n styles: [`\n .tooltip-trigger {\n box-sizing: border-box;\n margin: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 2rem;\n height: 2rem;\n background: white;\n border: 1px solid var(--cds-border-subtle);\n cursor: pointer;\n }\n svg { fill: var(--cds-background-inverse); }\n `]\n})',...WithAutoAlign.parameters?.docs?.source}}};const __namedExportsOrder=["Basic","Ellipses","WithAutoAlign"]}}]);
|
|
@@ -236,7 +236,7 @@ export class DropdownList {
|
|
|
236
236
|
return elemList[i].nativeElement;
|
|
237
237
|
}
|
|
238
238
|
}
|
|
239
|
-
return elemList[this.index]
|
|
239
|
+
return elemList[this.index]?.nativeElement;
|
|
240
240
|
}
|
|
241
241
|
/**
|
|
242
242
|
* Returns the `ListItem` that precedes the selected item within `DropdownList`.
|
|
@@ -362,6 +362,7 @@ export class DropdownList {
|
|
|
362
362
|
updateIndex() {
|
|
363
363
|
// initialize index on the first selected item or
|
|
364
364
|
// on the next non disabled item if no items are selected
|
|
365
|
+
// in case, if all items are disabled, the index value will remain same
|
|
365
366
|
const selected = this.getSelected();
|
|
366
367
|
if (selected.length) {
|
|
367
368
|
this.index = this.displayItems.indexOf(selected[0]);
|
|
@@ -386,7 +387,7 @@ export class DropdownList {
|
|
|
386
387
|
event.preventDefault();
|
|
387
388
|
if (event.key === "ArrowDown") {
|
|
388
389
|
if (this.hasNextElement()) {
|
|
389
|
-
this.getNextElement()
|
|
390
|
+
this.getNextElement()?.scrollIntoView({ block: "end" });
|
|
390
391
|
}
|
|
391
392
|
else {
|
|
392
393
|
this.blurIntent.emit("bottom");
|
|
@@ -625,4 +626,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
625
626
|
type: ViewChildren,
|
|
626
627
|
args: ["listItem"]
|
|
627
628
|
}] } });
|
|
628
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZHJvcGRvd24vbGlzdC9kcm9wZG93bi1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBRU4sWUFBWSxFQUdaLFNBQVMsRUFFVCxZQUFZLEVBR1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQWdCLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHdkMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7OztBQUlsRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0JHO0FBcUVILE1BQU0sT0FBTyxZQUFZO0lBMEd4Qjs7T0FFRztJQUNILFlBQW1CLFVBQXNCLEVBQVksSUFBVSxFQUFZLE1BQXNCO1FBQTlFLGVBQVUsR0FBVixVQUFVLENBQVk7UUFBWSxTQUFJLEdBQUosSUFBSSxDQUFNO1FBQVksV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUEzR3hGLGNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7UUEwQnpEOztXQUVHO1FBQ00sWUFBTyxHQUE4QixJQUFJLENBQUM7UUFDbkQ7O1dBRUc7UUFDTyxXQUFNLEdBQXNFLElBQUksWUFBWSxFQUFFLENBQUM7UUFDekc7O1dBRUc7UUFDTyxXQUFNLEdBQW9DLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdkU7Ozs7Ozs7O1dBUUc7UUFDTyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQW9CLENBQUM7UUFLNUQ7OztX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QUFFO2dCQUsxQixJQUFJO3NCQUFaLEtBQUs7Z0JBS0csVUFBVTtzQkFBbEIsS0FBSztnQkFxQjhCLGVBQWU7c0JBQWxELFlBQVk7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENvbXBvbmVudCxcblx0SW5wdXQsXG5cdE91dHB1dCxcblx0T25EZXN0cm95LFxuXHRFdmVudEVtaXR0ZXIsXG5cdFRlbXBsYXRlUmVmLFxuXHRBZnRlclZpZXdJbml0LFxuXHRWaWV3Q2hpbGQsXG5cdEVsZW1lbnRSZWYsXG5cdFZpZXdDaGlsZHJlbixcblx0UXVlcnlMaXN0LFxuXHRBcHBsaWNhdGlvblJlZlxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgaXNPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIG9mIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5cbmltcG9ydCB7IEkxOG4gfSBmcm9tIFwiY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhci9pMThuXCI7XG5pbXBvcnQgeyBBYnN0cmFjdERyb3Bkb3duVmlldyB9IGZyb20gXCIuLi9hYnN0cmFjdC1kcm9wZG93bi12aWV3LmNsYXNzXCI7XG5pbXBvcnQgeyBMaXN0SXRlbSB9IGZyb20gXCIuLi9saXN0LWl0ZW0uaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyB3YXRjaEZvY3VzSnVtcCB9IGZyb20gXCIuLi9kcm9wZG93bnRvb2xzXCI7XG5pbXBvcnQgeyBTY3JvbGxDdXN0b21FdmVudCB9IGZyb20gXCIuL3Njcm9sbC1jdXN0b20tZXZlbnQuaW50ZXJmYWNlXCI7XG5cblxuLyoqXG4gKiBgYGBodG1sXG4gKiA8Y2RzLWRyb3Bkb3duLWxpc3QgW2l0ZW1zXT1cImxpc3RJdGVtc1wiPjwvY2RzLWRyb3Bkb3duLWxpc3Q+XG4gKiBgYGBcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGxpc3RJdGVtcyA9IFtcbiAqIFx0e1xuICogXHRcdGNvbnRlbnQ6IFwiaXRlbSBvbmVcIixcbiAqIFx0XHRzZWxlY3RlZDogZmFsc2VcbiAqIFx0fSxcbiAqIFx0e1xuICogXHRcdGNvbnRlbnQ6IFwiaXRlbSB0d29cIixcbiAqIFx0XHRzZWxlY3RlZDogZmFsc2UsXG4gKiBcdH0sXG4gKiBcdHtcbiAqIFx0XHRjb250ZW50OiBcIml0ZW0gdGhyZWVcIixcbiAqIFx0XHRzZWxlY3RlZDogZmFsc2VcbiAqIFx0fSxcbiAqIFx0e1xuICogXHRcdGNvbnRlbnQ6IFwiaXRlbSBmb3VyXCIsXG4gKiBcdFx0c2VsZWN0ZWQ6IGZhbHNlXG4gKiBcdH1cbiAqIF07XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiBcImNkcy1kcm9wZG93bi1saXN0LCBpYm0tZHJvcGRvd24tbGlzdFwiLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDx1bFxuXHRcdFx0I2xpc3Rcblx0XHRcdFtpZF09XCJsaXN0SWRcIlxuXHRcdFx0cm9sZT1cImxpc3Rib3hcIlxuXHRcdFx0Y2xhc3M9XCJjZHMtLWxpc3QtYm94X19tZW51IGNkcy0tbXVsdGktc2VsZWN0XCJcblx0XHRcdChzY3JvbGwpPVwiZW1pdFNjcm9sbCgkZXZlbnQpXCJcblx0XHRcdChrZXlkb3duKT1cIm5hdmlnYXRlTGlzdCgkZXZlbnQpXCJcblx0XHRcdHRhYmluZGV4PVwiLTFcIlxuXHRcdFx0W2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuXHRcdFx0W2F0dHIuYXJpYS1hY3RpdmVkZXNjZW5kYW50XT1cImhpZ2hsaWdodGVkSXRlbVwiPlxuXHRcdFx0PGxpXG5cdFx0XHRcdHJvbGU9XCJvcHRpb25cIlxuXHRcdFx0XHQqbmdGb3I9XCJsZXQgaXRlbSBvZiBkaXNwbGF5SXRlbXM7IGxldCBpID0gaW5kZXhcIlxuXHRcdFx0XHQoY2xpY2spPVwiZG9DbGljaygkZXZlbnQsIGl0ZW0pXCJcblx0XHRcdFx0Y2xhc3M9XCJjZHMtLWxpc3QtYm94X19tZW51LWl0ZW1cIlxuXHRcdFx0XHRbYXR0ci5hcmlhLXNlbGVjdGVkXT1cIml0ZW0uc2VsZWN0ZWRcIlxuXHRcdFx0XHRbaWRdPVwiZ2V0SXRlbUlkKGkpXCJcblx0XHRcdFx0W2F0dHIudGl0bGVdPVwiIHNob3dUaXRsZXMgPyBpdGVtLmNvbnRlbnQgOiBudWxsXCJcblx0XHRcdFx0W2F0dHIuZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZCA/IHRydWUgOiBudWxsXCJcblx0XHRcdFx0W25nQ2xhc3NdPVwie1xuXHRcdFx0XHRcdCdjZHMtLWxpc3QtYm94X19tZW51LWl0ZW0tLWFjdGl2ZSc6IGl0ZW0uc2VsZWN0ZWQsXG5cdFx0XHRcdFx0J2Nkcy0tbGlzdC1ib3hfX21lbnUtaXRlbS0taGlnaGxpZ2h0ZWQnOiBoaWdobGlnaHRlZEl0ZW0gPT09IGdldEl0ZW1JZChpKVxuXHRcdFx0XHR9XCI+XG5cdFx0XHRcdDxkaXZcblx0XHRcdFx0XHQjbGlzdEl0ZW1cblx0XHRcdFx0XHR0YWJpbmRleD1cIi0xXCJcblx0XHRcdFx0XHRjbGFzcz1cImNkcy0tbGlzdC1ib3hfX21lbnUtaXRlbV9fb3B0aW9uXCI+XG5cdFx0XHRcdFx0PGRpdlxuXHRcdFx0XHRcdFx0Km5nSWY9XCIhbGlzdFRwbCAmJiB0eXBlID09PSAnbXVsdGknXCJcblx0XHRcdFx0XHRcdGNsYXNzPVwiY2RzLS1mb3JtLWl0ZW0gY2RzLS1jaGVja2JveC13cmFwcGVyXCI+XG5cdFx0XHRcdFx0XHQ8bGFiZWxcblx0XHRcdFx0XHRcdFx0W2F0dHIuZGF0YS1jb250YWluZWQtY2hlY2tib3gtc3RhdGVdPVwiaXRlbS5zZWxlY3RlZFwiXG5cdFx0XHRcdFx0XHRcdGNsYXNzPVwiY2RzLS1jaGVja2JveC1sYWJlbFwiPlxuXHRcdFx0XHRcdFx0XHQ8aW5wdXRcblx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cImNkcy0tY2hlY2tib3hcIlxuXHRcdFx0XHRcdFx0XHRcdHR5cGU9XCJjaGVja2JveFwiXG5cdFx0XHRcdFx0XHRcdFx0W2NoZWNrZWRdPVwiaXRlbS5zZWxlY3RlZFwiXG5cdFx0XHRcdFx0XHRcdFx0W2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxuXHRcdFx0XHRcdFx0XHRcdHRhYmluZGV4PVwiLTFcIj5cblx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJjZHMtLWNoZWNrYm94LWFwcGVhcmFuY2VcIj48L3NwYW4+XG5cdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiY2RzLS1jaGVja2JveC1sYWJlbC10ZXh0XCI+e3tpdGVtLmNvbnRlbnR9fTwvc3Bhbj5cblx0XHRcdFx0XHRcdDwvbGFiZWw+XG5cdFx0XHRcdFx0PC9kaXY+XG5cdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIiFsaXN0VHBsICYmIHR5cGUgPT09ICdzaW5nbGUnXCI+e3tpdGVtLmNvbnRlbnR9fTwvbmctY29udGFpbmVyPlxuXHRcdFx0XHRcdDxzdmdcblx0XHRcdFx0XHRcdCpuZ0lmPVwiIWxpc3RUcGwgJiYgdHlwZSA9PT0gJ3NpbmdsZSdcIlxuXHRcdFx0XHRcdFx0Y2RzSWNvbj1cImNoZWNrbWFya1wiXG5cdFx0XHRcdFx0XHRzaXplPVwiMTZcIlxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLWxpc3QtYm94X19tZW51LWl0ZW1fX3NlbGVjdGVkLWljb25cIj5cblx0XHRcdFx0XHQ8L3N2Zz5cblx0XHRcdFx0XHQ8bmctdGVtcGxhdGVcblx0XHRcdFx0XHRcdCpuZ0lmPVwibGlzdFRwbFwiXG5cdFx0XHRcdFx0XHRbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie2l0ZW06IGl0ZW19XCJcblx0XHRcdFx0XHRcdFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxpc3RUcGxcIj5cblx0XHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdDwvbGk+XG5cdFx0PC91bD5gLFxuXHRwcm92aWRlcnM6IFtcblx0XHR7XG5cdFx0XHRwcm92aWRlOiBBYnN0cmFjdERyb3Bkb3duVmlldyxcblx0XHRcdHVzZUV4aXN0aW5nOiBEcm9wZG93bkxpc3Rcblx0XHR9XG5cdF1cbn0pXG5leHBvcnQgY2xhc3MgRHJvcGRvd25MaXN0IGltcGxlbWVudHMgQWJzdHJhY3REcm9wZG93blZpZXcsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cdHN0YXRpYyBsaXN0Q291bnQgPSAwO1xuXHRASW5wdXQoKSBhcmlhTGFiZWwgPSB0aGlzLmkxOG4uZ2V0KCkuRFJPUERPV05fTElTVC5MQUJFTDtcblx0LyoqXG5cdCAqIFRoZSBsaXN0IGl0ZW1zIGJlbG9uZ2luZyB0byB0aGUgYERyb3Bkb3duTGlzdGAuXG5cdCAqL1xuXHRASW5wdXQoKSBzZXQgaXRlbXModmFsdWU6IEFycmF5PExpc3RJdGVtPiB8IE9ic2VydmFibGU8QXJyYXk8TGlzdEl0ZW0+Pikge1xuXHRcdGlmIChpc09ic2VydmFibGUodmFsdWUpKSB7XG5cdFx0XHRpZiAodGhpcy5faXRlbXNTdWJzY3JpcHRpb24pIHtcblx0XHRcdFx0dGhpcy5faXRlbXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcblx0XHRcdH1cblx0XHRcdHRoaXMuX2l0ZW1zUmVhZHkgPSBuZXcgT2JzZXJ2YWJsZTxib29sZWFuPigob2JzZXJ2ZXIpID0+IHtcblx0XHRcdFx0dGhpcy5faXRlbXNTdWJzY3JpcHRpb24gPSB2YWx1ZS5zdWJzY3JpYmUodiA9PiB7XG5cdFx0XHRcdFx0dGhpcy51cGRhdGVMaXN0KHYpO1xuXHRcdFx0XHRcdG9ic2VydmVyLm5leHQodHJ1ZSk7XG5cdFx0XHRcdFx0b2JzZXJ2ZXIuY29tcGxldGUoKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHRcdHRoaXMub25JdGVtc1JlYWR5KG51bGwpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLnVwZGF0ZUxpc3QodmFsdWUpO1xuXHRcdH1cblx0XHR0aGlzLl9vcmlnaW5hbEl0ZW1zID0gdmFsdWU7XG5cdH1cblxuXHRnZXQgaXRlbXMoKTogQXJyYXk8TGlzdEl0ZW0+IHwgT2JzZXJ2YWJsZTxBcnJheTxMaXN0SXRlbT4+IHtcblx0XHRyZXR1cm4gdGhpcy5fb3JpZ2luYWxJdGVtcztcblx0fVxuXHQvKipcblx0ICogVGVtcGxhdGUgdG8gYmluZCB0byBpdGVtcyBpbiB0aGUgYERyb3Bkb3duTGlzdGAgKG9wdGlvbmFsKS5cblx0ICovXG5cdEBJbnB1dCgpIGxpc3RUcGw6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4gPSBudWxsO1xuXHQvKipcblx0ICogRXZlbnQgdG8gZW1pdCBzZWxlY3Rpb24gb2YgYSBsaXN0IGl0ZW0gd2l0aGluIHRoZSBgRHJvcGRvd25MaXN0YC5cblx0ICovXG5cdEBPdXRwdXQoKSBzZWxlY3Q6IEV2ZW50RW1pdHRlcjx7IGl0ZW06IExpc3RJdGVtLCBpc1VwZGF0ZT86IGJvb2xlYW4gfSB8IExpc3RJdGVtW10+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXHQvKipcblx0ICogRXZlbnQgdG8gZW1pdCBzY3JvbGwgZXZlbnQgb2YgYSBsaXN0IHdpdGhpbiB0aGUgYERyb3Bkb3duTGlzdGAuXG5cdCAqL1xuXHRAT3V0cHV0KCkgc2Nyb2xsOiBFdmVudEVtaXR0ZXI8U2Nyb2xsQ3VzdG9tRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXHQvKipcblx0ICogRXZlbnQgdG8gc3VnZ2VzdCBhIGJsdXIgb24gdGhlIHZpZXcuXG5cdCAqIEVtaXRzIF9hZnRlcl8gdGhlIGZpcnN0L2xhc3QgaXRlbSBoYXMgYmVlbiBmb2N1c2VkLlxuXHQgKiBleC5cblx0ICogQXJyb3dVcCAtPiBmb2N1cyBmaXJzdCBpdGVtXG5cdCAqIEFycm93VXAgLT4gZW1pdCBldmVudFxuXHQgKlxuXHQgKiBXaGVuIHRoaXMgZXZlbnQgZmlyZXMgZm9jdXMgc2hvdWxkIGJlIHBsYWNlZCBvbiBzb21lIGVsZW1lbnQgb3V0c2lkZSBvZiB0aGUgbGlzdCAtIGJsdXJyaW5nIHRoZSBsaXN0IGFzIGEgcmVzdWx0XG5cdCAqL1xuXHRAT3V0cHV0KCkgYmx1ckludGVudCA9IG5ldyBFdmVudEVtaXR0ZXI8XCJ0b3BcIiB8IFwiYm90dG9tXCI+KCk7XG5cdC8qKlxuXHQgKiBNYWludGFpbnMgYSByZWZlcmVuY2UgdG8gdGhlIHZpZXcgRE9NIGVsZW1lbnQgZm9yIHRoZSB1bm9yZGVyZWQgbGlzdCBvZiBpdGVtcyB3aXRoaW4gdGhlIGBEcm9wZG93bkxpc3RgLlxuXHQgKi9cblx0QFZpZXdDaGlsZChcImxpc3RcIiwgeyBzdGF0aWM6IHRydWUgfSkgbGlzdDogRWxlbWVudFJlZjtcblx0LyoqXG5cdCAqIERlZmluZXMgd2hldGhlciBvciBub3QgdGhlIGBEcm9wZG93bkxpc3RgIHN1cHBvcnRzIHNlbGVjdGluZyBtdWx0aXBsZSBpdGVtcyBhcyBvcHBvc2VkIHRvIHNpbmdsZVxuXHQgKiBpdGVtIHNlbGVjdGlvbi5cblx0ICovXG5cdEBJbnB1dCgpIHR5cGU6IFwic2luZ2xlXCIgfCBcIm11bHRpXCIgPSBcInNpbmdsZVwiO1xuXG5cdC8qKlxuXHQgKiBEZWZpbmVzIHdoZXRoZXIgdG8gc2hvdyB0aXRsZSBhdHRyaWJ1dGUgb3Igbm90XG5cdCAqL1xuXHRASW5wdXQoKSBzaG93VGl0bGVzID0gdHJ1ZTtcblxuXHQvKipcblx0ICogRGVmaW5lcyB0aGUgcmVuZGVyaW5nIHNpemUgb2YgdGhlIGBEcm9wZG93bkxpc3RgIGlucHV0IGNvbXBvbmVudC5cblx0ICovXG5cdHB1YmxpYyBzaXplOiBcInNtXCIgfCBcIm1kXCIgfCBcImxnXCIgPSBcIm1kXCI7XG5cdHB1YmxpYyBsaXN0SWQgPSBgbGlzdGJveC0ke0Ryb3Bkb3duTGlzdC5saXN0Q291bnQrK31gO1xuXHRwdWJsaWMgaGlnaGxpZ2h0ZWRJdGVtID0gbnVsbDtcblx0LyoqXG5cdCAqIEhvbGRzIHRoZSBsaXN0IG9mIGl0ZW1zIHRoYXQgd2lsbCBiZSBkaXNwbGF5ZWQgaW4gdGhlIGBEcm9wZG93bkxpc3RgLlxuXHQgKiBJdCBkaWZmZXJzIGZyb20gdGhlIHRoZSBjb21wbGV0ZSBzZXQgb2YgaXRlbXMgd2hlbiBmaWx0ZXJpbmcgaXMgdXNlZCAoYnV0XG5cdCAqIGl0IGlzIGFsd2F5cyBhIHN1YnNldCBvZiB0aGUgdG90YWwgaXRlbXMgaW4gYERyb3Bkb3duTGlzdGApLlxuXHQgKi9cblx0cHVibGljIGRpc3BsYXlJdGVtczogQXJyYXk8TGlzdEl0ZW0+ID0gW107XG5cdC8qKlxuXHQgKiBNYWludGFpbnMgdGhlIGluZGV4IGZvciB0aGUgc2VsZWN0ZWQgaXRlbSB3aXRoaW4gdGhlIGBEcm9wZG93bkxpc3RgLlxuXHQgKi9cblx0cHJvdGVjdGVkIGluZGV4ID0gLTE7XG5cdC8qKlxuXHQgKiBBbiBhcnJheSBob2xkaW5nIHRoZSBIVE1MIGxpc3QgZWxlbWVudHMgaW4gdGhlIHZpZXcuXG5cdCAqL1xuXHRAVmlld0NoaWxkcmVuKFwibGlzdEl0ZW1cIikgcHJvdGVjdGVkIGxpc3RFbGVtZW50TGlzdDogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuXHQvKipcblx0ICogT2JzZXJ2YWJsZSBib3VuZCB0byBrZXlkb3duIGV2ZW50cyB0byBjb250cm9sIGZpbHRlcmluZy5cblx0ICovXG5cdHByb3RlY3RlZCBmb2N1c0p1bXA7XG5cdC8qKlxuXHQgKiBUcmFja3MgdGhlIGN1cnJlbnQgKGlmIGFueSkgc3Vic2NyaXB0aW9uIHRvIHRoZSBpdGVtcyBvYnNlcnZhYmxlIHNvIHdlIGNhbiBjbGVhbiB1cCB3aGVuIHRoZSBpbnB1dCBpcyB1cGRhdGVkLlxuXHQgKi9cblx0cHJvdGVjdGVkIF9pdGVtc1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXHQvKipcblx0ICogVXNlZCB0byByZXRhaW4gdGhlIG9yaWdpbmFsIGl0ZW1zIHBhc3NlZCB0byB0aGUgc2V0dGVyLlxuXHQgKi9cblx0cHJvdGVjdGVkIF9vcmlnaW5hbEl0ZW1zOiBBcnJheTxMaXN0SXRlbT4gfCBPYnNlcnZhYmxlPEFycmF5PExpc3RJdGVtPj47XG5cdC8qKlxuXHQgKiBVc2VmdWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIGl0ZW1zLCBzaG91bGQgYmUgYWNjZXNzZWQgdmlhIGBnZXRMaXN0SXRlbXNgLlxuXHQgKi9cblx0cHJvdGVjdGVkIF9pdGVtczogQXJyYXk8TGlzdEl0ZW0+ID0gW107XG5cdC8qKlxuXHQgKiBVc2VkIHRvIHdhaXQgZm9yIGl0ZW1zIGluIGNhc2UgdGhleSBhcmUgcGFzc2VkIHRocm91Z2ggYW4gb2JzZXJ2YWJsZS5cblx0ICovXG5cdHByb3RlY3RlZCBfaXRlbXNSZWFkeTogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuXHQvKipcblx0ICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBgRHJvcGRvd25MaXN0YC5cblx0ICovXG5cdGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgaTE4bjogSTE4biwgcHJvdGVjdGVkIGFwcFJlZjogQXBwbGljYXRpb25SZWYpIHt9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlcyBhcnJheSBvZiBsaXN0IGl0ZW1zIGFuZCBpbmRleCBvZiB0aGUgc2VsZWN0ZWQgaXRlbSBhZnRlciB2aWV3IGhhcyByZW5kZXJlZC5cblx0ICogQWRkaXRpb25hbGx5LCBhbnkgT2JzZXJ2YWJsZXMgZm9yIHRoZSBgRHJvcGRvd25MaXN0YCBhcmUgaW5pdGlhbGl6ZWQuXG5cdCAqL1xuXHRuZ0FmdGVyVmlld0luaXQoKSB7XG5cdFx0dGhpcy5pbmRleCA9IHRoaXMuZ2V0TGlzdEl0ZW1zKCkuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5zZWxlY3RlZCk7XG5cdFx0dGhpcy5zZXR1cEZvY3VzT2JzZXJ2YWJsZSgpO1xuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0dGhpcy5kb0VtaXRTZWxlY3QodHJ1ZSk7XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogUmVtb3ZlcyBhbnkgT2JzZXJ2YWJsZXMgb24gZGVzdHJ1Y3Rpb24gb2YgdGhlIGNvbXBvbmVudC5cblx0ICovXG5cdG5nT25EZXN0cm95KCkge1xuXHRcdGlmICh0aGlzLmZvY3VzSnVtcCkge1xuXHRcdFx0dGhpcy5mb2N1c0p1bXAudW5zdWJzY3JpYmUoKTtcblx0XHR9XG5cdFx0aWYgKHRoaXMuX2l0ZW1zU3Vic2NyaXB0aW9uKSB7XG5cdFx0XHR0aGlzLl9pdGVtc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuXHRcdH1cblx0fVxuXG5cdGRvRW1pdFNlbGVjdChpc1VwZGF0ZSA9IHRydWUpIHtcblx0XHRpZiAodGhpcy50eXBlID09PSBcInNpbmdsZVwiKSB7XG5cdFx0XHR0aGlzLnNlbGVjdC5lbWl0KHsgaXRlbTogdGhpcy5faXRlbXMuZmluZChpdGVtID0+IGl0ZW0uc2VsZWN0ZWQpLCBpc1VwZGF0ZTogaXNVcGRhdGUgfSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIGFidXNlIGphdmFzY3JpcHRzIG9iamVjdCBtdXRhYmlsaXR5IHVudGlsIHdlIGNhbiBicmVhayB0aGUgQVBJIGFuZCBzd2l0Y2ggdG9cblx0XHRcdC8vIHsgaXRlbXM6IFtdLCBpc1VwZGF0ZTogdHJ1ZSB9XG5cdFx0XHRjb25zdCBzZWxlY3RlZCA9IHRoaXMuZ2V0U2VsZWN0ZWQoKSB8fCBbXTtcblx0XHRcdHNlbGVjdGVkW1wiaXNVcGRhdGVcIl0gPSBpc1VwZGF0ZTtcblx0XHRcdHRoaXMuc2VsZWN0LmVtaXQoc2VsZWN0ZWQpO1xuXHRcdH1cblx0fVxuXG5cdGdldEl0ZW1JZChpbmRleDogbnVtYmVyKSB7XG5cdFx0cmV0dXJuIGAke3RoaXMubGlzdElkfS0ke2luZGV4fWA7XG5cdH1cblxuXHQvKipcblx0ICogVXBkYXRlcyB0aGUgZGlzcGxheWVkIGxpc3Qgb2YgaXRlbXMgYW5kIHRoZW4gcmV0cmlldmVzIHRoZSBtb3N0IGN1cnJlbnQgcHJvcGVydGllcyBmb3IgdGhlIGBEcm9wZG93bkxpc3RgIGZyb20gdGhlIERPTS5cblx0ICovXG5cdHVwZGF0ZUxpc3QoaXRlbXMpIHtcblx0XHR0aGlzLl9pdGVtcyA9IGl0ZW1zLm1hcChpdGVtID0+IE9iamVjdC5hc3NpZ24oe30sIGl0ZW0pKTtcblx0XHR0aGlzLmRpc3BsYXlJdGVtcyA9IHRoaXMuX2l0ZW1zO1xuXHRcdHRoaXMudXBkYXRlSW5kZXgoKTtcblx0XHR0aGlzLnNldHVwRm9jdXNPYnNlcnZhYmxlKCk7XG5cdFx0dGhpcy5kb0VtaXRTZWxlY3QoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBGaWx0ZXJzIHRoZSBpdGVtcyBiZWluZyBkaXNwbGF5ZWQgaW4gdGhlIERPTSBsaXN0LlxuXHQgKi9cblx0ZmlsdGVyQnkocXVlcnkgPSBcIlwiKSB7XG5cdFx0aWYgKHF1ZXJ5KSB7XG5cdFx0XHR0aGlzLmRpc3BsYXlJdGVtcyA9IHRoaXMuZ2V0TGlzdEl0ZW1zKCkuZmlsdGVyKGl0ZW0gPT4gaXRlbS5jb250ZW50LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocXVlcnkudG9Mb3dlckNhc2UoKSkpO1xuXHRcdFx0Ly8gUmVzZXQgaW5kZXggaWYgaXRlbXMgd2VyZSBmb3VuZFxuXHRcdFx0Ly8gUHJldmVudCBzZWxlY3RpbmcgaW5kZXggaW4gbGlzdCB0aGF0IGFyZSB1bmRlZmluZWQuXG5cdFx0XHRpZiAodGhpcy5kaXNwbGF5SXRlbXMpIHtcblx0XHRcdFx0dGhpcy5pbmRleCA9IDA7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuZGlzcGxheUl0ZW1zID0gdGhpcy5nZXRMaXN0SXRlbXMoKTtcblx0XHR9XG5cblx0XHR0aGlzLnVwZGF0ZUluZGV4KCk7XG5cdH1cblxuXHQvKipcblx0ICogSW5pdGlhbGl6ZXMgKG9yIHJlLWluaXRpYWxpemVzKSB0aGUgT2JzZXJ2YWJsZSB0aGF0IGhhbmRsZXMgc3dpdGNoaW5nIGZvY3VzIHRvIGFuIGVsZW1lbnQgYmFzZWQgb25cblx0ICoga2V5IGlucHV0IG1hdGNoaW5nIHRoZSBmaXJzdCBsZXR0ZXIgb2YgdGhlIGl0ZW0gaW4gdGhlIGxpc3QuXG5cdCAqL1xuXHRzZXR1cEZvY3VzT2JzZXJ2YWJsZSgpIHtcblx0XHRpZiAoIXRoaXMubGlzdCkgeyByZXR1cm47IH1cblx0XHRpZiAodGhpcy5mb2N1c0p1bXApIHtcblx0XHRcdHRoaXMuZm9jdXNKdW1wLnVuc3Vic2NyaWJlKCk7XG5cdFx0fVxuXHRcdGxldCBlbExpc3QgPSBBcnJheS5mcm9tKHRoaXMubGlzdC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJsaVwiKSk7XG5cdFx0dGhpcy5mb2N1c0p1bXAgPSB3YXRjaEZvY3VzSnVtcCh0aGlzLmxpc3QubmF0aXZlRWxlbWVudCwgZWxMaXN0KVxuXHRcdFx0LnN1YnNjcmliZShlbCA9PiB7XG5cdFx0XHRcdGVsLmZvY3VzKCk7XG5cdFx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBgTGlzdEl0ZW1gIHRoYXQgaXMgc3Vic2VxdWVudCB0byB0aGUgc2VsZWN0ZWQgaXRlbSBpbiB0aGUgYERyb3Bkb3duTGlzdGAuXG5cdCAqL1xuXHRnZXROZXh0SXRlbSgpOiBMaXN0SXRlbSB7XG5cdFx0aWYgKHRoaXMuaW5kZXggPCB0aGlzLmRpc3BsYXlJdGVtcy5sZW5ndGggLSAxKSB7XG5cdFx0XHR0aGlzLmluZGV4Kys7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLmRpc3BsYXlJdGVtc1t0aGlzLmluZGV4XTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgc2VsZWN0ZWQgaXRlbSBpcyBub3QgdGhlIGxhc3QgaXRlbSBpbiB0aGUgYERyb3Bkb3duTGlzdGAuXG5cdCAqL1xuXHRoYXNOZXh0RWxlbWVudCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5pbmRleCA8IHRoaXMuZGlzcGxheUl0ZW1zLmxlbmd0aCAtIDEgJiZcblx0XHRcdCghKHRoaXMuaW5kZXggPT09IHRoaXMuZGlzcGxheUl0ZW1zLmxlbmd0aCAtIDIpIHx8ICF0aGlzLmRpc3BsYXlJdGVtc1t0aGlzLmluZGV4ICsgMV0uZGlzYWJsZWQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIGBIVE1MRWxlbWVudGAgZm9yIHRoZSBpdGVtIHRoYXQgaXMgc3Vic2VxdWVudCB0byB0aGUgc2VsZWN0ZWQgaXRlbS5cblx0ICovXG5cdGdldE5leHRFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcblx0XHQvLyBPbmx5IHJldHVybiBuYXRpdmUgZWxlbWVudHMgaWYgdGhleSBhcmUgcmVuZGVyZWRcblx0XHRjb25zdCBlbGVtTGlzdCA9IHRoaXMubGlzdEVsZW1lbnRMaXN0ID8gdGhpcy5saXN0RWxlbWVudExpc3QudG9BcnJheSgpIDogW107XG5cdFx0aWYgKCFlbGVtTGlzdC5sZW5ndGgpIHtcblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH1cblxuXHRcdC8qKlxuXHRcdCAqIFN0YXJ0IGNoZWNraW5nIGZyb20gbmV4dCBpbmRleFxuXHRcdCAqIENvbnRpbnVlIGxvb3BpbmcgdGhyb3VnaCB0aGUgbGlzdCB1bnRpbCBhIG5vbiBkaXNhYmVsZWQgZWxlbWVudCBpcyBmb3VuZCBvclxuXHRcdCAqIGVuZCBvZiBsaXN0IGlzIHJlYWNoZWRcblx0XHQgKi9cblx0XHRmb3IgKGxldCBpID0gdGhpcy5pbmRleCArIDE7IGkgPCBlbGVtTGlzdC5sZW5ndGg7IGkrKykge1xuXHRcdFx0Ly8gSWYgdGhlIHZhbHVlcyBpbiB0aGUgbGlzdCBhcmUgbm90IGRpc2FibGVkXG5cdFx0XHRpZiAoIXRoaXMuZGlzcGxheUl0ZW1zW2ldLmRpc2FibGVkKSB7XG5cdFx0XHRcdHRoaXMuaW5kZXggPSBpO1xuXHRcdFx0XHRyZXR1cm4gZWxlbUxpc3RbaV0ubmF0aXZlRWxlbWVudDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gZWxlbUxpc3RbdGhpcy5pbmRleF0ubmF0aXZlRWxlbWVudDtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBgTGlzdEl0ZW1gIHRoYXQgcHJlY2VkZXMgdGhlIHNlbGVjdGVkIGl0ZW0gd2l0aGluIGBEcm9wZG93bkxpc3RgLlxuXHQgKi9cblx0Z2V0UHJldkl0ZW0oKTogTGlzdEl0ZW0ge1xuXHRcdGlmICh0aGlzLmluZGV4ID4gMCkge1xuXHRcdFx0dGhpcy5pbmRleC0tO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy5kaXNwbGF5SXRlbXNbdGhpcy5pbmRleF07XG5cdH1cblxuXHQvKipcblx0ICogUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHNlbGVjdGVkIGl0ZW0gaXMgbm90IHRoZSBmaXJzdCBpbiB0aGUgbGlzdC5cblx0ICovXG5cdGhhc1ByZXZFbGVtZW50KCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLmluZGV4ID4gMCAmJiAoISh0aGlzLmluZGV4ID09PSAxKSB8fCAhdGhpcy5kaXNwbGF5SXRlbXNbMF0uZGlzYWJsZWQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIGBIVE1MRWxlbWVudGAgZm9yIHRoZSBpdGVtIHRoYXQgcHJlY2VkZXMgdGhlIHNlbGVjdGVkIGl0ZW0uXG5cdCAqL1xuXHRnZXRQcmV2RWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG5cdFx0Ly8gT25seSByZXR1cm4gbmF0aXZlIGVsZW1lbnRzIGlmIHRoZXkgYXJlIHJlbmRlcmVkXG5cdFx0Y29uc3QgZWxlbUxpc3QgPSB0aGlzLmxpc3RFbGVtZW50TGlzdCA/IHRoaXMubGlzdEVsZW1lbnRMaXN0LnRvQXJyYXkoKSA6IFtdO1xuXHRcdGlmICghZWxlbUxpc3QubGVuZ3RoKSB7XG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHR9XG5cblx0XHQvKipcblx0XHQgKiBTdGFydCBjaGVja2luZyBmcm9tIG5leHQgaW5kZXhcblx0XHQgKiBDb250aW51ZSBsb29waW5nIHRocm91Z2ggdGhlIGxpc3QgdW50aWwgYSBub24gZGlzYWJlbGVkIGVsZW1lbnQgaXMgZm91bmQgb3Jcblx0XHQgKiBlbmQgb2YgbGlzdCBpcyByZWFjaGVkXG5cdFx0ICovXG5cdFx0Zm9yIChsZXQgaSA9IHRoaXMuaW5kZXggLSAxOyBpIDwgdGhpcy5pbmRleCAmJiBpID49IDA7IGktLSkge1xuXHRcdFx0Ly8gSWYgdGhlIHZhbHVlcyBpbiB0aGUgbGlzdCBhcmUgbm90IGRpc2FibGVkXG5cdFx0XHRpZiAoIXRoaXMuZGlzcGxheUl0ZW1zW2ldLmRpc2FibGVkKSB7XG5cdFx0XHRcdHRoaXMuaW5kZXggPSBpO1xuXHRcdFx0XHRyZXR1cm4gZWxlbUxpc3RbaV0ubmF0aXZlRWxlbWVudDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gZWxlbUxpc3RbdGhpcy5pbmRleF0ubmF0aXZlRWxlbWVudDtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBgTGlzdEl0ZW1gIHRoYXQgaXMgc2VsZWN0ZWQgd2l0aGluIGBEcm9wZG93bkxpc3RgLlxuXHQgKi9cblx0Z2V0Q3VycmVudEl0ZW0oKTogTGlzdEl0ZW0ge1xuXHRcdGlmICh0aGlzLmluZGV4IDwgMCkge1xuXHRcdFx0cmV0dXJuIHRoaXMuZGlzcGxheUl0ZW1zWzBdO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy5kaXNwbGF5SXRlbXNbdGhpcy5pbmRleF07XG5cdH1cblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgYEhUTUxFbGVtZW50YCBmb3IgdGhlIGl0ZW0gdGhhdCBpcyBzZWxlY3RlZCB3aXRoaW4gdGhlIGBEcm9wZG93bkxpc3RgLlxuXHQgKi9cblx0Z2V0Q3VycmVudEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuXHRcdGlmICh0aGlzLmluZGV4IDwgMCkge1xuXHRcdFx0cmV0dXJuIHRoaXMubGlzdEVsZW1lbnRMaXN0LmZpcnN0Lm5hdGl2ZUVsZW1lbnQ7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLmxpc3RFbGVtZW50TGlzdC50b0FycmF5KClbdGhpcy5pbmRleF0ubmF0aXZlRWxlbWVudDtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBpdGVtcyBhcyBhbiBBcnJheVxuXHQgKi9cblx0Z2V0TGlzdEl0ZW1zKCk6IEFycmF5PExpc3RJdGVtPiB7XG5cdFx0cmV0dXJuIHRoaXMuX2l0ZW1zO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgYSBsaXN0IGNvbnRhaW5pbmcgdGhlIHNlbGVjdGVkIGl0ZW0ocykgaW4gdGhlIGBEcm9wZG93bkxpc3RgLlxuXHQgKi9cblx0Z2V0U2VsZWN0ZWQoKTogTGlzdEl0ZW1bXSB7XG5cdFx0bGV0IHNlbGVjdGVkID0gdGhpcy5nZXRMaXN0SXRlbXMoKS5maWx0ZXIoaXRlbSA9PiBpdGVtLnNlbGVjdGVkKTtcblx0XHRpZiAoc2VsZWN0ZWQubGVuZ3RoID09PSAwKSB7XG5cdFx0XHRyZXR1cm4gW107XG5cdFx0fVxuXHRcdHJldHVybiBzZWxlY3RlZDtcblx0fVxuXG5cdC8qKlxuXHQgKiBUcmFuc2Zvcm1zIGFycmF5IGlucHV0IGxpc3Qgb2YgaXRlbXMgdG8gdGhlIGNvcnJlY3Qgc3RhdGUgYnkgdXBkYXRpbmcgdGhlIHNlbGVjdGVkIGl0ZW0ocykuXG5cdCAqL1xuXHRwcm9wYWdhdGVTZWxlY3RlZCh2YWx1ZTogQXJyYXk8TGlzdEl0ZW0+KTogdm9pZCB7XG5cdFx0Ly8gaWYgd2UgZ2V0IGEgbm9uLWFycmF5LCBsb2cgb3V0IGFuIGVycm9yIChzaW5jZSBpdCBpcyBvbmUpXG5cdFx0aWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuXHRcdFx0Y29uc29sZS5lcnJvcihgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9LnByb3BhZ2F0ZVNlbGVjdGVkIGV4cGVjdHMgYW4gQXJyYXk8TGlzdEl0ZW0+LCBnb3QgJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9YCk7XG5cdFx0fVxuXHRcdHRoaXMub25JdGVtc1JlYWR5KCgpID0+IHtcblx0XHRcdC8vIGxvb3AgdGhyb3VnaCB0aGUgbGlzdCBpdGVtcyBhbmQgdXBkYXRlIHRoZSBgc2VsZWN0ZWRgIHN0YXRlIGZvciBtYXRjaGluZyBpdGVtcyBpbiBgdmFsdWVgXG5cdFx0XHRmb3IgKGxldCBvbGRJdGVtIG9mIHRoaXMuZ2V0TGlzdEl0ZW1zKCkpIHtcblx0XHRcdFx0Ly8gY29weSB0aGUgaXRlbVxuXHRcdFx0XHRsZXQgdGVtcE9sZEl0ZW06IHN0cmluZyB8IExpc3RJdGVtID0gT2JqZWN0LmFzc2lnbih7fSwgb2xkSXRlbSk7XG5cdFx0XHRcdC8vIGRlbGV0ZWQgc2VsZWN0ZWQgYmVjYXVzZSBpdCdzIHdoYXQgd2UgX3dhbnRfIHRvIGNoYW5nZVxuXHRcdFx0XHRkZWxldGUgdGVtcE9sZEl0ZW0uc2VsZWN0ZWQ7XG5cdFx0XHRcdC8vIHN0cmluZ2lmeSBmb3IgY29tcGFyZVxuXHRcdFx0XHR0ZW1wT2xkSXRlbSA9IEpTT04uc3RyaW5naWZ5KHRlbXBPbGRJdGVtKTtcblx0XHRcdFx0Zm9yIChsZXQgbmV3SXRlbSBvZiB2YWx1ZSkge1xuXHRcdFx0XHRcdC8vIGNvcHkgdGhlIGl0ZW1cblx0XHRcdFx0XHRsZXQgdGVtcE5ld0l0ZW06IHN0cmluZyB8IExpc3RJdGVtID0gT2JqZWN0LmFzc2lnbih7fSwgbmV3SXRlbSk7XG5cdFx0XHRcdFx0Ly8gZGVsZXRlZCBzZWxlY3RlZCBiZWNhdXNlIGl0J3Mgd2hhdCB3ZSBfd2FudF8gdG8gY2hhbmdlXG5cdFx0XHRcdFx0ZGVsZXRlIHRlbXBOZXdJdGVtLnNlbGVjdGVkO1xuXHRcdFx0XHRcdC8vIHN0cmluZ2lmeSBmb3IgY29tcGFyZVxuXHRcdFx0XHRcdHRlbXBOZXdJdGVtID0gSlNPTi5zdHJpbmdpZnkodGVtcE5ld0l0ZW0pO1xuXHRcdFx0XHRcdC8vIGRvIHRoZSBjb21wYXJlXG5cdFx0XHRcdFx0aWYgKHRlbXBPbGRJdGVtLmluY2x1ZGVzKHRlbXBOZXdJdGVtKSkge1xuXHRcdFx0XHRcdFx0b2xkSXRlbS5zZWxlY3RlZCA9IG5ld0l0ZW0uc2VsZWN0ZWQ7XG5cdFx0XHRcdFx0XHQvLyBpZiB3ZSd2ZSBmb3VuZCBhIG1hdGNoaW5nIGl0ZW0sIHdlIGNhbiBzdG9wIGxvb3Bpbmdcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRvbGRJdGVtLnNlbGVjdGVkID0gZmFsc2U7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogSW5pdGlhbGl6ZXMgZm9jdXMgaW4gdGhlIGxpc3QsIGVmZmVjdGl2ZWx5IGEgd3JhcHBlciBmb3IgYGdldEN1cnJlbnRFbGVtZW50KCkuZm9jdXMoKWBcblx0ICovXG5cdGluaXRGb2N1cygpIHtcblx0XHRpZiAodGhpcy5pbmRleCA8IDApIHtcblx0XHRcdHRoaXMudXBkYXRlSW5kZXgoKTtcblx0XHR9XG5cblx0XHR0aGlzLmxpc3QubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0dGhpcy5oaWdobGlnaHRlZEl0ZW0gPSB0aGlzLmdldEl0ZW1JZCh0aGlzLmluZGV4KTtcblx0XHR9KTtcblx0fVxuXG5cdHVwZGF0ZUluZGV4KCkge1xuXHRcdC8vIGluaXRpYWxpemUgaW5kZXggb24gdGhlIGZpcnN0IHNlbGVjdGVkIGl0ZW0gb3Jcblx0XHQvLyBvbiB0aGUgbmV4dCBub24gZGlzYWJsZWQgaXRlbSBpZiBubyBpdGVtcyBhcmUgc2VsZWN0ZWRcblx0XHRjb25zdCBzZWxlY3RlZCA9IHRoaXMuZ2V0U2VsZWN0ZWQoKTtcblx0XHRpZiAoc2VsZWN0ZWQubGVuZ3RoKSB7XG5cdFx0XHR0aGlzLmluZGV4ID0gdGhpcy5kaXNwbGF5SXRlbXMuaW5kZXhPZihzZWxlY3RlZFswXSk7XG5cdFx0fSBlbHNlIGlmICh0aGlzLmhhc05leHRFbGVtZW50KCkpIHtcblx0XHRcdHRoaXMuZ2V0TmV4dEVsZW1lbnQoKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogTWFuYWdlcyB0aGUga2V5Ym9hcmQgYWNjZXNzaWJpbGl0eSBmb3IgbmF2aWdhdGlvbiBhbmQgc2VsZWN0aW9uIHdpdGhpbiBhIGBEcm9wZG93bkxpc3RgLlxuXHQgKi9cblx0bmF2aWdhdGVMaXN0KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG5cdFx0aWYgKGV2ZW50LmtleSA9PT0gXCJFbnRlclwiIHx8IGV2ZW50LmtleSA9PT0gXCIgXCIpIHtcblx0XHRcdGlmICh0aGlzLmxpc3RFbGVtZW50TGlzdC5zb21lKG9wdGlvbiA9PiBvcHRpb24ubmF0aXZlRWxlbWVudCA9PT0gZXZlbnQudGFyZ2V0KSkge1xuXHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKGV2ZW50LmtleSA9PT0gXCJFbnRlclwiKSB7XG5cdFx0XHRcdHRoaXMuZG9DbGljayhldmVudCwgdGhpcy5nZXRDdXJyZW50SXRlbSgpKTtcblx0XHRcdH1cblx0XHR9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gXCJBcnJvd0Rvd25cIiB8fCBldmVudC5rZXkgPT09IFwiQXJyb3dVcFwiKSB7XG5cdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdFx0aWYgKGV2ZW50LmtleSA9PT0gXCJBcnJvd0Rvd25cIikge1xuXHRcdFx0XHRpZiAodGhpcy5oYXNOZXh0RWxlbWVudCgpKSB7XG5cdFx0XHRcdFx0dGhpcy5nZXROZXh0RWxlbWVudCgpLnNjcm9sbEludG9WaWV3KHsgYmxvY2s6IFwiZW5kXCIgfSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dGhpcy5ibHVySW50ZW50LmVtaXQoXCJib3R0b21cIik7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSBcIkFycm93VXBcIikge1xuXHRcdFx0XHRpZiAodGhpcy5oYXNQcmV2RWxlbWVudCgpKSB7XG5cdFx0XHRcdFx0dGhpcy5nZXRQcmV2RWxlbWVudCgpLnNjcm9sbEludG9WaWV3KHsgIGJsb2NrOiBcIm5lYXJlc3RcIiB9KTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0aGlzLmJsdXJJbnRlbnQuZW1pdChcInRvcFwiKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdHRoaXMuaGlnaGxpZ2h0ZWRJdGVtID0gdGhpcy5nZXRJdGVtSWQodGhpcy5pbmRleCk7XG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogRW1pdHMgdGhlIHNlbGVjdGVkIGl0ZW0gb3IgaXRlbXMgYWZ0ZXIgYSBtb3VzZSBjbGljayBldmVudCBoYXMgb2NjdXJyZWQuXG5cdCAqL1xuXHRkb0NsaWNrKGV2ZW50LCBpdGVtKSB7XG5cdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRpZiAoaXRlbSAmJiAhaXRlbS5kaXNhYmxlZCkge1xuXHRcdFx0dGhpcy5saXN0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcblx0XHRcdGlmICh0aGlzLnR5cGUgPT09IFwic2luZ2xlXCIpIHtcblx0XHRcdFx0aXRlbS5zZWxlY3RlZCA9IHRydWU7XG5cdFx0XHRcdC8vIHJlc2V0IHRoZSBzZWxlY3Rpb25cblx0XHRcdFx0Zm9yIChsZXQgb3RoZXJJdGVtIG9mIHRoaXMuZ2V0TGlzdEl0ZW1zKCkpIHtcblx0XHRcdFx0XHRpZiAoaXRlbSAhPT0gb3RoZXJJdGVtKSB7IG90aGVySXRlbS5zZWxlY3RlZCA9IGZhbHNlOyB9XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGl0ZW0uc2VsZWN0ZWQgPSAhaXRlbS5zZWxlY3RlZDtcblx0XHRcdH1cblx0XHRcdHRoaXMuaW5kZXggPSB0aGlzLmRpc3BsYXlJdGVtcy5pbmRleE9mKGl0ZW0pO1xuXHRcdFx0dGhpcy5oaWdobGlnaHRlZEl0ZW0gPSB0aGlzLmdldEl0ZW1JZCh0aGlzLmluZGV4KTtcblx0XHRcdHRoaXMuZG9FbWl0U2VsZWN0KGZhbHNlKTtcblx0XHRcdHRoaXMuYXBwUmVmLnRpY2soKTtcblx0XHR9XG5cdH1cblxuXHRvbkl0ZW1Gb2N1cyhpbmRleCkge1xuXHRcdGNvbnN0IGVsZW1lbnQgPSB0aGlzLmxpc3RFbGVtZW50TGlzdC50b0FycmF5KClbaW5kZXhdLm5hdGl2ZUVsZW1lbnQ7XG5cdFx0ZWxlbWVudC5jbGFzc0xpc3QuYWRkKFwiY2RzLS1saXN0LWJveF9fbWVudS1pdGVtLS1oaWdobGlnaHRlZFwiKTtcblx0XHRlbGVtZW50LnRhYkluZGV4ID0gMDtcblx0fVxuXG5cdG9uSXRlbUJsdXIoaW5kZXgpIHtcblx0XHRjb25zdCBlbGVtZW50ID0gdGhpcy5saXN0RWxlbWVudExpc3QudG9BcnJheSgpW2luZGV4XS5uYXRpdmVFbGVtZW50O1xuXHRcdGVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcImNkcy0tbGlzdC1ib3hfX21lbnUtaXRlbS0taGlnaGxpZ2h0ZWRcIik7XG5cdFx0ZWxlbWVudC50YWJJbmRleCA9IC0xO1xuXHR9XG5cblx0LyoqXG5cdCAqIEVtaXRzIHRoZSBzY3JvbGwgZXZlbnQgb2YgdGhlIG9wdGlvbnMgbGlzdFxuXHQgKi9cblx0ZW1pdFNjcm9sbChldmVudCkge1xuXHRcdGNvbnN0IGF0VG9wOiBib29sZWFuID0gZXZlbnQuc3JjRWxlbWVudC5zY3JvbGxUb3AgPT09IDA7XG5cdFx0Y29uc3QgYXRCb3R0b206IGJvb2xlYW4gPSBldmVudC5zcmNFbGVtZW50LnNjcm9sbEhlaWdodCAtIGV2ZW50LnNyY0VsZW1lbnQuc2Nyb2xsVG9wID09PSBldmVudC5zcmNFbGVtZW50LmNsaWVudEhlaWdodDtcblx0XHRjb25zdCBjdXN0b21TY3JvbGxFdmVudCA9IHsgYXRUb3AsIGF0Qm90dG9tLCBldmVudCB9O1xuXHRcdHRoaXMuc2Nyb2xsLmVtaXQoY3VzdG9tU2Nyb2xsRXZlbnQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFN1YnNjcmliZSB0aGUgZnVuY3Rpb24gcGFzc2VkIHRvIGFuIGludGVybmFsIG9ic2VydmFibGUgdGhhdCB3aWxsIHJlc29sdmUgb25jZSB0aGUgaXRlbXMgYXJlIHJlYWR5XG5cdCAqL1xuXHRvbkl0ZW1zUmVhZHkoc3ViY3JpcHRpb246ICgpID0+IHZvaWQpOiB2b2lkIHtcblx0XHQvLyB0aGlzIHN1YnNjcmlwdGlvbiB3aWxsIGF1dG8gdW5zdWJzY3JpYmUgYmVjYXVzZSBvZiB0aGUgYGZpcnN0KClgIHBpcGVcblx0XHQodGhpcy5faXRlbXNSZWFkeSB8fCBvZih0cnVlKSkucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoc3ViY3JpcHRpb24pO1xuXHR9XG5cblx0cmVvcmRlclNlbGVjdGVkKG1vdmVGb2N1cyA9IHRydWUpOiB2b2lkIHtcblx0XHR0aGlzLmRpc3BsYXlJdGVtcyA9IFsuLi50aGlzLmdldFNlbGVjdGVkKCksIC4uLnRoaXMuZ2V0TGlzdEl0ZW1zKCkuZmlsdGVyKGl0ZW0gPT4gIWl0ZW0uc2VsZWN0ZWQpXTtcblx0XHRpZiAobW92ZUZvY3VzKSB7XG5cdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0dGhpcy51cGRhdGVJbmRleCgpO1xuXHRcdFx0XHR0aGlzLmhpZ2hsaWdodGVkSXRlbSA9IHRoaXMuZ2V0SXRlbUlkKHRoaXMuaW5kZXgpO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG59XG4iXX0=
|
|
629
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZHJvcGRvd24vbGlzdC9kcm9wZG93bi1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBRU4sWUFBWSxFQUdaLFNBQVMsRUFFVCxZQUFZLEVBR1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQWdCLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHdkMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7OztBQUlsRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0JHO0FBcUVILE1BQU0sT0FBTyxZQUFZO0lBMEd4Qjs7T0FFRztJQUNILFlBQW1CLFVBQXNCLEVBQVksSUFBVSxFQUFZLE1BQXNCO1FBQTlFLGVBQVUsR0FBVixVQUFVLENBQVk7UUFBWSxTQUFJLEdBQUosSUFBSSxDQUFNO1FBQVksV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUEzR3hGLGNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7UUEwQnpEOztXQUVHO1FBQ00sWUFBTyxHQUE4QixJQUFJLENBQUM7UUFDbkQ7O1dBRUc7UUFDTyxXQUFNLEdBQXNFLElBQUksWUFBWSxFQUFFLENBQUM7UUFDekc7O1dBRUc7UUFDTyxXQUFNLEdBQW9DLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdkU7Ozs7Ozs7O1dBUUc7UUFDTyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQW9CLENBQUM7UUFLNUQ7OztX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TSxFQUFFLElBQUksRUFBRTtnQkFLMUIsSUFBSTtzQkFBWixLQUFLO2dCQUtHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBcUI4QixlQUFlO3NCQUFsRCxZQUFZO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDb21wb25lbnQsXG5cdElucHV0LFxuXHRPdXRwdXQsXG5cdE9uRGVzdHJveSxcblx0RXZlbnRFbWl0dGVyLFxuXHRUZW1wbGF0ZVJlZixcblx0QWZ0ZXJWaWV3SW5pdCxcblx0Vmlld0NoaWxkLFxuXHRFbGVtZW50UmVmLFxuXHRWaWV3Q2hpbGRyZW4sXG5cdFF1ZXJ5TGlzdCxcblx0QXBwbGljYXRpb25SZWZcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE9ic2VydmFibGUsIGlzT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCBvZiB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuXG5pbXBvcnQgeyBJMThuIH0gZnJvbSBcImNhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXIvaTE4blwiO1xuaW1wb3J0IHsgQWJzdHJhY3REcm9wZG93blZpZXcgfSBmcm9tIFwiLi4vYWJzdHJhY3QtZHJvcGRvd24tdmlldy5jbGFzc1wiO1xuaW1wb3J0IHsgTGlzdEl0ZW0gfSBmcm9tIFwiLi4vbGlzdC1pdGVtLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgd2F0Y2hGb2N1c0p1bXAgfSBmcm9tIFwiLi4vZHJvcGRvd250b29sc1wiO1xuaW1wb3J0IHsgU2Nyb2xsQ3VzdG9tRXZlbnQgfSBmcm9tIFwiLi9zY3JvbGwtY3VzdG9tLWV2ZW50LmludGVyZmFjZVwiO1xuXG5cbi8qKlxuICogYGBgaHRtbFxuICogPGNkcy1kcm9wZG93bi1saXN0IFtpdGVtc109XCJsaXN0SXRlbXNcIj48L2Nkcy1kcm9wZG93bi1saXN0PlxuICogYGBgXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBsaXN0SXRlbXMgPSBbXG4gKiBcdHtcbiAqIFx0XHRjb250ZW50OiBcIml0ZW0gb25lXCIsXG4gKiBcdFx0c2VsZWN0ZWQ6IGZhbHNlXG4gKiBcdH0sXG4gKiBcdHtcbiAqIFx0XHRjb250ZW50OiBcIml0ZW0gdHdvXCIsXG4gKiBcdFx0c2VsZWN0ZWQ6IGZhbHNlLFxuICogXHR9LFxuICogXHR7XG4gKiBcdFx0Y29udGVudDogXCJpdGVtIHRocmVlXCIsXG4gKiBcdFx0c2VsZWN0ZWQ6IGZhbHNlXG4gKiBcdH0sXG4gKiBcdHtcbiAqIFx0XHRjb250ZW50OiBcIml0ZW0gZm91clwiLFxuICogXHRcdHNlbGVjdGVkOiBmYWxzZVxuICogXHR9XG4gKiBdO1xuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogXCJjZHMtZHJvcGRvd24tbGlzdCwgaWJtLWRyb3Bkb3duLWxpc3RcIixcblx0dGVtcGxhdGU6IGBcblx0XHQ8dWxcblx0XHRcdCNsaXN0XG5cdFx0XHRbaWRdPVwibGlzdElkXCJcblx0XHRcdHJvbGU9XCJsaXN0Ym94XCJcblx0XHRcdGNsYXNzPVwiY2RzLS1saXN0LWJveF9fbWVudSBjZHMtLW11bHRpLXNlbGVjdFwiXG5cdFx0XHQoc2Nyb2xsKT1cImVtaXRTY3JvbGwoJGV2ZW50KVwiXG5cdFx0XHQoa2V5ZG93bik9XCJuYXZpZ2F0ZUxpc3QoJGV2ZW50KVwiXG5cdFx0XHR0YWJpbmRleD1cIi0xXCJcblx0XHRcdFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcblx0XHRcdFthdHRyLmFyaWEtYWN0aXZlZGVzY2VuZGFudF09XCJoaWdobGlnaHRlZEl0ZW1cIj5cblx0XHRcdDxsaVxuXHRcdFx0XHRyb2xlPVwib3B0aW9uXCJcblx0XHRcdFx0Km5nRm9yPVwibGV0IGl0ZW0gb2YgZGlzcGxheUl0ZW1zOyBsZXQgaSA9IGluZGV4XCJcblx0XHRcdFx0KGNsaWNrKT1cImRvQ2xpY2soJGV2ZW50LCBpdGVtKVwiXG5cdFx0XHRcdGNsYXNzPVwiY2RzLS1saXN0LWJveF9fbWVudS1pdGVtXCJcblx0XHRcdFx0W2F0dHIuYXJpYS1zZWxlY3RlZF09XCJpdGVtLnNlbGVjdGVkXCJcblx0XHRcdFx0W2lkXT1cImdldEl0ZW1JZChpKVwiXG5cdFx0XHRcdFthdHRyLnRpdGxlXT1cIiBzaG93VGl0bGVzID8gaXRlbS5jb250ZW50IDogbnVsbFwiXG5cdFx0XHRcdFthdHRyLmRpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWQgPyB0cnVlIDogbnVsbFwiXG5cdFx0XHRcdFtuZ0NsYXNzXT1cIntcblx0XHRcdFx0XHQnY2RzLS1saXN0LWJveF9fbWVudS1pdGVtLS1hY3RpdmUnOiBpdGVtLnNlbGVjdGVkLFxuXHRcdFx0XHRcdCdjZHMtLWxpc3QtYm94X19tZW51LWl0ZW0tLWhpZ2hsaWdodGVkJzogaGlnaGxpZ2h0ZWRJdGVtID09PSBnZXRJdGVtSWQoaSlcblx0XHRcdFx0fVwiPlxuXHRcdFx0XHQ8ZGl2XG5cdFx0XHRcdFx0I2xpc3RJdGVtXG5cdFx0XHRcdFx0dGFiaW5kZXg9XCItMVwiXG5cdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLWxpc3QtYm94X19tZW51LWl0ZW1fX29wdGlvblwiPlxuXHRcdFx0XHRcdDxkaXZcblx0XHRcdFx0XHRcdCpuZ0lmPVwiIWxpc3RUcGwgJiYgdHlwZSA9PT0gJ211bHRpJ1wiXG5cdFx0XHRcdFx0XHRjbGFzcz1cImNkcy0tZm9ybS1pdGVtIGNkcy0tY2hlY2tib3gtd3JhcHBlclwiPlxuXHRcdFx0XHRcdFx0PGxhYmVsXG5cdFx0XHRcdFx0XHRcdFthdHRyLmRhdGEtY29udGFpbmVkLWNoZWNrYm94LXN0YXRlXT1cIml0ZW0uc2VsZWN0ZWRcIlxuXHRcdFx0XHRcdFx0XHRjbGFzcz1cImNkcy0tY2hlY2tib3gtbGFiZWxcIj5cblx0XHRcdFx0XHRcdFx0PGlucHV0XG5cdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJjZHMtLWNoZWNrYm94XCJcblx0XHRcdFx0XHRcdFx0XHR0eXBlPVwiY2hlY2tib3hcIlxuXHRcdFx0XHRcdFx0XHRcdFtjaGVja2VkXT1cIml0ZW0uc2VsZWN0ZWRcIlxuXHRcdFx0XHRcdFx0XHRcdFtkaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCJcblx0XHRcdFx0XHRcdFx0XHR0YWJpbmRleD1cIi0xXCI+XG5cdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiY2RzLS1jaGVja2JveC1hcHBlYXJhbmNlXCI+PC9zcGFuPlxuXHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cImNkcy0tY2hlY2tib3gtbGFiZWwtdGV4dFwiPnt7aXRlbS5jb250ZW50fX08L3NwYW4+XG5cdFx0XHRcdFx0XHQ8L2xhYmVsPlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCIhbGlzdFRwbCAmJiB0eXBlID09PSAnc2luZ2xlJ1wiPnt7aXRlbS5jb250ZW50fX08L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0XHQ8c3ZnXG5cdFx0XHRcdFx0XHQqbmdJZj1cIiFsaXN0VHBsICYmIHR5cGUgPT09ICdzaW5nbGUnXCJcblx0XHRcdFx0XHRcdGNkc0ljb249XCJjaGVja21hcmtcIlxuXHRcdFx0XHRcdFx0c2l6ZT1cIjE2XCJcblx0XHRcdFx0XHRcdGNsYXNzPVwiY2RzLS1saXN0LWJveF9fbWVudS1pdGVtX19zZWxlY3RlZC1pY29uXCI+XG5cdFx0XHRcdFx0PC9zdmc+XG5cdFx0XHRcdFx0PG5nLXRlbXBsYXRlXG5cdFx0XHRcdFx0XHQqbmdJZj1cImxpc3RUcGxcIlxuXHRcdFx0XHRcdFx0W25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntpdGVtOiBpdGVtfVwiXG5cdFx0XHRcdFx0XHRbbmdUZW1wbGF0ZU91dGxldF09XCJsaXN0VHBsXCI+XG5cdFx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L2xpPlxuXHRcdDwvdWw+YCxcblx0cHJvdmlkZXJzOiBbXG5cdFx0e1xuXHRcdFx0cHJvdmlkZTogQWJzdHJhY3REcm9wZG93blZpZXcsXG5cdFx0XHR1c2VFeGlzdGluZzogRHJvcGRvd25MaXN0XG5cdFx0fVxuXHRdXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duTGlzdCBpbXBsZW1lbnRzIEFic3RyYWN0RHJvcGRvd25WaWV3LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXHRzdGF0aWMgbGlzdENvdW50ID0gMDtcblx0QElucHV0KCkgYXJpYUxhYmVsID0gdGhpcy5pMThuLmdldCgpLkRST1BET1dOX0xJU1QuTEFCRUw7XG5cdC8qKlxuXHQgKiBUaGUgbGlzdCBpdGVtcyBiZWxvbmdpbmcgdG8gdGhlIGBEcm9wZG93bkxpc3RgLlxuXHQgKi9cblx0QElucHV0KCkgc2V0IGl0ZW1zKHZhbHVlOiBBcnJheTxMaXN0SXRlbT4gfCBPYnNlcnZhYmxlPEFycmF5PExpc3RJdGVtPj4pIHtcblx0XHRpZiAoaXNPYnNlcnZhYmxlKHZhbHVlKSkge1xuXHRcdFx0aWYgKHRoaXMuX2l0ZW1zU3Vic2NyaXB0aW9uKSB7XG5cdFx0XHRcdHRoaXMuX2l0ZW1zU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLl9pdGVtc1JlYWR5ID0gbmV3IE9ic2VydmFibGU8Ym9vbGVhbj4oKG9ic2VydmVyKSA9PiB7XG5cdFx0XHRcdHRoaXMuX2l0ZW1zU3Vic2NyaXB0aW9uID0gdmFsdWUuc3Vic2NyaWJlKHYgPT4ge1xuXHRcdFx0XHRcdHRoaXMudXBkYXRlTGlzdCh2KTtcblx0XHRcdFx0XHRvYnNlcnZlci5uZXh0KHRydWUpO1xuXHRcdFx0XHRcdG9ic2VydmVyLmNvbXBsZXRlKCk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0XHR0aGlzLm9uSXRlbXNSZWFkeShudWxsKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy51cGRhdGVMaXN0KHZhbHVlKTtcblx0XHR9XG5cdFx0dGhpcy5fb3JpZ2luYWxJdGVtcyA9IHZhbHVlO1xuXHR9XG5cblx0Z2V0IGl0ZW1zKCk6IEFycmF5PExpc3RJdGVtPiB8IE9ic2VydmFibGU8QXJyYXk8TGlzdEl0ZW0+PiB7XG5cdFx0cmV0dXJuIHRoaXMuX29yaWdpbmFsSXRlbXM7XG5cdH1cblx0LyoqXG5cdCAqIFRlbXBsYXRlIHRvIGJpbmQgdG8gaXRlbXMgaW4gdGhlIGBEcm9wZG93bkxpc3RgIChvcHRpb25hbCkuXG5cdCAqL1xuXHRASW5wdXQoKSBsaXN0VHBsOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+ID0gbnVsbDtcblx0LyoqXG5cdCAqIEV2ZW50IHRvIGVtaXQgc2VsZWN0aW9uIG9mIGEgbGlzdCBpdGVtIHdpdGhpbiB0aGUgYERyb3Bkb3duTGlzdGAuXG5cdCAqL1xuXHRAT3V0cHV0KCkgc2VsZWN0OiBFdmVudEVtaXR0ZXI8eyBpdGVtOiBMaXN0SXRlbSwgaXNVcGRhdGU/OiBib29sZWFuIH0gfCBMaXN0SXRlbVtdPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblx0LyoqXG5cdCAqIEV2ZW50IHRvIGVtaXQgc2Nyb2xsIGV2ZW50IG9mIGEgbGlzdCB3aXRoaW4gdGhlIGBEcm9wZG93bkxpc3RgLlxuXHQgKi9cblx0QE91dHB1dCgpIHNjcm9sbDogRXZlbnRFbWl0dGVyPFNjcm9sbEN1c3RvbUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblx0LyoqXG5cdCAqIEV2ZW50IHRvIHN1Z2dlc3QgYSBibHVyIG9uIHRoZSB2aWV3LlxuXHQgKiBFbWl0cyBfYWZ0ZXJfIHRoZSBmaXJzdC9sYXN0IGl0ZW0gaGFzIGJlZW4gZm9jdXNlZC5cblx0ICogZXguXG5cdCAqIEFycm93VXAgLT4gZm9jdXMgZmlyc3QgaXRlbVxuXHQgKiBBcnJvd1VwIC0+IGVtaXQgZXZlbnRcblx0ICpcblx0ICogV2hlbiB0aGlzIGV2ZW50IGZpcmVzIGZvY3VzIHNob3VsZCBiZSBwbGFjZWQgb24gc29tZSBlbGVtZW50IG91dHNpZGUgb2YgdGhlIGxpc3QgLSBibHVycmluZyB0aGUgbGlzdCBhcyBhIHJlc3VsdFxuXHQgKi9cblx0QE91dHB1dCgpIGJsdXJJbnRlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPFwidG9wXCIgfCBcImJvdHRvbVwiPigpO1xuXHQvKipcblx0ICogTWFpbnRhaW5zIGEgcmVmZXJlbmNlIHRvIHRoZSB2aWV3IERPTSBlbGVtZW50IGZvciB0aGUgdW5vcmRlcmVkIGxpc3Qgb2YgaXRlbXMgd2l0aGluIHRoZSBgRHJvcGRvd25MaXN0YC5cblx0ICovXG5cdEBWaWV3Q2hpbGQoXCJsaXN0XCIsIHsgc3RhdGljOiB0cnVlIH0pIGxpc3Q6IEVsZW1lbnRSZWY7XG5cdC8qKlxuXHQgKiBEZWZpbmVzIHdoZXRoZXIgb3Igbm90IHRoZSBgRHJvcGRvd25MaXN0YCBzdXBwb3J0cyBzZWxlY3RpbmcgbXVsdGlwbGUgaXRlbXMgYXMgb3Bwb3NlZCB0byBzaW5nbGVcblx0ICogaXRlbSBzZWxlY3Rpb24uXG5cdCAqL1xuXHRASW5wdXQoKSB0eXBlOiBcInNpbmdsZVwiIHwgXCJtdWx0aVwiID0gXCJzaW5nbGVcIjtcblxuXHQvKipcblx0ICogRGVmaW5lcyB3aGV0aGVyIHRvIHNob3cgdGl0bGUgYXR0cmlidXRlIG9yIG5vdFxuXHQgKi9cblx0QElucHV0KCkgc2hvd1RpdGxlcyA9IHRydWU7XG5cblx0LyoqXG5cdCAqIERlZmluZXMgdGhlIHJlbmRlcmluZyBzaXplIG9mIHRoZSBgRHJvcGRvd25MaXN0YCBpbnB1dCBjb21wb25lbnQuXG5cdCAqL1xuXHRwdWJsaWMgc2l6ZTogXCJzbVwiIHwgXCJtZFwiIHwgXCJsZ1wiID0gXCJtZFwiO1xuXHRwdWJsaWMgbGlzdElkID0gYGxpc3Rib3gtJHtEcm9wZG93bkxpc3QubGlzdENvdW50Kyt9YDtcblx0cHVibGljIGhpZ2hsaWdodGVkSXRlbSA9IG51bGw7XG5cdC8qKlxuXHQgKiBIb2xkcyB0aGUgbGlzdCBvZiBpdGVtcyB0aGF0IHdpbGwgYmUgZGlzcGxheWVkIGluIHRoZSBgRHJvcGRvd25MaXN0YC5cblx0ICogSXQgZGlmZmVycyBmcm9tIHRoZSB0aGUgY29tcGxldGUgc2V0IG9mIGl0ZW1zIHdoZW4gZmlsdGVyaW5nIGlzIHVzZWQgKGJ1dFxuXHQgKiBpdCBpcyBhbHdheXMgYSBzdWJzZXQgb2YgdGhlIHRvdGFsIGl0ZW1zIGluIGBEcm9wZG93bkxpc3RgKS5cblx0ICovXG5cdHB1YmxpYyBkaXNwbGF5SXRlbXM6IEFycmF5PExpc3RJdGVtPiA9IFtdO1xuXHQvKipcblx0ICogTWFpbnRhaW5zIHRoZSBpbmRleCBmb3IgdGhlIHNlbGVjdGVkIGl0ZW0gd2l0aGluIHRoZSBgRHJvcGRvd25MaXN0YC5cblx0ICovXG5cdHByb3RlY3RlZCBpbmRleCA9IC0xO1xuXHQvKipcblx0ICogQW4gYXJyYXkgaG9sZGluZyB0aGUgSFRNTCBsaXN0IGVsZW1lbnRzIGluIHRoZSB2aWV3LlxuXHQgKi9cblx0QFZpZXdDaGlsZHJlbihcImxpc3RJdGVtXCIpIHByb3RlY3RlZCBsaXN0RWxlbWVudExpc3Q6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcblx0LyoqXG5cdCAqIE9ic2VydmFibGUgYm91bmQgdG8ga2V5ZG93biBldmVudHMgdG8gY29udHJvbCBmaWx0ZXJpbmcuXG5cdCAqL1xuXHRwcm90ZWN0ZWQgZm9jdXNKdW1wO1xuXHQvKipcblx0ICogVHJhY2tzIHRoZSBjdXJyZW50IChpZiBhbnkpIHN1YnNjcmlwdGlvbiB0byB0aGUgaXRlbXMgb2JzZXJ2YWJsZSBzbyB3ZSBjYW4gY2xlYW4gdXAgd2hlbiB0aGUgaW5wdXQgaXMgdXBkYXRlZC5cblx0ICovXG5cdHByb3RlY3RlZCBfaXRlbXNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblx0LyoqXG5cdCAqIFVzZWQgdG8gcmV0YWluIHRoZSBvcmlnaW5hbCBpdGVtcyBwYXNzZWQgdG8gdGhlIHNldHRlci5cblx0ICovXG5cdHByb3RlY3RlZCBfb3JpZ2luYWxJdGVtczogQXJyYXk8TGlzdEl0ZW0+IHwgT2JzZXJ2YWJsZTxBcnJheTxMaXN0SXRlbT4+O1xuXHQvKipcblx0ICogVXNlZnVsIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBpdGVtcywgc2hvdWxkIGJlIGFjY2Vzc2VkIHZpYSBgZ2V0TGlzdEl0ZW1zYC5cblx0ICovXG5cdHByb3RlY3RlZCBfaXRlbXM6IEFycmF5PExpc3RJdGVtPiA9IFtdO1xuXHQvKipcblx0ICogVXNlZCB0byB3YWl0IGZvciBpdGVtcyBpbiBjYXNlIHRoZXkgYXJlIHBhc3NlZCB0aHJvdWdoIGFuIG9ic2VydmFibGUuXG5cdCAqL1xuXHRwcm90ZWN0ZWQgX2l0ZW1zUmVhZHk6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cblx0LyoqXG5cdCAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgYERyb3Bkb3duTGlzdGAuXG5cdCAqL1xuXHRjb25zdHJ1Y3RvcihwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIGkxOG46IEkxOG4sIHByb3RlY3RlZCBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmKSB7fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZXMgYXJyYXkgb2YgbGlzdCBpdGVtcyBhbmQgaW5kZXggb2YgdGhlIHNlbGVjdGVkIGl0ZW0gYWZ0ZXIgdmlldyBoYXMgcmVuZGVyZWQuXG5cdCAqIEFkZGl0aW9uYWxseSwgYW55IE9ic2VydmFibGVzIGZvciB0aGUgYERyb3Bkb3duTGlzdGAgYXJlIGluaXRpYWxpemVkLlxuXHQgKi9cblx0bmdBZnRlclZpZXdJbml0KCkge1xuXHRcdHRoaXMuaW5kZXggPSB0aGlzLmdldExpc3RJdGVtcygpLmZpbmRJbmRleChpdGVtID0+IGl0ZW0uc2VsZWN0ZWQpO1xuXHRcdHRoaXMuc2V0dXBGb2N1c09ic2VydmFibGUoKTtcblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdHRoaXMuZG9FbWl0U2VsZWN0KHRydWUpO1xuXHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJlbW92ZXMgYW55IE9ic2VydmFibGVzIG9uIGRlc3RydWN0aW9uIG9mIHRoZSBjb21wb25lbnQuXG5cdCAqL1xuXHRuZ09uRGVzdHJveSgpIHtcblx0XHRpZiAodGhpcy5mb2N1c0p1bXApIHtcblx0XHRcdHRoaXMuZm9jdXNKdW1wLnVuc3Vic2NyaWJlKCk7XG5cdFx0fVxuXHRcdGlmICh0aGlzLl9pdGVtc1N1YnNjcmlwdGlvbikge1xuXHRcdFx0dGhpcy5faXRlbXNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcblx0XHR9XG5cdH1cblxuXHRkb0VtaXRTZWxlY3QoaXNVcGRhdGUgPSB0cnVlKSB7XG5cdFx0aWYgKHRoaXMudHlwZSA9PT0gXCJzaW5nbGVcIikge1xuXHRcdFx0dGhpcy5zZWxlY3QuZW1pdCh7IGl0ZW06IHRoaXMuX2l0ZW1zLmZpbmQoaXRlbSA9PiBpdGVtLnNlbGVjdGVkKSwgaXNVcGRhdGU6IGlzVXBkYXRlIH0pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBhYnVzZSBqYXZhc2NyaXB0cyBvYmplY3QgbXV0YWJpbGl0eSB1bnRpbCB3ZSBjYW4gYnJlYWsgdGhlIEFQSSBhbmQgc3dpdGNoIHRvXG5cdFx0XHQvLyB7IGl0ZW1zOiBbXSwgaXNVcGRhdGU6IHRydWUgfVxuXHRcdFx0Y29uc3Qgc2VsZWN0ZWQgPSB0aGlzLmdldFNlbGVjdGVkKCkgfHwgW107XG5cdFx0XHRzZWxlY3RlZFtcImlzVXBkYXRlXCJdID0gaXNVcGRhdGU7XG5cdFx0XHR0aGlzLnNlbGVjdC5lbWl0KHNlbGVjdGVkKTtcblx0XHR9XG5cdH1cblxuXHRnZXRJdGVtSWQoaW5kZXg6IG51bWJlcikge1xuXHRcdHJldHVybiBgJHt0aGlzLmxpc3RJZH0tJHtpbmRleH1gO1xuXHR9XG5cblx0LyoqXG5cdCAqIFVwZGF0ZXMgdGhlIGRpc3BsYXllZCBsaXN0IG9mIGl0ZW1zIGFuZCB0aGVuIHJldHJpZXZlcyB0aGUgbW9zdCBjdXJyZW50IHByb3BlcnRpZXMgZm9yIHRoZSBgRHJvcGRvd25MaXN0YCBmcm9tIHRoZSBET00uXG5cdCAqL1xuXHR1cGRhdGVMaXN0KGl0ZW1zKSB7XG5cdFx0dGhpcy5faXRlbXMgPSBpdGVtcy5tYXAoaXRlbSA9PiBPYmplY3QuYXNzaWduKHt9LCBpdGVtKSk7XG5cdFx0dGhpcy5kaXNwbGF5SXRlbXMgPSB0aGlzLl9pdGVtcztcblx0XHR0aGlzLnVwZGF0ZUluZGV4KCk7XG5cdFx0dGhpcy5zZXR1cEZvY3VzT2JzZXJ2YWJsZSgpO1xuXHRcdHRoaXMuZG9FbWl0U2VsZWN0KCk7XG5cdH1cblxuXHQvKipcblx0ICogRmlsdGVycyB0aGUgaXRlbXMgYmVpbmcgZGlzcGxheWVkIGluIHRoZSBET00gbGlzdC5cblx0ICovXG5cdGZpbHRlckJ5KHF1ZXJ5ID0gXCJcIikge1xuXHRcdGlmIChxdWVyeSkge1xuXHRcdFx0dGhpcy5kaXNwbGF5SXRlbXMgPSB0aGlzLmdldExpc3RJdGVtcygpLmZpbHRlcihpdGVtID0+IGl0ZW0uY29udGVudC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHF1ZXJ5LnRvTG93ZXJDYXNlKCkpKTtcblx0XHRcdC8vIFJlc2V0IGluZGV4IGlmIGl0ZW1zIHdlcmUgZm91bmRcblx0XHRcdC8vIFByZXZlbnQgc2VsZWN0aW5nIGluZGV4IGluIGxpc3QgdGhhdCBhcmUgdW5kZWZpbmVkLlxuXHRcdFx0aWYgKHRoaXMuZGlzcGxheUl0ZW1zKSB7XG5cdFx0XHRcdHRoaXMuaW5kZXggPSAwO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLmRpc3BsYXlJdGVtcyA9IHRoaXMuZ2V0TGlzdEl0ZW1zKCk7XG5cdFx0fVxuXG5cdFx0dGhpcy51cGRhdGVJbmRleCgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEluaXRpYWxpemVzIChvciByZS1pbml0aWFsaXplcykgdGhlIE9ic2VydmFibGUgdGhhdCBoYW5kbGVzIHN3aXRjaGluZyBmb2N1cyB0byBhbiBlbGVtZW50IGJhc2VkIG9uXG5cdCAqIGtleSBpbnB1dCBtYXRjaGluZyB0aGUgZmlyc3QgbGV0dGVyIG9mIHRoZSBpdGVtIGluIHRoZSBsaXN0LlxuXHQgKi9cblx0c2V0dXBGb2N1c09ic2VydmFibGUoKSB7XG5cdFx0aWYgKCF0aGlzLmxpc3QpIHsgcmV0dXJuOyB9XG5cdFx0aWYgKHRoaXMuZm9jdXNKdW1wKSB7XG5cdFx0XHR0aGlzLmZvY3VzSnVtcC51bnN1YnNjcmliZSgpO1xuXHRcdH1cblx0XHRsZXQgZWxMaXN0ID0gQXJyYXkuZnJvbSh0aGlzLmxpc3QubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKFwibGlcIikpO1xuXHRcdHRoaXMuZm9jdXNKdW1wID0gd2F0Y2hGb2N1c0p1bXAodGhpcy5saXN0Lm5hdGl2ZUVsZW1lbnQsIGVsTGlzdClcblx0XHRcdC5zdWJzY3JpYmUoZWwgPT4ge1xuXHRcdFx0XHRlbC5mb2N1cygpO1xuXHRcdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgYExpc3RJdGVtYCB0aGF0IGlzIHN1YnNlcXVlbnQgdG8gdGhlIHNlbGVjdGVkIGl0ZW0gaW4gdGhlIGBEcm9wZG93bkxpc3RgLlxuXHQgKi9cblx0Z2V0TmV4dEl0ZW0oKTogTGlzdEl0ZW0ge1xuXHRcdGlmICh0aGlzLmluZGV4IDwgdGhpcy5kaXNwbGF5SXRlbXMubGVuZ3RoIC0gMSkge1xuXHRcdFx0dGhpcy5pbmRleCsrO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy5kaXNwbGF5SXRlbXNbdGhpcy5pbmRleF07XG5cdH1cblxuXHQvKipcblx0ICogUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHNlbGVjdGVkIGl0ZW0gaXMgbm90IHRoZSBsYXN0IGl0ZW0gaW4gdGhlIGBEcm9wZG93bkxpc3RgLlxuXHQgKi9cblx0aGFzTmV4dEVsZW1lbnQoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuaW5kZXggPCB0aGlzLmRpc3BsYXlJdGVtcy5sZW5ndGggLSAxICYmXG5cdFx0XHQoISh0aGlzLmluZGV4ID09PSB0aGlzLmRpc3BsYXlJdGVtcy5sZW5ndGggLSAyKSB8fCAhdGhpcy5kaXNwbGF5SXRlbXNbdGhpcy5pbmRleCArIDFdLmRpc2FibGVkKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBgSFRNTEVsZW1lbnRgIGZvciB0aGUgaXRlbSB0aGF0IGlzIHN1YnNlcXVlbnQgdG8gdGhlIHNlbGVjdGVkIGl0ZW0uXG5cdCAqL1xuXHRnZXROZXh0RWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG5cdFx0Ly8gT25seSByZXR1cm4gbmF0aXZlIGVsZW1lbnRzIGlmIHRoZXkgYXJlIHJlbmRlcmVkXG5cdFx0Y29uc3QgZWxlbUxpc3QgPSB0aGlzLmxpc3RFbGVtZW50TGlzdCA/IHRoaXMubGlzdEVsZW1lbnRMaXN0LnRvQXJyYXkoKSA6IFtdO1xuXHRcdGlmICghZWxlbUxpc3QubGVuZ3RoKSB7XG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHR9XG5cblx0XHQvKipcblx0XHQgKiBTdGFydCBjaGVja2luZyBmcm9tIG5leHQgaW5kZXhcblx0XHQgKiBDb250aW51ZSBsb29waW5nIHRocm91Z2ggdGhlIGxpc3QgdW50aWwgYSBub24gZGlzYWJlbGVkIGVsZW1lbnQgaXMgZm91bmQgb3Jcblx0XHQgKiBlbmQgb2YgbGlzdCBpcyByZWFjaGVkXG5cdFx0ICovXG5cdFx0Zm9yIChsZXQgaSA9IHRoaXMuaW5kZXggKyAxOyBpIDwgZWxlbUxpc3QubGVuZ3RoOyBpKyspIHtcblx0XHRcdC8vIElmIHRoZSB2YWx1ZXMgaW4gdGhlIGxpc3QgYXJlIG5vdCBkaXNhYmxlZFxuXHRcdFx0aWYgKCF0aGlzLmRpc3BsYXlJdGVtc1tpXS5kaXNhYmxlZCkge1xuXHRcdFx0XHR0aGlzLmluZGV4ID0gaTtcblx0XHRcdFx0cmV0dXJuIGVsZW1MaXN0W2ldLm5hdGl2ZUVsZW1lbnQ7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGVsZW1MaXN0W3RoaXMuaW5kZXhdPy5uYXRpdmVFbGVtZW50O1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIGBMaXN0SXRlbWAgdGhhdCBwcmVjZWRlcyB0aGUgc2VsZWN0ZWQgaXRlbSB3aXRoaW4gYERyb3Bkb3duTGlzdGAuXG5cdCAqL1xuXHRnZXRQcmV2SXRlbSgpOiBMaXN0SXRlbSB7XG5cdFx0aWYgKHRoaXMuaW5kZXggPiAwKSB7XG5cdFx0XHR0aGlzLmluZGV4LS07XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLmRpc3BsYXlJdGVtc1t0aGlzLmluZGV4XTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgc2VsZWN0ZWQgaXRlbSBpcyBub3QgdGhlIGZpcnN0IGluIHRoZSBsaXN0LlxuXHQgKi9cblx0aGFzUHJldkVsZW1lbnQoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuaW5kZXggPiAwICYmICghKHRoaXMuaW5kZXggPT09IDEpIHx8ICF0aGlzLmRpc3BsYXlJdGVtc1swXS5kaXNhYmxlZCk7XG5cdH1cblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgYEhUTUxFbGVtZW50YCBmb3IgdGhlIGl0ZW0gdGhhdCBwcmVjZWRlcyB0aGUgc2VsZWN0ZWQgaXRlbS5cblx0ICovXG5cdGdldFByZXZFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcblx0XHQvLyBPbmx5IHJldHVybiBuYXRpdmUgZWxlbWVudHMgaWYgdGhleSBhcmUgcmVuZGVyZWRcblx0XHRjb25zdCBlbGVtTGlzdCA9IHRoaXMubGlzdEVsZW1lbnRMaXN0ID8gdGhpcy5saXN0RWxlbWVudExpc3QudG9BcnJheSgpIDogW107XG5cdFx0aWYgKCFlbGVtTGlzdC5sZW5ndGgpIHtcblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH1cblxuXHRcdC8qKlxuXHRcdCAqIFN0YXJ0IGNoZWNraW5nIGZyb20gbmV4dCBpbmRleFxuXHRcdCAqIENvbnRpbnVlIGxvb3BpbmcgdGhyb3VnaCB0aGUgbGlzdCB1bnRpbCBhIG5vbiBkaXNhYmVsZWQgZWxlbWVudCBpcyBmb3VuZCBvclxuXHRcdCAqIGVuZCBvZiBsaXN0IGlzIHJlYWNoZWRcblx0XHQgKi9cblx0XHRmb3IgKGxldCBpID0gdGhpcy5pbmRleCAtIDE7IGkgPCB0aGlzLmluZGV4ICYmIGkgPj0gMDsgaS0tKSB7XG5cdFx0XHQvLyBJZiB0aGUgdmFsdWVzIGluIHRoZSBsaXN0IGFyZSBub3QgZGlzYWJsZWRcblx0XHRcdGlmICghdGhpcy5kaXNwbGF5SXRlbXNbaV0uZGlzYWJsZWQpIHtcblx0XHRcdFx0dGhpcy5pbmRleCA9IGk7XG5cdFx0XHRcdHJldHVybiBlbGVtTGlzdFtpXS5uYXRpdmVFbGVtZW50O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBlbGVtTGlzdFt0aGlzLmluZGV4XS5uYXRpdmVFbGVtZW50O1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIGBMaXN0SXRlbWAgdGhhdCBpcyBzZWxlY3RlZCB3aXRoaW4gYERyb3Bkb3duTGlzdGAuXG5cdCAqL1xuXHRnZXRDdXJyZW50SXRlbSgpOiBMaXN0SXRlbSB7XG5cdFx0aWYgKHRoaXMuaW5kZXggPCAwKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5kaXNwbGF5SXRlbXNbMF07XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLmRpc3BsYXlJdGVtc1t0aGlzLmluZGV4XTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBgSFRNTEVsZW1lbnRgIGZvciB0aGUgaXRlbSB0aGF0IGlzIHNlbGVjdGVkIHdpdGhpbiB0aGUgYERyb3Bkb3duTGlzdGAuXG5cdCAqL1xuXHRnZXRDdXJyZW50RWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG5cdFx0aWYgKHRoaXMuaW5kZXggPCAwKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5saXN0RWxlbWVudExpc3QuZmlyc3QubmF0aXZlRWxlbWVudDtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMubGlzdEVsZW1lbnRMaXN0LnRvQXJyYXkoKVt0aGlzLmluZGV4XS5uYXRpdmVFbGVtZW50O1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIGl0ZW1zIGFzIGFuIEFycmF5XG5cdCAqL1xuXHRnZXRMaXN0SXRlbXMoKTogQXJyYXk8TGlzdEl0ZW0+IHtcblx0XHRyZXR1cm4gdGhpcy5faXRlbXM7XG5cdH1cblxuXHQvKipcblx0ICogUmV0dXJucyBhIGxpc3QgY29udGFpbmluZyB0aGUgc2VsZWN0ZWQgaXRlbShzKSBpbiB0aGUgYERyb3Bkb3duTGlzdGAuXG5cdCAqL1xuXHRnZXRTZWxlY3RlZCgpOiBMaXN0SXRlbVtdIHtcblx0XHRsZXQgc2VsZWN0ZWQgPSB0aGlzLmdldExpc3RJdGVtcygpLmZpbHRlcihpdGVtID0+IGl0ZW0uc2VsZWN0ZWQpO1xuXHRcdGlmIChzZWxlY3RlZC5sZW5ndGggPT09IDApIHtcblx0XHRcdHJldHVybiBbXTtcblx0XHR9XG5cdFx0cmV0dXJuIHNlbGVjdGVkO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRyYW5zZm9ybXMgYXJyYXkgaW5wdXQgbGlzdCBvZiBpdGVtcyB0byB0aGUgY29ycmVjdCBzdGF0ZSBieSB1cGRhdGluZyB0aGUgc2VsZWN0ZWQgaXRlbShzKS5cblx0ICovXG5cdHByb3BhZ2F0ZVNlbGVjdGVkKHZhbHVlOiBBcnJheTxMaXN0SXRlbT4pOiB2b2lkIHtcblx0XHQvLyBpZiB3ZSBnZXQgYSBub24tYXJyYXksIGxvZyBvdXQgYW4gZXJyb3IgKHNpbmNlIGl0IGlzIG9uZSlcblx0XHRpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG5cdFx0XHRjb25zb2xlLmVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0ucHJvcGFnYXRlU2VsZWN0ZWQgZXhwZWN0cyBhbiBBcnJheTxMaXN0SXRlbT4sIGdvdCAke0pTT04uc3RyaW5naWZ5KHZhbHVlKX1gKTtcblx0XHR9XG5cdFx0dGhpcy5vbkl0ZW1zUmVhZHkoKCkgPT4ge1xuXHRcdFx0Ly8gbG9vcCB0aHJvdWdoIHRoZSBsaXN0IGl0ZW1zIGFuZCB1cGRhdGUgdGhlIGBzZWxlY3RlZGAgc3RhdGUgZm9yIG1hdGNoaW5nIGl0ZW1zIGluIGB2YWx1ZWBcblx0XHRcdGZvciAobGV0IG9sZEl0ZW0gb2YgdGhpcy5nZXRMaXN0SXRlbXMoKSkge1xuXHRcdFx0XHQvLyBjb3B5IHRoZSBpdGVtXG5cdFx0XHRcdGxldCB0ZW1wT2xkSXRlbTogc3RyaW5nIHwgTGlzdEl0ZW0gPSBPYmplY3QuYXNzaWduKHt9LCBvbGRJdGVtKTtcblx0XHRcdFx0Ly8gZGVsZXRlZCBzZWxlY3RlZCBiZWNhdXNlIGl0J3Mgd2hhdCB3ZSBfd2FudF8gdG8gY2hhbmdlXG5cdFx0XHRcdGRlbGV0ZSB0ZW1wT2xkSXRlbS5zZWxlY3RlZDtcblx0XHRcdFx0Ly8gc3RyaW5naWZ5IGZvciBjb21wYXJlXG5cdFx0XHRcdHRlbXBPbGRJdGVtID0gSlNPTi5zdHJpbmdpZnkodGVtcE9sZEl0ZW0pO1xuXHRcdFx0XHRmb3IgKGxldCBuZXdJdGVtIG9mIHZhbHVlKSB7XG5cdFx0XHRcdFx0Ly8gY29weSB0aGUgaXRlbVxuXHRcdFx0XHRcdGxldCB0ZW1wTmV3SXRlbTogc3RyaW5nIHwgTGlzdEl0ZW0gPSBPYmplY3QuYXNzaWduKHt9LCBuZXdJdGVtKTtcblx0XHRcdFx0XHQvLyBkZWxldGVkIHNlbGVjdGVkIGJlY2F1c2UgaXQncyB3aGF0IHdlIF93YW50XyB0byBjaGFuZ2Vcblx0XHRcdFx0XHRkZWxldGUgdGVtcE5ld0l0ZW0uc2VsZWN0ZWQ7XG5cdFx0XHRcdFx0Ly8gc3RyaW5naWZ5IGZvciBjb21wYXJlXG5cdFx0XHRcdFx0dGVtcE5ld0l0ZW0gPSBKU09OLnN0cmluZ2lmeSh0ZW1wTmV3SXRlbSk7XG5cdFx0XHRcdFx0Ly8gZG8gdGhlIGNvbXBhcmVcblx0XHRcdFx0XHRpZiAodGVtcE9sZEl0ZW0uaW5jbHVkZXModGVtcE5ld0l0ZW0pKSB7XG5cdFx0XHRcdFx0XHRvbGRJdGVtLnNlbGVjdGVkID0gbmV3SXRlbS5zZWxlY3RlZDtcblx0XHRcdFx0XHRcdC8vIGlmIHdlJ3ZlIGZvdW5kIGEgbWF0Y2hpbmcgaXRlbSwgd2UgY2FuIHN0b3AgbG9vcGluZ1xuXHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdG9sZEl0ZW0uc2VsZWN0ZWQgPSBmYWxzZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBJbml0aWFsaXplcyBmb2N1cyBpbiB0aGUgbGlzdCwgZWZmZWN0aXZlbHkgYSB3cmFwcGVyIGZvciBgZ2V0Q3VycmVudEVsZW1lbnQoKS5mb2N1cygpYFxuXHQgKi9cblx0aW5pdEZvY3VzKCkge1xuXHRcdGlmICh0aGlzLmluZGV4IDwgMCkge1xuXHRcdFx0dGhpcy51cGRhdGVJbmRleCgpO1xuXHRcdH1cblxuXHRcdHRoaXMubGlzdC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHR0aGlzLmhpZ2hsaWdodGVkSXRlbSA9IHRoaXMuZ2V0SXRlbUlkKHRoaXMuaW5kZXgpO1xuXHRcdH0pO1xuXHR9XG5cblx0dXBkYXRlSW5kZXgoKSB7XG5cdFx0Ly8gaW5pdGlhbGl6ZSBpbmRleCBvbiB0aGUgZmlyc3Qgc2VsZWN0ZWQgaXRlbSBvclxuXHRcdC8vIG9uIHRoZSBuZXh0IG5vbiBkaXNhYmxlZCBpdGVtIGlmIG5vIGl0ZW1zIGFyZSBzZWxlY3RlZFxuXHRcdC8vIGluIGNhc2UsIGlmIGFsbCBpdGVtcyBhcmUgZGlzYWJsZWQsIHRoZSBpbmRleCB2YWx1ZSB3aWxsIHJlbWFpbiBzYW1lXG5cdFx0Y29uc3Qgc2VsZWN0ZWQgPSB0aGlzLmdldFNlbGVjdGVkKCk7XG5cdFx0aWYgKHNlbGVjdGVkLmxlbmd0aCkge1xuXHRcdFx0dGhpcy5pbmRleCA9IHRoaXMuZGlzcGxheUl0ZW1zLmluZGV4T2Yoc2VsZWN0ZWRbMF0pO1xuXHRcdH0gZWxzZSBpZiAodGhpcy5oYXNOZXh0RWxlbWVudCgpKSB7XG5cdFx0XHR0aGlzLmdldE5leHRFbGVtZW50KCk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIE1hbmFnZXMgdGhlIGtleWJvYXJkIGFjY2Vzc2liaWxpdHkgZm9yIG5hdmlnYXRpb24gYW5kIHNlbGVjdGlvbiB3aXRoaW4gYSBgRHJvcGRvd25MaXN0YC5cblx0ICovXG5cdG5hdmlnYXRlTGlzdChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuXHRcdGlmIChldmVudC5rZXkgPT09IFwiRW50ZXJcIiB8fCBldmVudC5rZXkgPT09IFwiIFwiKSB7XG5cdFx0XHRpZiAodGhpcy5saXN0RWxlbWVudExpc3Quc29tZShvcHRpb24gPT4gb3B0aW9uLm5hdGl2ZUVsZW1lbnQgPT09IGV2ZW50LnRhcmdldCkpIHtcblx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRcdH1cblx0XHRcdGlmIChldmVudC5rZXkgPT09IFwiRW50ZXJcIikge1xuXHRcdFx0XHR0aGlzLmRvQ2xpY2soZXZlbnQsIHRoaXMuZ2V0Q3VycmVudEl0ZW0oKSk7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIGlmIChldmVudC5rZXkgPT09IFwiQXJyb3dEb3duXCIgfHwgZXZlbnQua2V5ID09PSBcIkFycm93VXBcIikge1xuXHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcblx0XHRcdGlmIChldmVudC5rZXkgPT09IFwiQXJyb3dEb3duXCIpIHtcblx0XHRcdFx0aWYgKHRoaXMuaGFzTmV4dEVsZW1lbnQoKSkge1xuXHRcdFx0XHRcdHRoaXMuZ2V0TmV4dEVsZW1lbnQoKT8uc2Nyb2xsSW50b1ZpZXcoeyBibG9jazogXCJlbmRcIiB9KTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0aGlzLmJsdXJJbnRlbnQuZW1pdChcImJvdHRvbVwiKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIGlmIChldmVudC5rZXkgPT09IFwiQXJyb3dVcFwiKSB7XG5cdFx0XHRcdGlmICh0aGlzLmhhc1ByZXZFbGVtZW50KCkpIHtcblx0XHRcdFx0XHR0aGlzLmdldFByZXZFbGVtZW50KCkuc2Nyb2xsSW50b1ZpZXcoeyAgYmxvY2s6IFwibmVhcmVzdFwiIH0pO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHRoaXMuYmx1ckludGVudC5lbWl0KFwidG9wXCIpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0dGhpcy5oaWdobGlnaHRlZEl0ZW0gPSB0aGlzLmdldEl0ZW1JZCh0aGlzLmluZGV4KTtcblx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBFbWl0cyB0aGUgc2VsZWN0ZWQgaXRlbSBvciBpdGVtcyBhZnRlciBhIG1vdXNlIGNsaWNrIGV2ZW50IGhhcyBvY2N1cnJlZC5cblx0ICovXG5cdGRvQ2xpY2soZXZlbnQsIGl0ZW0pIHtcblx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdGlmIChpdGVtICYmICFpdGVtLmRpc2FibGVkKSB7XG5cdFx0XHR0aGlzLmxpc3QubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuXHRcdFx0aWYgKHRoaXMudHlwZSA9PT0gXCJzaW5nbGVcIikge1xuXHRcdFx0XHRpdGVtLnNlbGVjdGVkID0gdHJ1ZTtcblx0XHRcdFx0Ly8gcmVzZXQgdGhlIHNlbGVjdGlvblxuXHRcdFx0XHRmb3IgKGxldCBvdGhlckl0ZW0gb2YgdGhpcy5nZXRMaXN0SXRlbXMoKSkge1xuXHRcdFx0XHRcdGlmIChpdGVtICE9PSBvdGhlckl0ZW0pIHsgb3RoZXJJdGVtLnNlbGVjdGVkID0gZmFsc2U7IH1cblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0aXRlbS5zZWxlY3RlZCA9ICFpdGVtLnNlbGVjdGVkO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5pbmRleCA9IHRoaXMuZGlzcGxheUl0ZW1zLmluZGV4T2YoaXRlbSk7XG5cdFx0XHR0aGlzLmhpZ2hsaWdodGVkSXRlbSA9IHRoaXMuZ2V0SXRlbUlkKHRoaXMuaW5kZXgpO1xuXHRcdFx0dGhpcy5kb0VtaXRTZWxlY3QoZmFsc2UpO1xuXHRcdFx0dGhpcy5hcHBSZWYudGljaygpO1xuXHRcdH1cblx0fVxuXG5cdG9uSXRlbUZvY3VzKGluZGV4KSB7XG5cdFx0Y29uc3QgZWxlbWVudCA9IHRoaXMubGlzdEVsZW1lbnRMaXN0LnRvQXJyYXkoKVtpbmRleF0ubmF0aXZlRWxlbWVudDtcblx0XHRlbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJjZHMtLWxpc3QtYm94X19tZW51LWl0ZW0tLWhpZ2hsaWdodGVkXCIpO1xuXHRcdGVsZW1lbnQudGFiSW5kZXggPSAwO1xuXHR9XG5cblx0b25JdGVtQmx1cihpbmRleCkge1xuXHRcdGNvbnN0IGVsZW1lbnQgPSB0aGlzLmxpc3RFbGVtZW50TGlzdC50b0FycmF5KClbaW5kZXhdLm5hdGl2ZUVsZW1lbnQ7XG5cdFx0ZWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwiY2RzLS1saXN0LWJveF9fbWVudS1pdGVtLS1oaWdobGlnaHRlZFwiKTtcblx0XHRlbGVtZW50LnRhYkluZGV4ID0gLTE7XG5cdH1cblxuXHQvKipcblx0ICogRW1pdHMgdGhlIHNjcm9sbCBldmVudCBvZiB0aGUgb3B0aW9ucyBsaXN0XG5cdCAqL1xuXHRlbWl0U2Nyb2xsKGV2ZW50KSB7XG5cdFx0Y29uc3QgYXRUb3A6IGJvb2xlYW4gPSBldmVudC5zcmNFbGVtZW50LnNjcm9sbFRvcCA9PT0gMDtcblx0XHRjb25zdCBhdEJvdHRvbTogYm9vbGVhbiA9IGV2ZW50LnNyY0VsZW1lbnQuc2Nyb2xsSGVpZ2h0IC0gZXZlbnQuc3JjRWxlbWVudC5zY3JvbGxUb3AgPT09IGV2ZW50LnNyY0VsZW1lbnQuY2xpZW50SGVpZ2h0O1xuXHRcdGNvbnN0IGN1c3RvbVNjcm9sbEV2ZW50ID0geyBhdFRvcCwgYXRCb3R0b20sIGV2ZW50IH07XG5cdFx0dGhpcy5zY3JvbGwuZW1pdChjdXN0b21TY3JvbGxFdmVudCk7XG5cdH1cblxuXHQvKipcblx0ICogU3Vic2NyaWJlIHRoZSBmdW5jdGlvbiBwYXNzZWQgdG8gYW4gaW50ZXJuYWwgb2JzZXJ2YWJsZSB0aGF0IHdpbGwgcmVzb2x2ZSBvbmNlIHRoZSBpdGVtcyBhcmUgcmVhZHlcblx0ICovXG5cdG9uSXRlbXNSZWFkeShzdWJjcmlwdGlvbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuXHRcdC8vIHRoaXMgc3Vic2NyaXB0aW9uIHdpbGwgYXV0byB1bnN1YnNjcmliZSBiZWNhdXNlIG9mIHRoZSBgZmlyc3QoKWAgcGlwZVxuXHRcdCh0aGlzLl9pdGVtc1JlYWR5IHx8IG9mKHRydWUpKS5waXBlKGZpcnN0KCkpLnN1YnNjcmliZShzdWJjcmlwdGlvbik7XG5cdH1cblxuXHRyZW9yZGVyU2VsZWN0ZWQobW92ZUZvY3VzID0gdHJ1ZSk6IHZvaWQge1xuXHRcdHRoaXMuZGlzcGxheUl0ZW1zID0gWy4uLnRoaXMuZ2V0U2VsZWN0ZWQoKSwgLi4udGhpcy5nZXRMaXN0SXRlbXMoKS5maWx0ZXIoaXRlbSA9PiAhaXRlbS5zZWxlY3RlZCldO1xuXHRcdGlmIChtb3ZlRm9jdXMpIHtcblx0XHRcdHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHR0aGlzLnVwZGF0ZUluZGV4KCk7XG5cdFx0XHRcdHRoaXMuaGlnaGxpZ2h0ZWRJdGVtID0gdGhpcy5nZXRJdGVtSWQodGhpcy5pbmRleCk7XG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cbn1cbiJdfQ==
|
|
@@ -36,12 +36,18 @@ export class Tooltip extends PopoverContainer {
|
|
|
36
36
|
this.dropShadow = false;
|
|
37
37
|
}
|
|
38
38
|
mouseenter(event) {
|
|
39
|
-
|
|
39
|
+
// If a mouseleave is triggered before the tooltip is displayed (before setTimeout of mouseenter completes)
|
|
40
|
+
// we trigger the mouseleave only avoiding having to unecessary show the tooltip
|
|
41
|
+
clearTimeout(this.timeoutId);
|
|
42
|
+
this.timeoutId = setTimeout(() => {
|
|
40
43
|
this.handleChange(true, event);
|
|
41
44
|
}, this.enterDelayMs);
|
|
42
45
|
}
|
|
43
46
|
mouseleave(event) {
|
|
44
|
-
|
|
47
|
+
// If a mouseleave is triggered before the tooltip is displayed (before setTimeout of mouseenter completes)
|
|
48
|
+
// we trigger the mouseleave only avoiding having to unecessary show the tooltip
|
|
49
|
+
clearTimeout(this.timeoutId);
|
|
50
|
+
this.timeoutId = setTimeout(() => {
|
|
45
51
|
this.handleChange(false, event);
|
|
46
52
|
}, this.leaveDelayMs);
|
|
47
53
|
}
|
|
@@ -155,4 +161,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
155
161
|
type: HostListener,
|
|
156
162
|
args: ["focusout", ["$event"]]
|
|
157
163
|
}] } });
|
|
158
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRU4sdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFHTCxXQUFXLEVBQ1gsU0FBUyxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7QUFFckU7Ozs7Ozs7O0dBUUc7QUF5QkgsTUFBTSxPQUFPLE9BQVEsU0FBUSxnQkFBZ0I7SUErQjVDLFlBQ1csVUFBc0IsRUFDdEIsTUFBYyxFQUNkLFFBQW1CLEVBQ25CLGlCQUFvQztRQUU5QyxLQUFLLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUw3QyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFoQ1osaUJBQVksR0FBRyxJQUFJLENBQUM7UUFFOUMsT0FBRSxHQUFHLFdBQVcsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7UUFDbEQ7O1dBRUc7UUFDTSxpQkFBWSxHQUFHLEdBQUcsQ0FBQztRQUM1Qjs7V0FFRztRQUNNLGlCQUFZLEdBQUcsR0FBRyxDQUFDO1FBQzVCOztXQUVHO1FBQ00sYUFBUSxHQUFHLEtBQUssQ0FBQztRQXFCekIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUdELFVBQVUsQ0FBQyxLQUFLO1FBQ2YsMkdBQTJHO1FBQzNHLGdGQUFnRjtRQUNoRixZQUFZLENBQUMs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Y2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRBZnRlckNvbnRlbnRDaGVja2VkLFxuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q2hhbmdlRGV0ZWN0b3JSZWYsXG5cdENvbXBvbmVudCxcblx0RWxlbWVudFJlZixcblx0SG9zdEJpbmRpbmcsXG5cdEhvc3RMaXN0ZW5lcixcblx0SW5wdXQsXG5cdE5nWm9uZSxcblx0UmVuZGVyZXIyLFxuXHRUZW1wbGF0ZVJlZixcblx0Vmlld0NoaWxkXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBQb3BvdmVyQ29udGFpbmVyIH0gZnJvbSBcImNhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXIvcG9wb3ZlclwiO1xuXG4vKipcbiAqIEdldCBzdGFydGVkIHdpdGggaW1wb3J0aW5nIHRoZSBtb2R1bGU6XG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgVG9vbHRpcE1vZHVsZSB9IGZyb20gJ2NhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXInO1xuICogYGBgXG4gKlxuICogW1NlZSBkZW1vXSguLi8uLi8/cGF0aD0vc3RvcnkvY29tcG9uZW50cy10b29sdGlwLS1iYXNpYylcbiAqL1xuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiBcImNkcy10b29sdGlwLCBpYm0tdG9vbHRpcFwiLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0dGVtcGxhdGU6IGBcblx0XHQ8c3BhbiAjY29udGVudFdyYXBwZXI+XG5cdFx0XHQ8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cdFx0PC9zcGFuPlxuXHRcdDxzcGFuXG5cdFx0XHQqbmdJZj1cImRlc2NyaXB0aW9uXCJcblx0XHRcdGNsYXNzPVwiY2RzLS1wb3BvdmVyXCJcblx0XHRcdFtpZF09XCJpZFwiXG5cdFx0XHRbYXR0ci5hcmlhLWhpZGRlbl09XCIhaXNPcGVuXCJcblx0XHRcdHJvbGU9XCJ0b29sdGlwXCI+XG5cdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiIWRpc2FibGVkXCI+XG5cdFx0XHRcdDxzcGFuIGNsYXNzPVwiY2RzLS1wb3BvdmVyLWNvbnRlbnQgY2RzLS10b29sdGlwLWNvbnRlbnRcIj5cblx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzVGVtcGxhdGUoZGVzY3JpcHRpb24pXCI+e3tkZXNjcmlwdGlvbn19PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdFx0PG5nLXRlbXBsYXRlICpuZ0lmPVwiaXNUZW1wbGF0ZShkZXNjcmlwdGlvbilcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJkZXNjcmlwdGlvblwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogdGVtcGxhdGVDb250ZXh0IH1cIj48L25nLXRlbXBsYXRlPlxuXHRcdFx0XHRcdDxzcGFuICpuZ0lmPVwiYXV0b0FsaWduXCIgY2xhc3M9XCJjZHMtLXBvcG92ZXItY2FyZXQgY2RzLS1wb3BvdmVyLS1hdXRvLWFsaWduXCI+PC9zcGFuPlxuXHRcdFx0XHQ8L3NwYW4+XG5cdFx0XHRcdDxzcGFuICpuZ0lmPVwiIWF1dG9BbGlnblwiIGNsYXNzPVwiY2RzLS1wb3BvdmVyLWNhcmV0XCI+PC9zcGFuPlxuXHRcdFx0PC9uZy1jb250YWluZXI+XG5cdFx0PC9zcGFuPlxuXHRgXG59KVxuZXhwb3J0IGNsYXNzIFRvb2x0aXAgZXh0ZW5kcyBQb3BvdmVyQ29udGFpbmVyIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50Q2hlY2tlZCB7XG5cdHN0YXRpYyB0b29sdGlwQ291bnQgPSAwO1xuXG5cdEBIb3N0QmluZGluZyhcImNsYXNzLmNkcy0tdG9vbHRpcFwiKSB0b29sdGlwQ2xhc3MgPSB0cnVlO1xuXG5cdEBJbnB1dCgpIGlkID0gYHRvb2x0aXAtJHtUb29sdGlwLnRvb2x0aXBDb3VudCsrfWA7XG5cdC8qKlxuXHQgKiBTZXQgZGVsYXkgYmVmb3JlIHRvb2x0aXAgaXMgc2hvd25cblx0ICovXG5cdEBJbnB1dCgpIGVudGVyRGVsYXlNcyA9IDEwMDtcblx0LyoqXG5cdCAqIFNldCBkZWxheSB3aGVuIHRvb2x0aXAgZGlzYXBwZWFyc1xuXHQgKi9cblx0QElucHV0KCkgbGVhdmVEZWxheU1zID0gMzAwO1xuXHQvKipcblx0ICogUHJldmVudCB0b29sdGlwIGZyb20gc2hvd2luZywgdXNlZCBieSBpY29uIGJ1dHRvblxuXHQgKi9cblx0QElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcblx0LyoqXG5cdCAqIFRoZSBzdHJpbmcgb3IgdGVtcGxhdGUgY29udGVudCB0byBiZSBleHBvc2VkIGJ5IHRoZSB0b29sdGlwLlxuXHQgKi9cblx0QElucHV0KCkgZGVzY3JpcHRpb246IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cdC8qKlxuXHQgKiBPcHRpb25hbCBkYXRhIGZvciB0ZW1wbGF0ZXMgcGFzc2VkIGFzIGltcGxpY2l0IGNvbnRleHRcblx0ICovXG5cdEBJbnB1dCgpIHRlbXBsYXRlQ29udGV4dDogYW55O1xuXG5cdEBWaWV3Q2hpbGQoXCJjb250ZW50V3JhcHBlclwiKSB3cmFwcGVyOiBFbGVtZW50UmVmPEhUTUxTcGFuRWxlbWVudD47XG5cblx0cHJpdmF0ZSB0aW1lb3V0SWQ6IGFueTsgLy8gaXQgc2hvdWxkIGJlIG51bWJlciwgYnV0IHNldFRpbWVvdXQgYmVsb3cgaXMgbWF0Y2hpbmcgdGhlIE5vZGVKcyB0eXBlIGluc3RlYWQgb2YgdGhlIEpTIHR5cGVcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRwcm90ZWN0ZWQgZWxlbWVudFJlZjogRWxlbWVudFJlZixcblx0XHRwcm90ZWN0ZWQgbmdab25lOiBOZ1pvbmUsXG5cdFx0cHJvdGVjdGVkIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG5cdFx0cHJvdGVjdGVkIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuXHQpIHtcblx0XHRzdXBlcihlbGVtZW50UmVmLCBuZ1pvbmUsIHJlbmRlcmVyLCBjaGFuZ2VEZXRlY3RvclJlZik7XG5cdFx0dGhpcy5oaWdoQ29udHJhc3QgPSB0cnVlO1xuXHRcdHRoaXMuZHJvcFNoYWRvdyA9IGZhbHNlO1xuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcihcIm1vdXNlZW50ZXJcIiwgW1wiJGV2ZW50XCJdKVxuXHRtb3VzZWVudGVyKGV2ZW50KSB7XG5cdFx0Ly8gSWYgYSBtb3VzZWxlYXZlIGlzIHRyaWdnZXJlZCBiZWZvcmUgdGhlIHRvb2x0aXAgaXMgZGlzcGxheWVkIChiZWZvcmUgc2V0VGltZW91dCBvZiBtb3VzZWVudGVyIGNvbXBsZXRlcylcblx0XHQvLyB3ZSB0cmlnZ2VyIHRoZSBtb3VzZWxlYXZlIG9ubHkgYXZvaWRpbmcgaGF2aW5nIHRvIHVuZWNlc3Nhcnkgc2hvdyB0aGUgdG9vbHRpcFxuXHRcdGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRJZCk7XG5cdFx0dGhpcy50aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdHRoaXMuaGFuZGxlQ2hhbmdlKHRydWUsIGV2ZW50KTtcblx0XHR9LCB0aGlzLmVudGVyRGVsYXlNcyk7XG5cdH1cblxuXHRASG9zdExpc3RlbmVyKFwibW91c2VsZWF2ZVwiLCBbXCIkZXZlbnRcIl0pXG5cdG1vdXNlbGVhdmUoZXZlbnQpIHtcblx0XHQvLyBJZiBhIG1vdXNlbGVhdmUgaXMgdHJpZ2dlcmVkIGJlZm9yZSB0aGUgdG9vbHRpcCBpcyBkaXNwbGF5ZWQgKGJlZm9yZSBzZXRUaW1lb3V0IG9mIG1vdXNlZW50ZXIgY29tcGxldGVzKVxuXHRcdC8vIHdlIHRyaWdnZXIgdGhlIG1vdXNlbGVhdmUgb25seSBhdm9pZGluZyBoYXZpbmcgdG8gdW5lY2Vzc2FyeSBzaG93IHRoZSB0b29sdGlwXG5cdFx0Y2xlYXJUaW1lb3V0KHRoaXMudGltZW91dElkKTtcblx0XHR0aGlzLnRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0dGhpcy5oYW5kbGVDaGFuZ2UoZmFsc2UsIGV2ZW50KTtcblx0XHR9LCB0aGlzLmxlYXZlRGVsYXlNcyk7XG5cdH1cblxuXHRASG9zdExpc3RlbmVyKFwia2V5dXBcIiwgW1wiJGV2ZW50XCJdKVxuXHRob3N0a2V5cyhldmVudDogS2V5Ym9hcmRFdmVudCkge1xuXHRcdGlmIChvcGVuICYmIGV2ZW50LmtleSA9PT0gXCJFc2NhcGVcIikge1xuXHRcdFx0ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdFx0XHR0aGlzLmhhbmRsZUNoYW5nZShmYWxzZSwgZXZlbnQpO1xuXHRcdH1cblx0fVxuXG5cdC8vIFdlIGFyZSBub3QgZm9jdXNpbmcgb24gZW50aXJlIHBvcG92ZXIsIG9ubHkgdGhlIHRyaWdnZXJcblx0QEhvc3RMaXN0ZW5lcihcImZvY3VzaW5cIiwgW1wiJGV2ZW50XCJdKVxuXHRoYW5kbGVGb2N1cyhldmVudDogRXZlbnQpIHtcblx0XHR0aGlzLmhhbmRsZUNoYW5nZSh0cnVlLCBldmVudCk7XG5cdH1cblxuXHRASG9zdExpc3RlbmVyKFwiZm9jdXNvdXRcIiwgW1wiJGV2ZW50XCJdKVxuXHRoYW5kbGVGb2N1c091dChldmVudDogRXZlbnQpIHtcblx0XHR0aGlzLmhhbmRsZUNoYW5nZShmYWxzZSwgZXZlbnQpO1xuXHR9XG5cblx0aXNUZW1wbGF0ZSh2YWx1ZSkge1xuXHRcdHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmO1xuXHR9XG5cblx0LyoqXG5cdCAqIENoZWNrIGZvciBhbnkgY2hhbmdlcyBpbiB0aGUgcHJvamVjdGVkIGNvbnRlbnQgJiBhcHBseSBhY2Nlc3NpYmlsaXR5IGF0dHJpYnV0ZSBpZiBuZWVkZWRcblx0ICovXG5cdG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpIHtcblx0XHRpZiAodGhpcy53cmFwcGVyKSB7XG5cdFx0XHRjb25zdCBidXR0b25FbGVtZW50ID0gdGhpcy53cmFwcGVyLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcImJ1dHRvblwiKTtcblx0XHRcdGlmIChidXR0b25FbGVtZW50ICYmICFidXR0b25FbGVtZW50LmdldEF0dHJpYnV0ZShcImFyaWEtbGFiZWxsZWRieVwiKSkge1xuXHRcdFx0XHRidXR0b25FbGVtZW50LnNldEF0dHJpYnV0ZShcImFyaWEtbGFiZWxsZWRieVwiLCB0aGlzLmlkKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cbiJdfQ==
|
|
@@ -1377,6 +1377,7 @@ class DropdownList {
|
|
|
1377
1377
|
* Returns the `HTMLElement` for the item that is subsequent to the selected item.
|
|
1378
1378
|
*/
|
|
1379
1379
|
getNextElement() {
|
|
1380
|
+
var _a;
|
|
1380
1381
|
// Only return native elements if they are rendered
|
|
1381
1382
|
const elemList = this.listElementList ? this.listElementList.toArray() : [];
|
|
1382
1383
|
if (!elemList.length) {
|
|
@@ -1394,7 +1395,7 @@ class DropdownList {
|
|
|
1394
1395
|
return elemList[i].nativeElement;
|
|
1395
1396
|
}
|
|
1396
1397
|
}
|
|
1397
|
-
return elemList[this.index].nativeElement;
|
|
1398
|
+
return (_a = elemList[this.index]) === null || _a === void 0 ? void 0 : _a.nativeElement;
|
|
1398
1399
|
}
|
|
1399
1400
|
/**
|
|
1400
1401
|
* Returns the `ListItem` that precedes the selected item within `DropdownList`.
|
|
@@ -1520,6 +1521,7 @@ class DropdownList {
|
|
|
1520
1521
|
updateIndex() {
|
|
1521
1522
|
// initialize index on the first selected item or
|
|
1522
1523
|
// on the next non disabled item if no items are selected
|
|
1524
|
+
// in case, if all items are disabled, the index value will remain same
|
|
1523
1525
|
const selected = this.getSelected();
|
|
1524
1526
|
if (selected.length) {
|
|
1525
1527
|
this.index = this.displayItems.indexOf(selected[0]);
|
|
@@ -1532,6 +1534,7 @@ class DropdownList {
|
|
|
1532
1534
|
* Manages the keyboard accessibility for navigation and selection within a `DropdownList`.
|
|
1533
1535
|
*/
|
|
1534
1536
|
navigateList(event) {
|
|
1537
|
+
var _a;
|
|
1535
1538
|
if (event.key === "Enter" || event.key === " ") {
|
|
1536
1539
|
if (this.listElementList.some(option => option.nativeElement === event.target)) {
|
|
1537
1540
|
event.preventDefault();
|
|
@@ -1544,7 +1547,7 @@ class DropdownList {
|
|
|
1544
1547
|
event.preventDefault();
|
|
1545
1548
|
if (event.key === "ArrowDown") {
|
|
1546
1549
|
if (this.hasNextElement()) {
|
|
1547
|
-
this.getNextElement().scrollIntoView({ block: "end" });
|
|
1550
|
+
(_a = this.getNextElement()) === null || _a === void 0 ? void 0 : _a.scrollIntoView({ block: "end" });
|
|
1548
1551
|
}
|
|
1549
1552
|
else {
|
|
1550
1553
|
this.blurIntent.emit("bottom");
|