@next-bricks/diagram 0.57.0 → 0.57.2

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 (144) hide show
  1. package/dist/bricks.json +2 -2
  2. package/dist/chunks/1045.fc9b1386.js +2 -0
  3. package/dist/chunks/1045.fc9b1386.js.map +1 -0
  4. package/dist/chunks/1122.1957b96a.js +2 -0
  5. package/dist/chunks/1122.1957b96a.js.map +1 -0
  6. package/dist/chunks/114.f4c45fb4.js +2 -0
  7. package/dist/chunks/114.f4c45fb4.js.map +1 -0
  8. package/dist/chunks/1370.ff678c2c.js.map +1 -1
  9. package/dist/chunks/1889.84d5fe0f.js +2 -0
  10. package/dist/chunks/1889.84d5fe0f.js.map +1 -0
  11. package/dist/chunks/3144.b60bf1f3.js +3 -0
  12. package/dist/chunks/3144.b60bf1f3.js.map +1 -0
  13. package/dist/chunks/{3171.ad783275.js → 3171.220e6979.js} +2 -2
  14. package/dist/chunks/{3171.ad783275.js.map → 3171.220e6979.js.map} +1 -1
  15. package/dist/chunks/3233.716ac5b9.js +3 -0
  16. package/dist/chunks/3233.716ac5b9.js.map +1 -0
  17. package/dist/chunks/3426.fb6ffa15.js +2 -0
  18. package/dist/chunks/3426.fb6ffa15.js.map +1 -0
  19. package/dist/chunks/{6314.096c993f.js → 3933.14b96cfd.js} +2 -2
  20. package/dist/chunks/{6314.096c993f.js.map → 3933.14b96cfd.js.map} +1 -1
  21. package/dist/chunks/4041.d0dafc02.js +3 -0
  22. package/dist/chunks/4041.d0dafc02.js.map +1 -0
  23. package/dist/chunks/4185.68f9c3cb.js +3 -0
  24. package/dist/chunks/4185.68f9c3cb.js.map +1 -0
  25. package/dist/chunks/{4837.177f3660.js → 4837.3bf86898.js} +2 -2
  26. package/dist/chunks/{4837.177f3660.js.map → 4837.3bf86898.js.map} +1 -1
  27. package/dist/chunks/5250.aa8a219f.js +3 -0
  28. package/dist/chunks/5250.aa8a219f.js.map +1 -0
  29. package/dist/chunks/{5552.b60ebd94.js → 5552.6136a8f6.js} +2 -2
  30. package/dist/chunks/{5552.b60ebd94.js.map → 5552.6136a8f6.js.map} +1 -1
  31. package/dist/chunks/5670.d0d814f7.js +3 -0
  32. package/dist/chunks/5670.d0d814f7.js.map +1 -0
  33. package/dist/chunks/{3933.6f63c7d7.js → 6314.dda14136.js} +2 -2
  34. package/dist/chunks/{3933.6f63c7d7.js.map → 6314.dda14136.js.map} +1 -1
  35. package/dist/chunks/6773.fe170705.js +2 -0
  36. package/dist/chunks/6773.fe170705.js.map +1 -0
  37. package/dist/chunks/{7218.33e2d012.js → 7218.7423bfda.js} +2 -2
  38. package/dist/chunks/{7218.33e2d012.js.map → 7218.7423bfda.js.map} +1 -1
  39. package/dist/chunks/726.36afa7a3.js +2 -0
  40. package/dist/chunks/726.36afa7a3.js.map +1 -0
  41. package/dist/chunks/7304.2ae2d399.js +2 -0
  42. package/dist/chunks/7304.2ae2d399.js.map +1 -0
  43. package/dist/chunks/{7721.6ac62398.js → 7721.ee387dd7.js} +3 -3
  44. package/dist/chunks/7721.ee387dd7.js.map +1 -0
  45. package/dist/chunks/7733.43792e2a.js +2 -0
  46. package/dist/chunks/7733.43792e2a.js.map +1 -0
  47. package/dist/chunks/7920.367555e2.js +3 -0
  48. package/dist/chunks/7920.367555e2.js.map +1 -0
  49. package/dist/chunks/871.e9d9ff80.js +2 -0
  50. package/dist/chunks/871.e9d9ff80.js.map +1 -0
  51. package/dist/chunks/8812.bdb4c8fd.js +2 -0
  52. package/dist/chunks/8812.bdb4c8fd.js.map +1 -0
  53. package/dist/chunks/8989.1bb9349d.js +2 -0
  54. package/dist/chunks/8989.1bb9349d.js.map +1 -0
  55. package/dist/chunks/9024.0a48a95e.js +2 -0
  56. package/dist/chunks/9024.0a48a95e.js.map +1 -0
  57. package/dist/chunks/9515.2b74919b.js +2 -0
  58. package/dist/chunks/9515.2b74919b.js.map +1 -0
  59. package/dist/chunks/9711.9b2334fc.js +2 -0
  60. package/dist/chunks/9711.9b2334fc.js.map +1 -0
  61. package/dist/chunks/{9844.4a3a83f7.js → 9844.4ab00110.js} +2 -2
  62. package/dist/chunks/{9844.4a3a83f7.js.map → 9844.4ab00110.js.map} +1 -1
  63. package/dist/chunks/editable-label.f986264b.js +3 -0
  64. package/dist/chunks/editable-label.f986264b.js.map +1 -0
  65. package/dist/chunks/{eo-diagram.5c99be44.js → eo-diagram.b6a11fe1.js} +2 -2
  66. package/dist/chunks/{eo-diagram.5c99be44.js.map → eo-diagram.b6a11fe1.js.map} +1 -1
  67. package/dist/chunks/{eo-display-canvas.d3d4fa57.js → eo-display-canvas.540a8512.js} +2 -2
  68. package/dist/chunks/{eo-display-canvas.d3d4fa57.js.map → eo-display-canvas.540a8512.js.map} +1 -1
  69. package/dist/chunks/{eo-draw-canvas.c41d08df.js → eo-draw-canvas.5c6da157.js} +2 -2
  70. package/dist/chunks/eo-draw-canvas.5c6da157.js.map +1 -0
  71. package/dist/chunks/experimental-node.fcd8f903.js +2 -0
  72. package/dist/chunks/experimental-node.fcd8f903.js.map +1 -0
  73. package/dist/chunks/main.4613f015.js +2 -0
  74. package/dist/chunks/main.4613f015.js.map +1 -0
  75. package/dist/examples.json +3 -3
  76. package/dist/index.58cf665c.js +2 -0
  77. package/dist/index.58cf665c.js.map +1 -0
  78. package/dist/manifest.json +164 -164
  79. package/dist-types/draw-canvas/NodeComponent.d.ts +3 -1
  80. package/dist-types/shared/canvas/useLineMarkers.d.ts +5 -2
  81. package/package.json +4 -4
  82. package/dist/chunks/1045.8709c6b1.js +0 -2
  83. package/dist/chunks/1045.8709c6b1.js.map +0 -1
  84. package/dist/chunks/1122.44c2d625.js +0 -2
  85. package/dist/chunks/1122.44c2d625.js.map +0 -1
  86. package/dist/chunks/114.b0805615.js +0 -2
  87. package/dist/chunks/114.b0805615.js.map +0 -1
  88. package/dist/chunks/1889.ae5b520e.js +0 -2
  89. package/dist/chunks/1889.ae5b520e.js.map +0 -1
  90. package/dist/chunks/3144.94428cca.js +0 -3
  91. package/dist/chunks/3144.94428cca.js.map +0 -1
  92. package/dist/chunks/3233.0f638ba1.js +0 -3
  93. package/dist/chunks/3233.0f638ba1.js.map +0 -1
  94. package/dist/chunks/3426.e3be3a32.js +0 -2
  95. package/dist/chunks/3426.e3be3a32.js.map +0 -1
  96. package/dist/chunks/4041.d221940a.js +0 -3
  97. package/dist/chunks/4041.d221940a.js.map +0 -1
  98. package/dist/chunks/4185.1e71810a.js +0 -3
  99. package/dist/chunks/4185.1e71810a.js.map +0 -1
  100. package/dist/chunks/5250.d0a6e755.js +0 -3
  101. package/dist/chunks/5250.d0a6e755.js.map +0 -1
  102. package/dist/chunks/5670.2d7e3824.js +0 -3
  103. package/dist/chunks/5670.2d7e3824.js.map +0 -1
  104. package/dist/chunks/6773.8b791d47.js +0 -2
  105. package/dist/chunks/6773.8b791d47.js.map +0 -1
  106. package/dist/chunks/726.aac643de.js +0 -2
  107. package/dist/chunks/726.aac643de.js.map +0 -1
  108. package/dist/chunks/7304.3d0757fa.js +0 -2
  109. package/dist/chunks/7304.3d0757fa.js.map +0 -1
  110. package/dist/chunks/7721.6ac62398.js.map +0 -1
  111. package/dist/chunks/7733.a2c42502.js +0 -2
  112. package/dist/chunks/7733.a2c42502.js.map +0 -1
  113. package/dist/chunks/7920.e59e82e7.js +0 -3
  114. package/dist/chunks/7920.e59e82e7.js.map +0 -1
  115. package/dist/chunks/8436.38f6bb4d.js +0 -2
  116. package/dist/chunks/8436.38f6bb4d.js.map +0 -1
  117. package/dist/chunks/871.2b767f8e.js +0 -2
  118. package/dist/chunks/871.2b767f8e.js.map +0 -1
  119. package/dist/chunks/8989.c317f6cd.js +0 -2
  120. package/dist/chunks/8989.c317f6cd.js.map +0 -1
  121. package/dist/chunks/9024.9fb24b35.js +0 -2
  122. package/dist/chunks/9024.9fb24b35.js.map +0 -1
  123. package/dist/chunks/9515.4b4e0758.js +0 -2
  124. package/dist/chunks/9515.4b4e0758.js.map +0 -1
  125. package/dist/chunks/9711.6468901d.js +0 -2
  126. package/dist/chunks/9711.6468901d.js.map +0 -1
  127. package/dist/chunks/editable-label.dac00113.js +0 -3
  128. package/dist/chunks/editable-label.dac00113.js.map +0 -1
  129. package/dist/chunks/eo-draw-canvas.c41d08df.js.map +0 -1
  130. package/dist/chunks/experimental-node.9b5d8200.js +0 -2
  131. package/dist/chunks/experimental-node.9b5d8200.js.map +0 -1
  132. package/dist/chunks/main.cab55157.js +0 -2
  133. package/dist/chunks/main.cab55157.js.map +0 -1
  134. package/dist/index.e995f9bc.js +0 -2
  135. package/dist/index.e995f9bc.js.map +0 -1
  136. /package/dist/chunks/{3144.94428cca.js.LICENSE.txt → 3144.b60bf1f3.js.LICENSE.txt} +0 -0
  137. /package/dist/chunks/{3233.0f638ba1.js.LICENSE.txt → 3233.716ac5b9.js.LICENSE.txt} +0 -0
  138. /package/dist/chunks/{4041.d221940a.js.LICENSE.txt → 4041.d0dafc02.js.LICENSE.txt} +0 -0
  139. /package/dist/chunks/{4185.1e71810a.js.LICENSE.txt → 4185.68f9c3cb.js.LICENSE.txt} +0 -0
  140. /package/dist/chunks/{5250.d0a6e755.js.LICENSE.txt → 5250.aa8a219f.js.LICENSE.txt} +0 -0
  141. /package/dist/chunks/{5670.2d7e3824.js.LICENSE.txt → 5670.d0d814f7.js.LICENSE.txt} +0 -0
  142. /package/dist/chunks/{7721.6ac62398.js.LICENSE.txt → 7721.ee387dd7.js.LICENSE.txt} +0 -0
  143. /package/dist/chunks/{7920.e59e82e7.js.LICENSE.txt → 7920.367555e2.js.LICENSE.txt} +0 -0
  144. /package/dist/chunks/{editable-label.dac00113.js.LICENSE.txt → editable-label.f986264b.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
- "use strict";(globalThis.webpackChunk_next_bricks_diagram=globalThis.webpackChunk_next_bricks_diagram||[]).push([[3171,5552],{5552:(n,e,t)=>{t.r(e),t.d(e,{i18n:()=>d,i18nText:()=>l,initializeI18n:()=>u});var i=t(5630),s=t(3324),r=t(848);let a=!1;const o=new Set;function u(n,e){if(a||(a=!0,s.i18n.use(r.default).init({fallbackLng:"zh",debug:!1,supportedLngs:["zh","en"],nonExplicitSupportedLngs:!0,interpolation:{escapeValue:!1},react:{useSuspense:!1},compatibilityJSON:"v3",resources:{}})),n&&e&&!o.has(n)){o.add(n);for(const[t,i]of Object.entries(e))s.i18n.addResourceBundle(t,n,i)}}var c=t(2729);function l(n){var e;if(!n)return;const t=null!==(e=s.i18n.language)&&void 0!==e?e:"zh-CN";if((0,c.hasOwnProperty)(n,t))return n[t];const i=t.split("-")[0];if(i!==t)return(0,c.hasOwnProperty)(n,i)?n[i]:void 0;const r=`${i}-`;for(const e of Object.keys(n))if(e.startsWith(r))return n[e]}const d=i.default}}]);
2
- //# sourceMappingURL=3171.ad783275.js.map
1
+ "use strict";(globalThis.webpackChunk_next_bricks_diagram=globalThis.webpackChunk_next_bricks_diagram||[]).push([[3171,5552],{5552:(n,e,t)=>{t.r(e),t.d(e,{i18n:()=>d,i18nText:()=>l,initializeI18n:()=>u});var i=t(5630),s=t(1147),r=t(848);let a=!1;const o=new Set;function u(n,e){if(a||(a=!0,s.i18n.use(r.default).init({fallbackLng:"zh",debug:!1,supportedLngs:["zh","en"],nonExplicitSupportedLngs:!0,interpolation:{escapeValue:!1},react:{useSuspense:!1},compatibilityJSON:"v3",resources:{}})),n&&e&&!o.has(n)){o.add(n);for(const[t,i]of Object.entries(e))s.i18n.addResourceBundle(t,n,i)}}var c=t(2304);function l(n){var e;if(!n)return;const t=null!==(e=s.i18n.language)&&void 0!==e?e:"zh-CN";if((0,c.hasOwnProperty)(n,t))return n[t];const i=t.split("-")[0];if(i!==t)return(0,c.hasOwnProperty)(n,i)?n[i]:void 0;const r=`${i}-`;for(const e of Object.keys(n))if(e.startsWith(r))return n[e]}const d=i.default}}]);
2
+ //# sourceMappingURL=3171.220e6979.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunks/3171.ad783275.js","mappings":"6OAEA,IAAIA,GAAc,EAClB,MAAMC,EAAwB,IAAIC,IAC3B,SAASC,EAAeC,EAAIC,GAwBjC,GAvBKL,IACHA,GAAc,EACd,EAAAM,KAICC,IAAmF,WAEnFC,KAAK,CACJC,YAAa,KACbC,OAAO,EACPC,cAAe,CAAC,KAAM,MACtBC,0BAA0B,EAC1BC,cAAe,CACbC,aAAa,GAEfC,MAAO,CACLC,aAAa,GAEfC,kBAAmB,KACnBC,UAAW,CAAC,KAGXd,GAAOC,IAAWJ,EAAsBkB,IAAIf,GAAjD,CAGAH,EAAsBmB,IAAIhB,GAC1B,IAAK,MAAOiB,EAAMH,KAAcI,OAAOC,QAAQlB,GAC7C,EAAAC,KAAKkB,kBAAkBH,EAAMjB,EAAIc,EAHnC,CAKF,C,cCjCO,SAASO,EAASC,GACvB,IAAIC,EACJ,IAAKD,EACH,OAEF,MAAME,EAAgD,QAApCD,EAAiB,EAAArB,KAAKsB,gBAAyC,IAAnBD,EAA4BA,EAAiB,QAE3G,IAAI,IAAAE,gBAAeH,EAAME,GACvB,OAAOF,EAAKE,GAGd,MAAME,EAAkBF,EAASG,MAAM,KAAK,GAC5C,GAAID,IAAoBF,EAGtB,OAAO,IAAAC,gBAAeH,EAAMI,GAAmBJ,EAAKI,QAAmBE,EAKzE,MAAMC,EAAS,GAAGH,KAClB,IAAK,MAAMI,KAAOZ,OAAOa,KAAKT,GAC5B,GAAIQ,EAAIE,WAAWH,GACjB,OAAOP,EAAKQ,EAGlB,CC3BO,MAAM5B,EAA6E,S","sources":["webpack:///../../node_modules/@next-core/i18n/dist/esm/init.js","webpack:///../../node_modules/@next-core/i18n/dist/esm/text.js","webpack:///../../node_modules/@next-core/i18n/dist/esm/index.js"],"sourcesContent":["import { i18n } from \"@next-core/i18n\";\nimport LanguageDetector from \"i18next-browser-languagedetector\";\nlet initialized = false;\nconst initializedNamespaces = new Set();\nexport function initializeI18n(NS, locales) {\n if (!initialized) {\n initialized = true;\n i18n\n // learn more: https://github.com/i18next/i18next-xhr-backend\n // .use(Backend)\n // learn more: https://github.com/i18next/i18next-browser-languageDetector\n .use(process.env.NODE_ENV === \"test\" ? LanguageDetector : /* istanbul ignore next */LanguageDetector.default)\n // for all options read: https://www.i18next.com/overview/configuration-options\n .init({\n fallbackLng: \"zh\",\n debug: process.env.NODE_ENV === \"development\",\n supportedLngs: [\"zh\", \"en\"],\n nonExplicitSupportedLngs: true,\n interpolation: {\n escapeValue: false // not needed for react as it escapes by default\n },\n react: {\n useSuspense: false\n },\n compatibilityJSON: \"v3\",\n resources: {}\n });\n }\n if (!NS || !locales || initializedNamespaces.has(NS)) {\n return;\n }\n initializedNamespaces.add(NS);\n for (const [lang, resources] of Object.entries(locales)) {\n i18n.addResourceBundle(lang, NS, resources);\n }\n}\n//# sourceMappingURL=init.js.map","import { i18n } from \"@next-core/i18n\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nexport function i18nText(data) {\n var _i18n$language;\n if (!data) {\n return;\n }\n const language = (_i18n$language = i18n.language) !== null && _i18n$language !== void 0 ? _i18n$language : \"zh-CN\";\n // First, make a perfect match.\n if (hasOwnProperty(data, language)) {\n return data[language];\n }\n // https://en.wikipedia.org/wiki/IETF_language_tag\n const primaryLanguage = language.split(\"-\")[0];\n if (primaryLanguage !== language) {\n // Then, match the primary language (which omits other subtags).\n // E.g., match `zh` if the current language is `zh-CN`.\n return hasOwnProperty(data, primaryLanguage) ? data[primaryLanguage] : undefined;\n }\n // At last, match the first key which starts with the primary language,\n // if the current language contains primary subtag only.\n // E.g., match `zh-CN` if the current language is `zh`.\n const prefix = `${primaryLanguage}-`;\n for (const key of Object.keys(data)) {\n if (key.startsWith(prefix)) {\n return data[key];\n }\n }\n}\n//# sourceMappingURL=text.js.map","import i18next from \"i18next\";\nexport const i18n = process.env.NODE_ENV === \"test\" ? i18next : /* istanbul ignore next */i18next.default;\nexport * from \"./init.js\";\nexport * from \"./text.js\";\n//# sourceMappingURL=index.js.map"],"names":["initialized","initializedNamespaces","Set","initializeI18n","NS","locales","i18n","use","init","fallbackLng","debug","supportedLngs","nonExplicitSupportedLngs","interpolation","escapeValue","react","useSuspense","compatibilityJSON","resources","has","add","lang","Object","entries","addResourceBundle","i18nText","data","_i18n$language","language","hasOwnProperty","primaryLanguage","split","undefined","prefix","key","keys","startsWith"],"sourceRoot":""}
1
+ {"version":3,"file":"chunks/3171.220e6979.js","mappings":"6OAEA,IAAIA,GAAc,EAClB,MAAMC,EAAwB,IAAIC,IAC3B,SAASC,EAAeC,EAAIC,GAwBjC,GAvBKL,IACHA,GAAc,EACd,EAAAM,KAICC,IAAmF,WAEnFC,KAAK,CACJC,YAAa,KACbC,OAAO,EACPC,cAAe,CAAC,KAAM,MACtBC,0BAA0B,EAC1BC,cAAe,CACbC,aAAa,GAEfC,MAAO,CACLC,aAAa,GAEfC,kBAAmB,KACnBC,UAAW,CAAC,KAGXd,GAAOC,IAAWJ,EAAsBkB,IAAIf,GAAjD,CAGAH,EAAsBmB,IAAIhB,GAC1B,IAAK,MAAOiB,EAAMH,KAAcI,OAAOC,QAAQlB,GAC7C,EAAAC,KAAKkB,kBAAkBH,EAAMjB,EAAIc,EAHnC,CAKF,C,cCjCO,SAASO,EAASC,GACvB,IAAIC,EACJ,IAAKD,EACH,OAEF,MAAME,EAAgD,QAApCD,EAAiB,EAAArB,KAAKsB,gBAAyC,IAAnBD,EAA4BA,EAAiB,QAE3G,IAAI,IAAAE,gBAAeH,EAAME,GACvB,OAAOF,EAAKE,GAGd,MAAME,EAAkBF,EAASG,MAAM,KAAK,GAC5C,GAAID,IAAoBF,EAGtB,OAAO,IAAAC,gBAAeH,EAAMI,GAAmBJ,EAAKI,QAAmBE,EAKzE,MAAMC,EAAS,GAAGH,KAClB,IAAK,MAAMI,KAAOZ,OAAOa,KAAKT,GAC5B,GAAIQ,EAAIE,WAAWH,GACjB,OAAOP,EAAKQ,EAGlB,CC3BO,MAAM5B,EAA6E,S","sources":["webpack:///../../node_modules/@next-core/i18n/dist/esm/init.js","webpack:///../../node_modules/@next-core/i18n/dist/esm/text.js","webpack:///../../node_modules/@next-core/i18n/dist/esm/index.js"],"sourcesContent":["import { i18n } from \"@next-core/i18n\";\nimport LanguageDetector from \"i18next-browser-languagedetector\";\nlet initialized = false;\nconst initializedNamespaces = new Set();\nexport function initializeI18n(NS, locales) {\n if (!initialized) {\n initialized = true;\n i18n\n // learn more: https://github.com/i18next/i18next-xhr-backend\n // .use(Backend)\n // learn more: https://github.com/i18next/i18next-browser-languageDetector\n .use(process.env.NODE_ENV === \"test\" ? LanguageDetector : /* istanbul ignore next */LanguageDetector.default)\n // for all options read: https://www.i18next.com/overview/configuration-options\n .init({\n fallbackLng: \"zh\",\n debug: process.env.NODE_ENV === \"development\",\n supportedLngs: [\"zh\", \"en\"],\n nonExplicitSupportedLngs: true,\n interpolation: {\n escapeValue: false // not needed for react as it escapes by default\n },\n react: {\n useSuspense: false\n },\n compatibilityJSON: \"v3\",\n resources: {}\n });\n }\n if (!NS || !locales || initializedNamespaces.has(NS)) {\n return;\n }\n initializedNamespaces.add(NS);\n for (const [lang, resources] of Object.entries(locales)) {\n i18n.addResourceBundle(lang, NS, resources);\n }\n}\n//# sourceMappingURL=init.js.map","import { i18n } from \"@next-core/i18n\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nexport function i18nText(data) {\n var _i18n$language;\n if (!data) {\n return;\n }\n const language = (_i18n$language = i18n.language) !== null && _i18n$language !== void 0 ? _i18n$language : \"zh-CN\";\n // First, make a perfect match.\n if (hasOwnProperty(data, language)) {\n return data[language];\n }\n // https://en.wikipedia.org/wiki/IETF_language_tag\n const primaryLanguage = language.split(\"-\")[0];\n if (primaryLanguage !== language) {\n // Then, match the primary language (which omits other subtags).\n // E.g., match `zh` if the current language is `zh-CN`.\n return hasOwnProperty(data, primaryLanguage) ? data[primaryLanguage] : undefined;\n }\n // At last, match the first key which starts with the primary language,\n // if the current language contains primary subtag only.\n // E.g., match `zh-CN` if the current language is `zh`.\n const prefix = `${primaryLanguage}-`;\n for (const key of Object.keys(data)) {\n if (key.startsWith(prefix)) {\n return data[key];\n }\n }\n}\n//# sourceMappingURL=text.js.map","import i18next from \"i18next\";\nexport const i18n = process.env.NODE_ENV === \"test\" ? i18next : /* istanbul ignore next */i18next.default;\nexport * from \"./init.js\";\nexport * from \"./text.js\";\n//# sourceMappingURL=index.js.map"],"names":["initialized","initializedNamespaces","Set","initializeI18n","NS","locales","i18n","use","init","fallbackLng","debug","supportedLngs","nonExplicitSupportedLngs","interpolation","escapeValue","react","useSuspense","compatibilityJSON","resources","has","add","lang","Object","entries","addResourceBundle","i18nText","data","_i18n$language","language","hasOwnProperty","primaryLanguage","split","undefined","prefix","key","keys","startsWith"],"sourceRoot":""}
@@ -0,0 +1,3 @@
1
+ /*! For license information please see 3233.716ac5b9.js.LICENSE.txt */
2
+ "use strict";(globalThis.webpackChunk_next_bricks_diagram=globalThis.webpackChunk_next_bricks_diagram||[]).push([[3233],{821:(e,t,n)=>{n.d(t,{A:()=>r});var o=n(6758),a=n.n(o),i=n(935),l=n.n(i)()(a());l.push([e.id,":host{display:block;width:100%;height:100%;overflow:hidden}:host([hidden]){display:none}*{box-sizing:border-box}.diagram{width:100%;height:100%;position:relative;opacity:0}.diagram:focus{outline:none}.lines,\n.line-labels,\n.nodes{position:absolute;top:0;left:0}.line-labels{opacity:0}.ready{opacity:1}.diagram.ready.pannable{cursor:grab}.diagram.pannable.grabbing{cursor:grabbing}.nodes,\n.lines{transform-origin:0 0}.node,\n.line-label{position:absolute;visibility:hidden}.line-label{transform:translate(-50%,-50%);white-space:pre-line;width:max-content;text-align:center;line-height:1}.lines{pointer-events:none}.line.interactable{pointer-events:auto;cursor:default}.connect-line{position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none}.connect-line:not(.connecting){display:none}.line:not(.active) .active-bg{display:none}",""]);const r=l.toString()},1324:(e,t,n)=>{function o(e,t){for(const{id:n,position:o,placement:a,angle:i,size:l}of e){const e=t.get(n);if(e&&(e.style.left=`${o[0]}px`,e.style.top=`${o[1]}px`,e.style.visibility="visible","center"!==a&&void 0!==i)){const[t,n]=null!=l?l:[0,0],o=Math.floor((i<0?2*Math.PI+i:i)/Math.PI*4),r="start"===a?o:(o+4)%8,s=Math.tan(i),d=i+("start"===a?1:-1)*Math.PI/2,c=2,u=Math.sin(d)*c,f=Math.cos(d)*c;let p;switch(r){case 0:p=`translate(0,${t*s+u}px)`;break;case 1:p=`translate(${n/s-f}px,0)`;break;case 2:p=`translate(calc(${n/s+f}px - 100%),0)`;break;case 3:p=`translate(-100%,${-t*s-u}px)`;break;case 4:p=`translate(-100%,calc(${-t*s+u}px - 100%))`;break;case 5:p=`translate(calc(${-n/s-f}px - 100%),-100%)`;break;case 6:p=`translate(${-n/s+f}px,-100%)`;break;default:p=`translate(0,calc(${t*s-u}px - 100%))`}e.style.transform=p}}}n.d(t,{F:()=>o})},1518:(e,t,n)=>{n.d(t,{R:()=>r});var o=n(8653),a=n(3188),i=n(4059),l=n(733);function r(e,t,n){const r=new WeakMap,c=new Map,u=new Map;for(const e of t)c.set(e.id,e);for(const t of e){const{data:e}=t;r.set(e,t)}let f=!1;return n.map((t=>{var n,p,m,h;let{line:v,edge:g,markers:y,...k}=t;const b=r.get(g);if(!b)return;const w=null!==(n=null===(p=y.find((e=>"default"===e.variant&&"start"===e.placement)))||void 0===p?void 0:p.offset)&&void 0!==n?n:0,x=null!==(m=null===(h=y.find((e=>"default"===e.variant&&"end"===e.placement)))||void 0===h?void 0:h.offset)&&void 0!==m?m:0;let M,{points:R}=b;if(!R){const t=c.get(g.source),n=c.get(g.target);if(t&&n&&t!==n){if("polyline"===v.type){if(!(0,l.w)(t,n,w,x)){var E,L;(()=>{if(f)return;f=!0;const t=(e,t)=>{let n=u.get(e);n||u.set(e,n=new Set);const o=c.get(t);o&&n.add(o)};for(const{data:{source:n,target:o}}of e)n!==o&&(t(n,o),t(o,n))})();const o=s(t,n,w),a=s(n,t,x),l=d(null!==(E=u.get(g.source))&&void 0!==E?E:[],t,o,w),r=d(null!==(L=u.get(g.target))&&void 0!==L?L:[],n,a,x),p=(l.indexOf(n)+1)/(l.length+1),m=(r.indexOf(t)+1)/(r.length+1);R=(0,i.o)(t,n,o,a,p,m)}}else R=(0,a.h)(t,n);if(R){const e=R[0],t=R[R.length-1];M=Math.atan2(t.y-e.y,t.x-e.x)}}}return{...k,markers:y,line:v,edge:g,d:(0,o.S)(R,v.curveType,w,x),angle:M,labelSize:b.labelSize}})).filter(Boolean)}function s(e,t,n){const o=Math.atan2(e.height+2*n,e.width+2*n),{x:a,y:i}=e,{x:l,y:r}=t,s=Math.atan2(r-i,l-a),d=s<0?2*Math.PI+s:s;switch(Math.floor(d/Math.PI*2)){case 0:return d<o?"right":"bottom";case 1:return d<Math.PI-o?"bottom":"left";case 2:return d<Math.PI+o?"left":"top";default:return d<2*Math.PI-o?"top":"right"}}function d(e,t,n,o){return[...e].filter((e=>s(t,e,o)===n)).sort(((e,t)=>{const{x:o,y:a}=e,{x:i,y:l}=t;return"top"===n||"bottom"===n?o-i:a-l}))}},1803:(e,t,n)=>{n.d(t,{m:()=>r});var o=n(8769),a=n.n(o),i=n(3373),l=n.n(i);function r(e){var t,n;let{line:{line:o,edge:i,d:r,markers:s},linePaths:d,lineMaskRects:c,maskPrefix:u,markerPrefix:f,activeLineMarkerPrefix:p,active:m,activeRelated:h,onLineClick:v,onLineDoubleClick:g}=e;const y=c.has(o.$id)?`url(#${u}${o.$id})`:void 0,{strokeColor:k,strokeWidth:b,interactStrokeWidth:w}={...o,...m?null===(t=o.overrides)||void 0===t?void 0:t.active:h?null===(n=o.overrides)||void 0===n?void 0:n.activeRelated:null},x=m?"active":h?"active-related":"default";let M,R;for(const e of s)e.variant===x&&("start"===e.placement?M=`url(#${f}${e.index})`:R=`url(#${f}${e.index})`);return a().createElement("g",{className:l()("line",{interactable:o.interactable,active:m,"active-related":h}),onClick:o.interactable?()=>{null==v||v({id:o.$id,edge:i})}:void 0,onDoubleClick:o.interactable?e=>{e.preventDefault(),e.stopPropagation(),null==g||g({id:o.$id,edge:i})}:void 0,style:{cursor:o.cursor}},o.interactable&&a().createElement("path",{d:r,fill:"none",stroke:"transparent",strokeWidth:w}),a().createElement("path",{ref:e=>d.set(o.$id,e),stroke:k,strokeWidth:b,d:r,fill:"none",markerStart:M,markerEnd:R,mask:y}),a().createElement("path",{stroke:"var(--palette-blue-3)",strokeWidth:b,d:r,fill:"none",className:"active-bg",markerStart:`url(#${p}start)`,markerEnd:`url(#${p}end)`,mask:y}))}},2448:(e,t,n)=>{n.d(t,{P:()=>i});var o=n(6911),a=n(8657);function i(e,t){let{nodes:n,nodesRefRepository:i,connectNodes:l,dragNodes:r,scale:s,setConnectLineState:d,setConnectLineTo:c,setManualLayoutStatus:u,setNodeMovement:f,onSwitchActiveTarget:p,onNodesConnect:m}=t;function h(e){if(i)for(const[t,o]of i)if(e(o))return null==n?void 0:n.find((e=>e.id===t))}if(!l&&!r)return;const v=h((t=>t.contains(e.target)));if(!v)return;if(!function(e,t){return e.sourceType?[].concat(e.sourceType).includes(t.type):(0,o.checkIfByTransform)(e,{source:t})}(l||r,v))return;e.stopPropagation();const g=[e.clientX,e.clientY];if(l){d({from:g,options:{strokeColor:a.mF,strokeWidth:a.VO,...o.__secret_internals.legacyDoTransform({source:v},l)}}),c(g),null==p||p({type:"node",nodeId:v.id});const e=e=>{c([e.clientX,e.clientY])},t=n=>{document.removeEventListener("mousemove",e),document.removeEventListener("mouseup",t),d(null);const o=n.composedPath(),a=h((e=>o.includes(e)));a&&v!==a&&(null==m||m({source:v,target:a}))};return document.addEventListener("mousemove",e),void document.addEventListener("mouseup",t)}null==p||p({type:"node",nodeId:v.id});let y=!1;const k=e=>{const t=[(e.clientX-g[0])/s,(e.clientY-g[1])/s];y||(y=t[0]**2+t[1]**2>=9,y&&u("started")),y&&f({id:v.id,move:t})},b=()=>{y=!1,document.removeEventListener("mousemove",k),document.removeEventListener("mouseup",b),f(null),u("finished")};document.addEventListener("mousemove",k),document.addEventListener("mouseup",b)}},2547:(e,t,n)=>{n.d(t,{d2:()=>r});var o=n(8769),a=n.n(o),i=n(8792),l=n(6911);function r(e){let{labels:t,onRendered:n}=e;const[i,l]=(0,o.useState)(!1),[r,c]=(0,o.useState)([]),u=(0,o.useMemo)((()=>new Map),[]),f=(0,o.useCallback)(((e,t)=>{t&&u.set(e,t),c((t=>t.includes(e)?t:t.concat(e)))}),[u]),p=(0,o.useCallback)((e=>{c((t=>{const n=t.indexOf(e);return-1===n?t:t.slice(0,n).concat(t.slice(n+1))})),u.delete(e)}),[u]);return(0,o.useEffect)((()=>{l(!(null!=t&&t.some((e=>!r.includes(e.id)))))}),[t,r]),(0,o.useEffect)((()=>{null==n||n(i?u:null)}),[u,i]),a().createElement(a().Fragment,null,null==t?void 0:t.map((e=>{let{text:t,label:n,id:o,edge:i}=e;return n?a().createElement("div",{key:o,className:"line-label"},a().createElement(d,{id:o,edge:i,label:n,onRendered:f,onUnmount:p})):a().createElement(s,{key:o,id:o,text:t,onRendered:f})})))}function s(e){let{id:t,text:n,onRendered:i}=e;const l=(0,o.useCallback)((e=>{null==i||i(t,e)}),[t,i]);return a().createElement("div",{className:"line-label",ref:l,style:n.style},n.content)}function d(e){let{id:t,edge:n,label:r,onRendered:s,onUnmount:d}=e;const c=(0,o.useMemo)((()=>(0,l.checkIfByTransform)(r,{edge:n})?r.useBrick:null),[n,r]),u=(0,o.useMemo)((()=>({edge:n})),[n]);(0,o.useEffect)((()=>{c||setTimeout((()=>{null==s||s(t,null)}))}),[t,s,c]),(0,o.useEffect)((()=>()=>{null==d||d(t)}),[]);const f=(0,o.useCallback)((e=>{e&&setTimeout((()=>{null==s||s(t,e.parentElement)}))}),[t,s]),p=(0,o.useCallback)((()=>{setTimeout((()=>{null==s||s(t,null)}))}),[t,s]);return c?a().createElement(i.ReactUseBrick,{refCallback:f,ignoredCallback:p,useBrick:c,data:u}):null}},2673:(e,t,n)=>{function o(e,t){return e?!!t&&e.type===t.type&&("node"===e.type?e.nodeId===t.nodeId:e.edge.source===t.edge.source&&e.edge.target===t.edge.target):!t}n.d(t,{c:()=>o})},5157:(e,t,n)=>{n.d(t,{a:()=>a});var o=n(1030);function a(e,t){let{renderedNodes:n,activeTarget:o}=t;const a="node"===(null==o?void 0:o.type)?n.find((e=>e.id===o.nodeId)):void 0,l="edge"===(null==o?void 0:o.type)?o.edge:void 0;if(!a&&!l)return;const r=e.key||e.keyCode||e.which;let s,d,c;switch(r){case"Backspace":case 8:case"Delete":case 46:a?(s="delete-node",d=a):(s="delete-edge",c=l);break;default:if(!a)return;switch(r){case"ArrowLeft":case 37:d=i("x",n,a,-1),s="switch-active-node";break;case"ArrowUp":case 38:d=i("y",n,a,-1),s="switch-active-node";break;case"ArrowRight":case 39:d=i("x",n,a,1),s="switch-active-node";break;case"ArrowDown":case 40:d=i("y",n,a,1),s="switch-active-node"}}var u;return s?(e.preventDefault(),e.stopPropagation(),{action:s,node:null===(u=d)||void 0===u?void 0:u.data,edge:c}):void 0}function i(e,t,n,a){const i="x"===e?"y":"x";let l;const r=t.filter((t=>t!==n&&(l=(t[e]-n[e])*a,l>0)&&l>Math.abs(n[i]-t[i])));return(0,o.minBy)(r,(t=>(n[i]-t[i])**2+(n[e]-t[e])**2))}},5987:(e,t,n)=>{function o(e,t){const n=new Map;for(const{id:o,lineId:a,placement:i}of e){if(!t||"center"!==i)continue;const e=t.get(o);if(!e)continue;const{offsetWidth:l,offsetHeight:r}=e;if(0===l||0===r)continue;const s=3;n.set(a,[{left:e.offsetLeft-l/2-s,top:e.offsetTop-r/2-s,width:l+2*s,height:r+2*s}])}return n}n.d(t,{G:()=>o})},6671:(e,t,n)=>{n.d(t,{w:()=>s});var o=n(8769),a=n.n(o),i=n(3373),l=n.n(i),r=n(3739);function s(e){let{connectLineState:t,connectLineTo:n,markerPrefix:o}=e;return a().createElement("svg",{width:"100%",height:"100%",className:l()("connect-line",{connecting:!!t&&(n[0]-t.from[0])**2+(n[1]-t.from[1])**2>25})},a().createElement("defs",null,a().createElement(r.c,{type:"arrow",id:`${o}connect-line`,strokeColor:null==t?void 0:t.options.strokeColor})),a().createElement("path",{d:t?`M${t.from.join(" ")}L${n.join(" ")}`:"",fill:"none",stroke:null==t?void 0:t.options.strokeColor,strokeWidth:null==t?void 0:t.options.strokeWidth,markerEnd:null!=t&&t.options.arrow?`url(#${o}connect-line)`:void 0}))}},6753:(e,t,n)=>{n.d(t,{_:()=>u});var o=n(8769),a=n(6911),i=n(6330),l=n(1361),r=function(){var e=(0,i.A)((function*(e,t,n){return(yield l.http.post("api/gateway/cmdb.instance.PostSearchV3/v3/object/".concat(e,"/instance/_search"),t,n)).data}));return function(t,n,o){return e.apply(this,arguments)}}(),s=function(){var e=(0,i.A)((function*(e,t,n,o){return(yield l.http.put("api/gateway/cmdb.instance.UpdateInstanceV2/v2/object/".concat(e,"/instance/").concat(t),n,o)).data}));return function(t,n,o,a){return e.apply(this,arguments)}}(),d=function(){var e=(0,i.A)((function*(e,t,n){return(yield l.http.post("api/gateway/cmdb.instance.CreateInstance/v2/object/".concat(e,"/instance"),t,n)).data}));return function(t,n,o){return e.apply(this,arguments)}}();const c="GRAPH_USER_VIEW@EASYOPS";function u(e){const[t,n]=(0,o.useState)(!e),i=(0,o.useRef)(),[l,u]=(0,o.useState)(null),f=(0,o.useMemo)((()=>function(){let e=!1;const t=[];return async function(n){if(t.push(n),!e){let n;for(e=!0;n=t.shift();)try{await n()}catch(e){console.error(e)}e=!1}}}()),[]);return(0,o.useEffect)((()=>{!async function(){if(!e)return void n(!0);const{namespace:t,key:o}=e;if(!t||!o)return console.error("Namespace and key are required to save graph user view"),void n(!0);try{const e=(await r(c,{fields:["nodes"],query:{namespace:{$eq:t},key:{$eq:o}},page:1,page_size:30})).list;if(e.length>0){var l;const t=e[0],n=new Map(null===(l=t.nodes)||void 0===l?void 0:l.map((e=>[e.id,e])));i.current=t.instanceId,u(n)}else u(null)}catch(e){(0,a.handleHttpError)(e)}finally{n(!0)}}()}),[e]),{userViewReady:t,userViewNodesMap:l,saveUserView:(0,o.useCallback)((t=>{const{namespace:n,key:o}=null!=e?e:{};n&&o&&f((async()=>{const e={namespace:n,key:o,nodes:t};try{if(i.current)await s(c,i.current,e,{interceptorParams:{ignoreLoadingBar:!0}});else{const t=await d(c,e,{interceptorParams:{ignoreLoadingBar:!0}});i.current=t.instanceId}}catch(e){(0,a.handleHttpError)(e)}}))}),[e,f])}}},8060:(e,t,n)=>{function o(e,t,n){return 0===e.length&&0===t.length?e:t.flatMap((e=>{let{line:{text:t,label:o,$id:a},edge:i,labelSize:l,angle:r}=e;const s=n.get(a);if(!t&&!o||!s||!s.getAttribute("d"))return[];let d,c;o?(d="label",c=[].concat(o)):(d="text",c=[].concat(t));const{x:u,y:f,width:p,height:m}=s.getBBox(),h=s.getTotalLength();return c.map((e=>{var t;const n=null!==(t=e.placement)&&void 0!==t?t:"center",o=s.getPointAtLength("start"===n?Math.min(0,h/2):"end"===n?Math.max(h-0,h/2):h/2);return{[d]:e,edge:i,position:[o.x,o.y],lineRect:{left:u,top:f,width:p,height:m},id:`${a}-${n}`,lineId:a,placement:n,angle:r,size:null==l?void 0:l[n]}}))}))}n.d(t,{z:()=>o})},8069:(e,t,n)=>{n.d(t,{o:()=>k});var o=n(8769),a=n(7586),i=n.n(a),l=n(1030);function r(e,t,n){for(const i of e){var o,a;const e=t.get(i.id);i.width=Math.max(null!==(o=null==e?void 0:e.offsetWidth)&&void 0!==o?o:0,10)+n[1]+n[3],i.height=Math.max(null!==(a=null==e?void 0:e.offsetHeight)&&void 0!==a?a:0,10)+n[0]+n[2]}}function s(e,t,n){for(const a of e){var o;const e=a.x-a.width/2+n[3],i=a.y-a.height/2+n[0],l=null===(o=t.get(a.id))||void 0===o?void 0:o.parentElement;l&&(l.style.left=`${e}px`,l.style.top=`${i}px`,l.style.visibility="visible")}}var d=n(8802),c=n(6149),u=n(4842),f=n(1945),p=n(9418),m=n(3854),h=n(7931);function v(e,t){var n;let{normalizedLinesMap:o,lineLabelsRefRepository:a}=t;return null!==(n=null==e?void 0:e.map((e=>{const t=o.get(e),n={};if(t)for(const e of["start","end"]){const o=a.get(`${t}-${e}`);o&&(n[e]=[o.offsetWidth,o.offsetHeight])}return{data:e,labelSize:n}})))&&void 0!==n?n:[]}function g(e,t){return new Array(t).fill(null).map(((t,n)=>({dummy:!0,id:`$dummy-${e.source}-${e.target}-${n}`})))}function y(e,t){return new Array(t+1).fill(null).map(((n,o)=>({dummy:!0,source:0===o?e.source:`$dummy-${e.source}-${e.target}-${o-1}`,target:o===t?e.target:`$dummy-${e.source}-${e.target}-${o}`})))}function k(e){let{layout:t,nodes:n,edges:a,manualLayoutStatus:k,userViewReady:b,userViewNodesMap:w,nodeMovement:x,nodesRefRepository:M,lineLabelsRefRepository:R,normalizedLinesMap:E,nodesRenderId:L,lineLabelsRenderId:$,layoutOptions:C}=e;const P="initial"===k?t:"manual",[S,I]=(0,o.useState)(null),[T,N]=(0,o.useState)({nodes:[],edges:[]});return(0,o.useEffect)((()=>{b&&I((e=>"dagre"===P?function(e,t,n,o){const{nodePadding:a,...c}={nodePadding:0,rankdir:"TB",ranksep:50,edgesep:10,nodesep:50,...(0,l.pick)(o,["nodePadding","rankdir","ranksep","edgesep","nodesep","align"])},u=(0,d.D)(a),f=new(i().graphlib.Graph);f.setGraph(c),f.setDefaultEdgeLabel((function(){return{}}));for(const n of null!=t?t:[]){const t=null==e?void 0:e.getNode(n.id);f.setNode(n.id,(null==t?void 0:t.data)===n?t:{id:n.id,data:n})}for(const e of null!=n?n:[])f.setEdge(e.source,e.target,{data:e});return{layout:"dagre",getNode:e=>f.node(e),applyLayout(e){let{nodesRefRepository:t,lineLabelsRefRepository:n,normalizedLinesMap:o}=e;const a=[];for(const e of f.nodes()){const t=f.node(e);t?a.push(t):console.error("Diagram node not found: %s",e)}if(0===a.length)return null;r(a,t,u);const l=f.edges().map((e=>f.edge(e)));for(const e of l){const t=o.get(e.data);if(t)for(const o of["center","start","end"]){const a=n.get(`${t}-${o}`);if(a){var d;const{offsetWidth:t,offsetHeight:n}=a;"center"===o&&(e.labelpos="c",e.width=t,e.height=n),null!==(d=e.labelSize)&&void 0!==d||(e.labelSize={}),e.labelSize[o]=[t,n]}}}return i().layout(f),s(a,t,u),{nodes:a,edges:l}}}}(e,n,a,C):"force"===P?function(e,t,n,o,a){const{nodePadding:i,dummyNodesOnEdges:k,collide:b}={nodePadding:0,dummyNodesOnEdges:0,...(0,l.pick)(a,["nodePadding","dummyNodesOnEdges"]),collide:!1!==(null==a?void 0:a.collide)&&{dummyRadius:1,radiusDiff:5,strength:1,iterations:1,...!0===(null==a?void 0:a.collide)?null:null==a?void 0:a.collide}},w=(0,d.D)(i),x=[];for(const n of null!=t?t:[]){const t=null==e?void 0:e.getNode(n.id);if((null==t?void 0:t.data)===n)x.push(t);else{const e={id:n.id,data:n},t=null==o?void 0:o.get(n.id);t&&(e.fx=t.x,e.fy=t.y),x.push(e)}}return{layout:"force",getNode:function(e){return x.find((t=>t.data.id===e))},applyLayout(e){let{nodesRefRepository:t,lineLabelsRefRepository:o,normalizedLinesMap:a}=e;if(0===x.length)return null;r(x,t,w);const i=x.slice(),l=[];for(const e of null!=n?n:[])l.push({...e}),k>0&&(i.push(...g(e,k)),l.push(...y(e,k)));const d=(0,c.A)(l).id((e=>e.id));k>0&&d.distance((e=>e.dummy?30/(k+1):30)).strength((e=>e.dummy?.5:1));const M=(0,u.A)(i).force("link",d).force("x",(0,f.A)()).force("y",(0,p.A)()).force("charge",(0,m.A)());b&&M.force("collide",(0,h.A)().radius((e=>e.dummy?b.dummyRadius:Math.sqrt(e.width**2+e.height**2)/2+b.radiusDiff)).strength(b.strength).iterations(b.iterations)),M.stop(),function(e){e.tick(Math.ceil(Math.log(e.alphaMin())/Math.log(1-e.alphaDecay())))}(M),s(x,t,w);const R=v(n,{normalizedLinesMap:a,lineLabelsRefRepository:o});return{nodes:x,edges:R}}}}(e,n,a,w,C):"manual"===P?function(e,t,n,o){const{nodePadding:a}={nodePadding:0,...(0,l.pick)(o,["nodePadding"])},i=(0,d.D)(a),c=[];for(const n of null!=t?t:[]){const t=null==e?void 0:e.getNode(n.id);(null==t?void 0:t.data)===n?(c.push(t),t.x0=t.x,t.y0=t.y):c.push({id:n.id,data:n})}let u;return{layout:"manual",getNode:function(e){return c.find((t=>t.data.id===e))},applyLayout(e){let{manualLayoutStatus:t,nodesRefRepository:o,lineLabelsRefRepository:a,normalizedLinesMap:l,nodeMovement:d}=e;if(0===c.length)return null;var f,p;r(c,o,i),d&&(u=c.find((e=>e.id===d.id)),u&&(u.x=(null!==(f=u.x0)&&void 0!==f?f:0)+d.move[0],u.y=(null!==(p=u.y0)&&void 0!==p?p:0)+d.move[1])),"finished"===t&&u&&(u.x0=u.x,u.y0=u.y),s(c,o,i);const m=v(n,{normalizedLinesMap:l,lineLabelsRefRepository:a});return{nodes:c,edges:m}}}}(e,n,a,C):null))}),[a,n,P,C,b,w]),(0,o.useEffect)((()=>{if(!M||!R||P!==(null==S?void 0:S.layout))return;const e=null==S?void 0:S.applyLayout({manualLayoutStatus:k,nodesRefRepository:M,lineLabelsRefRepository:R,normalizedLinesMap:E,nodeMovement:x});e&&N(e)}),[P,k,S,x,M,R,L,$,E]),T}},8308:(e,t,n)=>{function o(e,t){let{canvasWidth:n,canvasHeight:o,scaleRange:a}=t,i=1/0,l=1/0,r=-1/0,s=-1/0;for(const t of e){const e=t.width/2,n=t.height/2,o=t.x-e,a=t.x+e,d=t.y-n,c=t.y+n;o<i&&(i=o),a>r&&(r=a),d<l&&(l=d),c>s&&(s=c)}const d=r-i,c=s-l,u=a&&(d>n||c>o)?Math.max(Math.min(n/d,o/c,a[1]),a[0]):1;return{x:(n-d*u)/2-i*u,y:(o-c*u)/2-l*u,k:u}}n.d(t,{r:()=>o})},8657:(e,t,n)=>{n.d(t,{Ie:()=>l,KP:()=>i,VO:()=>a,Yt:()=>s,mF:()=>o,sS:()=>r});const o="var(--palette-gray-5)",a=1,i="curveBasis",l=20,r=.5,s=2},8892:(e,t,n)=>{n.d(t,{p:()=>r});var o=n(8769),a=n.n(o),i=n(8792),l=n(6911);function r(e){let{nodes:t,nodeBricks:n,onRendered:i}=e;const[l,r]=(0,o.useState)(!1),[d,c]=(0,o.useState)([]),u=(0,o.useMemo)((()=>new Map),[]),f=(0,o.useCallback)(((e,t)=>{t&&u.set(e,t),c((t=>t.includes(e)?t:t.concat(e)))}),[u]),p=(0,o.useCallback)((e=>{c((t=>{const n=t.indexOf(e);return-1===n?t:t.slice(0,n).concat(t.slice(n+1))})),u.delete(e)}),[u]);return(0,o.useEffect)((()=>{r(!(null!=t&&t.some((e=>!d.includes(e.id)))))}),[t,d]),(0,o.useEffect)((()=>{null==i||i(l?u:null)}),[u,l]),a().createElement(a().Fragment,null,null==t?void 0:t.map((e=>a().createElement("div",{key:e.id,className:"node"},a().createElement(s,{nodeBricks:n,node:e,onRendered:f,onUnmount:p})))))}function s(e){let{node:t,nodeBricks:n,onRendered:r,onUnmount:s}=e;const d=(0,o.useMemo)((()=>{var e;return null===(e=function(e,t){return null==t?void 0:t.find((t=>t.nodeType?[].concat(t.nodeType).includes(e.type):(0,l.checkIfByTransform)(t,{node:e})))}(t,n))||void 0===e?void 0:e.useBrick}),[t,n]),c=(0,o.useMemo)((()=>({node:t})),[t]);(0,o.useEffect)((()=>{d||setTimeout((()=>{null==r||r(t.id,null)}))}),[t.id,r,d]),(0,o.useEffect)((()=>()=>{null==s||s(t.id)}),[]);const u=(0,o.useCallback)((e=>{e&&setTimeout((()=>{null==r||r(t.id,e)}))}),[t.id,r]),f=(0,o.useCallback)((()=>{setTimeout((()=>{null==r||r(t.id,null)}))}),[t.id,r]);return d?a().createElement(i.ReactUseBrick,{refCallback:u,ignoredCallback:f,useBrick:d,data:c}):null}},9137:(e,t,n)=>{n.d(t,{t:()=>r});var o=n(1030),a=n(6911);function i(e,t){return!!t&&(t.edgeType?[].concat(t.edgeType).includes(e.type):(0,a.checkIfByTransform)(t,{edge:e}))}var l=n(8657);function r(e,t){const n=[],r=new WeakMap,d=[];for(const v of null!=e?e:[]){var c,u;const{label:e,...g}=null!==(c=null==t?void 0:t.find((e=>i(v,e))))&&void 0!==c?c:{},y=a.__secret_internals.legacyDoTransform({edge:v},g);if(!1===(null==y?void 0:y.draw))continue;const k=(0,o.uniqueId)("line-"),b={strokeColor:l.mF,strokeWidth:l.VO,curveType:"polyline"===(null==y?void 0:y.type)?"curveLinear":l.KP,interactStrokeWidth:l.Ie,type:"auto",...y,label:e,$id:k};r.set(v,k);const w=[],x=null!==(u=b.markers)&&void 0!==u?u:b.arrow?[{placement:"end",type:"arrow"}]:[];for(const e of x){var f,p,m,h;const{placement:t,type:n}=e,o=null!=t?t:"end";let a,i;switch(n){case"0..1":case"0..N":i=21,a=n;break;default:i=1,a="arrow"}const l=i*b.strokeWidth,r=s({type:a,strokeColor:b.strokeColor},d);w.push({index:r,placement:o,type:a,variant:"default",offset:l});const c=s({type:a,strokeColor:null!==(f=null===(p=b.overrides)||void 0===p||null===(p=p.active)||void 0===p?void 0:p.strokeColor)&&void 0!==f?f:b.strokeColor},d);w.push({index:c,placement:o,type:a,variant:"active",offset:l});const u=s({type:a,strokeColor:null!==(m=null===(h=b.overrides)||void 0===h||null===(h=h.activeRelated)||void 0===h?void 0:h.strokeColor)&&void 0!==m?m:b.strokeColor},d);w.push({index:u,placement:o,type:a,variant:"active-related",offset:l})}n.push({line:b,markers:w,edge:v})}return{normalizedLines:n,normalizedLinesMap:r,markers:d}}function s(e,t){let n=(0,o.findIndex)(t,e);return-1===n&&(n=t.push(e)-1),n}},9191:(e,t,n)=>{n.d(t,{y:()=>i});var o=n(8769),a=n.n(o);function i(e){let{lineId:t,rects:n,maskPrefix:o,renderedLineLabels:i}=e;const l=i.find((e=>e.lineId===t&&"center"===e.placement));if(!l)return null;const{lineRect:r}=l,s=(c=1e3,{left:(d=r).left-c,top:d.top-c,width:d.width+2e3,height:d.height+2e3});var d,c;return a().createElement("mask",{id:`${o}${t}`,x:s.left,y:s.top,width:s.width,height:s.height},a().createElement("rect",{x:s.left,y:s.top,width:s.width,height:s.height,fill:"white"}),n.map(((e,t)=>a().createElement("rect",{key:t,x:e.left,y:e.top,width:e.width,height:e.height,fill:"black"}))))}}}]);
3
+ //# sourceMappingURL=3233.716ac5b9.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunks/3233.716ac5b9.js","mappings":"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","sources":["webpack:///./src/diagram/styles.shadow.css","webpack:///./src/diagram/processors/adjustLineLabels.ts","webpack:///./src/diagram/processors/getRenderedLines.ts","webpack:///./src/diagram/LineComponent.tsx","webpack:///./src/diagram/processors/handleNodesMouseDown.ts","webpack:///./src/diagram/LineLabelComponent.tsx","webpack:///./src/diagram/processors/sameTarget.ts","webpack:///./src/diagram/processors/handleKeyboard.ts","webpack:///./src/diagram/processors/getLineMaskRects.ts","webpack:///./src/diagram/ConnectLineComponent.tsx","webpack:///../../node_modules/@next-api-sdk/cmdb-sdk/dist/esm/api/cmdb/instance/postSearchV3.js","webpack:///../../node_modules/@next-api-sdk/cmdb-sdk/dist/esm/api/cmdb/instance/updateInstanceV2.js","webpack:///../../node_modules/@next-api-sdk/cmdb-sdk/dist/esm/api/cmdb/instance/createInstance.js","webpack:///./src/diagram/hooks/useUserView.ts","webpack:///./src/diagram/processors/createAsyncQueue.ts","webpack:///./src/diagram/processors/getRenderedLineLabels.ts","webpack:///./src/diagram/processors/adjustNodesSize.ts","webpack:///./src/diagram/processors/adjustNodesPosition.ts","webpack:///./src/diagram/processors/getRenderedEdges.ts","webpack:///./src/diagram/processors/getForceGraph.ts","webpack:///./src/diagram/hooks/useRenderedDiagram.ts","webpack:///./src/diagram/processors/getDagreGraph.ts","webpack:///./src/diagram/processors/getManualGraph.ts","webpack:///./src/diagram/processors/transformToCenter.ts","webpack:///./src/diagram/constants.ts","webpack:///./src/diagram/NodeComponent.tsx","webpack:///./src/diagram/processors/findNodeBrick.ts","webpack:///./src/diagram/processors/matchEdgeByFilter.ts","webpack:///./src/diagram/processors/normalizeLinesAndMarkers.ts","webpack:///./src/diagram/LineMaskComponent.tsx"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block;width:100%;height:100%;overflow:hidden}:host([hidden]){display:none}*{box-sizing:border-box}.diagram{width:100%;height:100%;position:relative;opacity:0}.diagram:focus{outline:none}.lines,\n.line-labels,\n.nodes{position:absolute;top:0;left:0}.line-labels{opacity:0}.ready{opacity:1}.diagram.ready.pannable{cursor:grab}.diagram.pannable.grabbing{cursor:grabbing}.nodes,\n.lines{transform-origin:0 0}.node,\n.line-label{position:absolute;visibility:hidden}.line-label{transform:translate(-50%,-50%);white-space:pre-line;width:max-content;text-align:center;line-height:1}.lines{pointer-events:none}.line.interactable{pointer-events:auto;cursor:default}.connect-line{position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none}.connect-line:not(.connecting){display:none}.line:not(.active) .active-bg{display:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","import type { RefRepository, RenderedLineLabel } from \"../interfaces\";\n\nexport function adjustLineLabels(\n renderedLineLabels: RenderedLineLabel[],\n lineLabelsRefRepository: RefRepository\n) {\n for (const {\n id,\n position,\n placement,\n angle,\n size: _size,\n } of renderedLineLabels) {\n const label = lineLabelsRefRepository.get(id);\n if (label) {\n label.style.left = `${position[0]}px`;\n label.style.top = `${position[1]}px`;\n label.style.visibility = \"visible\";\n // label.classList.add(placement);\n if (placement !== \"center\" && angle !== undefined) {\n const [width, height] = _size ?? [0, 0];\n // Get the numbered direction of the line\n //\n // \\ | /\n // \\ 5 | 6 /\n // 4 \\ | / 7\n // -----x-----\n // 3 / | \\ 0\n // / 2 | 1 \\\n // / | \\\n const tempDirection = Math.floor(\n ((angle < 0 ? Math.PI * 2 + angle : angle) / Math.PI) * 4\n );\n // Swap direction for end labels.\n const direction =\n placement === \"start\" ? tempDirection : (tempDirection + 4) % 8;\n const tangent = Math.tan(angle);\n const offsetAngle =\n angle + ((placement === \"start\" ? 1 : -1) * Math.PI) / 2;\n const offset = 2;\n const offsetSin = Math.sin(offsetAngle) * offset;\n const offsetCos = Math.cos(offsetAngle) * offset;\n let transform: string;\n switch (direction) {\n case 0:\n transform = `translate(0,${width * tangent + offsetSin}px)`;\n break;\n case 1:\n transform = `translate(${height / tangent - offsetCos}px,0)`;\n break;\n case 2:\n transform = `translate(calc(${\n height / tangent + offsetCos\n }px - 100%),0)`;\n break;\n case 3:\n transform = `translate(-100%,${-width * tangent - offsetSin}px)`;\n break;\n case 4:\n transform = `translate(-100%,calc(${\n -width * tangent + offsetSin\n }px - 100%))`;\n break;\n case 5:\n transform = `translate(calc(${\n -height / tangent - offsetCos\n }px - 100%),-100%)`;\n break;\n case 6:\n transform = `translate(${-height / tangent + offsetCos}px,-100%)`;\n break;\n default:\n transform = `translate(0,calc(${\n width * tangent - offsetSin\n }px - 100%))`;\n }\n label.style.transform = transform;\n }\n }\n }\n}\n","// istanbul ignore file: experimental\nimport type {\n DiagramEdge,\n Direction,\n NormalizedLine,\n RenderedEdge,\n RenderedLine,\n RenderedNode,\n} from \"../interfaces\";\nimport { curveLine } from \"../lines/curveLine\";\nimport { getDirectLinePoints } from \"../lines/getDirectLinePoints\";\nimport { getPolyLinePoints } from \"../lines/getPolyLinePoints\";\nimport { doTwoNodesOverlap } from \"./doTwoNodesOverlap\";\n\nexport function getRenderedLines(\n renderedEdges: RenderedEdge[],\n renderedNodes: RenderedNode[],\n normalizedLines: NormalizedLine[]\n): RenderedLine[] {\n const renderedEdgeMap = new WeakMap<DiagramEdge, RenderedEdge>();\n const renderedNodeMap = new Map<string, RenderedNode>();\n const relatedNodes = new Map<string, Set<RenderedNode>>();\n\n for (const renderedNode of renderedNodes) {\n renderedNodeMap.set(renderedNode.id, renderedNode);\n }\n\n for (const renderedEdge of renderedEdges) {\n const { data: edge } = renderedEdge;\n renderedEdgeMap.set(edge, renderedEdge);\n }\n\n let prepared = false;\n const prepareRelatedNodes = () => {\n if (prepared) {\n return;\n }\n prepared = true;\n\n const addRelatedNodes = (from: string, to: string) => {\n let relates = relatedNodes.get(from);\n if (!relates) {\n relatedNodes.set(from, (relates = new Set()));\n }\n const toNode = renderedNodeMap.get(to);\n if (toNode) {\n relates.add(toNode);\n }\n };\n\n for (const {\n data: { source, target },\n } of renderedEdges) {\n if (source !== target) {\n addRelatedNodes(source, target);\n addRelatedNodes(target, source);\n }\n }\n };\n\n return normalizedLines\n .map<RenderedLine | undefined>(({ line, edge, markers, ...rest }) => {\n const renderedEdge = renderedEdgeMap.get(edge);\n if (!renderedEdge) {\n return;\n }\n const startMarkerOffset =\n markers.find(\n (marker) =>\n marker.variant === \"default\" && marker.placement === \"start\"\n )?.offset ?? 0;\n const endMarkerOffset =\n markers.find(\n (marker) => marker.variant === \"default\" && marker.placement === \"end\"\n )?.offset ?? 0;\n let angle: number | undefined;\n\n let { points } = renderedEdge;\n // Only dagre graph will have pre-calculated line points\n if (!points) {\n const source = renderedNodeMap.get(edge.source);\n const target = renderedNodeMap.get(edge.target);\n\n if (source && target && source !== target) {\n if (line.type === \"polyline\") {\n if (\n !doTwoNodesOverlap(\n source,\n target,\n startMarkerOffset,\n endMarkerOffset\n )\n ) {\n prepareRelatedNodes();\n const sourceDirection = getDirection(\n source,\n target,\n startMarkerOffset\n );\n const targetDirection = getDirection(\n target,\n source,\n endMarkerOffset\n );\n const sourceRelates = getOrderedRelates(\n relatedNodes.get(edge.source) ?? [],\n source,\n sourceDirection,\n startMarkerOffset\n );\n const targetRelates = getOrderedRelates(\n relatedNodes.get(edge.target) ?? [],\n target,\n targetDirection,\n endMarkerOffset\n );\n\n const sourcePosition =\n (sourceRelates.indexOf(target) + 1) /\n (sourceRelates.length + 1);\n const targetPosition =\n (targetRelates.indexOf(source) + 1) /\n (targetRelates.length + 1);\n\n points = getPolyLinePoints(\n source,\n target,\n sourceDirection,\n targetDirection,\n sourcePosition,\n targetPosition\n );\n }\n } else {\n points = getDirectLinePoints(source, target);\n }\n\n if (points) {\n const start = points[0];\n const end = points[points.length - 1];\n angle = Math.atan2(end.y - start.y, end.x - start.x);\n }\n }\n }\n\n const d = curveLine(\n points,\n line.curveType,\n startMarkerOffset,\n endMarkerOffset\n );\n return {\n ...rest,\n markers,\n line,\n edge,\n d,\n angle,\n labelSize: renderedEdge.labelSize,\n };\n })\n .filter(Boolean) as RenderedLine[];\n}\n\nfunction getDirection(\n source: RenderedNode,\n target: RenderedNode,\n padding: number\n): Direction {\n // Add a padding to the source node to avoid the markers being warped.\n const sourceAngle = Math.atan2(\n source.height + padding * 2,\n source.width + padding * 2\n );\n const { x: sx, y: sy } = source;\n const { x: tx, y: ty } = target;\n const angle = Math.atan2(ty - sy, tx - sx);\n const fixedAngle = angle < 0 ? Math.PI * 2 + angle : angle;\n const direction = Math.floor((fixedAngle / Math.PI) * 2);\n switch (direction) {\n case 0:\n return fixedAngle < sourceAngle ? \"right\" : \"bottom\";\n case 1:\n return fixedAngle < Math.PI - sourceAngle ? \"bottom\" : \"left\";\n case 2:\n return fixedAngle < Math.PI + sourceAngle ? \"left\" : \"top\";\n default:\n return fixedAngle < Math.PI * 2 - sourceAngle ? \"top\" : \"right\";\n }\n}\n\nfunction getOrderedRelates(\n relates: Iterable<RenderedNode>,\n from: RenderedNode,\n direction: Direction,\n padding: number\n): RenderedNode[] {\n return [...relates]\n .filter((node) => getDirection(from, node, padding) === direction)\n .sort((a, b) => {\n const { x: ax, y: ay } = a;\n const { x: bx, y: by } = b;\n return direction === \"top\" || direction === \"bottom\" ? ax - bx : ay - by;\n });\n}\n","import React from \"react\";\nimport classNames from \"classnames\";\nimport type { LineTarget, RenderedLine, LineMaskRects } from \"./interfaces\";\n\nexport interface LineComponentProps {\n line: RenderedLine;\n linePaths: Map<string, SVGPathElement | null>;\n lineMaskRects: LineMaskRects;\n maskPrefix: string;\n markerPrefix: string;\n activeLineMarkerPrefix: string;\n active?: boolean;\n activeRelated?: boolean;\n onLineClick?(line: LineTarget): void;\n onLineDoubleClick?(line: LineTarget): void;\n}\n\nexport function LineComponent({\n line: { line, edge, d, markers },\n linePaths,\n lineMaskRects,\n maskPrefix,\n markerPrefix,\n activeLineMarkerPrefix,\n active,\n activeRelated,\n onLineClick,\n onLineDoubleClick,\n}: LineComponentProps): JSX.Element {\n const mask = lineMaskRects.has(line.$id)\n ? `url(#${maskPrefix}${line.$id})`\n : undefined;\n\n const { strokeColor, strokeWidth, interactStrokeWidth } = {\n ...line,\n ...(active\n ? line.overrides?.active\n : activeRelated\n ? line.overrides?.activeRelated\n : null),\n };\n\n const expectVariant = active\n ? \"active\"\n : activeRelated\n ? \"active-related\"\n : \"default\";\n\n let markerStart: string | undefined;\n let markerEnd: string | undefined;\n\n for (const marker of markers) {\n if (marker.variant === expectVariant) {\n if (marker.placement === \"start\") {\n markerStart = `url(#${markerPrefix}${marker.index})`;\n } else {\n markerEnd = `url(#${markerPrefix}${marker.index})`;\n }\n }\n }\n\n return (\n <g\n className={classNames(\"line\", {\n interactable: line.interactable,\n active,\n \"active-related\": activeRelated,\n })}\n onClick={\n line.interactable\n ? () => {\n onLineClick?.({ id: line.$id, edge });\n }\n : undefined\n }\n onDoubleClick={\n line.interactable\n ? (e) => {\n e.preventDefault();\n e.stopPropagation();\n onLineDoubleClick?.({ id: line.$id, edge });\n }\n : undefined\n }\n style={{ cursor: line.cursor }}\n >\n {line.interactable && (\n <path\n // This `path` is made for expanding interaction area of graph lines.\n d={d}\n fill=\"none\"\n stroke=\"transparent\"\n strokeWidth={interactStrokeWidth}\n />\n )}\n <path\n ref={(element) => linePaths.set(line.$id, element)}\n stroke={strokeColor}\n strokeWidth={strokeWidth}\n d={d}\n fill=\"none\"\n markerStart={markerStart}\n markerEnd={markerEnd}\n mask={mask}\n />\n <path\n stroke=\"var(--palette-blue-3)\"\n strokeWidth={strokeWidth}\n d={d}\n fill=\"none\"\n className=\"active-bg\"\n markerStart={`url(#${activeLineMarkerPrefix}start)`}\n markerEnd={`url(#${activeLineMarkerPrefix}end)`}\n mask={mask}\n />\n </g>\n );\n}\n","import { checkIfByTransform, __secret_internals } from \"@next-core/runtime\";\nimport type React from \"react\";\nimport {\n DEFAULT_LINE_STROKE_COLOR,\n DEFAULT_LINE_STROKE_WIDTH,\n} from \"../constants\";\nimport type {\n ConnectLineState,\n DiagramNode,\n ConnectLineDetail,\n ConnectNodesOptions,\n PositionTuple,\n RefRepository,\n ActiveTarget,\n DragNodesOptions,\n NodesFilterOptions,\n NodeMovement,\n ManualLayoutStatus,\n} from \"../interfaces\";\n\nexport function handleNodesMouseDown(\n event: MouseEvent,\n {\n nodes,\n nodesRefRepository,\n connectNodes,\n dragNodes,\n scale,\n setConnectLineState,\n setConnectLineTo,\n setManualLayoutStatus,\n setNodeMovement,\n onSwitchActiveTarget,\n onNodesConnect,\n }: {\n nodes: DiagramNode[] | undefined;\n connectNodes: ConnectNodesOptions | undefined;\n dragNodes: DragNodesOptions | undefined;\n nodesRefRepository: RefRepository | null;\n scale: number;\n setConnectLineState: (\n value: React.SetStateAction<ConnectLineState | null>\n ) => void;\n setConnectLineTo: (value: React.SetStateAction<PositionTuple>) => void;\n setManualLayoutStatus: (\n value: React.SetStateAction<ManualLayoutStatus>\n ) => void;\n setNodeMovement: (value: React.SetStateAction<NodeMovement | null>) => void;\n onSwitchActiveTarget?(target: ActiveTarget | null): void;\n onNodesConnect?(detail: ConnectLineDetail): void;\n }\n) {\n function findNode(match: (element: HTMLElement) => boolean) {\n if (nodesRefRepository) {\n for (const [id, element] of nodesRefRepository) {\n if (match(element)) {\n return nodes?.find((node) => node.id === id);\n }\n }\n }\n }\n\n if (!connectNodes && !dragNodes) {\n return;\n }\n\n const source = findNode((element) =>\n element.contains(event.target as Node | null)\n );\n\n if (!source) {\n return;\n }\n\n if (!nodeMatched(connectNodes || dragNodes!, source)) {\n return;\n }\n\n event.stopPropagation();\n const from: PositionTuple = [event.clientX, event.clientY];\n\n if (connectNodes) {\n setConnectLineState({\n from,\n options: {\n strokeColor: DEFAULT_LINE_STROKE_COLOR,\n strokeWidth: DEFAULT_LINE_STROKE_WIDTH,\n ...(__secret_internals.legacyDoTransform(\n { source },\n connectNodes\n ) as ConnectNodesOptions),\n },\n });\n setConnectLineTo(from);\n\n onSwitchActiveTarget?.({ type: \"node\", nodeId: source.id });\n\n const onMouseMove = (e: MouseEvent) => {\n setConnectLineTo([e.clientX, e.clientY]);\n };\n const onMouseUp = (e: MouseEvent) => {\n document.removeEventListener(\"mousemove\", onMouseMove);\n document.removeEventListener(\"mouseup\", onMouseUp);\n setConnectLineState(null);\n const eventTargets = e.composedPath();\n const target = findNode((element) => eventTargets.includes(element));\n if (target && source !== target) {\n onNodesConnect?.({ source, target });\n }\n };\n document.addEventListener(\"mousemove\", onMouseMove);\n document.addEventListener(\"mouseup\", onMouseUp);\n return;\n }\n\n // Drag node\n onSwitchActiveTarget?.({ type: \"node\", nodeId: source.id });\n\n let moved = false;\n const onMouseMove = (e: MouseEvent) => {\n // Respect the scale\n const movement: PositionTuple = [\n (e.clientX - from[0]) / scale,\n (e.clientY - from[1]) / scale,\n ];\n if (!moved) {\n moved = movement[0] ** 2 + movement[1] ** 2 >= 9;\n if (moved) {\n setManualLayoutStatus(\"started\");\n }\n }\n if (moved) {\n setNodeMovement({ id: source.id, move: movement });\n }\n };\n const onMouseUp = () => {\n moved = false;\n document.removeEventListener(\"mousemove\", onMouseMove);\n document.removeEventListener(\"mouseup\", onMouseUp);\n setNodeMovement(null);\n setManualLayoutStatus(\"finished\");\n };\n document.addEventListener(\"mousemove\", onMouseMove);\n document.addEventListener(\"mouseup\", onMouseUp);\n}\n\nfunction nodeMatched(\n options: NodesFilterOptions,\n source: DiagramNode\n): boolean {\n return options.sourceType\n ? ([] as unknown[]).concat(options.sourceType).includes(source.type)\n : checkIfByTransform(options, { source });\n}\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { ReactUseBrick } from \"@next-core/react-runtime\";\nimport { checkIfByTransform } from \"@next-core/runtime\";\nimport type {\n DiagramEdge,\n LineLabelConf,\n // PositionTuple,\n RefRepository,\n LineLabel,\n TextOptions,\n} from \"./interfaces\";\n\nexport interface LineLabelComponentGroupProps {\n labels?: LineLabel[];\n onRendered?: (refRepository: RefRepository | null) => void;\n}\n\nexport function LineLabelComponentGroup({\n labels,\n onRendered,\n}: LineLabelComponentGroupProps): JSX.Element {\n const [rendered, setRendered] = useState(false);\n const [renderedIds, setRenderedIds] = useState<string[]>([]);\n const refRepository = useMemo<RefRepository>(() => new Map(), []);\n\n const handleRenderer = useCallback(\n (id: string, element: HTMLElement | null) => {\n if (element) {\n refRepository.set(id, element);\n }\n setRenderedIds((previous) =>\n previous.includes(id) ? previous : previous.concat(id)\n );\n },\n [refRepository]\n );\n\n const handleUnmount = useCallback(\n (id: string) => {\n setRenderedIds((previous) => {\n const index = previous.indexOf(id);\n return index === -1\n ? previous\n : previous.slice(0, index).concat(previous.slice(index + 1));\n });\n refRepository.delete(id);\n },\n [refRepository]\n );\n\n useEffect(() => {\n // All nodes have been rendered.\n setRendered(!labels?.some((label) => !renderedIds.includes(label.id)));\n }, [labels, renderedIds]);\n\n useEffect(\n () => {\n onRendered?.(rendered ? refRepository : null);\n },\n // Dot not re-run effect when `onRendered` changed.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [/* onRendered, */ refRepository, rendered]\n );\n\n return (\n <React.Fragment>\n {labels?.map(({ text, label, /* position, */ id, edge }) =>\n label ? (\n <div\n key={id}\n className=\"line-label\"\n // style={{\n // left: position[0],\n // top: position[1],\n // }}\n >\n <LineLabelComponent\n id={id}\n edge={edge}\n label={label}\n onRendered={handleRenderer}\n onUnmount={handleUnmount}\n />\n </div>\n ) : (\n <LineTextComponent\n key={id}\n id={id}\n text={text!}\n // position={position}\n onRendered={handleRenderer}\n />\n )\n )}\n </React.Fragment>\n );\n}\n\nexport interface LineTextComponentProps {\n id: string;\n text: TextOptions;\n // position: PositionTuple;\n onRendered?: (id: string, element: HTMLElement | null) => void;\n // onUnmount?: (id: string) => void;\n}\n\nexport function LineTextComponent({\n id,\n text,\n // position,\n onRendered /* , onUnmount */,\n}: LineTextComponentProps): JSX.Element {\n const refCallback = useCallback(\n (element: HTMLDivElement) => {\n onRendered?.(id, element);\n },\n [id, onRendered]\n );\n\n return (\n <div\n className=\"line-label\"\n ref={refCallback}\n // style={{\n // left: position[0],\n // top: position[1],\n // ...text!.style,\n // }}\n style={text.style}\n >\n {text!.content}\n </div>\n );\n}\n\n// export const LineLabelComponentGroup = React.memo(LegacyLineLabelComponentGroup);\n\nexport interface LineLabelComponentProps {\n id: string;\n edge: DiagramEdge;\n label: LineLabelConf;\n onRendered?: (id: string, element: HTMLElement | null) => void;\n onUnmount?: (id: string) => void;\n}\n\nexport function LineLabelComponent({\n id,\n edge,\n label,\n onRendered,\n onUnmount,\n}: LineLabelComponentProps): JSX.Element | null {\n const useBrick = useMemo(\n () => (checkIfByTransform(label, { edge }) ? label.useBrick : null),\n [edge, label]\n );\n\n const memoizedData = useMemo(() => ({ edge }), [edge]);\n\n useEffect(() => {\n if (!useBrick) {\n // Keep the same time delay for reporting rendered.\n setTimeout(() => {\n onRendered?.(id, null);\n });\n }\n }, [id, onRendered, useBrick]);\n\n useEffect(\n () => {\n return () => {\n onUnmount?.(id);\n };\n },\n // Only unmount once\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n\n const refCallback = useCallback(\n (element: HTMLElement | null) => {\n if (element) {\n // Todo: correctly wait for `useBrick` in v3 to be rendered (after layout)\n // Wait a macro task to let `useBrick` to be rendered.\n setTimeout(() => {\n onRendered?.(id, element.parentElement);\n });\n }\n },\n [id, onRendered]\n );\n\n const ignoredCallback = useCallback(() => {\n setTimeout(() => {\n onRendered?.(id, null);\n });\n }, [id, onRendered]);\n\n if (!useBrick) {\n return null;\n }\n\n return (\n <ReactUseBrick\n refCallback={refCallback}\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore For v3 only\n ignoredCallback={ignoredCallback}\n useBrick={useBrick}\n data={memoizedData}\n />\n );\n}\n","import type {\n ActiveTarget,\n ActiveTargetOfEdge,\n ActiveTargetOfNode,\n} from \"../interfaces\";\n\nexport function sameTarget(\n a: ActiveTarget | null | undefined,\n b: ActiveTarget | null | undefined\n): boolean {\n return a\n ? !!b &&\n a.type === b.type &&\n (a.type === \"node\"\n ? a.nodeId === (b as ActiveTargetOfNode).nodeId\n : a.edge.source === (b as ActiveTargetOfEdge).edge.source &&\n a.edge.target === (b as ActiveTargetOfEdge).edge.target)\n : !b;\n}\n","import { minBy } from \"lodash\";\nimport type {\n ActiveTarget,\n DiagramEdge,\n DiagramNode,\n RenderedNode,\n} from \"../interfaces\";\n\nexport type KeyboardAction =\n | KeyboardActionSwitchActiveNode\n | KeyboardActionDeleteNode\n | KeyboardActionDeleteEdge;\n\nexport interface KeyboardActionSwitchActiveNode {\n action: \"switch-active-node\";\n node?: DiagramNode;\n}\n\nexport interface KeyboardActionDeleteNode {\n action: \"delete-node\";\n node: DiagramNode;\n}\n\nexport interface KeyboardActionDeleteEdge {\n action: \"delete-edge\";\n edge: DiagramEdge;\n}\n\nexport function handleKeyboard(\n event: KeyboardEvent,\n {\n renderedNodes,\n activeTarget,\n }: {\n renderedNodes: RenderedNode[];\n activeTarget: ActiveTarget | null | undefined;\n }\n): KeyboardAction | undefined {\n const activeNode =\n activeTarget?.type === \"node\"\n ? renderedNodes.find((node) => node.id === activeTarget.nodeId)\n : undefined;\n const activeEdge =\n activeTarget?.type === \"edge\" ? activeTarget.edge : undefined;\n\n if (!activeNode && !activeEdge) {\n return;\n }\n\n const key =\n event.key ||\n /* istanbul ignore next: compatibility */ event.keyCode ||\n /* istanbul ignore next: compatibility */ event.which;\n let action: KeyboardAction[\"action\"] | undefined;\n let node: RenderedNode | undefined;\n let edge: DiagramEdge | undefined;\n\n switch (key) {\n case \"Backspace\":\n case 8:\n case \"Delete\":\n case 46: {\n if (activeNode) {\n action = \"delete-node\";\n node = activeNode;\n } else {\n action = \"delete-edge\";\n edge = activeEdge;\n }\n break;\n }\n default:\n if (!activeNode) {\n return;\n }\n switch (key) {\n case \"ArrowLeft\":\n case 37: {\n node = moveOnAxis(\"x\", renderedNodes, activeNode, -1);\n action = \"switch-active-node\";\n break;\n }\n case \"ArrowUp\":\n case 38: {\n node = moveOnAxis(\"y\", renderedNodes, activeNode, -1);\n action = \"switch-active-node\";\n break;\n }\n case \"ArrowRight\":\n case 39: {\n node = moveOnAxis(\"x\", renderedNodes, activeNode, 1);\n action = \"switch-active-node\";\n break;\n }\n case \"ArrowDown\":\n case 40: {\n node = moveOnAxis(\"y\", renderedNodes, activeNode, 1);\n action = \"switch-active-node\";\n break;\n }\n }\n }\n if (action) {\n event.preventDefault();\n event.stopPropagation();\n return { action, node: node?.data, edge } as KeyboardAction;\n }\n}\n\nfunction moveOnAxis(\n axis: \"x\" | \"y\",\n renderedNodes: RenderedNode[],\n activeNode: RenderedNode,\n direction: 1 | -1\n) {\n const oppositeAxis = axis === \"x\" ? \"y\" : \"x\";\n let diff: number;\n const candidates = renderedNodes.filter(\n (node) =>\n node !== activeNode &&\n ((diff = (node[axis] - activeNode[axis]) * direction), diff > 0) &&\n diff > Math.abs(activeNode[oppositeAxis] - node[oppositeAxis])\n );\n return minBy(\n candidates,\n (node) =>\n (activeNode[oppositeAxis] - node[oppositeAxis]) ** 2 +\n (activeNode[axis] - node[axis]) ** 2\n );\n}\n","import type {\n LineMaskRects,\n RefRepository,\n RenderedLineLabel,\n} from \"../interfaces\";\n\nexport function getLineMaskRects(\n renderedLineLabels: RenderedLineLabel[],\n lineLabelsRefRepository: RefRepository\n) {\n const map: LineMaskRects = new Map();\n\n for (const { id, lineId, placement } of renderedLineLabels) {\n if (!lineLabelsRefRepository || placement !== \"center\") {\n continue;\n }\n const element = lineLabelsRefRepository.get(id);\n if (!element) {\n continue;\n }\n const { offsetWidth, offsetHeight } = element;\n // Do not mask out when the label takes no space.\n // istanbul ignore next\n if (\n process.env.NODE_ENV !== \"test\" &&\n (offsetWidth === 0 || offsetHeight === 0)\n ) {\n continue;\n }\n const padding = 3;\n // Currently no other rects\n map.set(lineId, [\n {\n left: element.offsetLeft - offsetWidth / 2 - padding,\n top: element.offsetTop - offsetHeight / 2 - padding,\n width: offsetWidth + padding * 2,\n height: offsetHeight + padding * 2,\n },\n ]);\n }\n\n return map;\n}\n","import React from \"react\";\nimport classNames from \"classnames\";\nimport type { ConnectLineState, PositionTuple } from \"./interfaces\";\nimport { MarkerComponent } from \"./MarkerComponent\";\n\nexport interface ConnectLineComponentProps {\n connectLineState: ConnectLineState | null;\n connectLineTo: PositionTuple;\n markerPrefix: string;\n}\n\nexport function ConnectLineComponent({\n connectLineState,\n connectLineTo,\n markerPrefix,\n}: ConnectLineComponentProps): JSX.Element {\n return (\n <svg\n width=\"100%\"\n height=\"100%\"\n className={classNames(\"connect-line\", {\n connecting:\n !!connectLineState &&\n // Do not show when the distance of mouse move is less than 5px\n (connectLineTo[0] - connectLineState.from[0]) ** 2 +\n (connectLineTo[1] - connectLineState.from[1]) ** 2 >\n 25,\n })}\n >\n <defs>\n <MarkerComponent\n type=\"arrow\"\n id={`${markerPrefix}connect-line`}\n strokeColor={connectLineState?.options.strokeColor}\n />\n </defs>\n <path\n d={\n connectLineState\n ? `M${connectLineState.from.join(\" \")}L${connectLineTo.join(\" \")}`\n : \"\"\n }\n fill=\"none\"\n stroke={connectLineState?.options.strokeColor}\n strokeWidth={connectLineState?.options.strokeWidth}\n markerEnd={\n connectLineState?.options.arrow\n ? `url(#${markerPrefix}connect-line)`\n : undefined\n }\n />\n </svg>\n );\n}\n","import _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport { http } from \"@next-core/http\";\n/**\n * @description 搜索实例V3 (支持多属性排序)\n * @endpoint POST /v3/object/:objectId/instance/_search\n */\nexport var InstanceApi_postSearchV3 = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (objectId, data, options) {\n return (/**! @contract easyops.api.cmdb.instance.PostSearchV3@1.1.0 */(yield http.post(\"api/gateway/cmdb.instance.PostSearchV3/v3/object/\".concat(objectId, \"/instance/_search\"), data, options)).data\n );\n });\n return function InstanceApi_postSearchV3(_x, _x2, _x3) {\n return _ref.apply(this, arguments);\n };\n}();\n//# sourceMappingURL=postSearchV3.js.map","import _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport { http } from \"@next-core/http\";\n\n/** 要更新的实例 */\n\n/**\n * @description 更新实例V2 (支持关系更新)\n * @endpoint PUT /v2/object/:objectId/instance/:instanceId\n */\nexport var InstanceApi_updateInstanceV2 = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (objectId, instanceId, data, options) {\n return (/**! @contract easyops.api.cmdb.instance.UpdateInstanceV2@1.0.0 */(yield http.put(\"api/gateway/cmdb.instance.UpdateInstanceV2/v2/object/\".concat(objectId, \"/instance/\").concat(instanceId), data, options)).data\n );\n });\n return function InstanceApi_updateInstanceV2(_x, _x2, _x3, _x4) {\n return _ref.apply(this, arguments);\n };\n}();\n//# sourceMappingURL=updateInstanceV2.js.map","import _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport { http } from \"@next-core/http\";\n\n/** 创建实例 */\n\n/**\n * @description 创建实例 (body为实例信息,字段限制参考模型定义,支持关系创建)\n * @endpoint POST /v2/object/:objectId/instance\n */\nexport var InstanceApi_createInstance = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (objectId, data, options) {\n return (/**! @contract easyops.api.cmdb.instance.CreateInstance@1.1.0 */(yield http.post(\"api/gateway/cmdb.instance.CreateInstance/v2/object/\".concat(objectId, \"/instance\"), data, options)).data\n );\n });\n return function InstanceApi_createInstance(_x, _x2, _x3) {\n return _ref.apply(this, arguments);\n };\n}();\n//# sourceMappingURL=createInstance.js.map","import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { handleHttpError } from \"@next-core/runtime\";\nimport {\n InstanceApi_postSearchV3,\n InstanceApi_updateInstanceV2,\n InstanceApi_createInstance,\n} from \"@next-api-sdk/cmdb-sdk\";\nimport { createAsyncQueue } from \"../processors/createAsyncQueue\";\nimport {\n NodeUserView,\n UserView,\n UserViewNodesMap,\n UserViewQuery,\n} from \"../interfaces\";\n\nconst USER_VIEW_MODEL_ID = \"GRAPH_USER_VIEW@EASYOPS\";\n\nexport interface UserViewHook {\n userViewReady: boolean;\n userViewNodesMap: UserViewNodesMap | null;\n saveUserView: (nodes: NodeUserView[]) => void;\n}\n\nexport function useUserView(query: UserViewQuery | undefined): UserViewHook {\n const [userViewReady, setUserViewReady] = useState(!query);\n const userViewIdRef = useRef<string>();\n const [userViewNodesMap, setUserViewNodesMap] =\n useState<UserViewNodesMap | null>(null);\n const queue = useMemo(() => createAsyncQueue(), []);\n\n useEffect(() => {\n async function getUserView(): Promise<void> {\n if (!query) {\n setUserViewReady(true);\n return;\n }\n const { namespace, key } = query;\n if (!(namespace && key)) {\n // eslint-disable-next-line no-console\n console.error(\"Namespace and key are required to save graph user view\");\n setUserViewReady(true);\n return;\n }\n try {\n const list = (\n await InstanceApi_postSearchV3(USER_VIEW_MODEL_ID, {\n fields: [\"nodes\"],\n query: {\n namespace: {\n $eq: namespace,\n },\n key: {\n $eq: key,\n },\n },\n page: 1,\n page_size: 30,\n })\n ).list as UserView[];\n if (list.length > 0) {\n const userView = list[0];\n const userViewNodesMap = new Map(\n userView.nodes?.map((node) => [node.id, node])\n );\n userViewIdRef.current = userView.instanceId;\n setUserViewNodesMap(userViewNodesMap);\n } else {\n setUserViewNodesMap(null);\n }\n } catch (error) {\n handleHttpError(error as Error);\n } finally {\n setUserViewReady(true);\n }\n }\n getUserView();\n }, [query]);\n\n const saveUserView = useCallback(\n (nodes: NodeUserView[]) => {\n const { namespace, key } = query ?? {};\n if (!(namespace && key)) {\n return;\n }\n queue(async () => {\n const userViewData = {\n namespace,\n key,\n nodes,\n };\n try {\n if (userViewIdRef.current) {\n await InstanceApi_updateInstanceV2(\n USER_VIEW_MODEL_ID,\n userViewIdRef.current,\n userViewData,\n {\n interceptorParams: {\n ignoreLoadingBar: true,\n },\n }\n );\n } else {\n const userView = await InstanceApi_createInstance(\n USER_VIEW_MODEL_ID,\n userViewData,\n {\n interceptorParams: {\n ignoreLoadingBar: true,\n },\n }\n );\n userViewIdRef.current = userView.instanceId;\n }\n } catch (error) {\n handleHttpError(error);\n }\n });\n },\n [query, queue]\n );\n\n return {\n userViewReady,\n userViewNodesMap,\n saveUserView,\n };\n}\n","type Task = (...args: unknown[]) => unknown;\ntype Queue = (task: Task) => Promise<void>;\n\nexport function createAsyncQueue(): Queue {\n let working = false;\n const waitingTasks: Task[] = [];\n return async function queue(task: Task) {\n waitingTasks.push(task);\n if (!working) {\n working = true;\n let nextTask: Task | undefined;\n while ((nextTask = waitingTasks.shift())) {\n try {\n await nextTask();\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(error);\n }\n }\n working = false;\n }\n };\n}\n","import type {\n LineLabelConf,\n RenderedLine,\n RenderedLineLabel,\n TextOptions,\n} from \"../interfaces\";\n\nexport function getRenderedLineLabels(\n previous: RenderedLineLabel[],\n renderedLines: RenderedLine[],\n linePaths: Map<string, SVGPathElement | null>\n) {\n if (previous.length === 0 && renderedLines.length === 0) {\n return previous;\n }\n return renderedLines.flatMap(\n ({ line: { text, label, $id }, edge, labelSize, angle }) => {\n const path = linePaths.get($id);\n if ((!text && !label) || !path || !path.getAttribute(\"d\")) {\n return [] as RenderedLineLabel[];\n }\n\n let key: \"label\" | \"text\";\n let list: LineLabelConf[] | TextOptions[];\n if (label) {\n key = \"label\";\n list = ([] as LineLabelConf[]).concat(label);\n } else {\n key = \"text\";\n list = ([] as TextOptions[]).concat(text!);\n }\n\n // istanbul ignore next\n const {\n x: left,\n y: top,\n width,\n height,\n } = process.env.NODE_ENV === \"test\"\n ? { x: 10, y: 20, width: 300, height: 400 }\n : path.getBBox();\n\n // istanbul ignore next\n const pathLength =\n process.env.NODE_ENV === \"test\" ? 50 : path.getTotalLength();\n\n return list.map<RenderedLineLabel>((item) => {\n const placement = item.placement ?? \"center\";\n const offset = 0;\n // istanbul ignore next\n const point =\n process.env.NODE_ENV === \"test\"\n ? { x: 50, y: 50 }\n : path.getPointAtLength(\n placement === \"start\"\n ? Math.min(offset, pathLength / 2)\n : placement === \"end\"\n ? Math.max(pathLength - offset, pathLength / 2)\n : pathLength / 2\n );\n\n return {\n [key as \"label\"]: item as LineLabelConf,\n edge,\n position: [point.x, point.y],\n lineRect: { left, top, width, height },\n id: `${$id}-${placement}`,\n lineId: $id,\n placement,\n angle,\n size: labelSize?.[placement],\n };\n });\n }\n );\n}\n","import type { FullRectTuple, RefRepository, RenderedNode } from \"../interfaces\";\n\nexport function adjustNodesSize(\n nodes: RenderedNode[],\n nodesRefRepository: RefRepository,\n nodePaddings: FullRectTuple\n) {\n for (const node of nodes) {\n const element = nodesRefRepository.get(node.id);\n node.width =\n Math.max(element?.offsetWidth ?? 0, 10) +\n nodePaddings[1] +\n nodePaddings[3];\n node.height =\n Math.max(element?.offsetHeight ?? 0, 10) +\n nodePaddings[0] +\n nodePaddings[2];\n }\n}\n","import type { FullRectTuple, RefRepository, RenderedNode } from \"../interfaces\";\n\nexport function adjustNodesPosition(\n nodes: RenderedNode[],\n nodesRefRepository: RefRepository,\n nodePaddings: FullRectTuple\n) {\n for (const node of nodes) {\n const x = node.x - node.width / 2 + nodePaddings[3];\n const y = node.y - node.height / 2 + nodePaddings[0];\n\n const nodeContainer = nodesRefRepository.get(node.id)?.parentElement;\n if (nodeContainer) {\n nodeContainer.style.left = `${x}px`;\n nodeContainer.style.top = `${y}px`;\n nodeContainer.style.visibility = \"visible\";\n }\n }\n}\n","// istanbul ignore file: experimental\nimport type {\n DiagramEdge,\n LabelSize,\n RefRepository,\n RenderedEdge,\n} from \"../interfaces\";\n\nexport function getRenderedEdges(\n edges: DiagramEdge[] | undefined,\n {\n normalizedLinesMap,\n lineLabelsRefRepository,\n }: {\n normalizedLinesMap: WeakMap<DiagramEdge, string>;\n lineLabelsRefRepository: RefRepository;\n }\n) {\n return (\n edges?.map<RenderedEdge>((edge) => {\n const lineId = normalizedLinesMap.get(edge);\n const labelSize: LabelSize = {};\n if (lineId) {\n for (const placement of [/* \"center\", */ \"start\", \"end\"] as const) {\n const element = lineLabelsRefRepository.get(`${lineId}-${placement}`);\n if (element) {\n labelSize[placement] = [element.offsetWidth, element.offsetHeight];\n }\n }\n }\n\n return {\n data: edge,\n labelSize,\n };\n }) ?? []\n );\n}\n","// istanbul ignore file: experimental\nimport {\n forceSimulation,\n forceLink,\n forceCollide,\n forceManyBody,\n forceX,\n forceY,\n type Simulation,\n type SimulationNodeDatum,\n type SimulationLinkDatum,\n} from \"d3-force\";\nimport { pick } from \"lodash\";\nimport type {\n DiagramEdge,\n DiagramNode,\n ForceCollideOptions,\n LayoutOptionsForce,\n RenderedNode,\n UnifiedGraph,\n UserViewNodesMap,\n} from \"../interfaces\";\nimport { adjustNodesSize } from \"./adjustNodesSize\";\nimport { adjustNodesPosition } from \"./adjustNodesPosition\";\nimport { extractPartialRectTuple } from \"./extractPartialRectTuple\";\nimport { getRenderedEdges } from \"./getRenderedEdges\";\n\ninterface NormalNode extends SimulationNodeDatum {\n dummy?: false;\n id: string;\n data: DiagramNode;\n width: number;\n height: number;\n}\n\ninterface DummyNode extends SimulationNodeDatum {\n dummy: true;\n id: string;\n}\n\ntype ForceNode = NormalNode | DummyNode;\n\ntype ForceLink = SimulationLinkDatum<ForceNode> & {\n dummy?: boolean;\n};\n\nexport function getForceGraph(\n previousGraph: UnifiedGraph | null,\n nodes: DiagramNode[] | undefined,\n edges: DiagramEdge[] | undefined,\n userViewNodesMap: UserViewNodesMap | null,\n forceLayoutOptions: LayoutOptionsForce | undefined\n): UnifiedGraph {\n const { nodePadding, dummyNodesOnEdges, collide } = {\n nodePadding: 0,\n dummyNodesOnEdges: 0,\n ...pick(forceLayoutOptions, [\"nodePadding\", \"dummyNodesOnEdges\"]),\n collide:\n forceLayoutOptions?.collide !== false\n ? ({\n dummyRadius: 1,\n radiusDiff: 5,\n strength: 1,\n iterations: 1,\n ...(forceLayoutOptions?.collide === true\n ? null\n : (forceLayoutOptions?.collide as ForceCollideOptions)),\n } as Required<ForceCollideOptions>)\n : (false as const),\n };\n const nodePaddings = extractPartialRectTuple(nodePadding);\n\n const renderedNodes: RenderedNode[] = [];\n for (const node of nodes ?? []) {\n const previousNode = previousGraph?.getNode(node.id);\n if (previousNode?.data === node) {\n renderedNodes.push(previousNode);\n } else {\n const renderedNode = {\n id: node.id,\n data: node,\n } as RenderedNode & { fx?: number; fy?: number };\n const userViewNode = userViewNodesMap?.get(node.id);\n if (userViewNode) {\n renderedNode.fx = userViewNode.x;\n renderedNode.fy = userViewNode.y;\n }\n renderedNodes.push(renderedNode);\n }\n }\n\n function getNode(id: string) {\n return renderedNodes.find((node) => node.data.id === id);\n }\n\n return {\n layout: \"force\",\n getNode,\n applyLayout({\n nodesRefRepository,\n lineLabelsRefRepository,\n normalizedLinesMap,\n }) {\n if (renderedNodes.length === 0) {\n return null;\n }\n\n adjustNodesSize(renderedNodes, nodesRefRepository, nodePaddings);\n\n const forceNodes = renderedNodes.slice();\n const forceLinks: ForceLink[] = [];\n\n for (const edge of edges ?? []) {\n forceLinks.push({ ...edge });\n if (dummyNodesOnEdges > 0) {\n forceNodes.push(\n ...(getDummyNodes(\n edge,\n dummyNodesOnEdges\n ) as Partial<RenderedNode>[] as RenderedNode[])\n );\n forceLinks.push(...getDummyEdges(edge, dummyNodesOnEdges));\n }\n }\n\n const linkSimulation = forceLink<ForceNode, ForceLink>(forceLinks).id(\n (d) => d.id\n );\n\n if (dummyNodesOnEdges > 0) {\n linkSimulation\n .distance((l) => (l.dummy ? 30 / (dummyNodesOnEdges + 1) : 30))\n .strength((l) => (l.dummy ? 0.5 : 1));\n }\n\n const simulation = forceSimulation<ForceNode>(forceNodes)\n .force(\"link\", linkSimulation)\n .force(\"x\", forceX())\n .force(\"y\", forceY())\n .force(\"charge\", forceManyBody());\n\n if (collide) {\n simulation.force(\n \"collide\",\n forceCollide<ForceNode>()\n .radius((d) =>\n d.dummy\n ? collide.dummyRadius\n : Math.sqrt(d.width ** 2 + d.height ** 2) / 2 +\n collide.radiusDiff\n )\n .strength(collide.strength)\n .iterations(collide.iterations)\n );\n }\n\n simulation.stop();\n manuallyTickToTheEnd(simulation);\n\n adjustNodesPosition(renderedNodes, nodesRefRepository, nodePaddings);\n\n const renderedEdges = getRenderedEdges(edges, {\n normalizedLinesMap,\n lineLabelsRefRepository,\n });\n\n return { nodes: renderedNodes, edges: renderedEdges };\n },\n };\n}\n\nfunction manuallyTickToTheEnd(\n simulation: Simulation<ForceNode, ForceLink>\n): void {\n // Manually tick to the end.\n simulation.tick(\n Math.ceil(\n Math.log(simulation.alphaMin()) / Math.log(1 - simulation.alphaDecay())\n )\n );\n}\n\nfunction getDummyNodes(edge: DiagramEdge, count: number): DummyNode[] {\n return new Array(count).fill(null).map<DummyNode>((v, i) => ({\n dummy: true,\n id: `$dummy-${edge.source}-${edge.target}-${i}`,\n }));\n}\n\nfunction getDummyEdges(edge: DiagramEdge, count: number): ForceLink[] {\n return new Array(count + 1).fill(null).map<ForceLink>((v, i) => ({\n dummy: true,\n source:\n i === 0 ? edge.source : `$dummy-${edge.source}-${edge.target}-${i - 1}`,\n target:\n i === count ? edge.target : `$dummy-${edge.source}-${edge.target}-${i}`,\n }));\n}\n","import { useEffect, useState } from \"react\";\nimport type {\n DiagramEdge,\n DiagramNode,\n LayoutOptions,\n LayoutOptionsDagre,\n LayoutOptionsForce,\n ManualLayoutStatus,\n NodeMovement,\n RefRepository,\n RenderedDiagram,\n UnifiedGraph,\n UserViewNodesMap,\n} from \"../interfaces\";\nimport { getDagreGraph } from \"../processors/getDagreGraph\";\nimport { getForceGraph } from \"../processors/getForceGraph\";\nimport { getManualGraph } from \"../processors/getManualGraph\";\n\nexport function useRenderedDiagram({\n layout: originalLayout,\n nodes,\n edges,\n manualLayoutStatus,\n userViewReady,\n userViewNodesMap,\n nodeMovement,\n nodesRefRepository,\n lineLabelsRefRepository,\n normalizedLinesMap,\n nodesRenderId,\n lineLabelsRenderId,\n layoutOptions,\n}: {\n layout: \"dagre\" | \"force\" | undefined;\n nodes: DiagramNode[] | undefined;\n edges: DiagramEdge[] | undefined;\n manualLayoutStatus: ManualLayoutStatus;\n userViewReady: boolean;\n userViewNodesMap: UserViewNodesMap | null;\n nodeMovement: NodeMovement | null;\n nodesRefRepository: RefRepository | null;\n lineLabelsRefRepository: RefRepository | null;\n normalizedLinesMap: WeakMap<DiagramEdge, string>;\n nodesRenderId: number;\n lineLabelsRenderId: number;\n layoutOptions?: LayoutOptions;\n}) {\n const layout = manualLayoutStatus === \"initial\" ? originalLayout : \"manual\";\n const [graph, setGraph] = useState<UnifiedGraph | null>(null);\n\n const [renderedDiagram, setRenderedDiagram] = useState<RenderedDiagram>({\n nodes: [],\n edges: [],\n });\n\n useEffect(() => {\n if (!userViewReady) {\n return;\n }\n setGraph((previousGraph) =>\n layout === \"dagre\"\n ? getDagreGraph(\n previousGraph,\n nodes,\n edges,\n layoutOptions as LayoutOptionsDagre\n )\n : layout === \"force\"\n ? getForceGraph(\n previousGraph,\n nodes,\n edges,\n userViewNodesMap,\n layoutOptions as LayoutOptionsForce\n )\n : layout === \"manual\"\n ? getManualGraph(previousGraph, nodes, edges, layoutOptions)\n : null\n );\n }, [edges, nodes, layout, layoutOptions, userViewReady, userViewNodesMap]);\n\n useEffect(() => {\n if (\n !nodesRefRepository ||\n !lineLabelsRefRepository ||\n layout !== graph?.layout\n ) {\n return;\n }\n const renderedDiagram = graph?.applyLayout({\n manualLayoutStatus,\n nodesRefRepository,\n lineLabelsRefRepository,\n normalizedLinesMap,\n nodeMovement,\n });\n if (renderedDiagram) {\n setRenderedDiagram(renderedDiagram);\n }\n }, [\n layout,\n manualLayoutStatus,\n graph,\n nodeMovement,\n nodesRefRepository,\n lineLabelsRefRepository,\n nodesRenderId,\n lineLabelsRenderId,\n normalizedLinesMap,\n ]);\n\n return renderedDiagram;\n}\n","import dagre from \"@dagrejs/dagre\";\nimport { pick } from \"lodash\";\nimport type {\n DiagramEdge,\n DiagramNode,\n LayoutOptionsDagre,\n RenderedEdge,\n RenderedNode,\n UnifiedGraph,\n} from \"../interfaces\";\nimport { adjustNodesSize } from \"./adjustNodesSize\";\nimport { adjustNodesPosition } from \"./adjustNodesPosition\";\nimport { extractPartialRectTuple } from \"./extractPartialRectTuple\";\n\nexport function getDagreGraph(\n previousGraph: UnifiedGraph | null,\n nodes: DiagramNode[] | undefined,\n edges: DiagramEdge[] | undefined,\n dagreLayoutOptions: LayoutOptionsDagre | undefined\n): UnifiedGraph {\n const { nodePadding, ...dagreGraphOptions } = {\n nodePadding: 0,\n rankdir: \"TB\",\n ranksep: 50,\n edgesep: 10,\n nodesep: 50,\n // align: undefined,\n ...pick(dagreLayoutOptions, [\n \"nodePadding\",\n \"rankdir\",\n \"ranksep\",\n \"edgesep\",\n \"nodesep\",\n \"align\",\n ]),\n };\n const nodePaddings = extractPartialRectTuple(nodePadding);\n\n // Create a new directed graph\n const graph = new dagre.graphlib.Graph<RenderedNode>();\n\n // Set an object for the graph label\n graph.setGraph(dagreGraphOptions);\n\n // Default to assigning a new object as a label for each new edge.\n graph.setDefaultEdgeLabel(function () {\n return {};\n });\n\n for (const node of nodes ?? []) {\n const previousNode = previousGraph?.getNode(node.id);\n graph.setNode(\n node.id,\n previousNode?.data === node\n ? previousNode\n : {\n id: node.id,\n data: node,\n }\n );\n }\n\n for (const edge of edges ?? []) {\n graph.setEdge(edge.source, edge.target, { data: edge });\n }\n\n return {\n layout: \"dagre\",\n getNode(id) {\n return graph.node(id);\n },\n applyLayout({\n nodesRefRepository,\n lineLabelsRefRepository,\n normalizedLinesMap,\n }) {\n const renderedNodes: RenderedNode[] = [];\n for (const id of graph.nodes()) {\n const node = graph.node(id);\n if (node) {\n renderedNodes.push(node);\n } else {\n // eslint-disable-next-line no-console\n console.error(\"Diagram node not found: %s\", id);\n }\n }\n\n if (renderedNodes.length === 0) {\n return null;\n }\n\n adjustNodesSize(renderedNodes, nodesRefRepository, nodePaddings);\n\n const renderedEdges = graph\n .edges()\n .map((e) => graph.edge(e) as RenderedEdge);\n for (const edge of renderedEdges) {\n const lineId = normalizedLinesMap.get(edge.data);\n if (lineId) {\n for (const placement of [\"center\", \"start\", \"end\"] as const) {\n const element = lineLabelsRefRepository.get(\n `${lineId}-${placement}`\n );\n if (element) {\n const { offsetWidth, offsetHeight } = element;\n if (placement === \"center\") {\n edge.labelpos = \"c\";\n edge.width = offsetWidth;\n edge.height = offsetHeight;\n }\n edge.labelSize ??= {};\n edge.labelSize[placement] = [offsetWidth, offsetHeight];\n }\n }\n }\n }\n dagre.layout(graph);\n\n adjustNodesPosition(renderedNodes, nodesRefRepository, nodePaddings);\n\n return {\n nodes: renderedNodes,\n edges: renderedEdges,\n };\n },\n };\n}\n","// istanbul ignore file: experimental\nimport { pick } from \"lodash\";\nimport type {\n DiagramEdge,\n DiagramNode,\n BaseLayoutOptions,\n RenderedNode,\n UnifiedGraph,\n} from \"../interfaces\";\nimport { extractPartialRectTuple } from \"./extractPartialRectTuple\";\nimport { adjustNodesSize } from \"./adjustNodesSize\";\nimport { adjustNodesPosition } from \"./adjustNodesPosition\";\nimport { getRenderedEdges } from \"./getRenderedEdges\";\n\nexport function getManualGraph(\n previousGraph: UnifiedGraph | null,\n nodes: DiagramNode[] | undefined,\n edges: DiagramEdge[] | undefined,\n layoutOptions: BaseLayoutOptions | undefined\n): UnifiedGraph {\n const { nodePadding } = {\n nodePadding: 0,\n ...pick(layoutOptions, [\"nodePadding\"]),\n };\n const nodePaddings = extractPartialRectTuple(nodePadding);\n\n const renderedNodes: RenderedNode[] = [];\n for (const node of nodes ?? []) {\n const previousNode = previousGraph?.getNode(node.id);\n if (previousNode?.data === node) {\n renderedNodes.push(previousNode);\n previousNode.x0 = previousNode.x;\n previousNode.y0 = previousNode.y;\n } else {\n renderedNodes.push({\n id: node.id,\n data: node,\n } as RenderedNode);\n }\n }\n\n function getNode(id: string) {\n return renderedNodes.find((node) => node.data.id === id);\n }\n\n let movedNode: RenderedNode | undefined;\n\n return {\n layout: \"manual\",\n getNode,\n applyLayout({\n manualLayoutStatus,\n nodesRefRepository,\n lineLabelsRefRepository,\n normalizedLinesMap,\n nodeMovement,\n }) {\n if (renderedNodes.length === 0) {\n return null;\n }\n\n adjustNodesSize(renderedNodes, nodesRefRepository, nodePaddings);\n\n if (nodeMovement) {\n movedNode = renderedNodes.find((node) => node.id === nodeMovement.id);\n if (movedNode) {\n movedNode.x = (movedNode.x0 ?? 0) + nodeMovement.move[0];\n movedNode.y = (movedNode.y0 ?? 0) + nodeMovement.move[1];\n }\n }\n\n if (manualLayoutStatus === \"finished\" && movedNode) {\n // Set x0/y0 after finished manual layout\n movedNode.x0 = movedNode.x;\n movedNode.y0 = movedNode.y;\n }\n\n adjustNodesPosition(renderedNodes, nodesRefRepository, nodePaddings);\n\n const renderedEdges = getRenderedEdges(edges, {\n normalizedLinesMap,\n lineLabelsRefRepository,\n });\n\n return { nodes: renderedNodes, edges: renderedEdges };\n },\n };\n}\n","import type { RenderedNode, TransformLiteral } from \"../interfaces\";\n\nexport interface TransformToCenterOptions {\n canvasWidth: number;\n canvasHeight: number;\n scaleRange?: [min: number, max: number];\n}\n\nexport function transformToCenter(\n renderedNodes: RenderedNode[],\n { canvasWidth, canvasHeight, scaleRange }: TransformToCenterOptions\n): TransformLiteral {\n let left = Infinity;\n let top = Infinity;\n let right = -Infinity;\n let bottom = -Infinity;\n for (const node of renderedNodes) {\n const hw = node.width / 2;\n const hh = node.height / 2;\n const l = node.x - hw;\n const r = node.x + hw;\n const t = node.y - hh;\n const b = node.y + hh;\n if (l < left) {\n left = l;\n }\n if (r > right) {\n right = r;\n }\n if (t < top) {\n top = t;\n }\n if (b > bottom) {\n bottom = b;\n }\n }\n\n const width = right - left;\n const height = bottom - top;\n\n const scale =\n scaleRange && (width > canvasWidth || height > canvasHeight)\n ? Math.max(\n Math.min(canvasWidth / width, canvasHeight / height, scaleRange[1]),\n scaleRange[0]\n )\n : 1;\n\n const x = (canvasWidth - width * scale) / 2 - left * scale;\n const y = (canvasHeight - height * scale) / 2 - top * scale;\n\n return { x, y, k: scale };\n}\n","export const DEFAULT_LINE_STROKE_COLOR = \"var(--palette-gray-5)\";\nexport const DEFAULT_LINE_STROKE_WIDTH = 1;\nexport const DEFAULT_LINE_CURVE_TYPE = \"curveBasis\";\nexport const DEFAULT_LINE_INTERACT_STROKE_WIDTH = 20;\nexport const DEFAULT_SCALE_RANGE_MIN = 0.5;\nexport const DEFAULT_SCALE_RANGE_MAX = 2;\n","import React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { ReactUseBrick } from \"@next-core/react-runtime\";\nimport type {\n DiagramNode,\n DiagramNodeId,\n NodeBrickConf,\n RefRepository,\n} from \"./interfaces\";\nimport { findNodeBrick } from \"./processors/findNodeBrick\";\n\nexport interface NodeComponentGroupProps {\n nodes?: DiagramNode[];\n nodeBricks?: NodeBrickConf[];\n onRendered?: (refRepository: RefRepository | null) => void;\n}\n\nexport function NodeComponentGroup({\n nodes,\n nodeBricks,\n onRendered,\n}: NodeComponentGroupProps): JSX.Element {\n const [rendered, setRendered] = useState(false);\n const [renderedIds, setRenderedIds] = useState<DiagramNodeId[]>([]);\n const refRepository = useMemo<RefRepository>(() => new Map(), []);\n\n const handleRenderer = useCallback(\n (id: DiagramNodeId, element: HTMLElement | null) => {\n if (element) {\n refRepository.set(id, element);\n }\n setRenderedIds((previous) =>\n previous.includes(id) ? previous : previous.concat(id)\n );\n },\n [refRepository]\n );\n\n const handleUnmount = useCallback(\n (id: DiagramNodeId) => {\n setRenderedIds((previous) => {\n const index = previous.indexOf(id);\n return index === -1\n ? previous\n : previous.slice(0, index).concat(previous.slice(index + 1));\n });\n refRepository.delete(id);\n },\n [refRepository]\n );\n\n useEffect(() => {\n // All nodes have been rendered.\n setRendered(!nodes?.some((node) => !renderedIds.includes(node.id)));\n }, [nodes, renderedIds]);\n\n useEffect(\n () => {\n onRendered?.(rendered ? refRepository : null);\n },\n // Dot not re-run effect when `onRendered` changed.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [/* onRendered, */ refRepository, rendered]\n );\n\n return (\n <React.Fragment>\n {nodes?.map((node) => (\n <div key={node.id} className=\"node\">\n <NodeComponent\n nodeBricks={nodeBricks}\n node={node}\n onRendered={handleRenderer}\n onUnmount={handleUnmount}\n />\n </div>\n ))}\n </React.Fragment>\n );\n}\n\nexport interface NodeComponentProps {\n node: DiagramNode;\n nodeBricks?: NodeBrickConf[];\n onRendered?: (id: DiagramNodeId, element: HTMLElement | null) => void;\n onUnmount?: (id: DiagramNodeId) => void;\n}\n\nexport function NodeComponent({\n node,\n nodeBricks,\n onRendered,\n onUnmount,\n}: NodeComponentProps): JSX.Element | null {\n const useBrick = useMemo(\n () => findNodeBrick(node, nodeBricks)?.useBrick,\n [node, nodeBricks]\n );\n const memoizedData = useMemo(() => ({ node }), [node]);\n\n useEffect(() => {\n if (!useBrick) {\n // Keep the same time delay for reporting rendered.\n setTimeout(() => {\n onRendered?.(node.id, null);\n });\n }\n }, [node.id, onRendered, useBrick]);\n\n useEffect(\n () => {\n return () => {\n onUnmount?.(node.id);\n };\n },\n // Only unmount once\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n\n const refCallback = useCallback(\n (element: HTMLElement | null) => {\n if (element) {\n // Todo: correctly wait for `useBrick` in v3 to be rendered (after layout)\n // Wait a macro task to let `useBrick` to be rendered.\n setTimeout(() => {\n onRendered?.(node.id, element);\n });\n }\n },\n [node.id, onRendered]\n );\n\n const ignoredCallback = useCallback(() => {\n setTimeout(() => {\n onRendered?.(node.id, null);\n });\n }, [node.id, onRendered]);\n\n if (!useBrick) {\n return null;\n }\n\n return (\n <ReactUseBrick\n refCallback={refCallback}\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore For v3 only\n ignoredCallback={ignoredCallback}\n useBrick={useBrick}\n data={memoizedData}\n />\n );\n}\n","import { checkIfByTransform } from \"@next-core/runtime\";\nimport { NodeBrickConf, DiagramNode } from \"../interfaces\";\n\nexport function findNodeBrick(\n node: DiagramNode,\n nodeBricks: NodeBrickConf[] | undefined\n): NodeBrickConf | undefined {\n return nodeBricks?.find((item) => {\n if (item.nodeType) {\n return ([] as unknown[]).concat(item.nodeType).includes(node.type);\n }\n return checkIfByTransform(item, { node });\n });\n}\n","import { checkIfByTransform } from \"@next-core/runtime\";\nimport type { DiagramEdge, LineConf } from \"../interfaces\";\n\nexport function matchEdgeByFilter(\n edge: DiagramEdge,\n filter: LineConf\n): boolean {\n if (!filter) {\n return false;\n }\n if (filter.edgeType) {\n return ([] as string[]).concat(filter.edgeType).includes(edge.type!);\n }\n return checkIfByTransform(filter, { edge });\n}\n","import { findIndex, uniqueId } from \"lodash\";\nimport { __secret_internals } from \"@next-core/runtime\";\nimport type {\n DiagramEdge,\n LineConf,\n LineMarker,\n LineMarkerConf,\n LineMarkerType,\n NormalizedLine,\n NormalizedLineMarker,\n} from \"../interfaces\";\nimport { matchEdgeByFilter } from \"./matchEdgeByFilter\";\nimport {\n DEFAULT_LINE_CURVE_TYPE,\n DEFAULT_LINE_INTERACT_STROKE_WIDTH,\n DEFAULT_LINE_STROKE_COLOR,\n DEFAULT_LINE_STROKE_WIDTH,\n} from \"../constants\";\n\nexport function normalizeLinesAndMarkers(\n edges: DiagramEdge[] | undefined,\n lines: LineConf[] | undefined\n) {\n const normalizedLines: NormalizedLine[] = [];\n const normalizedLinesMap = new WeakMap<DiagramEdge, string>();\n const markers: LineMarker[] = [];\n for (const edge of edges ?? []) {\n const { label, ...restLineConf } =\n lines?.find((line) => matchEdgeByFilter(edge, line)) ?? {};\n\n const computedLineConf = __secret_internals.legacyDoTransform(\n { edge },\n restLineConf\n ) as LineConf | undefined;\n if (computedLineConf?.draw === false) {\n continue;\n }\n const id = uniqueId(\"line-\");\n const line: NormalizedLine[\"line\"] = {\n strokeColor: DEFAULT_LINE_STROKE_COLOR,\n strokeWidth: DEFAULT_LINE_STROKE_WIDTH,\n curveType:\n computedLineConf?.type === \"polyline\"\n ? \"curveLinear\"\n : DEFAULT_LINE_CURVE_TYPE,\n interactStrokeWidth: DEFAULT_LINE_INTERACT_STROKE_WIDTH,\n type: \"auto\",\n ...computedLineConf,\n label,\n $id: id,\n };\n normalizedLinesMap.set(edge, id);\n\n const normalizedMarkers: NormalizedLineMarker[] = [];\n\n const lineMarkers: LineMarkerConf[] =\n line.markers ?? (line.arrow ? [{ placement: \"end\", type: \"arrow\" }] : []);\n for (const marker of lineMarkers) {\n const { placement: _placement, type: _type } = marker;\n const placement = _placement ?? \"end\";\n\n let type: LineMarkerType;\n let offsetUnit: number;\n\n switch (_type) {\n case \"0..1\":\n case \"0..N\":\n offsetUnit = 21;\n type = _type;\n break;\n default:\n offsetUnit = 1;\n type = \"arrow\";\n }\n const offset = offsetUnit * line.strokeWidth;\n\n const index = addMarker({ type, strokeColor: line.strokeColor }, markers);\n normalizedMarkers.push({\n index,\n placement,\n type,\n variant: \"default\",\n offset,\n });\n\n const activeStrokeColor =\n line.overrides?.active?.strokeColor ?? line.strokeColor;\n const activeMarkerIndex = addMarker(\n { type, strokeColor: activeStrokeColor },\n markers\n );\n normalizedMarkers.push({\n index: activeMarkerIndex,\n placement,\n type,\n variant: \"active\",\n offset,\n });\n const activeRelatedStrokeColor =\n line.overrides?.activeRelated?.strokeColor ?? line.strokeColor;\n const activeRelatedMarkerIndex = addMarker(\n { type, strokeColor: activeRelatedStrokeColor },\n markers\n );\n normalizedMarkers.push({\n index: activeRelatedMarkerIndex,\n placement,\n type,\n variant: \"active-related\",\n offset,\n });\n }\n\n normalizedLines.push({\n line,\n markers: normalizedMarkers,\n edge,\n });\n }\n return {\n normalizedLines,\n normalizedLinesMap,\n markers,\n };\n}\n\nfunction addMarker(marker: LineMarker, markers: LineMarker[]): number {\n let markerIndex = findIndex(markers, marker);\n if (markerIndex === -1) {\n markerIndex = markers.push(marker) - 1;\n }\n return markerIndex;\n}\n","import React from \"react\";\nimport type { RenderedLineLabel, SimpleRect } from \"./interfaces\";\n\nexport interface LineMaskComponentProps {\n maskPrefix: string;\n lineId: string;\n rects: SimpleRect[];\n renderedLineLabels: RenderedLineLabel[];\n}\n\nexport function LineMaskComponent({\n lineId,\n rects,\n maskPrefix,\n renderedLineLabels,\n}: LineMaskComponentProps): JSX.Element | null {\n const lineText = renderedLineLabels.find(\n (item) => item.lineId === lineId && item.placement === \"center\"\n );\n // istanbul ignore next\n if (!lineText) {\n return null;\n }\n const { lineRect } = lineText;\n const bgRect = getRectWithPadding(lineRect, 1000);\n return (\n <mask\n id={`${maskPrefix}${lineId}`}\n x={bgRect.left}\n y={bgRect.top}\n width={bgRect.width}\n height={bgRect.height}\n >\n <rect\n x={bgRect.left}\n y={bgRect.top}\n width={bgRect.width}\n height={bgRect.height}\n // Everything under a white pixel will be visible\n fill=\"white\"\n />\n {rects.map((rect, index) => (\n <rect\n key={index}\n x={rect.left}\n y={rect.top}\n width={rect.width}\n height={rect.height}\n // Everything under a black pixel will be invisible\n fill=\"black\"\n />\n ))}\n </mask>\n );\n}\n\nfunction getRectWithPadding(rect: SimpleRect, padding: number): SimpleRect {\n return {\n left: rect.left - padding,\n top: rect.top - padding,\n width: rect.width + padding * 2,\n height: rect.height + padding * 2,\n };\n}\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","toString","adjustLineLabels","renderedLineLabels","lineLabelsRefRepository","position","placement","angle","size","_size","label","get","style","left","top","visibility","undefined","width","height","tempDirection","Math","floor","PI","direction","tangent","tan","offsetAngle","offset","offsetSin","sin","offsetCos","cos","transform","getRenderedLines","renderedEdges","renderedNodes","normalizedLines","renderedEdgeMap","WeakMap","renderedNodeMap","Map","relatedNodes","renderedNode","set","renderedEdge","data","edge","prepared","map","_ref","_markers$find$offset","_markers$find","_markers$find$offset2","_markers$find2","line","markers","rest","startMarkerOffset","find","marker","variant","endMarkerOffset","points","source","target","type","doTwoNodesOverlap","_relatedNodes$get","_relatedNodes$get2","prepareRelatedNodes","addRelatedNodes","from","to","relates","Set","toNode","add","sourceDirection","getDirection","targetDirection","sourceRelates","getOrderedRelates","targetRelates","sourcePosition","indexOf","length","targetPosition","getPolyLinePoints","getDirectLinePoints","start","end","atan2","y","x","d","curveLine","curveType","labelSize","filter","Boolean","padding","sourceAngle","sx","sy","tx","ty","fixedAngle","node","sort","a","b","ax","ay","bx","by","LineComponent","_line$overrides","_line$overrides2","linePaths","lineMaskRects","maskPrefix","markerPrefix","activeLineMarkerPrefix","active","activeRelated","onLineClick","onLineDoubleClick","mask","has","$id","strokeColor","strokeWidth","interactStrokeWidth","overrides","expectVariant","markerStart","markerEnd","index","React","className","classNames","interactable","onClick","onDoubleClick","e","preventDefault","stopPropagation","cursor","fill","stroke","ref","element","handleNodesMouseDown","event","nodes","nodesRefRepository","connectNodes","dragNodes","scale","setConnectLineState","setConnectLineTo","setManualLayoutStatus","setNodeMovement","onSwitchActiveTarget","onNodesConnect","findNode","match","contains","options","sourceType","concat","includes","checkIfByTransform","nodeMatched","clientX","clientY","DEFAULT_LINE_STROKE_COLOR","DEFAULT_LINE_STROKE_WIDTH","__secret_internals","legacyDoTransform","nodeId","onMouseMove","onMouseUp","document","removeEventListener","eventTargets","composedPath","addEventListener","moved","movement","move","LineLabelComponentGroup","labels","onRendered","rendered","setRendered","useState","renderedIds","setRenderedIds","refRepository","useMemo","handleRenderer","useCallback","previous","handleUnmount","slice","delete","useEffect","some","_ref2","text","key","LineLabelComponent","onUnmount","LineTextComponent","_ref3","refCallback","content","_ref4","useBrick","memoizedData","setTimeout","parentElement","ignoredCallback","ReactUseBrick","sameTarget","handleKeyboard","activeTarget","activeNode","activeEdge","keyCode","which","action","moveOnAxis","_node","axis","oppositeAxis","diff","candidates","abs","minBy","getLineMaskRects","lineId","offsetWidth","offsetHeight","offsetLeft","offsetTop","ConnectLineComponent","connectLineState","connectLineTo","connecting","MarkerComponent","join","arrow","InstanceApi_postSearchV3","objectId","http","post","_x","_x2","_x3","apply","this","arguments","InstanceApi_updateInstanceV2","instanceId","put","_x4","InstanceApi_createInstance","USER_VIEW_MODEL_ID","useUserView","query","userViewReady","setUserViewReady","userViewIdRef","useRef","userViewNodesMap","setUserViewNodesMap","queue","working","waitingTasks","async","task","nextTask","shift","error","console","createAsyncQueue","namespace","list","fields","$eq","page","page_size","_userView$nodes","userView","current","handleHttpError","getUserView","saveUserView","userViewData","interceptorParams","ignoreLoadingBar","getRenderedLineLabels","renderedLines","flatMap","path","getAttribute","getBBox","pathLength","getTotalLength","item","_item$placement","point","getPointAtLength","min","max","lineRect","adjustNodesSize","nodePaddings","_element$offsetWidth","_element$offsetHeight","adjustNodesPosition","_nodesRefRepository$g","nodeContainer","getRenderedEdges","edges","_edges$map","normalizedLinesMap","getDummyNodes","count","Array","v","i","dummy","getDummyEdges","useRenderedDiagram","layout","originalLayout","manualLayoutStatus","nodeMovement","nodesRenderId","lineLabelsRenderId","layoutOptions","graph","setGraph","renderedDiagram","setRenderedDiagram","previousGraph","dagreLayoutOptions","nodePadding","dagreGraphOptions","rankdir","ranksep","edgesep","nodesep","pick","extractPartialRectTuple","dagre","Graph","setDefaultEdgeLabel","previousNode","getNode","setNode","setEdge","applyLayout","_edge$labelSize","labelpos","getDagreGraph","forceLayoutOptions","dummyNodesOnEdges","collide","dummyRadius","radiusDiff","strength","iterations","userViewNode","fx","fy","forceNodes","forceLinks","linkSimulation","forceLink","distance","l","simulation","forceSimulation","force","forceX","forceY","forceManyBody","forceCollide","radius","sqrt","stop","tick","ceil","log","alphaMin","alphaDecay","manuallyTickToTheEnd","getForceGraph","x0","y0","movedNode","_movedNode$x","_movedNode$y","getManualGraph","transformToCenter","canvasWidth","canvasHeight","scaleRange","Infinity","right","bottom","hw","hh","r","t","k","DEFAULT_LINE_CURVE_TYPE","DEFAULT_LINE_INTERACT_STROKE_WIDTH","DEFAULT_SCALE_RANGE_MIN","DEFAULT_SCALE_RANGE_MAX","NodeComponentGroup","nodeBricks","NodeComponent","_findNodeBrick","nodeType","findNodeBrick","matchEdgeByFilter","edgeType","normalizeLinesAndMarkers","lines","_lines$find","_line$markers","restLineConf","computedLineConf","draw","uniqueId","normalizedMarkers","lineMarkers","_line$overrides$activ","_line$overrides$activ2","_placement","_type","offsetUnit","addMarker","activeMarkerIndex","activeRelatedMarkerIndex","markerIndex","findIndex","LineMaskComponent","rects","lineText","bgRect","rect"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(globalThis.webpackChunk_next_bricks_diagram=globalThis.webpackChunk_next_bricks_diagram||[]).push([[3426],{1045:(t,e,n)=>{n.r(e),n.d(e,{NextElement:()=>y,createDecorators:()=>a,supportsAdoptingStyleSheets:()=>_});const i=Symbol.for("attributeHasBeenSet"),r=Symbol.for("markAttributeHasBeenSet"),o=Symbol.for("stopAttributeChangedCallback"),s={attribute:!0,type:String,converter:{toAttribute:(t,e)=>e===Boolean?t?"":null:t,fromAttribute(t,e){switch(e){case Boolean:return null!==t&&"false"!==t;case Number:return null===t?null:Number(t)}return t}},render:!0,hasChanged:(t,e)=>e!==t&&(e==e||t==t)};function a(){const t=new Map,e=new Set,n=new Set,a=new Set;return{defineElement:function(i){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(o,s)=>{let{kind:d,name:c,addInitializer:h}=s;h((function(){var s,d,c,h,f;const b=Object.getPrototypeOf(this);if(l(this,"observedAttributes",u(null!==(s=b.observedAttributes)&&void 0!==s?s:[],t.keys())),l(this,"__attributeReflections",new Map([...null!==(d=b.__attributeReflections)&&void 0!==d?d:[],...t])),l(this,"styleTexts",r.styleTexts),l(this,"shadowOptions",!1!==r.shadowOptions?{mode:"open",...r.shadowOptions}:null),l(this,"__tagName",i),l(this,"_dev_only_definedProperties",u(null!==(c=b._dev_only_definedProperties)&&void 0!==c?c:[],e)),l(this,"_dev_only_definedMethods",u(null!==(h=b._dev_only_definedMethods)&&void 0!==h?h:[],n)),l(this,"_dev_only_definedEvents",u(null!==(f=b._dev_only_definedEvents)&&void 0!==f?f:[],a)),customElements.define(i,this),Array.isArray(r.alias))for(const t of r.alias){const e=class extends o{};l(e,"__tagName",t),customElements.define(t,e)}}))}},property:function(n){return function(a,l){let{get:u,set:d}=a,{kind:c,name:h,static:f,private:b}=l;e.add(h);const p=Object.assign({},s,n),v=function(t,e){const n=e.attribute;return!1===n?void 0:"string"==typeof n?n:t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}(h,p);return void 0!==v&&t.set(v,{...p,property:h}),{get(){return void 0!==v&&this[i](v)?p.converter.fromAttribute(this.getAttribute(v),p.type):u.call(this)},set(t){const e=u.call(this);if(d.call(this,t),p.hasChanged(t,e)){if(void 0!==v){const e=p.converter.toAttribute(t,p.type);this[o](!0),null==e?this.removeAttribute(v):this.setAttribute(v,e),this[r](v),this[o](!1)}p.render&&this._requestRender()}},init(t){if(void 0!==v&&p.hasChanged(t,void 0)){const e=p.converter.toAttribute(t,p.type);null!=e&&requestAnimationFrame((()=>{this[i](v)||(this[o](!0),this.setAttribute(v,e),this[o](!1))}))}return t}}}},method:function(t){return function(e,i){let{kind:r,name:o,static:s,private:a,addInitializer:l}=i;null!=t&&t.bound&&l((function(){this[o]=this[o].bind(this)})),n.add(o)}},event:function(t){return function(e,n){let{get:i}=e,{kind:r,name:o,static:s,private:l}=n;const{type:u,...d}=t;return a.add(u),{get(){return i.call(this)},set(){throw new Error("Decorated events are readonly")},init(t){return Object.freeze({emit:t=>this.dispatchEvent(new CustomEvent(u,{...d,detail:t}))})}}}}}}function l(t,e,n){Object.defineProperty(t,e,{get:()=>n,configurable:!0})}function u(t,e){const n=new Set(t);for(const t of e)n.add(t);return[...n]}new Set(["prefix"]);var d=n(918),c=n(4586),h=n(829),f=n(6121),b=new WeakMap,p=new WeakMap,v=new WeakMap,m=new WeakMap;class y extends HTMLElement{constructor(){super(...arguments),(0,d.A)(this,b,!1),(0,d.A)(this,p,!1),(0,d.A)(this,v,!1),(0,d.A)(this,m,new Set)}_markConnectedCallbackCalled(){(0,f.A)(p,this,!0)}connectedCallback(){this._markConnectedCallbackCalled(),this._render()}[i](t){return(0,h.A)(m,this).has(t)}[r](t){(0,h.A)(m,this).add(t)}[o](t){(0,f.A)(v,this,t)}attributeChangedCallback(t,e,n){if((0,h.A)(m,this).add(t),!(0,h.A)(v,this)&&e!==n){const e=this.constructor.__attributeReflections.get(t),i=e.converter.fromAttribute(n,e.type);this[e.property]=i}}_requestRender(){this.isConnected&&(0,h.A)(p,this)&&!(0,h.A)(b,this)&&((0,f.A)(b,this,!0),Promise.resolve().then((()=>{(0,f.A)(b,this,!1),this._render()})))}}let A;function _(){return void 0===A&&(A=!!(window.ShadowRoot&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype)),A}(0,c.A)(y,"styleTexts",void 0),(0,c.A)(y,"shadowOptions",void 0),(0,c.A)(y,"__attributeReflections",void 0),(0,c.A)(y,"__tagName",void 0)},1369:(t,e,n)=>{n.d(e,{A:()=>r});var i=n(7545);function r(t){var e=function(t){if("object"!=(0,i.A)(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=(0,i.A)(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==(0,i.A)(e)?e:e+""}},4586:(t,e,n)=>{n.d(e,{A:()=>r});var i=n(1369);function r(t,e,n){return(e=(0,i.A)(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}},7545:(t,e,n)=>{function i(t){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i(t)}n.d(e,{A:()=>i})}}]);
2
+ //# sourceMappingURL=3426.fb6ffa15.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunks/3426.fb6ffa15.js","mappings":"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","sources":["webpack:///../../node_modules/@next-core/element/dist/esm/internal/symbols.js","webpack:///../../node_modules/@next-core/element/dist/esm/createDecorators.js","webpack:///../../node_modules/@next-core/element/dist/esm/NextElement.js","webpack:///../../node_modules/@next-core/element/dist/esm/supportsAdoptingStyleSheets.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/typeof.js"],"sourcesContent":["export const symbolOfAttributeHasBeenSet = Symbol.for(\"attributeHasBeenSet\");\nexport const symbolOfMarkAttributeHasBeenSet = Symbol.for(\"markAttributeHasBeenSet\");\nexport const symbolOfStopAttributeChangedCallback = Symbol.for(\"stopAttributeChangedCallback\");\n//# sourceMappingURL=symbols.js.map","import { symbolOfAttributeHasBeenSet, symbolOfMarkAttributeHasBeenSet, symbolOfStopAttributeChangedCallback } from \"./internal/symbols.js\";\nconst defaultConverter = {\n toAttribute(value, type) {\n switch (type) {\n case Boolean:\n return value ? \"\" : null;\n }\n return value;\n },\n fromAttribute(value, type) {\n switch (type) {\n case Boolean:\n return value !== null && value !== \"false\";\n case Number:\n return value === null ? null : Number(value);\n }\n return value;\n }\n};\n\n/**\n * Change function that returns true if `value` is different from `oldValue`.\n * This method is used as the default for a property's `hasChanged` function.\n */\nconst notEqual = (value, old) => {\n // This ensures (old==NaN, value==NaN) always returns false\n return old !== value && (old === old || value === value);\n};\nconst defaultPropertyDeclaration = {\n attribute: true,\n type: String,\n converter: defaultConverter,\n // reflect: true,\n render: true,\n hasChanged: notEqual\n};\n\n// Note: `prefix` is a native prop on Element, but it's only used in XML documents.\nconst allowedNativeProps = new Set([\"prefix\"]);\nexport function createDecorators() {\n const attributeReflections = new Map();\n const definedProperties = new Set();\n const definedMethods = new Set();\n const definedEvents = new Set();\n function defineElement(name) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return (value, _ref) => {\n let {\n kind,\n name: className,\n addInitializer\n } = _ref;\n // istanbul ignore next\n if (process.env.NODE_ENV === \"development\" && kind !== \"class\") {\n throw new Error(`Invalid usage of \\`@defineElement()\\` on a ${kind}: \"${className}\"`);\n }\n addInitializer(function () {\n var _superClass$observedA, _superClass$__attribu, _superClass$_dev_only, _superClass$_dev_only2, _superClass$_dev_only3;\n const superClass = Object.getPrototypeOf(this);\n const mergedAttributes = mergeIterables((_superClass$observedA = superClass.observedAttributes) !== null && _superClass$observedA !== void 0 ? _superClass$observedA : [], attributeReflections.keys());\n defineReadonlyProperty(this, \"observedAttributes\", mergedAttributes);\n const mergedAttributeReflections = new Map([...((_superClass$__attribu = superClass.__attributeReflections) !== null && _superClass$__attribu !== void 0 ? _superClass$__attribu : []), ...attributeReflections]);\n defineReadonlyProperty(this, \"__attributeReflections\", mergedAttributeReflections);\n defineReadonlyProperty(this, \"styleTexts\", options.styleTexts);\n defineReadonlyProperty(this, \"shadowOptions\", options.shadowOptions !== false ? {\n mode: \"open\",\n ...options.shadowOptions\n } : null);\n defineReadonlyProperty(this, \"__tagName\", name);\n const mergedProperties = mergeIterables((_superClass$_dev_only = superClass._dev_only_definedProperties) !== null && _superClass$_dev_only !== void 0 ? _superClass$_dev_only : [], definedProperties);\n defineReadonlyProperty(this, \"_dev_only_definedProperties\", mergedProperties);\n const mergedMethods = mergeIterables((_superClass$_dev_only2 = superClass._dev_only_definedMethods) !== null && _superClass$_dev_only2 !== void 0 ? _superClass$_dev_only2 : [], definedMethods);\n defineReadonlyProperty(this, \"_dev_only_definedMethods\", mergedMethods);\n const mergedEvents = mergeIterables((_superClass$_dev_only3 = superClass._dev_only_definedEvents) !== null && _superClass$_dev_only3 !== void 0 ? _superClass$_dev_only3 : [], definedEvents);\n defineReadonlyProperty(this, \"_dev_only_definedEvents\", mergedEvents);\n customElements.define(name, this);\n if (Array.isArray(options.alias)) {\n for (const alias of options.alias) {\n // Use a parenthesized expression to make the class has no name.\n const Alias = (\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n 0, class extends value {});\n defineReadonlyProperty(Alias, \"__tagName\", alias);\n customElements.define(alias, Alias);\n }\n }\n });\n };\n }\n function property(options) {\n return function (_ref2, _ref3) {\n let {\n get,\n set\n } = _ref2;\n let {\n kind,\n name,\n static: isStatic,\n private: isPrivate\n } = _ref3;\n // istanbul ignore next\n if (process.env.NODE_ENV !== \"production\") {\n if (kind !== \"accessor\") {\n throw new Error(`Invalid usage of \\`@property()\\` on a ${kind}: \"${String(name)}\"`);\n }\n if (typeof name !== \"string\") {\n throw new Error(`Invalid usage of \\`@property()\\` on a ${kind} of ${typeof name}`);\n }\n if (isStatic) {\n throw new Error(`Invalid usage of \\`@property()\\` on a static ${kind}: \"${name}\"`);\n }\n if (isPrivate) {\n throw new Error(`Invalid usage of \\`@property()\\` on a private ${kind}: \"${name}\"`);\n }\n if (name in HTMLElement.prototype && !allowedNativeProps.has(name)) {\n const message = `\"${name}\" is a native HTMLElement property, and is deprecated to be used as a brick property.`;\n throw new Error(message);\n }\n }\n definedProperties.add(name);\n const _options = Object.assign({}, defaultPropertyDeclaration, options);\n const attrName = attributeNameForProperty(name, _options);\n if (attrName !== undefined) {\n attributeReflections.set(attrName, {\n ..._options,\n property: name\n });\n }\n return {\n get() {\n // If the attribute has been set (not by initialization), returns the\n // value converted by the attribute. Otherwise returns the prop value.\n // This works as a type conversion when reading a prop value.\n if (attrName !== undefined && this[symbolOfAttributeHasBeenSet](attrName)) {\n return _options.converter.fromAttribute(this.getAttribute(attrName), _options.type);\n }\n return get.call(this);\n },\n set(value) {\n const oldValue = get.call(this);\n set.call(this, value);\n if (_options.hasChanged(value, oldValue)) {\n if (attrName !== undefined) {\n const attrValue = _options.converter.toAttribute(value, _options.type);\n this[symbolOfStopAttributeChangedCallback](true);\n if (attrValue == null) {\n this.removeAttribute(attrName);\n } else {\n this.setAttribute(attrName, attrValue);\n }\n this[symbolOfMarkAttributeHasBeenSet](attrName);\n this[symbolOfStopAttributeChangedCallback](false);\n }\n if (_options.render) {\n this._requestRender();\n }\n }\n },\n init(initialValue) {\n if (attrName !== undefined && _options.hasChanged(initialValue, undefined)) {\n const attrValue = _options.converter.toAttribute(initialValue, _options.type);\n if (attrValue != null) {\n // No attributes should be created during constructing custom elements.\n // This is true even if the work is done inside a constructor-initiated microtask.\n // https://html.spec.whatwg.org/multipage/custom-elements.html#custom-element-conformance\n requestAnimationFrame(() => {\n if (!this[symbolOfAttributeHasBeenSet](attrName)) {\n this[symbolOfStopAttributeChangedCallback](true);\n this.setAttribute(attrName, attrValue);\n this[symbolOfStopAttributeChangedCallback](false);\n }\n });\n }\n }\n return initialValue;\n }\n };\n };\n }\n function method(options) {\n return function (_value, _ref4) {\n let {\n kind,\n name,\n static: isStatic,\n private: isPrivate,\n addInitializer\n } = _ref4;\n // istanbul ignore next\n if (process.env.NODE_ENV !== \"production\") {\n if (kind !== \"method\") {\n throw new Error(`Invalid usage of \\`@method()\\` on a ${kind}: \"${String(name)}\"`);\n }\n if (typeof name !== \"string\") {\n throw new Error(`Invalid usage of \\`@method()\\` on a ${kind} of ${typeof name}`);\n }\n if (isStatic) {\n throw new Error(`Invalid usage of \\`@method()\\` on a static ${kind}: \"${name}\"`);\n }\n if (isPrivate) {\n throw new Error(`Invalid usage of \\`@method()\\` on a private ${kind}: \"${name}\"`);\n }\n if (name in HTMLElement.prototype && !allowedNativeProps.has(name)) {\n const message = `\"${name}\" is a native HTMLElement property, and is deprecated to be used as a brick method.`;\n throw new Error(message);\n }\n }\n if (options !== null && options !== void 0 && options.bound) {\n addInitializer(function () {\n this[name] = this[name].bind(this);\n });\n }\n definedMethods.add(name);\n };\n }\n function event(options) {\n return function (_ref5, _ref6) {\n let {\n get\n } = _ref5;\n let {\n kind,\n name,\n static: isStatic,\n private: isPrivate\n } = _ref6;\n // istanbul ignore next\n if (process.env.NODE_ENV !== \"production\") {\n if (kind !== \"accessor\") {\n throw new Error(`Invalid usage of \\`@event()\\` on a ${kind}: \"${String(name)}\"`);\n }\n if (!isPrivate) {\n throw new Error(`Invalid usage of \\`@event()\\` on a non-private ${kind}: \"${String(name)}\"`);\n }\n if (isStatic) {\n throw new Error(`Invalid usage of \\`@event()\\` on a static ${kind}: \"${String(name)}\"`);\n }\n }\n const {\n type,\n ...eventInit\n } = options;\n definedEvents.add(type);\n return {\n get() {\n return get.call(this);\n },\n set() {\n throw new Error(\"Decorated events are readonly\");\n },\n init(initialValue) {\n // istanbul ignore next\n if (process.env.NODE_ENV === \"development\" && initialValue !== undefined) {\n throw new Error(`Do not set an initial value for a decorated event: \"${String(name)}\"`);\n }\n return Object.freeze({\n emit: detail => this.dispatchEvent(new CustomEvent(type, {\n ...eventInit,\n detail\n }))\n });\n }\n };\n };\n }\n return {\n defineElement,\n property,\n method,\n event\n };\n}\nfunction defineReadonlyProperty(target, propName, propValue) {\n Object.defineProperty(target, propName, {\n get() {\n return propValue;\n },\n configurable: true\n });\n}\nfunction mergeIterables(list1, list2) {\n const newList = new Set(list1);\n for (const item of list2) {\n newList.add(item);\n }\n return [...newList];\n}\nfunction attributeNameForProperty(name, options) {\n const attribute = options.attribute;\n return attribute === false ? undefined : typeof attribute === \"string\" ? attribute : name.replace(/[A-Z]/g, char => `-${char.toLowerCase()}`);\n}\n//# sourceMappingURL=createDecorators.js.map","import _classPrivateFieldInitSpec from \"@babel/runtime/helpers/classPrivateFieldInitSpec\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _classPrivateFieldGet from \"@babel/runtime/helpers/classPrivateFieldGet2\";\nimport _classPrivateFieldSet from \"@babel/runtime/helpers/classPrivateFieldSet2\";\nimport { symbolOfAttributeHasBeenSet, symbolOfMarkAttributeHasBeenSet, symbolOfStopAttributeChangedCallback } from \"./internal/symbols.js\";\nvar _hasRequestedRender = /*#__PURE__*/new WeakMap();\nvar _connectedCallbackCalled = /*#__PURE__*/new WeakMap();\nvar _attributeChangedCallbackStopped = /*#__PURE__*/new WeakMap();\nvar _attributesBeenSet = /*#__PURE__*/new WeakMap();\nexport class NextElement extends HTMLElement {\n constructor() {\n super(...arguments);\n _classPrivateFieldInitSpec(this, _hasRequestedRender, false);\n _classPrivateFieldInitSpec(this, _connectedCallbackCalled, false);\n _classPrivateFieldInitSpec(this, _attributeChangedCallbackStopped, false);\n _classPrivateFieldInitSpec(this, _attributesBeenSet, new Set());\n }\n /**\n * When render a custom element as parsed DOM, it is already connected in the\n * first place. The attributes are set while isConnected is true, which will\n * trigger a render request, and then before the next micro-task, the\n * `connectedCallback` will be called, which will trigger an immediate render.\n * Thus we would see two calls of render. So we manually set a mark of whether\n * the `connectedCallback` is actually get called, to prevent a trigger of\n * render request during attributes initialization before `connectedCallback`.\n */\n _markConnectedCallbackCalled() {\n _classPrivateFieldSet(_connectedCallbackCalled, this, true);\n }\n connectedCallback() {\n this._markConnectedCallbackCalled();\n this._render();\n }\n [symbolOfAttributeHasBeenSet](name) {\n return _classPrivateFieldGet(_attributesBeenSet, this).has(name);\n }\n [symbolOfMarkAttributeHasBeenSet](name) {\n _classPrivateFieldGet(_attributesBeenSet, this).add(name);\n }\n\n /** Whether to process attributeChangedCallback. */\n [symbolOfStopAttributeChangedCallback](value) {\n _classPrivateFieldSet(_attributeChangedCallbackStopped, this, value);\n }\n\n /** @internal */\n attributeChangedCallback(name, old, value) {\n _classPrivateFieldGet(_attributesBeenSet, this).add(name);\n if (!_classPrivateFieldGet(_attributeChangedCallbackStopped, this) && old !== value) {\n const attrRef = this.constructor.__attributeReflections.get(name);\n assertAttributeIsReflected(attrRef, name);\n const propValue = attrRef.converter.fromAttribute(value, attrRef.type);\n this[attrRef.property] = propValue;\n }\n }\n\n /**\n * Request a render in the next micro-task. This ensures multiple properties\n * or attributes will trigger a render once in a batch.\n */\n _requestRender() {\n // If the element is not connected,\n // let `connectedCallback()` do the job of calling _render.\n if (this.isConnected && _classPrivateFieldGet(_connectedCallbackCalled, this) && !_classPrivateFieldGet(_hasRequestedRender, this)) {\n _classPrivateFieldSet(_hasRequestedRender, this, true);\n Promise.resolve().then(() => {\n _classPrivateFieldSet(_hasRequestedRender, this, false);\n this._render();\n });\n }\n }\n}\n_defineProperty(NextElement, \"styleTexts\", void 0);\n_defineProperty(NextElement, \"shadowOptions\", void 0);\n_defineProperty(NextElement, \"__attributeReflections\", void 0);\n_defineProperty(NextElement, \"__tagName\", void 0);\nfunction assertAttributeIsReflected(attrRef, name) {\n // istanbul ignore next\n if (process.env.NODE_ENV === \"development\" && !attrRef) {\n throw new Error(`Attribute [${name}] is not reflected`);\n }\n}\n//# sourceMappingURL=NextElement.js.map","let supports;\nexport function supportsAdoptingStyleSheets() {\n if (supports === undefined) {\n supports = !!(window.ShadowRoot &&\n // (window.ShadyCSS === undefined || window.ShadyCSS.nativeShadow) &&\n \"adoptedStyleSheets\" in Document.prototype && \"replace\" in CSSStyleSheet.prototype);\n }\n return supports;\n}\n//# sourceMappingURL=supportsAdoptingStyleSheets.js.map","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}"],"names":["symbolOfAttributeHasBeenSet","Symbol","for","symbolOfMarkAttributeHasBeenSet","symbolOfStopAttributeChangedCallback","defaultPropertyDeclaration","attribute","type","String","converter","toAttribute","value","Boolean","fromAttribute","Number","render","hasChanged","old","createDecorators","attributeReflections","Map","definedProperties","Set","definedMethods","definedEvents","defineElement","name","options","arguments","length","undefined","_ref","kind","className","addInitializer","_superClass$observedA","_superClass$__attribu","_superClass$_dev_only","_superClass$_dev_only2","_superClass$_dev_only3","superClass","Object","getPrototypeOf","this","defineReadonlyProperty","mergeIterables","observedAttributes","keys","__attributeReflections","styleTexts","shadowOptions","mode","_dev_only_definedProperties","_dev_only_definedMethods","_dev_only_definedEvents","customElements","define","Array","isArray","alias","Alias","property","_ref2","_ref3","get","set","static","isStatic","private","isPrivate","add","_options","assign","attrName","replace","char","toLowerCase","attributeNameForProperty","getAttribute","call","oldValue","attrValue","removeAttribute","setAttribute","_requestRender","init","initialValue","requestAnimationFrame","method","_value","_ref4","bound","bind","event","_ref5","_ref6","eventInit","Error","freeze","emit","detail","dispatchEvent","CustomEvent","target","propName","propValue","defineProperty","configurable","list1","list2","newList","item","_hasRequestedRender","WeakMap","_connectedCallbackCalled","_attributeChangedCallbackStopped","_attributesBeenSet","NextElement","HTMLElement","constructor","super","_markConnectedCallbackCalled","connectedCallback","_render","has","attributeChangedCallback","attrRef","isConnected","Promise","resolve","then","supports","supportsAdoptingStyleSheets","window","ShadowRoot","Document","prototype","CSSStyleSheet","toPropertyKey","t","i","e","toPrimitive","r","TypeError","_defineProperty","obj","key","enumerable","writable","_typeof","o","iterator"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- "use strict";(globalThis.webpackChunk_next_bricks_diagram=globalThis.webpackChunk_next_bricks_diagram||[]).push([[3933,6314],{3933:(e,t,o)=>{function n(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return function(r,s){if("string"==typeof t?r.name===t:t.includes(r.name)){const t=[];for(let i=1;i<=o;i++){const o=s[s.length-i];if("MemberExpression"===(null==o?void 0:o.node.type)&&"object"===o.key){const s=o.node;s.computed||"Identifier"!==s.property.type?s.computed&&"Literal"===s.property.type&&"string"==typeof s.property.value?t.push(n?`${r.name}.${s.property.value}`:s.property.value):e.hasNonStaticUsage=!0:t.push(n?`${r.name}.${s.property.name}`:s.property.name)}else e.hasNonStaticUsage=!0}t.length===o&&e.usedProperties.add(t.join("."))}}}function r(e,t){return function(o,n,r){if(n.name===e){const e=r[r.length-1],n=r[r.length-2];if("CallExpression"===(null==n?void 0:n.node.type)&&"callee"===(null==n?void 0:n.key)&&"MemberExpression"===(null==e?void 0:e.node.type)&&"object"===e.key&&(e.node.computed?"Literal"===e.node.property.type&&e.node.property.value===t:"Identifier"===e.node.property.type&&e.node.property.name===t)){const e=n.node.arguments;if(e.length>0){const t=e[0];"Literal"===t.type&&"string"==typeof t.value?o.usedArgs.add(t.value):o.hasNonStaticUsage=!0}}}}}o.r(t),o.d(t,{beforeVisitGlobalMember:()=>n,collectAppGetMenuUsage:()=>s,collectInstalledAppsHasUsage:()=>i,collectMemberUsage:()=>p,collectMemberUsageInFunction:()=>S,createProviderClass:()=>c.createProviderClass,scanPermissionActionsInAny:()=>P,scanPermissionActionsInStoryboard:()=>v,strictCollectMemberUsage:()=>l,track:()=>f,trackAll:()=>y,traverseStoryboardExpressions:()=>u,traverseStoryboardFunction:()=>g,traverseStoryboardFunctions:()=>h,unwrapProvider:()=>c.unwrapProvider});const s=r("APP","getMenu"),i=r("INSTALLED_APPS","has");var a=o(1321),c=o(2729);function u(e,t,o){const n=new WeakSet,{matchExpressionString:r,visitNotMatchedExpressionString:s,visitNonExpressionString:i,visitObject:u}="string"==typeof o?{matchExpressionString:e=>e.includes(o)}:o;!function e(o){if("string"==typeof o)if((0,a.isEvaluable)(o))if(r(o))try{(0,a.preevaluate)(o,{cache:!0,withParent:!0,hooks:{beforeVisitGlobal(e,n){t(e,n,o)}}})}catch(e){console.error("Parse storyboard expression failed:",e)}else null==s||s(o);else null==i||i(o);else if((0,c.isObject)(o)){if(n.has(o))return;n.add(o),null==u||u(o);for(const t of Array.isArray(o)?o:Object.values(o))e(t)}}(e)}function l(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;const{hasNonStaticUsage:n,nonStaticUsage:r,usedProperties:s}=p(e,t,o);if(n)throw new Error(`Non-static usage of ${t} is prohibited, check your expression: "${r}"`);return s}function p(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;const r={usedProperties:new Set,hasNonStaticUsage:!1},s=n(r,t,o);return u(e,((e,t,o)=>{s(e,t),r.hasNonStaticUsage&&(r.nonStaticUsage=o)}),t),r}const d=["CTX","STATE","FORM_STATE"];function f(e,t,o){if(e.includes(t)){const r={usedProperties:new Set,hasNonStaticUsage:!1},{expression:s}=(0,a.preevaluate)(e,{cache:!0,withParent:!0,hooks:{beforeVisitGlobal:n(r,o)}});let i;if("SequenceExpression"===s.type&&(i=s.expressions[0])&&"Literal"===i.type&&i.value===t){if(r.usedProperties.size>0)return r.usedProperties;console.warn(`You are using "${t}" but no \`${o}\` usage found in your expression: ${JSON.stringify(e)}`)}}return!1}function y(e){if(d.some((t=>e.includes(t)))){const t={usedProperties:new Set,hasNonStaticUsage:!1};if((0,a.preevaluate)(e,{cache:!0,withParent:!0,hooks:{beforeVisitGlobal:n(t,d,1,!0)}}),t.usedProperties.size>0){const e=[...t.usedProperties],o={context:!1,state:!1,formState:!1},n={CTX:"context",STATE:"state",FORM_STATE:"formState"};return e.forEach((e=>{const[t,r]=e.split(".");o[n[t]]||(o[n[t]]=[]),o[n[t]].push(r)})),o}console.warn(`You are using track all but no "CTX" or "STATE" or "FORM_STATE" usage found in your expression: ${JSON.stringify(e)}`)}return!1}function h(e,t,o){if(Array.isArray(e))for(const n of e)null!=o&&o.matchSource&&!o.matchSource(n.source)||g(n,t)}function g(e,t,o){try{(0,a.precookFunction)(e.source,{typescript:e.typescript,withParent:!0,hooks:{beforeVisitGlobal:t},cacheKey:e})}catch(t){o||console.error(`Parse storyboard function "${e.name}" failed:`,t)}}function S(e,t,o){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;const s={usedProperties:new Set,hasNonStaticUsage:!1};if(e.source.includes(t)&&g(e,n(s,t,r),o),s.hasNonStaticUsage&&!o)throw new Error(`Non-static usage of ${t} is prohibited, check your function: "${e.name}"`);return s.usedProperties.delete(e.name),s.usedProperties}const m="PERMISSIONS",b="check";function v(e){var t;const o=new Set,n=k(o),{customTemplates:r,functions:s}=null!==(t=e.meta)&&void 0!==t?t:{};return u([e.routes,r],n,m),h(s,n,{matchSource:e=>e.includes(m)}),Array.from(o)}function P(e){const t=new Set;return u(e,k(t),m),Array.from(t)}function k(e){return function(t,o){if(t.name===m){const t=o[o.length-1],n=o[o.length-2];if("CallExpression"===(null==n?void 0:n.node.type)&&"callee"===(null==n?void 0:n.key)&&"MemberExpression"===(null==t?void 0:t.node.type)&&"object"===t.key&&(t.node.computed?"Literal"===t.node.property.type&&t.node.property.value===b:"Identifier"===t.node.property.type&&t.node.property.name===b))for(const t of n.node.arguments)"Literal"===t.type&&"string"==typeof t.value&&e.add(t.value)}}}}}]);
2
- //# sourceMappingURL=6314.096c993f.js.map
1
+ "use strict";(globalThis.webpackChunk_next_bricks_diagram=globalThis.webpackChunk_next_bricks_diagram||[]).push([[3933,6314],{3933:(e,t,o)=>{function n(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return function(r,s){if("string"==typeof t?r.name===t:t.includes(r.name)){const t=[];for(let i=1;i<=o;i++){const o=s[s.length-i];if("MemberExpression"===(null==o?void 0:o.node.type)&&"object"===o.key){const s=o.node;s.computed||"Identifier"!==s.property.type?s.computed&&"Literal"===s.property.type&&"string"==typeof s.property.value?t.push(n?`${r.name}.${s.property.value}`:s.property.value):e.hasNonStaticUsage=!0:t.push(n?`${r.name}.${s.property.name}`:s.property.name)}else e.hasNonStaticUsage=!0}t.length===o&&e.usedProperties.add(t.join("."))}}}function r(e,t){return function(o,n,r){if(n.name===e){const e=r[r.length-1],n=r[r.length-2];if("CallExpression"===(null==n?void 0:n.node.type)&&"callee"===(null==n?void 0:n.key)&&"MemberExpression"===(null==e?void 0:e.node.type)&&"object"===e.key&&(e.node.computed?"Literal"===e.node.property.type&&e.node.property.value===t:"Identifier"===e.node.property.type&&e.node.property.name===t)){const e=n.node.arguments;if(e.length>0){const t=e[0];"Literal"===t.type&&"string"==typeof t.value?o.usedArgs.add(t.value):o.hasNonStaticUsage=!0}}}}}o.r(t),o.d(t,{beforeVisitGlobalMember:()=>n,collectAppGetMenuUsage:()=>s,collectInstalledAppsHasUsage:()=>i,collectMemberUsage:()=>p,collectMemberUsageInFunction:()=>S,createProviderClass:()=>c.createProviderClass,scanPermissionActionsInAny:()=>P,scanPermissionActionsInStoryboard:()=>v,strictCollectMemberUsage:()=>l,track:()=>f,trackAll:()=>y,traverseStoryboardExpressions:()=>u,traverseStoryboardFunction:()=>g,traverseStoryboardFunctions:()=>h,unwrapProvider:()=>c.unwrapProvider});const s=r("APP","getMenu"),i=r("INSTALLED_APPS","has");var a=o(1321),c=o(2304);function u(e,t,o){const n=new WeakSet,{matchExpressionString:r,visitNotMatchedExpressionString:s,visitNonExpressionString:i,visitObject:u}="string"==typeof o?{matchExpressionString:e=>e.includes(o)}:o;!function e(o){if("string"==typeof o)if((0,a.isEvaluable)(o))if(r(o))try{(0,a.preevaluate)(o,{cache:!0,withParent:!0,hooks:{beforeVisitGlobal(e,n){t(e,n,o)}}})}catch(e){console.error("Parse storyboard expression failed:",e)}else null==s||s(o);else null==i||i(o);else if((0,c.isObject)(o)){if(n.has(o))return;n.add(o),null==u||u(o);for(const t of Array.isArray(o)?o:Object.values(o))e(t)}}(e)}function l(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;const{hasNonStaticUsage:n,nonStaticUsage:r,usedProperties:s}=p(e,t,o);if(n)throw new Error(`Non-static usage of ${t} is prohibited, check your expression: "${r}"`);return s}function p(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;const r={usedProperties:new Set,hasNonStaticUsage:!1},s=n(r,t,o);return u(e,((e,t,o)=>{s(e,t),r.hasNonStaticUsage&&(r.nonStaticUsage=o)}),t),r}const d=["CTX","STATE","FORM_STATE"];function f(e,t,o){if(e.includes(t)){const r={usedProperties:new Set,hasNonStaticUsage:!1},{expression:s}=(0,a.preevaluate)(e,{cache:!0,withParent:!0,hooks:{beforeVisitGlobal:n(r,o)}});let i;if("SequenceExpression"===s.type&&(i=s.expressions[0])&&"Literal"===i.type&&i.value===t){if(r.usedProperties.size>0)return r.usedProperties;console.warn(`You are using "${t}" but no \`${o}\` usage found in your expression: ${JSON.stringify(e)}`)}}return!1}function y(e){if(d.some((t=>e.includes(t)))){const t={usedProperties:new Set,hasNonStaticUsage:!1};if((0,a.preevaluate)(e,{cache:!0,withParent:!0,hooks:{beforeVisitGlobal:n(t,d,1,!0)}}),t.usedProperties.size>0){const e=[...t.usedProperties],o={context:!1,state:!1,formState:!1},n={CTX:"context",STATE:"state",FORM_STATE:"formState"};return e.forEach((e=>{const[t,r]=e.split(".");o[n[t]]||(o[n[t]]=[]),o[n[t]].push(r)})),o}console.warn(`You are using track all but no "CTX" or "STATE" or "FORM_STATE" usage found in your expression: ${JSON.stringify(e)}`)}return!1}function h(e,t,o){if(Array.isArray(e))for(const n of e)null!=o&&o.matchSource&&!o.matchSource(n.source)||g(n,t)}function g(e,t,o){try{(0,a.precookFunction)(e.source,{typescript:e.typescript,withParent:!0,hooks:{beforeVisitGlobal:t},cacheKey:e})}catch(t){o||console.error(`Parse storyboard function "${e.name}" failed:`,t)}}function S(e,t,o){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;const s={usedProperties:new Set,hasNonStaticUsage:!1};if(e.source.includes(t)&&g(e,n(s,t,r),o),s.hasNonStaticUsage&&!o)throw new Error(`Non-static usage of ${t} is prohibited, check your function: "${e.name}"`);return s.usedProperties.delete(e.name),s.usedProperties}const m="PERMISSIONS",b="check";function v(e){var t;const o=new Set,n=k(o),{customTemplates:r,functions:s}=null!==(t=e.meta)&&void 0!==t?t:{};return u([e.routes,r],n,m),h(s,n,{matchSource:e=>e.includes(m)}),Array.from(o)}function P(e){const t=new Set;return u(e,k(t),m),Array.from(t)}function k(e){return function(t,o){if(t.name===m){const t=o[o.length-1],n=o[o.length-2];if("CallExpression"===(null==n?void 0:n.node.type)&&"callee"===(null==n?void 0:n.key)&&"MemberExpression"===(null==t?void 0:t.node.type)&&"object"===t.key&&(t.node.computed?"Literal"===t.node.property.type&&t.node.property.value===b:"Identifier"===t.node.property.type&&t.node.property.name===b))for(const t of n.node.arguments)"Literal"===t.type&&"string"==typeof t.value&&e.add(t.value)}}}}}]);
2
+ //# sourceMappingURL=3933.14b96cfd.js.map