@ms-cloudpack/overlay 0.17.32 → 0.17.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/dist/browser-esm/694.chunk.js +2 -0
  2. package/dist/browser-esm/694.chunk.js.map +1 -0
  3. package/dist/browser-esm/782.chunk.js +2 -0
  4. package/dist/browser-esm/782.chunk.js.map +1 -0
  5. package/dist/browser-esm/924.chunk.js +2 -0
  6. package/dist/browser-esm/924.chunk.js.map +1 -0
  7. package/dist/browser-esm/980.chunk.js +2 -0
  8. package/dist/browser-esm/980.chunk.js.map +1 -0
  9. package/dist/browser-esm/lib/constants.js +2 -7
  10. package/dist/browser-esm/lib/constants.js.map +1 -7
  11. package/dist/browser-esm/lib/index.js +3 -453
  12. package/dist/browser-esm/lib/index.js.LICENSE.txt +39 -0
  13. package/dist/browser-esm/lib/index.js.map +1 -7
  14. package/dist/browser-esm/runtime.js +2 -0
  15. package/dist/browser-esm/runtime.js.map +1 -0
  16. package/lib/hooks/usePageLoadTimeReporter.d.ts.map +1 -1
  17. package/lib/hooks/usePageLoadTimeReporter.js +6 -1
  18. package/lib/hooks/usePageLoadTimeReporter.js.map +1 -1
  19. package/lib/index.js +4 -3
  20. package/lib/index.js.map +1 -1
  21. package/package.json +13 -14
  22. package/dist/browser-esm/chunks/js/ErrorDialog-5IGGA35U.js +0 -74
  23. package/dist/browser-esm/chunks/js/ErrorDialog-5IGGA35U.js.map +0 -7
  24. package/dist/browser-esm/chunks/js/StatusDialog-7Q5HGOOM.js +0 -316
  25. package/dist/browser-esm/chunks/js/StatusDialog-7Q5HGOOM.js.map +0 -7
  26. package/dist/browser-esm/chunks/js/chunk-7KHMDJ6G.js +0 -63
  27. package/dist/browser-esm/chunks/js/chunk-7KHMDJ6G.js.map +0 -7
  28. package/dist/browser-esm/chunks/js/chunk-GBPQMJW6.js +0 -24
  29. package/dist/browser-esm/chunks/js/chunk-GBPQMJW6.js.map +0 -7
  30. package/dist/browser-esm/chunks/js/chunk-XOJFP5X6.js +0 -416
  31. package/dist/browser-esm/chunks/js/chunk-XOJFP5X6.js.map +0 -7
  32. package/dist/browser-esm/ori-input.json +0 -57
  33. package/dist/browser-esm/ori-output.json +0 -1021
  34. package/dist/browser-esm/result.json +0 -93
@@ -0,0 +1,2 @@
1
+ var e,r,t,o,n={},f={};function i(e){var r=f[e];if(void 0!==r)return r.exports;var t=f[e]={id:e,exports:{}};return n[e](t,t.exports,i),t.exports}i.m=n,i.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return i.d(r,{a:r}),r},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,i.t=function(t,o){if(1&o&&(t=this(t)),8&o)return t;if("object"==typeof t&&t){if(4&o&&t.__esModule)return t;if(16&o&&"function"==typeof t.then)return t}var n=Object.create(null);i.r(n);var f={};e=e||[null,r({}),r([]),r(r)];for(var u=2&o&&t;"object"==typeof u&&!~e.indexOf(u);u=r(u))Object.getOwnPropertyNames(u).forEach((e=>f[e]=()=>t[e]));return f.default=()=>t,i.d(n,f),n},i.d=(e,r)=>{for(var t in r)i.o(r,t)&&!i.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((r,t)=>(i.f[t](e,r),r)),[])),i.u=e=>e+".chunk.js",i.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};export default i;t={121:0},o=e=>{var r,o,{ids:n,modules:f,runtime:u}=e,a=0;for(r in f)i.o(f,r)&&(i.m[r]=f[r]);for(u&&u(i);a<n.length;a++)o=n[a],i.o(t,o)&&t[o]&&t[o][0](),t[n[a]]=0},i.f.j=(e,r)=>{var n=i.o(t,e)?t[e]:void 0;if(0!==n)if(n)r.push(n[1]);else if(121!=e){var f=import("./"+i.u(e)).then(o,(r=>{throw 0!==t[e]&&(t[e]=void 0),r}));f=Promise.race([f,new Promise((r=>n=t[e]=[r]))]),r.push(n[1]=f)}else t[e]=0},i.C=o,i.nc=void 0;
2
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","mappings":"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","sources":["webpack://@ms-cloudpack/overlay/webpack/runtime/create fake namespace object","webpack://@ms-cloudpack/overlay/webpack/runtime/import chunk loading","webpack://@ms-cloudpack/overlay/webpack/bootstrap","webpack://@ms-cloudpack/overlay/webpack/runtime/compat get default export","webpack://@ms-cloudpack/overlay/webpack/runtime/define property getters","webpack://@ms-cloudpack/overlay/webpack/runtime/ensure chunk","webpack://@ms-cloudpack/overlay/webpack/runtime/get javascript chunk filename","webpack://@ms-cloudpack/overlay/webpack/runtime/hasOwnProperty shorthand","webpack://@ms-cloudpack/overlay/webpack/runtime/make namespace object","webpack://@ms-cloudpack/overlay/webpack/runtime/export webpack runtime","webpack://@ms-cloudpack/overlay/webpack/runtime/nonce"],"sourcesContent":["var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t121: 0\n};\n\nvar installChunk = (data) => {\n\tvar {ids, modules, runtime} = data;\n\t// add \"modules\" to the modules object,\n\t// then flag all \"ids\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tfor(moduleId in modules) {\n\t\tif(__webpack_require__.o(modules, moduleId)) {\n\t\t\t__webpack_require__.m[moduleId] = modules[moduleId];\n\t\t}\n\t}\n\tif(runtime) runtime(__webpack_require__);\n\tfor(;i < ids.length; i++) {\n\t\tchunkId = ids[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[ids[i]] = 0;\n\t}\n\n}\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// import() chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[1]);\n\t\t\t} else {\n\t\t\t\tif(121 != chunkId) {\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = import(\"./\" + __webpack_require__.u(chunkId)).then(installChunk, (e) => {\n\t\t\t\t\t\tif(installedChunks[chunkId] !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t});\n\t\t\t\t\tvar promise = Promise.race([promise, new Promise((resolve) => (installedChunkData = installedChunks[chunkId] = [resolve]))])\n\t\t\t\t\tpromises.push(installedChunkData[1] = promise);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n__webpack_require__.C = installChunk;\n\n// no on chunks loaded","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".chunk.js\";\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export default __webpack_require__;","__webpack_require__.nc = undefined;"],"names":["leafPrototypes","getProto","installedChunks","installChunk","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","id","__webpack_modules__","m","n","getter","__esModule","d","a","Object","getPrototypeOf","obj","t","value","mode","this","then","ns","create","r","def","current","indexOf","getOwnPropertyNames","forEach","key","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","keys","reduce","promises","u","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","data","ids","modules","runtime","i","length","j","installedChunkData","push","promise","import","race","resolve","C","nc"],"sourceRoot":""}
@@ -1 +1 @@
1
- {"version":3,"file":"usePageLoadTimeReporter.d.ts","sourceRoot":"","sources":["../../src/hooks/usePageLoadTimeReporter.ts"],"names":[],"mappings":"AAGA,wBAAgB,uBAAuB,uBA6BtC"}
1
+ {"version":3,"file":"usePageLoadTimeReporter.d.ts","sourceRoot":"","sources":["../../src/hooks/usePageLoadTimeReporter.ts"],"names":[],"mappings":"AAGA,wBAAgB,uBAAuB,uBAkCtC"}
@@ -19,7 +19,12 @@ export function usePageLoadTimeReporter() {
19
19
  throw new Error('getBrowserCacheRatio not found on window.__cloudpack');
20
20
  }
21
21
  // Page is loaded, the browser cache ratio can be reported
22
- await cloudpack.reportMetric.mutate({ metric: 'BROWSER_CACHE_RATIO', value: getBrowserCacheRatio() });
22
+ const browserCache = getBrowserCacheRatio();
23
+ await cloudpack.reportMetric.mutate({
24
+ metric: 'BROWSER_CACHE_RATIO',
25
+ value: browserCache.ratio,
26
+ additionalProperties: { hitCount: browserCache.hit, totalCount: browserCache.total },
27
+ });
23
28
  }
24
29
  void reportPageLoadTime();
25
30
  }, [cloudpack]);
@@ -1 +1 @@
1
- {"version":3,"file":"usePageLoadTimeReporter.js","sourceRoot":"","sources":["../../src/hooks/usePageLoadTimeReporter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,sDAAsD,CAAC;AAEpF,MAAM,UAAU,uBAAuB;IACrC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAU,CAAC;IACjE,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IAEjC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,KAAK,UAAU,kBAAkB;YAC/B,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACnD,CAAC;YACD,MAAM,EAAE,eAAe,EAAE,oBAAoB,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC;YAErE,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACrE,CAAC;YACD,MAAM,eAAe,GAAG,MAAM,eAAe,EAAE,CAAC;YAChD,eAAe,CAAC,eAAe,CAAC,CAAC;YACjC,MAAM,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;YAE1F,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;YAC1E,CAAC;YACD,0DAA0D;YAC1D,MAAM,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC;QACxG,CAAC;QAED,KAAK,kBAAkB,EAAE,CAAC;IAC5B,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,OAAO,YAAY,CAAC;AACtB,CAAC","sourcesContent":["import React from 'react';\nimport { useCloudpack } from '../components/CloudpackProvider/CloudpackProvider.js';\n\nexport function usePageLoadTimeReporter() {\n const [pageLoadTime, setPageLoadTime] = React.useState<number>();\n const cloudpack = useCloudpack();\n\n React.useEffect(() => {\n async function reportPageLoadTime() {\n if (!window.__cloudpack) {\n throw new Error('Cloudpack not found on window');\n }\n const { getPageLoadTime, getBrowserCacheRatio } = window.__cloudpack;\n\n if (!getPageLoadTime) {\n throw new Error('getPageLoadTime not found on window.__cloudpack');\n }\n const newPageLoadTime = await getPageLoadTime();\n setPageLoadTime(newPageLoadTime);\n await cloudpack.reportMetric.mutate({ metric: 'PAGE_LOAD_TIME', value: newPageLoadTime });\n\n if (!getBrowserCacheRatio) {\n throw new Error('getBrowserCacheRatio not found on window.__cloudpack');\n }\n // Page is loaded, the browser cache ratio can be reported\n await cloudpack.reportMetric.mutate({ metric: 'BROWSER_CACHE_RATIO', value: getBrowserCacheRatio() });\n }\n\n void reportPageLoadTime();\n }, [cloudpack]);\n\n return pageLoadTime;\n}\n"]}
1
+ {"version":3,"file":"usePageLoadTimeReporter.js","sourceRoot":"","sources":["../../src/hooks/usePageLoadTimeReporter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,sDAAsD,CAAC;AAEpF,MAAM,UAAU,uBAAuB;IACrC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAU,CAAC;IACjE,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IAEjC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,KAAK,UAAU,kBAAkB;YAC/B,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACnD,CAAC;YACD,MAAM,EAAE,eAAe,EAAE,oBAAoB,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC;YAErE,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACrE,CAAC;YACD,MAAM,eAAe,GAAG,MAAM,eAAe,EAAE,CAAC;YAChD,eAAe,CAAC,eAAe,CAAC,CAAC;YACjC,MAAM,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;YAE1F,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;YAC1E,CAAC;YACD,0DAA0D;YAC1D,MAAM,YAAY,GAAG,oBAAoB,EAAE,CAAC;YAC5C,MAAM,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC;gBAClC,MAAM,EAAE,qBAAqB;gBAC7B,KAAK,EAAE,YAAY,CAAC,KAAK;gBACzB,oBAAoB,EAAE,EAAE,QAAQ,EAAE,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,YAAY,CAAC,KAAK,EAAE;aACrF,CAAC,CAAC;QACL,CAAC;QAED,KAAK,kBAAkB,EAAE,CAAC;IAC5B,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,OAAO,YAAY,CAAC;AACtB,CAAC","sourcesContent":["import React from 'react';\nimport { useCloudpack } from '../components/CloudpackProvider/CloudpackProvider.js';\n\nexport function usePageLoadTimeReporter() {\n const [pageLoadTime, setPageLoadTime] = React.useState<number>();\n const cloudpack = useCloudpack();\n\n React.useEffect(() => {\n async function reportPageLoadTime() {\n if (!window.__cloudpack) {\n throw new Error('Cloudpack not found on window');\n }\n const { getPageLoadTime, getBrowserCacheRatio } = window.__cloudpack;\n\n if (!getPageLoadTime) {\n throw new Error('getPageLoadTime not found on window.__cloudpack');\n }\n const newPageLoadTime = await getPageLoadTime();\n setPageLoadTime(newPageLoadTime);\n await cloudpack.reportMetric.mutate({ metric: 'PAGE_LOAD_TIME', value: newPageLoadTime });\n\n if (!getBrowserCacheRatio) {\n throw new Error('getBrowserCacheRatio not found on window.__cloudpack');\n }\n // Page is loaded, the browser cache ratio can be reported\n const browserCache = getBrowserCacheRatio();\n await cloudpack.reportMetric.mutate({\n metric: 'BROWSER_CACHE_RATIO',\n value: browserCache.ratio,\n additionalProperties: { hitCount: browserCache.hit, totalCount: browserCache.total },\n });\n }\n\n void reportPageLoadTime();\n }, [cloudpack]);\n\n return pageLoadTime;\n}\n"]}
package/lib/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import ReactDOM from 'react-dom';
2
+ import { createRoot } from 'react-dom/client';
3
3
  import { CloudpackProvider } from './components/CloudpackProvider/CloudpackProvider.js';
4
4
  import { StatusOverlay } from './components/StatusOverlay/StatusOverlay.js';
5
5
  import { ThemeProvider } from './components/ThemeProvider/ThemeProvider.js';
@@ -27,9 +27,10 @@ async function start() {
27
27
  });
28
28
  const rootDiv = document.createElement('div');
29
29
  rootDiv.id = elementIds.root;
30
- ReactDOM.render(React.createElement(ThemeProvider, null,
30
+ const root = createRoot(rootDiv);
31
+ root.render(React.createElement(ThemeProvider, null,
31
32
  React.createElement(CloudpackProvider, { client: client },
32
- React.createElement(StatusOverlay, null))), rootDiv);
33
+ React.createElement(StatusOverlay, null))));
33
34
  document.body.appendChild(rootDiv);
34
35
  }
35
36
  void start();
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qDAAqD,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAE5F,KAAK,UAAU,KAAK;IAClB,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC;IAElD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,kBAAkB,CAAC;IAElE,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IAE5D,IAAI,SAAS,KAAK,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,iBAAiB,EAAE;QAChD,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACf,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,eAAe,EAAE,CAAC;gBACnC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC9C,OAAO,CAAC,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC;IAE7B,QAAQ,CAAC,MAAM,CACb,oBAAC,aAAa;QACZ,oBAAC,iBAAiB,IAAC,MAAM,EAAE,MAAM;YAC/B,oBAAC,aAAa,OAAG,CACC,CACN,EAChB,OAAO,CACR,CAAC;IAEF,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC;AAED,KAAK,KAAK,EAAE,CAAC","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { CloudpackProvider } from './components/CloudpackProvider/CloudpackProvider.js';\nimport { StatusOverlay } from './components/StatusOverlay/StatusOverlay.js';\nimport { ThemeProvider } from './components/ThemeProvider/ThemeProvider.js';\nimport { elementIds } from './constants.js';\nimport { createCloudpackClient, reloadCountSource } from '@ms-cloudpack/api-server/browser';\n\nasync function start() {\n if (!window.__cloudpack) {\n throw new Error('Cloudpack not found on window');\n }\n\n const { pageSessionContext } = window.__cloudpack;\n\n if (!pageSessionContext) {\n throw new Error('Session context not found on window.__cloudpack');\n }\n\n const { apiUrl, currentSequence, sessionId } = pageSessionContext;\n\n const client = await createCloudpackClient({ url: apiUrl });\n\n if (sessionId === (await client.getSessionId.query())) {\n console.log('[Cloudpack] socket opened');\n }\n\n client.onDataChanged.subscribe(reloadCountSource, {\n onData: (data) => {\n if (Number(data) > currentSequence) {\n window.location.reload();\n }\n },\n });\n\n const rootDiv = document.createElement('div');\n rootDiv.id = elementIds.root;\n\n ReactDOM.render(\n <ThemeProvider>\n <CloudpackProvider client={client}>\n <StatusOverlay />\n </CloudpackProvider>\n </ThemeProvider>,\n rootDiv,\n );\n\n document.body.appendChild(rootDiv);\n}\n\nvoid start();\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qDAAqD,CAAC;AACxF,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAE5F,KAAK,UAAU,KAAK;IAClB,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC;IAElD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,kBAAkB,CAAC;IAElE,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IAE5D,IAAI,SAAS,KAAK,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,iBAAiB,EAAE;QAChD,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACf,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,eAAe,EAAE,CAAC;gBACnC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC9C,OAAO,CAAC,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC;IAC7B,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAEjC,IAAI,CAAC,MAAM,CACT,oBAAC,aAAa;QACZ,oBAAC,iBAAiB,IAAC,MAAM,EAAE,MAAM;YAC/B,oBAAC,aAAa,OAAG,CACC,CACN,CACjB,CAAC;IAEF,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC;AAED,KAAK,KAAK,EAAE,CAAC","sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { CloudpackProvider } from './components/CloudpackProvider/CloudpackProvider.js';\nimport { StatusOverlay } from './components/StatusOverlay/StatusOverlay.js';\nimport { ThemeProvider } from './components/ThemeProvider/ThemeProvider.js';\nimport { elementIds } from './constants.js';\nimport { createCloudpackClient, reloadCountSource } from '@ms-cloudpack/api-server/browser';\n\nasync function start() {\n if (!window.__cloudpack) {\n throw new Error('Cloudpack not found on window');\n }\n\n const { pageSessionContext } = window.__cloudpack;\n\n if (!pageSessionContext) {\n throw new Error('Session context not found on window.__cloudpack');\n }\n\n const { apiUrl, currentSequence, sessionId } = pageSessionContext;\n\n const client = await createCloudpackClient({ url: apiUrl });\n\n if (sessionId === (await client.getSessionId.query())) {\n console.log('[Cloudpack] socket opened');\n }\n\n client.onDataChanged.subscribe(reloadCountSource, {\n onData: (data) => {\n if (Number(data) > currentSequence) {\n window.location.reload();\n }\n },\n });\n\n const rootDiv = document.createElement('div');\n rootDiv.id = elementIds.root;\n const root = createRoot(rootDiv);\n\n root.render(\n <ThemeProvider>\n <CloudpackProvider client={client}>\n <StatusOverlay />\n </CloudpackProvider>\n </ThemeProvider>,\n );\n\n document.body.appendChild(rootDiv);\n}\n\nvoid start();\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ms-cloudpack/overlay",
3
- "version": "0.17.32",
3
+ "version": "0.17.34",
4
4
  "description": "The Cloudpack overlay ux.",
5
5
  "license": "MIT",
6
6
  "types": "./lib/index.d.ts",
@@ -23,24 +23,23 @@
23
23
  "api": "cloudpack-scripts api",
24
24
  "build:watch": "cloudpack-scripts build-watch",
25
25
  "build": "cloudpack-scripts build",
26
- "bundle": "yarn run -T cloudpack bundle --outdir dist/browser-esm --no-color",
26
+ "bundle": "yarn run -T cloudpack bundle --mode prod --outdir dist/browser-esm --no-color",
27
27
  "lint:update": "cloudpack-scripts lint-update",
28
- "lint": "cloudpack-scripts lint"
29
- },
30
- "dependencies": {
31
- "@ms-cloudpack/api-server": "^0.47.1",
32
- "@ms-cloudpack/path-string-parsing": "^1.2.3",
33
- "classnames": "^2.5.1",
34
- "react": "^17.0.0 || ^18.0.0",
35
- "react-dom": "^17.0.0 || ^18.0.0"
28
+ "lint": "cloudpack-scripts lint",
29
+ "prepack": "cp .npmignore dist/.npmignore"
36
30
  },
37
31
  "devDependencies": {
38
- "@ms-cloudpack/common-types": "^0.12.0",
39
- "@ms-cloudpack/common-types-browser": "^0.2.0",
32
+ "@ms-cloudpack/api-server": "^0.47.2",
33
+ "@ms-cloudpack/common-types": "^0.13.0",
34
+ "@ms-cloudpack/common-types-browser": "^0.3.0",
40
35
  "@ms-cloudpack/eslint-plugin-internal": "^0.0.1",
36
+ "@ms-cloudpack/path-string-parsing": "^1.2.3",
41
37
  "@ms-cloudpack/scripts": "^0.0.1",
42
- "@types/react": "^17.0.58",
43
- "@types/react-dom": "^17.0.20"
38
+ "@types/react": "^18.3.3",
39
+ "@types/react-dom": "^18.3.0",
40
+ "classnames": "^2.5.1",
41
+ "react": "^18.3.1",
42
+ "react-dom": "^18.3.1"
44
43
  },
45
44
  "files": [
46
45
  "lib",
@@ -1,74 +0,0 @@
1
- import {
2
- Button,
3
- Dialog,
4
- TaskList_default,
5
- TaskStatus_default,
6
- chevrondown_20_inline_default,
7
- error_24_inline_default
8
- } from "./chunk-XOJFP5X6.js";
9
- import {
10
- useCloudpack
11
- } from "./chunk-7KHMDJ6G.js";
12
- import {
13
- elementIds
14
- } from "./chunk-GBPQMJW6.js";
15
-
16
- // packages/overlay/src/components/ErrorDialog/ErrorDialog.tsx
17
- import { default as React2 } from "react";
18
-
19
- // packages/overlay/src/components/ErrorDialog/PathError.tsx
20
- import React from "react";
21
- import { default as cx } from "classnames";
22
- function PathError(props) {
23
- const [showContent, setshowContent] = React.useState(false);
24
- const { packageName, importPath, issuerUrl, fixable } = props;
25
- const cloudpack = useCloudpack();
26
- const editConfig = () => {
27
- void cloudpack.openConfigEditor.mutate();
28
- };
29
- const addOverride = () => {
30
- void cloudpack.addPackageOverride.mutate({ packageName, importPath, issuerUrl });
31
- };
32
- return /* @__PURE__ */ React.createElement("div", { className: TaskStatus_default.root }, /* @__PURE__ */ React.createElement("div", { className: cx(TaskStatus_default.header, TaskStatus_default.error) }, /* @__PURE__ */ React.createElement(
33
- "button",
34
- {
35
- className: TaskStatus_default.expandButton,
36
- onClick: () => setshowContent(!showContent),
37
- "aria-label": showContent ? `Minimize ${packageName}/${importPath}` : `Expand ${packageName}/${importPath}`
38
- },
39
- /* @__PURE__ */ React.createElement(
40
- "img",
41
- {
42
- className: cx(TaskStatus_default.expandIcon, !showContent && TaskStatus_default.collapsed),
43
- src: chevrondown_20_inline_default,
44
- alt: "Chevron down icon"
45
- }
46
- )
47
- ), /* @__PURE__ */ React.createElement("img", { className: TaskStatus_default.errorIcon, src: error_24_inline_default, alt: "Error icon" }), /* @__PURE__ */ React.createElement("div", { className: TaskStatus_default.title }, `${packageName}/${importPath}`)), showContent && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("div", { className: TaskStatus_default.commands }, fixable && /* @__PURE__ */ React.createElement(Button, { onClick: addOverride }, "Add override"), /* @__PURE__ */ React.createElement(Button, { onClick: editConfig }, "Edit config file")), /* @__PURE__ */ React.createElement("div", { className: TaskStatus_default.content }, /* @__PURE__ */ React.createElement("div", { className: TaskStatus_default.title }, "Details"), /* @__PURE__ */ React.createElement("div", { className: TaskStatus_default.nameValueArea }, /* @__PURE__ */ React.createElement("div", { className: TaskStatus_default.name }, "Problem"), /* @__PURE__ */ React.createElement("div", { className: TaskStatus_default.value }, importPath === "." ? `An unrecognized package "${packageName}" was imported.` : `Path "${importPath}" was imported from package "${packageName}" but was not recognized as an exported path.`)), /* @__PURE__ */ React.createElement("div", { className: TaskStatus_default.nameValueArea }, /* @__PURE__ */ React.createElement("div", { className: TaskStatus_default.name }, "Solution"), /* @__PURE__ */ React.createElement("div", { className: TaskStatus_default.value }, fixable ? `Remove the path from the import in your source. (Import from "${packageName}" rather than "${packageName}/${importPath}")` : importPath === "." ? `Make sure the package name is valid.` : `Import not found on package. Make sure the import path is valid.`)))));
48
- }
49
-
50
- // packages/overlay/src/components/ErrorDialog/ErrorDialog.tsx
51
- function ErrorDialog({ unsupported }) {
52
- const cloudpack = useCloudpack();
53
- const reload = () => {
54
- void cloudpack.restartAllTasks.mutate();
55
- };
56
- return /* @__PURE__ */ React2.createElement(
57
- Dialog,
58
- {
59
- title: "Found unsupported paths in your project",
60
- id: elementIds.errorDialogRoot,
61
- style: "error",
62
- commands: [
63
- /* @__PURE__ */ React2.createElement(Button, { primary: true, onClick: reload, key: "1" }, "Restart all tasks")
64
- ]
65
- },
66
- /* @__PURE__ */ React2.createElement("div", { className: TaskList_default.root }, unsupported.map((data, index) => /* @__PURE__ */ React2.createElement(PathError, { ...data, key: index })))
67
- );
68
- }
69
- var ErrorDialog_default = ErrorDialog;
70
- export {
71
- ErrorDialog,
72
- ErrorDialog_default as default
73
- };
74
- //# sourceMappingURL=ErrorDialog-5IGGA35U.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/components/ErrorDialog/ErrorDialog.tsx", "../../../../src/components/ErrorDialog/PathError.tsx"],
4
- "sourcesContent": ["import { default as React } from 'react';\nimport { Button } from '../Button/Button.js';\nimport { useCloudpack } from '../CloudpackProvider/CloudpackProvider.js';\nimport { PathError } from './PathError.js';\nimport styles from '../StatusDialog/TaskList.module.css';\nimport type { UnsupportedErrorEvent } from './useErrorEvents.js';\nimport { Dialog } from '../Dialog/Dialog.js';\nimport { elementIds } from '../../constants.js';\n\nexport interface ErrorDialogProps {\n unsupported: UnsupportedErrorEvent[];\n}\n\nexport function ErrorDialog({ unsupported }: ErrorDialogProps) {\n const cloudpack = useCloudpack();\n\n const reload = () => {\n void cloudpack.restartAllTasks.mutate();\n };\n\n return (\n <Dialog\n title=\"Found unsupported paths in your project\"\n id={elementIds.errorDialogRoot}\n style=\"error\"\n commands={[\n <Button primary onClick={reload} key=\"1\">\n Restart all tasks\n </Button>,\n ]}\n >\n <div className={styles.root}>\n {unsupported.map((data, index) => (\n <PathError {...data} key={index} />\n ))}\n </div>\n </Dialog>\n );\n}\n\nexport default ErrorDialog;\n", "import React from 'react';\nimport styles from '../StatusDialog/TaskStatus.module.css';\nimport ErrorIcon from '../../images/error-24.inline.svg';\nimport { default as cx } from 'classnames';\nimport ChevronDownIcon from '../../images/chevrondown-20.inline.svg';\nimport type { UnsupportedErrorEvent } from './useErrorEvents.js';\nimport { Button } from '../Button/Button.js';\nimport { useCloudpack } from '../CloudpackProvider/CloudpackProvider.js';\n\nexport function PathError(props: UnsupportedErrorEvent) {\n const [showContent, setshowContent] = React.useState<boolean>(false);\n const { packageName, importPath, issuerUrl, fixable } = props;\n const cloudpack = useCloudpack();\n\n const editConfig = () => {\n void cloudpack.openConfigEditor.mutate();\n };\n\n const addOverride = () => {\n void cloudpack.addPackageOverride.mutate({ packageName, importPath, issuerUrl });\n };\n\n return (\n <div className={styles.root}>\n <div className={cx(styles.header, styles.error)}>\n <button\n className={styles.expandButton}\n onClick={() => setshowContent(!showContent)}\n aria-label={showContent ? `Minimize ${packageName}/${importPath}` : `Expand ${packageName}/${importPath}`}\n >\n <img\n className={cx(styles.expandIcon, !showContent && styles.collapsed)}\n src={ChevronDownIcon}\n alt=\"Chevron down icon\"\n />\n </button>\n <img className={styles.errorIcon} src={ErrorIcon} alt=\"Error icon\" />\n <div className={styles.title}>{`${packageName}/${importPath}`}</div>\n </div>\n {showContent && (\n <>\n <div className={styles.commands}>\n {fixable && <Button onClick={addOverride}>Add override</Button>}\n <Button onClick={editConfig}>Edit config file</Button>\n </div>\n <div className={styles.content}>\n <div className={styles.title}>Details</div>\n\n <div className={styles.nameValueArea}>\n <div className={styles.name}>Problem</div>\n <div className={styles.value}>\n {importPath === '.'\n ? `An unrecognized package \"${packageName}\" was imported.`\n : `Path \"${importPath}\" was imported from package \"${packageName}\" but was not recognized as an exported path.`}\n </div>\n </div>\n <div className={styles.nameValueArea}>\n <div className={styles.name}>Solution</div>\n <div className={styles.value}>\n {fixable\n ? `Remove the path from the import in your source. (Import from \"${packageName}\" rather than \"${packageName}/${importPath}\")`\n : importPath === '.'\n ? `Make sure the package name is valid.`\n : `Import not found on package. Make sure the import path is valid.`}\n </div>\n </div>\n </div>\n </>\n )}\n </div>\n );\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;AAAA,SAAS,WAAWA,cAAa;;;ACAjC,OAAO,WAAW;AAGlB,SAAS,WAAW,UAAU;AAMvB,SAAS,UAAU,OAA8B;AACtD,QAAM,CAAC,aAAa,cAAc,IAAI,MAAM,SAAkB,KAAK;AACnE,QAAM,EAAE,aAAa,YAAY,WAAW,QAAQ,IAAI;AACxD,QAAM,YAAY,aAAa;AAE/B,QAAM,aAAa,MAAM;AACvB,SAAK,UAAU,iBAAiB,OAAO;AAAA,EACzC;AAEA,QAAM,cAAc,MAAM;AACxB,SAAK,UAAU,mBAAmB,OAAO,EAAE,aAAa,YAAY,UAAU,CAAC;AAAA,EACjF;AAEA,SACE,oCAAC,SAAI,WAAW,mBAAO,QACrB,oCAAC,SAAI,WAAW,GAAG,mBAAO,QAAQ,mBAAO,KAAK,KAC5C;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,mBAAO;AAAA,MAClB,SAAS,MAAM,eAAe,CAAC,WAAW;AAAA,MAC1C,cAAY,cAAc,YAAY,WAAW,IAAI,UAAU,KAAK,UAAU,WAAW,IAAI,UAAU;AAAA;AAAA,IAEvG;AAAA,MAAC;AAAA;AAAA,QACC,WAAW,GAAG,mBAAO,YAAY,CAAC,eAAe,mBAAO,SAAS;AAAA,QACjE,KAAK;AAAA,QACL,KAAI;AAAA;AAAA,IACN;AAAA,EACF,GACA,oCAAC,SAAI,WAAW,mBAAO,WAAW,KAAK,yBAAW,KAAI,cAAa,GACnE,oCAAC,SAAI,WAAW,mBAAO,SAAQ,GAAG,WAAW,IAAI,UAAU,EAAG,CAChE,GACC,eACC,0DACE,oCAAC,SAAI,WAAW,mBAAO,YACpB,WAAW,oCAAC,UAAO,SAAS,eAAa,cAAY,GACtD,oCAAC,UAAO,SAAS,cAAY,kBAAgB,CAC/C,GACA,oCAAC,SAAI,WAAW,mBAAO,WACrB,oCAAC,SAAI,WAAW,mBAAO,SAAO,SAAO,GAErC,oCAAC,SAAI,WAAW,mBAAO,iBACrB,oCAAC,SAAI,WAAW,mBAAO,QAAM,SAAO,GACpC,oCAAC,SAAI,WAAW,mBAAO,SACpB,eAAe,MACZ,4BAA4B,WAAW,oBACvC,SAAS,UAAU,gCAAgC,WAAW,+CACpE,CACF,GACA,oCAAC,SAAI,WAAW,mBAAO,iBACrB,oCAAC,SAAI,WAAW,mBAAO,QAAM,UAAQ,GACrC,oCAAC,SAAI,WAAW,mBAAO,SACpB,UACG,iEAAiE,WAAW,kBAAkB,WAAW,IAAI,UAAU,OACvH,eAAe,MACb,yCACA,kEACR,CACF,CACF,CACF,CAEJ;AAEJ;;;AD1DO,SAAS,YAAY,EAAE,YAAY,GAAqB;AAC7D,QAAM,YAAY,aAAa;AAE/B,QAAM,SAAS,MAAM;AACnB,SAAK,UAAU,gBAAgB,OAAO;AAAA,EACxC;AAEA,SACE,gBAAAC,OAAA;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,IAAI,WAAW;AAAA,MACf,OAAM;AAAA,MACN,UAAU;AAAA,QACR,gBAAAA,OAAA,cAAC,UAAO,SAAO,MAAC,SAAS,QAAQ,KAAI,OAAI,mBAEzC;AAAA,MACF;AAAA;AAAA,IAEA,gBAAAA,OAAA,cAAC,SAAI,WAAW,iBAAO,QACpB,YAAY,IAAI,CAAC,MAAM,UACtB,gBAAAA,OAAA,cAAC,aAAW,GAAG,MAAM,KAAK,OAAO,CAClC,CACH;AAAA,EACF;AAEJ;AAEA,IAAO,sBAAQ;",
6
- "names": ["React", "React"]
7
- }
@@ -1,316 +0,0 @@
1
- import {
2
- Button,
3
- Dialog,
4
- TaskList_default,
5
- TaskStatus_default,
6
- chevrondown_20_inline_default,
7
- error_24_inline_default
8
- } from "./chunk-XOJFP5X6.js";
9
- import {
10
- useCloudpack
11
- } from "./chunk-7KHMDJ6G.js";
12
- import {
13
- elementIds
14
- } from "./chunk-GBPQMJW6.js";
15
-
16
- // packages/overlay/src/components/StatusDialog/StatusDialog.tsx
17
- import React5, { useCallback } from "react";
18
-
19
- // packages/overlay/src/components/StatusDialog/TaskList.tsx
20
- import React3 from "react";
21
-
22
- // packages/overlay/src/components/StatusDialog/TaskStatus.tsx
23
- import React2 from "react";
24
-
25
- // packages/overlay/src/components/StatusDialog/TaskResultItem.tsx
26
- import React from "react";
27
-
28
- // packages/overlay/src/components/StatusDialog/TaskResultItem.module.css
29
- var compiledModule = `.FSsdmcQ-TaskResultItemmodule--root {
30
- display: flex;
31
- background: #f5f5f5;
32
- }
33
-
34
- .FSsdmcQ-TaskResultItemmodule--statusBar {
35
- flex-shrink: 0;
36
- border-radius: 4px;
37
- width: 4px;
38
- background: #aa0000;
39
- box-shadow: 2px 0 4px 0 rgb(220 0 0 / 20%);
40
- }
41
-
42
- .FSsdmcQ-TaskResultItemmodule--content {
43
- padding: 8px;
44
- display: flex;
45
- flex-grow: 1;
46
- overflow: hidden;
47
- flex-direction: column;
48
- }
49
-
50
- .FSsdmcQ-TaskResultItemmodule--titleArea {
51
- display: flex;
52
- align-items: center;
53
- flex-direction: row;
54
- gap: 4px;
55
- padding: 4px 0;
56
- }
57
-
58
- .FSsdmcQ-TaskResultItemmodule--file {
59
- display: inline-flex;
60
- margin: 0;
61
- padding: 0;
62
- border: none;
63
- background: inherit;
64
- font-family: inherit;
65
- flex-grow: 1;
66
- font-weight: 500;
67
- font-size: 14px;
68
- flex-shrink: 0;
69
- text-decoration: none;
70
- color: #000;
71
- cursor: pointer;
72
- }
73
-
74
- .FSsdmcQ-TaskResultItemmodule--file:hover {
75
- text-decoration: underline;
76
- }
77
-
78
- .FSsdmcQ-TaskResultItemmodule--actionArea {
79
- display: flex;
80
- flex-direction: row;
81
- gap: 8px;
82
- flex-shrink: 0;
83
- }
84
-
85
- .FSsdmcQ-TaskResultItemmodule--text {
86
- word-wrap: break-word;
87
- color: #333;
88
- }
89
- `;
90
- var s = document.createElement("style");
91
- s.setAttribute("data-sourceFile", "packages/overlay/src/components/StatusDialog/TaskResultItem.module.css");
92
- s.appendChild(document.createTextNode(compiledModule));
93
- document.head.appendChild(s);
94
- var actionArea = "FSsdmcQ-TaskResultItemmodule--actionArea";
95
- var content = "FSsdmcQ-TaskResultItemmodule--content";
96
- var file = "FSsdmcQ-TaskResultItemmodule--file";
97
- var root = "FSsdmcQ-TaskResultItemmodule--root";
98
- var statusBar = "FSsdmcQ-TaskResultItemmodule--statusBar";
99
- var text = "FSsdmcQ-TaskResultItemmodule--text";
100
- var titleArea = "FSsdmcQ-TaskResultItemmodule--titleArea";
101
- var TaskResultItem_default = { actionArea, content, file, root, statusBar, text, titleArea };
102
-
103
- // packages/overlay/src/components/StatusDialog/TaskResultItem.tsx
104
- function TaskResultItem({ item, projectPath, index }) {
105
- const cloudpack = useCloudpack();
106
- const openSource = (ev) => {
107
- if (item.location) {
108
- void cloudpack.openCodeEditor.mutate({
109
- rootPath: projectPath,
110
- relativePath: item.location?.file,
111
- line: item.location?.line,
112
- column: item.location?.column
113
- });
114
- ev.preventDefault();
115
- }
116
- };
117
- const location = [item.location?.file || "(path unavailable)", item.location?.line, item.location?.column].filter(Boolean).join(":");
118
- return /* @__PURE__ */ React.createElement("div", { className: TaskResultItem_default.root }, /* @__PURE__ */ React.createElement("div", { className: TaskResultItem_default.statusBar }), /* @__PURE__ */ React.createElement("div", { className: TaskResultItem_default.content }, /* @__PURE__ */ React.createElement("div", { className: TaskResultItem_default.titleArea }, /* @__PURE__ */ React.createElement("button", { onClick: openSource, className: TaskResultItem_default.file }, index, ". ", location)), /* @__PURE__ */ React.createElement("div", { className: TaskResultItem_default.text }, "[", item.source, "] ", item.text), /* @__PURE__ */ React.createElement("pre", { className: TaskResultItem_default.text }, JSON.stringify(item, null, 2))));
119
- }
120
-
121
- // packages/overlay/src/components/StatusDialog/TaskStatus.tsx
122
- import { default as cx } from "classnames";
123
-
124
- // packages/overlay/src/images/success-24.inline.svg
125
- var success_24_inline_default = 'data:image/svg+xml,<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">%0A<path d="M12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2ZM15.2197 8.96967L10.75 13.4393L8.78033 11.4697C8.48744 11.1768 8.01256 11.1768 7.71967 11.4697C7.42678 11.7626 7.42678 12.2374 7.71967 12.5303L10.2197 15.0303C10.5126 15.3232 10.9874 15.3232 11.2803 15.0303L16.2803 10.0303C16.5732 9.73744 16.5732 9.26256 16.2803 8.96967C15.9874 8.67678 15.5126 8.67678 15.2197 8.96967Z" fill="%2300aa00"/>%0A</svg>%0A';
126
-
127
- // packages/overlay/src/components/StatusDialog/TaskStatus.tsx
128
- function getCompletion(task) {
129
- if (task.status === "pending") {
130
- return "Running";
131
- }
132
- return [
133
- `Completed in ${task.durationMilliseconds}ms`,
134
- task.errors?.length && `${task.errors.length} error${task.errors.length > 1 ? "s" : ""}`,
135
- task.warnings?.length && `${task.warnings.length} warning${task.warnings.length > 1 ? "s" : ""}`
136
- ].filter(Boolean).join(", ");
137
- }
138
- function TaskStatus({ task }) {
139
- const [isOpen, setIsOpen] = React2.useState(void 0);
140
- const { name, warnings = [], errors = [] } = task;
141
- const cloudpack = useCloudpack();
142
- const showContent = isOpen === true || isOpen === void 0 && errors?.length > 0;
143
- const { inputPath, outputPath } = task;
144
- const open = (rootPath) => {
145
- void cloudpack.openFilePath.mutate({
146
- rootPath
147
- });
148
- };
149
- const openPackage = () => {
150
- if (!inputPath) {
151
- console.error("No input path for task", task);
152
- return;
153
- }
154
- void cloudpack.openCodeEditor.mutate({
155
- rootPath: inputPath,
156
- relativePath: "package.json"
157
- });
158
- };
159
- const restartTask = () => {
160
- if (!inputPath) {
161
- console.error("No input path for task", task);
162
- return;
163
- }
164
- void cloudpack.restartTask.mutate({ id: task.id, inputPath });
165
- };
166
- return /* @__PURE__ */ React2.createElement("div", { className: TaskStatus_default.root }, /* @__PURE__ */ React2.createElement("div", { className: getHeaderClassName(task) }, /* @__PURE__ */ React2.createElement(
167
- "button",
168
- {
169
- className: TaskStatus_default.expandButton,
170
- onClick: () => setIsOpen(!showContent),
171
- "aria-label": showContent ? `Minimize ${name}` : `Expand ${name}`
172
- },
173
- /* @__PURE__ */ React2.createElement(
174
- "img",
175
- {
176
- className: cx(TaskStatus_default.expandIcon, !showContent && TaskStatus_default.collapsed),
177
- src: chevrondown_20_inline_default,
178
- alt: "Chevron down icon"
179
- }
180
- )
181
- ), errors?.length === 0 && warnings?.length === 0 && /* @__PURE__ */ React2.createElement("img", { className: TaskStatus_default.errorIcon, src: success_24_inline_default, alt: "Success icon" }), errors?.length > 0 && /* @__PURE__ */ React2.createElement("img", { className: TaskStatus_default.errorIcon, src: error_24_inline_default, alt: "Error icon" }), /* @__PURE__ */ React2.createElement("div", { className: TaskStatus_default.title }, name), /* @__PURE__ */ React2.createElement("div", { className: TaskStatus_default.farArea }, getCompletion(task))), showContent && (inputPath ? /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement("div", { className: TaskStatus_default.commands }, /* @__PURE__ */ React2.createElement(Button, { onClick: restartTask }, "Restart task")), /* @__PURE__ */ React2.createElement("div", { className: TaskStatus_default.content }, /* @__PURE__ */ React2.createElement("div", { className: TaskStatus_default.title }, "Details"), /* @__PURE__ */ React2.createElement("div", { className: TaskStatus_default.nameValueArea }, /* @__PURE__ */ React2.createElement("div", { className: TaskStatus_default.name }, "Input path"), /* @__PURE__ */ React2.createElement("div", { className: TaskStatus_default.value }, /* @__PURE__ */ React2.createElement("button", { className: TaskStatus_default.linkButton, onClick: () => open(inputPath) }, task.inputPath), /* @__PURE__ */ React2.createElement("button", { className: TaskStatus_default.linkButton, onClick: openPackage }, "(Package.json)"))), outputPath && /* @__PURE__ */ React2.createElement("div", { className: TaskStatus_default.nameValueArea }, /* @__PURE__ */ React2.createElement("div", { className: TaskStatus_default.name }, "Output path"), /* @__PURE__ */ React2.createElement("button", { className: TaskStatus_default.linkButton, onClick: () => open(outputPath) }, outputPath)), errors?.length > 0 && /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement("div", { className: TaskStatus_default.title }, "Errors"), /* @__PURE__ */ React2.createElement("div", { className: TaskStatus_default.resultItems }, errors.map((error, index) => /* @__PURE__ */ React2.createElement(TaskResultItem, { key: index, item: error, projectPath: inputPath, index: index + 1 })))), warnings?.length > 0 && /* @__PURE__ */ React2.createElement(React2.Fragment, null, /* @__PURE__ */ React2.createElement("div", { className: TaskStatus_default.title }, "Warnings"), /* @__PURE__ */ React2.createElement("div", { className: TaskStatus_default.resultItems }, warnings.map((warning, index) => /* @__PURE__ */ React2.createElement(TaskResultItem, { key: index, item: warning, projectPath: inputPath, index: index + 1 })))))) : /* @__PURE__ */ React2.createElement("div", { className: TaskStatus_default.content }, "No input path found for task. This is a Cloudpack bug. Please report it.")));
182
- }
183
- function getHeaderClassName(task) {
184
- const { errors = [], warnings = [] } = task;
185
- return cx(TaskStatus_default.header, {
186
- [TaskStatus_default.success]: errors?.length === 0 && warnings?.length === 0,
187
- [TaskStatus_default.warning]: errors?.length === 0 && warnings?.length > 0,
188
- [TaskStatus_default.error]: errors?.length > 0
189
- });
190
- }
191
-
192
- // packages/overlay/src/components/CloudpackProvider/useStatusDetails.ts
193
- import { useEffect, useState } from "react";
194
- import { taskListSource } from "@ms-cloudpack/api-server/browser";
195
- var useStatusDetails = () => {
196
- const cloudpack = useCloudpack();
197
- const [details, setDetails] = useState({ tasks: [] });
198
- useEffect(() => {
199
- const subscription = cloudpack?.onDataChanged.subscribe(taskListSource, {
200
- onData: (data) => {
201
- setDetails(data);
202
- }
203
- });
204
- return () => {
205
- subscription.unsubscribe();
206
- };
207
- }, [cloudpack]);
208
- return details;
209
- };
210
-
211
- // packages/overlay/src/components/StatusDialog/TaskList.tsx
212
- function TaskList({ searchFilter, issuesOnly }) {
213
- const details = useStatusDetails();
214
- const tasks = (details.tasks || []).sort(sortTasks);
215
- let filteredTasks = tasks;
216
- if (searchFilter) {
217
- searchFilter = searchFilter.toLowerCase();
218
- filteredTasks = filteredTasks.filter(({ name }) => searchFilter && name?.toLowerCase().includes(searchFilter));
219
- }
220
- if (issuesOnly) {
221
- filteredTasks = filteredTasks.filter(({ errors, warnings }) => errors?.length || warnings?.length);
222
- }
223
- return /* @__PURE__ */ React3.createElement("div", { className: TaskList_default.root }, filteredTasks.map((task) => /* @__PURE__ */ React3.createElement(TaskStatus, { key: task.name, task })));
224
- }
225
- function sortTasks(a, b) {
226
- const aStatus = a.status === "pending" ? 1 : 0;
227
- const bStatus = b.status === "pending" ? 1 : 0;
228
- if (aStatus !== bStatus) {
229
- return aStatus > bStatus ? -1 : 1;
230
- }
231
- const aErrors = a.errors?.length || 0;
232
- const bErrors = b.errors?.length || 0;
233
- if (aErrors !== bErrors) {
234
- return aErrors > bErrors ? -1 : 1;
235
- }
236
- if (a.name === void 0 && b.name === void 0) {
237
- return a.id < b.id ? -1 : 1;
238
- } else if (a.name === void 0) {
239
- return 1;
240
- } else if (b.name === void 0) {
241
- return -1;
242
- }
243
- return a.name < b.name ? -1 : 1;
244
- }
245
-
246
- // packages/overlay/src/components/StatusDialog/Searchbox.tsx
247
- import React4 from "react";
248
-
249
- // packages/overlay/src/components/StatusDialog/Searchbox.module.css
250
- var compiledModule2 = `.aJeqJtva-Searchboxmodule--searchbox {
251
- position: absolute;
252
- font-size: 14px;
253
- font-weight: 400;
254
- box-shadow: none;
255
- padding: 0px 4px;
256
- box-sizing: border-box;
257
- color: rgb(50, 49, 48);
258
- background-color: rgb(255, 255, 255);
259
- display: flex;
260
- flex-flow: row nowrap;
261
- align-items: stretch;
262
- border-radius: 2px;
263
- border: 1px solid rgb(96, 94, 92);
264
- height: 32px;
265
- min-width: 160px;
266
- top: 52px;
267
- right: 20px;
268
- }
269
- `;
270
- var s2 = document.createElement("style");
271
- s2.setAttribute("data-sourceFile", "packages/overlay/src/components/StatusDialog/Searchbox.module.css");
272
- s2.appendChild(document.createTextNode(compiledModule2));
273
- document.head.appendChild(s2);
274
- var searchbox = "aJeqJtva-Searchboxmodule--searchbox";
275
- var Searchbox_default = { searchbox };
276
-
277
- // packages/overlay/src/components/StatusDialog/Searchbox.tsx
278
- function Searchbox({ value, onChange }) {
279
- return /* @__PURE__ */ React4.createElement(React4.Fragment, null, typeof value === "string" && /* @__PURE__ */ React4.createElement("input", { type: "text", placeholder: "Search", className: Searchbox_default.searchbox, onChange, value }));
280
- }
281
-
282
- // packages/overlay/src/components/StatusDialog/StatusDialog.tsx
283
- function StatusDialog({ onClose }) {
284
- const cloudpack = useCloudpack();
285
- const [searchFilter, setSearchFilter] = React5.useState("");
286
- const [issuesOnly, setIssuesOnly] = React5.useState(false);
287
- const handleSearchChange = useCallback((event) => {
288
- event.preventDefault();
289
- setSearchFilter(event.target.value);
290
- }, []);
291
- const restartAllTasks = () => {
292
- void cloudpack.restartAllTasks.mutate();
293
- };
294
- const toggleIssuesOnly = () => setIssuesOnly((value) => !value);
295
- return /* @__PURE__ */ React5.createElement(
296
- Dialog,
297
- {
298
- title: "Task results",
299
- id: elementIds.statusDialogRoot,
300
- draggable: true,
301
- onClose,
302
- commands: [
303
- /* @__PURE__ */ React5.createElement(Button, { primary: true, onClick: restartAllTasks, key: "restart" }, "Restart all tasks"),
304
- /* @__PURE__ */ React5.createElement(Button, { onClick: toggleIssuesOnly, key: "issues" }, issuesOnly ? "Show all tasks" : "Show tasks with issues")
305
- ]
306
- },
307
- /* @__PURE__ */ React5.createElement(Searchbox, { value: searchFilter, onChange: handleSearchChange }),
308
- /* @__PURE__ */ React5.createElement(TaskList, { searchFilter, issuesOnly })
309
- );
310
- }
311
- var StatusDialog_default = StatusDialog;
312
- export {
313
- StatusDialog,
314
- StatusDialog_default as default
315
- };
316
- //# sourceMappingURL=StatusDialog-7Q5HGOOM.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/components/StatusDialog/StatusDialog.tsx", "../../../../src/components/StatusDialog/TaskList.tsx", "../../../../src/components/StatusDialog/TaskStatus.tsx", "../../../../src/components/StatusDialog/TaskResultItem.tsx", "../../../../src/components/StatusDialog/TaskResultItem.module.css", "../../../../src/components/CloudpackProvider/useStatusDetails.ts", "../../../../src/components/StatusDialog/Searchbox.tsx", "../../../../src/components/StatusDialog/Searchbox.module.css"],
4
- "sourcesContent": ["import React, { useCallback } from 'react';\nimport { TaskList } from './TaskList.js';\nimport { useCloudpack } from '../CloudpackProvider/CloudpackProvider.js';\nimport { Button } from '../Button/Button.js';\nimport { Dialog } from '../Dialog/Dialog.js';\nimport { Searchbox } from './Searchbox.js';\nimport { elementIds } from '../../constants.js';\n\nexport interface StatusDialogProps {\n onClose: () => void;\n}\n\nexport function StatusDialog({ onClose }: StatusDialogProps) {\n const cloudpack = useCloudpack();\n const [searchFilter, setSearchFilter] = React.useState('');\n const [issuesOnly, setIssuesOnly] = React.useState(false);\n\n const handleSearchChange = useCallback((event: React.ChangeEvent<HTMLInputElement>) => {\n event.preventDefault();\n setSearchFilter(event.target.value);\n }, []);\n\n const restartAllTasks = () => {\n void cloudpack.restartAllTasks.mutate();\n };\n\n const toggleIssuesOnly = () => setIssuesOnly((value) => !value);\n\n return (\n <Dialog\n title=\"Task results\"\n id={elementIds.statusDialogRoot}\n draggable\n onClose={onClose}\n commands={[\n <Button primary onClick={restartAllTasks} key=\"restart\">\n Restart all tasks\n </Button>,\n <Button onClick={toggleIssuesOnly} key=\"issues\">\n {issuesOnly ? 'Show all tasks' : 'Show tasks with issues'}\n </Button>,\n ]}\n >\n <Searchbox value={searchFilter} onChange={handleSearchChange} />\n <TaskList searchFilter={searchFilter} issuesOnly={issuesOnly} />\n </Dialog>\n );\n}\n\nexport default StatusDialog;\n", "import React from 'react';\nimport { TaskStatus } from './TaskStatus.js';\nimport { useStatusDetails } from '../CloudpackProvider/useStatusDetails.js';\nimport styles from './TaskList.module.css';\nimport type { TaskDescription } from '@ms-cloudpack/api-server/browser';\n\nexport interface TaskListProps {\n searchFilter?: string;\n issuesOnly?: boolean;\n}\n\nexport function TaskList({ searchFilter, issuesOnly }: TaskListProps) {\n const details = useStatusDetails();\n const tasks = (details.tasks || []).sort(sortTasks);\n\n let filteredTasks = tasks;\n if (searchFilter) {\n searchFilter = searchFilter.toLowerCase();\n filteredTasks = filteredTasks.filter(({ name }) => searchFilter && name?.toLowerCase().includes(searchFilter));\n }\n if (issuesOnly) {\n filteredTasks = filteredTasks.filter(({ errors, warnings }) => errors?.length || warnings?.length);\n }\n\n return (\n <div className={styles.root}>\n {filteredTasks.map((task) => (\n <TaskStatus key={task.name} task={task} />\n ))}\n </div>\n );\n}\n\n/**\n * Really the server should be sorting. Get stuff out of the browser.\n */\nfunction sortTasks(a: TaskDescription, b: TaskDescription) {\n const aStatus = a.status === 'pending' ? 1 : 0;\n const bStatus = b.status === 'pending' ? 1 : 0;\n\n if (aStatus !== bStatus) {\n return aStatus > bStatus ? -1 : 1;\n }\n\n const aErrors = a.errors?.length || 0;\n const bErrors = b.errors?.length || 0;\n\n if (aErrors !== bErrors) {\n return aErrors > bErrors ? -1 : 1;\n }\n\n if (a.name === undefined && b.name === undefined) {\n return a.id < b.id ? -1 : 1;\n } else if (a.name === undefined) {\n return 1;\n } else if (b.name === undefined) {\n return -1;\n }\n\n return a.name < b.name ? -1 : 1;\n}\n", "import React from 'react';\nimport type { TaskDescription } from '@ms-cloudpack/api-server/browser';\nimport { TaskResultItem } from './TaskResultItem.js';\nimport styles from './TaskStatus.module.css';\nimport { default as cx } from 'classnames';\nimport ErrorIcon from '../../images/error-24.inline.svg';\nimport SuccessIcon from '../../images/success-24.inline.svg';\nimport ChevronDownIcon from '../../images/chevrondown-20.inline.svg';\nimport { useCloudpack } from '../CloudpackProvider/CloudpackProvider.js';\nimport { Button } from '../Button/Button.js';\n\nexport interface TaskStatusProps {\n task: TaskDescription;\n}\n\nfunction getCompletion(task: TaskDescription) {\n if (task.status === 'pending') {\n return 'Running';\n }\n return [\n `Completed in ${task.durationMilliseconds}ms`,\n task.errors?.length && `${task.errors.length} error${task.errors.length > 1 ? 's' : ''}`,\n task.warnings?.length && `${task.warnings.length} warning${task.warnings.length > 1 ? 's' : ''}`,\n ]\n .filter(Boolean)\n .join(', ');\n}\n\nexport function TaskStatus({ task }: TaskStatusProps) {\n const [isOpen, setIsOpen] = React.useState<boolean | undefined>(undefined);\n const { name, warnings = [], errors = [] } = task;\n const cloudpack = useCloudpack();\n const showContent = isOpen === true || (isOpen === undefined && errors?.length > 0);\n\n const { inputPath, outputPath } = task;\n\n const open = (rootPath: string) => {\n void cloudpack.openFilePath.mutate({\n rootPath,\n });\n };\n\n const openPackage = () => {\n if (!inputPath) {\n console.error('No input path for task', task);\n return;\n }\n void cloudpack.openCodeEditor.mutate({\n rootPath: inputPath,\n relativePath: 'package.json',\n });\n };\n\n const restartTask = () => {\n if (!inputPath) {\n console.error('No input path for task', task);\n return;\n }\n void cloudpack.restartTask.mutate({ id: task.id, inputPath });\n };\n\n return (\n <div className={styles.root}>\n <div className={getHeaderClassName(task)}>\n <button\n className={styles.expandButton}\n onClick={() => setIsOpen(!showContent)}\n aria-label={showContent ? `Minimize ${name}` : `Expand ${name}`}\n >\n <img\n className={cx(styles.expandIcon, !showContent && styles.collapsed)}\n src={ChevronDownIcon}\n alt=\"Chevron down icon\"\n />\n </button>\n {errors?.length === 0 && warnings?.length === 0 && (\n <img className={styles.errorIcon} src={SuccessIcon} alt=\"Success icon\" />\n )}\n {errors?.length > 0 && <img className={styles.errorIcon} src={ErrorIcon} alt=\"Error icon\" />}\n <div className={styles.title}>{name}</div>\n <div className={styles.farArea}>{getCompletion(task)}</div>\n </div>\n {showContent &&\n (inputPath ? (\n <>\n <div className={styles.commands}>\n <Button onClick={restartTask}>Restart task</Button>\n </div>\n <div className={styles.content}>\n <div className={styles.title}>Details</div>\n <div className={styles.nameValueArea}>\n <div className={styles.name}>Input path</div>\n <div className={styles.value}>\n <button className={styles.linkButton} onClick={() => open(inputPath)}>\n {task.inputPath}\n </button>\n\n <button className={styles.linkButton} onClick={openPackage}>\n (Package.json)\n </button>\n </div>\n </div>\n {outputPath && (\n <div className={styles.nameValueArea}>\n <div className={styles.name}>Output path</div>\n <button className={styles.linkButton} onClick={() => open(outputPath)}>\n {outputPath}\n </button>\n </div>\n )}\n {errors?.length > 0 && (\n <>\n <div className={styles.title}>Errors</div>\n <div className={styles.resultItems}>\n {errors.map((error, index) => (\n <TaskResultItem key={index} item={error} projectPath={inputPath} index={index + 1} />\n ))}\n </div>\n </>\n )}\n {warnings?.length > 0 && (\n <>\n <div className={styles.title}>Warnings</div>\n <div className={styles.resultItems}>\n {warnings.map((warning, index) => (\n <TaskResultItem key={index} item={warning} projectPath={inputPath} index={index + 1} />\n ))}\n </div>\n </>\n )}\n </div>\n </>\n ) : (\n <div className={styles.content}>No input path found for task. This is a Cloudpack bug. Please report it.</div>\n ))}\n </div>\n );\n}\n\nfunction getHeaderClassName(task: TaskDescription) {\n const { errors = [], warnings = [] } = task;\n return cx(styles.header, {\n [styles.success]: errors?.length === 0 && warnings?.length === 0,\n [styles.warning]: errors?.length === 0 && warnings?.length > 0,\n [styles.error]: errors?.length > 0,\n });\n}\n", "import type { BundleMessage } from '@ms-cloudpack/common-types';\nimport React from 'react';\nimport { useCloudpack } from '../CloudpackProvider/CloudpackProvider.js';\nimport styles from './TaskResultItem.module.css';\n\nexport interface TaskResultItemProps {\n item: BundleMessage;\n projectPath: string;\n index: number;\n}\n\nexport function TaskResultItem({ item, projectPath, index }: TaskResultItemProps) {\n const cloudpack = useCloudpack();\n\n const openSource = (ev: React.MouseEvent) => {\n if (item.location) {\n void cloudpack.openCodeEditor.mutate({\n rootPath: projectPath,\n relativePath: item.location?.file,\n line: item.location?.line,\n column: item.location?.column,\n });\n ev.preventDefault();\n }\n };\n\n const location = [item.location?.file || '(path unavailable)', item.location?.line, item.location?.column]\n .filter(Boolean)\n .join(':');\n\n return (\n <div className={styles.root}>\n <div className={styles.statusBar}></div>\n <div className={styles.content}>\n <div className={styles.titleArea}>\n <button onClick={openSource} className={styles.file}>\n {index}. {location}\n </button>\n </div>\n <div className={styles.text}>\n [{item.source}] {item.text}\n </div>\n <pre className={styles.text}>{JSON.stringify(item, null, 2)}</pre>\n </div>\n </div>\n );\n}\n", "// THIS FILE IS AUTO GENERATED FROM packages/overlay/src/components/StatusDialog/TaskResultItem.module.css\n\n\nlet compiledModule = `.FSsdmcQ-TaskResultItemmodule--root {\\n display: flex;\\n background: #f5f5f5;\\n}\\n\\n.FSsdmcQ-TaskResultItemmodule--statusBar {\\n flex-shrink: 0;\\n border-radius: 4px;\\n width: 4px;\\n background: #aa0000;\\n box-shadow: 2px 0 4px 0 rgb(220 0 0 / 20%);\\n}\\n\\n.FSsdmcQ-TaskResultItemmodule--content {\\n padding: 8px;\\n display: flex;\\n flex-grow: 1;\\n overflow: hidden;\\n flex-direction: column;\\n}\\n\\n.FSsdmcQ-TaskResultItemmodule--titleArea {\\n display: flex;\\n align-items: center;\\n flex-direction: row;\\n gap: 4px;\\n padding: 4px 0;\\n}\\n\\n.FSsdmcQ-TaskResultItemmodule--file {\\n display: inline-flex;\\n margin: 0;\\n padding: 0;\\n border: none;\\n background: inherit;\\n font-family: inherit;\\n flex-grow: 1;\\n font-weight: 500;\\n font-size: 14px;\\n flex-shrink: 0;\\n text-decoration: none;\\n color: #000;\\n cursor: pointer;\\n}\\n\\n.FSsdmcQ-TaskResultItemmodule--file:hover {\\n text-decoration: underline;\\n}\\n\\n.FSsdmcQ-TaskResultItemmodule--actionArea {\\n display: flex;\\n flex-direction: row;\\n gap: 8px;\\n flex-shrink: 0;\\n}\\n\\n.FSsdmcQ-TaskResultItemmodule--text {\\n word-wrap: break-word;\\n color: #333;\\n}\\n`;\nconst s = document.createElement('style');\ns.setAttribute('data-sourceFile', 'packages/overlay/src/components/StatusDialog/TaskResultItem.module.css');\ns.appendChild(document.createTextNode(compiledModule));\ndocument.head.appendChild(s)\nexport const actionArea = 'FSsdmcQ-TaskResultItemmodule--actionArea';\nexport const content = 'FSsdmcQ-TaskResultItemmodule--content';\nexport const file = 'FSsdmcQ-TaskResultItemmodule--file';\nexport const root = 'FSsdmcQ-TaskResultItemmodule--root';\nexport const statusBar = 'FSsdmcQ-TaskResultItemmodule--statusBar';\nexport const text = 'FSsdmcQ-TaskResultItemmodule--text';\nexport const titleArea = 'FSsdmcQ-TaskResultItemmodule--titleArea';\nexport default {actionArea, content, file, root, statusBar, text, titleArea}\n", "import { useEffect, useState } from 'react';\nimport { useCloudpack } from './CloudpackProvider.js';\nimport { taskListSource, type TaskList } from '@ms-cloudpack/api-server/browser';\n\nexport const useStatusDetails = () => {\n const cloudpack = useCloudpack();\n const [details, setDetails] = useState<TaskList>({ tasks: [] });\n\n useEffect(() => {\n const subscription = cloudpack?.onDataChanged.subscribe(taskListSource, {\n onData: (data) => {\n setDetails(data as TaskList);\n },\n });\n\n return () => {\n subscription.unsubscribe();\n };\n }, [cloudpack]);\n\n return details;\n};\n", "import React from 'react';\nimport styles from './Searchbox.module.css';\n\nexport interface SearchboxProps {\n value: string;\n onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;\n}\n\nexport function Searchbox({ value, onChange }: SearchboxProps) {\n return (\n <>\n {typeof value === 'string' && (\n <input type=\"text\" placeholder=\"Search\" className={styles.searchbox} onChange={onChange} value={value} />\n )}\n </>\n );\n}\n", "// THIS FILE IS AUTO GENERATED FROM packages/overlay/src/components/StatusDialog/Searchbox.module.css\n\n\nlet compiledModule = `.aJeqJtva-Searchboxmodule--searchbox {\\n position: absolute;\\n font-size: 14px;\\n font-weight: 400;\\n box-shadow: none;\\n padding: 0px 4px;\\n box-sizing: border-box;\\n color: rgb(50, 49, 48);\\n background-color: rgb(255, 255, 255);\\n display: flex;\\n flex-flow: row nowrap;\\n align-items: stretch;\\n border-radius: 2px;\\n border: 1px solid rgb(96, 94, 92);\\n height: 32px;\\n min-width: 160px;\\n top: 52px;\\n right: 20px;\\n}\\n`;\nconst s = document.createElement('style');\ns.setAttribute('data-sourceFile', 'packages/overlay/src/components/StatusDialog/Searchbox.module.css');\ns.appendChild(document.createTextNode(compiledModule));\ndocument.head.appendChild(s)\nexport const searchbox = 'aJeqJtva-Searchboxmodule--searchbox';\nexport default {searchbox}\n"],
5
- "mappings": "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",
6
- "names": ["React", "React", "React", "React", "React", "React", "compiledModule", "s", "React", "React"]
7
- }