@next-bricks/vs 0.4.13 → 0.4.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bricks.json +1 -1
- package/dist/chunks/{1343.2d7c89b6.js → 1343.322ba3c4.js} +3 -3
- package/dist/chunks/{1343.2d7c89b6.js.map → 1343.322ba3c4.js.map} +1 -1
- package/dist/chunks/{2383.5b2900fe.js → 2383.4a8cff04.js} +2 -2
- package/dist/chunks/{2383.5b2900fe.js.map → 2383.4a8cff04.js.map} +1 -1
- package/dist/chunks/{3494.e1827640.js → 3494.30a27650.js} +2 -2
- package/dist/chunks/{3494.e1827640.js.map → 3494.30a27650.js.map} +1 -1
- package/dist/chunks/{6205.deabe04c.js → 6205.3a2a2cab.js} +2 -2
- package/dist/chunks/{6205.deabe04c.js.map → 6205.3a2a2cab.js.map} +1 -1
- package/dist/chunks/{7164.d6920ffa.js → 7164.3aaa7135.js} +2 -2
- package/dist/chunks/{7164.d6920ffa.js.map → 7164.3aaa7135.js.map} +1 -1
- package/dist/chunks/7782.59f7bb1a.js +2 -0
- package/dist/chunks/7782.59f7bb1a.js.map +1 -0
- package/dist/chunks/{7822.73a1d58f.js → 7822.1faa5c46.js} +2 -2
- package/dist/chunks/{7822.73a1d58f.js.map → 7822.1faa5c46.js.map} +1 -1
- package/dist/chunks/{code-editor.15bdbb93.js → code-editor.8377d5d2.js} +2 -2
- package/dist/chunks/{code-editor.15bdbb93.js.map → code-editor.8377d5d2.js.map} +1 -1
- package/dist/chunks/{main.32306ec7.js → main.3ed0a177.js} +2 -2
- package/dist/chunks/{main.32306ec7.js.map → main.3ed0a177.js.map} +1 -1
- package/dist/{index.9808f253.js → index.51ec6247.js} +2 -2
- package/dist/{index.9808f253.js.map → index.51ec6247.js.map} +1 -1
- package/package.json +2 -2
- package/dist/chunks/7782.3b9e04d3.js +0 -2
- package/dist/chunks/7782.3b9e04d3.js.map +0 -1
- /package/dist/chunks/{1343.2d7c89b6.js.LICENSE.txt → 1343.322ba3c4.js.LICENSE.txt} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_next_bricks_vs=self.webpackChunk_next_bricks_vs||[]).push([[7822,4795,3494],{34795:(e,r,t)=>{function n(e,r,t,n,a,i,u){try{var c=e[i](u),s=c.value}catch(e){return void t(e)}c.done?r(s):Promise.resolve(s).then(n,a)}function a(e){return function(){var r=this,t=arguments;return new Promise((function(a,i){var u=e.apply(r,t);function c(e){n(u,a,i,c,s,"next",e)}function s(e){n(u,a,i,c,s,"throw",e)}c(void 0)}))}}t.d(r,{Z:()=>a})},27822:(e,r,t)=>{t.r(r),t.d(r,{ReactUseBrick:()=>c,ReactUseMultipleBricks:()=>s,useCurrentApp:()=>f,useCurrentTheme:()=>d,useRecentApps:()=>v});var n,a=t(34795),i=t(48657),u=t(
|
|
2
|
-
//# sourceMappingURL=7822.
|
|
1
|
+
"use strict";(self.webpackChunk_next_bricks_vs=self.webpackChunk_next_bricks_vs||[]).push([[7822,4795,3494],{34795:(e,r,t)=>{function n(e,r,t,n,a,i,u){try{var c=e[i](u),s=c.value}catch(e){return void t(e)}c.done?r(s):Promise.resolve(s).then(n,a)}function a(e){return function(){var r=this,t=arguments;return new Promise((function(a,i){var u=e.apply(r,t);function c(e){n(u,a,i,c,s,"next",e)}function s(e){n(u,a,i,c,s,"throw",e)}c(void 0)}))}}t.d(r,{Z:()=>a})},27822:(e,r,t)=>{t.r(r),t.d(r,{ReactUseBrick:()=>c,ReactUseMultipleBricks:()=>s,useCurrentApp:()=>f,useCurrentTheme:()=>d,useRecentApps:()=>v});var n,a=t(34795),i=t(48657),u=t(39906),c=function(e){var{useBrick:r,data:t}=e,[n,c]=(0,i.useState)(null),s=(0,i.useRef)(),[l,o]=(0,i.useState)(),d=(0,i.useRef)(0),v=(0,i.useMemo)((()=>{var e;return null===(e=u.__secret_internals.getRenderId)||void 0===e?void 0:e.call(u.__secret_internals)}),[]);(0,i.useEffect)((()=>{function e(){return e=(0,a.Z)((function*(){try{c(yield u.__secret_internals.renderUseBrick(r,t)),o(++d.current)}catch(e){(function(e){var r,t=null===(r=u.__secret_internals.getRenderId)||void 0===r?void 0:r.call(u.__secret_internals);return!e||!t||e===t})(v)&&(console.error("Render useBrick failed:",r,"with data:",t),(0,u.handleHttpError)(e))}})),e.apply(this,arguments)}!function(){e.apply(this,arguments)}()}),[t,r,v]);var f=(0,i.useCallback)((e=>{e?s.current=u.__secret_internals.mountUseBrick(n,e):(u.__secret_internals.unmountUseBrick(n,s.current),s.current=void 0)}),[n]);if(!n)return null;var{tagName:_}=n;if(null===_)return null;var p=_;return i.createElement(p,{key:l,ref:f})},s=function(e){var{useBrick:r,data:t}=e;return Array.isArray(r)?i.createElement(i.Fragment,null,r.map(((e,r)=>i.createElement(c,{key:r,useBrick:e,data:t})))):i.createElement(c,{useBrick:r,data:t})};if(window.dll&&null!==(n=window.BRICK_NEXT_VERSIONS)&&void 0!==n&&null!==(n=n["brick-container"])&&void 0!==n&&n.startsWith("2.")){var{SingleBrickAsComponentFactory:l,BrickAsComponentFactory:o}=window.dll("tYg3");l&&o&&(c=l(i),s=o(i))}function d(){var[e,r]=(0,i.useState)(u.getCurrentTheme);return(0,i.useEffect)((()=>{var e=e=>{r(e.detail)};return window.addEventListener("theme.change",e),()=>{window.removeEventListener("theme.change",e)}}),[]),e}function v(){var[e,r]=i.useState((()=>(0,u.getRuntime)().getRecentApps()));return i.useEffect((()=>{var e=e=>{r(e.detail)};return window.addEventListener("app.change",e),()=>window.removeEventListener("app.change",e)}),[]),e}function f(){return v().currentApp}}}]);
|
|
2
|
+
//# sourceMappingURL=7822.1faa5c46.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/7822.73a1d58f.js","mappings":"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","sources":["webpack:///../../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/ReactUseBrick.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useCurrentTheme.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useRecentApps.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useCurrentApp.js"],"sourcesContent":["function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","import _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nvar _window$BRICK_NEXT_VE;\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { __secret_internals, handleHttpError } from \"@next-core/runtime\";\n// Note: always synchronize code in LegacyUseBrick:\n// `bricks/v2-adapter/src/data-providers/legacy-brick-kit/getLegacyUseBrick.ts`\nvar ReactUseBrick = function ReactUseBrick(_ref) {\n var {\n useBrick,\n data\n } = _ref;\n var [renderResult, setRenderResult] = useState(null);\n var mountResult = useRef();\n var [renderKey, setRenderKey] = useState();\n var IdCounterRef = useRef(0);\n var initialRenderId = useMemo(() => {\n var _secret_internals$ge;\n return (_secret_internals$ge = __secret_internals.getRenderId) === null || _secret_internals$ge === void 0 ? void 0 : _secret_internals$ge.call(__secret_internals);\n }, []);\n useEffect(() => {\n function init() {\n return _init.apply(this, arguments);\n }\n function _init() {\n _init = _asyncToGenerator(function* () {\n try {\n setRenderResult(yield __secret_internals.renderUseBrick(useBrick, data));\n setRenderKey(getUniqueId(IdCounterRef));\n } catch (error) {\n if (isTheSameRender(initialRenderId)) {\n // eslint-disable-next-line no-console\n console.error(\"Render useBrick failed:\", useBrick, \"with data:\", data);\n handleHttpError(error);\n }\n }\n });\n return _init.apply(this, arguments);\n }\n init();\n }, [data, useBrick, initialRenderId]);\n var refCallback = useCallback(element => {\n if (element) {\n mountResult.current = __secret_internals.mountUseBrick(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n renderResult, element);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n __secret_internals.unmountUseBrick(renderResult, mountResult.current);\n mountResult.current = undefined;\n }\n }, [renderResult]);\n if (!renderResult) {\n // Fallback when loading/\n return null;\n // return <span>🌀 Loading...</span>;\n }\n\n var {\n tagName\n } = renderResult;\n if (tagName === null) {\n return null;\n }\n var WebComponent = tagName;\n return /*#__PURE__*/React.createElement(WebComponent, {\n key: renderKey,\n ref: refCallback\n });\n};\nfunction getUniqueId(ref) {\n return ++ref.current;\n}\nfunction isTheSameRender(initialRenderId) {\n var _secret_internals$ge2;\n var newRenderId = (_secret_internals$ge2 = __secret_internals.getRenderId) === null || _secret_internals$ge2 === void 0 ? void 0 : _secret_internals$ge2.call(__secret_internals);\n return !initialRenderId || !newRenderId || initialRenderId === newRenderId;\n}\nvar ReactUseMultipleBricks = function ReactUseMultipleBricks(_ref2) {\n var {\n useBrick,\n data\n } = _ref2;\n if (Array.isArray(useBrick)) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, useBrick.map((item, index) => /*#__PURE__*/React.createElement(ReactUseBrick, {\n key: index,\n useBrick: item,\n data: data\n })));\n }\n return /*#__PURE__*/React.createElement(ReactUseBrick, {\n useBrick: useBrick,\n data: data\n });\n};\n\n// istanbul ignore next\n// Make v3 bricks compatible with Brick Next v2.\nif (window.dll && (_window$BRICK_NEXT_VE = window.BRICK_NEXT_VERSIONS) !== null && _window$BRICK_NEXT_VE !== void 0 && (_window$BRICK_NEXT_VE = _window$BRICK_NEXT_VE[\"brick-container\"]) !== null && _window$BRICK_NEXT_VE !== void 0 && _window$BRICK_NEXT_VE.startsWith(\"2.\")) {\n var {\n SingleBrickAsComponentFactory,\n BrickAsComponentFactory\n } = window.dll(\"tYg3\");\n if (SingleBrickAsComponentFactory && BrickAsComponentFactory) {\n ReactUseBrick = SingleBrickAsComponentFactory(React);\n ReactUseMultipleBricks = BrickAsComponentFactory(React);\n }\n}\nexport { ReactUseBrick, ReactUseMultipleBricks };\n//# sourceMappingURL=ReactUseBrick.js.map","import { useEffect, useState } from \"react\";\nimport { getCurrentTheme } from \"@next-core/runtime\";\nexport function useCurrentTheme() {\n var [currentTheme, setCurrentTheme] = useState(getCurrentTheme);\n useEffect(() => {\n var listenToThemeChange = event => {\n setCurrentTheme(event.detail);\n };\n window.addEventListener(\"theme.change\", listenToThemeChange);\n return () => {\n window.removeEventListener(\"theme.change\", listenToThemeChange);\n };\n }, []);\n return currentTheme;\n}\n//# sourceMappingURL=useCurrentTheme.js.map","import React from \"react\";\nimport { getRuntime } from \"@next-core/runtime\";\nexport function useRecentApps() {\n var [recentApps, setRecentApps] = React.useState(() => getRuntime().getRecentApps());\n React.useEffect(() => {\n var listener = event => {\n setRecentApps(event.detail);\n };\n window.addEventListener(\"app.change\", listener);\n return () => window.removeEventListener(\"app.change\", listener);\n }, []);\n return recentApps;\n}\n//# sourceMappingURL=useRecentApps.js.map","import { useRecentApps } from \"./useRecentApps.js\";\n\n/**\n * 获取当前所在微应用信息的 React hooks。\n *\n * @example\n *\n * ```tsx\n * function MyReactComponent() {\n * const app = useCurrentApp();\n * return <div>{app.id}</div>;\n * }\n * ```\n *\n * @returns 当前所在微应用的信息。\n */\nexport function useCurrentApp() {\n return useRecentApps().currentApp;\n}\n//# sourceMappingURL=useCurrentApp.js.map"],"names":["asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","this","args","arguments","apply","err","undefined","_window$BRICK_NEXT_VE","ReactUseBrick","_ref","useBrick","data","renderResult","setRenderResult","useState","mountResult","useRef","renderKey","setRenderKey","IdCounterRef","initialRenderId","useMemo","_secret_internals$ge","__secret_internals","getRenderId","call","useEffect","_init","renderUseBrick","current","_secret_internals$ge2","newRenderId","isTheSameRender","console","handleHttpError","init","refCallback","useCallback","element","mountUseBrick","unmountUseBrick","tagName","WebComponent","ref","ReactUseMultipleBricks","_ref2","Array","isArray","map","item","index","window","dll","BRICK_NEXT_VERSIONS","startsWith","SingleBrickAsComponentFactory","BrickAsComponentFactory","useCurrentTheme","currentTheme","setCurrentTheme","getCurrentTheme","listenToThemeChange","event","detail","addEventListener","removeEventListener","useRecentApps","recentApps","setRecentApps","getRuntime","getRecentApps","listener","useCurrentApp","currentApp"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"chunks/7822.1faa5c46.js","mappings":"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","sources":["webpack:///../../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/ReactUseBrick.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useCurrentTheme.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useRecentApps.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useCurrentApp.js"],"sourcesContent":["function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","import _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nvar _window$BRICK_NEXT_VE;\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { __secret_internals, handleHttpError } from \"@next-core/runtime\";\n// Note: always synchronize code in LegacyUseBrick:\n// `bricks/v2-adapter/src/data-providers/legacy-brick-kit/getLegacyUseBrick.ts`\nvar ReactUseBrick = function ReactUseBrick(_ref) {\n var {\n useBrick,\n data\n } = _ref;\n var [renderResult, setRenderResult] = useState(null);\n var mountResult = useRef();\n var [renderKey, setRenderKey] = useState();\n var IdCounterRef = useRef(0);\n var initialRenderId = useMemo(() => {\n var _secret_internals$ge;\n return (_secret_internals$ge = __secret_internals.getRenderId) === null || _secret_internals$ge === void 0 ? void 0 : _secret_internals$ge.call(__secret_internals);\n }, []);\n useEffect(() => {\n function init() {\n return _init.apply(this, arguments);\n }\n function _init() {\n _init = _asyncToGenerator(function* () {\n try {\n setRenderResult(yield __secret_internals.renderUseBrick(useBrick, data));\n setRenderKey(getUniqueId(IdCounterRef));\n } catch (error) {\n if (isTheSameRender(initialRenderId)) {\n // eslint-disable-next-line no-console\n console.error(\"Render useBrick failed:\", useBrick, \"with data:\", data);\n handleHttpError(error);\n }\n }\n });\n return _init.apply(this, arguments);\n }\n init();\n }, [data, useBrick, initialRenderId]);\n var refCallback = useCallback(element => {\n if (element) {\n mountResult.current = __secret_internals.mountUseBrick(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n renderResult, element);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n __secret_internals.unmountUseBrick(renderResult, mountResult.current);\n mountResult.current = undefined;\n }\n }, [renderResult]);\n if (!renderResult) {\n // Fallback when loading/\n return null;\n // return <span>🌀 Loading...</span>;\n }\n\n var {\n tagName\n } = renderResult;\n if (tagName === null) {\n return null;\n }\n var WebComponent = tagName;\n return /*#__PURE__*/React.createElement(WebComponent, {\n key: renderKey,\n ref: refCallback\n });\n};\nfunction getUniqueId(ref) {\n return ++ref.current;\n}\nfunction isTheSameRender(initialRenderId) {\n var _secret_internals$ge2;\n var newRenderId = (_secret_internals$ge2 = __secret_internals.getRenderId) === null || _secret_internals$ge2 === void 0 ? void 0 : _secret_internals$ge2.call(__secret_internals);\n return !initialRenderId || !newRenderId || initialRenderId === newRenderId;\n}\nvar ReactUseMultipleBricks = function ReactUseMultipleBricks(_ref2) {\n var {\n useBrick,\n data\n } = _ref2;\n if (Array.isArray(useBrick)) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, useBrick.map((item, index) => /*#__PURE__*/React.createElement(ReactUseBrick, {\n key: index,\n useBrick: item,\n data: data\n })));\n }\n return /*#__PURE__*/React.createElement(ReactUseBrick, {\n useBrick: useBrick,\n data: data\n });\n};\n\n// istanbul ignore next\n// Make v3 bricks compatible with Brick Next v2.\nif (window.dll && (_window$BRICK_NEXT_VE = window.BRICK_NEXT_VERSIONS) !== null && _window$BRICK_NEXT_VE !== void 0 && (_window$BRICK_NEXT_VE = _window$BRICK_NEXT_VE[\"brick-container\"]) !== null && _window$BRICK_NEXT_VE !== void 0 && _window$BRICK_NEXT_VE.startsWith(\"2.\")) {\n var {\n SingleBrickAsComponentFactory,\n BrickAsComponentFactory\n } = window.dll(\"tYg3\");\n if (SingleBrickAsComponentFactory && BrickAsComponentFactory) {\n ReactUseBrick = SingleBrickAsComponentFactory(React);\n ReactUseMultipleBricks = BrickAsComponentFactory(React);\n }\n}\nexport { ReactUseBrick, ReactUseMultipleBricks };\n//# sourceMappingURL=ReactUseBrick.js.map","import { useEffect, useState } from \"react\";\nimport { getCurrentTheme } from \"@next-core/runtime\";\nexport function useCurrentTheme() {\n var [currentTheme, setCurrentTheme] = useState(getCurrentTheme);\n useEffect(() => {\n var listenToThemeChange = event => {\n setCurrentTheme(event.detail);\n };\n window.addEventListener(\"theme.change\", listenToThemeChange);\n return () => {\n window.removeEventListener(\"theme.change\", listenToThemeChange);\n };\n }, []);\n return currentTheme;\n}\n//# sourceMappingURL=useCurrentTheme.js.map","import React from \"react\";\nimport { getRuntime } from \"@next-core/runtime\";\nexport function useRecentApps() {\n var [recentApps, setRecentApps] = React.useState(() => getRuntime().getRecentApps());\n React.useEffect(() => {\n var listener = event => {\n setRecentApps(event.detail);\n };\n window.addEventListener(\"app.change\", listener);\n return () => window.removeEventListener(\"app.change\", listener);\n }, []);\n return recentApps;\n}\n//# sourceMappingURL=useRecentApps.js.map","import { useRecentApps } from \"./useRecentApps.js\";\n\n/**\n * 获取当前所在微应用信息的 React hooks。\n *\n * @example\n *\n * ```tsx\n * function MyReactComponent() {\n * const app = useCurrentApp();\n * return <div>{app.id}</div>;\n * }\n * ```\n *\n * @returns 当前所在微应用的信息。\n */\nexport function useCurrentApp() {\n return useRecentApps().currentApp;\n}\n//# sourceMappingURL=useCurrentApp.js.map"],"names":["asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","this","args","arguments","apply","err","undefined","_window$BRICK_NEXT_VE","ReactUseBrick","_ref","useBrick","data","renderResult","setRenderResult","useState","mountResult","useRef","renderKey","setRenderKey","IdCounterRef","initialRenderId","useMemo","_secret_internals$ge","__secret_internals","getRenderId","call","useEffect","_init","renderUseBrick","current","_secret_internals$ge2","newRenderId","isTheSameRender","console","handleHttpError","init","refCallback","useCallback","element","mountUseBrick","unmountUseBrick","tagName","WebComponent","ref","ReactUseMultipleBricks","_ref2","Array","isArray","map","item","index","window","dll","BRICK_NEXT_VERSIONS","startsWith","SingleBrickAsComponentFactory","BrickAsComponentFactory","useCurrentTheme","currentTheme","setCurrentTheme","getCurrentTheme","listenToThemeChange","event","detail","addEventListener","removeEventListener","useRecentApps","recentApps","setRecentApps","getRuntime","getRecentApps","listener","useCurrentApp","currentApp"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_next_bricks_vs=self.webpackChunk_next_bricks_vs||[]).push([[1085],{34622:(e,t,n)=>{n.d(t,{LS:()=>s,Mv:()=>i,P0:()=>r,sE:()=>a});var r=12,i=18,a=12,s=12},31074:(e,t,n)=>{n.r(t),n.d(t,{CodeEditor:()=>Ce,CodeEditorComponent:()=>it});var r,i,a,s,l,u,o,h,d,c,m,g,v,p,b,f,Z,k,C,w,y,L,N,M,E,S,x,T,R,W,I,A,P,_,K,B,O,z,V,F,H,q,D,U,j,G,$,X=n(33028),Y=n(53395),Q=n(31815),J=n(40381),ee=n(70687),te=n(72604),ne=n(48657),re=n.n(ne),ie=n(92061),ae=n(88978),se=n(21675),le=n(81391),ue=n(46475),oe=n(73701),he=n(47637),de=n(64167),ce=n(27680),me=n(42308),ge=n.n(me),ve=n(69435),pe=(n(65254),n(78035)),be=n(34622),fe=n(9486),Ze=(n(53154),n(65107)),ke=n(28440);(0,oe.z2)(ue),(0,he.z2)(ue),(0,de.z2)(ue,"brick_next_yaml"),(0,ce.z2)(ue);var Ce,{defineElement:we,property:ye,event:Le}=(0,ie.createDecorators)(),Ne=(0,ae.wrapBrick)("eo-form-item");i=we("vs.code-editor",{shadowOptions:!1}),a=ye(),l=ye(),o=ye({attribute:!1}),d=ye(),m=ye(),v=ye({type:Boolean}),b=ye({type:Boolean}),Z=ye(),C=ye({type:Number}),y=ye({attribute:!1}),N=ye({attribute:!1}),E=ye({attribute:!1}),x=ye({attribute:!1}),R=ye({type:Number}),I=ye({attribute:!1}),P=ye(),K=Le({type:"code.change"}),V=Le({type:"user.input"}),D=Le({type:"token.click"});var Me=new WeakMap,Ee=new WeakMap,Se=new WeakMap,xe=new WeakMap,Te=new WeakMap,Re=new WeakMap,We=new WeakMap,Ie=new WeakMap,Ae=new WeakMap,Pe=new WeakMap,_e=new WeakMap,Ke=new WeakMap,Be=new WeakMap,Oe=new WeakMap,ze=new WeakMap,Ve=new WeakMap,Fe=new WeakMap,He=new WeakMap,qe=new WeakMap,De=new WeakMap,Ue=new WeakMap,je=new WeakMap,Ge=new WeakMap,$e=new WeakMap,Xe=new WeakMap;class Ye extends le.G{constructor(){super(...arguments),(0,Y.Z)(this,Ge,{get:rt,set:nt}),(0,Y.Z)(this,De,{get:tt,set:et}),(0,Y.Z)(this,He,{get:Je,set:Qe}),(0,Y.Z)(this,Me,{writable:!0,value:($(this),s(this))}),(0,Y.Z)(this,Ee,{writable:!0,value:u(this)}),(0,Y.Z)(this,Se,{writable:!0,value:h(this)}),(0,Y.Z)(this,xe,{writable:!0,value:c(this)}),(0,Y.Z)(this,Te,{writable:!0,value:g(this)}),(0,Y.Z)(this,Re,{writable:!0,value:p(this)}),(0,Y.Z)(this,We,{writable:!0,value:f(this)}),(0,Y.Z)(this,Ie,{writable:!0,value:k(this)}),(0,Y.Z)(this,Ae,{writable:!0,value:w(this)}),(0,Y.Z)(this,Pe,{writable:!0,value:L(this)}),(0,Y.Z)(this,_e,{writable:!0,value:M(this)}),(0,Y.Z)(this,Ke,{writable:!0,value:S(this)}),(0,Y.Z)(this,Be,{writable:!0,value:T(this)}),(0,Y.Z)(this,Oe,{writable:!0,value:W(this)}),(0,Y.Z)(this,ze,{writable:!0,value:A(this)}),(0,Y.Z)(this,Ve,{writable:!0,value:_(this)}),(0,Y.Z)(this,Fe,{writable:!0,value:B(this)}),(0,Y.Z)(this,qe,{writable:!0,value:F(this)}),(0,Y.Z)(this,Ue,{writable:!0,value:(e,t,n)=>{var r;null===(r=this.getFormElement())||void 0===r||r.formStore.onChange(this.name,e),(0,ee.Z)(this,He).emit(t),n||(0,ee.Z)(this,De).emit(t)}}),(0,Y.Z)(this,je,{writable:!0,value:U(this)}),(0,Y.Z)(this,$e,{writable:!0,value:e=>{(0,ee.Z)(this,Ge).emit(e)}}),(0,Y.Z)(this,Xe,{writable:!0,value:e=>{try{ge().load(e)}catch(e){return"请填写正确的格式"}return""}})}get name(){return(0,ee.Z)(this,Me)}set name(e){(0,J.Z)(this,Me,e)}get label(){return(0,ee.Z)(this,Ee)}set label(e){(0,J.Z)(this,Ee,e)}get value(){return(0,ee.Z)(this,Se)}set value(e){(0,J.Z)(this,Se,e)}get language(){return(0,ee.Z)(this,xe)}set language(e){(0,J.Z)(this,xe,e)}get theme(){return(0,ee.Z)(this,Te)}set theme(e){(0,J.Z)(this,Te,e)}get required(){return(0,ee.Z)(this,Re)}set required(e){(0,J.Z)(this,Re,e)}get readOnly(){return(0,ee.Z)(this,We)}set readOnly(e){(0,J.Z)(this,We,e)}get automaticLayout(){return(0,ee.Z)(this,Ie)}set automaticLayout(e){(0,J.Z)(this,Ie,e)}get minLines(){return(0,ee.Z)(this,Ae)}set minLines(e){(0,J.Z)(this,Ae,e)}get completers(){return(0,ee.Z)(this,Pe)}set completers(e){(0,J.Z)(this,Pe,e)}get advancedCompleters(){return(0,ee.Z)(this,_e)}set advancedCompleters(e){(0,J.Z)(this,_e,e)}get markers(){return(0,ee.Z)(this,Ke)}set markers(e){(0,J.Z)(this,Ke,e)}get links(){return(0,ee.Z)(this,Be)}set links(e){(0,J.Z)(this,Be,e)}get maxLines(){return(0,ee.Z)(this,Oe)}set maxLines(e){(0,J.Z)(this,Oe,e)}get height(){return(0,ee.Z)(this,ze)}set height(e){(0,J.Z)(this,ze,e)}get message(){return(0,ee.Z)(this,Ve)}set message(e){(0,J.Z)(this,Ve,e)}connectedCallback(){this.style.display||(this.style.display="block"),super.connectedCallback()}render(){return re().createElement(Ne,{curElement:this,formElement:this.getFormElement(),name:this.name,label:this.label,required:this.required,validator:(0,ee.Z)(this,Xe)},re().createElement(it,{value:this.value,language:this.language,readOnly:this.readOnly,theme:this.theme,automaticLayout:this.automaticLayout,minLines:this.minLines,maxLines:this.maxLines,height:this.height,completers:this.completers,advancedCompleters:this.advancedCompleters,markers:this.markers,links:this.links,validateState:this.validateState,onChange:(0,ee.Z)(this,Ue),onHighlightClick:(0,ee.Z)(this,$e)}))}}function Qe(e){z(this,e)}function Je(){return O(this)}function et(e){q(this,e)}function tt(){return H(this)}function nt(e){G(this,e)}function rt(){return j(this)}function it(e){var{value:t,language:n,theme:r,minLines:i,maxLines:a,height:s,automaticLayout:l,completers:u,advancedCompleters:o,markers:h,readOnly:d,links:c,validateState:m,onChange:g,onHighlightClick:v}=e,p=null!=t?t:"",b=null!=n?n:"plaintext",f=null!=r?r:"auto",Z=null!=i?i:3,k=null!=a?a:1/0,C=null!=s?s:500,w=(0,ne.useRef)(null),y=(0,ne.useRef)(),L=(0,ne.useRef)(),N=(0,ne.useRef)({width:300,height:at(p,Z,k)}),[M,E]=(0,ne.useState)(),S=(0,ne.useRef)(l),x=(0,se.useCurrentTheme)();(0,ne.useEffect)((()=>{ue.editor.setTheme("auto"===f?"dark"===x||"dark-v2"===x?"vs-dark":"vs":f)}),[x,f]),(0,ne.useEffect)((()=>{if(L.current){var e=L.current.getModel();ue.editor.setModelLanguage(e,b),(0,pe.isEqual)(e.getValue(),p)||e.setValue(p)}}),[p,b]),(0,ne.useEffect)((()=>{if("brick_next_yaml"===b){var e=(0,fe.Z)(u,o),t=ue.languages.registerCompletionItemProvider("brick_next_yaml",{provideCompletionItems:e,triggerCharacters:[".",":","<"]});return()=>{t.dispose()}}}),[u,o,b]);var T=(0,ne.useCallback)((()=>{var e=new ve.Z,t=void 0;if(L.current){var n=L.current.getModel();try{if(t=ge().load(p,{listener:e.listen()}),(c||h)&&L.current){var r,i=[];if(e.getTokens().forEach((e=>{var{startLineNumber:t,endLineNumber:n,startColumn:r}=e,a=[],s=(0,ke.preevaluate)(e.source,{hooks:{beforeVisit(e){"MemberExpression"===e.type&&"Identifier"===e.object.type&&Ze.fT.includes(e.object.name)&&"Identifier"===e.property.type&&a.push(e)}}});a.forEach((a=>{var{start:l,end:u,loc:o}=a;if(e.startLineNumber!==e.endLineNumber){var h,d,c,m,g,v=/<%[ ]+/.test(s.prefix);i.push({token:null===(h=a.object)||void 0===h?void 0:h.name,property:a.property.name,startLineNumber:e.startLineNumber+(null==o||null===(d=o.start)||void 0===d?void 0:d.line)-Number(v),endLineNumber:e.startLineNumber+(null==o||null===(c=o.end)||void 0===c?void 0:c.line)-Number(v),startColumn:(v&&1===(null==o?void 0:o.start.line)?s.prefix.length:0)+(null==o||null===(m=o.start)||void 0===m?void 0:m.column)+1,endColumn:(v&&1===(null==o?void 0:o.start.line)?s.prefix.length:0)+(null==o||null===(g=o.end)||void 0===g?void 0:g.column)+1})}else{var p,b,f;i.push({token:null===(p=a.object)||void 0===p?void 0:p.name,property:a.property.name,startLineNumber:t,endLineNumber:n,startColumn:r+l+(null===(b=s.prefix)||void 0===b?void 0:b.length)+Number(!e.isString),endColumn:r+u+(null===(f=s.prefix)||void 0===f?void 0:f.length)+Number(!e.isString)})}}))})),null===(r=y.current)||void 0===r||r.set(i.filter((e=>null==c?void 0:c.includes(e.token))).map((e=>({range:new ue.Range(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),options:{inlineClassName:"highlight"}})))),h){var a=i.map((e=>{var t,n,r=h.find((t=>t.token===e.token));return null==r||!r.params||(null===(t=r.params)||void 0===t?void 0:t.includes(e.property))?r&&r.message?(0,X.Z)((0,X.Z)({severity:Ze.aC[null!==(n=null==r?void 0:r.level)&&void 0!==n?n:"warn"],message:r.message},r.code?{code:{value:r.code.value,target:ue.Uri.parse(r.code.target)}}:{}),{},{startLineNumber:e.startLineNumber,endLineNumber:e.endLineNumber,startColumn:e.startColumn,endColumn:e.endColumn}):void 0:{severity:Ze.aC.warn,message:"Miss Property",startLineNumber:e.startLineNumber,endLineNumber:e.endLineNumber,startColumn:e.startColumn,endColumn:e.endColumn}})).filter(Boolean);ue.editor.setModelMarkers(n,"brick_next_yaml",a)}}}catch(e){var s;ue.editor.setModelMarkers(n,"brick_next_yaml",[]),null==y||null===(s=y.current)||void 0===s||s.set([])}}return t}),[p,c,h]);return(0,ne.useLayoutEffect)((()=>{var e;if("fit-content"===S.current&&w.current){N.current.width=w.current.getBoundingClientRect().width,null===(e=L.current)||void 0===e||e.layout(N.current);var t=new ResizeObserver((e=>{for(var t of e)if(t.target===w.current){var n,r=t.contentBoxSize?t.contentBoxSize[0].inlineSize:t.contentRect.width;r!==N.current.width&&(N.current.width=r,null===(n=L.current)||void 0===n||n.layout(N.current));break}}));return t.observe(w.current),()=>{t.disconnect()}}}),[]),(0,ne.useLayoutEffect)((()=>{if("fit-container"===S.current){var e=function(e){for(var t=e;t;){var n="vs.code-editor"===t.tagName.toLowerCase();if(t=t.parentElement,n)return t}}(w.current);if(e){var t=new ResizeObserver((()=>{E(e.offsetHeight)}));return t.observe(e),()=>{t.disconnect()}}}}),[]),(0,ne.useEffect)((()=>{"fit-container"!==S.current&&"fit-content"!==S.current&&E(C)}),[C]),(0,ne.useEffect)((()=>{L.current&&L.current.updateOptions({readOnly:d})}),[d]),(0,ne.useEffect)((()=>{if(!L.current&&w.current){var e=ue.editor.createModel(p,b);L.current=ue.editor.create(w.current,{model:e,minimap:{enabled:!1},scrollBeyondLastLine:!1,tabSize:2,insertSpaces:!0,automaticLayout:"fit-content"!==S.current,fontSize:be.P0,lineHeight:be.Mv,scrollbar:{horizontalScrollbarSize:be.sE,verticalScrollbarSize:be.sE,horizontalSliderSize:8,verticalSliderSize:8,alwaysConsumeMouseWheel:!1},padding:{top:be.LS,bottom:"fit-content"==S.current?void 0:be.LS},overviewRulerBorder:!1,mouseWheelScrollSensitivity:.5,suggest:{insertMode:"insert",preview:!0},readOnly:d,quickSuggestions:{strings:!0,other:!0,comments:!0}}),y.current=L.current.createDecorationsCollection()}}),[p,b,d]),(0,ne.useEffect)((()=>{var e=L.current;if("brick_next_yaml"===b&&e){var t=e.getModel(),n=e.onMouseDown((function(e){var n,r,i=y.current;(null!==(n=null==i||null===(r=i.getRanges)||void 0===r?void 0:r.call(i))&&void 0!==n?n:[]).forEach((n=>{var r=/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"metaKey":"ctrlKey";n&&e.target.position&&e.event[r]&&n.containsPosition(e.target.position)&&v(t.getValueInRange(n))}))})),r=e.onMouseMove((function(e){var t=y.current;t&&t.getRanges().forEach((n=>{var r=/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"metaKey":"ctrlKey";if(n&&e.target.position&&e.event[r]&&n.containsPosition(e.target.position)){var i=t.getRanges().map((e=>({range:e,options:{inlineClassName:n.equalsRange(e)?"highlight pointer":"highlight"}})));t.set(i)}else if(!e.event[r]){var a=t.getRanges().map((e=>({range:e,options:{inlineClassName:"highlight"}})));t.set(a)}}))}));return T(),()=>{null==r||r.dispose(),null==n||n.dispose()}}}),[b,v,x,f,T]),(0,ne.useEffect)((()=>{var e=L.current;if(e&&w.current&&"fit-content"===S.current){var t=e.onDidContentSizeChange((t=>{if(t.contentHeightChanged){var n=st(t.contentHeight,Z,k);n!==N.current.height&&(N.current.height=n,e.layout(N.current))}})),n=st(e.getContentHeight(),Z,k);return n!==N.current.height&&(N.current.height=n,e.layout(N.current)),()=>{t.dispose()}}}),[k,Z]),(0,ne.useEffect)((()=>{if(L.current){var e=L.current.getModel(),t=e.onDidChangeContent((t=>{var n=T();g(e.getValue(),n,t.isFlush)}));return()=>{t.dispose()}}}),[g,T]),(0,ne.useEffect)((()=>()=>{var e,t;null===(e=L.current)||void 0===e||null===(e=e.getModel())||void 0===e||e.dispose(),null===(t=L.current)||void 0===t||t.dispose()}),[]),re().createElement("div",{ref:w,style:(0,X.Z)({height:M},"error"===m?{outline:"1px solid var(--antd-error-color)"}:{})})}function at(e,t,n){return lt(Math.min(n,Math.max(t,e.split("\n").length)))}function st(e,t,n){var r=e;return(e-be.LS)%be.Mv==0&&(r=e+be.sE),Math.min(lt(n),Math.max(r,lt(t)))}function lt(e){return e*be.Mv+be.sE+be.LS}({e:[s,u,h,c,g,p,f,k,w,L,M,S,T,W,A,_,B,O,z,F,H,q,U,j,G,$],c:[Ce,r]}=(0,te.Z)(Ye,[[a,1,"name"],[l,1,"label"],[o,1,"value"],[d,1,"language"],[m,1,"theme"],[v,1,"required"],[b,1,"readOnly"],[Z,1,"automaticLayout"],[C,1,"minLines"],[y,1,"completers"],[N,1,"advancedCompleters"],[E,1,"markers"],[x,1,"links"],[R,1,"maxLines"],[I,1,"height"],[P,1,"message"],[K,1,"codeChange",e=>(0,ee.Z)(e,Fe),(e,t)=>(0,J.Z)(e,Fe,t)],[V,1,"userInput",e=>(0,ee.Z)(e,qe),(e,t)=>(0,J.Z)(e,qe,t)],[D,1,"highlighClickEvent",e=>(0,ee.Z)(e,je),(e,t)=>(0,J.Z)(e,je,t)]],[i],0,(e=>Xe.has((0,Q.Z)(e))))),r()},69435:(e,t,n)=>{n.d(t,{Z:()=>d});var r=n(56666),i=n(53395),a=n(70687),s=n(40381),l=n(78035),u=new WeakMap,o=new WeakMap,h=new WeakMap;const d=class{constructor(){(0,i.Z)(this,u,{writable:!0,value:void 0}),(0,i.Z)(this,o,{writable:!0,value:void 0}),(0,i.Z)(this,h,{writable:!0,value:void 0}),(0,r.Z)(this,"getTokens",(()=>(0,a.Z)(this,u))),(0,s.Z)(this,u,[]),(0,s.Z)(this,o,0),(0,s.Z)(this,h,"")}handleState(e,t){if("close"===e){var{line:n,position:r,lineStart:i,result:d}=t,c=t.input.substring(i,r);if(c.trim()===(0,a.Z)(this,h).trim())return;(0,s.Z)(this,h,c);var m=n+1,g=n+1,v=r-i-d.length,p=r-i-t.lineIndent;if("string"==typeof d&&/^\s*<%[~=]?\s/.test(d)&&/\s%>\s*$/.test(d)){var b,f=d,Z=null===(b=d.match(/\n/g))||void 0===b?void 0:b.length;if(Z){for(var k=(0,a.Z)(this,o),C=(0,a.Z)(this,o);C<t.input.length;C++)if("\n"===t.input[C]){k=C+1;break}var w=/(\|-|>-)/.test(t.input.substring((0,a.Z)(this,o),r-1));f=t.input.substring(k,r-1),m=t.line-Z+1-Number(w),g=n,v=0,p=0}var y={source:f,startLineNumber:m,endLineNumber:g,startColumn:v,endColumn:p,isString:['"',"'"].includes(t.input[i+v-2])};!(0,a.Z)(this,u).find((e=>(0,l.isEqual)(e,y)))&&(0,a.Z)(this,u).push(y)}(0,s.Z)(this,o,r)}}listen(){return this.handleState.bind(this)}}},9486:(e,t,n)=>{n.d(t,{Z:()=>o});var r=n(33028),i=n(46475),a=n(36023),s=n(65107),l=n(78035),u=(e,t,n)=>{for(var r=[],i=[],a="",s=n,l=t.startColumn;s>0;){var u=e.getValueInRange({startLineNumber:s,endLineNumber:s,startColumn:0,endColumn:1/0}).match(/^([\s|-]*)(\w+)(?=:)/);if(u){var[o,h,d]=u;h.length===t.startColumn-1&&r.unshift(d),h.length<l-1&&(!a&&(a=d),l=h.length,i.unshift(d))}s--}return{curLevelKeys:r,keyList:i,parentKey:a}},o=(e,t)=>(n,o,h,d)=>{var c=n.getWordUntilPosition(o),{word:m,token:g}=((e,t)=>{var n,i=e.getWordUntilPosition(t),a=e.getValueInRange({startLineNumber:t.lineNumber,endLineNumber:t.lineNumber,startColumn:t.column-i.word.length-1,endColumn:t.column-i.word.length}),s=e.getWordAtPosition((0,r.Z)((0,r.Z)({},t),{},{column:t.column-(null==i||null===(n=i.word)||void 0===n?void 0:n.length)-1}));return{word:null==s?void 0:s.word,token:a}})(n,o),v=n.getValueInRange({startLineNumber:o.lineNumber,endLineNumber:o.lineNumber,startColumn:0,endColumn:1/0}),p={startLineNumber:o.lineNumber,endLineNumber:o.lineNumber,startColumn:c.startColumn,endColumn:c.endColumn},b=1===c.startColumn,{curLevelKeys:f}=u(n,c,n.getLineCount());if("<"===h.triggerCharacter)return"<"!==n.getValueInRange({startLineNumber:o.lineNumber,endLineNumber:o.lineNumber,startColumn:o.column-2,endColumn:o.column+2}).trim()?{suggestions:[]}:{suggestions:[{label:"<% %>",detail:"Evalute Body",kind:i.languages.CompletionItemKind.Value,insertText:"% ${0} %>",insertTextRules:i.languages.CompletionItemInsertTextRule.InsertAsSnippet,range:p},{label:"<%= %>",detail:"Track Evalute Body",kind:i.languages.CompletionItemKind.Value,insertText:"%= ${0} %>",insertTextRules:i.languages.CompletionItemInsertTextRule.InsertAsSnippet,range:p}]};if(b)return{suggestions:(null!=e?e:[]).filter((e=>!f.includes(e.label))).map((e=>(0,r.Z)((0,r.Z)({},e),{},{label:e.label,insertText:e.insertText||e.label,kind:i.languages.CompletionItemKind.Keyword,range:p})))};if(":"===h.triggerCharacter||"."===h.triggerCharacter&&m&&!["CTX","STATE","FN"].includes(m)){var Z,k;if("action"===m&&":"===h.triggerCharacter)return{suggestions:null===(Z=null!==(k=(0,l.get)(a,"definitions.BuiltinBrickEventHandler.properties.action.enum"))&&void 0!==k?k:[])||void 0===Z?void 0:Z.map((e=>({label:" ".concat(e),detail:"event action",kind:i.languages.CompletionItemKind.Keyword,insertText:" ".concat(e),range:p})))};var C,w,y=null==t?void 0:t[m],L="";if(y&&!Array.isArray(y)?(C=y.completers,L=y.triggerCharacter):C=y,L?h.triggerCharacter===L&&C:C)return{suggestions:(null!==(w=C)&&void 0!==w?w:[]).map((e=>{var t=":"===L?" ".concat(e.label):e.label;return(0,r.Z)((0,r.Z)({},e),{},{label:t,kind:i.languages.CompletionItemKind.Value,insertText:e.insertText||t,range:p})}))}}if(((e,t)=>{var n=e.getWordUntilPosition(t),r=e.findPreviousMatch("<%",t,!1,!1,null,!1),i=e.findNextMatch("%>",t,!1,!1,null,!1);if((null==r?void 0:r.range.startLineNumber)&&(null==i?void 0:i.range.startLineNumber)&&r.range.startLineNumber<=t.lineNumber&&i.range.endLineNumber>=t.lineNumber){var{parentKey:a}=u(e,r.range,null==r?void 0:r.range.startLineNumber),{parentKey:s}=u(e,i.range,null==i?void 0:i.range.startLineNumber),{keyList:l}=u(e,n,t.lineNumber);if(a===s&&l.includes(a))return!0}return!1})(n,o)){var N,M,E,S;if(m&&["CTX","STATE"].includes(m)&&t)return{suggestions:(null!==(N=null===(M=t[m])||void 0===M?void 0:M.completers)&&void 0!==N?N:[]).map((e=>({label:e.label,insertText:e.label,kind:i.languages.CompletionItemKind.Value,range:p})))};if("FN"===m&&"."===h.triggerCharacter&&t)return{suggestions:(null!==(E=null===(S=t.FN)||void 0===S?void 0:S.completers)&&void 0!==E?E:[]).map((e=>({label:e.label,insertText:e.label,kind:i.languages.CompletionItemKind.Value,range:p})))};if("APP"===m&&"."===h.triggerCharacter){var x=(0,l.get)(a,"definitions.MicroApp.properties"),T=[];for(var[R,W]of Object.entries(x))T.push({label:R,kind:i.languages.CompletionItemKind.Value,documentation:W.description,detail:W.enum?W.enum.join("|"):W.type,insertText:R,range:p});return{suggestions:T}}return[".",":"].includes(g)?{suggestions:[]}:{suggestions:s.fT.map((e=>({label:e,insertText:e,kind:i.languages.CompletionItemKind.Keyword,range:p})))}}return/^[\s|-]*\w$/.test(v)?{suggestions:s.Wu.map((e=>({label:e,insertText:e,kind:i.languages.CompletionItemKind.Keyword,range:p}))).filter((e=>!f.includes(e.label)))}:{suggestions:[]}}},65107:(e,t,n)=>{n.d(t,{Wu:()=>i,aC:()=>a,fT:()=>r});var r=["CTX","STATE","DATA","EVENT","FLAGS","APP","ANCHOR","HASH","INSTALLED_APPS","ITEM","LOCAL_STORAGE","MEDIA","MISC","PARAMS","PATH","PROCESSORS","QUERY","QUERY_ARRAY","SESSION_STORAGE","TPL","SYS","BASE_URL","IMG","FN","I18N","I18N_TEXT","PERMISSIONS","THEME"],i=["target","targetRef","properties","events","method","callback","success","error","action","useProvider","useChildren","useBrick","args","if","then"],a={hit:1,info:2,warn:4,error:8}},76126:(e,t,n)=>{n.d(t,{Z:()=>l});var r=n(39601),i=n.n(r),a=n(82609),s=n.n(a)()(i());s.push([e.id,".highlight{color:rgb(74 170 189)!important;text-decoration:underline;font-weight:bold;font-style:oblique}.pointer{cursor:pointer}",""]);const l=s},53154:(e,t,n)=>{var r=n(46062),i=n.n(r),a=n(44036),s=n.n(a),l=n(96793),u=n.n(l),o=n(17892),h=n.n(o),d=n(11173),c=n.n(d),m=n(42464),g=n.n(m),v=n(76126),p={};p.styleTagTransform=g(),p.setAttributes=h(),p.insert=u().bind(null,"head"),p.domAPI=s(),p.insertStyleElement=c(),i()(v.Z,p),v.Z&&v.Z.locals&&v.Z.locals},81391:(e,t,n)=>{n.d(t,{G:()=>M});var r,i,a,s,l,u,o,h=n(53395),d=n(40381),c=n(70687),m=n(72604),g=n(92061),v=n(88978),{method:p,property:b}=(0,g.createDecorators)();r=b({attribute:!1}),a=b({attribute:!1}),l=p(),u=p();var f=new WeakMap,Z=new WeakMap,k=new WeakMap,C=new WeakMap,w=new WeakMap,y=new WeakMap,L=new WeakMap,N=new WeakMap;class M extends v.ReactNextElement{constructor(){super(...arguments),(0,h.Z)(this,y,{get:R,set:W}),(0,h.Z)(this,C,{get:x,set:T}),(0,h.Z)(this,Z,{get:E,set:S}),(0,h.Z)(this,f,{writable:!0,value:!1}),(0,h.Z)(this,k,{writable:!0,value:"normal"}),(0,h.Z)(this,w,{writable:!0,value:!1}),(0,h.Z)(this,L,{writable:!0,value:(o(this),i(this))}),(0,h.Z)(this,N,{writable:!0,value:s(this)})}get isFormItemElement(){return!0}set validateState(e){(0,d.Z)(this,C,e),this._render()}get validateState(){return(0,c.Z)(this,C)}set notRender(e){this.hidden=e,(0,d.Z)(this,Z,e),this._render()}get notRender(){return(0,c.Z)(this,Z)}get $bindFormItem(){return(0,c.Z)(this,y)}set $bindFormItem(e){(0,d.Z)(this,y,e),this._render()}get helpBrick(){return(0,c.Z)(this,L)}set helpBrick(e){(0,d.Z)(this,L,e)}get labelBrick(){return(0,c.Z)(this,N)}set labelBrick(e){(0,d.Z)(this,N,e)}setNotRender(e){this.notRender=e}getFormElement(){for(var e=this;(e=e.parentNode)&&e&&!e.isFormElement;);return e}}function E(){return(0,c.Z)(this,f)}function S(e){(0,d.Z)(this,f,e)}function x(){return(0,c.Z)(this,k)}function T(e){(0,d.Z)(this,k,e)}function R(){return(0,c.Z)(this,w)}function W(e){(0,d.Z)(this,w,e)}[i,s,o]=(0,m.Z)(M,[[r,1,"helpBrick"],[a,1,"labelBrick"],[l,2,"setNotRender"],[u,2,"getFormElement"]],[]).e}}]);
|
|
2
|
-
//# sourceMappingURL=code-editor.
|
|
1
|
+
"use strict";(self.webpackChunk_next_bricks_vs=self.webpackChunk_next_bricks_vs||[]).push([[1085],{34622:(e,t,n)=>{n.d(t,{LS:()=>s,Mv:()=>i,P0:()=>r,sE:()=>a});var r=12,i=18,a=12,s=12},31074:(e,t,n)=>{n.r(t),n.d(t,{CodeEditor:()=>Ce,CodeEditorComponent:()=>it});var r,i,a,s,l,u,o,h,d,c,m,g,v,p,b,f,Z,k,C,w,y,L,N,M,E,S,x,T,R,W,I,A,P,_,K,B,O,z,V,F,H,q,D,U,j,G,$,X=n(33028),Y=n(53395),Q=n(31815),J=n(40381),ee=n(70687),te=n(72604),ne=n(48657),re=n.n(ne),ie=n(92061),ae=n(88978),se=n(87420),le=n(81391),ue=n(46475),oe=n(73701),he=n(47637),de=n(64167),ce=n(27680),me=n(42308),ge=n.n(me),ve=n(69435),pe=(n(65254),n(78035)),be=n(34622),fe=n(9486),Ze=(n(53154),n(65107)),ke=n(28440);(0,oe.z2)(ue),(0,he.z2)(ue),(0,de.z2)(ue,"brick_next_yaml"),(0,ce.z2)(ue);var Ce,{defineElement:we,property:ye,event:Le}=(0,ie.createDecorators)(),Ne=(0,ae.wrapBrick)("eo-form-item");i=we("vs.code-editor",{shadowOptions:!1}),a=ye(),l=ye(),o=ye({attribute:!1}),d=ye(),m=ye(),v=ye({type:Boolean}),b=ye({type:Boolean}),Z=ye(),C=ye({type:Number}),y=ye({attribute:!1}),N=ye({attribute:!1}),E=ye({attribute:!1}),x=ye({attribute:!1}),R=ye({type:Number}),I=ye({attribute:!1}),P=ye(),K=Le({type:"code.change"}),V=Le({type:"user.input"}),D=Le({type:"token.click"});var Me=new WeakMap,Ee=new WeakMap,Se=new WeakMap,xe=new WeakMap,Te=new WeakMap,Re=new WeakMap,We=new WeakMap,Ie=new WeakMap,Ae=new WeakMap,Pe=new WeakMap,_e=new WeakMap,Ke=new WeakMap,Be=new WeakMap,Oe=new WeakMap,ze=new WeakMap,Ve=new WeakMap,Fe=new WeakMap,He=new WeakMap,qe=new WeakMap,De=new WeakMap,Ue=new WeakMap,je=new WeakMap,Ge=new WeakMap,$e=new WeakMap,Xe=new WeakMap;class Ye extends le.G{constructor(){super(...arguments),(0,Y.Z)(this,Ge,{get:rt,set:nt}),(0,Y.Z)(this,De,{get:tt,set:et}),(0,Y.Z)(this,He,{get:Je,set:Qe}),(0,Y.Z)(this,Me,{writable:!0,value:($(this),s(this))}),(0,Y.Z)(this,Ee,{writable:!0,value:u(this)}),(0,Y.Z)(this,Se,{writable:!0,value:h(this)}),(0,Y.Z)(this,xe,{writable:!0,value:c(this)}),(0,Y.Z)(this,Te,{writable:!0,value:g(this)}),(0,Y.Z)(this,Re,{writable:!0,value:p(this)}),(0,Y.Z)(this,We,{writable:!0,value:f(this)}),(0,Y.Z)(this,Ie,{writable:!0,value:k(this)}),(0,Y.Z)(this,Ae,{writable:!0,value:w(this)}),(0,Y.Z)(this,Pe,{writable:!0,value:L(this)}),(0,Y.Z)(this,_e,{writable:!0,value:M(this)}),(0,Y.Z)(this,Ke,{writable:!0,value:S(this)}),(0,Y.Z)(this,Be,{writable:!0,value:T(this)}),(0,Y.Z)(this,Oe,{writable:!0,value:W(this)}),(0,Y.Z)(this,ze,{writable:!0,value:A(this)}),(0,Y.Z)(this,Ve,{writable:!0,value:_(this)}),(0,Y.Z)(this,Fe,{writable:!0,value:B(this)}),(0,Y.Z)(this,qe,{writable:!0,value:F(this)}),(0,Y.Z)(this,Ue,{writable:!0,value:(e,t,n)=>{var r;null===(r=this.getFormElement())||void 0===r||r.formStore.onChange(this.name,e),(0,ee.Z)(this,He).emit(t),n||(0,ee.Z)(this,De).emit(t)}}),(0,Y.Z)(this,je,{writable:!0,value:U(this)}),(0,Y.Z)(this,$e,{writable:!0,value:e=>{(0,ee.Z)(this,Ge).emit(e)}}),(0,Y.Z)(this,Xe,{writable:!0,value:e=>{try{ge().load(e)}catch(e){return"请填写正确的格式"}return""}})}get name(){return(0,ee.Z)(this,Me)}set name(e){(0,J.Z)(this,Me,e)}get label(){return(0,ee.Z)(this,Ee)}set label(e){(0,J.Z)(this,Ee,e)}get value(){return(0,ee.Z)(this,Se)}set value(e){(0,J.Z)(this,Se,e)}get language(){return(0,ee.Z)(this,xe)}set language(e){(0,J.Z)(this,xe,e)}get theme(){return(0,ee.Z)(this,Te)}set theme(e){(0,J.Z)(this,Te,e)}get required(){return(0,ee.Z)(this,Re)}set required(e){(0,J.Z)(this,Re,e)}get readOnly(){return(0,ee.Z)(this,We)}set readOnly(e){(0,J.Z)(this,We,e)}get automaticLayout(){return(0,ee.Z)(this,Ie)}set automaticLayout(e){(0,J.Z)(this,Ie,e)}get minLines(){return(0,ee.Z)(this,Ae)}set minLines(e){(0,J.Z)(this,Ae,e)}get completers(){return(0,ee.Z)(this,Pe)}set completers(e){(0,J.Z)(this,Pe,e)}get advancedCompleters(){return(0,ee.Z)(this,_e)}set advancedCompleters(e){(0,J.Z)(this,_e,e)}get markers(){return(0,ee.Z)(this,Ke)}set markers(e){(0,J.Z)(this,Ke,e)}get links(){return(0,ee.Z)(this,Be)}set links(e){(0,J.Z)(this,Be,e)}get maxLines(){return(0,ee.Z)(this,Oe)}set maxLines(e){(0,J.Z)(this,Oe,e)}get height(){return(0,ee.Z)(this,ze)}set height(e){(0,J.Z)(this,ze,e)}get message(){return(0,ee.Z)(this,Ve)}set message(e){(0,J.Z)(this,Ve,e)}connectedCallback(){this.style.display||(this.style.display="block"),super.connectedCallback()}render(){return re().createElement(Ne,{curElement:this,formElement:this.getFormElement(),name:this.name,label:this.label,required:this.required,validator:(0,ee.Z)(this,Xe)},re().createElement(it,{value:this.value,language:this.language,readOnly:this.readOnly,theme:this.theme,automaticLayout:this.automaticLayout,minLines:this.minLines,maxLines:this.maxLines,height:this.height,completers:this.completers,advancedCompleters:this.advancedCompleters,markers:this.markers,links:this.links,validateState:this.validateState,onChange:(0,ee.Z)(this,Ue),onHighlightClick:(0,ee.Z)(this,$e)}))}}function Qe(e){z(this,e)}function Je(){return O(this)}function et(e){q(this,e)}function tt(){return H(this)}function nt(e){G(this,e)}function rt(){return j(this)}function it(e){var{value:t,language:n,theme:r,minLines:i,maxLines:a,height:s,automaticLayout:l,completers:u,advancedCompleters:o,markers:h,readOnly:d,links:c,validateState:m,onChange:g,onHighlightClick:v}=e,p=null!=t?t:"",b=null!=n?n:"plaintext",f=null!=r?r:"auto",Z=null!=i?i:3,k=null!=a?a:1/0,C=null!=s?s:500,w=(0,ne.useRef)(null),y=(0,ne.useRef)(),L=(0,ne.useRef)(),N=(0,ne.useRef)({width:300,height:at(p,Z,k)}),[M,E]=(0,ne.useState)(),S=(0,ne.useRef)(l),x=(0,se.useCurrentTheme)();(0,ne.useEffect)((()=>{ue.editor.setTheme("auto"===f?"dark"===x||"dark-v2"===x?"vs-dark":"vs":f)}),[x,f]),(0,ne.useEffect)((()=>{if(L.current){var e=L.current.getModel();ue.editor.setModelLanguage(e,b),(0,pe.isEqual)(e.getValue(),p)||e.setValue(p)}}),[p,b]),(0,ne.useEffect)((()=>{if("brick_next_yaml"===b){var e=(0,fe.Z)(u,o),t=ue.languages.registerCompletionItemProvider("brick_next_yaml",{provideCompletionItems:e,triggerCharacters:[".",":","<"]});return()=>{t.dispose()}}}),[u,o,b]);var T=(0,ne.useCallback)((()=>{var e=new ve.Z,t=void 0;if(L.current){var n=L.current.getModel();try{if(t=ge().load(p,{listener:e.listen()}),(c||h)&&L.current){var r,i=[];if(e.getTokens().forEach((e=>{var{startLineNumber:t,endLineNumber:n,startColumn:r}=e,a=[],s=(0,ke.preevaluate)(e.source,{hooks:{beforeVisit(e){"MemberExpression"===e.type&&"Identifier"===e.object.type&&Ze.fT.includes(e.object.name)&&"Identifier"===e.property.type&&a.push(e)}}});a.forEach((a=>{var{start:l,end:u,loc:o}=a;if(e.startLineNumber!==e.endLineNumber){var h,d,c,m,g,v=/<%[ ]+/.test(s.prefix);i.push({token:null===(h=a.object)||void 0===h?void 0:h.name,property:a.property.name,startLineNumber:e.startLineNumber+(null==o||null===(d=o.start)||void 0===d?void 0:d.line)-Number(v),endLineNumber:e.startLineNumber+(null==o||null===(c=o.end)||void 0===c?void 0:c.line)-Number(v),startColumn:(v&&1===(null==o?void 0:o.start.line)?s.prefix.length:0)+(null==o||null===(m=o.start)||void 0===m?void 0:m.column)+1,endColumn:(v&&1===(null==o?void 0:o.start.line)?s.prefix.length:0)+(null==o||null===(g=o.end)||void 0===g?void 0:g.column)+1})}else{var p,b,f;i.push({token:null===(p=a.object)||void 0===p?void 0:p.name,property:a.property.name,startLineNumber:t,endLineNumber:n,startColumn:r+l+(null===(b=s.prefix)||void 0===b?void 0:b.length)+Number(!e.isString),endColumn:r+u+(null===(f=s.prefix)||void 0===f?void 0:f.length)+Number(!e.isString)})}}))})),null===(r=y.current)||void 0===r||r.set(i.filter((e=>null==c?void 0:c.includes(e.token))).map((e=>({range:new ue.Range(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),options:{inlineClassName:"highlight"}})))),h){var a=i.map((e=>{var t,n,r=h.find((t=>t.token===e.token));return null==r||!r.params||(null===(t=r.params)||void 0===t?void 0:t.includes(e.property))?r&&r.message?(0,X.Z)((0,X.Z)({severity:Ze.aC[null!==(n=null==r?void 0:r.level)&&void 0!==n?n:"warn"],message:r.message},r.code?{code:{value:r.code.value,target:ue.Uri.parse(r.code.target)}}:{}),{},{startLineNumber:e.startLineNumber,endLineNumber:e.endLineNumber,startColumn:e.startColumn,endColumn:e.endColumn}):void 0:{severity:Ze.aC.warn,message:"Miss Property",startLineNumber:e.startLineNumber,endLineNumber:e.endLineNumber,startColumn:e.startColumn,endColumn:e.endColumn}})).filter(Boolean);ue.editor.setModelMarkers(n,"brick_next_yaml",a)}}}catch(e){var s;ue.editor.setModelMarkers(n,"brick_next_yaml",[]),null==y||null===(s=y.current)||void 0===s||s.set([])}}return t}),[p,c,h]);return(0,ne.useLayoutEffect)((()=>{var e;if("fit-content"===S.current&&w.current){N.current.width=w.current.getBoundingClientRect().width,null===(e=L.current)||void 0===e||e.layout(N.current);var t=new ResizeObserver((e=>{for(var t of e)if(t.target===w.current){var n,r=t.contentBoxSize?t.contentBoxSize[0].inlineSize:t.contentRect.width;r!==N.current.width&&(N.current.width=r,null===(n=L.current)||void 0===n||n.layout(N.current));break}}));return t.observe(w.current),()=>{t.disconnect()}}}),[]),(0,ne.useLayoutEffect)((()=>{if("fit-container"===S.current){var e=function(e){for(var t=e;t;){var n="vs.code-editor"===t.tagName.toLowerCase();if(t=t.parentElement,n)return t}}(w.current);if(e){var t=new ResizeObserver((()=>{E(e.offsetHeight)}));return t.observe(e),()=>{t.disconnect()}}}}),[]),(0,ne.useEffect)((()=>{"fit-container"!==S.current&&"fit-content"!==S.current&&E(C)}),[C]),(0,ne.useEffect)((()=>{L.current&&L.current.updateOptions({readOnly:d})}),[d]),(0,ne.useEffect)((()=>{if(!L.current&&w.current){var e=ue.editor.createModel(p,b);L.current=ue.editor.create(w.current,{model:e,minimap:{enabled:!1},scrollBeyondLastLine:!1,tabSize:2,insertSpaces:!0,automaticLayout:"fit-content"!==S.current,fontSize:be.P0,lineHeight:be.Mv,scrollbar:{horizontalScrollbarSize:be.sE,verticalScrollbarSize:be.sE,horizontalSliderSize:8,verticalSliderSize:8,alwaysConsumeMouseWheel:!1},padding:{top:be.LS,bottom:"fit-content"==S.current?void 0:be.LS},overviewRulerBorder:!1,mouseWheelScrollSensitivity:.5,suggest:{insertMode:"insert",preview:!0},readOnly:d,quickSuggestions:{strings:!0,other:!0,comments:!0}}),y.current=L.current.createDecorationsCollection()}}),[p,b,d]),(0,ne.useEffect)((()=>{var e=L.current;if("brick_next_yaml"===b&&e){var t=e.getModel(),n=e.onMouseDown((function(e){var n,r,i=y.current;(null!==(n=null==i||null===(r=i.getRanges)||void 0===r?void 0:r.call(i))&&void 0!==n?n:[]).forEach((n=>{var r=/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"metaKey":"ctrlKey";n&&e.target.position&&e.event[r]&&n.containsPosition(e.target.position)&&v(t.getValueInRange(n))}))})),r=e.onMouseMove((function(e){var t=y.current;t&&t.getRanges().forEach((n=>{var r=/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"metaKey":"ctrlKey";if(n&&e.target.position&&e.event[r]&&n.containsPosition(e.target.position)){var i=t.getRanges().map((e=>({range:e,options:{inlineClassName:n.equalsRange(e)?"highlight pointer":"highlight"}})));t.set(i)}else if(!e.event[r]){var a=t.getRanges().map((e=>({range:e,options:{inlineClassName:"highlight"}})));t.set(a)}}))}));return T(),()=>{null==r||r.dispose(),null==n||n.dispose()}}}),[b,v,x,f,T]),(0,ne.useEffect)((()=>{var e=L.current;if(e&&w.current&&"fit-content"===S.current){var t=e.onDidContentSizeChange((t=>{if(t.contentHeightChanged){var n=st(t.contentHeight,Z,k);n!==N.current.height&&(N.current.height=n,e.layout(N.current))}})),n=st(e.getContentHeight(),Z,k);return n!==N.current.height&&(N.current.height=n,e.layout(N.current)),()=>{t.dispose()}}}),[k,Z]),(0,ne.useEffect)((()=>{if(L.current){var e=L.current.getModel(),t=e.onDidChangeContent((t=>{var n=T();g(e.getValue(),n,t.isFlush)}));return()=>{t.dispose()}}}),[g,T]),(0,ne.useEffect)((()=>()=>{var e,t;null===(e=L.current)||void 0===e||null===(e=e.getModel())||void 0===e||e.dispose(),null===(t=L.current)||void 0===t||t.dispose()}),[]),re().createElement("div",{ref:w,style:(0,X.Z)({height:M},"error"===m?{outline:"1px solid var(--antd-error-color)"}:{})})}function at(e,t,n){return lt(Math.min(n,Math.max(t,e.split("\n").length)))}function st(e,t,n){var r=e;return(e-be.LS)%be.Mv==0&&(r=e+be.sE),Math.min(lt(n),Math.max(r,lt(t)))}function lt(e){return e*be.Mv+be.sE+be.LS}({e:[s,u,h,c,g,p,f,k,w,L,M,S,T,W,A,_,B,O,z,F,H,q,U,j,G,$],c:[Ce,r]}=(0,te.Z)(Ye,[[a,1,"name"],[l,1,"label"],[o,1,"value"],[d,1,"language"],[m,1,"theme"],[v,1,"required"],[b,1,"readOnly"],[Z,1,"automaticLayout"],[C,1,"minLines"],[y,1,"completers"],[N,1,"advancedCompleters"],[E,1,"markers"],[x,1,"links"],[R,1,"maxLines"],[I,1,"height"],[P,1,"message"],[K,1,"codeChange",e=>(0,ee.Z)(e,Fe),(e,t)=>(0,J.Z)(e,Fe,t)],[V,1,"userInput",e=>(0,ee.Z)(e,qe),(e,t)=>(0,J.Z)(e,qe,t)],[D,1,"highlighClickEvent",e=>(0,ee.Z)(e,je),(e,t)=>(0,J.Z)(e,je,t)]],[i],0,(e=>Xe.has((0,Q.Z)(e))))),r()},69435:(e,t,n)=>{n.d(t,{Z:()=>d});var r=n(56666),i=n(53395),a=n(70687),s=n(40381),l=n(78035),u=new WeakMap,o=new WeakMap,h=new WeakMap;const d=class{constructor(){(0,i.Z)(this,u,{writable:!0,value:void 0}),(0,i.Z)(this,o,{writable:!0,value:void 0}),(0,i.Z)(this,h,{writable:!0,value:void 0}),(0,r.Z)(this,"getTokens",(()=>(0,a.Z)(this,u))),(0,s.Z)(this,u,[]),(0,s.Z)(this,o,0),(0,s.Z)(this,h,"")}handleState(e,t){if("close"===e){var{line:n,position:r,lineStart:i,result:d}=t,c=t.input.substring(i,r);if(c.trim()===(0,a.Z)(this,h).trim())return;(0,s.Z)(this,h,c);var m=n+1,g=n+1,v=r-i-d.length,p=r-i-t.lineIndent;if("string"==typeof d&&/^\s*<%[~=]?\s/.test(d)&&/\s%>\s*$/.test(d)){var b,f=d,Z=null===(b=d.match(/\n/g))||void 0===b?void 0:b.length;if(Z){for(var k=(0,a.Z)(this,o),C=(0,a.Z)(this,o);C<t.input.length;C++)if("\n"===t.input[C]){k=C+1;break}var w=/(\|-|>-)/.test(t.input.substring((0,a.Z)(this,o),r-1));f=t.input.substring(k,r-1),m=t.line-Z+1-Number(w),g=n,v=0,p=0}var y={source:f,startLineNumber:m,endLineNumber:g,startColumn:v,endColumn:p,isString:['"',"'"].includes(t.input[i+v-2])};!(0,a.Z)(this,u).find((e=>(0,l.isEqual)(e,y)))&&(0,a.Z)(this,u).push(y)}(0,s.Z)(this,o,r)}}listen(){return this.handleState.bind(this)}}},9486:(e,t,n)=>{n.d(t,{Z:()=>o});var r=n(33028),i=n(46475),a=n(36023),s=n(65107),l=n(78035),u=(e,t,n)=>{for(var r=[],i=[],a="",s=n,l=t.startColumn;s>0;){var u=e.getValueInRange({startLineNumber:s,endLineNumber:s,startColumn:0,endColumn:1/0}).match(/^([\s|-]*)(\w+)(?=:)/);if(u){var[o,h,d]=u;h.length===t.startColumn-1&&r.unshift(d),h.length<l-1&&(!a&&(a=d),l=h.length,i.unshift(d))}s--}return{curLevelKeys:r,keyList:i,parentKey:a}},o=(e,t)=>(n,o,h,d)=>{var c=n.getWordUntilPosition(o),{word:m,token:g}=((e,t)=>{var n,i=e.getWordUntilPosition(t),a=e.getValueInRange({startLineNumber:t.lineNumber,endLineNumber:t.lineNumber,startColumn:t.column-i.word.length-1,endColumn:t.column-i.word.length}),s=e.getWordAtPosition((0,r.Z)((0,r.Z)({},t),{},{column:t.column-(null==i||null===(n=i.word)||void 0===n?void 0:n.length)-1}));return{word:null==s?void 0:s.word,token:a}})(n,o),v=n.getValueInRange({startLineNumber:o.lineNumber,endLineNumber:o.lineNumber,startColumn:0,endColumn:1/0}),p={startLineNumber:o.lineNumber,endLineNumber:o.lineNumber,startColumn:c.startColumn,endColumn:c.endColumn},b=1===c.startColumn,{curLevelKeys:f}=u(n,c,n.getLineCount());if("<"===h.triggerCharacter)return"<"!==n.getValueInRange({startLineNumber:o.lineNumber,endLineNumber:o.lineNumber,startColumn:o.column-2,endColumn:o.column+2}).trim()?{suggestions:[]}:{suggestions:[{label:"<% %>",detail:"Evalute Body",kind:i.languages.CompletionItemKind.Value,insertText:"% ${0} %>",insertTextRules:i.languages.CompletionItemInsertTextRule.InsertAsSnippet,range:p},{label:"<%= %>",detail:"Track Evalute Body",kind:i.languages.CompletionItemKind.Value,insertText:"%= ${0} %>",insertTextRules:i.languages.CompletionItemInsertTextRule.InsertAsSnippet,range:p}]};if(b)return{suggestions:(null!=e?e:[]).filter((e=>!f.includes(e.label))).map((e=>(0,r.Z)((0,r.Z)({},e),{},{label:e.label,insertText:e.insertText||e.label,kind:i.languages.CompletionItemKind.Keyword,range:p})))};if(":"===h.triggerCharacter||"."===h.triggerCharacter&&m&&!["CTX","STATE","FN"].includes(m)){var Z,k;if("action"===m&&":"===h.triggerCharacter)return{suggestions:null===(Z=null!==(k=(0,l.get)(a,"definitions.BuiltinBrickEventHandler.properties.action.enum"))&&void 0!==k?k:[])||void 0===Z?void 0:Z.map((e=>({label:" ".concat(e),detail:"event action",kind:i.languages.CompletionItemKind.Keyword,insertText:" ".concat(e),range:p})))};var C,w,y=null==t?void 0:t[m],L="";if(y&&!Array.isArray(y)?(C=y.completers,L=y.triggerCharacter):C=y,L?h.triggerCharacter===L&&C:C)return{suggestions:(null!==(w=C)&&void 0!==w?w:[]).map((e=>{var t=":"===L?" ".concat(e.label):e.label;return(0,r.Z)((0,r.Z)({},e),{},{label:t,kind:i.languages.CompletionItemKind.Value,insertText:e.insertText||t,range:p})}))}}if(((e,t)=>{var n=e.getWordUntilPosition(t),r=e.findPreviousMatch("<%",t,!1,!1,null,!1),i=e.findNextMatch("%>",t,!1,!1,null,!1);if((null==r?void 0:r.range.startLineNumber)&&(null==i?void 0:i.range.startLineNumber)&&r.range.startLineNumber<=t.lineNumber&&i.range.endLineNumber>=t.lineNumber){var{parentKey:a}=u(e,r.range,null==r?void 0:r.range.startLineNumber),{parentKey:s}=u(e,i.range,null==i?void 0:i.range.startLineNumber),{keyList:l}=u(e,n,t.lineNumber);if(a===s&&l.includes(a))return!0}return!1})(n,o)){var N,M,E,S;if(m&&["CTX","STATE"].includes(m)&&t)return{suggestions:(null!==(N=null===(M=t[m])||void 0===M?void 0:M.completers)&&void 0!==N?N:[]).map((e=>({label:e.label,insertText:e.label,kind:i.languages.CompletionItemKind.Value,range:p})))};if("FN"===m&&"."===h.triggerCharacter&&t)return{suggestions:(null!==(E=null===(S=t.FN)||void 0===S?void 0:S.completers)&&void 0!==E?E:[]).map((e=>({label:e.label,insertText:e.label,kind:i.languages.CompletionItemKind.Value,range:p})))};if("APP"===m&&"."===h.triggerCharacter){var x=(0,l.get)(a,"definitions.MicroApp.properties"),T=[];for(var[R,W]of Object.entries(x))T.push({label:R,kind:i.languages.CompletionItemKind.Value,documentation:W.description,detail:W.enum?W.enum.join("|"):W.type,insertText:R,range:p});return{suggestions:T}}return[".",":"].includes(g)?{suggestions:[]}:{suggestions:s.fT.map((e=>({label:e,insertText:e,kind:i.languages.CompletionItemKind.Keyword,range:p})))}}return/^[\s|-]*\w$/.test(v)?{suggestions:s.Wu.map((e=>({label:e,insertText:e,kind:i.languages.CompletionItemKind.Keyword,range:p}))).filter((e=>!f.includes(e.label)))}:{suggestions:[]}}},65107:(e,t,n)=>{n.d(t,{Wu:()=>i,aC:()=>a,fT:()=>r});var r=["CTX","STATE","DATA","EVENT","FLAGS","APP","ANCHOR","HASH","INSTALLED_APPS","ITEM","LOCAL_STORAGE","MEDIA","MISC","PARAMS","PATH","PROCESSORS","QUERY","QUERY_ARRAY","SESSION_STORAGE","TPL","SYS","BASE_URL","IMG","FN","I18N","I18N_TEXT","PERMISSIONS","THEME"],i=["target","targetRef","properties","events","method","callback","success","error","action","useProvider","useChildren","useBrick","args","if","then"],a={hit:1,info:2,warn:4,error:8}},76126:(e,t,n)=>{n.d(t,{Z:()=>l});var r=n(39601),i=n.n(r),a=n(82609),s=n.n(a)()(i());s.push([e.id,".highlight{color:rgb(74 170 189)!important;text-decoration:underline;font-weight:bold;font-style:oblique}.pointer{cursor:pointer}",""]);const l=s},53154:(e,t,n)=>{var r=n(46062),i=n.n(r),a=n(44036),s=n.n(a),l=n(96793),u=n.n(l),o=n(17892),h=n.n(o),d=n(11173),c=n.n(d),m=n(42464),g=n.n(m),v=n(76126),p={};p.styleTagTransform=g(),p.setAttributes=h(),p.insert=u().bind(null,"head"),p.domAPI=s(),p.insertStyleElement=c(),i()(v.Z,p),v.Z&&v.Z.locals&&v.Z.locals},81391:(e,t,n)=>{n.d(t,{G:()=>M});var r,i,a,s,l,u,o,h=n(53395),d=n(40381),c=n(70687),m=n(72604),g=n(92061),v=n(88978),{method:p,property:b}=(0,g.createDecorators)();r=b({attribute:!1}),a=b({attribute:!1}),l=p(),u=p();var f=new WeakMap,Z=new WeakMap,k=new WeakMap,C=new WeakMap,w=new WeakMap,y=new WeakMap,L=new WeakMap,N=new WeakMap;class M extends v.ReactNextElement{constructor(){super(...arguments),(0,h.Z)(this,y,{get:R,set:W}),(0,h.Z)(this,C,{get:x,set:T}),(0,h.Z)(this,Z,{get:E,set:S}),(0,h.Z)(this,f,{writable:!0,value:!1}),(0,h.Z)(this,k,{writable:!0,value:"normal"}),(0,h.Z)(this,w,{writable:!0,value:!1}),(0,h.Z)(this,L,{writable:!0,value:(o(this),i(this))}),(0,h.Z)(this,N,{writable:!0,value:s(this)})}get isFormItemElement(){return!0}set validateState(e){(0,d.Z)(this,C,e),this._render()}get validateState(){return(0,c.Z)(this,C)}set notRender(e){this.hidden=e,(0,d.Z)(this,Z,e),this._render()}get notRender(){return(0,c.Z)(this,Z)}get $bindFormItem(){return(0,c.Z)(this,y)}set $bindFormItem(e){(0,d.Z)(this,y,e),this._render()}get helpBrick(){return(0,c.Z)(this,L)}set helpBrick(e){(0,d.Z)(this,L,e)}get labelBrick(){return(0,c.Z)(this,N)}set labelBrick(e){(0,d.Z)(this,N,e)}setNotRender(e){this.notRender=e}getFormElement(){for(var e=this;(e=e.parentNode)&&e&&!e.isFormElement;);return e}}function E(){return(0,c.Z)(this,f)}function S(e){(0,d.Z)(this,f,e)}function x(){return(0,c.Z)(this,k)}function T(e){(0,d.Z)(this,k,e)}function R(){return(0,c.Z)(this,w)}function W(e){(0,d.Z)(this,w,e)}[i,s,o]=(0,m.Z)(M,[[r,1,"helpBrick"],[a,1,"labelBrick"],[l,2,"setNotRender"],[u,2,"getFormElement"]],[]).e}}]);
|
|
2
|
+
//# sourceMappingURL=code-editor.8377d5d2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/code-editor.15bdbb93.js","mappings":"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","sources":["webpack:///./src/code-editor/constants.ts","webpack:///./src/code-editor/index.tsx","webpack:///./src/code-editor/utils/brickNextSourceMap.ts","webpack:///./src/code-editor/utils/brickNextYaml.ts","webpack:///./src/code-editor/utils/constants.ts","webpack:///./src/code-editor/index.css","webpack:///./src/code-editor/index.css?aefa","webpack:///../../src/FormItemElement.tsx"],"sourcesContent":["export const EDITOR_FONT_SIZE = 12;\nexport const EDITOR_LINE_HEIGHT = 18;\nexport const EDITOR_SCROLLBAR_SIZE = 12;\nexport const EDITOR_PADDING_VERTICAL = 12;\n","import React, {\n useCallback,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n} from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { useCurrentTheme } from \"@next-core/react-runtime\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport type { FormItem, FormItemProps } from \"@next-bricks/form/form-item\";\nimport * as monaco from \"monaco-editor/esm/vs/editor/editor.api.js\";\nimport { register as registerJavaScript } from \"@next-core/monaco-contributions/javascript\";\nimport { register as registerTypeScript } from \"@next-core/monaco-contributions/typescript\";\nimport { register as registerYaml } from \"@next-core/monaco-contributions/yaml\";\nimport { register as registerHtml } from \"@next-core/monaco-contributions/html\";\nimport yaml from \"js-yaml\";\nimport BrickNextYamlSourceMap, { Token } from \"./utils/brickNextSourceMap.js\";\nimport \"@next-core/theme\";\nimport { isEqual } from \"lodash\";\nimport {\n EDITOR_SCROLLBAR_SIZE,\n EDITOR_PADDING_VERTICAL,\n EDITOR_LINE_HEIGHT,\n EDITOR_FONT_SIZE,\n} from \"./constants.js\";\nimport { brickNextYAMLProvideCompletionItems } from \"./utils/brickNextYaml.js\";\nimport \"./index.css\";\nimport { EVALUATE_KEYWORD, Level } from \"./utils/constants.js\";\nimport type { MemberExpression, Identifier } from \"@babel/types\";\nimport { preevaluate } from \"@next-core/cook\";\n\nregisterJavaScript(monaco);\nregisterTypeScript(monaco);\nregisterYaml(monaco, \"brick_next_yaml\");\nregisterHtml(monaco);\n\nconst { defineElement, property, event } = createDecorators();\n\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\nexport interface CodeEditorProps {\n name?: string;\n label?: string;\n value?: string;\n language?: string;\n theme?: string;\n required?: boolean;\n readOnly?: boolean;\n automaticLayout?: \"fit-container\" | \"fit-content\" | \"none\";\n minLines?: number;\n maxLines?: number;\n height?: string | number;\n completers?: monaco.languages.CompletionItem[];\n advancedCompleters?: Record<\n string,\n { triggerCharacter: string; completers: monaco.languages.CompletionItem[] }\n >;\n markers?: Marker[];\n links?: string[];\n validateState?: string;\n}\n\nexport interface Marker {\n token: string;\n level: keyof typeof Level;\n message: string;\n code?: {\n value: string;\n target: string;\n };\n params?: string[];\n}\n\n/**\n * 构件 code-editor\n */\nexport\n@defineElement(\"vs.code-editor\", {\n // There are a few issues for monaco-editor with shadow DOM.\n // So we use light DOM for now.\n // See https://github.com/microsoft/monaco-editor/issues?q=is%3Aissue+is%3Aopen+shadow+dom\n shadowOptions: false,\n})\nclass CodeEditor extends FormItemElementBase implements CodeEditorProps {\n @property()\n accessor name: string | undefined;\n\n @property()\n accessor label: string | undefined;\n\n @property({ attribute: false })\n accessor value: string | undefined;\n\n /**\n * @default \"plaintext\"\n */\n @property()\n accessor language: string | undefined;\n\n /**\n * 主题,支持 `\"auto\" | \"vs\" | \"vs-dark\"`\n *\n * @default \"auto\"\n * @group ui\n */\n @property() accessor theme: string | undefined;\n\n @property({\n type: Boolean,\n })\n accessor required: boolean | undefined;\n\n @property({\n type: Boolean,\n })\n accessor readOnly: boolean | undefined;\n\n @property()\n accessor automaticLayout:\n | \"fit-container\"\n | \"fit-content\"\n | \"none\"\n | undefined;\n\n /**\n * @default 3\n */\n @property({ type: Number })\n accessor minLines: number | undefined;\n\n @property({\n attribute: false,\n })\n accessor completers: monaco.languages.CompletionItem[] | undefined;\n\n @property({\n attribute: false,\n })\n accessor advancedCompleters:\n | Record<\n string,\n {\n triggerCharacter: string;\n completers: monaco.languages.CompletionItem[];\n }\n >\n | undefined;\n\n @property({ attribute: false })\n accessor markers: Marker[] | undefined;\n\n @property({ attribute: false })\n accessor links: string[] | undefined;\n\n /**\n * @default Infinity\n */\n @property({ type: Number })\n accessor maxLines: number | undefined;\n\n @property({ attribute: false })\n accessor height: string | number | undefined;\n\n @property()\n accessor message: string | undefined;\n\n @event({ type: \"code.change\" })\n accessor #codeChange!: EventEmitter<string>;\n\n @event({ type: \"user.input\" })\n accessor #userInput!: EventEmitter<string>;\n\n #handleChange = (value: string, parseValue: any, isFlush: boolean) => {\n this.getFormElement()?.formStore.onChange(this.name!, value);\n this.#codeChange.emit(parseValue);\n if (!isFlush) {\n this.#userInput.emit(parseValue);\n }\n };\n\n @event({ type: \"token.click\" })\n accessor #highlighClickEvent!: EventEmitter<string>;\n\n #handleHighlightClick = (word: string) => {\n this.#highlighClickEvent.emit(word);\n };\n\n #handleValidtor = (value: string) => {\n try {\n yaml.load(value);\n } catch {\n return \"请填写正确的格式\";\n }\n return \"\";\n };\n\n connectedCallback(): void {\n // Don't override user's style settings.\n // istanbul ignore else\n if (!this.style.display) {\n this.style.display = \"block\";\n }\n super.connectedCallback();\n }\n\n render() {\n return (\n <WrappedFormItem\n curElement={this}\n formElement={this.getFormElement()}\n name={this.name}\n label={this.label}\n required={this.required}\n validator={this.#handleValidtor}\n >\n <CodeEditorComponent\n value={this.value}\n language={this.language}\n readOnly={this.readOnly}\n theme={this.theme}\n automaticLayout={this.automaticLayout}\n minLines={this.minLines}\n maxLines={this.maxLines}\n height={this.height}\n completers={this.completers}\n advancedCompleters={this.advancedCompleters}\n markers={this.markers}\n links={this.links}\n validateState={this.validateState}\n onChange={this.#handleChange}\n onHighlightClick={this.#handleHighlightClick}\n />\n </WrappedFormItem>\n );\n }\n}\n\nexport function CodeEditorComponent({\n value: _value,\n language: _language,\n theme: _theme,\n minLines: _minLines,\n maxLines: _maxLines,\n height: _height,\n automaticLayout,\n completers,\n advancedCompleters,\n markers,\n readOnly,\n links,\n validateState,\n onChange,\n onHighlightClick,\n}: CodeEditorProps & {\n onChange(value: string, parseValue: any, isFlush: boolean): void;\n onHighlightClick(word: string): void;\n}) {\n const value = _value ?? \"\";\n const language = _language ?? \"plaintext\";\n const theme = _theme ?? \"auto\";\n const minLines = _minLines ?? 3;\n const maxLines = _maxLines ?? Infinity;\n const height = _height ?? 500;\n\n const containerRef = useRef<HTMLDivElement>(null);\n const decorationsCollection =\n useRef<monaco.editor.IEditorDecorationsCollection>();\n const editorRef = useRef<monaco.editor.IStandaloneCodeEditor>();\n const size = useRef<monaco.editor.IDimension>({\n width: 300,\n height: getContentHeightByCode(value, minLines, maxLines),\n });\n const [actualHeight, setActualHeight] = useState<string | number>();\n // `automaticLayout` should never change\n const automaticLayoutRef = useRef(automaticLayout);\n const systemTheme = useCurrentTheme();\n\n useEffect(() => {\n // Currently theme is configured globally.\n // See https://github.com/microsoft/monaco-editor/issues/338\n monaco.editor.setTheme(\n theme === \"auto\"\n ? systemTheme === \"dark\" || systemTheme === \"dark-v2\"\n ? \"vs-dark\"\n : \"vs\"\n : theme\n );\n }, [systemTheme, theme]);\n\n useEffect(() => {\n if (editorRef.current) {\n const currentModel = editorRef.current.getModel()!;\n monaco.editor.setModelLanguage(currentModel, language);\n if (!isEqual(currentModel.getValue(), value)) {\n currentModel.setValue(value);\n }\n }\n }, [value, language]);\n\n useEffect(() => {\n if (language === \"brick_next_yaml\") {\n const provideCompletionItems = brickNextYAMLProvideCompletionItems(\n completers,\n advancedCompleters\n );\n const monacoProviderRef = monaco.languages.registerCompletionItemProvider(\n \"brick_next_yaml\",\n {\n provideCompletionItems,\n triggerCharacters: [\".\", \":\", \"<\"],\n }\n );\n return () => {\n monacoProviderRef.dispose();\n };\n }\n }, [completers, advancedCompleters, language]);\n\n const parseYaml = useCallback(() => {\n const map = new BrickNextYamlSourceMap();\n let parseValue = undefined;\n if (editorRef.current) {\n const model = editorRef.current.getModel()!;\n\n try {\n parseValue = yaml.load(value, {\n listener: map.listen(),\n });\n\n if ((links || markers) && editorRef.current) {\n const tokens: Omit<\n Token & { token: string; property: string },\n \"source\"\n >[] = [];\n map.getTokens().forEach((item) => {\n const { startLineNumber, endLineNumber, startColumn } = item;\n const globalNodes: MemberExpression[] = [];\n const result = preevaluate(item.source, {\n hooks: {\n beforeVisit(node) {\n if (\n node.type === \"MemberExpression\" &&\n node.object.type === \"Identifier\" &&\n EVALUATE_KEYWORD.includes(node.object.name) &&\n node.property.type === \"Identifier\"\n ) {\n globalNodes.push(node);\n }\n },\n },\n });\n\n globalNodes.forEach((node) => {\n const { start, end, loc } = node;\n if (item.startLineNumber !== item.endLineNumber) {\n const hadWrap = /<%[ ]+/.test(result.prefix);\n tokens.push({\n token: (node.object as Identifier)?.name,\n property: (node.property as Identifier).name,\n startLineNumber:\n item.startLineNumber +\n (loc?.start?.line as number) -\n Number(hadWrap),\n endLineNumber:\n item.startLineNumber +\n (loc?.end?.line as number) -\n Number(hadWrap),\n startColumn:\n (hadWrap && loc?.start.line === 1\n ? result.prefix.length\n : 0) +\n (loc?.start?.column as number) +\n 1,\n endColumn:\n (hadWrap && loc?.start.line === 1\n ? result.prefix.length\n : 0) +\n (loc?.end?.column as number) +\n 1,\n });\n } else {\n tokens.push({\n token: (node.object as Identifier)?.name,\n property: (node.property as Identifier).name,\n startLineNumber,\n endLineNumber,\n startColumn:\n startColumn +\n (start as number) +\n result.prefix?.length +\n Number(!item.isString),\n endColumn:\n startColumn +\n (end as number) +\n result.prefix?.length +\n Number(!item.isString),\n });\n }\n });\n });\n\n decorationsCollection.current?.set(\n tokens\n .filter((token) => links?.includes(token.token))\n .map((token) => ({\n range: new monaco.Range(\n token.startLineNumber,\n token.startColumn,\n token.endLineNumber,\n token.endColumn\n ),\n options: {\n inlineClassName: \"highlight\",\n },\n }))\n );\n\n if (markers) {\n const modelMarkers = tokens\n .map((token) => {\n const matchTokenConf = markers.find(\n (item) => item.token === token.token\n );\n const hadProperty = matchTokenConf?.params\n ? matchTokenConf.params?.includes(token.property)\n : true;\n if (!hadProperty) {\n return {\n severity: Level.warn,\n message: \"Miss Property\",\n startLineNumber: token.startLineNumber,\n endLineNumber: token.endLineNumber,\n startColumn: token.startColumn,\n endColumn: token.endColumn,\n };\n }\n if (matchTokenConf && matchTokenConf.message) {\n return {\n severity: Level[matchTokenConf?.level ?? \"warn\"],\n message: matchTokenConf.message,\n ...(matchTokenConf.code\n ? {\n code: {\n value: matchTokenConf.code.value,\n target: monaco.Uri.parse(\n matchTokenConf.code.target\n ),\n },\n }\n : {}),\n startLineNumber: token.startLineNumber,\n endLineNumber: token.endLineNumber,\n startColumn: token.startColumn,\n endColumn: token.endColumn,\n };\n }\n })\n .filter(Boolean) as monaco.editor.IMarkerData[];\n\n monaco.editor.setModelMarkers(\n model,\n \"brick_next_yaml\",\n modelMarkers\n );\n }\n }\n } catch (e) {\n monaco.editor.setModelMarkers(model, \"brick_next_yaml\", []);\n decorationsCollection?.current?.set([]);\n }\n }\n return parseValue;\n }, [value, links, markers]);\n\n useLayoutEffect(() => {\n if (automaticLayoutRef.current !== \"fit-content\" || !containerRef.current) {\n return;\n }\n\n size.current.width = containerRef.current.getBoundingClientRect().width;\n editorRef.current?.layout(size.current);\n\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === containerRef.current) {\n const newWidth = entry.contentBoxSize\n ? entry.contentBoxSize[0].inlineSize\n : entry.contentRect.width;\n if (newWidth !== size.current.width) {\n size.current.width = newWidth;\n editorRef.current?.layout(size.current);\n }\n break;\n }\n }\n });\n observer.observe(containerRef.current);\n\n return () => {\n observer.disconnect();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (automaticLayoutRef.current !== \"fit-container\") {\n return;\n }\n\n const container = getDOMContainer(containerRef.current);\n if (!container) {\n return;\n }\n // Manually layout the editor once the container resized.\n const observer = new ResizeObserver((): void => {\n setActualHeight(container.offsetHeight);\n });\n observer.observe(container);\n return () => {\n observer.disconnect();\n };\n }, []);\n\n useEffect(() => {\n if (\n automaticLayoutRef.current !== \"fit-container\" &&\n automaticLayoutRef.current !== \"fit-content\"\n ) {\n setActualHeight(height);\n }\n }, [height]);\n\n useEffect(() => {\n if (!editorRef.current) return;\n editorRef.current.updateOptions({\n readOnly,\n });\n }, [readOnly]);\n\n useEffect(() => {\n if (editorRef.current || !containerRef.current) {\n return;\n }\n const model = monaco.editor.createModel(value, language);\n editorRef.current = monaco.editor.create(containerRef.current, {\n model,\n minimap: {\n enabled: false,\n },\n scrollBeyondLastLine: false,\n tabSize: 2,\n insertSpaces: true,\n automaticLayout: automaticLayoutRef.current !== \"fit-content\",\n fontSize: EDITOR_FONT_SIZE,\n lineHeight: EDITOR_LINE_HEIGHT,\n scrollbar: {\n horizontalScrollbarSize: EDITOR_SCROLLBAR_SIZE,\n verticalScrollbarSize: EDITOR_SCROLLBAR_SIZE,\n horizontalSliderSize: 8,\n verticalSliderSize: 8,\n alwaysConsumeMouseWheel: false,\n },\n padding: {\n top: EDITOR_PADDING_VERTICAL,\n // When use `fit-content`, we always plus the height with the vertical padding.\n // Thus the possible x-scrollbar will not take extra space at the bottom.\n bottom:\n automaticLayoutRef.current == \"fit-content\"\n ? undefined\n : EDITOR_PADDING_VERTICAL,\n },\n overviewRulerBorder: false,\n mouseWheelScrollSensitivity: 0.5,\n suggest: {\n insertMode: \"insert\",\n preview: true,\n },\n readOnly: readOnly,\n quickSuggestions: { strings: true, other: true, comments: true },\n });\n\n decorationsCollection.current =\n editorRef.current.createDecorationsCollection();\n }, [value, language, readOnly]);\n\n useEffect(() => {\n const editor = editorRef.current;\n if (language === \"brick_next_yaml\" && editor) {\n const model = editor.getModel()!;\n const editorMouseDownEvent = editor.onMouseDown(function (e) {\n const decorations = decorationsCollection.current;\n (decorations?.getRanges?.() ?? []).forEach((range) => {\n const modKey = /Mac|iPod|iPhone|iPad/.test(navigator.platform)\n ? \"metaKey\"\n : \"ctrlKey\";\n if (\n range &&\n e.target.position &&\n e.event[modKey] &&\n range.containsPosition(e.target.position)\n ) {\n onHighlightClick(model.getValueInRange(range));\n }\n });\n });\n\n const mouseOverEvent = editor.onMouseMove(function (e) {\n const decorations = decorationsCollection.current;\n if (!decorations) return;\n decorations.getRanges().forEach((range) => {\n const modKey = /Mac|iPod|iPhone|iPad/.test(navigator.platform)\n ? \"metaKey\"\n : \"ctrlKey\";\n if (\n range &&\n e.target.position &&\n e.event[modKey] &&\n range.containsPosition(e.target.position)\n ) {\n const newDecorations = decorations.getRanges().map((item) => ({\n range: item,\n options: {\n inlineClassName: range.equalsRange(item)\n ? \"highlight pointer\"\n : \"highlight\",\n },\n }));\n decorations.set(newDecorations);\n } else if (!e.event[modKey]) {\n const newDecorations = decorations.getRanges().map((item) => ({\n range: item,\n options: {\n inlineClassName: \"highlight\",\n },\n }));\n decorations.set(newDecorations);\n }\n });\n });\n\n parseYaml();\n\n return () => {\n mouseOverEvent?.dispose();\n editorMouseDownEvent?.dispose();\n };\n }\n }, [language, onHighlightClick, systemTheme, theme, parseYaml]);\n\n useEffect(() => {\n const editor = editorRef.current;\n if (\n !editor ||\n !containerRef.current ||\n automaticLayoutRef.current !== \"fit-content\"\n ) {\n return;\n }\n\n const listener = editor.onDidContentSizeChange((e) => {\n if (e.contentHeightChanged) {\n const newHeight = fixEditorHeightWithScrollBar(\n e.contentHeight,\n minLines,\n maxLines\n );\n if (newHeight !== size.current.height) {\n size.current.height = newHeight;\n editor.layout(size.current);\n }\n }\n });\n\n const newHeight = fixEditorHeightWithScrollBar(\n editor.getContentHeight(),\n minLines,\n maxLines\n );\n if (newHeight !== size.current.height) {\n size.current.height = newHeight;\n editor.layout(size.current);\n }\n\n return () => {\n listener.dispose();\n };\n }, [maxLines, minLines]);\n\n useEffect(() => {\n if (!editorRef.current) {\n return;\n }\n const currentModel = editorRef.current.getModel()!;\n const listener = currentModel.onDidChangeContent((e) => {\n const parseValue = parseYaml();\n onChange(currentModel.getValue(), parseValue, e.isFlush);\n });\n return () => {\n listener.dispose();\n };\n }, [onChange, parseYaml]);\n\n useEffect(() => {\n return () => {\n editorRef.current?.getModel()?.dispose();\n editorRef.current?.dispose();\n };\n }, []);\n\n return (\n <div\n ref={containerRef}\n style={{\n height: actualHeight,\n ...(validateState === \"error\"\n ? {\n outline: \"1px solid var(--antd-error-color)\",\n }\n : {}),\n }}\n />\n );\n}\n\nfunction getContentHeightByCode(\n code: string,\n minLines: number,\n maxLines: number\n): number {\n return getContentHeightByLines(\n Math.min(maxLines, Math.max(minLines, code.split(\"\\n\").length))\n );\n}\n\nfunction fixEditorHeightWithScrollBar(\n contentHeight: number,\n minLines: number,\n maxLines: number\n): number {\n let fixedHeight = contentHeight;\n if ((contentHeight - EDITOR_PADDING_VERTICAL) % EDITOR_LINE_HEIGHT === 0) {\n fixedHeight = contentHeight + EDITOR_SCROLLBAR_SIZE;\n }\n return Math.min(\n getContentHeightByLines(maxLines),\n Math.max(fixedHeight, getContentHeightByLines(minLines))\n );\n}\n\nfunction getContentHeightByLines(lines: number): number {\n return (\n lines * EDITOR_LINE_HEIGHT + EDITOR_SCROLLBAR_SIZE + EDITOR_PADDING_VERTICAL\n );\n}\n\n/** Get the direct DOM container of `vs.code-editor` */\nfunction getDOMContainer(element: HTMLElement | null) {\n let brick = element;\n while (brick) {\n const found = brick.tagName.toLowerCase() === \"vs.code-editor\";\n brick = brick.parentElement;\n if (found) {\n return brick;\n }\n }\n}\n","import type { State } from \"js-yaml\";\nimport { isEqual } from \"lodash\";\n\nexport interface Token {\n startLineNumber: number;\n endLineNumber: number;\n startColumn: number;\n endColumn: number;\n source: string;\n isString?: boolean;\n}\n\nclass BrickNextYamlSourceMap {\n #recordsToken: Token[];\n #prefixPosition: number;\n #recordLastWord: string;\n\n constructor() {\n this.#recordsToken = [];\n this.#prefixPosition = 0;\n this.#recordLastWord = \"\";\n }\n\n private handleState(event: \"open\" | \"close\", state: State): void {\n if (event === \"close\") {\n const { line, position, lineStart, result } = state;\n const curWord = state.input.substring(lineStart, position);\n if (curWord.trim() === this.#recordLastWord.trim()) return;\n this.#recordLastWord = curWord;\n let startLineNumber = line + 1;\n let endLineNumber = line + 1;\n let startColumn = position - lineStart - result.length;\n let endColumn = position - lineStart - state.lineIndent;\n if (\n typeof result === \"string\" &&\n /^\\s*<%[~=]?\\s/.test(result) &&\n /\\s%>\\s*$/.test(result)\n ) {\n let source = result;\n const wrapLength = result.match(/\\n/g)?.length;\n if (wrapLength) {\n let nearWrapIndex = this.#prefixPosition;\n for (let i = this.#prefixPosition; i < state.input.length; i++) {\n if (state.input[i] === \"\\n\") {\n nearWrapIndex = i + 1;\n break;\n }\n }\n const specilStringPrefix = /(\\|-|>-)/.test(\n state.input.substring(this.#prefixPosition, position - 1)\n );\n source = state.input.substring(nearWrapIndex, position - 1);\n startLineNumber =\n state.line - wrapLength + 1 - Number(specilStringPrefix);\n endLineNumber = line;\n startColumn = 0;\n endColumn = 0;\n }\n const token = {\n source,\n startLineNumber,\n endLineNumber,\n startColumn,\n endColumn,\n isString: ['\"', \"'\"].includes(\n state.input[lineStart + startColumn - 2]\n ),\n };\n !this.#recordsToken.find((item) => isEqual(item, token)) &&\n this.#recordsToken.push(token);\n }\n this.#prefixPosition = position;\n }\n }\n\n public listen() {\n return this.handleState.bind(this);\n }\n\n public getTokens = () => {\n return this.#recordsToken;\n };\n}\n\nexport default BrickNextYamlSourceMap;\n","import * as monaco from \"monaco-editor/esm/vs/editor/editor.api.js\";\nimport storyboardJsonSchema from \"@next-core/types/storyboard.json\";\nimport { EVALUATE_KEYWORD, brickNextKeywords, Level } from \"./constants.js\";\nimport { get } from \"lodash\";\n\nconst findKeys = (\n model: monaco.editor.ITextModel,\n range: monaco.Range | monaco.editor.IWordAtPosition,\n line: number\n) => {\n const curLevelKeys: string[] = [];\n const keyList: string[] = [];\n let parentKey = \"\";\n let i = line;\n let startColumn = range.startColumn;\n while (i > 0) {\n const prefixLineWord = model.getValueInRange({\n startLineNumber: i,\n endLineNumber: i,\n startColumn: 0,\n endColumn: Infinity,\n });\n const matchWord = prefixLineWord.match(/^([\\s|-]*)(\\w+)(?=:)/);\n if (matchWord) {\n const [_, wordspace, key] = matchWord;\n if (wordspace.length === range.startColumn - 1) {\n curLevelKeys.unshift(key);\n }\n if (wordspace.length < startColumn - 1) {\n !parentKey && (parentKey = key);\n startColumn = wordspace.length;\n keyList.unshift(key);\n }\n }\n i--;\n }\n return {\n curLevelKeys,\n keyList,\n parentKey,\n };\n};\n\nconst getPrefixWord = (\n model: monaco.editor.ITextModel,\n position: monaco.Position\n): {\n word: string | undefined;\n token: string;\n} => {\n const word = model.getWordUntilPosition(position);\n const prefixToken = model.getValueInRange({\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: position.column - word.word.length - 1,\n endColumn: position.column - word.word.length,\n });\n const prefixWord = model.getWordAtPosition({\n ...position,\n column: position.column - word?.word?.length - 1,\n });\n return {\n word: prefixWord?.word,\n token: prefixToken,\n };\n};\n\nexport const isInEvaluateBody = (\n model: monaco.editor.ITextModel,\n position: monaco.Position\n): boolean => {\n const word = model.getWordUntilPosition(position);\n const prefixEvaluateOperator = model.findPreviousMatch(\n \"<%\",\n position,\n false,\n false,\n null,\n false\n );\n const suffixEvaluateOperator = model.findNextMatch(\n \"%>\",\n position,\n false,\n false,\n null,\n false\n );\n const isInEvaluateBody =\n prefixEvaluateOperator?.range.startLineNumber &&\n suffixEvaluateOperator?.range.startLineNumber &&\n prefixEvaluateOperator.range.startLineNumber <= position.lineNumber &&\n suffixEvaluateOperator.range.endLineNumber >= position.lineNumber;\n\n if (isInEvaluateBody) {\n const { parentKey: prefixParentKey } = findKeys(\n model,\n prefixEvaluateOperator.range,\n prefixEvaluateOperator?.range.startLineNumber\n );\n const { parentKey: suffixParentKey } = findKeys(\n model,\n suffixEvaluateOperator.range,\n suffixEvaluateOperator?.range.startLineNumber\n );\n const { keyList } = findKeys(model, word, position.lineNumber);\n if (\n prefixParentKey === suffixParentKey &&\n keyList.includes(prefixParentKey)\n ) {\n return true;\n }\n }\n return false;\n};\n\nexport const brickNextYAMLProvideCompletionItems = (\n completers?: monaco.languages.CompletionItem[],\n advancedCompleters?: Record<\n string,\n { triggerCharacter: string; completers: monaco.languages.CompletionItem[] }\n >\n) => {\n return (\n model: monaco.editor.ITextModel,\n position: monaco.Position,\n context: monaco.languages.CompletionContext,\n _token: monaco.CancellationToken\n ): monaco.languages.ProviderResult<monaco.languages.CompletionList> => {\n const word = model.getWordUntilPosition(position);\n const { word: prefixWord, token: prefixToken } = getPrefixWord(\n model,\n position\n );\n const curLineWord = model.getValueInRange({\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: 0,\n endColumn: Infinity,\n });\n const range = {\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: word.startColumn,\n endColumn: word.endColumn,\n };\n\n const isFirstLevelProperty = word.startColumn === 1;\n const { curLevelKeys } = findKeys(model, word, model.getLineCount());\n\n if (context.triggerCharacter === \"<\") {\n const fullWord = model.getValueInRange({\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: position.column - 2,\n endColumn: position.column + 2,\n });\n if (fullWord.trim() !== \"<\") {\n return {\n suggestions: [],\n };\n }\n return {\n suggestions: [\n {\n label: \"<% %>\",\n detail: \"Evalute Body\",\n kind: monaco.languages.CompletionItemKind.Value,\n insertText: \"% ${0} %>\",\n insertTextRules:\n monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\n range: range,\n },\n {\n label: \"<%= %>\",\n detail: \"Track Evalute Body\",\n kind: monaco.languages.CompletionItemKind.Value,\n insertText: \"%= ${0} %>\",\n insertTextRules:\n monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\n range: range,\n },\n ],\n };\n }\n\n if (isFirstLevelProperty) {\n return {\n suggestions: (completers ?? [])\n .filter((item) => !curLevelKeys.includes(item.label as string))\n .map((item) => ({\n ...item,\n label: item.label,\n insertText: item.insertText || (item.label as string),\n kind: monaco.languages.CompletionItemKind.Keyword,\n range,\n })),\n };\n }\n\n if (\n context.triggerCharacter === \":\" ||\n (context.triggerCharacter === \".\" &&\n prefixWord &&\n ![\"CTX\", \"STATE\", \"FN\"].includes(prefixWord))\n ) {\n if (prefixWord === \"action\" && context.triggerCharacter === \":\") {\n const actions = get(\n storyboardJsonSchema,\n \"definitions.BuiltinBrickEventHandler.properties.action.enum\"\n );\n return {\n suggestions: ((actions as unknown as string[]) ?? [])?.map(\n (item) => ({\n label: ` ${item}`,\n detail: \"event action\",\n kind: monaco.languages.CompletionItemKind.Keyword,\n insertText: ` ${item}`,\n range,\n })\n ),\n };\n }\n const matchCompletion = advancedCompleters?.[prefixWord as string];\n let matchTriggerCharacter = \"\";\n let list: monaco.languages.CompletionItem[] | undefined;\n if (matchCompletion && !Array.isArray(matchCompletion)) {\n list = matchCompletion.completers;\n matchTriggerCharacter = matchCompletion.triggerCharacter;\n } else {\n list = matchCompletion;\n }\n if (\n matchTriggerCharacter\n ? context.triggerCharacter === matchTriggerCharacter && list\n : list\n ) {\n return {\n suggestions: (list ?? []).map((item) => {\n const label =\n matchTriggerCharacter === \":\"\n ? ` ${item.label}`\n : (item.label as string);\n return {\n ...item,\n label: label,\n kind: monaco.languages.CompletionItemKind.Value,\n insertText: item.insertText || label,\n range,\n };\n }),\n };\n }\n }\n\n if (isInEvaluateBody(model, position)) {\n if (\n prefixWord &&\n [\"CTX\", \"STATE\"].includes(prefixWord) &&\n advancedCompleters\n ) {\n return {\n suggestions: (advancedCompleters[prefixWord]?.completers ?? []).map(\n (item) => ({\n label: item.label,\n insertText: item.label as string,\n kind: monaco.languages.CompletionItemKind.Value,\n range,\n })\n ),\n };\n }\n\n if (\n prefixWord === \"FN\" &&\n context.triggerCharacter === \".\" &&\n advancedCompleters\n ) {\n return {\n suggestions: (advancedCompleters[\"FN\"]?.completers ?? []).map(\n (item) => ({\n label: item.label,\n insertText: item.label as string,\n kind: monaco.languages.CompletionItemKind.Value,\n range,\n })\n ),\n };\n }\n\n if (prefixWord === \"APP\" && context.triggerCharacter === \".\") {\n const appProperties = get(\n storyboardJsonSchema,\n \"definitions.MicroApp.properties\"\n );\n const suggestions = [];\n for (const [k, v] of Object.entries(\n appProperties as unknown as Record<\n string,\n {\n description: string;\n type: string;\n enum: string[];\n }\n >\n )) {\n suggestions.push({\n label: k,\n kind: monaco.languages.CompletionItemKind.Value,\n documentation: v.description,\n detail: v.enum ? v.enum.join(\"|\") : v.type,\n insertText: k,\n range,\n });\n }\n return {\n suggestions,\n };\n }\n\n if ([\".\", \":\"].includes(prefixToken)) {\n return {\n suggestions: [],\n };\n }\n\n return {\n suggestions: EVALUATE_KEYWORD.map((item) => ({\n label: item,\n insertText: item,\n kind: monaco.languages.CompletionItemKind.Keyword,\n range,\n })),\n };\n }\n\n if (/^[\\s|-]*\\w$/.test(curLineWord)) {\n return {\n suggestions: brickNextKeywords\n .map((item) => ({\n label: item,\n insertText: item,\n kind: monaco.languages.CompletionItemKind.Keyword,\n range,\n }))\n .filter((item) => !curLevelKeys.includes(item.label as string)),\n };\n }\n\n return {\n suggestions: [],\n };\n };\n};\n","export const EVALUATE_KEYWORD = [\n \"CTX\",\n \"STATE\",\n \"DATA\",\n \"EVENT\",\n \"FLAGS\",\n \"APP\",\n \"ANCHOR\",\n \"HASH\",\n \"INSTALLED_APPS\",\n \"ITEM\",\n \"LOCAL_STORAGE\",\n \"MEDIA\",\n \"MISC\",\n \"PARAMS\",\n \"PATH\",\n \"PROCESSORS\",\n \"QUERY\",\n \"QUERY_ARRAY\",\n \"SESSION_STORAGE\",\n \"TPL\",\n \"SYS\",\n \"BASE_URL\",\n \"IMG\",\n \"FN\",\n \"I18N\",\n \"I18N_TEXT\",\n \"PERMISSIONS\",\n \"THEME\",\n];\n\nexport const brickNextKeywords = [\n \"target\",\n \"targetRef\",\n \"properties\",\n \"events\",\n \"method\",\n \"callback\",\n \"success\",\n \"error\",\n \"action\",\n \"useProvider\",\n \"useChildren\",\n \"useBrick\",\n \"args\",\n \"if\",\n \"then\",\n];\n\nexport const Level = {\n hit: 1,\n info: 2,\n warn: 4,\n error: 8,\n};\n","// 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, `.highlight{color:rgb(74 170 189)!important;text-decoration:underline;font-weight:bold;font-style:oblique}.pointer{cursor:pointer}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./index.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./index.css\";\n export default content && content.locals ? content.locals : undefined;\n","import { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport type { AbstractForm } from \"./Form.js\";\nimport { UseSingleBrickConf } from \"@next-core/types\";\n\nconst { method, property } = createDecorators();\n\nexport abstract class FormItemElementBase extends ReactNextElement {\n accessor #_notRender = false;\n accessor #validate = \"normal\";\n accessor #bindFormItem = false;\n\n get isFormItemElement(): true {\n return true;\n }\n\n set validateState(value: string) {\n this.#validate = value;\n this._render();\n }\n get validateState() {\n return this.#validate;\n }\n\n /**\n * 控制该表单项是否隐藏\n * @default false\n * @group ui\n */\n set notRender(value: boolean) {\n this.hidden = value;\n this.#_notRender = value;\n this._render();\n }\n get notRender(): boolean {\n return this.#_notRender;\n }\n\n get $bindFormItem() {\n return this.#bindFormItem;\n }\n set $bindFormItem(value: boolean) {\n this.#bindFormItem = value;\n this._render();\n }\n\n @property({\n attribute: false,\n })\n accessor helpBrick:\n | { useBrick: UseSingleBrickConf | UseSingleBrickConf[] }\n | undefined;\n\n @property({\n attribute: false,\n })\n accessor labelBrick:\n | { useBrick: UseSingleBrickConf | UseSingleBrickConf[] }\n | undefined;\n\n @method()\n setNotRender(value: boolean) {\n this.notRender = value;\n }\n\n @method()\n getFormElement(): AbstractForm | null {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let element: AbstractForm | null = this as unknown as AbstractForm;\n while ((element = element.parentNode as AbstractForm | null)) {\n if (!element || element.isFormElement) {\n break;\n }\n }\n return element as AbstractForm | null;\n }\n}\n"],"names":["EDITOR_FONT_SIZE","EDITOR_LINE_HEIGHT","EDITOR_SCROLLBAR_SIZE","EDITOR_PADDING_VERTICAL","registerJavaScript","monaco","registerTypeScript","registerYaml","registerHtml","_CodeEditor","defineElement","property","event","createDecorators","WrappedFormItem","wrapBrick","_dec","shadowOptions","_dec2","_dec3","_dec4","attribute","_dec5","_dec6","_dec7","type","Boolean","_dec8","_dec9","_dec10","Number","_dec11","_dec12","_dec13","_dec14","_dec15","_dec16","_dec17","_dec18","_dec19","_dec20","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_codeChange","_R","_userInput","_handleChange","_S","_highlighClickEvent","_handleHighlightClick","_handleValidtor","CodeEditor","FormItemElementBase","constructor","arguments","_classPrivateFieldInitSpec","get","_get_highlighClickEvent2","set","_set_highlighClickEvent2","_get_userInput2","_set_userInput2","_get_codeChange2","_set_codeChange2","writable","value","_initProto","_init_name","_init_label","_init_value","_init_language","_init_theme","_init_required","_init_readOnly","_init_automaticLayout","_init_minLines","_init_completers","_init_advancedCompleters","_init_markers","_init_links","_init_maxLines","_init_height","_init_message","_init_codeChange","_init_userInput","parseValue","isFlush","_this$getFormElement","this","getFormElement","formStore","onChange","name","_classPrivateFieldGet","emit","_init_highlighClickEvent","word","yaml","_unused","v","_classPrivateFieldSet","label","language","theme","required","readOnly","automaticLayout","minLines","completers","advancedCompleters","markers","links","maxLines","height","message","connectedCallback","style","display","super","render","React","curElement","formElement","validator","CodeEditorComponent","validateState","onHighlightClick","_set_codeChange","_get_codeChange","_set_userInput","_get_userInput","_set_highlighClickEvent","_get_highlighClickEvent","_ref","_value","_language","_theme","_minLines","_maxLines","_height","Infinity","containerRef","useRef","decorationsCollection","editorRef","size","width","getContentHeightByCode","actualHeight","setActualHeight","useState","automaticLayoutRef","systemTheme","useCurrentTheme","useEffect","setTheme","current","currentModel","getModel","setModelLanguage","isEqual","getValue","setValue","provideCompletionItems","brickNextYAMLProvideCompletionItems","monacoProviderRef","registerCompletionItemProvider","triggerCharacters","dispose","parseYaml","useCallback","map","BrickNextYamlSourceMap","undefined","model","listener","listen","_decorationsCollectio","tokens","getTokens","forEach","item","startLineNumber","endLineNumber","startColumn","globalNodes","result","preevaluate","source","hooks","beforeVisit","node","object","EVALUATE_KEYWORD","includes","push","start","end","loc","_node$object","_loc$start","_loc$end","_loc$start2","_loc$end2","hadWrap","test","prefix","token","line","length","column","endColumn","_node$object2","_result$prefix","_result$prefix2","isString","filter","range","options","inlineClassName","modelMarkers","_matchTokenConf$param","_matchTokenConf$level","matchTokenConf","find","params","_objectSpread","severity","Level","level","code","target","parse","warn","setModelMarkers","e","_decorationsCollectio2","useLayoutEffect","_editorRef$current","getBoundingClientRect","layout","observer","ResizeObserver","entries","entry","_editorRef$current2","newWidth","contentBoxSize","inlineSize","contentRect","observe","disconnect","container","element","brick","found","tagName","toLowerCase","parentElement","getDOMContainer","offsetHeight","updateOptions","createModel","create","minimap","enabled","scrollBeyondLastLine","tabSize","insertSpaces","fontSize","lineHeight","scrollbar","horizontalScrollbarSize","verticalScrollbarSize","horizontalSliderSize","verticalSliderSize","alwaysConsumeMouseWheel","padding","top","bottom","overviewRulerBorder","mouseWheelScrollSensitivity","suggest","insertMode","preview","quickSuggestions","strings","other","comments","createDecorationsCollection","editor","editorMouseDownEvent","onMouseDown","_decorations$getRange","_decorations$getRange2","decorations","getRanges","call","modKey","navigator","platform","position","containsPosition","getValueInRange","mouseOverEvent","onMouseMove","newDecorations","equalsRange","onDidContentSizeChange","contentHeightChanged","newHeight","fixEditorHeightWithScrollBar","contentHeight","getContentHeight","onDidChangeContent","_editorRef$current3","_editorRef$current4","ref","outline","getContentHeightByLines","Math","min","max","split","fixedHeight","lines","c","_initClass","_applyDecs","o","_","has","_checkInRHS","_recordsToken","_prefixPosition","_recordLastWord","_defineProperty","handleState","state","lineStart","curWord","input","substring","trim","lineIndent","_result$match","wrapLength","match","nearWrapIndex","i","specilStringPrefix","bind","findKeys","curLevelKeys","keyList","parentKey","matchWord","wordspace","key","unshift","context","_token","getWordUntilPosition","prefixWord","prefixToken","getPrefixWord","_word$word","lineNumber","getWordAtPosition","curLineWord","isFirstLevelProperty","getLineCount","triggerCharacter","suggestions","detail","kind","CompletionItemKind","Value","insertText","insertTextRules","CompletionItemInsertTextRule","InsertAsSnippet","Keyword","_ref2","storyboardJsonSchema","concat","list","_list","matchCompletion","matchTriggerCharacter","Array","isArray","isInEvaluateBody","prefixEvaluateOperator","findPreviousMatch","suffixEvaluateOperator","findNextMatch","prefixParentKey","suffixParentKey","_advancedCompleters$p","_advancedCompleters$p2","_advancedCompleters$F","_advancedCompleters$F2","appProperties","k","Object","documentation","description","enum","join","brickNextKeywords","hit","info","error","___CSS_LOADER_EXPORT___","module","id","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","method","_notRender","_validate","_bindFormItem","ReactNextElement","_get_bindFormItem","_set_bindFormItem","_get_validate","_set_validate","_get__notRender","_set__notRender","_init_helpBrick","_init_labelBrick","isFormItemElement","_render","notRender","hidden","$bindFormItem","helpBrick","labelBrick","setNotRender","parentNode","isFormElement"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"chunks/code-editor.8377d5d2.js","mappings":"gKAAO,IAAMA,EAAmB,GACnBC,EAAqB,GACrBC,EAAwB,GACxBC,EAA0B,E,6eC8BvCC,EAAAA,GAAAA,IAAmBC,KACnBC,EAAAA,GAAAA,IAAmBD,KACnBE,EAAAA,GAAAA,IAAaF,GAAQ,oBACrBG,EAAAA,GAAAA,IAAaH,IAEb,IAE2EI,IAFrE,cAAEC,GAAa,SAAEC,GAAQ,MAAEC,KAAUC,EAAAA,GAAAA,oBAErCC,IAAkBC,EAAAA,GAAAA,WAAmC,gBAAgBC,EAuC1EN,GAAc,iBAAkB,CAI/BO,eAAe,IACfC,EAECP,KAAUQ,EAGVR,KAAUS,EAGVT,GAAS,CAAEU,WAAW,IAAQC,EAM9BX,KAAUY,EASVZ,KAAUa,EAEVb,GAAS,CACRc,KAAMC,UACNC,EAGDhB,GAAS,CACRc,KAAMC,UACNE,EAGDjB,KAAUkB,EAUVlB,GAAS,CAAEc,KAAMK,SAASC,EAG1BpB,GAAS,CACRU,WAAW,IACXW,EAGDrB,GAAS,CACRU,WAAW,IACXY,EAWDtB,GAAS,CAAEU,WAAW,IAAQa,EAG9BvB,GAAS,CAAEU,WAAW,IAAQc,EAM9BxB,GAAS,CAAEc,KAAMK,SAASM,EAG1BzB,GAAS,CAAEU,WAAW,IAAQgB,EAG9B1B,KAAU2B,EAGV1B,GAAM,CAAEa,KAAM,gBAAgBc,EAG9B3B,GAAM,CAAEa,KAAM,eAAee,EAW7B5B,GAAM,CAAEa,KAAM,gBAAgB,IAAAgB,GAAA,IAAAC,QAAAC,GAAA,IAAAD,QAAAE,GAAA,IAAAF,QAAAG,GAAA,IAAAH,QAAAI,GAAA,IAAAJ,QAAAK,GAAA,IAAAL,QAAAM,GAAA,IAAAN,QAAAO,GAAA,IAAAP,QAAAQ,GAAA,IAAAR,QAAAS,GAAA,IAAAT,QAAAU,GAAA,IAAAV,QAAAW,GAAA,IAAAX,QAAAY,GAAA,IAAAZ,QAAAa,GAAA,IAAAb,QAAAc,GAAA,IAAAd,QAAAe,GAAA,IAAAf,QAAAgB,GAAA,IAAAhB,QAAAiB,GAAA,IAAAjB,QAAAkB,GAAA,IAAAlB,QAAAmB,GAAA,IAAAnB,QAAAoB,GAAA,IAAApB,QAAAqB,GAAA,IAAArB,QAAAsB,GAAA,IAAAtB,QAAAuB,GAAA,IAAAvB,QAAAwB,GAAA,IAAAxB,QAvGjC,MAAAyB,WAMyBC,GAAAA,EAA+CC,cAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAAP,GAAA,CAAAQ,IAAAC,GAAAC,IAAAC,MAAAJ,EAAAA,EAAAA,GAAA,KAAAV,GAAA,CAAAW,IAAAI,GAAAF,IAAAG,MAAAN,EAAAA,EAAAA,GAAA,KAAAZ,GAAA,CAAAa,IAAAM,GAAAJ,IAAAK,MAAAR,EAAAA,EAAAA,GAAA,KAAA9B,GAAA,CAAAuC,UAAA,EAAAC,OAAAC,EAAA,MAAAC,EAAA,UAAAZ,EAAAA,EAAAA,GAAA,KAAA5B,GAAA,CAAAqC,UAAA,EAAAC,MAAAG,EAAA,SAAAb,EAAAA,EAAAA,GAAA,KAAA3B,GAAA,CAAAoC,UAAA,EAAAC,MAAAI,EAAA,SAUtEd,EAAAA,EAAAA,GAAA,KAAA1B,GAAA,CAAAmC,UAAA,EAAAC,MAAAK,EAAA,SAMAf,EAAAA,EAAAA,GAAA,KAAAzB,GAAA,CAAAkC,UAAA,EAAAC,MAAAM,EAAA,SAAAhB,EAAAA,EAAAA,GAAA,KAAAxB,GAAA,CAAAiC,UAAA,EAAAC,MAAAO,EAAA,SAAAjB,EAAAA,EAAAA,GAAA,KAAAvB,GAAA,CAAAgC,UAAA,EAAAC,MAAAQ,EAAA,SAAAlB,EAAAA,EAAAA,GAAA,KAAAtB,GAAA,CAAA+B,UAAA,EAAAC,MAAAS,EAAA,SAyBAnB,EAAAA,EAAAA,GAAA,KAAArB,GAAA,CAAA8B,UAAA,EAAAC,MAAAU,EAAA,SAAApB,EAAAA,EAAAA,GAAA,KAAApB,GAAA,CAAA6B,UAAA,EAAAC,MAAAW,EAAA,SAAArB,EAAAA,EAAAA,GAAA,KAAAnB,GAAA,CAAA4B,UAAA,EAAAC,MAAAY,EAAA,SAAAtB,EAAAA,EAAAA,GAAA,KAAAlB,GAAA,CAAA2B,UAAA,EAAAC,MAAAa,EAAA,SAAAvB,EAAAA,EAAAA,GAAA,KAAAjB,GAAA,CAAA0B,UAAA,EAAAC,MAAAc,EAAA,SA8BAxB,EAAAA,EAAAA,GAAA,KAAAhB,GAAA,CAAAyB,UAAA,EAAAC,MAAAe,EAAA,SAAAzB,EAAAA,EAAAA,GAAA,KAAAf,GAAA,CAAAwB,UAAA,EAAAC,MAAAgB,EAAA,SAAA1B,EAAAA,EAAAA,GAAA,KAAAd,GAAA,CAAAuB,UAAA,EAAAC,MAAAiB,EAAA,SAAA3B,EAAAA,EAAAA,GAAA,KAAAb,GAAA,CAAAsB,UAAA,EAAAC,MAAAkB,EAAA,SAAA5B,EAAAA,EAAAA,GAAA,KAAAX,GAAA,CAAAoB,UAAA,EAAAC,MAAAmB,EAAA,SAAA7B,EAAAA,EAAAA,GAAA,KAAAT,GAAA,CAAAkB,UAAA,EAAAC,MAkBgBA,CAACA,EAAeoB,EAAiBC,KAAqB,IAAAC,EAC/C,QAArBA,EAAAC,KAAKC,wBAAgB,IAAAF,GAArBA,EAAuBG,UAAUC,SAASH,KAAKI,KAAO3B,IACtD4B,EAAAA,GAAAA,GAAAL,KAAI7C,IAAamD,KAAKT,GACjBC,IACHO,EAAAA,GAAAA,GAAAL,KAAI3C,IAAYiD,KAAKT,EACvB,KACD9B,EAAAA,EAAAA,GAAA,KAAAR,GAAA,CAAAiB,UAAA,EAAAC,MAAA8B,EAAA,SAAAxC,EAAAA,EAAAA,GAAA,KAAAN,GAAA,CAAAe,UAAA,EAAAC,MAKwB+B,KACvBH,EAAAA,GAAAA,GAAAL,KAAIxC,IAAqB8C,KAAKE,EAAK,KACpCzC,EAAAA,EAAAA,GAAA,KAAAL,GAAA,CAAAc,UAAA,EAAAC,MAEkBA,IACjB,IACEgC,KAAAA,KAAUhC,EACZ,CAAE,MAAAiC,GACA,MAAO,UACT,CACA,MAAO,EAAE,GACV,CA7GQN,WAAI,OAAAC,EAAAA,GAAAA,GAAA,KAAApE,GAAA,CAAJmE,SAAIO,IAAAC,EAAAA,EAAAA,GAAA,KAAA3E,GAAA0E,EAAA,CAGJE,YAAK,OAAAR,EAAAA,GAAAA,GAAA,KAAAlE,GAAA,CAAL0E,UAAKF,IAAAC,EAAAA,EAAAA,GAAA,KAAAzE,GAAAwE,EAAA,CAGLlC,YAAK,OAAA4B,EAAAA,GAAAA,GAAA,KAAAjE,GAAA,CAALqC,UAAKkC,IAAAC,EAAAA,EAAAA,GAAA,KAAAxE,GAAAuE,EAAA,CAMLG,eAAQ,OAAAT,EAAAA,GAAAA,GAAA,KAAAhE,GAAA,CAARyE,aAAQH,IAAAC,EAAAA,EAAAA,GAAA,KAAAvE,GAAAsE,EAAA,CAQII,YAAK,OAAAV,EAAAA,GAAAA,GAAA,KAAA/D,GAAA,CAALyE,UAAKJ,IAAAC,EAAAA,EAAAA,GAAA,KAAAtE,GAAAqE,EAAA,CAKjBK,eAAQ,OAAAX,EAAAA,GAAAA,GAAA,KAAA9D,GAAA,CAARyE,aAAQL,IAAAC,EAAAA,EAAAA,GAAA,KAAArE,GAAAoE,EAAA,CAKRM,eAAQ,OAAAZ,EAAAA,GAAAA,GAAA,KAAA7D,GAAA,CAARyE,aAAQN,IAAAC,EAAAA,EAAAA,GAAA,KAAApE,GAAAmE,EAAA,CAGRO,sBAAe,OAAAb,EAAAA,GAAAA,GAAA,KAAA5D,GAAA,CAAfyE,oBAAeP,IAAAC,EAAAA,EAAAA,GAAA,KAAAnE,GAAAkE,EAAA,CAUfQ,eAAQ,OAAAd,EAAAA,GAAAA,GAAA,KAAA3D,GAAA,CAARyE,aAAQR,IAAAC,EAAAA,EAAAA,GAAA,KAAAlE,GAAAiE,EAAA,CAKRS,iBAAU,OAAAf,EAAAA,GAAAA,GAAA,KAAA1D,GAAA,CAAVyE,eAAUT,IAAAC,EAAAA,EAAAA,GAAA,KAAAjE,GAAAgE,EAAA,CAKVU,yBAAkB,OAAAhB,EAAAA,GAAAA,GAAA,KAAAzD,GAAA,CAAlByE,uBAAkBV,IAAAC,EAAAA,EAAAA,GAAA,KAAAhE,GAAA+D,EAAA,CAWlBW,cAAO,OAAAjB,EAAAA,GAAAA,GAAA,KAAAxD,GAAA,CAAPyE,YAAOX,IAAAC,EAAAA,EAAAA,GAAA,KAAA/D,GAAA8D,EAAA,CAGPY,YAAK,OAAAlB,EAAAA,GAAAA,GAAA,KAAAvD,GAAA,CAALyE,UAAKZ,IAAAC,EAAAA,EAAAA,GAAA,KAAA9D,GAAA6D,EAAA,CAMLa,eAAQ,OAAAnB,EAAAA,GAAAA,GAAA,KAAAtD,GAAA,CAARyE,aAAQb,IAAAC,EAAAA,EAAAA,GAAA,KAAA7D,GAAA4D,EAAA,CAGRc,aAAM,OAAApB,EAAAA,GAAAA,GAAA,KAAArD,GAAA,CAANyE,WAAMd,IAAAC,EAAAA,EAAAA,GAAA,KAAA5D,GAAA2D,EAAA,CAGNe,cAAO,OAAArB,EAAAA,GAAAA,GAAA,KAAApD,GAAA,CAAPyE,YAAOf,IAAAC,EAAAA,EAAAA,GAAA,KAAA3D,GAAA0D,EAAA,CAgChBgB,oBAGO3B,KAAK4B,MAAMC,UACd7B,KAAK4B,MAAMC,QAAU,SAEvBC,MAAMH,mBACR,CAEAI,SACE,OACEC,KAAAA,cAAC1H,GAAe,CACd2H,WAAYjC,KACZkC,YAAalC,KAAKC,iBAClBG,KAAMJ,KAAKI,KACXS,MAAOb,KAAKa,MACZG,SAAUhB,KAAKgB,SACfmB,WAAS9B,EAAAA,GAAAA,GAAEL,KAAItC,KAEfsE,KAAAA,cAACI,GAAmB,CAClB3D,MAAOuB,KAAKvB,MACZqC,SAAUd,KAAKc,SACfG,SAAUjB,KAAKiB,SACfF,MAAOf,KAAKe,MACZG,gBAAiBlB,KAAKkB,gBACtBC,SAAUnB,KAAKmB,SACfK,SAAUxB,KAAKwB,SACfC,OAAQzB,KAAKyB,OACbL,WAAYpB,KAAKoB,WACjBC,mBAAoBrB,KAAKqB,mBACzBC,QAAStB,KAAKsB,QACdC,MAAOvB,KAAKuB,MACZc,cAAerC,KAAKqC,cACpBlC,UAAQE,EAAAA,GAAAA,GAAEL,KAAI1C,IACdgF,kBAAgBjC,EAAAA,GAAAA,GAAEL,KAAIvC,MAI9B,EACD,SAAAc,GAAAoC,GAAA4B,EAAA,KAAA5B,EAAA,UAAArC,KAAA,OAAAkE,EAAA,eAAAnE,GAAAsC,GAAA8B,EAAA,KAAA9B,EAAA,UAAAvC,KAAA,OAAAsE,EAAA,eAAAvE,GAAAwC,GAAAgC,EAAA,KAAAhC,EAAA,UAAA1C,KAAA,OAAA2E,EAAA,MAEM,SAASR,GAAmBS,GAmBhC,IAlBDpE,MAAOqE,EACPhC,SAAUiC,EACVhC,MAAOiC,EACP7B,SAAU8B,EACVzB,SAAU0B,EACVzB,OAAQ0B,EAAO,gBACfjC,EAAe,WACfE,EAAU,mBACVC,EAAkB,QAClBC,EAAO,SACPL,EAAQ,MACRM,EAAK,cACLc,EAAa,SACblC,EAAQ,iBACRmC,GAIDO,EACOpE,EAAQqE,QAAAA,EAAU,GAClBhC,EAAWiC,QAAAA,EAAa,YACxBhC,EAAQiC,QAAAA,EAAU,OAClB7B,EAAW8B,QAAAA,EAAa,EACxBzB,EAAW0B,QAAAA,EAAaE,IACxB3B,EAAS0B,QAAAA,EAAW,IAEpBE,GAAeC,EAAAA,GAAAA,QAAuB,MACtCC,GACJD,EAAAA,GAAAA,UACIE,GAAYF,EAAAA,GAAAA,UACZG,GAAOH,EAAAA,GAAAA,QAAiC,CAC5CI,MAAO,IACPjC,OAAQkC,GAAuBlF,EAAO0C,EAAUK,MAE3CoC,EAAcC,IAAmBC,EAAAA,GAAAA,YAElCC,GAAqBT,EAAAA,GAAAA,QAAOpC,GAC5B8C,GAAcC,EAAAA,GAAAA,oBAEpBC,EAAAA,GAAAA,YAAU,KAGRrK,GAAAA,OAAcsK,SACF,SAAVpD,EACoB,SAAhBiD,GAA0C,YAAhBA,EACxB,UACA,KACFjD,EACL,GACA,CAACiD,EAAajD,KAEjBmD,EAAAA,GAAAA,YAAU,KACR,GAAIV,EAAUY,QAAS,CACrB,IAAMC,EAAeb,EAAUY,QAAQE,WACvCzK,GAAAA,OAAc0K,iBAAiBF,EAAcvD,IACxC0D,EAAAA,GAAAA,SAAQH,EAAaI,WAAYhG,IACpC4F,EAAaK,SAASjG,EAE1B,IACC,CAACA,EAAOqC,KAEXoD,EAAAA,GAAAA,YAAU,KACR,GAAiB,oBAAbpD,EAAgC,CAClC,IAAM6D,GAAyBC,EAAAA,GAAAA,GAC7BxD,EACAC,GAEIwD,EAAoBhL,GAAAA,UAAiBiL,+BACzC,kBACA,CACEH,yBACAI,kBAAmB,CAAC,IAAK,IAAK,OAGlC,MAAO,KACLF,EAAkBG,SAAS,CAE/B,IACC,CAAC5D,EAAYC,EAAoBP,IAEpC,IAAMmE,GAAYC,EAAAA,GAAAA,cAAY,KAC5B,IAAMC,EAAM,IAAIC,GAAAA,EACZvF,OAAawF,EACjB,GAAI7B,EAAUY,QAAS,CACrB,IAAMkB,EAAQ9B,EAAUY,QAAQE,WAEhC,IAKE,GAJAzE,EAAaY,KAAAA,KAAUhC,EAAO,CAC5B8G,SAAUJ,EAAIK,YAGXjE,GAASD,IAAYkC,EAAUY,QAAS,KAAAqB,EACrCC,EAGA,GAoFN,GAnFAP,EAAIQ,YAAYC,SAASC,IACvB,IAAM,gBAAEC,EAAe,cAAEC,EAAa,YAAEC,GAAgBH,EAClDI,EAAkC,GAClCC,GAASC,EAAAA,GAAAA,aAAYN,EAAKO,OAAQ,CACtCC,MAAO,CACLC,YAAYC,GAEM,qBAAdA,EAAKtL,MACgB,eAArBsL,EAAKC,OAAOvL,MACZwL,GAAAA,GAAiBC,SAASH,EAAKC,OAAOpG,OACf,eAAvBmG,EAAKpM,SAASc,MAEdgL,EAAYU,KAAKJ,EAErB,KAIJN,EAAYL,SAASW,IACnB,IAAM,MAAEK,EAAK,IAAEC,EAAG,IAAEC,GAAQP,EAC5B,GAAIV,EAAKC,kBAAoBD,EAAKE,cAAe,KAAAgB,EAAAC,EAAAC,EAAAC,EAAAC,EACzCC,EAAU,SAASC,KAAKnB,EAAOoB,QACrC5B,EAAOiB,KAAK,CACVY,MAAmB,QAAdR,EAAGR,EAAKC,cAAM,IAAAO,OAAA,EAAZA,EAA6B3G,KACpCjG,SAAWoM,EAAKpM,SAAwBiG,KACxC0F,gBACED,EAAKC,iBACJgB,SAAU,QAAPE,EAAHF,EAAKF,aAAK,IAAAI,OAAA,EAAVA,EAAYQ,MACblM,OAAO8L,GACTrB,cACEF,EAAKC,iBACJgB,SAAQ,QAALG,EAAHH,EAAKD,WAAG,IAAAI,OAAA,EAARA,EAAUO,MACXlM,OAAO8L,GACTpB,aACGoB,GAA+B,KAApBN,aAAG,EAAHA,EAAKF,MAAMY,MACnBtB,EAAOoB,OAAOG,OACd,IACHX,SAAU,QAAPI,EAAHJ,EAAKF,aAAK,IAAAM,OAAA,EAAVA,EAAYQ,QACb,EACFC,WACGP,GAA+B,KAApBN,aAAG,EAAHA,EAAKF,MAAMY,MACnBtB,EAAOoB,OAAOG,OACd,IACHX,SAAQ,QAALK,EAAHL,EAAKD,WAAG,IAAAM,OAAA,EAARA,EAAUO,QACX,GAEN,KAAO,KAAAE,EAAAC,EAAAC,EACLpC,EAAOiB,KAAK,CACVY,MAAmB,QAAdK,EAAGrB,EAAKC,cAAM,IAAAoB,OAAA,EAAZA,EAA6BxH,KACpCjG,SAAWoM,EAAKpM,SAAwBiG,KACxC0F,kBACAC,gBACAC,YACEA,EACCY,GACY,QADIiB,EACjB3B,EAAOoB,cAAM,IAAAO,OAAA,EAAbA,EAAeJ,QACfnM,QAAQuK,EAAKkC,UACfJ,UACE3B,EACCa,GACY,QADEiB,EACf5B,EAAOoB,cAAM,IAAAQ,OAAA,EAAbA,EAAeL,QACfnM,QAAQuK,EAAKkC,WAEnB,IACA,IAGyB,QAA7BtC,EAAAlC,EAAsBa,eAAO,IAAAqB,GAA7BA,EAA+BvH,IAC7BwH,EACGsC,QAAQT,GAAUhG,aAAK,EAALA,EAAOmF,SAASa,EAAMA,SACxCpC,KAAKoC,IAAK,CACTU,MAAO,IAAIpO,GAAAA,MACT0N,EAAMzB,gBACNyB,EAAMvB,YACNuB,EAAMxB,cACNwB,EAAMI,WAERO,QAAS,CACPC,gBAAiB,kBAKrB7G,EAAS,CACX,IAAM8G,EAAe1C,EAClBP,KAAKoC,IAAU,IAAAc,EAiBgCC,EAhBxCC,EAAiBjH,EAAQkH,MAC5B3C,GAASA,EAAK0B,QAAUA,EAAMA,QAKjC,OAHoBgB,UAAAA,EAAgBE,SACX,QADiBJ,EACtCE,EAAeE,cAAM,IAAAJ,OAAA,EAArBA,EAAuB3B,SAASa,EAAMpN,WAYtCoO,GAAkBA,EAAe7G,SACnCgH,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CACEC,SAAUC,GAAAA,GAA2B,QAAtBN,EAACC,aAAc,EAAdA,EAAgBM,aAAK,IAAAP,EAAAA,EAAI,QACzC5G,QAAS6G,EAAe7G,SACpB6G,EAAeO,KACf,CACEA,KAAM,CACJrK,MAAO8J,EAAeO,KAAKrK,MAC3BsK,OAAQlP,GAAAA,IAAWmP,MACjBT,EAAeO,KAAKC,UAI1B,CAAC,GAAC,IACNjD,gBAAiByB,EAAMzB,gBACvBC,cAAewB,EAAMxB,cACrBC,YAAauB,EAAMvB,YACnB2B,UAAWJ,EAAMI,iBAjBrB,EATS,CACLgB,SAAUC,GAAAA,GAAMK,KAChBvH,QAAS,gBACToE,gBAAiByB,EAAMzB,gBACvBC,cAAewB,EAAMxB,cACrBC,YAAauB,EAAMvB,YACnB2B,UAAWJ,EAAMI,UAsBrB,IAEDK,OAAO9M,SAEVrB,GAAAA,OAAcqP,gBACZ5D,EACA,kBACA8C,EAEJ,CACF,CACF,CAAE,MAAOe,GAAG,IAAAC,EACVvP,GAAAA,OAAcqP,gBAAgB5D,EAAO,kBAAmB,IACxD/B,SAA8B,QAAT6F,EAArB7F,EAAuBa,eAAO,IAAAgF,GAA9BA,EAAgClL,IAAI,GACtC,CACF,CACA,OAAO2B,CAAU,GAChB,CAACpB,EAAO8C,EAAOD,IA4OlB,OA1OA+H,EAAAA,GAAAA,kBAAgB,KAAM,IAAAC,EACpB,GAAmC,gBAA/BvF,EAAmBK,SAA8Bf,EAAae,QAAlE,CAIAX,EAAKW,QAAQV,MAAQL,EAAae,QAAQmF,wBAAwB7F,MACjD,QAAjB4F,EAAA9F,EAAUY,eAAO,IAAAkF,GAAjBA,EAAmBE,OAAO/F,EAAKW,SAE/B,IAAMqF,EAAW,IAAIC,gBAAgBC,IACnC,IAAK,IAAMC,KAASD,EAClB,GAAIC,EAAMb,SAAW1F,EAAae,QAAS,CACzC,IAGqCyF,EAH/BC,EAAWF,EAAMG,eACnBH,EAAMG,eAAe,GAAGC,WACxBJ,EAAMK,YAAYvG,MAClBoG,IAAarG,EAAKW,QAAQV,QAC5BD,EAAKW,QAAQV,MAAQoG,EACJ,QAAjBD,EAAArG,EAAUY,eAAO,IAAAyF,GAAjBA,EAAmBL,OAAO/F,EAAKW,UAEjC,KACF,CACF,IAIF,OAFAqF,EAASS,QAAQ7G,EAAae,SAEvB,KACLqF,EAASU,YAAY,CAtBvB,CAuBC,GACA,KAEHd,EAAAA,GAAAA,kBAAgB,KACd,GAAmC,kBAA/BtF,EAAmBK,QAAvB,CAIA,IAAMgG,EAuPV,SAAyBC,GAEvB,IADA,IAAIC,EAAQD,EACLC,GAAO,CACZ,IAAMC,EAAwC,mBAAhCD,EAAME,QAAQC,cAE5B,GADAH,EAAQA,EAAMI,cACVH,EACF,OAAOD,CAEX,CACF,CAhQsBK,CAAgBtH,EAAae,SAC/C,GAAKgG,EAAL,CAIA,IAAMX,EAAW,IAAIC,gBAAe,KAClC7F,EAAgBuG,EAAUQ,aAAa,IAGzC,OADAnB,EAASS,QAAQE,GACV,KACLX,EAASU,YAAY,CAPvB,CALA,CAaC,GACA,KAEHjG,EAAAA,GAAAA,YAAU,KAEyB,kBAA/BH,EAAmBK,SACY,gBAA/BL,EAAmBK,SAEnBP,EAAgBpC,EAClB,GACC,CAACA,KAEJyC,EAAAA,GAAAA,YAAU,KACHV,EAAUY,SACfZ,EAAUY,QAAQyG,cAAc,CAC9B5J,YACA,GACD,CAACA,KAEJiD,EAAAA,GAAAA,YAAU,KACR,IAAIV,EAAUY,SAAYf,EAAae,QAAvC,CAGA,IAAMkB,EAAQzL,GAAAA,OAAciR,YAAYrM,EAAOqC,GAC/C0C,EAAUY,QAAUvK,GAAAA,OAAckR,OAAO1H,EAAae,QAAS,CAC7DkB,QACA0F,QAAS,CACPC,SAAS,GAEXC,sBAAsB,EACtBC,QAAS,EACTC,cAAc,EACdlK,gBAAgD,gBAA/B6C,EAAmBK,QACpCiH,SAAU7R,GAAAA,GACV8R,WAAY7R,GAAAA,GACZ8R,UAAW,CACTC,wBAAyB9R,GAAAA,GACzB+R,sBAAuB/R,GAAAA,GACvBgS,qBAAsB,EACtBC,mBAAoB,EACpBC,yBAAyB,GAE3BC,QAAS,CACPC,IAAKnS,GAAAA,GAGLoS,OACgC,eAA9BhI,EAAmBK,aACfiB,EACA1L,GAAAA,IAERqS,qBAAqB,EACrBC,4BAA6B,GAC7BC,QAAS,CACPC,WAAY,SACZC,SAAS,GAEXnL,SAAUA,EACVoL,iBAAkB,CAAEC,SAAS,EAAMC,OAAO,EAAMC,UAAU,KAG5DjJ,EAAsBa,QACpBZ,EAAUY,QAAQqI,6BAxCpB,CAwCiD,GAChD,CAAChO,EAAOqC,EAAUG,KAErBiD,EAAAA,GAAAA,YAAU,KACR,IAAMwI,EAASlJ,EAAUY,QACzB,GAAiB,oBAAbtD,GAAkC4L,EAAQ,CAC5C,IAAMpH,EAAQoH,EAAOpI,WACfqI,EAAuBD,EAAOE,aAAY,SAAUzD,GAAG,IAAA0D,EAAAC,EACrDC,EAAcxJ,EAAsBa,SACf,QAA3ByI,EAACE,SAAsB,QAAXD,EAAXC,EAAaC,iBAAS,IAAAF,OAAA,EAAtBA,EAAAG,KAAAF,UAA0B,IAAAF,EAAAA,EAAI,IAAIjH,SAASqC,IAC1C,IAAMiF,EAAS,uBAAuB7F,KAAK8F,UAAUC,UACjD,UACA,UAEFnF,GACAkB,EAAEJ,OAAOsE,UACTlE,EAAE/O,MAAM8S,IACRjF,EAAMqF,iBAAiBnE,EAAEJ,OAAOsE,WAEhC/K,EAAiBgD,EAAMiI,gBAAgBtF,GACzC,GAEJ,IAEMuF,EAAiBd,EAAOe,aAAY,SAAUtE,GAClD,IAAM4D,EAAcxJ,EAAsBa,QACrC2I,GACLA,EAAYC,YAAYpH,SAASqC,IAC/B,IAAMiF,EAAS,uBAAuB7F,KAAK8F,UAAUC,UACjD,UACA,UACJ,GACEnF,GACAkB,EAAEJ,OAAOsE,UACTlE,EAAE/O,MAAM8S,IACRjF,EAAMqF,iBAAiBnE,EAAEJ,OAAOsE,UAChC,CACA,IAAMK,EAAiBX,EAAYC,YAAY7H,KAAKU,IAAI,CACtDoC,MAAOpC,EACPqC,QAAS,CACPC,gBAAiBF,EAAM0F,YAAY9H,GAC/B,oBACA,iBAGRkH,EAAY7O,IAAIwP,EAClB,MAAO,IAAKvE,EAAE/O,MAAM8S,GAAS,CAC3B,IAAMQ,EAAiBX,EAAYC,YAAY7H,KAAKU,IAAI,CACtDoC,MAAOpC,EACPqC,QAAS,CACPC,gBAAiB,iBAGrB4E,EAAY7O,IAAIwP,EAClB,IAEJ,IAIA,OAFAzI,IAEO,KACLuI,SAAAA,EAAgBxI,UAChB2H,SAAAA,EAAsB3H,SAAS,CAEnC,IACC,CAAClE,EAAUwB,EAAkB0B,EAAajD,EAAOkE,KAEpDf,EAAAA,GAAAA,YAAU,KACR,IAAMwI,EAASlJ,EAAUY,QACzB,GACGsI,GACArJ,EAAae,SACiB,gBAA/BL,EAAmBK,QAHrB,CAQA,IAAMmB,EAAWmH,EAAOkB,wBAAwBzE,IAC9C,GAAIA,EAAE0E,qBAAsB,CAC1B,IAAMC,EAAYC,GAChB5E,EAAE6E,cACF7M,EACAK,GAEEsM,IAAcrK,EAAKW,QAAQ3C,SAC7BgC,EAAKW,QAAQ3C,OAASqM,EACtBpB,EAAOlD,OAAO/F,EAAKW,SAEvB,KAGI0J,EAAYC,GAChBrB,EAAOuB,mBACP9M,EACAK,GAOF,OALIsM,IAAcrK,EAAKW,QAAQ3C,SAC7BgC,EAAKW,QAAQ3C,OAASqM,EACtBpB,EAAOlD,OAAO/F,EAAKW,UAGd,KACLmB,EAASP,SAAS,CA3BpB,CA4BC,GACA,CAACxD,EAAUL,KAEd+C,EAAAA,GAAAA,YAAU,KACR,GAAKV,EAAUY,QAAf,CAGA,IAAMC,EAAeb,EAAUY,QAAQE,WACjCiB,EAAWlB,EAAa6J,oBAAoB/E,IAChD,IAAMtJ,EAAaoF,IACnB9E,EAASkE,EAAaI,WAAY5E,EAAYsJ,EAAErJ,QAAQ,IAE1D,MAAO,KACLyF,EAASP,SAAS,CAPpB,CAQC,GACA,CAAC7E,EAAU8E,KAEdf,EAAAA,GAAAA,YAAU,IACD,KAAM,IAAAiK,EAAAC,EACM,QAAjBD,EAAA3K,EAAUY,eAAO,IAAA+J,GAAY,QAAZA,EAAjBA,EAAmB7J,kBAAU,IAAA6J,GAA7BA,EAA+BnJ,UACd,QAAjBoJ,EAAA5K,EAAUY,eAAO,IAAAgK,GAAjBA,EAAmBpJ,SAAS,GAE7B,IAGDhD,KAAAA,cAAA,OACEqM,IAAKhL,EACLzB,OAAK8G,EAAAA,EAAAA,GAAA,CACHjH,OAAQmC,GACc,UAAlBvB,EACA,CACEiM,QAAS,qCAEX,CAAC,IAIb,CAEA,SAAS3K,GACPmF,EACA3H,EACAK,GAEA,OAAO+M,GACLC,KAAKC,IAAIjN,EAAUgN,KAAKE,IAAIvN,EAAU2H,EAAK6F,MAAM,MAAMlH,SAE3D,CAEA,SAASsG,GACPC,EACA7M,EACAK,GAEA,IAAIoN,EAAcZ,EAIlB,OAHKA,EAAgBrU,GAAAA,IAA2BF,GAAAA,IAAuB,IACrEmV,EAAcZ,EAAgBtU,GAAAA,IAEzB8U,KAAKC,IACVF,GAAwB/M,GACxBgN,KAAKE,IAAIE,EAAaL,GAAwBpN,IAElD,CAEA,SAASoN,GAAwBM,GAC/B,OACEA,EAAQpV,GAAAA,GAAqBC,GAAAA,GAAwBC,GAAAA,EAEzD,GArgBCwP,GAAAxK,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA6C,EAAAD,EAAA3C,EAAA8C,EAAAD,EAAAlC,EAAAqC,EAAAD,EAAAjE,GAAAoQ,GAAA7U,GAAA8U,KAAAC,EAAAA,GAAAA,GAAArR,GAAA,EAAAjD,EAAA,WAAAC,EAAA,YAAAC,EAAA,YAAAE,EAAA,eAAAC,EAAA,YAAAC,EAAA,eAAAG,EAAA,eAAAC,EAAA,sBAAAC,EAAA,eAAAE,EAAA,iBAAAC,EAAA,yBAAAC,EAAA,cAAAC,EAAA,YAAAC,EAAA,eAAAC,EAAA,aAAAC,EAAA,cAAAC,EAAA,eAAAmT,IAAA5O,EAAAA,GAAAA,GAAA4O,EAAA/R,IAAA,CAAA+R,EAAAtO,KAAAC,EAAAA,EAAAA,GAAAqO,EAAA/R,GAAAyD,IAAA,CAAA5E,EAAA,cAAAkT,IAAA5O,EAAAA,GAAAA,GAAA4O,EAAA7R,IAAA,CAAA6R,EAAAtO,KAAAC,EAAAA,EAAAA,GAAAqO,EAAA7R,GAAAuD,IAAA,CAAA3E,EAAA,uBAAAiT,IAAA5O,EAAAA,GAAAA,GAAA4O,EAAA1R,IAAA,CAAA0R,EAAAtO,KAAAC,EAAAA,EAAAA,GAAAqO,EAAA1R,GAAAoD,KAAA,CAAAnG,GAAA,GAAA0U,GAAAxR,GAAAyR,KAAAC,EAAAA,EAAAA,GAAAF,OAAAH,G,8FC5OgCM,EAAA,IAAAnT,QAAAoT,EAAA,IAAApT,QAAAqT,EAAA,IAAArT,QAmFjC,QAxEA,MAKE2B,eAAcE,EAAAA,EAAAA,GAAA,KAAAsR,EAAA,CAAA7Q,UAAA,EAAAC,WAAA,KAAAV,EAAAA,EAAAA,GAAA,KAAAuR,EAAA,CAAA9Q,UAAA,EAAAC,WAAA,KAAAV,EAAAA,EAAAA,GAAA,KAAAwR,EAAA,CAAA/Q,UAAA,EAAAC,WAAA,KAAA+Q,EAAAA,EAAAA,GAAA,kBA8DK,KACjBnP,EAAAA,EAAAA,GAAOL,KAAIqP,MA9DXzO,EAAAA,EAAAA,GAAAZ,KAAIqP,EAAiB,KACrBzO,EAAAA,EAAAA,GAAAZ,KAAIsP,EAAmB,IACvB1O,EAAAA,EAAAA,GAAAZ,KAAIuP,EAAmB,GACzB,CAEQE,YAAYrV,EAAyBsV,GAC3C,GAAc,UAAVtV,EAAmB,CACrB,IAAM,KAAEoN,EAAI,SAAE6F,EAAQ,UAAEsC,EAAS,OAAEzJ,GAAWwJ,EACxCE,EAAUF,EAAMG,MAAMC,UAAUH,EAAWtC,GACjD,GAAIuC,EAAQG,UAAW1P,EAAAA,EAAAA,GAAAL,KAAIuP,GAAiBQ,OAAQ,QACpDnP,EAAAA,EAAAA,GAAAZ,KAAIuP,EAAmBK,GACvB,IAAI9J,EAAkB0B,EAAO,EACzBzB,EAAgByB,EAAO,EACvBxB,EAAcqH,EAAWsC,EAAYzJ,EAAOuB,OAC5CE,EAAY0F,EAAWsC,EAAYD,EAAMM,WAC7C,GACoB,iBAAX9J,GACP,gBAAgBmB,KAAKnB,IACrB,WAAWmB,KAAKnB,GAChB,KAAA+J,EACI7J,EAASF,EACPgK,EAAgC,QAAtBD,EAAG/J,EAAOiK,MAAM,cAAM,IAAAF,OAAA,EAAnBA,EAAqBxI,OACxC,GAAIyI,EAAY,CAEd,IADA,IAAIE,GAAa/P,EAAAA,EAAAA,GAAGL,KAAIsP,GACfe,GAAChQ,EAAAA,EAAAA,GAAGL,KAAIsP,GAAkBe,EAAIX,EAAMG,MAAMpI,OAAQ4I,IACzD,GAAuB,OAAnBX,EAAMG,MAAMQ,GAAa,CAC3BD,EAAgBC,EAAI,EACpB,KACF,CAEF,IAAMC,EAAqB,WAAWjJ,KACpCqI,EAAMG,MAAMC,WAASzP,EAAAA,EAAAA,GAACL,KAAIsP,GAAkBjC,EAAW,IAEzDjH,EAASsJ,EAAMG,MAAMC,UAAUM,EAAe/C,EAAW,GACzDvH,EACE4J,EAAMlI,KAAO0I,EAAa,EAAI5U,OAAOgV,GACvCvK,EAAgByB,EAChBxB,EAAc,EACd2B,EAAY,CACd,CACA,IAAMJ,EAAQ,CACZnB,SACAN,kBACAC,gBACAC,cACA2B,YACAI,SAAU,CAAC,IAAK,KAAKrB,SACnBgJ,EAAMG,MAAMF,EAAY3J,EAAc,OAGzC3F,EAAAA,EAAAA,GAAAL,KAAIqP,GAAe7G,MAAM3C,IAASrB,EAAAA,EAAAA,SAAQqB,EAAM0B,OAC/ClH,EAAAA,EAAAA,GAAAL,KAAIqP,GAAe1I,KAAKY,EAC5B,EACA3G,EAAAA,EAAAA,GAAAZ,KAAIsP,EAAmBjC,EACzB,CACF,CAEO7H,SACL,OAAOxF,KAAKyP,YAAYc,KAAKvQ,KAC/B,E,6FCxEIwQ,EAAWA,CACflL,EACA2C,EACAT,KAOA,IALA,IAAMiJ,EAAyB,GACzBC,EAAoB,GACtBC,EAAY,GACZN,EAAI7I,EACJxB,EAAciC,EAAMjC,YACjBqK,EAAI,GAAG,CACZ,IAMMO,EANiBtL,EAAMiI,gBAAgB,CAC3CzH,gBAAiBuK,EACjBtK,cAAesK,EACfrK,YAAa,EACb2B,UAAWvE,MAEoB+M,MAAM,wBACvC,GAAIS,EAAW,CACb,IAAO1B,EAAG2B,EAAWC,GAAOF,EACxBC,EAAUpJ,SAAWQ,EAAMjC,YAAc,GAC3CyK,EAAaM,QAAQD,GAEnBD,EAAUpJ,OAASzB,EAAc,KAClC2K,IAAcA,EAAYG,GAC3B9K,EAAc6K,EAAUpJ,OACxBiJ,EAAQK,QAAQD,GAEpB,CACAT,GACF,CACA,MAAO,CACLI,eACAC,UACAC,YACD,EA4EU/L,EAAsCA,CACjDxD,EACAC,IAKO,CACLiE,EACA+H,EACA2D,EACAC,KAEA,IAAMzQ,EAAO8E,EAAM4L,qBAAqB7D,IAChC7M,KAAM2Q,EAAY5J,MAAO6J,GAvFfC,EACpB/L,EACA+H,KAIG,IAAAiE,EACG9Q,EAAO8E,EAAM4L,qBAAqB7D,GAClC+D,EAAc9L,EAAMiI,gBAAgB,CACxCzH,gBAAiBuH,EAASkE,WAC1BxL,cAAesH,EAASkE,WACxBvL,YAAaqH,EAAS3F,OAASlH,EAAKA,KAAKiH,OAAS,EAClDE,UAAW0F,EAAS3F,OAASlH,EAAKA,KAAKiH,SAEnC0J,EAAa7L,EAAMkM,mBAAiB9I,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EACvC2E,GAAQ,IACX3F,OAAQ2F,EAAS3F,QAASlH,SAAU,QAAN8Q,EAAJ9Q,EAAMA,YAAI,IAAA8Q,OAAA,EAAVA,EAAY7J,QAAS,KAEjD,MAAO,CACLjH,KAAM2Q,aAAU,EAAVA,EAAY3Q,KAClB+G,MAAO6J,EACR,EAkEkDC,CAC/C/L,EACA+H,GAEIoE,EAAcnM,EAAMiI,gBAAgB,CACxCzH,gBAAiBuH,EAASkE,WAC1BxL,cAAesH,EAASkE,WACxBvL,YAAa,EACb2B,UAAWvE,MAEP6E,EAAQ,CACZnC,gBAAiBuH,EAASkE,WAC1BxL,cAAesH,EAASkE,WACxBvL,YAAaxF,EAAKwF,YAClB2B,UAAWnH,EAAKmH,WAGZ+J,EAA4C,IAArBlR,EAAKwF,aAC5B,aAAEyK,GAAiBD,EAASlL,EAAO9E,EAAM8E,EAAMqM,gBAErD,GAAiC,MAA7BX,EAAQY,iBAOV,MAAwB,MANPtM,EAAMiI,gBAAgB,CACrCzH,gBAAiBuH,EAASkE,WAC1BxL,cAAesH,EAASkE,WACxBvL,YAAaqH,EAAS3F,OAAS,EAC/BC,UAAW0F,EAAS3F,OAAS,IAElBqI,OACJ,CACL8B,YAAa,IAGV,CACLA,YAAa,CACX,CACEhR,MAAO,QACPiR,OAAQ,eACRC,KAAMlY,EAAAA,UAAiBmY,mBAAmBC,MAC1CC,WAAY,YACZC,gBACEtY,EAAAA,UAAiBuY,6BAA6BC,gBAChDpK,MAAOA,GAET,CACEpH,MAAO,SACPiR,OAAQ,qBACRC,KAAMlY,EAAAA,UAAiBmY,mBAAmBC,MAC1CC,WAAY,aACZC,gBACEtY,EAAAA,UAAiBuY,6BAA6BC,gBAChDpK,MAAOA,KAMf,GAAIyJ,EACF,MAAO,CACLG,aAAczQ,QAAAA,EAAc,IACzB4G,QAAQnC,IAAU4K,EAAa/J,SAASb,EAAKhF,SAC7CsE,KAAKU,IAAI6C,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACL7C,GAAI,IACPhF,MAAOgF,EAAKhF,MACZqR,WAAYrM,EAAKqM,YAAerM,EAAKhF,MACrCkR,KAAMlY,EAAAA,UAAiBmY,mBAAmBM,QAC1CrK,aAKR,GAC+B,MAA7B+I,EAAQY,kBACsB,MAA7BZ,EAAQY,kBACPT,IACC,CAAC,MAAO,QAAS,MAAMzK,SAASyK,GACnC,CACiE,IAAAtO,EAAA0P,EAAjE,GAAmB,WAAfpB,GAAwD,MAA7BH,EAAQY,iBAKrC,MAAO,CACLC,YAAoD,QAAzChP,EAAW,QAAX0P,GALGvU,EAAAA,EAAAA,KACdwU,EACA,sEAGsB,IAAAD,EAAAA,EAA4B,UAAE,IAAA1P,OAAA,EAAvCA,EAA0CsC,KACpDU,IAAI,CACHhF,MAAO,IAAF4R,OAAM5M,GACXiM,OAAQ,eACRC,KAAMlY,EAAAA,UAAiBmY,mBAAmBM,QAC1CJ,WAAY,IAAFO,OAAM5M,GAChBoC,aAKR,IAEIyK,EAWFC,EAbIC,EAAkBvR,aAAkB,EAAlBA,EAAqB8P,GACzC0B,EAAwB,GAQ5B,GANID,IAAoBE,MAAMC,QAAQH,IACpCF,EAAOE,EAAgBxR,WACvByR,EAAwBD,EAAgBhB,kBAExCc,EAAOE,EAGPC,EACI7B,EAAQY,mBAAqBiB,GAAyBH,EACtDA,EAEJ,MAAO,CACLb,aAAkB,QAALc,EAACD,SAAI,IAAAC,EAAAA,EAAI,IAAIxN,KAAKU,IAC7B,IAAMhF,EACsB,MAA1BgS,EAA6B,IAAAJ,OACrB5M,EAAKhF,OACRgF,EAAKhF,MACZ,OAAA6H,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACK7C,GAAI,IACPhF,MAAOA,EACPkR,KAAMlY,EAAAA,UAAiBmY,mBAAmBC,MAC1CC,WAAYrM,EAAKqM,YAAcrR,EAC/BoH,SAAK,IAKf,CAEA,GA5L4B+K,EAC9B1N,EACA+H,KAEA,IAAM7M,EAAO8E,EAAM4L,qBAAqB7D,GAClC4F,EAAyB3N,EAAM4N,kBACnC,KACA7F,GACA,GACA,EACA,MACA,GAEI8F,EAAyB7N,EAAM8N,cACnC,KACA/F,GACA,GACA,EACA,MACA,GAQF,IALE4F,aAAsB,EAAtBA,EAAwBhL,MAAMnC,mBAC9BqN,aAAsB,EAAtBA,EAAwBlL,MAAMnC,kBAC9BmN,EAAuBhL,MAAMnC,iBAAmBuH,EAASkE,YACzD4B,EAAuBlL,MAAMlC,eAAiBsH,EAASkE,WAEnC,CACpB,IAAQZ,UAAW0C,GAAoB7C,EACrClL,EACA2N,EAAuBhL,MACvBgL,aAAsB,EAAtBA,EAAwBhL,MAAMnC,kBAExB6K,UAAW2C,GAAoB9C,EACrClL,EACA6N,EAAuBlL,MACvBkL,aAAsB,EAAtBA,EAAwBlL,MAAMnC,kBAE1B,QAAE4K,GAAYF,EAASlL,EAAO9E,EAAM6M,EAASkE,YACnD,GACE8B,IAAoBC,GACpB5C,EAAQhK,SAAS2M,GAEjB,OAAO,CAEX,CACA,OAAO,CAAK,EA8INL,CAAiB1N,EAAO+H,GAAW,CAKnC,IAAAkG,EAAAC,EAiBAC,EAAAC,EArBF,GACEvC,GACA,CAAC,MAAO,SAASzK,SAASyK,IAC1B9P,EAEA,MAAO,CACLwQ,aAAwD,QAA3C0B,EAA+B,QAA/BC,EAACnS,EAAmB8P,UAAW,IAAAqC,OAAA,EAA9BA,EAAgCpS,kBAAU,IAAAmS,EAAAA,EAAI,IAAIpO,KAC7DU,IAAI,CACHhF,MAAOgF,EAAKhF,MACZqR,WAAYrM,EAAKhF,MACjBkR,KAAMlY,EAAAA,UAAiBmY,mBAAmBC,MAC1ChK,aAMR,GACiB,OAAfkJ,GAC6B,MAA7BH,EAAQY,kBACRvQ,EAEA,MAAO,CACLwQ,aAAkD,QAArC4B,EAAyB,QAAzBC,EAACrS,EAAuB,UAAC,IAAAqS,OAAA,EAAxBA,EAA0BtS,kBAAU,IAAAqS,EAAAA,EAAI,IAAItO,KACvDU,IAAI,CACHhF,MAAOgF,EAAKhF,MACZqR,WAAYrM,EAAKhF,MACjBkR,KAAMlY,EAAAA,UAAiBmY,mBAAmBC,MAC1ChK,aAMR,GAAmB,QAAfkJ,GAAqD,MAA7BH,EAAQY,iBAA0B,CAC5D,IAAM+B,GAAgB3V,EAAAA,EAAAA,KACpBwU,EACA,mCAEIX,EAAc,GACpB,IAAK,IAAO+B,EAAGjT,KAAMkT,OAAOlK,QAC1BgK,GASA9B,EAAYlL,KAAK,CACf9F,MAAO+S,EACP7B,KAAMlY,EAAAA,UAAiBmY,mBAAmBC,MAC1C6B,cAAenT,EAAEoT,YACjBjC,OAAQnR,EAAEqT,KAAOrT,EAAEqT,KAAKC,KAAK,KAAOtT,EAAE1F,KACtCiX,WAAY0B,EACZ3L,UAGJ,MAAO,CACL4J,cAEJ,CAEA,MAAI,CAAC,IAAK,KAAKnL,SAAS0K,GACf,CACLS,YAAa,IAIV,CACLA,YAAapL,EAAAA,GAAiBtB,KAAKU,IAAI,CACrChF,MAAOgF,EACPqM,WAAYrM,EACZkM,KAAMlY,EAAAA,UAAiBmY,mBAAmBM,QAC1CrK,YAGN,CAEA,MAAI,cAAcZ,KAAKoK,GACd,CACLI,YAAaqC,EAAAA,GACV/O,KAAKU,IAAI,CACRhF,MAAOgF,EACPqM,WAAYrM,EACZkM,KAAMlY,EAAAA,UAAiBmY,mBAAmBM,QAC1CrK,YAEDD,QAAQnC,IAAU4K,EAAa/J,SAASb,EAAKhF,UAI7C,CACLgR,YAAa,GACd,C,sDC/VE,IAAMpL,EAAmB,CAC9B,MACA,QACA,OACA,QACA,QACA,MACA,SACA,OACA,iBACA,OACA,gBACA,QACA,OACA,SACA,OACA,aACA,QACA,cACA,kBACA,MACA,MACA,WACA,MACA,KACA,OACA,YACA,cACA,SAGWyN,EAAoB,CAC/B,SACA,YACA,aACA,SACA,SACA,WACA,UACA,QACA,SACA,cACA,cACA,WACA,OACA,KACA,QAGWtL,EAAQ,CACnBuL,IAAK,EACLC,KAAM,EACNnL,KAAM,EACNoL,MAAO,E,sEClDLC,E,MAA0B,GAA4B,KAE1DA,EAAwB3N,KAAK,CAAC4N,EAAOC,GAAI,oIAAqI,KAE9K,S,yJCIItM,EAAU,CAAC,EAEfA,EAAQuM,kBAAoB,IAC5BvM,EAAQwM,cAAgB,IAElBxM,EAAQyM,OAAS,SAAc,KAAM,QAE3CzM,EAAQ0M,OAAS,IACjB1M,EAAQ2M,mBAAqB,IAEhB,IAAI,IAAS3M,GAKJ,KAAW,IAAQ4M,QAAS,IAAQA,M,wHCrBpD,OAAEC,EAAM,SAAE5a,IAAaE,EAAAA,EAAAA,oBAAmBG,EAyC7CL,EAAS,CACRU,WAAW,IACXH,EAKDP,EAAS,CACRU,WAAW,IACXF,EAKDoa,IAAQna,EAKRma,IAAQ,IAAA9Y,EAAA,IAAAC,QAAA8Y,EAAA,IAAA9Y,QAAAC,EAAA,IAAAD,QAAA+Y,EAAA,IAAA/Y,QAAAE,EAAA,IAAAF,QAAAgZ,EAAA,IAAAhZ,QAAAG,EAAA,IAAAH,QAAAI,EAAA,IAAAJ,QA1DJ,MAAe0B,UAA4BuX,EAAAA,iBAAiBtX,cAAA,SAAAC,YAAAC,EAAAA,EAAAA,GAAA,KAAAmX,EAAA,CAAAlX,IAAAoX,EAAAlX,IAAAmX,KAAAtX,EAAAA,EAAAA,GAAA,KAAAkX,EAAA,CAAAjX,IAAAsX,EAAApX,IAAAqX,KAAAxX,EAAAA,EAAAA,GAAA,KAAAiX,EAAA,CAAAhX,IAAAwX,EAAAtX,IAAAuX,KAAA1X,EAAAA,EAAAA,GAAA,KAAA9B,EAAA,CAAAuC,UAAA,EAAAC,OAC1C,KAAKV,EAAAA,EAAAA,GAAA,KAAA5B,EAAA,CAAAqC,UAAA,EAAAC,MACP,YAAQV,EAAAA,EAAAA,GAAA,KAAA3B,EAAA,CAAAoC,UAAA,EAAAC,OACJ,KAAKV,EAAAA,EAAAA,GAAA,KAAA1B,EAAA,CAAAmC,UAAA,EAAAC,OAAAC,EAAA,MAAAgX,EAAA,UAAA3X,EAAAA,EAAAA,GAAA,KAAAzB,EAAA,CAAAkC,UAAA,EAAAC,MAAAkX,EAAA,QAE1BC,wBACF,OAAO,CACT,CAEIvT,kBAAc5D,IAChBmC,EAAAA,EAAAA,GAAAZ,KAAIiV,EAAaxW,GACjBuB,KAAK6V,SACP,CACIxT,oBACF,OAAAhC,EAAAA,EAAAA,GAAOL,KAAIiV,EACb,CAOIa,cAAUrX,GACZuB,KAAK+V,OAAStX,GACdmC,EAAAA,EAAAA,GAAAZ,KAAIgV,EAAevW,GACnBuB,KAAK6V,SACP,CACIC,gBACF,OAAAzV,EAAAA,EAAAA,GAAOL,KAAIgV,EACb,CAEIgB,oBACF,OAAA3V,EAAAA,EAAAA,GAAOL,KAAIkV,EACb,CACIc,kBAAcvX,IAChBmC,EAAAA,EAAAA,GAAAZ,KAAIkV,EAAiBzW,GACrBuB,KAAK6V,SACP,CAKSI,gBAAS,OAAA5V,EAAAA,EAAAA,GAAA,KAAAhE,EAAA,CAAT4Z,cAAStV,IAAAC,EAAAA,EAAAA,GAAA,KAAAvE,EAAAsE,EAAA,CAOTuV,iBAAU,OAAA7V,EAAAA,EAAAA,GAAA,KAAA/D,EAAA,CAAV4Z,eAAUvV,IAAAC,EAAAA,EAAAA,GAAA,KAAAtE,EAAAqE,EAAA,CAKnBwV,aAAa1X,GACXuB,KAAK8V,UAAYrX,CACnB,CAGAwB,iBAGE,IADA,IAAIoK,EAA+BrK,MAC3BqK,EAAUA,EAAQ+L,aACnB/L,IAAWA,EAAQgM,gBAI1B,OAAOhM,CACT,EACD,SAAAmL,IAAA,OAAAnV,EAAAA,EAAAA,GAAA,KAAApE,EAAA,UAAAwZ,EAAA9U,IAAAC,EAAAA,EAAAA,GAAA,KAAA3E,EAAA0E,EAAA,UAAA2U,IAAA,OAAAjV,EAAAA,EAAAA,GAAA,KAAAlE,EAAA,UAAAoZ,EAAA5U,IAAAC,EAAAA,EAAAA,GAAA,KAAAzE,EAAAwE,EAAA,UAAAyU,IAAA,OAAA/U,EAAAA,EAAAA,GAAA,KAAAjE,EAAA,UAAAiZ,EAAA1U,IAAAC,EAAAA,EAAAA,GAAA,KAAAxE,EAAAuE,EAAA,EAAA+U,EAAAC,EAAAjX,IAAAsQ,EAAAA,EAAAA,GArEqBpR,EAAmB,EAAApD,EAAA,gBAAAE,EAAA,iBAAAC,EAAA,mBAAAC,EAAA,yBAAAuO,C","sources":["webpack:///./src/code-editor/constants.ts","webpack:///./src/code-editor/index.tsx","webpack:///./src/code-editor/utils/brickNextSourceMap.ts","webpack:///./src/code-editor/utils/brickNextYaml.ts","webpack:///./src/code-editor/utils/constants.ts","webpack:///./src/code-editor/index.css","webpack:///./src/code-editor/index.css?aefa","webpack:///../../src/FormItemElement.tsx"],"sourcesContent":["export const EDITOR_FONT_SIZE = 12;\nexport const EDITOR_LINE_HEIGHT = 18;\nexport const EDITOR_SCROLLBAR_SIZE = 12;\nexport const EDITOR_PADDING_VERTICAL = 12;\n","import React, {\n useCallback,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n} from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { useCurrentTheme } from \"@next-core/react-runtime\";\nimport { FormItemElementBase } from \"@next-shared/form\";\nimport type { FormItem, FormItemProps } from \"@next-bricks/form/form-item\";\nimport * as monaco from \"monaco-editor/esm/vs/editor/editor.api.js\";\nimport { register as registerJavaScript } from \"@next-core/monaco-contributions/javascript\";\nimport { register as registerTypeScript } from \"@next-core/monaco-contributions/typescript\";\nimport { register as registerYaml } from \"@next-core/monaco-contributions/yaml\";\nimport { register as registerHtml } from \"@next-core/monaco-contributions/html\";\nimport yaml from \"js-yaml\";\nimport BrickNextYamlSourceMap, { Token } from \"./utils/brickNextSourceMap.js\";\nimport \"@next-core/theme\";\nimport { isEqual } from \"lodash\";\nimport {\n EDITOR_SCROLLBAR_SIZE,\n EDITOR_PADDING_VERTICAL,\n EDITOR_LINE_HEIGHT,\n EDITOR_FONT_SIZE,\n} from \"./constants.js\";\nimport { brickNextYAMLProvideCompletionItems } from \"./utils/brickNextYaml.js\";\nimport \"./index.css\";\nimport { EVALUATE_KEYWORD, Level } from \"./utils/constants.js\";\nimport type { MemberExpression, Identifier } from \"@babel/types\";\nimport { preevaluate } from \"@next-core/cook\";\n\nregisterJavaScript(monaco);\nregisterTypeScript(monaco);\nregisterYaml(monaco, \"brick_next_yaml\");\nregisterHtml(monaco);\n\nconst { defineElement, property, event } = createDecorators();\n\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\nexport interface CodeEditorProps {\n name?: string;\n label?: string;\n value?: string;\n language?: string;\n theme?: string;\n required?: boolean;\n readOnly?: boolean;\n automaticLayout?: \"fit-container\" | \"fit-content\" | \"none\";\n minLines?: number;\n maxLines?: number;\n height?: string | number;\n completers?: monaco.languages.CompletionItem[];\n advancedCompleters?: Record<\n string,\n { triggerCharacter: string; completers: monaco.languages.CompletionItem[] }\n >;\n markers?: Marker[];\n links?: string[];\n validateState?: string;\n}\n\nexport interface Marker {\n token: string;\n level: keyof typeof Level;\n message: string;\n code?: {\n value: string;\n target: string;\n };\n params?: string[];\n}\n\n/**\n * 构件 code-editor\n */\nexport\n@defineElement(\"vs.code-editor\", {\n // There are a few issues for monaco-editor with shadow DOM.\n // So we use light DOM for now.\n // See https://github.com/microsoft/monaco-editor/issues?q=is%3Aissue+is%3Aopen+shadow+dom\n shadowOptions: false,\n})\nclass CodeEditor extends FormItemElementBase implements CodeEditorProps {\n @property()\n accessor name: string | undefined;\n\n @property()\n accessor label: string | undefined;\n\n @property({ attribute: false })\n accessor value: string | undefined;\n\n /**\n * @default \"plaintext\"\n */\n @property()\n accessor language: string | undefined;\n\n /**\n * 主题,支持 `\"auto\" | \"vs\" | \"vs-dark\"`\n *\n * @default \"auto\"\n * @group ui\n */\n @property() accessor theme: string | undefined;\n\n @property({\n type: Boolean,\n })\n accessor required: boolean | undefined;\n\n @property({\n type: Boolean,\n })\n accessor readOnly: boolean | undefined;\n\n @property()\n accessor automaticLayout:\n | \"fit-container\"\n | \"fit-content\"\n | \"none\"\n | undefined;\n\n /**\n * @default 3\n */\n @property({ type: Number })\n accessor minLines: number | undefined;\n\n @property({\n attribute: false,\n })\n accessor completers: monaco.languages.CompletionItem[] | undefined;\n\n @property({\n attribute: false,\n })\n accessor advancedCompleters:\n | Record<\n string,\n {\n triggerCharacter: string;\n completers: monaco.languages.CompletionItem[];\n }\n >\n | undefined;\n\n @property({ attribute: false })\n accessor markers: Marker[] | undefined;\n\n @property({ attribute: false })\n accessor links: string[] | undefined;\n\n /**\n * @default Infinity\n */\n @property({ type: Number })\n accessor maxLines: number | undefined;\n\n @property({ attribute: false })\n accessor height: string | number | undefined;\n\n @property()\n accessor message: string | undefined;\n\n @event({ type: \"code.change\" })\n accessor #codeChange!: EventEmitter<string>;\n\n @event({ type: \"user.input\" })\n accessor #userInput!: EventEmitter<string>;\n\n #handleChange = (value: string, parseValue: any, isFlush: boolean) => {\n this.getFormElement()?.formStore.onChange(this.name!, value);\n this.#codeChange.emit(parseValue);\n if (!isFlush) {\n this.#userInput.emit(parseValue);\n }\n };\n\n @event({ type: \"token.click\" })\n accessor #highlighClickEvent!: EventEmitter<string>;\n\n #handleHighlightClick = (word: string) => {\n this.#highlighClickEvent.emit(word);\n };\n\n #handleValidtor = (value: string) => {\n try {\n yaml.load(value);\n } catch {\n return \"请填写正确的格式\";\n }\n return \"\";\n };\n\n connectedCallback(): void {\n // Don't override user's style settings.\n // istanbul ignore else\n if (!this.style.display) {\n this.style.display = \"block\";\n }\n super.connectedCallback();\n }\n\n render() {\n return (\n <WrappedFormItem\n curElement={this}\n formElement={this.getFormElement()}\n name={this.name}\n label={this.label}\n required={this.required}\n validator={this.#handleValidtor}\n >\n <CodeEditorComponent\n value={this.value}\n language={this.language}\n readOnly={this.readOnly}\n theme={this.theme}\n automaticLayout={this.automaticLayout}\n minLines={this.minLines}\n maxLines={this.maxLines}\n height={this.height}\n completers={this.completers}\n advancedCompleters={this.advancedCompleters}\n markers={this.markers}\n links={this.links}\n validateState={this.validateState}\n onChange={this.#handleChange}\n onHighlightClick={this.#handleHighlightClick}\n />\n </WrappedFormItem>\n );\n }\n}\n\nexport function CodeEditorComponent({\n value: _value,\n language: _language,\n theme: _theme,\n minLines: _minLines,\n maxLines: _maxLines,\n height: _height,\n automaticLayout,\n completers,\n advancedCompleters,\n markers,\n readOnly,\n links,\n validateState,\n onChange,\n onHighlightClick,\n}: CodeEditorProps & {\n onChange(value: string, parseValue: any, isFlush: boolean): void;\n onHighlightClick(word: string): void;\n}) {\n const value = _value ?? \"\";\n const language = _language ?? \"plaintext\";\n const theme = _theme ?? \"auto\";\n const minLines = _minLines ?? 3;\n const maxLines = _maxLines ?? Infinity;\n const height = _height ?? 500;\n\n const containerRef = useRef<HTMLDivElement>(null);\n const decorationsCollection =\n useRef<monaco.editor.IEditorDecorationsCollection>();\n const editorRef = useRef<monaco.editor.IStandaloneCodeEditor>();\n const size = useRef<monaco.editor.IDimension>({\n width: 300,\n height: getContentHeightByCode(value, minLines, maxLines),\n });\n const [actualHeight, setActualHeight] = useState<string | number>();\n // `automaticLayout` should never change\n const automaticLayoutRef = useRef(automaticLayout);\n const systemTheme = useCurrentTheme();\n\n useEffect(() => {\n // Currently theme is configured globally.\n // See https://github.com/microsoft/monaco-editor/issues/338\n monaco.editor.setTheme(\n theme === \"auto\"\n ? systemTheme === \"dark\" || systemTheme === \"dark-v2\"\n ? \"vs-dark\"\n : \"vs\"\n : theme\n );\n }, [systemTheme, theme]);\n\n useEffect(() => {\n if (editorRef.current) {\n const currentModel = editorRef.current.getModel()!;\n monaco.editor.setModelLanguage(currentModel, language);\n if (!isEqual(currentModel.getValue(), value)) {\n currentModel.setValue(value);\n }\n }\n }, [value, language]);\n\n useEffect(() => {\n if (language === \"brick_next_yaml\") {\n const provideCompletionItems = brickNextYAMLProvideCompletionItems(\n completers,\n advancedCompleters\n );\n const monacoProviderRef = monaco.languages.registerCompletionItemProvider(\n \"brick_next_yaml\",\n {\n provideCompletionItems,\n triggerCharacters: [\".\", \":\", \"<\"],\n }\n );\n return () => {\n monacoProviderRef.dispose();\n };\n }\n }, [completers, advancedCompleters, language]);\n\n const parseYaml = useCallback(() => {\n const map = new BrickNextYamlSourceMap();\n let parseValue = undefined;\n if (editorRef.current) {\n const model = editorRef.current.getModel()!;\n\n try {\n parseValue = yaml.load(value, {\n listener: map.listen(),\n });\n\n if ((links || markers) && editorRef.current) {\n const tokens: Omit<\n Token & { token: string; property: string },\n \"source\"\n >[] = [];\n map.getTokens().forEach((item) => {\n const { startLineNumber, endLineNumber, startColumn } = item;\n const globalNodes: MemberExpression[] = [];\n const result = preevaluate(item.source, {\n hooks: {\n beforeVisit(node) {\n if (\n node.type === \"MemberExpression\" &&\n node.object.type === \"Identifier\" &&\n EVALUATE_KEYWORD.includes(node.object.name) &&\n node.property.type === \"Identifier\"\n ) {\n globalNodes.push(node);\n }\n },\n },\n });\n\n globalNodes.forEach((node) => {\n const { start, end, loc } = node;\n if (item.startLineNumber !== item.endLineNumber) {\n const hadWrap = /<%[ ]+/.test(result.prefix);\n tokens.push({\n token: (node.object as Identifier)?.name,\n property: (node.property as Identifier).name,\n startLineNumber:\n item.startLineNumber +\n (loc?.start?.line as number) -\n Number(hadWrap),\n endLineNumber:\n item.startLineNumber +\n (loc?.end?.line as number) -\n Number(hadWrap),\n startColumn:\n (hadWrap && loc?.start.line === 1\n ? result.prefix.length\n : 0) +\n (loc?.start?.column as number) +\n 1,\n endColumn:\n (hadWrap && loc?.start.line === 1\n ? result.prefix.length\n : 0) +\n (loc?.end?.column as number) +\n 1,\n });\n } else {\n tokens.push({\n token: (node.object as Identifier)?.name,\n property: (node.property as Identifier).name,\n startLineNumber,\n endLineNumber,\n startColumn:\n startColumn +\n (start as number) +\n result.prefix?.length +\n Number(!item.isString),\n endColumn:\n startColumn +\n (end as number) +\n result.prefix?.length +\n Number(!item.isString),\n });\n }\n });\n });\n\n decorationsCollection.current?.set(\n tokens\n .filter((token) => links?.includes(token.token))\n .map((token) => ({\n range: new monaco.Range(\n token.startLineNumber,\n token.startColumn,\n token.endLineNumber,\n token.endColumn\n ),\n options: {\n inlineClassName: \"highlight\",\n },\n }))\n );\n\n if (markers) {\n const modelMarkers = tokens\n .map((token) => {\n const matchTokenConf = markers.find(\n (item) => item.token === token.token\n );\n const hadProperty = matchTokenConf?.params\n ? matchTokenConf.params?.includes(token.property)\n : true;\n if (!hadProperty) {\n return {\n severity: Level.warn,\n message: \"Miss Property\",\n startLineNumber: token.startLineNumber,\n endLineNumber: token.endLineNumber,\n startColumn: token.startColumn,\n endColumn: token.endColumn,\n };\n }\n if (matchTokenConf && matchTokenConf.message) {\n return {\n severity: Level[matchTokenConf?.level ?? \"warn\"],\n message: matchTokenConf.message,\n ...(matchTokenConf.code\n ? {\n code: {\n value: matchTokenConf.code.value,\n target: monaco.Uri.parse(\n matchTokenConf.code.target\n ),\n },\n }\n : {}),\n startLineNumber: token.startLineNumber,\n endLineNumber: token.endLineNumber,\n startColumn: token.startColumn,\n endColumn: token.endColumn,\n };\n }\n })\n .filter(Boolean) as monaco.editor.IMarkerData[];\n\n monaco.editor.setModelMarkers(\n model,\n \"brick_next_yaml\",\n modelMarkers\n );\n }\n }\n } catch (e) {\n monaco.editor.setModelMarkers(model, \"brick_next_yaml\", []);\n decorationsCollection?.current?.set([]);\n }\n }\n return parseValue;\n }, [value, links, markers]);\n\n useLayoutEffect(() => {\n if (automaticLayoutRef.current !== \"fit-content\" || !containerRef.current) {\n return;\n }\n\n size.current.width = containerRef.current.getBoundingClientRect().width;\n editorRef.current?.layout(size.current);\n\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === containerRef.current) {\n const newWidth = entry.contentBoxSize\n ? entry.contentBoxSize[0].inlineSize\n : entry.contentRect.width;\n if (newWidth !== size.current.width) {\n size.current.width = newWidth;\n editorRef.current?.layout(size.current);\n }\n break;\n }\n }\n });\n observer.observe(containerRef.current);\n\n return () => {\n observer.disconnect();\n };\n }, []);\n\n useLayoutEffect(() => {\n if (automaticLayoutRef.current !== \"fit-container\") {\n return;\n }\n\n const container = getDOMContainer(containerRef.current);\n if (!container) {\n return;\n }\n // Manually layout the editor once the container resized.\n const observer = new ResizeObserver((): void => {\n setActualHeight(container.offsetHeight);\n });\n observer.observe(container);\n return () => {\n observer.disconnect();\n };\n }, []);\n\n useEffect(() => {\n if (\n automaticLayoutRef.current !== \"fit-container\" &&\n automaticLayoutRef.current !== \"fit-content\"\n ) {\n setActualHeight(height);\n }\n }, [height]);\n\n useEffect(() => {\n if (!editorRef.current) return;\n editorRef.current.updateOptions({\n readOnly,\n });\n }, [readOnly]);\n\n useEffect(() => {\n if (editorRef.current || !containerRef.current) {\n return;\n }\n const model = monaco.editor.createModel(value, language);\n editorRef.current = monaco.editor.create(containerRef.current, {\n model,\n minimap: {\n enabled: false,\n },\n scrollBeyondLastLine: false,\n tabSize: 2,\n insertSpaces: true,\n automaticLayout: automaticLayoutRef.current !== \"fit-content\",\n fontSize: EDITOR_FONT_SIZE,\n lineHeight: EDITOR_LINE_HEIGHT,\n scrollbar: {\n horizontalScrollbarSize: EDITOR_SCROLLBAR_SIZE,\n verticalScrollbarSize: EDITOR_SCROLLBAR_SIZE,\n horizontalSliderSize: 8,\n verticalSliderSize: 8,\n alwaysConsumeMouseWheel: false,\n },\n padding: {\n top: EDITOR_PADDING_VERTICAL,\n // When use `fit-content`, we always plus the height with the vertical padding.\n // Thus the possible x-scrollbar will not take extra space at the bottom.\n bottom:\n automaticLayoutRef.current == \"fit-content\"\n ? undefined\n : EDITOR_PADDING_VERTICAL,\n },\n overviewRulerBorder: false,\n mouseWheelScrollSensitivity: 0.5,\n suggest: {\n insertMode: \"insert\",\n preview: true,\n },\n readOnly: readOnly,\n quickSuggestions: { strings: true, other: true, comments: true },\n });\n\n decorationsCollection.current =\n editorRef.current.createDecorationsCollection();\n }, [value, language, readOnly]);\n\n useEffect(() => {\n const editor = editorRef.current;\n if (language === \"brick_next_yaml\" && editor) {\n const model = editor.getModel()!;\n const editorMouseDownEvent = editor.onMouseDown(function (e) {\n const decorations = decorationsCollection.current;\n (decorations?.getRanges?.() ?? []).forEach((range) => {\n const modKey = /Mac|iPod|iPhone|iPad/.test(navigator.platform)\n ? \"metaKey\"\n : \"ctrlKey\";\n if (\n range &&\n e.target.position &&\n e.event[modKey] &&\n range.containsPosition(e.target.position)\n ) {\n onHighlightClick(model.getValueInRange(range));\n }\n });\n });\n\n const mouseOverEvent = editor.onMouseMove(function (e) {\n const decorations = decorationsCollection.current;\n if (!decorations) return;\n decorations.getRanges().forEach((range) => {\n const modKey = /Mac|iPod|iPhone|iPad/.test(navigator.platform)\n ? \"metaKey\"\n : \"ctrlKey\";\n if (\n range &&\n e.target.position &&\n e.event[modKey] &&\n range.containsPosition(e.target.position)\n ) {\n const newDecorations = decorations.getRanges().map((item) => ({\n range: item,\n options: {\n inlineClassName: range.equalsRange(item)\n ? \"highlight pointer\"\n : \"highlight\",\n },\n }));\n decorations.set(newDecorations);\n } else if (!e.event[modKey]) {\n const newDecorations = decorations.getRanges().map((item) => ({\n range: item,\n options: {\n inlineClassName: \"highlight\",\n },\n }));\n decorations.set(newDecorations);\n }\n });\n });\n\n parseYaml();\n\n return () => {\n mouseOverEvent?.dispose();\n editorMouseDownEvent?.dispose();\n };\n }\n }, [language, onHighlightClick, systemTheme, theme, parseYaml]);\n\n useEffect(() => {\n const editor = editorRef.current;\n if (\n !editor ||\n !containerRef.current ||\n automaticLayoutRef.current !== \"fit-content\"\n ) {\n return;\n }\n\n const listener = editor.onDidContentSizeChange((e) => {\n if (e.contentHeightChanged) {\n const newHeight = fixEditorHeightWithScrollBar(\n e.contentHeight,\n minLines,\n maxLines\n );\n if (newHeight !== size.current.height) {\n size.current.height = newHeight;\n editor.layout(size.current);\n }\n }\n });\n\n const newHeight = fixEditorHeightWithScrollBar(\n editor.getContentHeight(),\n minLines,\n maxLines\n );\n if (newHeight !== size.current.height) {\n size.current.height = newHeight;\n editor.layout(size.current);\n }\n\n return () => {\n listener.dispose();\n };\n }, [maxLines, minLines]);\n\n useEffect(() => {\n if (!editorRef.current) {\n return;\n }\n const currentModel = editorRef.current.getModel()!;\n const listener = currentModel.onDidChangeContent((e) => {\n const parseValue = parseYaml();\n onChange(currentModel.getValue(), parseValue, e.isFlush);\n });\n return () => {\n listener.dispose();\n };\n }, [onChange, parseYaml]);\n\n useEffect(() => {\n return () => {\n editorRef.current?.getModel()?.dispose();\n editorRef.current?.dispose();\n };\n }, []);\n\n return (\n <div\n ref={containerRef}\n style={{\n height: actualHeight,\n ...(validateState === \"error\"\n ? {\n outline: \"1px solid var(--antd-error-color)\",\n }\n : {}),\n }}\n />\n );\n}\n\nfunction getContentHeightByCode(\n code: string,\n minLines: number,\n maxLines: number\n): number {\n return getContentHeightByLines(\n Math.min(maxLines, Math.max(minLines, code.split(\"\\n\").length))\n );\n}\n\nfunction fixEditorHeightWithScrollBar(\n contentHeight: number,\n minLines: number,\n maxLines: number\n): number {\n let fixedHeight = contentHeight;\n if ((contentHeight - EDITOR_PADDING_VERTICAL) % EDITOR_LINE_HEIGHT === 0) {\n fixedHeight = contentHeight + EDITOR_SCROLLBAR_SIZE;\n }\n return Math.min(\n getContentHeightByLines(maxLines),\n Math.max(fixedHeight, getContentHeightByLines(minLines))\n );\n}\n\nfunction getContentHeightByLines(lines: number): number {\n return (\n lines * EDITOR_LINE_HEIGHT + EDITOR_SCROLLBAR_SIZE + EDITOR_PADDING_VERTICAL\n );\n}\n\n/** Get the direct DOM container of `vs.code-editor` */\nfunction getDOMContainer(element: HTMLElement | null) {\n let brick = element;\n while (brick) {\n const found = brick.tagName.toLowerCase() === \"vs.code-editor\";\n brick = brick.parentElement;\n if (found) {\n return brick;\n }\n }\n}\n","import type { State } from \"js-yaml\";\nimport { isEqual } from \"lodash\";\n\nexport interface Token {\n startLineNumber: number;\n endLineNumber: number;\n startColumn: number;\n endColumn: number;\n source: string;\n isString?: boolean;\n}\n\nclass BrickNextYamlSourceMap {\n #recordsToken: Token[];\n #prefixPosition: number;\n #recordLastWord: string;\n\n constructor() {\n this.#recordsToken = [];\n this.#prefixPosition = 0;\n this.#recordLastWord = \"\";\n }\n\n private handleState(event: \"open\" | \"close\", state: State): void {\n if (event === \"close\") {\n const { line, position, lineStart, result } = state;\n const curWord = state.input.substring(lineStart, position);\n if (curWord.trim() === this.#recordLastWord.trim()) return;\n this.#recordLastWord = curWord;\n let startLineNumber = line + 1;\n let endLineNumber = line + 1;\n let startColumn = position - lineStart - result.length;\n let endColumn = position - lineStart - state.lineIndent;\n if (\n typeof result === \"string\" &&\n /^\\s*<%[~=]?\\s/.test(result) &&\n /\\s%>\\s*$/.test(result)\n ) {\n let source = result;\n const wrapLength = result.match(/\\n/g)?.length;\n if (wrapLength) {\n let nearWrapIndex = this.#prefixPosition;\n for (let i = this.#prefixPosition; i < state.input.length; i++) {\n if (state.input[i] === \"\\n\") {\n nearWrapIndex = i + 1;\n break;\n }\n }\n const specilStringPrefix = /(\\|-|>-)/.test(\n state.input.substring(this.#prefixPosition, position - 1)\n );\n source = state.input.substring(nearWrapIndex, position - 1);\n startLineNumber =\n state.line - wrapLength + 1 - Number(specilStringPrefix);\n endLineNumber = line;\n startColumn = 0;\n endColumn = 0;\n }\n const token = {\n source,\n startLineNumber,\n endLineNumber,\n startColumn,\n endColumn,\n isString: ['\"', \"'\"].includes(\n state.input[lineStart + startColumn - 2]\n ),\n };\n !this.#recordsToken.find((item) => isEqual(item, token)) &&\n this.#recordsToken.push(token);\n }\n this.#prefixPosition = position;\n }\n }\n\n public listen() {\n return this.handleState.bind(this);\n }\n\n public getTokens = () => {\n return this.#recordsToken;\n };\n}\n\nexport default BrickNextYamlSourceMap;\n","import * as monaco from \"monaco-editor/esm/vs/editor/editor.api.js\";\nimport storyboardJsonSchema from \"@next-core/types/storyboard.json\";\nimport { EVALUATE_KEYWORD, brickNextKeywords, Level } from \"./constants.js\";\nimport { get } from \"lodash\";\n\nconst findKeys = (\n model: monaco.editor.ITextModel,\n range: monaco.Range | monaco.editor.IWordAtPosition,\n line: number\n) => {\n const curLevelKeys: string[] = [];\n const keyList: string[] = [];\n let parentKey = \"\";\n let i = line;\n let startColumn = range.startColumn;\n while (i > 0) {\n const prefixLineWord = model.getValueInRange({\n startLineNumber: i,\n endLineNumber: i,\n startColumn: 0,\n endColumn: Infinity,\n });\n const matchWord = prefixLineWord.match(/^([\\s|-]*)(\\w+)(?=:)/);\n if (matchWord) {\n const [_, wordspace, key] = matchWord;\n if (wordspace.length === range.startColumn - 1) {\n curLevelKeys.unshift(key);\n }\n if (wordspace.length < startColumn - 1) {\n !parentKey && (parentKey = key);\n startColumn = wordspace.length;\n keyList.unshift(key);\n }\n }\n i--;\n }\n return {\n curLevelKeys,\n keyList,\n parentKey,\n };\n};\n\nconst getPrefixWord = (\n model: monaco.editor.ITextModel,\n position: monaco.Position\n): {\n word: string | undefined;\n token: string;\n} => {\n const word = model.getWordUntilPosition(position);\n const prefixToken = model.getValueInRange({\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: position.column - word.word.length - 1,\n endColumn: position.column - word.word.length,\n });\n const prefixWord = model.getWordAtPosition({\n ...position,\n column: position.column - word?.word?.length - 1,\n });\n return {\n word: prefixWord?.word,\n token: prefixToken,\n };\n};\n\nexport const isInEvaluateBody = (\n model: monaco.editor.ITextModel,\n position: monaco.Position\n): boolean => {\n const word = model.getWordUntilPosition(position);\n const prefixEvaluateOperator = model.findPreviousMatch(\n \"<%\",\n position,\n false,\n false,\n null,\n false\n );\n const suffixEvaluateOperator = model.findNextMatch(\n \"%>\",\n position,\n false,\n false,\n null,\n false\n );\n const isInEvaluateBody =\n prefixEvaluateOperator?.range.startLineNumber &&\n suffixEvaluateOperator?.range.startLineNumber &&\n prefixEvaluateOperator.range.startLineNumber <= position.lineNumber &&\n suffixEvaluateOperator.range.endLineNumber >= position.lineNumber;\n\n if (isInEvaluateBody) {\n const { parentKey: prefixParentKey } = findKeys(\n model,\n prefixEvaluateOperator.range,\n prefixEvaluateOperator?.range.startLineNumber\n );\n const { parentKey: suffixParentKey } = findKeys(\n model,\n suffixEvaluateOperator.range,\n suffixEvaluateOperator?.range.startLineNumber\n );\n const { keyList } = findKeys(model, word, position.lineNumber);\n if (\n prefixParentKey === suffixParentKey &&\n keyList.includes(prefixParentKey)\n ) {\n return true;\n }\n }\n return false;\n};\n\nexport const brickNextYAMLProvideCompletionItems = (\n completers?: monaco.languages.CompletionItem[],\n advancedCompleters?: Record<\n string,\n { triggerCharacter: string; completers: monaco.languages.CompletionItem[] }\n >\n) => {\n return (\n model: monaco.editor.ITextModel,\n position: monaco.Position,\n context: monaco.languages.CompletionContext,\n _token: monaco.CancellationToken\n ): monaco.languages.ProviderResult<monaco.languages.CompletionList> => {\n const word = model.getWordUntilPosition(position);\n const { word: prefixWord, token: prefixToken } = getPrefixWord(\n model,\n position\n );\n const curLineWord = model.getValueInRange({\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: 0,\n endColumn: Infinity,\n });\n const range = {\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: word.startColumn,\n endColumn: word.endColumn,\n };\n\n const isFirstLevelProperty = word.startColumn === 1;\n const { curLevelKeys } = findKeys(model, word, model.getLineCount());\n\n if (context.triggerCharacter === \"<\") {\n const fullWord = model.getValueInRange({\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: position.column - 2,\n endColumn: position.column + 2,\n });\n if (fullWord.trim() !== \"<\") {\n return {\n suggestions: [],\n };\n }\n return {\n suggestions: [\n {\n label: \"<% %>\",\n detail: \"Evalute Body\",\n kind: monaco.languages.CompletionItemKind.Value,\n insertText: \"% ${0} %>\",\n insertTextRules:\n monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\n range: range,\n },\n {\n label: \"<%= %>\",\n detail: \"Track Evalute Body\",\n kind: monaco.languages.CompletionItemKind.Value,\n insertText: \"%= ${0} %>\",\n insertTextRules:\n monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,\n range: range,\n },\n ],\n };\n }\n\n if (isFirstLevelProperty) {\n return {\n suggestions: (completers ?? [])\n .filter((item) => !curLevelKeys.includes(item.label as string))\n .map((item) => ({\n ...item,\n label: item.label,\n insertText: item.insertText || (item.label as string),\n kind: monaco.languages.CompletionItemKind.Keyword,\n range,\n })),\n };\n }\n\n if (\n context.triggerCharacter === \":\" ||\n (context.triggerCharacter === \".\" &&\n prefixWord &&\n ![\"CTX\", \"STATE\", \"FN\"].includes(prefixWord))\n ) {\n if (prefixWord === \"action\" && context.triggerCharacter === \":\") {\n const actions = get(\n storyboardJsonSchema,\n \"definitions.BuiltinBrickEventHandler.properties.action.enum\"\n );\n return {\n suggestions: ((actions as unknown as string[]) ?? [])?.map(\n (item) => ({\n label: ` ${item}`,\n detail: \"event action\",\n kind: monaco.languages.CompletionItemKind.Keyword,\n insertText: ` ${item}`,\n range,\n })\n ),\n };\n }\n const matchCompletion = advancedCompleters?.[prefixWord as string];\n let matchTriggerCharacter = \"\";\n let list: monaco.languages.CompletionItem[] | undefined;\n if (matchCompletion && !Array.isArray(matchCompletion)) {\n list = matchCompletion.completers;\n matchTriggerCharacter = matchCompletion.triggerCharacter;\n } else {\n list = matchCompletion;\n }\n if (\n matchTriggerCharacter\n ? context.triggerCharacter === matchTriggerCharacter && list\n : list\n ) {\n return {\n suggestions: (list ?? []).map((item) => {\n const label =\n matchTriggerCharacter === \":\"\n ? ` ${item.label}`\n : (item.label as string);\n return {\n ...item,\n label: label,\n kind: monaco.languages.CompletionItemKind.Value,\n insertText: item.insertText || label,\n range,\n };\n }),\n };\n }\n }\n\n if (isInEvaluateBody(model, position)) {\n if (\n prefixWord &&\n [\"CTX\", \"STATE\"].includes(prefixWord) &&\n advancedCompleters\n ) {\n return {\n suggestions: (advancedCompleters[prefixWord]?.completers ?? []).map(\n (item) => ({\n label: item.label,\n insertText: item.label as string,\n kind: monaco.languages.CompletionItemKind.Value,\n range,\n })\n ),\n };\n }\n\n if (\n prefixWord === \"FN\" &&\n context.triggerCharacter === \".\" &&\n advancedCompleters\n ) {\n return {\n suggestions: (advancedCompleters[\"FN\"]?.completers ?? []).map(\n (item) => ({\n label: item.label,\n insertText: item.label as string,\n kind: monaco.languages.CompletionItemKind.Value,\n range,\n })\n ),\n };\n }\n\n if (prefixWord === \"APP\" && context.triggerCharacter === \".\") {\n const appProperties = get(\n storyboardJsonSchema,\n \"definitions.MicroApp.properties\"\n );\n const suggestions = [];\n for (const [k, v] of Object.entries(\n appProperties as unknown as Record<\n string,\n {\n description: string;\n type: string;\n enum: string[];\n }\n >\n )) {\n suggestions.push({\n label: k,\n kind: monaco.languages.CompletionItemKind.Value,\n documentation: v.description,\n detail: v.enum ? v.enum.join(\"|\") : v.type,\n insertText: k,\n range,\n });\n }\n return {\n suggestions,\n };\n }\n\n if ([\".\", \":\"].includes(prefixToken)) {\n return {\n suggestions: [],\n };\n }\n\n return {\n suggestions: EVALUATE_KEYWORD.map((item) => ({\n label: item,\n insertText: item,\n kind: monaco.languages.CompletionItemKind.Keyword,\n range,\n })),\n };\n }\n\n if (/^[\\s|-]*\\w$/.test(curLineWord)) {\n return {\n suggestions: brickNextKeywords\n .map((item) => ({\n label: item,\n insertText: item,\n kind: monaco.languages.CompletionItemKind.Keyword,\n range,\n }))\n .filter((item) => !curLevelKeys.includes(item.label as string)),\n };\n }\n\n return {\n suggestions: [],\n };\n };\n};\n","export const EVALUATE_KEYWORD = [\n \"CTX\",\n \"STATE\",\n \"DATA\",\n \"EVENT\",\n \"FLAGS\",\n \"APP\",\n \"ANCHOR\",\n \"HASH\",\n \"INSTALLED_APPS\",\n \"ITEM\",\n \"LOCAL_STORAGE\",\n \"MEDIA\",\n \"MISC\",\n \"PARAMS\",\n \"PATH\",\n \"PROCESSORS\",\n \"QUERY\",\n \"QUERY_ARRAY\",\n \"SESSION_STORAGE\",\n \"TPL\",\n \"SYS\",\n \"BASE_URL\",\n \"IMG\",\n \"FN\",\n \"I18N\",\n \"I18N_TEXT\",\n \"PERMISSIONS\",\n \"THEME\",\n];\n\nexport const brickNextKeywords = [\n \"target\",\n \"targetRef\",\n \"properties\",\n \"events\",\n \"method\",\n \"callback\",\n \"success\",\n \"error\",\n \"action\",\n \"useProvider\",\n \"useChildren\",\n \"useBrick\",\n \"args\",\n \"if\",\n \"then\",\n];\n\nexport const Level = {\n hit: 1,\n info: 2,\n warn: 4,\n error: 8,\n};\n","// 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, `.highlight{color:rgb(74 170 189)!important;text-decoration:underline;font-weight:bold;font-style:oblique}.pointer{cursor:pointer}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./index.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./index.css\";\n export default content && content.locals ? content.locals : undefined;\n","import { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport type { AbstractForm } from \"./Form.js\";\nimport { UseSingleBrickConf } from \"@next-core/types\";\n\nconst { method, property } = createDecorators();\n\nexport abstract class FormItemElementBase extends ReactNextElement {\n accessor #_notRender = false;\n accessor #validate = \"normal\";\n accessor #bindFormItem = false;\n\n get isFormItemElement(): true {\n return true;\n }\n\n set validateState(value: string) {\n this.#validate = value;\n this._render();\n }\n get validateState() {\n return this.#validate;\n }\n\n /**\n * 控制该表单项是否隐藏\n * @default false\n * @group ui\n */\n set notRender(value: boolean) {\n this.hidden = value;\n this.#_notRender = value;\n this._render();\n }\n get notRender(): boolean {\n return this.#_notRender;\n }\n\n get $bindFormItem() {\n return this.#bindFormItem;\n }\n set $bindFormItem(value: boolean) {\n this.#bindFormItem = value;\n this._render();\n }\n\n @property({\n attribute: false,\n })\n accessor helpBrick:\n | { useBrick: UseSingleBrickConf | UseSingleBrickConf[] }\n | undefined;\n\n @property({\n attribute: false,\n })\n accessor labelBrick:\n | { useBrick: UseSingleBrickConf | UseSingleBrickConf[] }\n | undefined;\n\n @method()\n setNotRender(value: boolean) {\n this.notRender = value;\n }\n\n @method()\n getFormElement(): AbstractForm | null {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let element: AbstractForm | null = this as unknown as AbstractForm;\n while ((element = element.parentNode as AbstractForm | null)) {\n if (!element || element.isFormElement) {\n break;\n }\n }\n return element as AbstractForm | null;\n }\n}\n"],"names":["EDITOR_FONT_SIZE","EDITOR_LINE_HEIGHT","EDITOR_SCROLLBAR_SIZE","EDITOR_PADDING_VERTICAL","registerJavaScript","monaco","registerTypeScript","registerYaml","registerHtml","_CodeEditor","defineElement","property","event","createDecorators","WrappedFormItem","wrapBrick","_dec","shadowOptions","_dec2","_dec3","_dec4","attribute","_dec5","_dec6","_dec7","type","Boolean","_dec8","_dec9","_dec10","Number","_dec11","_dec12","_dec13","_dec14","_dec15","_dec16","_dec17","_dec18","_dec19","_dec20","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_codeChange","_R","_userInput","_handleChange","_S","_highlighClickEvent","_handleHighlightClick","_handleValidtor","CodeEditor","FormItemElementBase","constructor","arguments","_classPrivateFieldInitSpec","get","_get_highlighClickEvent2","set","_set_highlighClickEvent2","_get_userInput2","_set_userInput2","_get_codeChange2","_set_codeChange2","writable","value","_initProto","_init_name","_init_label","_init_value","_init_language","_init_theme","_init_required","_init_readOnly","_init_automaticLayout","_init_minLines","_init_completers","_init_advancedCompleters","_init_markers","_init_links","_init_maxLines","_init_height","_init_message","_init_codeChange","_init_userInput","parseValue","isFlush","_this$getFormElement","this","getFormElement","formStore","onChange","name","_classPrivateFieldGet","emit","_init_highlighClickEvent","word","yaml","_unused","v","_classPrivateFieldSet","label","language","theme","required","readOnly","automaticLayout","minLines","completers","advancedCompleters","markers","links","maxLines","height","message","connectedCallback","style","display","super","render","React","curElement","formElement","validator","CodeEditorComponent","validateState","onHighlightClick","_set_codeChange","_get_codeChange","_set_userInput","_get_userInput","_set_highlighClickEvent","_get_highlighClickEvent","_ref","_value","_language","_theme","_minLines","_maxLines","_height","Infinity","containerRef","useRef","decorationsCollection","editorRef","size","width","getContentHeightByCode","actualHeight","setActualHeight","useState","automaticLayoutRef","systemTheme","useCurrentTheme","useEffect","setTheme","current","currentModel","getModel","setModelLanguage","isEqual","getValue","setValue","provideCompletionItems","brickNextYAMLProvideCompletionItems","monacoProviderRef","registerCompletionItemProvider","triggerCharacters","dispose","parseYaml","useCallback","map","BrickNextYamlSourceMap","undefined","model","listener","listen","_decorationsCollectio","tokens","getTokens","forEach","item","startLineNumber","endLineNumber","startColumn","globalNodes","result","preevaluate","source","hooks","beforeVisit","node","object","EVALUATE_KEYWORD","includes","push","start","end","loc","_node$object","_loc$start","_loc$end","_loc$start2","_loc$end2","hadWrap","test","prefix","token","line","length","column","endColumn","_node$object2","_result$prefix","_result$prefix2","isString","filter","range","options","inlineClassName","modelMarkers","_matchTokenConf$param","_matchTokenConf$level","matchTokenConf","find","params","_objectSpread","severity","Level","level","code","target","parse","warn","setModelMarkers","e","_decorationsCollectio2","useLayoutEffect","_editorRef$current","getBoundingClientRect","layout","observer","ResizeObserver","entries","entry","_editorRef$current2","newWidth","contentBoxSize","inlineSize","contentRect","observe","disconnect","container","element","brick","found","tagName","toLowerCase","parentElement","getDOMContainer","offsetHeight","updateOptions","createModel","create","minimap","enabled","scrollBeyondLastLine","tabSize","insertSpaces","fontSize","lineHeight","scrollbar","horizontalScrollbarSize","verticalScrollbarSize","horizontalSliderSize","verticalSliderSize","alwaysConsumeMouseWheel","padding","top","bottom","overviewRulerBorder","mouseWheelScrollSensitivity","suggest","insertMode","preview","quickSuggestions","strings","other","comments","createDecorationsCollection","editor","editorMouseDownEvent","onMouseDown","_decorations$getRange","_decorations$getRange2","decorations","getRanges","call","modKey","navigator","platform","position","containsPosition","getValueInRange","mouseOverEvent","onMouseMove","newDecorations","equalsRange","onDidContentSizeChange","contentHeightChanged","newHeight","fixEditorHeightWithScrollBar","contentHeight","getContentHeight","onDidChangeContent","_editorRef$current3","_editorRef$current4","ref","outline","getContentHeightByLines","Math","min","max","split","fixedHeight","lines","c","_initClass","_applyDecs","o","_","has","_checkInRHS","_recordsToken","_prefixPosition","_recordLastWord","_defineProperty","handleState","state","lineStart","curWord","input","substring","trim","lineIndent","_result$match","wrapLength","match","nearWrapIndex","i","specilStringPrefix","bind","findKeys","curLevelKeys","keyList","parentKey","matchWord","wordspace","key","unshift","context","_token","getWordUntilPosition","prefixWord","prefixToken","getPrefixWord","_word$word","lineNumber","getWordAtPosition","curLineWord","isFirstLevelProperty","getLineCount","triggerCharacter","suggestions","detail","kind","CompletionItemKind","Value","insertText","insertTextRules","CompletionItemInsertTextRule","InsertAsSnippet","Keyword","_ref2","storyboardJsonSchema","concat","list","_list","matchCompletion","matchTriggerCharacter","Array","isArray","isInEvaluateBody","prefixEvaluateOperator","findPreviousMatch","suffixEvaluateOperator","findNextMatch","prefixParentKey","suffixParentKey","_advancedCompleters$p","_advancedCompleters$p2","_advancedCompleters$F","_advancedCompleters$F2","appProperties","k","Object","documentation","description","enum","join","brickNextKeywords","hit","info","error","___CSS_LOADER_EXPORT___","module","id","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","method","_notRender","_validate","_bindFormItem","ReactNextElement","_get_bindFormItem","_set_bindFormItem","_get_validate","_set_validate","_get__notRender","_set__notRender","_init_helpBrick","_init_labelBrick","isFormItemElement","_render","notRender","hidden","$bindFormItem","helpBrick","labelBrick","setNotRender","parentNode","isFormElement"],"sourceRoot":""}
|