@pixi-ui-editor/schema 0.8.0 → 0.10.0
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/bindingKeys.js.map +1 -1
- package/dist/index.d.ts +905 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +90 -6
- package/dist/index.js.map +1 -1
- package/dist/prefabs.js.map +1 -1
- package/package.json +1 -1
package/dist/bindingKeys.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bindingKeys.js","sourceRoot":"","sources":["../src/bindingKeys.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAwB;IACzD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAoB,CAAC;IACzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;YAAE,SAAS;QAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,MAAM,KAAK,SAAS;YAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;;YAC9C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,sGAAsG;AACtG,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAE1C;;;;;;;;;;GAUG;AACH,MAAM,UAAU,uBAAuB,CACrC,KAAiH;IAEjH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAmB,CAAC,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1E,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,IAAY,EAAE,EAAE;QAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,QAAQ,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;;YACjD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,MAAM,KAAK,SAAS;YAAE,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;aACzD,CAAC;YACJ,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAC9B,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO;gBAAE,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["import type { UINode } from \"./index.js\";\
|
|
1
|
+
{"version":3,"file":"bindingKeys.js","sourceRoot":"","sources":["../src/bindingKeys.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAwB;IACzD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAoB,CAAC;IACzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;YAAE,SAAS;QAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,MAAM,KAAK,SAAS;YAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;;YAC9C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,sGAAsG;AACtG,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAE1C;;;;;;;;;;GAUG;AACH,MAAM,UAAU,uBAAuB,CACrC,KAAiH;IAEjH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAmB,CAAC,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1E,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,IAAY,EAAE,EAAE;QAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,QAAQ,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;;YACjD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,MAAM,KAAK,SAAS;YAAE,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;aACzD,CAAC;YACJ,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAC9B,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO;gBAAE,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["import type { UINode } from \"./index.js\";\nimport type { MaterializedPrefabNodeOrigin } from \"./prefabs.js\";\n\n/**\n * Единственная реализация группировки binding-ключей: и validation документа, и Inspector спрашивают\n * именно её, поэтому «ключ занят» в UI и «ключ дублируется» в документе не могут разойтись.\n *\n * На вход идут materialized-ноды владельца (`resolveOwnerNodeGraph`), а не сырые `owner.nodes`: ключ\n * принадлежит конкретному view, поэтому нода внутри prefab-инстанса участвует в проверке наравне с\n * обычной нодой сцены. Ключ группируется по trimmed-значению; пустая строка остаётся отдельной\n * группой, чтобы вызывающий отличил «ключа нет» от «ключ состоит из пробелов».\n */\nexport function collectBindingKeys(nodes: readonly UINode[]): Map<string, string[]> {\n const keys = new Map<string, string[]>();\n for (const node of nodes) {\n if (node.bindingKey === undefined) continue;\n const key = node.bindingKey.trim();\n const owners = keys.get(key);\n if (owners === undefined) keys.set(key, [node.id]);\n else owners.push(node.id);\n }\n return keys;\n}\n\n/** Область владельца: собственные узлы сцены или определения пресета. Инстанс адресуется своим id. */\nexport const OWNER_BINDING_KEY_SCOPE = \"\";\n\n/**\n * Разбивает materialized-граф владельца на области, внутри которых ключ обязан быть уникальным.\n * Область — это то, относительно чего ключ разрешается, а не весь граф целиком: развёрнутое из\n * определения поддерево принадлежит своему инстансу, потому что игровой код спрашивает такой ключ\n * у конкретного инстанса (`materializedPrefabNodeId`), а не у сцены. Иначе пресет с ключом внутри\n * нельзя было бы разместить на сцене дважды: второй инстанс тиражировал бы тот же ключ.\n *\n * Локально добавленный узел попадает сразу в две области: он существует в единственном экземпляре и\n * авторится на сцене, поэтому участвует в области владельца, но живёт внутри инстанса, поэтому не\n * должен сталкиваться с унаследованными ключами того же инстанса.\n */\nexport function collectBindingKeyScopes(\n graph: { readonly nodes: readonly UINode[]; readonly origins: ReadonlyMap<string, MaterializedPrefabNodeOrigin> },\n): Map<string, UINode[]> {\n const scopes = new Map<string, UINode[]>([[OWNER_BINDING_KEY_SCOPE, []]]);\n const push = (scope: string, node: UINode) => {\n const existing = scopes.get(scope);\n if (existing === undefined) scopes.set(scope, [node]);\n else existing.push(node);\n };\n for (const node of graph.nodes) {\n const origin = graph.origins.get(node.id);\n if (origin === undefined) push(OWNER_BINDING_KEY_SCOPE, node);\n else {\n push(origin.instanceId, node);\n if (origin.kind === \"local\") push(OWNER_BINDING_KEY_SCOPE, node);\n }\n }\n return scopes;\n}\n"]}
|