From ca60a143e3abe6b5b4fc11928ae07c6dc0e6b941 Mon Sep 17 00:00:00 2001 From: RobinCode Date: Sat, 5 Nov 2022 21:24:00 +0800 Subject: [PATCH] update --- .gitignore | 2 +- .prettierignore | 4 +- .vscode/settings.json | 3 +- addon/content/solid-example/maps/test.vmap | Bin 0 -> 638138 bytes .../panorama/layout/custom_game/app.xml | 12 + .../custom_game/custom_loading_screen.xml | 7 + .../layout/custom_game/custom_ui_manifest.xml | 30 + .../panorama/layout/custom_game/libs.xml | 8 + .../panorama/scripts/custom_game/app.js | 39 + .../custom_game/custom_loading_screen.js | 18 + .../panorama/scripts/custom_game/libs.js | 934 ++++++++++++++++++ .../scripts/custom_game/panorama-polyfill.js | 14 + addon/game/solid-example/addoninfo.txt | 3 + addon/game/solid-example/maps/test.vpk | Bin 0 -> 504572 bytes .../scripts/npc/npc_abilities_custom.txt | 49 + .../scripts/npc/npc_heroes_custom.txt | 15 + .../scripts/npc/npc_items_custom.txt | 3 + .../scripts/npc/npc_units_custom.txt | 92 ++ .../scripts/vscripts/addon_game_mode.lua | 36 + babel.config.js | 4 +- build-rollup-config.ts | 8 +- package.json | 5 +- plugins/compatible-panorama.ts | 66 ++ src/app.tsx | 23 +- yarn.lock | 32 +- 25 files changed, 1373 insertions(+), 34 deletions(-) create mode 100644 addon/content/solid-example/maps/test.vmap create mode 100644 addon/content/solid-example/panorama/layout/custom_game/app.xml create mode 100644 addon/content/solid-example/panorama/layout/custom_game/custom_loading_screen.xml create mode 100644 addon/content/solid-example/panorama/layout/custom_game/custom_ui_manifest.xml create mode 100644 addon/content/solid-example/panorama/layout/custom_game/libs.xml create mode 100644 addon/content/solid-example/panorama/scripts/custom_game/app.js create mode 100644 addon/content/solid-example/panorama/scripts/custom_game/custom_loading_screen.js create mode 100644 addon/content/solid-example/panorama/scripts/custom_game/libs.js create mode 100644 addon/content/solid-example/panorama/scripts/custom_game/panorama-polyfill.js create mode 100644 addon/game/solid-example/addoninfo.txt create mode 100644 addon/game/solid-example/maps/test.vpk create mode 100644 addon/game/solid-example/scripts/npc/npc_abilities_custom.txt create mode 100644 addon/game/solid-example/scripts/npc/npc_heroes_custom.txt create mode 100644 addon/game/solid-example/scripts/npc/npc_items_custom.txt create mode 100644 addon/game/solid-example/scripts/npc/npc_units_custom.txt create mode 100644 addon/game/solid-example/scripts/vscripts/addon_game_mode.lua create mode 100644 plugins/compatible-panorama.ts diff --git a/.gitignore b/.gitignore index c6f4b14..5755200 100644 --- a/.gitignore +++ b/.gitignore @@ -17,4 +17,4 @@ dist *.vcss_c *.vxml_c *.bin -panorama_debugger.cfg \ No newline at end of file +*.cfg \ No newline at end of file diff --git a/.prettierignore b/.prettierignore index 04e920d..cfd9078 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,6 +1,4 @@ build coverage -**/dist -**/vue_example .github -package.json \ No newline at end of file +node_modules \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index 43233a9..7f76f35 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,5 +1,6 @@ { "files.exclude": { - "**/node_modules": true + // "**/node_modules/**": true, + "**/node_modules/[^b]**": true } } diff --git a/addon/content/solid-example/maps/test.vmap b/addon/content/solid-example/maps/test.vmap new file mode 100644 index 0000000000000000000000000000000000000000..30898d0ccf599d204c3ee81e62bd4f7f51a2fc7c GIT binary patch literal 638138 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 + + + + + + + + + + + diff --git a/addon/content/solid-example/panorama/layout/custom_game/custom_loading_screen.xml b/addon/content/solid-example/panorama/layout/custom_game/custom_loading_screen.xml new file mode 100644 index 0000000..06bc375 --- /dev/null +++ b/addon/content/solid-example/panorama/layout/custom_game/custom_loading_screen.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/addon/content/solid-example/panorama/layout/custom_game/custom_ui_manifest.xml b/addon/content/solid-example/panorama/layout/custom_game/custom_ui_manifest.xml new file mode 100644 index 0000000..8553c04 --- /dev/null +++ b/addon/content/solid-example/panorama/layout/custom_game/custom_ui_manifest.xml @@ -0,0 +1,30 @@ + + + + + + diff --git a/addon/content/solid-example/panorama/layout/custom_game/libs.xml b/addon/content/solid-example/panorama/layout/custom_game/libs.xml new file mode 100644 index 0000000..89e726f --- /dev/null +++ b/addon/content/solid-example/panorama/layout/custom_game/libs.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/addon/content/solid-example/panorama/scripts/custom_game/app.js b/addon/content/solid-example/panorama/scripts/custom_game/app.js new file mode 100644 index 0000000..ee021fb --- /dev/null +++ b/addon/content/solid-example/panorama/scripts/custom_game/app.js @@ -0,0 +1,39 @@ +'use strict'; const require = GameUI.__require; + +var libs = require('./libs.js'); + +function Item(props) { + let [root, setRoot] = libs.createSignal(null); + let [text, setText] = libs.createSignal(''); + let el; + libs.onMount(() => { + $.Msg('onMount ', el); + }); + libs.createEffect(() => { + $.Msg('effect root ', root()); + }, root); + return (() => { + const _el$ = libs.createElement("Panel", { + id: "root" + }, null), + _el$2 = libs.createElement("Label", {}, _el$); + const _ref$ = el; + typeof _ref$ === "function" ? libs.use(_ref$, _el$) : el = _el$; + libs.effect(_$p => libs.setProp(_el$2, "text", text(), _$p)); + return _el$; + })(); +} +function HelloWorld() { + return (() => { + const _el$3 = libs.createElement("Panel", {}, null); + libs.createTextNode(`Hello World!`, _el$3); + libs.setProp(_el$3, "style", { + flowChildren: 'right' + }); + libs.insert(_el$3, libs.createComponent(Item, { + show: true + }, _el$3), null); + return _el$3; + })(); +} +libs.render(() => libs.createComponent(HelloWorld, {}, null), $('#app')); diff --git a/addon/content/solid-example/panorama/scripts/custom_game/custom_loading_screen.js b/addon/content/solid-example/panorama/scripts/custom_game/custom_loading_screen.js new file mode 100644 index 0000000..ec6304f --- /dev/null +++ b/addon/content/solid-example/panorama/scripts/custom_game/custom_loading_screen.js @@ -0,0 +1,18 @@ + +const root = $.GetContextPanel(); +const modules = GameUI.__modules = {} +GameUI.__loadModule = function (name, exports) { + if (modules[name]) { + $.Msg(`Reload module: ${name} `, exports ? '👏' : '☠️') + } + modules[name] = exports +} +GameUI.__require = function (name) { + name = name.slice(2, name.length-3); + if (!modules[name]) { + const m = $.CreatePanel('Panel', root, name) + m.BLoadLayout(`file://{resources}/layout/custom_game/${name}.xml`, false, false); + $.Msg(`Load module: ${name} `, modules[name] ? '👏' : '☠️') + } + return modules[name] +} \ No newline at end of file diff --git a/addon/content/solid-example/panorama/scripts/custom_game/libs.js b/addon/content/solid-example/panorama/scripts/custom_game/libs.js new file mode 100644 index 0000000..27ba7b3 --- /dev/null +++ b/addon/content/solid-example/panorama/scripts/custom_game/libs.js @@ -0,0 +1,934 @@ +'use strict'; const exports = {}; GameUI.__loadModule('libs', exports); const require = GameUI.__require; + +const equalFn = (a, b) => a === b; +const $PROXY = Symbol("solid-proxy"); +const signalOptions = { + equals: equalFn +}; +let runEffects = runQueue; +const STALE = 1; +const PENDING = 2; +const UNOWNED = { + owned: null, + cleanups: null, + context: null, + owner: null +}; +var Owner = null; +let Transition = null; +let Listener = null; +let Updates = null; +let Effects = null; +let ExecCount = 0; +function createRoot(fn, detachedOwner) { + const listener = Listener, + owner = Owner, + unowned = fn.length === 0, + root = unowned && !false ? UNOWNED : { + owned: null, + cleanups: null, + context: null, + owner: detachedOwner || owner + }, + updateFn = unowned ? fn : () => fn(() => untrack(() => cleanNode(root))); + Owner = root; + Listener = null; + try { + return runUpdates(updateFn, true); + } finally { + Listener = listener; + Owner = owner; + } +} +function createSignal(value, options) { + options = options ? Object.assign({}, signalOptions, options) : signalOptions; + const s = { + value, + observers: null, + observerSlots: null, + comparator: options.equals || undefined + }; + const setter = value => { + if (typeof value === "function") { + value = value(s.value); + } + return writeSignal(s, value); + }; + return [readSignal.bind(s), setter]; +} +function createRenderEffect(fn, value, options) { + const c = createComputation(fn, value, false, STALE); + updateComputation(c); +} +function createEffect(fn, value, options) { + runEffects = runUserEffects; + const c = createComputation(fn, value, false, STALE), + s = SuspenseContext && lookup(Owner, SuspenseContext.id); + if (s) c.suspense = s; + c.user = true; + Effects ? Effects.push(c) : updateComputation(c); +} +function createMemo(fn, value, options) { + options = options ? Object.assign({}, signalOptions, options) : signalOptions; + const c = createComputation(fn, value, true, 0); + c.observers = null; + c.observerSlots = null; + c.comparator = options.equals || undefined; + updateComputation(c); + return readSignal.bind(c); +} +function untrack(fn) { + let result, + listener = Listener; + Listener = null; + result = fn(); + Listener = listener; + return result; +} +function onMount(fn) { + createEffect(() => untrack(fn)); +} +let SuspenseContext; +function readSignal() { + const runningTransition = Transition ; + if (this.sources && (this.state || runningTransition )) { + if (this.state === STALE || runningTransition ) updateComputation(this);else { + const updates = Updates; + Updates = null; + runUpdates(() => lookUpstream(this), false); + Updates = updates; + } + } + if (Listener) { + const sSlot = this.observers ? this.observers.length : 0; + if (!Listener.sources) { + Listener.sources = [this]; + Listener.sourceSlots = [sSlot]; + } else { + Listener.sources.push(this); + Listener.sourceSlots.push(sSlot); + } + if (!this.observers) { + this.observers = [Listener]; + this.observerSlots = [Listener.sources.length - 1]; + } else { + this.observers.push(Listener); + this.observerSlots.push(Listener.sources.length - 1); + } + } + return this.value; +} +function writeSignal(node, value, isComp) { + let current = node.value; + if (!node.comparator || !node.comparator(current, value)) { + node.value = value; + if (node.observers && node.observers.length) { + runUpdates(() => { + for (let i = 0; i < node.observers.length; i += 1) { + const o = node.observers[i]; + const TransitionRunning = Transition && Transition.running; + if (TransitionRunning && Transition.disposed.has(o)) ; + if (TransitionRunning && !o.tState || !TransitionRunning && !o.state) { + if (o.pure) Updates.push(o);else Effects.push(o); + if (o.observers) markDownstream(o); + } + if (TransitionRunning) ;else o.state = STALE; + } + if (Updates.length > 10e5) { + Updates = []; + if (false) ; + throw new Error(); + } + }, false); + } + } + return value; +} +function updateComputation(node) { + if (!node.fn) return; + cleanNode(node); + const owner = Owner, + listener = Listener, + time = ExecCount; + Listener = Owner = node; + runComputation(node, node.value, time); + Listener = listener; + Owner = owner; +} +function runComputation(node, value, time) { + let nextValue; + try { + nextValue = node.fn(value); + } catch (err) { + if (node.pure) node.state = STALE; + handleError(err); + } + if (!node.updatedAt || node.updatedAt <= time) { + if (node.updatedAt != null && "observers" in node) { + writeSignal(node, nextValue); + } else node.value = nextValue; + node.updatedAt = time; + } +} +function createComputation(fn, init, pure, state = STALE, options) { + const c = { + fn, + state: state, + updatedAt: null, + owned: null, + sources: null, + sourceSlots: null, + cleanups: null, + value: init, + owner: Owner, + context: null, + pure + }; + if (Owner === null) ;else if (Owner !== UNOWNED) { + { + if (!Owner.owned) Owner.owned = [c];else Owner.owned.push(c); + } + } + return c; +} +function runTop(node) { + const runningTransition = Transition ; + if (node.state === 0 || runningTransition ) return; + if (node.state === PENDING || runningTransition ) return lookUpstream(node); + if (node.suspense && untrack(node.suspense.inFallback)) return node.suspense.effects.push(node); + const ancestors = [node]; + while ((node = node.owner) && (!node.updatedAt || node.updatedAt < ExecCount)) { + if (node.state || runningTransition ) ancestors.push(node); + } + for (let i = ancestors.length - 1; i >= 0; i--) { + node = ancestors[i]; + if (node.state === STALE || runningTransition ) { + updateComputation(node); + } else if (node.state === PENDING || runningTransition ) { + const updates = Updates; + Updates = null; + runUpdates(() => lookUpstream(node, ancestors[0]), false); + Updates = updates; + } + } +} +function runUpdates(fn, init) { + if (Updates) return fn(); + let wait = false; + if (!init) Updates = []; + if (Effects) wait = true;else Effects = []; + ExecCount++; + try { + const res = fn(); + completeUpdates(wait); + return res; + } catch (err) { + if (!Updates) Effects = null; + handleError(err); + } +} +function completeUpdates(wait) { + if (Updates) { + runQueue(Updates); + Updates = null; + } + if (wait) return; + const e = Effects; + Effects = null; + if (e.length) runUpdates(() => runEffects(e), false); +} +function runQueue(queue) { + for (let i = 0; i < queue.length; i++) runTop(queue[i]); +} +function runUserEffects(queue) { + let i, + userLength = 0; + for (i = 0; i < queue.length; i++) { + const e = queue[i]; + if (!e.user) runTop(e);else queue[userLength++] = e; + } + for (i = 0; i < userLength; i++) runTop(queue[i]); +} +function lookUpstream(node, ignore) { + const runningTransition = Transition ; + node.state = 0; + for (let i = 0; i < node.sources.length; i += 1) { + const source = node.sources[i]; + if (source.sources) { + if (source.state === STALE || runningTransition ) { + if (source !== ignore) runTop(source); + } else if (source.state === PENDING || runningTransition ) lookUpstream(source, ignore); + } + } +} +function markDownstream(node) { + const runningTransition = Transition ; + for (let i = 0; i < node.observers.length; i += 1) { + const o = node.observers[i]; + if (!o.state || runningTransition ) { + o.state = PENDING; + if (o.pure) Updates.push(o);else Effects.push(o); + o.observers && markDownstream(o); + } + } +} +function cleanNode(node) { + let i; + if (node.sources) { + while (node.sources.length) { + const source = node.sources.pop(), + index = node.sourceSlots.pop(), + obs = source.observers; + if (obs && obs.length) { + const n = obs.pop(), + s = source.observerSlots.pop(); + if (index < obs.length) { + n.sourceSlots[s] = index; + obs[index] = n; + source.observerSlots[index] = s; + } + } + } + } + if (node.owned) { + for (i = 0; i < node.owned.length; i++) cleanNode(node.owned[i]); + node.owned = null; + } + if (node.cleanups) { + for (i = 0; i < node.cleanups.length; i++) node.cleanups[i](); + node.cleanups = null; + } + node.state = 0; + node.context = null; +} +function castError(err) { + if (err instanceof Error || typeof err === "string") return err; + return new Error("Unknown error"); +} +function handleError(err) { + err = castError(err); + throw err; +} +function lookup(owner, key) { + return owner ? owner.context && owner.context[key] !== undefined ? owner.context[key] : lookup(owner.owner, key) : undefined; +} +function createComponent$1(Comp, props) { + return untrack(() => Comp(props || {})); +} +function trueFn() { + return true; +} +const propTraps = { + get(_, property, receiver) { + if (property === $PROXY) return receiver; + return _.get(property); + }, + has(_, property) { + return _.has(property); + }, + set: trueFn, + deleteProperty: trueFn, + getOwnPropertyDescriptor(_, property) { + return { + configurable: true, + enumerable: true, + get() { + return _.get(property); + }, + set: trueFn, + deleteProperty: trueFn + }; + }, + ownKeys(_) { + return _.keys(); + } +}; +function resolveSource(s) { + return (s = typeof s === "function" ? s() : s) == null ? {} : s; +} +function mergeProps$1(...sources) { + if (sources.some(s => s && ($PROXY in s || typeof s === "function"))) { + return new Proxy({ + get(property) { + for (let i = sources.length - 1; i >= 0; i--) { + const v = resolveSource(sources[i])[property]; + if (v !== undefined) return v; + } + }, + has(property) { + for (let i = sources.length - 1; i >= 0; i--) { + if (property in resolveSource(sources[i])) return true; + } + return false; + }, + keys() { + const keys = []; + for (let i = 0; i < sources.length; i++) keys.push(...Object.keys(resolveSource(sources[i]))); + return [...new Set(keys)]; + } + }, propTraps); + } + const target = {}; + for (let i = sources.length - 1; i >= 0; i--) { + if (sources[i]) { + const descriptors = Object.getOwnPropertyDescriptors(sources[i]); + for (const key in descriptors) { + if (key in target) continue; + Object.defineProperty(target, key, { + enumerable: true, + get() { + for (let i = sources.length - 1; i >= 0; i--) { + const v = (sources[i] || {})[key]; + if (v !== undefined) return v; + } + } + }); + } + } + } + return target; +} + +function createRenderer$1({ + createElement, + createTextNode, + isTextNode, + replaceText, + insertNode, + removeNode, + setProperty, + getParentNode, + getFirstChild, + getNextSibling +}) { + function insert(parent, accessor, marker, initial) { + if (marker !== undefined && !initial) initial = []; + if (typeof accessor !== "function") return insertExpression(parent, accessor, initial, marker); + createRenderEffect(current => insertExpression(parent, accessor(), current, marker), initial); + } + function insertExpression(parent, value, current, marker, unwrapArray) { + while (typeof current === "function") current = current(); + if (value === current) return current; + const t = typeof value, + multi = marker !== undefined; + if (t === "string" || t === "number") { + if (t === "number") value = value.toString(); + if (multi) { + let node = current[0]; + if (node && isTextNode(node)) { + replaceText(node, value); + } else node = createTextNode(value); + current = cleanChildren(parent, current, marker, node); + } else { + if (current !== "" && typeof current === "string") { + replaceText(getFirstChild(parent), current = value); + } else { + cleanChildren(parent, current, marker, createTextNode(value)); + current = value; + } + } + } else if (value == null || t === "boolean") { + current = cleanChildren(parent, current, marker); + } else if (t === "function") { + createRenderEffect(() => { + let v = value(); + while (typeof v === "function") v = v(); + current = insertExpression(parent, v, current, marker); + }); + return () => current; + } else if (Array.isArray(value)) { + const array = []; + if (normalizeIncomingArray(array, value, unwrapArray)) { + createRenderEffect(() => current = insertExpression(parent, array, current, marker, true)); + return () => current; + } + if (array.length === 0) { + const replacement = cleanChildren(parent, current, marker); + if (multi) return current = replacement; + } else { + if (Array.isArray(current)) { + if (current.length === 0) { + appendNodes(parent, array, marker); + } else reconcileArrays(parent, current, array); + } else if (current == null || current === "") { + appendNodes(parent, array); + } else { + reconcileArrays(parent, multi && current || [getFirstChild(parent)], array); + } + } + current = array; + } else { + if (Array.isArray(current)) { + if (multi) return current = cleanChildren(parent, current, marker, value); + cleanChildren(parent, current, null, value); + } else if (current == null || current === "" || !getFirstChild(parent)) { + insertNode(parent, value); + } else replaceNode(parent, value, getFirstChild(parent)); + current = value; + } + return current; + } + function normalizeIncomingArray(normalized, array, unwrap) { + let dynamic = false; + for (let i = 0, len = array.length; i < len; i++) { + let item = array[i], + t; + if (item == null || item === true || item === false) ; else if (Array.isArray(item)) { + dynamic = normalizeIncomingArray(normalized, item) || dynamic; + } else if ((t = typeof item) === "string" || t === "number") { + normalized.push(createTextNode(item)); + } else if (t === "function") { + if (unwrap) { + while (typeof item === "function") item = item(); + dynamic = normalizeIncomingArray(normalized, Array.isArray(item) ? item : [item]) || dynamic; + } else { + normalized.push(item); + dynamic = true; + } + } else normalized.push(item); + } + return dynamic; + } + function reconcileArrays(parentNode, a, b) { + let bLength = b.length, + aEnd = a.length, + bEnd = bLength, + aStart = 0, + bStart = 0, + after = getNextSibling(a[aEnd - 1]), + map = null; + while (aStart < aEnd || bStart < bEnd) { + if (a[aStart] === b[bStart]) { + aStart++; + bStart++; + continue; + } + while (a[aEnd - 1] === b[bEnd - 1]) { + aEnd--; + bEnd--; + } + if (aEnd === aStart) { + const node = bEnd < bLength ? bStart ? getNextSibling(b[bStart - 1]) : b[bEnd - bStart] : after; + while (bStart < bEnd) insertNode(parentNode, b[bStart++], node); + } else if (bEnd === bStart) { + while (aStart < aEnd) { + if (!map || !map.has(a[aStart])) removeNode(parentNode, a[aStart]); + aStart++; + } + } else if (a[aStart] === b[bEnd - 1] && b[bStart] === a[aEnd - 1]) { + const node = getNextSibling(a[--aEnd]); + insertNode(parentNode, b[bStart++], getNextSibling(a[aStart++])); + insertNode(parentNode, b[--bEnd], node); + a[aEnd] = b[bEnd]; + } else { + if (!map) { + map = new Map(); + let i = bStart; + while (i < bEnd) map.set(b[i], i++); + } + const index = map.get(a[aStart]); + if (index != null) { + if (bStart < index && index < bEnd) { + let i = aStart, + sequence = 1, + t; + while (++i < aEnd && i < bEnd) { + if ((t = map.get(a[i])) == null || t !== index + sequence) break; + sequence++; + } + if (sequence > index - bStart) { + const node = a[aStart]; + while (bStart < index) insertNode(parentNode, b[bStart++], node); + } else replaceNode(parentNode, b[bStart++], a[aStart++]); + } else aStart++; + } else removeNode(parentNode, a[aStart++]); + } + } + } + function cleanChildren(parent, current, marker, replacement) { + if (marker === undefined) { + let removed; + while (removed = getFirstChild(parent)) removeNode(parent, removed); + replacement && insertNode(parent, replacement); + return ""; + } + const node = replacement || createTextNode(""); + if (current.length) { + let inserted = false; + for (let i = current.length - 1; i >= 0; i--) { + const el = current[i]; + if (node !== el) { + const isParent = getParentNode(el) === parent; + if (!inserted && !i) isParent ? replaceNode(parent, node, el) : insertNode(parent, node, marker);else isParent && removeNode(parent, el); + } else inserted = true; + } + } else insertNode(parent, node, marker); + return [node]; + } + function appendNodes(parent, array, marker) { + for (let i = 0, len = array.length; i < len; i++) insertNode(parent, array[i], marker); + } + function replaceNode(parent, newNode, oldNode) { + insertNode(parent, newNode, oldNode); + removeNode(parent, oldNode); + } + function spreadExpression(node, props, prevProps = {}, skipChildren) { + props || (props = {}); + if (!skipChildren) { + createRenderEffect(() => prevProps.children = insertExpression(node, props.children, prevProps.children)); + } + createRenderEffect(() => props.ref && props.ref(node)); + createRenderEffect(() => { + for (const prop in props) { + if (prop === "children" || prop === "ref") continue; + const value = props[prop]; + if (value === prevProps[prop]) continue; + setProperty(node, prop, value, prevProps[prop]); + prevProps[prop] = value; + } + }); + return prevProps; + } + return { + render(code, element) { + let disposer; + createRoot(dispose => { + disposer = dispose; + insert(element, code()); + }); + return disposer; + }, + insert, + spread(node, accessor, skipChildren) { + if (typeof accessor === "function") { + createRenderEffect(current => spreadExpression(node, accessor(), current, skipChildren)); + } else spreadExpression(node, accessor, undefined, skipChildren); + }, + createElement, + createTextNode, + insertNode, + setProp(node, name, value, prev) { + setProperty(node, name, value, prev); + return value; + }, + mergeProps: mergeProps$1, + effect: createRenderEffect, + memo: createMemo, + createComponent: createComponent$1, + use(fn, element, arg) { + return untrack(() => fn(element, arg)); + } + }; +} + +function createRenderer(options) { + const renderer = createRenderer$1(options); + renderer.mergeProps = mergeProps$1; + return renderer; +} + +/****************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ + +function __rest(s, e) { + var t = {}; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) + t[p[i]] = s[p[i]]; + } + return t; +} + +const StyleKeyAutoConvertToPixelList = [ + 'x', + 'y', + 'z', + 'width', + 'height', + 'minHeight', + 'maxHeight', + 'minWidth', + 'maxWidth', + 'border-radius', + 'borderRadius', + 'fontSize', + 'lineHeight', + 'margin', + 'marginBottom', + 'marginLeft', + 'marginRight', + 'marginTop', + 'padding', + 'paddingBottom', + 'paddingLeft', + 'paddingRight', + 'paddingTop' +]; + +const hasOwn = Object.prototype.hasOwnProperty; +const { render: _render, effect, memo, createComponent, createElement, createTextNode, insertNode, insert, spread, setProp, mergeProps, +// @ts-ignore +use } = createRenderer({ + // @ts-ignore + createElement(type, props, parent) { + const { id, snippet, vars, dialogVariables, text } = props, _props = __rest(props, ["id", "snippet", "vars", "dialogVariables", "text"]); + const el = $.CreatePanelWithProperties(type, parent || $.GetContextPanel(), id || '', _props); + if (vars) { + setDialogVariables(el, vars, {}); + } + if (dialogVariables) { + setDialogVariables(el, dialogVariables, {}); + } + if (text && el.paneltype === 'Label') { + if (text[0] === '#') { + el.text = $.Localize(text, el); + } + else { + el.text = text; + } + } + if (snippet) { + el.BLoadLayoutSnippet(snippet); + } + return el; + }, + // @ts-ignore + createTextNode(value, parent) { + if (typeof value !== 'string') { + value = String(value); + } + if (value[0] === '#') { + value = $.Localize(value); + } + return $.CreatePanelWithProperties('Label', parent || $.GetContextPanel(), '', { + text: value, + html: 'true' + }); + }, + replaceText(textNode, value) { + if (!textNode || !textNode.IsValid()) { + return; + } + if (value[0] === '#') { + value = $.Localize(value); + } + textNode.text = value; + }, + isTextNode(node) { + if (!node || !node.IsValid()) { + return false; + } + return node.paneltype === 'Label'; + }, + setProperty(node, name, value, prev) { + if (!node || !node.IsValid()) { + return; + } + if (name === 'class' || name === 'className') { + applyClassNames(node, value, prev || ''); + } + else if (name === 'classList') { + updateClassList(node, value); + } + else if (name === 'style') { + applyStyles(node, value, prev); + } + else if (name === 'vars' || name === 'dialogVariables') { + setDialogVariables(node, value, prev); + } + else if (name === 'inputnamespace') { + node.SetInputNamespace(value || ''); + } + else if (name === 'draggable') { + node.SetDraggable(value === true); + } + else if (name === 'acceptsfocus') { + node.SetAcceptsFocus(value === true); + } + else if (name.startsWith('on')) { + setPanelEvent(node, name, value); + } + else { + if (hasOwn.call(node, name)) { + // @ts-ignore + node[name] = value; + } + else { + node.SetAttributeString(name, String(value)); + } + } + }, + insertNode(parent, node, anchor) { + if (!parent || !parent.IsValid() || !node || !node.IsValid()) { + return; + } + node.SetParent(parent); + if (anchor && anchor.IsValid()) { + parent.MoveChildBefore(node, anchor); + } + }, + removeNode(parent, node) { + if (!parent || !parent.IsValid() || !node || !node.IsValid()) { + return; + } + node.DeleteAsync(0); + }, + getParentNode(node) { + if (!node || !node.IsValid()) { + return; + } + const parent = node.GetParent(); + if (parent) { + return parent; + } + }, + getFirstChild(node) { + if (!node || !node.IsValid()) { + return; + } + const child = node.GetChild(0); + if (!child) { + return; + } + return child; + }, + getNextSibling(node) { + if (!node || !node.IsValid()) { + return; + } + const parent = node.GetParent(); + if (!parent) { + return; + } + const el = parent.GetChild(parent.GetChildIndex(node) + 1); + if (!el) { + return; + } + return el; + } +}); +const renderPanoramaSymbol = Symbol('render'); +function render(code, container) { + if (container.__renderPanoramaSymbol) { + if (container.__renderPanoramaSymbol === renderPanoramaSymbol) { + $.Msg('render() can only be called once'); + return; + } + container.__renderPanoramaSymbol = renderPanoramaSymbol; + container.RemoveAndDeleteChildren(); + } + return _render(code, container); +} +const splitClassName = /\s+/; +function applyClassNames(node, names, prev) { + const nameList = names.split(splitClassName); + const oldList = prev.split(splitClassName); + for (let i = oldList.length - 1; i >= 0; i--) { + const name = oldList[i]; + if (nameList.includes(name)) { + continue; + } + else { + node.RemoveClass(name); + } + } + for (const name of nameList) { + node.AddClass(name); + } +} +function updateClassList(node, state) { + for (const k in state) { + node.SetHasClass(k, state[k] === true); + } +} +function applyStyles(node, styles, prev) { + prev = prev || {}; + for (const k in prev) { + if (!styles[k]) { + node.style[k] = null; + } + } + for (const k in styles) { + if (typeof styles[k] === 'number') { + if (StyleKeyAutoConvertToPixelList.includes(k)) { + // @ts-ignore + node.style[k] = `${styles[k]}px`; + continue; + } + throw new Error(`style key ${k} not support number`); + } + // @ts-ignore + node.style[k] = styles[k]; + } +} +function setPanelEvent(node, event, handle) { + if (!handle) { + node.ClearPanelEvent(event); + return; + } + node.SetPanelEvent(event, function () { + handle(node); + }); +} +const PANORAMA_INVALID_DATE = 2 ** 52; +function setDialogVariables(node, vars, prev) { + prev = prev || {}; + for (const key in prev) { + if (!vars[key]) { + const value = prev[key]; + if (typeof value === 'string') { + node.SetDialogVariable(key, `[!s:${key}]`); + } + else if (typeof value === 'number') { + node.SetDialogVariableInt(key, NaN); + } + else { + node.SetDialogVariableTime(key, PANORAMA_INVALID_DATE); + } + } + } + for (const key in vars) { + const value = vars[key]; + if (typeof value === 'string') { + if (value[0] === '#') { + node.SetDialogVariableLocString(key, value); + } + else { + node.SetDialogVariable(key, value); + } + } + else if (typeof value === 'number') { + node.SetDialogVariableInt(key, value); + } + else { + node.SetDialogVariableTime(key, Math.floor(value.getTime() / 1000)); + } + } +} + +exports.createComponent = createComponent; +exports.createEffect = createEffect; +exports.createElement = createElement; +exports.createSignal = createSignal; +exports.createTextNode = createTextNode; +exports.effect = effect; +exports.insert = insert; +exports.onMount = onMount; +exports.render = render; +exports.setProp = setProp; +exports.use = use; diff --git a/addon/content/solid-example/panorama/scripts/custom_game/panorama-polyfill.js b/addon/content/solid-example/panorama/scripts/custom_game/panorama-polyfill.js new file mode 100644 index 0000000..fed8b4c --- /dev/null +++ b/addon/content/solid-example/panorama/scripts/custom_game/panorama-polyfill.js @@ -0,0 +1,14 @@ + +(function (global) { + if (!global.console) { + global.console = {} + } + console.log = console.warn = console.info = function(...args) { + $.Msg(args.map((v) => { + if (typeof v === 'object') { + return JSON.stringify(v) + } + return String(v) + }).join(' ')) + } +})(this); \ No newline at end of file diff --git a/addon/game/solid-example/addoninfo.txt b/addon/game/solid-example/addoninfo.txt new file mode 100644 index 0000000..ecca6cd --- /dev/null +++ b/addon/game/solid-example/addoninfo.txt @@ -0,0 +1,3 @@ + +{ +} \ No newline at end of file diff --git a/addon/game/solid-example/maps/test.vpk b/addon/game/solid-example/maps/test.vpk new file mode 100644 index 0000000000000000000000000000000000000000..4a63e5d332093d253861e88028a191baf50fb3ab GIT binary patch literal 504572 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
    7XS!o{r^SwEx`PeUEJs*rWgZD<9?GB*bf>MU< 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 Q{s#k|8~NGE`ZuQhFV*46UjP6A literal 0 HcmV?d00001 diff --git a/addon/game/solid-example/scripts/npc/npc_abilities_custom.txt b/addon/game/solid-example/scripts/npc/npc_abilities_custom.txt new file mode 100644 index 0000000..4e99036 --- /dev/null +++ b/addon/game/solid-example/scripts/npc/npc_abilities_custom.txt @@ -0,0 +1,49 @@ +// Dota Heroes File +"DOTAAbilities" +{ + "Version" "1" + + //================================================================================================================= + // Templar Assassin: Refraction Holdout + //================================================================================================================= + "templar_assassin_refraction_holdout" + { + // General + //------------------------------------------------------------------------------------------------------------- + "AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_NO_TARGET | DOTA_ABILITY_BEHAVIOR_IMMEDIATE" + "AbilityUnitDamageType" "DAMAGE_TYPE_PHYSICAL" + + // Casting + //------------------------------------------------------------------------------------------------------------- + "AbilityCastPoint" "0.0 0.0 0.0 0.0" + + // Time + //------------------------------------------------------------------------------------------------------------- + "AbilityCooldown" "17.0 17.0 17.0 17.0" + + // Cost + //------------------------------------------------------------------------------------------------------------- + "AbilityManaCost" "100" + + // Special + //------------------------------------------------------------------------------------------------------------- + "AbilitySpecial" + { + "01" + { + "var_type" "FIELD_INTEGER" + "damage_absorb" "200 300 400 500" + } + "02" + { + "var_type" "FIELD_INTEGER" + "bonus_damage" "20 40 60 80" + } + "04" + { + "var_type" "FIELD_FLOAT" + "duration" "17.0 17.0 17.0 17.0" + } + } + } +} diff --git a/addon/game/solid-example/scripts/npc/npc_heroes_custom.txt b/addon/game/solid-example/scripts/npc/npc_heroes_custom.txt new file mode 100644 index 0000000..cdb6977 --- /dev/null +++ b/addon/game/solid-example/scripts/npc/npc_heroes_custom.txt @@ -0,0 +1,15 @@ +// Dota Heroes File +// NOTE: This is not for creating new heroes, this is for taking a currently existing hero as a template and overriding +// the specified key-value combinations. Use override_hero for this. +"DOTAHeroes" +{ + //================================================================================================================= + // HERO: Templar Assassin + //================================================================================================================= + "npc_dota_hero_templar_assassin_template" + { + "override_hero" "npc_dota_hero_templar_assassin" // Hero to override + "Ability1" "templar_assassin_refraction_holdout" // Ability 1 + "VisionNighttimeRange" "1800" // Range of vision at night time. + } +} diff --git a/addon/game/solid-example/scripts/npc/npc_items_custom.txt b/addon/game/solid-example/scripts/npc/npc_items_custom.txt new file mode 100644 index 0000000..c359269 --- /dev/null +++ b/addon/game/solid-example/scripts/npc/npc_items_custom.txt @@ -0,0 +1,3 @@ +"DOTAAbilities" +{ +} \ No newline at end of file diff --git a/addon/game/solid-example/scripts/npc/npc_units_custom.txt b/addon/game/solid-example/scripts/npc/npc_units_custom.txt new file mode 100644 index 0000000..cceaab6 --- /dev/null +++ b/addon/game/solid-example/scripts/npc/npc_units_custom.txt @@ -0,0 +1,92 @@ +// Units File +"DOTAUnits" +{ + "Version" "1" + + //================================================================================= + // Creature: Gnoll Assassin + //================================================================================= + "npc_dota_creature_gnoll_assassin" + { + // General + //---------------------------------------------------------------- + "Model" "models/creeps/neutral_creeps/n_creep_gnoll/n_creep_gnoll_frost.vmdl" // Model. + "BaseClass" "npc_dota_creature" + "SoundSet" "n_creep_Ranged" + "GameSoundsFile" "soundevents/game_sounds_creeps.vsndevts" + "Level" "1" + "ModelScale" ".9" + + // Abilities + //---------------------------------------------------------------- + "Ability1" "" // Ability 1 + "Ability2" "" // Ability 2 + "Ability3" "" // Ability 3 + "Ability4" "" // Ability 4 + + // Armor + //---------------------------------------------------------------- + "ArmorPhysical" "1" // Physical protection. + + // Attack + //---------------------------------------------------------------- + "AttackCapabilities" "DOTA_UNIT_CAP_RANGED_ATTACK" + "AttackDamageMin" "30" // Damage range min. + "AttackDamageMax" "36" // Damage range max. + "AttackRate" "1.6" // Speed of attack. + "AttackAnimationPoint" "0.4" // Normalized time in animation cycle to attack. + "AttackAcquisitionRange" "800" // Range within a target can be acquired. + "AttackRange" "500" // Range within a target can be attacked. + "ProjectileModel" "particles/neutral_fx/gnoll_base_attack.vpcf" // Particle system model for projectile. + "ProjectileSpeed" "1500" // Speed of projectile. + + // Bounds + //---------------------------------------------------------------- + "RingRadius" "40" + "HealthBarOffset" "170" + + // Bounty + //---------------------------------------------------------------- + "BountyXP" "24" // Experience earn. + "BountyGoldMin" "21" // Gold earned min. + "BountyGoldMax" "29" // Gold earned max. + + // Movement + //---------------------------------------------------------------- + "MovementCapabilities" "DOTA_UNIT_CAP_MOVE_GROUND" + "MovementSpeed" "270" // Speed. + + // Status + //---------------------------------------------------------------- + "StatusHealth" "75" // Base health. + "StatusHealthRegen" "0.5" // Health regeneration rate. + "StatusMana" "0" // Base mana. + "StatusManaRegen" "0.0" // Mana regeneration rate. + + // Vision + //---------------------------------------------------------------- + "VisionDaytimeRange" "400" // Range of vision during day light. + "VisionNighttimeRange" "400" // Range of vision at night time. + + // Team + //---------------------------------------------------------------- + "TeamName" "DOTA_TEAM_NEUTRALS" // Team name. + "CombatClassAttack" "DOTA_COMBAT_CLASS_ATTACK_PIERCE" + "CombatClassDefend" "DOTA_COMBAT_CLASS_DEFEND_BASIC" + "UnitRelationshipClass" "DOTA_NPC_UNIT_RELATIONSHIP_TYPE_DEFAULT" + + // Creature Data + //---------------------------------------------------------------- + "Creature" + { + //Level Up + "HPGain" "50" + "DamageGain" "2" + "ArmorGain" "0.25" + "MagicResistGain" "0.1" + "MoveSpeedGain" "1" + "BountyGain" "3" + "XPGain" "15" + } + } +} diff --git a/addon/game/solid-example/scripts/vscripts/addon_game_mode.lua b/addon/game/solid-example/scripts/vscripts/addon_game_mode.lua new file mode 100644 index 0000000..e4568f7 --- /dev/null +++ b/addon/game/solid-example/scripts/vscripts/addon_game_mode.lua @@ -0,0 +1,36 @@ +-- Generated from template + +if CAddonTemplateGameMode == nil then + CAddonTemplateGameMode = class({}) +end + +function Precache( context ) + --[[ + Precache things we know we'll use. Possible file types include (but not limited to): + PrecacheResource( "model", "*.vmdl", context ) + PrecacheResource( "soundfile", "*.vsndevts", context ) + PrecacheResource( "particle", "*.vpcf", context ) + PrecacheResource( "particle_folder", "particles/folder", context ) + ]] +end + +-- Create the game mode when we activate +function Activate() + GameRules.AddonTemplate = CAddonTemplateGameMode() + GameRules.AddonTemplate:InitGameMode() +end + +function CAddonTemplateGameMode:InitGameMode() + print( "Template addon is loaded." ) + GameRules:GetGameModeEntity():SetThink( "OnThink", self, "GlobalThink", 2 ) +end + +-- Evaluate the state of the game +function CAddonTemplateGameMode:OnThink() + if GameRules:State_Get() == DOTA_GAMERULES_STATE_GAME_IN_PROGRESS then + --print( "Template addon script is running." ) + elseif GameRules:State_Get() >= DOTA_GAMERULES_STATE_POST_GAME then + return nil + end + return 1 +end \ No newline at end of file diff --git a/babel.config.js b/babel.config.js index c2d1e8b..f22a156 100644 --- a/babel.config.js +++ b/babel.config.js @@ -5,9 +5,9 @@ module.exports = { '@babel/preset-env', '@babel/preset-typescript', [ - 'babel-preset-solid', + 'babel-preset-solid-panorama', { - moduleName: '@solid-panorama/runtime', + moduleName: 'solid-panorama-runtime', generate: 'universal' } ] diff --git a/build-rollup-config.ts b/build-rollup-config.ts index c4cdb43..826c642 100644 --- a/build-rollup-config.ts +++ b/build-rollup-config.ts @@ -10,6 +10,7 @@ import chalk from 'chalk'; import { existsSync, readdirSync, statSync } from 'node:fs'; import alias from '@rollup/plugin-alias'; import replace from '@rollup/plugin-replace'; +import compatiblePanorama from './plugins/compatible-panorama'; const cli_prefix = `[${chalk.magenta('Panorama')}]`; @@ -31,7 +32,7 @@ export default function GetRollupWatchOptions(rootPath: string) { input: path.join(rootPath, `./app.tsx`), output: { sourcemap: false, - dir: 'dist', + dir: 'addon/content/solid-example/panorama/scripts/custom_game', format: 'cjs', entryFileNames: `[name].js`, chunkFileNames: `[name].js`, @@ -42,7 +43,7 @@ export default function GetRollupWatchOptions(rootPath: string) { return 'common'; } if (id.search(/[\\/]node_modules[\\/]/) >= 0) { - return 'common'; + return 'libs'; } } }, @@ -70,7 +71,8 @@ export default function GetRollupWatchOptions(rootPath: string) { // tsconfig: path.join(rootPath, `tsconfig.json`) // }), commonjs(), - nodeResolve() + nodeResolve(), + compatiblePanorama() ] }; diff --git a/package.json b/package.json index c237f46..653e59f 100644 --- a/package.json +++ b/package.json @@ -22,12 +22,12 @@ "@rollup/plugin-replace": "^5.0.1", "@rollup/plugin-typescript": "^9.0.2", "@rollup/plugin-url": "^8.0.1", - "@solid-panorama/runtime": "^0.1.1", "@types/babel__core": "^7.1.19", "@types/fs-extra": "^9.0.13", "@types/glob": "^8.0.0", "@types/node": "^18.11.7", - "babel-preset-solid": "^1.6.1", + "babel-plugin-jsx-panorama-expressions": "^0.1.2", + "babel-preset-solid-panorama": "^0.1.3", "chalk": "4.1.2", "chokidar": "^3.5.3", "dota2-panorama-xml-static-element": "^0.0.4", @@ -37,6 +37,7 @@ "rollup": "^3.2.3", "sass": "^1.55.0", "solid-js": "^1.6.1", + "solid-panorama-runtime": "^0.1.6", "ts-node": "^10.9.1", "typescript": "~4.8.4" } diff --git a/plugins/compatible-panorama.ts b/plugins/compatible-panorama.ts new file mode 100644 index 0000000..76c9ce8 --- /dev/null +++ b/plugins/compatible-panorama.ts @@ -0,0 +1,66 @@ +import chalk from 'chalk'; +import { existsSync } from 'node:fs'; +import { readFile, writeFile } from 'node:fs/promises'; +import path, { basename, join } from 'node:path'; +import { Plugin } from 'rollup'; + +const xmlFile = ` + + + + + + + +`; + +export default function compatiblePanorama(options?: {}): Plugin { + const exportsPositionsearch = `'use strict';`; + return { + name: 'compatible-panorama', + async renderChunk(code, chunk, options) { + const hasExp = chunk.exports.length > 0; + if (hasExp) { + // 给模块创建xml文件 + const xmlPath = join( + __dirname, + `../addon/content/solid-example/panorama/layout/custom_game/${chunk.fileName.replace( + '.js', + '.xml' + )}` + ); + const content = xmlFile.replace('#name#', chunk.fileName); + await writeFile(xmlPath, content); + } + + // 把每行开头`require('./common.js');`换成空字符串 + code = code.replace(/^require\('\.\/common.js'\);/m, ''); + + // 加入exports和模块加载 + const index = code.indexOf(exportsPositionsearch); + if (index >= 0) { + return ( + code.slice(0, index + exportsPositionsearch.length) + + `${ + hasExp + ? ` const exports = {}; GameUI.__loadModule('${chunk.fileName.replace( + '.js', + '' + )}', exports);` + : '' + } const require = GameUI.__require;` + + code.slice(index + exportsPositionsearch.length) + ); + } + return code; + }, + resolveId(source, importer, options) { + if (source.includes('@common')) { + return source.replace( + /\@common\/(.*)/, + join(__dirname, '../src/common/$1.ts').replace(/\\/g, '/') + ); + } + } + }; +} diff --git a/src/app.tsx b/src/app.tsx index 761e415..70b7a13 100644 --- a/src/app.tsx +++ b/src/app.tsx @@ -1,19 +1,32 @@ -import { render } from '@solid-panorama/runtime'; +import { createEffect, createSignal, onMount, ParentComponent } from 'solid-js'; +import { render } from 'solid-panorama-runtime'; function Item(props: { show: boolean }) { + let [root, setRoot] = createSignal(null); + let [text, setText] = createSignal(''); + let el: Panel | undefined; + + onMount(() => { + $.Msg('onMount ', el); + }); + + createEffect(() => { + $.Msg('effect root ', root()); + }, root); + return ( - - ); } diff --git a/yarn.lock b/yarn.lock index 129a020..681155a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1074,13 +1074,6 @@ estree-walker "^2.0.2" picomatch "^2.3.1" -"@solid-panorama/runtime@^0.1.1": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@solid-panorama/runtime/-/runtime-0.1.1.tgz#5e1760e414cc66aeb66ee7b5025df03237e26398" - integrity sha512-YHWlTuun976m3BVzNdZapFXKKhAAa3KpBkdWyY/Z+ernHgQikHUfVQ/vVOqEysjrHuVmkriTaCYip1wDDlruPg== - dependencies: - "@moddota/panorama-types" "^1.21.0" - "@tsconfig/node10@^1.0.7": version "1.0.9" resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" @@ -1211,10 +1204,10 @@ arg@^4.1.0: resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== -babel-plugin-jsx-dom-expressions@^0.35.2: - version "0.35.2" - resolved "https://registry.yarnpkg.com/babel-plugin-jsx-dom-expressions/-/babel-plugin-jsx-dom-expressions-0.35.2.tgz#5c9daea0dc6605ce41abdf74ae0df1703eacb217" - integrity sha512-ES+K+P6n4vjV9FGvCfJtOlJuAntpez+IoD0kzLZPjIfBoOU8IhE6hVYXdP458mJlvHlXiFsLQfvoTTYgPzPOJw== +babel-plugin-jsx-panorama-expressions@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/babel-plugin-jsx-panorama-expressions/-/babel-plugin-jsx-panorama-expressions-0.1.2.tgz#36e91a3a0ed268fa71c68f02b3770f15799c9278" + integrity sha512-1Vr0kRqmkuYOaULCI+1xhNUNpRgQ1v0cZ/AwX0wa0uLTGa/tSE/oPLmRYTL5VRXq489814hoQTuT7CdIjqM78A== dependencies: "@babel/helper-module-imports" "7.16.0" "@babel/plugin-syntax-jsx" "^7.16.5" @@ -1245,12 +1238,10 @@ babel-plugin-polyfill-regenerator@^0.4.1: dependencies: "@babel/helper-define-polyfill-provider" "^0.3.3" -babel-preset-solid@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/babel-preset-solid/-/babel-preset-solid-1.6.1.tgz#4e8f87c048bcea51962d647fb86740810a2a486d" - integrity sha512-Ji/cvYUE2BROsA3zOhaqKjuAEo6YAkmw8ZE11QsMtSEcWJ1rCFC829qWb5FLPl3UymVxh68+dpScPDtyyr/rdA== - dependencies: - babel-plugin-jsx-dom-expressions "^0.35.2" +babel-preset-solid-panorama@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/babel-preset-solid-panorama/-/babel-preset-solid-panorama-0.1.3.tgz#ea14b6a81d1002f3cfaac1c9646b72c793bdc1aa" + integrity sha512-+BhbrVM517X2xsoNSFhaeDX9eVHKj2o8fsIiS9PVCOTrTISh/ZEFythjPdYFcRRJTs5XJHkhA3UtKU/BmTyuDA== balanced-match@^1.0.0: version "1.0.2" @@ -2206,6 +2197,13 @@ solid-js@^1.6.1: dependencies: csstype "^3.1.0" +solid-panorama-runtime@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/solid-panorama-runtime/-/solid-panorama-runtime-0.1.6.tgz#34ed0358df9a60c2fc7d232af0448fcea18510e5" + integrity sha512-140s8uYK8AdYky9o+InWm1js9Q3YmaRMUy6eoLhwYJ0YIxCu7oH5u9GtwIDQDAMX2MTqYutf5sDKTtZMna6xaA== + dependencies: + "@moddota/panorama-types" "^1.21.0" + "source-map-js@>=0.6.2 <2.0.0": version "1.0.2" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"